@toclocoinc/lattice-grid 1.80.0 → 1.81.0
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.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/angular/package.json +1 -1
- package/docs/API.html +4 -4
- package/docs/THEMING.md +6 -3
- package/docs/api/adapters.html +1 -1
- package/docs/api/ai.html +1 -1
- package/docs/api/alarms.html +1 -1
- package/docs/api/charts.html +1 -1
- package/docs/api/dashboard.html +1 -1
- package/docs/api/data-router.html +1 -1
- package/docs/api/deckgl.html +1 -1
- package/docs/api/gantt.html +1 -1
- package/docs/api/geometry.html +1 -1
- package/docs/api/grid.html +2 -2
- package/docs/api/index.html +1 -1
- package/docs/api/kanban.html +1 -1
- package/docs/api/kpi.html +1 -1
- package/docs/api/layout.html +1 -1
- package/docs/api/leaflet.html +1 -1
- package/docs/api/list.html +1 -1
- package/docs/api/mock-socket.html +1 -1
- package/docs/api/presets.html +1 -1
- package/docs/api/tabs.html +1 -1
- package/docs/api/types.html +1 -1
- package/docs/api-detail.html +4 -4
- package/docs/warnings.json +1 -1
- package/lattice-grid.d.ts +1 -1
- package/lattice-grid.esm.min.js +3 -3
- package/lattice-grid.min.cjs +3 -3
- package/lattice-grid.min.css +1 -1
- package/lattice-grid.min.js +3 -3
- package/modules/ai.d.ts +1 -1
- package/modules/ai.esm.min.js +2 -2
- package/modules/ai.min.cjs +2 -2
- package/modules/ai.min.js +2 -2
- package/modules/alarms.d.ts +1 -1
- package/modules/alarms.esm.min.js +2 -2
- package/modules/alarms.min.cjs +2 -2
- package/modules/alarms.min.js +2 -2
- package/modules/angular.d.ts +1 -1
- package/modules/angular.esm.min.js +2 -2
- package/modules/angular.min.cjs +2 -2
- package/modules/angular.min.js +2 -2
- package/modules/chart-alluvial.d.ts +1 -1
- package/modules/chart-alluvial.esm.min.js +1 -1
- package/modules/chart-alluvial.min.cjs +1 -1
- package/modules/chart-alluvial.min.js +1 -1
- package/modules/chart-arc.d.ts +1 -1
- package/modules/chart-arc.esm.min.js +1 -1
- package/modules/chart-arc.min.cjs +1 -1
- package/modules/chart-arc.min.js +1 -1
- package/modules/chart-bubblemap.d.ts +1 -1
- package/modules/chart-bubblemap.esm.min.js +1 -1
- package/modules/chart-bubblemap.min.cjs +1 -1
- package/modules/chart-bubblemap.min.js +1 -1
- package/modules/chart-bump.d.ts +1 -1
- package/modules/chart-bump.esm.min.js +1 -1
- package/modules/chart-bump.min.cjs +1 -1
- package/modules/chart-bump.min.js +1 -1
- package/modules/chart-calendar.d.ts +1 -1
- package/modules/chart-calendar.esm.min.js +1 -1
- package/modules/chart-calendar.min.cjs +1 -1
- package/modules/chart-calendar.min.js +1 -1
- package/modules/chart-choropleth.d.ts +1 -1
- package/modules/chart-choropleth.esm.min.js +1 -1
- package/modules/chart-choropleth.min.cjs +1 -1
- package/modules/chart-choropleth.min.js +1 -1
- package/modules/chart-decomposition.d.ts +1 -1
- package/modules/chart-decomposition.esm.min.js +1 -1
- package/modules/chart-decomposition.min.cjs +1 -1
- package/modules/chart-decomposition.min.js +1 -1
- package/modules/chart-diverging.d.ts +1 -1
- package/modules/chart-diverging.esm.min.js +1 -1
- package/modules/chart-diverging.min.cjs +1 -1
- package/modules/chart-diverging.min.js +1 -1
- package/modules/chart-dumbbell.d.ts +1 -1
- package/modules/chart-dumbbell.esm.min.js +1 -1
- package/modules/chart-dumbbell.min.cjs +1 -1
- package/modules/chart-dumbbell.min.js +1 -1
- package/modules/chart-fan.d.ts +1 -1
- package/modules/chart-fan.esm.min.js +1 -1
- package/modules/chart-fan.min.cjs +1 -1
- package/modules/chart-fan.min.js +1 -1
- package/modules/chart-hexbin.d.ts +1 -1
- package/modules/chart-hexbin.esm.min.js +1 -1
- package/modules/chart-hexbin.min.cjs +1 -1
- package/modules/chart-hexbin.min.js +1 -1
- package/modules/chart-hexmap.d.ts +1 -1
- package/modules/chart-hexmap.esm.min.js +1 -1
- package/modules/chart-hexmap.min.cjs +1 -1
- package/modules/chart-hexmap.min.js +1 -1
- package/modules/chart-icicle.d.ts +1 -1
- package/modules/chart-icicle.esm.min.js +1 -1
- package/modules/chart-icicle.min.cjs +1 -1
- package/modules/chart-icicle.min.js +1 -1
- package/modules/chart-markermap.d.ts +1 -1
- package/modules/chart-markermap.esm.min.js +1 -1
- package/modules/chart-markermap.min.cjs +1 -1
- package/modules/chart-markermap.min.js +1 -1
- package/modules/chart-parallel.d.ts +1 -1
- package/modules/chart-parallel.esm.min.js +1 -1
- package/modules/chart-parallel.min.cjs +1 -1
- package/modules/chart-parallel.min.js +1 -1
- package/modules/chart-ridgeline.d.ts +1 -1
- package/modules/chart-ridgeline.esm.min.js +1 -1
- package/modules/chart-ridgeline.min.cjs +1 -1
- package/modules/chart-ridgeline.min.js +1 -1
- package/modules/chart-roc.d.ts +1 -1
- package/modules/chart-roc.esm.min.js +1 -1
- package/modules/chart-roc.min.cjs +1 -1
- package/modules/chart-roc.min.js +1 -1
- package/modules/chart-slope.d.ts +1 -1
- package/modules/chart-slope.esm.min.js +1 -1
- package/modules/chart-slope.min.cjs +1 -1
- package/modules/chart-slope.min.js +1 -1
- package/modules/chart-splom.d.ts +1 -1
- package/modules/chart-splom.esm.min.js +1 -1
- package/modules/chart-splom.min.cjs +1 -1
- package/modules/chart-splom.min.js +1 -1
- package/modules/chart-waffle.d.ts +1 -1
- package/modules/chart-waffle.esm.min.js +1 -1
- package/modules/chart-waffle.min.cjs +1 -1
- package/modules/chart-waffle.min.js +1 -1
- package/modules/charts.d.ts +1 -1
- package/modules/charts.esm.min.js +2 -2
- package/modules/charts.min.cjs +2 -2
- package/modules/charts.min.js +2 -2
- package/modules/dashboard.d.ts +1 -1
- package/modules/dashboard.esm.min.js +2 -2
- package/modules/dashboard.min.cjs +2 -2
- package/modules/dashboard.min.js +2 -2
- package/modules/data-router.d.ts +1 -1
- package/modules/data-router.esm.min.js +2 -2
- package/modules/data-router.min.cjs +2 -2
- package/modules/data-router.min.js +2 -2
- package/modules/deckgl.d.ts +1 -1
- package/modules/deckgl.esm.min.js +2 -2
- package/modules/deckgl.min.cjs +2 -2
- package/modules/deckgl.min.js +2 -2
- package/modules/devtools.d.ts +1 -1
- package/modules/devtools.esm.min.js +1 -1
- package/modules/devtools.min.cjs +1 -1
- package/modules/devtools.min.js +1 -1
- package/modules/dhtmlx-compat.d.ts +1 -1
- package/modules/dhtmlx-compat.esm.min.js +2 -2
- package/modules/dhtmlx-compat.min.cjs +2 -2
- package/modules/dhtmlx-compat.min.js +2 -2
- package/modules/gantt.d.ts +1 -1
- package/modules/gantt.esm.min.js +2 -2
- package/modules/gantt.min.cjs +2 -2
- package/modules/gantt.min.js +2 -2
- package/modules/geo-europe-nuts.d.ts +1 -1
- package/modules/geo-europe-nuts.esm.min.js +1 -1
- package/modules/geo-europe-nuts.min.cjs +1 -1
- package/modules/geo-europe-nuts.min.js +1 -1
- package/modules/geo-uk.d.ts +1 -1
- package/modules/geo-uk.esm.min.js +1 -1
- package/modules/geo-uk.min.cjs +1 -1
- package/modules/geo-uk.min.js +1 -1
- package/modules/geo-us-states.d.ts +1 -1
- package/modules/geo-us-states.esm.min.js +1 -1
- package/modules/geo-us-states.min.cjs +1 -1
- package/modules/geo-us-states.min.js +1 -1
- package/modules/geo-world-110m.d.ts +1 -1
- package/modules/geo-world-110m.esm.min.js +1 -1
- package/modules/geo-world-110m.min.cjs +1 -1
- package/modules/geo-world-110m.min.js +1 -1
- package/modules/geo-world-50m.d.ts +1 -1
- package/modules/geo-world-50m.esm.min.js +1 -1
- package/modules/geo-world-50m.min.cjs +1 -1
- package/modules/geo-world-50m.min.js +1 -1
- package/modules/geometry.d.ts +1 -1
- package/modules/geometry.esm.min.js +2 -2
- package/modules/geometry.min.cjs +2 -2
- package/modules/geometry.min.js +2 -2
- package/modules/htmx.d.ts +1 -1
- package/modules/htmx.esm.min.js +3 -3
- package/modules/htmx.min.cjs +3 -3
- package/modules/htmx.min.js +3 -3
- package/modules/kanban.d.ts +1 -1
- package/modules/kanban.esm.min.js +2 -2
- package/modules/kanban.min.cjs +2 -2
- package/modules/kanban.min.js +2 -2
- package/modules/kpi.d.ts +1 -1
- package/modules/kpi.esm.min.js +2 -2
- package/modules/kpi.min.cjs +2 -2
- package/modules/kpi.min.js +2 -2
- package/modules/layout.d.ts +1 -1
- package/modules/layout.esm.min.js +2 -2
- package/modules/layout.min.cjs +2 -2
- package/modules/layout.min.js +2 -2
- package/modules/leaflet.d.ts +1 -1
- package/modules/leaflet.esm.min.js +2 -2
- package/modules/leaflet.min.cjs +2 -2
- package/modules/leaflet.min.js +2 -2
- package/modules/list.d.ts +1 -1
- package/modules/list.esm.min.js +2 -2
- package/modules/list.min.cjs +2 -2
- package/modules/list.min.js +2 -2
- package/modules/mock-socket.d.ts +1 -1
- package/modules/mock-socket.esm.min.js +1 -1
- package/modules/mock-socket.min.cjs +1 -1
- package/modules/mock-socket.min.js +1 -1
- package/modules/presets/antd5.css +23 -0
- package/modules/presets/bootstrap5.css +46 -5
- package/modules/presets/fluent2.css +31 -4
- package/modules/presets/material3.css +53 -5
- package/modules/presets.d.ts +1 -1
- package/modules/presets.esm.min.js +2 -2
- package/modules/presets.min.cjs +2 -2
- package/modules/presets.min.js +2 -2
- package/modules/react.d.ts +1 -1
- package/modules/react.esm.min.js +2 -2
- package/modules/react.min.cjs +2 -2
- package/modules/react.min.js +2 -2
- package/modules/svelte.d.ts +1 -1
- package/modules/svelte.esm.min.js +2 -2
- package/modules/svelte.min.cjs +2 -2
- package/modules/svelte.min.js +2 -2
- package/modules/tabs.d.ts +1 -1
- package/modules/tabs.esm.min.js +2 -2
- package/modules/tabs.min.cjs +2 -2
- package/modules/tabs.min.js +2 -2
- package/modules/vue.d.ts +1 -1
- package/modules/vue.esm.min.js +2 -2
- package/modules/vue.min.cjs +2 -2
- package/modules/vue.min.js +2 -2
- package/modules/webcomponent.d.ts +1 -1
- package/modules/webcomponent.esm.min.js +3 -3
- package/modules/webcomponent.min.cjs +3 -3
- package/modules/webcomponent.min.js +3 -3
- package/package.json +1 -1
package/modules/kpi.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.81.0, kpi module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
6
|
-
(function(_t){"use strict";var Pt=Object.create(null),jt=Object.create(null);function Me(p,ce){Pt[p]=ce}function St(p){var ce=jt[p];if(ce)return ce;var ee=Object.create(null);jt[p]=ee;var Q=Pt[p];if(!Q)throw new Error("[lattice] missing module: "+p);return Q(ee,St),ee}Me("packages/core/src/internal/util.js",function(p,ce){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return P}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return G}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return d}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return y}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return v}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return g}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return b}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return $}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return h}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return w}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return S}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return te}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return U}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return K}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return r}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return t}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return n}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return s}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return c}});const ee="1.80.0";async function Q(){return ee}const T="1.80.0",O=new Set,m=2e3;function C(o){if(O.add(o),O.size>m){const l=O.values().next().value;l!==void 0&&O.delete(l)}}const a=[],E=500;function I(o,l,f){a.push({key:o,level:l,message:f.map(A=>typeof A=="string"?A:x(A)).join(" "),at:Date.now()}),a.length>E&&a.shift()}function x(o){if(o instanceof Error)return o.message;try{return JSON.stringify(o)}catch{return String(o)}}function P(){return a.map(o=>({...o}))}function L(o){if(o.length===0||typeof o[0]!="string")return o;const l=o[0].replace(/^\[lattice\]\s*/,"");return l===o[0]?o:[l,...o.slice(1)]}function D(o,...l){if(O.has(o))return;C(o);const f=L(l);I(o,"warn",f),console.warn("[lattice]",...f)}function Z(o,...l){if(O.has(o))return;C(o);const f=L(l);I(o,"info",f),console.info("[lattice]",...f)}function G(){O.clear(),a.length=0}function d(o,l){const f=new Error(`[lattice] ${o}`);throw l!==void 0&&(f.cause=l),f}function y(o,l){o||d(l)}const v=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function g(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)}function b(o){return typeof o=="function"}function $(o){return o==null}function k(o){return o==null||o===""}function M(o){return typeof o!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(o))?!0:!!(o.prototype&&Object.getOwnPropertyNames(o.prototype).length>1)}const z=new Map;function fe(o){let l=z.get(o);if(l)return l;if(!o.includes("."))l=f=>f?.[o];else{const f=o.split("."),A=f.length;l=V=>{let ue=V;for(let se=0;se<A;se++){if(ue==null)return;ue=ue[f[se]]}return ue}}return z.set(o,l),l}const q=new Map;function h(o){let l=q.get(o);if(l)return l;if(!o.includes("."))l=(f,A)=>{f!=null&&(f[o]=A)};else{const f=o.split("."),A=f.length-1;l=(V,ue)=>{let se=V;for(let he=0;he<A;he++){if(se==null)return;const Se=f[he];se[Se]==null&&(se[Se]={}),se=se[Se]}se!=null&&(se[f[A]]=ue)}}return q.set(o,l),l}function w(o,l){return fe(l)(o)}function F(o,l,f){h(l)(o,f)}function _(o){return o?(o.includes(".")?o.slice(o.lastIndexOf(".")+1):o).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 H={"&":"&","<":"<",">":">",'"':""","'":"'"};function ie(o){const l=o==null?"":String(o);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,f=>H[f]):l}function de(o){return String(o).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function Ae(o,l,f){if(o!==void 0)return o===!0?{enabled:!0,...f}:o===!1?{enabled:!1}:g(o)?o:{[l]:o,enabled:!0}}function S(o){return o==null?[]:Array.isArray(o)?o:[o]}const R=Object.freeze(new Set(["__proto__","constructor","prototype"]));function W(o,l){if(!g(o))return g(l)?{...l}:l;if(!g(l))return l===void 0?o:l;const f={...o};for(const A of Object.keys(l)){if(R.has(A))continue;const V=l[A];V!==void 0&&(f[A]=g(V)&&g(f[A])?W(f[A],V):V)}return f}function te(o,l){if(!g(o)||!g(l)||o===l)return l;const f=Object.create(Object.getPrototypeOf(o));return Object.assign(f,o,l),f}class be{#e;#t=new Map;#n;constructor(l=256,f=null){this.#e=l,this.#n=f}get size(){return this.#t.size}get max(){return this.#e}set max(l){this.#e=l,this.#r()}has(l){return this.#t.has(l)}get(l){const f=this.#t;if(!f.has(l))return;const A=f.get(l);return f.delete(l),f.set(l,A),A}peek(l){return this.#t.get(l)}set(l,f){const A=this.#t;return A.has(l)&&A.delete(l),A.set(l,f),this.#r(),f}delete(l){const f=this.#t.get(l);return this.#t.delete(l)&&this.#n&&this.#n(f,l),f}clear(){if(this.#n)for(const[l,f]of this.#t)this.#n(f,l);this.#t.clear()}keys(){return this.#t.keys()}values(){return this.#t.values()}#r(){const l=this.#t;for(;l.size>this.#e;){const f=l.keys().next().value,A=l.get(f);l.delete(f),this.#n&&this.#n(A,f)}}}const j=new Map;function U(o,l){const f=`${o||""}|${l?JSON.stringify(l):""}`;let A=j.get(f);return A||(A=new Intl.Collator(o||void 0,{numeric:!0,sensitivity:"variant",...l}),j.set(f,A)),A}function K(o,l){if(o===l)return 0;if(o==null)return 1;if(l==null)return-1;if(typeof o=="number"&&typeof l=="number")return Number.isNaN(o)?Number.isNaN(l)?0:1:Number.isNaN(l)||o<l?-1:o>l?1:0;const f=String(o),A=String(l);return f<A?-1:f>A?1:0}function N(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const e=typeof requestAnimationFrame=="function";function r(o){return e?requestAnimationFrame(o):setTimeout(()=>o(N()),16)}function i(o){o!=null&&(e?cancelAnimationFrame(o):clearTimeout(o))}function t(o){let l=null,f=null;const A=()=>{l=null;const ue=f;f=null,o(...ue||[])},V=(...ue)=>{f=ue,l===null&&(l=r(A))};return V.cancel=()=>{i(l),l=null,f=null},V.flush=()=>{l!==null&&(i(l),A())},V}function n(o,l){let f=null,A=null;const V=()=>{if(f=null,A===null)return;const he=A;A=null,o(...he),ue()},ue=()=>{f=setTimeout(V,l),typeof f?.unref=="function"&&f.unref()},se=(...he)=>{f===null?(o(...he),ue()):(A=he,clearTimeout(f),ue())};return se.flush=()=>{if(f!==null&&clearTimeout(f),f=null,A===null)return;const he=A;A=null,o(...he)},se.cancel=()=>{f!==null&&clearTimeout(f),f=null,A=null},se.pending=()=>f!==null||A!==null,se}function s(o,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(o,{timeout:l}):setTimeout(()=>o({timeRemaining:()=>0,didTimeout:!0}),1)}let u=0;function c(o="l"){return`${o}${(++u).toString(36)}`}}),Me("packages/modules/kpi/aggregate.js",function(p,ce){"use strict";Object.defineProperty(p,"AGGREGATIONS",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"makeAccumulator",{enumerable:!0,get:function(){return a}}),Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return I}}),Object.defineProperty(p,"bandFor",{enumerable:!0,get:function(){return x}}),Object.defineProperty(p,"UNKNOWN_STATUS",{enumerable:!0,get:function(){return P}}),Object.defineProperty(p,"statusFor",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"barBounds",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"barPercent",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(p,"formatValue",{enumerable:!0,get:function(){return G}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isNil,T=ee.isFunction,O=ee.pathGetter,m=Object.freeze(["sum","avg","min","max","count","countDistinct","custom"]);function C(d){if(Q(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,v=0;return{add(g){const b=C(g);b!==null&&(y+=b,v+=1)},remove(g){const b=C(g);b!==null&&(y-=b,v-=1)},value(){return v>0?y:0}}}case"avg":{let y=0,v=0;return{add(g){const b=C(g);b!==null&&(y+=b,v+=1)},remove(g){const b=C(g);b!==null&&(y-=b,v-=1)},value(){return v>0?y/v:null}}}case"countDistinct":{const y=new Map;return{add(v){Q(v)||y.set(v,(y.get(v)||0)+1)},remove(v){if(Q(v))return;const g=y.get(v);g&&(g===1?y.delete(v):y.set(v,g-1))},value(){return y.size}}}case"min":case"max":return E(d==="max");default:return null}}function E(d){const y=new Map;let v=null,g=!1;const b=(k,M)=>d?k>M:k<M,$=()=>{let k=null;for(const M of y.keys())(k===null||b(M,k))&&(k=M);return k};return{add(k){const M=C(k);M!==null&&(y.set(M,(y.get(M)||0)+1),!g&&(v===null||b(M,v))&&(v=M))},remove(k){const M=C(k);if(M===null)return;const z=y.get(M);z&&(z===1?(y.delete(M),M===v&&(g=!0)):y.set(M,z-1))},value(){return y.size===0?null:(g&&(v=$(),g=!1),v)}}}function I(d){return T(d)?d:typeof d=="string"&&d?O(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 $=Q(b.min)?-1/0:b.min,k=Q(b.max)?1/0:b.max;if(d>=$&&d<k)return b.status??null}return null}const v=y.thresholds;return!v||Q(v.warn)||Q(v.critical)?null:v.direction==="lowerIsBetter"?d<=v.warn?"good":d<=v.critical?"warn":"critical":d>=v.warn?"good":d>=v.critical?"warn":"critical"}const P="unknown";function L(d,y,v){return v?x(d,y):P}function D(d){if(!d)return null;const y=[];let v=!1;const g=k=>{if(Q(k))return!1;const M=Number(k);return Number.isFinite(M)?(y.push(M),!0):!1};if(Array.isArray(d.bands)&&d.bands.length)for(const k of d.bands||[])g(k&&k.min)||(v=!0),g(k&&k.max)||(v=!0);else d.thresholds&&!Q(d.thresholds.warn)&&!Q(d.thresholds.critical)&&(g(d.thresholds.warn),g(d.thresholds.critical)),v=!0;if(g(d.target),v&&y.push(0),!y.length)return null;const b=Math.min(...y),$=Math.max(...y);return $>b?{lo:b,hi:$}:null}function Z(d,y){if(!y||Q(d))return null;const v=Number(d);if(!Number.isFinite(v))return null;const g=y.hi-y.lo;return g?Math.max(0,Math.min(1,(v-y.lo)/g))*100:null}function G(d,y,v="—"){if(d==null||Number.isNaN(d))return v;const g=typeof y=="string"?{type:y}:y||{},b=g.type||"number",$=g.locale||void 0,k={};b==="currency"?(k.style="currency",k.currency=g.currency||"USD"):b==="percent"?k.style="percent":b==="compact"&&(k.notation="compact"),Q(g.decimals)||(k.minimumFractionDigits=g.decimals,k.maximumFractionDigits=g.decimals);const M=typeof g.prefix=="string"?g.prefix:"",z=typeof g.suffix=="string"?g.suffix:"";try{return M+new Intl.NumberFormat($,k).format(d)+z}catch{return M+String(d)+z}}}),Me("packages/core/src/source/tree.js",function(p,ce){"use strict";Object.defineProperty(p,"SYNTHETIC",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"buildFromPath",{enumerable:!0,get:function(){return a}}),Object.defineProperty(p,"buildFromParentKey",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"assignLevels",{enumerable:!0,get:function(){return x}}),Object.defineProperty(p,"resolveTree",{enumerable:!0,get:function(){return P}}),Object.defineProperty(p,"buildTree",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"indexTree",{enumerable:!0,get:function(){return D}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isFunction,T=ee.warnOnce,O="",m="\0tree:";function C(Z,G){return{physical:Z,key:G,level:0,children:[],value:void 0}}function a(Z,G){const d=[],y=new Map;for(let v=0;v<Z.length;v++){const g=Z[v],b=G.pathOf(g),$=Array.isArray(b)?b.map(M=>String(M)):[];if(!$.length){const M=C(g,G.keyOf(g));d.push(M);continue}let k=null;for(let M=0;M<$.length;M++){const z=$.slice(0,M+1).join(O),fe=M===$.length-1;let q=y.get(z);q&&fe&&q.physical===-1&&(q.physical=g,q.key=G.keyOf(g)),q||(q=C(fe?g:-1,fe?G.keyOf(g):m+z),q.level=M,q.value=$[M],y.set(z,q),k?k.children.push(q):d.push(q)),k=q}}return{roots:d,nodes:y}}function E(Z,G){const d=new Map,y=[];for(let $=0;$<Z.length;$++){const k=Z[$],M=G.keyOf(k),z=C(k,M);d.set(M,z);const fe=G.parentOf(k);fe!=null&&fe!==""&&y.push({node:z,parent:String(fe)})}let v=null;const g=new Map;for(const{node:$,parent:k}of y){const M=d.get(k);if(M){g.set($.key,M);continue}G.orphans&&G.orphans!=="root"&&(v||(v=C(-1,`${m}orphans`),v.value=G.orphans),g.set($.key,v))}const b=[];for(const $ of d.values()){const k=g.get($.key);k?k.children.push($):b.push($)}return v&&v.children.length&&b.push(v),{roots:I(b,d,G.orphans,v),nodes:d}}function I(Z,G,d,y){const v=new Set,g=[...Z];for(;g.length;){const z=g.pop();if(!v.has(z.key)){v.add(z.key);for(const fe of z.children)g.push(fe)}}const b=[];for(const z of G.values())v.has(z.key)||b.push(z);if(!b.length)return Z;const $=!!d&&d!=="root";T("tree.cycle",`tree.parentKey produced ${b.length} row(s) inside a parent cycle; `+($?`they are shown under "${d}".`:"they are shown at the root."));for(const z of b)z.children=z.children.filter(fe=>v.has(fe.key));if(!$)return[...Z,...b];let k=y;const M=[...Z];return k||(k=C(-1,`${m}orphans`),k.value=d,M.push(k)),k.children.push(...b),M}function x(Z){let G=0;const d=(y,v)=>{for(const g of y)g.level=v,v>G&&(G=v),g.children.length&&d(g.children,v+1)};return d(Z,0),G}function P(Z,G){if(!Z||typeof Z!="object")return null;const d=Z.path,y=Z.parentKey,v=Q(Z.hasChildren)?g=>!!Z.hasChildren(G.dataAt(g)):null;if(Q(d))return{mode:"path",pathOf:g=>d(G.dataAt(g)),keyOf:G.keyOf,declaresChildren:v};if(y!=null){const g=Q(y)?y:b=>b?.[y];return{mode:"parentKey",parentOf:b=>g(G.dataAt(b)),keyOf:G.keyOf,orphans:Z.orphans||"root",declaresChildren:v}}return T("tree.shape","tree is configured with neither `path` nor `parentKey`; rows stay flat."),null}function L(Z,G){const d=G.mode==="path"?a(Z,G):E(Z,G),y=x(d.roots);return{...d,depth:y}}function D(Z,G){const d=new Map,y=v=>{for(let g=0;g<v.length;g++){const b=v[g];if(b.physical>=0){const $=G?G(b.physical):!1,k=$&&b.children.length===0;d.set(b.physical,{level:b.level,posinset:g+1,setsize:v.length,hasChildren:b.children.length>0||$,lazy:k})}b.children.length&&y(b.children)}};return y(Z),d}}),Me("packages/modules/kpi/tree.js",function(p,ce){"use strict";Object.defineProperty(p,"DEFAULT_SEPARATOR",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"worseOf",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"resolveHierarchy",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"decorateNodes",{enumerable:!0,get:function(){return d}}),Object.defineProperty(p,"allNodes",{enumerable:!0,get:function(){return y}}),Object.defineProperty(p,"visibleNodes",{enumerable:!0,get:function(){return v}}),Object.defineProperty(p,"branchKeys",{enumerable:!0,get:function(){return g}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isFunction,T=ee.isObject,O=ee.warnOnce,m=ce("packages/core/src/source/tree.js"),C=m.resolveTree,a=m.buildTree,E=".",I=Object.freeze({good:1,warn:2,critical:3}),x=Object.freeze([null,"good","warn","critical"]);function P(b){return!!b&&b.kind!=="clock"&&(b.value===null||b.value===void 0)}function L(b,$){const k=Math.max(I[b]||0,I[$]||0);return x[k]}function D(b,$){if(!$.length||b===!1)return null;if(b==null)return $.some(h=>h.id.includes(E))&&O("kpi:tree:dotted-id","kpi: tile ids contain dots; set `tree` to render them as a hierarchy."),null;const k=T(b)?b:{},M=$.map((h,w)=>w),z=h=>$[h].id;if(Q(k.path)||k.parentKey!==null&&k.parentKey!==void 0){const h=C(k,{dataAt:w=>$[w].spec,keyOf:z});return h?Z({...a(M,h),mode:h.mode},$):null}const fe=typeof k.separator=="string"&&k.separator?k.separator:E;if(!$.some(h=>h.id.includes(fe)))return null;const q=C({path:h=>String(h).split(fe)},{dataAt:h=>$[h].id,keyOf:z});return Z({...a(M,q),mode:"id"},$)}function Z(b,$){const k=new Set,M=new Set($.map(q=>q.id)),z=(q,h)=>{for(const w of q){const F=w.physical>=0?w.key:w.value===null||w.value===void 0?"":String(w.value),_=`${h}/${F}`;w.physical>=0?k.add(w.physical):M.has(_)||(w.key=_,M.add(_)),z(w.children,_)}};z(b.roots,"");const fe=$.filter((q,h)=>!k.has(h)).map(q=>q.id);return fe.length&&O("kpi:tree:unplaced",`${fe.length} KPI tile(s) are not on the tree and will not render: ${fe.join(", ")}. Two tiles cannot share one path; a path names the tile's own place, last segment included.`),b}function G(b,$){return b&&b.spec&&b.spec.label!==null&&b.spec.label!==void 0?String(b.spec.label):$!=null?String($):b?b.label:""}function d(b,$,k,M){const z=(fe,q,h,w)=>{const F=fe.physical>=0?$[fe.physical]:null,_=F?k.get(F.id):null,H=fe.children.map((R,W)=>z(R,q+1,W,fe.children.length)),ie=_?_.status:null;let de=I[ie]?ie:null,Ae=ie==="unknown"||P(_)?1:0,S=_?1:0;for(const R of H)de=L(de,R.rollup),Ae+=R.unknown,S+=R.items;return{key:fe.key,id:_?_.id:null,label:G(F,fe.value),level:q,posinset:h+1,setsize:w,hasChildren:H.length>0,expanded:H.length>0&&M.has(fe.key),children:H,tile:_,value:_?_.value:null,formatted:_?_.formatted:null,status:ie??null,rollup:de,unknown:Ae,items:S}};return b.roots.map((fe,q)=>z(fe,0,q,b.roots.length))}function y(b){const $=[],k=M=>{for(const z of M)$.push(z),k(z.children)};return k(b),$}function v(b){const $=[],k=M=>{for(const z of M)$.push(z),z.expanded&&k(z.children)};return k(b),$}function g(b){const $=[],k=M=>{for(const z of M)z.children.length&&($.push(z.key),k(z.children))};return k(b),$}}),Me("packages/modules/kpi/messages.js",function(p,ce){"use strict";Object.defineProperty(p,"FALLBACK_EN",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"resolveMessages",{enumerable:!0,get:function(){return C}}),Object.defineProperty(p,"fallbackT",{enumerable:!0,get:function(){return a}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isFunction,T=ee.isObject,O=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,P)=>P in I?String(I[P]):x):E}function C(E){const I=T(E.messages)&&Q(E.messages.t)&&E.messages||T(E.grid)&&T(E.grid.messages)&&Q(E.grid.messages.t)&&E.grid.messages||null;return(x,P)=>{if(I){let L;try{L=I.t(x,P)}catch{L=null}if(typeof L=="string"&&L&&L!==x)return L}return m(O[x]||x,P)}}const a=C({})}),Me("packages/modules/kpi/view.js",function(p,ce){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return a}}),Object.defineProperty(p,"EMPTY_TEXT",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(p,"sparkPoints",{enumerable:!0,get:function(){return G}}),Object.defineProperty(p,"tileMinFor",{enumerable:!0,get:function(){return g}}),Object.defineProperty(p,"renderKPI",{enumerable:!0,get:function(){return z}});const Q=ce("packages/modules/kpi/aggregate.js").UNKNOWN_STATUS,O=ce("packages/modules/kpi/tree.js").visibleNodes,C=ce("packages/modules/kpi/messages.js").fallbackT,a="lat-kpi",E=C("kpi.status.unknown"),I=C,x=Object.freeze({good:"●",warn:"▲",critical:"■",unknown:"○"});function P(t,n){return n?t(`kpi.status.${n}`):""}function L(t){return t&&t.stale?"kpi.status.stale":"kpi.status.unknown"}class D{constructor(){this.map=new Map}on(n,s){return this.map.has(n)||this.map.set(n,new Set),this.map.get(n).add(s),()=>this.off(n,s)}off(n,s){this.map.get(n)?.delete(s)}emit(n,s){for(const u of this.map.get(n)||[])u(s)}}function Z(t){if(!t||t.getElementById&&t.getElementById(`${a}-styles`))return;const n=t.createElement("style");n.id=`${a}-styles`,n.setAttribute("id",`${a}-styles`),n.textContent=`
|
|
6
|
+
(function(_t){"use strict";var Pt=Object.create(null),jt=Object.create(null);function Me(p,ce){Pt[p]=ce}function St(p){var ce=jt[p];if(ce)return ce;var ee=Object.create(null);jt[p]=ee;var Q=Pt[p];if(!Q)throw new Error("[lattice] missing module: "+p);return Q(ee,St),ee}Me("packages/core/src/internal/util.js",function(p,ce){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return P}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return G}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return d}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return y}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return v}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return g}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return b}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return $}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return h}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return w}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return S}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return te}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return U}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return K}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return r}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return t}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return n}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return s}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return c}});const ee="1.81.0";async function Q(){return ee}const T="1.81.0",O=new Set,m=2e3;function C(o){if(O.add(o),O.size>m){const l=O.values().next().value;l!==void 0&&O.delete(l)}}const a=[],E=500;function I(o,l,f){a.push({key:o,level:l,message:f.map(A=>typeof A=="string"?A:x(A)).join(" "),at:Date.now()}),a.length>E&&a.shift()}function x(o){if(o instanceof Error)return o.message;try{return JSON.stringify(o)}catch{return String(o)}}function P(){return a.map(o=>({...o}))}function L(o){if(o.length===0||typeof o[0]!="string")return o;const l=o[0].replace(/^\[lattice\]\s*/,"");return l===o[0]?o:[l,...o.slice(1)]}function D(o,...l){if(O.has(o))return;C(o);const f=L(l);I(o,"warn",f),console.warn("[lattice]",...f)}function Z(o,...l){if(O.has(o))return;C(o);const f=L(l);I(o,"info",f),console.info("[lattice]",...f)}function G(){O.clear(),a.length=0}function d(o,l){const f=new Error(`[lattice] ${o}`);throw l!==void 0&&(f.cause=l),f}function y(o,l){o||d(l)}const v=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function g(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)}function b(o){return typeof o=="function"}function $(o){return o==null}function k(o){return o==null||o===""}function M(o){return typeof o!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(o))?!0:!!(o.prototype&&Object.getOwnPropertyNames(o.prototype).length>1)}const z=new Map;function fe(o){let l=z.get(o);if(l)return l;if(!o.includes("."))l=f=>f?.[o];else{const f=o.split("."),A=f.length;l=V=>{let ue=V;for(let se=0;se<A;se++){if(ue==null)return;ue=ue[f[se]]}return ue}}return z.set(o,l),l}const q=new Map;function h(o){let l=q.get(o);if(l)return l;if(!o.includes("."))l=(f,A)=>{f!=null&&(f[o]=A)};else{const f=o.split("."),A=f.length-1;l=(V,ue)=>{let se=V;for(let he=0;he<A;he++){if(se==null)return;const Se=f[he];se[Se]==null&&(se[Se]={}),se=se[Se]}se!=null&&(se[f[A]]=ue)}}return q.set(o,l),l}function w(o,l){return fe(l)(o)}function F(o,l,f){h(l)(o,f)}function _(o){return o?(o.includes(".")?o.slice(o.lastIndexOf(".")+1):o).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 H={"&":"&","<":"<",">":">",'"':""","'":"'"};function ie(o){const l=o==null?"":String(o);return/[&<>"']/.test(l)?l.replace(/[&<>"']/g,f=>H[f]):l}function de(o){return String(o).replace(/\w\S*/g,l=>l[0].toUpperCase()+l.slice(1).toLowerCase())}function Ae(o,l,f){if(o!==void 0)return o===!0?{enabled:!0,...f}:o===!1?{enabled:!1}:g(o)?o:{[l]:o,enabled:!0}}function S(o){return o==null?[]:Array.isArray(o)?o:[o]}const R=Object.freeze(new Set(["__proto__","constructor","prototype"]));function W(o,l){if(!g(o))return g(l)?{...l}:l;if(!g(l))return l===void 0?o:l;const f={...o};for(const A of Object.keys(l)){if(R.has(A))continue;const V=l[A];V!==void 0&&(f[A]=g(V)&&g(f[A])?W(f[A],V):V)}return f}function te(o,l){if(!g(o)||!g(l)||o===l)return l;const f=Object.create(Object.getPrototypeOf(o));return Object.assign(f,o,l),f}class be{#e;#t=new Map;#n;constructor(l=256,f=null){this.#e=l,this.#n=f}get size(){return this.#t.size}get max(){return this.#e}set max(l){this.#e=l,this.#r()}has(l){return this.#t.has(l)}get(l){const f=this.#t;if(!f.has(l))return;const A=f.get(l);return f.delete(l),f.set(l,A),A}peek(l){return this.#t.get(l)}set(l,f){const A=this.#t;return A.has(l)&&A.delete(l),A.set(l,f),this.#r(),f}delete(l){const f=this.#t.get(l);return this.#t.delete(l)&&this.#n&&this.#n(f,l),f}clear(){if(this.#n)for(const[l,f]of this.#t)this.#n(f,l);this.#t.clear()}keys(){return this.#t.keys()}values(){return this.#t.values()}#r(){const l=this.#t;for(;l.size>this.#e;){const f=l.keys().next().value,A=l.get(f);l.delete(f),this.#n&&this.#n(A,f)}}}const j=new Map;function U(o,l){const f=`${o||""}|${l?JSON.stringify(l):""}`;let A=j.get(f);return A||(A=new Intl.Collator(o||void 0,{numeric:!0,sensitivity:"variant",...l}),j.set(f,A)),A}function K(o,l){if(o===l)return 0;if(o==null)return 1;if(l==null)return-1;if(typeof o=="number"&&typeof l=="number")return Number.isNaN(o)?Number.isNaN(l)?0:1:Number.isNaN(l)||o<l?-1:o>l?1:0;const f=String(o),A=String(l);return f<A?-1:f>A?1:0}function N(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const e=typeof requestAnimationFrame=="function";function r(o){return e?requestAnimationFrame(o):setTimeout(()=>o(N()),16)}function i(o){o!=null&&(e?cancelAnimationFrame(o):clearTimeout(o))}function t(o){let l=null,f=null;const A=()=>{l=null;const ue=f;f=null,o(...ue||[])},V=(...ue)=>{f=ue,l===null&&(l=r(A))};return V.cancel=()=>{i(l),l=null,f=null},V.flush=()=>{l!==null&&(i(l),A())},V}function n(o,l){let f=null,A=null;const V=()=>{if(f=null,A===null)return;const he=A;A=null,o(...he),ue()},ue=()=>{f=setTimeout(V,l),typeof f?.unref=="function"&&f.unref()},se=(...he)=>{f===null?(o(...he),ue()):(A=he,clearTimeout(f),ue())};return se.flush=()=>{if(f!==null&&clearTimeout(f),f=null,A===null)return;const he=A;A=null,o(...he)},se.cancel=()=>{f!==null&&clearTimeout(f),f=null,A=null},se.pending=()=>f!==null||A!==null,se}function s(o,l=50){return typeof requestIdleCallback=="function"?requestIdleCallback(o,{timeout:l}):setTimeout(()=>o({timeRemaining:()=>0,didTimeout:!0}),1)}let u=0;function c(o="l"){return`${o}${(++u).toString(36)}`}}),Me("packages/modules/kpi/aggregate.js",function(p,ce){"use strict";Object.defineProperty(p,"AGGREGATIONS",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"makeAccumulator",{enumerable:!0,get:function(){return a}}),Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return I}}),Object.defineProperty(p,"bandFor",{enumerable:!0,get:function(){return x}}),Object.defineProperty(p,"UNKNOWN_STATUS",{enumerable:!0,get:function(){return P}}),Object.defineProperty(p,"statusFor",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"barBounds",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"barPercent",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(p,"formatValue",{enumerable:!0,get:function(){return G}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isNil,T=ee.isFunction,O=ee.pathGetter,m=Object.freeze(["sum","avg","min","max","count","countDistinct","custom"]);function C(d){if(Q(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,v=0;return{add(g){const b=C(g);b!==null&&(y+=b,v+=1)},remove(g){const b=C(g);b!==null&&(y-=b,v-=1)},value(){return v>0?y:0}}}case"avg":{let y=0,v=0;return{add(g){const b=C(g);b!==null&&(y+=b,v+=1)},remove(g){const b=C(g);b!==null&&(y-=b,v-=1)},value(){return v>0?y/v:null}}}case"countDistinct":{const y=new Map;return{add(v){Q(v)||y.set(v,(y.get(v)||0)+1)},remove(v){if(Q(v))return;const g=y.get(v);g&&(g===1?y.delete(v):y.set(v,g-1))},value(){return y.size}}}case"min":case"max":return E(d==="max");default:return null}}function E(d){const y=new Map;let v=null,g=!1;const b=(k,M)=>d?k>M:k<M,$=()=>{let k=null;for(const M of y.keys())(k===null||b(M,k))&&(k=M);return k};return{add(k){const M=C(k);M!==null&&(y.set(M,(y.get(M)||0)+1),!g&&(v===null||b(M,v))&&(v=M))},remove(k){const M=C(k);if(M===null)return;const z=y.get(M);z&&(z===1?(y.delete(M),M===v&&(g=!0)):y.set(M,z-1))},value(){return y.size===0?null:(g&&(v=$(),g=!1),v)}}}function I(d){return T(d)?d:typeof d=="string"&&d?O(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 $=Q(b.min)?-1/0:b.min,k=Q(b.max)?1/0:b.max;if(d>=$&&d<k)return b.status??null}return null}const v=y.thresholds;return!v||Q(v.warn)||Q(v.critical)?null:v.direction==="lowerIsBetter"?d<=v.warn?"good":d<=v.critical?"warn":"critical":d>=v.warn?"good":d>=v.critical?"warn":"critical"}const P="unknown";function L(d,y,v){return v?x(d,y):P}function D(d){if(!d)return null;const y=[];let v=!1;const g=k=>{if(Q(k))return!1;const M=Number(k);return Number.isFinite(M)?(y.push(M),!0):!1};if(Array.isArray(d.bands)&&d.bands.length)for(const k of d.bands||[])g(k&&k.min)||(v=!0),g(k&&k.max)||(v=!0);else d.thresholds&&!Q(d.thresholds.warn)&&!Q(d.thresholds.critical)&&(g(d.thresholds.warn),g(d.thresholds.critical)),v=!0;if(g(d.target),v&&y.push(0),!y.length)return null;const b=Math.min(...y),$=Math.max(...y);return $>b?{lo:b,hi:$}:null}function Z(d,y){if(!y||Q(d))return null;const v=Number(d);if(!Number.isFinite(v))return null;const g=y.hi-y.lo;return g?Math.max(0,Math.min(1,(v-y.lo)/g))*100:null}function G(d,y,v="—"){if(d==null||Number.isNaN(d))return v;const g=typeof y=="string"?{type:y}:y||{},b=g.type||"number",$=g.locale||void 0,k={};b==="currency"?(k.style="currency",k.currency=g.currency||"USD"):b==="percent"?k.style="percent":b==="compact"&&(k.notation="compact"),Q(g.decimals)||(k.minimumFractionDigits=g.decimals,k.maximumFractionDigits=g.decimals);const M=typeof g.prefix=="string"?g.prefix:"",z=typeof g.suffix=="string"?g.suffix:"";try{return M+new Intl.NumberFormat($,k).format(d)+z}catch{return M+String(d)+z}}}),Me("packages/core/src/source/tree.js",function(p,ce){"use strict";Object.defineProperty(p,"SYNTHETIC",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"buildFromPath",{enumerable:!0,get:function(){return a}}),Object.defineProperty(p,"buildFromParentKey",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"assignLevels",{enumerable:!0,get:function(){return x}}),Object.defineProperty(p,"resolveTree",{enumerable:!0,get:function(){return P}}),Object.defineProperty(p,"buildTree",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"indexTree",{enumerable:!0,get:function(){return D}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isFunction,T=ee.warnOnce,O="",m="\0tree:";function C(Z,G){return{physical:Z,key:G,level:0,children:[],value:void 0}}function a(Z,G){const d=[],y=new Map;for(let v=0;v<Z.length;v++){const g=Z[v],b=G.pathOf(g),$=Array.isArray(b)?b.map(M=>String(M)):[];if(!$.length){const M=C(g,G.keyOf(g));d.push(M);continue}let k=null;for(let M=0;M<$.length;M++){const z=$.slice(0,M+1).join(O),fe=M===$.length-1;let q=y.get(z);q&&fe&&q.physical===-1&&(q.physical=g,q.key=G.keyOf(g)),q||(q=C(fe?g:-1,fe?G.keyOf(g):m+z),q.level=M,q.value=$[M],y.set(z,q),k?k.children.push(q):d.push(q)),k=q}}return{roots:d,nodes:y}}function E(Z,G){const d=new Map,y=[];for(let $=0;$<Z.length;$++){const k=Z[$],M=G.keyOf(k),z=C(k,M);d.set(M,z);const fe=G.parentOf(k);fe!=null&&fe!==""&&y.push({node:z,parent:String(fe)})}let v=null;const g=new Map;for(const{node:$,parent:k}of y){const M=d.get(k);if(M){g.set($.key,M);continue}G.orphans&&G.orphans!=="root"&&(v||(v=C(-1,`${m}orphans`),v.value=G.orphans),g.set($.key,v))}const b=[];for(const $ of d.values()){const k=g.get($.key);k?k.children.push($):b.push($)}return v&&v.children.length&&b.push(v),{roots:I(b,d,G.orphans,v),nodes:d}}function I(Z,G,d,y){const v=new Set,g=[...Z];for(;g.length;){const z=g.pop();if(!v.has(z.key)){v.add(z.key);for(const fe of z.children)g.push(fe)}}const b=[];for(const z of G.values())v.has(z.key)||b.push(z);if(!b.length)return Z;const $=!!d&&d!=="root";T("tree.cycle",`tree.parentKey produced ${b.length} row(s) inside a parent cycle; `+($?`they are shown under "${d}".`:"they are shown at the root."));for(const z of b)z.children=z.children.filter(fe=>v.has(fe.key));if(!$)return[...Z,...b];let k=y;const M=[...Z];return k||(k=C(-1,`${m}orphans`),k.value=d,M.push(k)),k.children.push(...b),M}function x(Z){let G=0;const d=(y,v)=>{for(const g of y)g.level=v,v>G&&(G=v),g.children.length&&d(g.children,v+1)};return d(Z,0),G}function P(Z,G){if(!Z||typeof Z!="object")return null;const d=Z.path,y=Z.parentKey,v=Q(Z.hasChildren)?g=>!!Z.hasChildren(G.dataAt(g)):null;if(Q(d))return{mode:"path",pathOf:g=>d(G.dataAt(g)),keyOf:G.keyOf,declaresChildren:v};if(y!=null){const g=Q(y)?y:b=>b?.[y];return{mode:"parentKey",parentOf:b=>g(G.dataAt(b)),keyOf:G.keyOf,orphans:Z.orphans||"root",declaresChildren:v}}return T("tree.shape","tree is configured with neither `path` nor `parentKey`; rows stay flat."),null}function L(Z,G){const d=G.mode==="path"?a(Z,G):E(Z,G),y=x(d.roots);return{...d,depth:y}}function D(Z,G){const d=new Map,y=v=>{for(let g=0;g<v.length;g++){const b=v[g];if(b.physical>=0){const $=G?G(b.physical):!1,k=$&&b.children.length===0;d.set(b.physical,{level:b.level,posinset:g+1,setsize:v.length,hasChildren:b.children.length>0||$,lazy:k})}b.children.length&&y(b.children)}};return y(Z),d}}),Me("packages/modules/kpi/tree.js",function(p,ce){"use strict";Object.defineProperty(p,"DEFAULT_SEPARATOR",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"worseOf",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"resolveHierarchy",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"decorateNodes",{enumerable:!0,get:function(){return d}}),Object.defineProperty(p,"allNodes",{enumerable:!0,get:function(){return y}}),Object.defineProperty(p,"visibleNodes",{enumerable:!0,get:function(){return v}}),Object.defineProperty(p,"branchKeys",{enumerable:!0,get:function(){return g}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isFunction,T=ee.isObject,O=ee.warnOnce,m=ce("packages/core/src/source/tree.js"),C=m.resolveTree,a=m.buildTree,E=".",I=Object.freeze({good:1,warn:2,critical:3}),x=Object.freeze([null,"good","warn","critical"]);function P(b){return!!b&&b.kind!=="clock"&&(b.value===null||b.value===void 0)}function L(b,$){const k=Math.max(I[b]||0,I[$]||0);return x[k]}function D(b,$){if(!$.length||b===!1)return null;if(b==null)return $.some(h=>h.id.includes(E))&&O("kpi:tree:dotted-id","kpi: tile ids contain dots; set `tree` to render them as a hierarchy."),null;const k=T(b)?b:{},M=$.map((h,w)=>w),z=h=>$[h].id;if(Q(k.path)||k.parentKey!==null&&k.parentKey!==void 0){const h=C(k,{dataAt:w=>$[w].spec,keyOf:z});return h?Z({...a(M,h),mode:h.mode},$):null}const fe=typeof k.separator=="string"&&k.separator?k.separator:E;if(!$.some(h=>h.id.includes(fe)))return null;const q=C({path:h=>String(h).split(fe)},{dataAt:h=>$[h].id,keyOf:z});return Z({...a(M,q),mode:"id"},$)}function Z(b,$){const k=new Set,M=new Set($.map(q=>q.id)),z=(q,h)=>{for(const w of q){const F=w.physical>=0?w.key:w.value===null||w.value===void 0?"":String(w.value),_=`${h}/${F}`;w.physical>=0?k.add(w.physical):M.has(_)||(w.key=_,M.add(_)),z(w.children,_)}};z(b.roots,"");const fe=$.filter((q,h)=>!k.has(h)).map(q=>q.id);return fe.length&&O("kpi:tree:unplaced",`${fe.length} KPI tile(s) are not on the tree and will not render: ${fe.join(", ")}. Two tiles cannot share one path; a path names the tile's own place, last segment included.`),b}function G(b,$){return b&&b.spec&&b.spec.label!==null&&b.spec.label!==void 0?String(b.spec.label):$!=null?String($):b?b.label:""}function d(b,$,k,M){const z=(fe,q,h,w)=>{const F=fe.physical>=0?$[fe.physical]:null,_=F?k.get(F.id):null,H=fe.children.map((R,W)=>z(R,q+1,W,fe.children.length)),ie=_?_.status:null;let de=I[ie]?ie:null,Ae=ie==="unknown"||P(_)?1:0,S=_?1:0;for(const R of H)de=L(de,R.rollup),Ae+=R.unknown,S+=R.items;return{key:fe.key,id:_?_.id:null,label:G(F,fe.value),level:q,posinset:h+1,setsize:w,hasChildren:H.length>0,expanded:H.length>0&&M.has(fe.key),children:H,tile:_,value:_?_.value:null,formatted:_?_.formatted:null,status:ie??null,rollup:de,unknown:Ae,items:S}};return b.roots.map((fe,q)=>z(fe,0,q,b.roots.length))}function y(b){const $=[],k=M=>{for(const z of M)$.push(z),k(z.children)};return k(b),$}function v(b){const $=[],k=M=>{for(const z of M)$.push(z),z.expanded&&k(z.children)};return k(b),$}function g(b){const $=[],k=M=>{for(const z of M)z.children.length&&($.push(z.key),k(z.children))};return k(b),$}}),Me("packages/modules/kpi/messages.js",function(p,ce){"use strict";Object.defineProperty(p,"FALLBACK_EN",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"resolveMessages",{enumerable:!0,get:function(){return C}}),Object.defineProperty(p,"fallbackT",{enumerable:!0,get:function(){return a}});const ee=ce("packages/core/src/internal/util.js"),Q=ee.isFunction,T=ee.isObject,O=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,P)=>P in I?String(I[P]):x):E}function C(E){const I=T(E.messages)&&Q(E.messages.t)&&E.messages||T(E.grid)&&T(E.grid.messages)&&Q(E.grid.messages.t)&&E.grid.messages||null;return(x,P)=>{if(I){let L;try{L=I.t(x,P)}catch{L=null}if(typeof L=="string"&&L&&L!==x)return L}return m(O[x]||x,P)}}const a=C({})}),Me("packages/modules/kpi/view.js",function(p,ce){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return a}}),Object.defineProperty(p,"EMPTY_TEXT",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(p,"sparkPoints",{enumerable:!0,get:function(){return G}}),Object.defineProperty(p,"tileMinFor",{enumerable:!0,get:function(){return g}}),Object.defineProperty(p,"renderKPI",{enumerable:!0,get:function(){return z}});const Q=ce("packages/modules/kpi/aggregate.js").UNKNOWN_STATUS,O=ce("packages/modules/kpi/tree.js").visibleNodes,C=ce("packages/modules/kpi/messages.js").fallbackT,a="lat-kpi",E=C("kpi.status.unknown"),I=C,x=Object.freeze({good:"●",warn:"▲",critical:"■",unknown:"○"});function P(t,n){return n?t(`kpi.status.${n}`):""}function L(t){return t&&t.stale?"kpi.status.stale":"kpi.status.unknown"}class D{constructor(){this.map=new Map}on(n,s){return this.map.has(n)||this.map.set(n,new Set),this.map.get(n).add(s),()=>this.off(n,s)}off(n,s){this.map.get(n)?.delete(s)}emit(n,s){for(const u of this.map.get(n)||[])u(s)}}function Z(t){if(!t||t.getElementById&&t.getElementById(`${a}-styles`))return;const n=t.createElement("style");n.id=`${a}-styles`,n.setAttribute("id",`${a}-styles`),n.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
|
.${a}__tile{border:1px solid var(--${a}-border,var(--lattice-border-color,#d7dbe0));border-radius:8px;padding:12px 14px;background:var(--${a}-bg,var(--lattice-background,#fff));display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
|
|
9
9
|
.${a}__tile:focus-visible{outline:2px solid var(--${a}-focus,var(--lattice-focus-color,#2563eb));outline-offset:2px}
|
package/modules/layout.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.81.0, 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.80.0";async function I(){return Y}const U="1.80.0",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={"&":"&","<":"<",">":">",'"':""","'":"'"};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.81.0";async function I(){return Y}const U="1.81.0",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={"&":"&","<":"<",">":">",'"':""","'":"'"};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)));
|
package/modules/layout.min.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.81.0, 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.80.0";async function I(){return Y}const U="1.80.0",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={"&":"&","<":"<",">":">",'"':""","'":"'"};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.81.0";async function I(){return Y}const U="1.81.0",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={"&":"&","<":"<",">":">",'"':""","'":"'"};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)));
|
package/modules/layout.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.
|
|
2
|
+
* Lattice Grid 1.81.0, 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.80.0";async function I(){return Y}const U="1.80.0",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={"&":"&","<":"<",">":">",'"':""","'":"'"};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.81.0";async function I(){return Y}const U="1.81.0",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={"&":"&","<":"<",">":">",'"':""","'":"'"};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)));
|
package/modules/leaflet.d.ts
CHANGED