@toclocoinc/lattice-grid 1.88.2 → 1.88.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/angular/fesm2022/toclocoinc-lattice-grid-angular.mjs +6 -2
  4. package/angular/package.json +1 -1
  5. package/angular/types/toclocoinc-lattice-grid-angular.d.ts +3 -1
  6. package/docs/API.html +62 -6
  7. package/docs/api/adapters.html +1 -1
  8. package/docs/api/ai.html +1 -1
  9. package/docs/api/alarms.html +1 -1
  10. package/docs/api/calendar.html +1 -1
  11. package/docs/api/charts.html +1 -1
  12. package/docs/api/dashboard.html +1 -1
  13. package/docs/api/data-router.html +1 -1
  14. package/docs/api/deckgl.html +1 -1
  15. package/docs/api/gantt.html +58 -2
  16. package/docs/api/geometry.html +1 -1
  17. package/docs/api/grid.html +2 -2
  18. package/docs/api/index.html +2 -2
  19. package/docs/api/kanban.html +1 -1
  20. package/docs/api/kpi.html +1 -1
  21. package/docs/api/layout.html +1 -1
  22. package/docs/api/leaflet.html +1 -1
  23. package/docs/api/list.html +1 -1
  24. package/docs/api/mapview.html +1 -1
  25. package/docs/api/mock-socket.html +1 -1
  26. package/docs/api/presets.html +1 -1
  27. package/docs/api/tabs.html +1 -1
  28. package/docs/api/types.html +2 -2
  29. package/docs/api-detail.html +4 -4
  30. package/docs/warnings.json +1 -1
  31. package/lattice-grid.d.ts +1 -1
  32. package/lattice-grid.esm.min.js +3 -3
  33. package/lattice-grid.min.cjs +3 -3
  34. package/lattice-grid.min.js +3 -3
  35. package/modules/ai.d.ts +1 -1
  36. package/modules/ai.esm.min.js +2 -2
  37. package/modules/ai.min.cjs +2 -2
  38. package/modules/ai.min.js +2 -2
  39. package/modules/alarms.d.ts +1 -1
  40. package/modules/alarms.esm.min.js +2 -2
  41. package/modules/alarms.min.cjs +2 -2
  42. package/modules/alarms.min.js +2 -2
  43. package/modules/angular.d.ts +1 -1
  44. package/modules/angular.esm.min.js +2 -2
  45. package/modules/angular.min.cjs +2 -2
  46. package/modules/angular.min.js +2 -2
  47. package/modules/calendar.d.ts +1 -1
  48. package/modules/calendar.esm.min.js +2 -2
  49. package/modules/calendar.min.cjs +2 -2
  50. package/modules/calendar.min.js +2 -2
  51. package/modules/chart-alluvial.d.ts +1 -1
  52. package/modules/chart-alluvial.esm.min.js +1 -1
  53. package/modules/chart-alluvial.min.cjs +1 -1
  54. package/modules/chart-alluvial.min.js +1 -1
  55. package/modules/chart-arc.d.ts +1 -1
  56. package/modules/chart-arc.esm.min.js +1 -1
  57. package/modules/chart-arc.min.cjs +1 -1
  58. package/modules/chart-arc.min.js +1 -1
  59. package/modules/chart-barrace.d.ts +1 -1
  60. package/modules/chart-barrace.esm.min.js +1 -1
  61. package/modules/chart-barrace.min.cjs +1 -1
  62. package/modules/chart-barrace.min.js +1 -1
  63. package/modules/chart-bubblemap.d.ts +1 -1
  64. package/modules/chart-bubblemap.esm.min.js +1 -1
  65. package/modules/chart-bubblemap.min.cjs +1 -1
  66. package/modules/chart-bubblemap.min.js +1 -1
  67. package/modules/chart-bump.d.ts +1 -1
  68. package/modules/chart-bump.esm.min.js +1 -1
  69. package/modules/chart-bump.min.cjs +1 -1
  70. package/modules/chart-bump.min.js +1 -1
  71. package/modules/chart-calendar.d.ts +1 -1
  72. package/modules/chart-calendar.esm.min.js +1 -1
  73. package/modules/chart-calendar.min.cjs +1 -1
  74. package/modules/chart-calendar.min.js +1 -1
  75. package/modules/chart-choropleth.d.ts +1 -1
  76. package/modules/chart-choropleth.esm.min.js +1 -1
  77. package/modules/chart-choropleth.min.cjs +1 -1
  78. package/modules/chart-choropleth.min.js +1 -1
  79. package/modules/chart-decomposition.d.ts +1 -1
  80. package/modules/chart-decomposition.esm.min.js +1 -1
  81. package/modules/chart-decomposition.min.cjs +1 -1
  82. package/modules/chart-decomposition.min.js +1 -1
  83. package/modules/chart-diverging.d.ts +1 -1
  84. package/modules/chart-diverging.esm.min.js +1 -1
  85. package/modules/chart-diverging.min.cjs +1 -1
  86. package/modules/chart-diverging.min.js +1 -1
  87. package/modules/chart-dumbbell.d.ts +1 -1
  88. package/modules/chart-dumbbell.esm.min.js +1 -1
  89. package/modules/chart-dumbbell.min.cjs +1 -1
  90. package/modules/chart-dumbbell.min.js +1 -1
  91. package/modules/chart-fan.d.ts +1 -1
  92. package/modules/chart-fan.esm.min.js +1 -1
  93. package/modules/chart-fan.min.cjs +1 -1
  94. package/modules/chart-fan.min.js +1 -1
  95. package/modules/chart-forcetree.d.ts +1 -1
  96. package/modules/chart-forcetree.esm.min.js +1 -1
  97. package/modules/chart-forcetree.min.cjs +1 -1
  98. package/modules/chart-forcetree.min.js +1 -1
  99. package/modules/chart-hexbin.d.ts +1 -1
  100. package/modules/chart-hexbin.esm.min.js +1 -1
  101. package/modules/chart-hexbin.min.cjs +1 -1
  102. package/modules/chart-hexbin.min.js +1 -1
  103. package/modules/chart-hexmap.d.ts +1 -1
  104. package/modules/chart-hexmap.esm.min.js +1 -1
  105. package/modules/chart-hexmap.min.cjs +1 -1
  106. package/modules/chart-hexmap.min.js +1 -1
  107. package/modules/chart-icicle.d.ts +1 -1
  108. package/modules/chart-icicle.esm.min.js +1 -1
  109. package/modules/chart-icicle.min.cjs +1 -1
  110. package/modules/chart-icicle.min.js +1 -1
  111. package/modules/chart-markermap.d.ts +1 -1
  112. package/modules/chart-markermap.esm.min.js +1 -1
  113. package/modules/chart-markermap.min.cjs +1 -1
  114. package/modules/chart-markermap.min.js +1 -1
  115. package/modules/chart-motion.d.ts +1 -1
  116. package/modules/chart-motion.esm.min.js +1 -1
  117. package/modules/chart-motion.min.cjs +1 -1
  118. package/modules/chart-motion.min.js +1 -1
  119. package/modules/chart-pack.d.ts +1 -1
  120. package/modules/chart-pack.esm.min.js +1 -1
  121. package/modules/chart-pack.min.cjs +1 -1
  122. package/modules/chart-pack.min.js +1 -1
  123. package/modules/chart-parallel.d.ts +1 -1
  124. package/modules/chart-parallel.esm.min.js +1 -1
  125. package/modules/chart-parallel.min.cjs +1 -1
  126. package/modules/chart-parallel.min.js +1 -1
  127. package/modules/chart-pictorial.d.ts +1 -1
  128. package/modules/chart-pictorial.esm.min.js +1 -1
  129. package/modules/chart-pictorial.min.cjs +1 -1
  130. package/modules/chart-pictorial.min.js +1 -1
  131. package/modules/chart-polararea.d.ts +1 -1
  132. package/modules/chart-polararea.esm.min.js +1 -1
  133. package/modules/chart-polararea.min.cjs +1 -1
  134. package/modules/chart-polararea.min.js +1 -1
  135. package/modules/chart-polarscatter.d.ts +1 -1
  136. package/modules/chart-polarscatter.esm.min.js +1 -1
  137. package/modules/chart-polarscatter.min.cjs +1 -1
  138. package/modules/chart-polarscatter.min.js +1 -1
  139. package/modules/chart-pyramid.d.ts +1 -1
  140. package/modules/chart-pyramid.esm.min.js +1 -1
  141. package/modules/chart-pyramid.min.cjs +1 -1
  142. package/modules/chart-pyramid.min.js +1 -1
  143. package/modules/chart-radialbar.d.ts +1 -1
  144. package/modules/chart-radialbar.esm.min.js +1 -1
  145. package/modules/chart-radialbar.min.cjs +1 -1
  146. package/modules/chart-radialbar.min.js +1 -1
  147. package/modules/chart-ridgeline.d.ts +1 -1
  148. package/modules/chart-ridgeline.esm.min.js +1 -1
  149. package/modules/chart-ridgeline.min.cjs +1 -1
  150. package/modules/chart-ridgeline.min.js +1 -1
  151. package/modules/chart-roc.d.ts +1 -1
  152. package/modules/chart-roc.esm.min.js +1 -1
  153. package/modules/chart-roc.min.cjs +1 -1
  154. package/modules/chart-roc.min.js +1 -1
  155. package/modules/chart-serpentine.d.ts +1 -1
  156. package/modules/chart-serpentine.esm.min.js +1 -1
  157. package/modules/chart-serpentine.min.cjs +1 -1
  158. package/modules/chart-serpentine.min.js +1 -1
  159. package/modules/chart-slope.d.ts +1 -1
  160. package/modules/chart-slope.esm.min.js +1 -1
  161. package/modules/chart-slope.min.cjs +1 -1
  162. package/modules/chart-slope.min.js +1 -1
  163. package/modules/chart-spiral.d.ts +1 -1
  164. package/modules/chart-spiral.esm.min.js +1 -1
  165. package/modules/chart-spiral.min.cjs +1 -1
  166. package/modules/chart-spiral.min.js +1 -1
  167. package/modules/chart-splom.d.ts +1 -1
  168. package/modules/chart-splom.esm.min.js +1 -1
  169. package/modules/chart-splom.min.cjs +1 -1
  170. package/modules/chart-splom.min.js +1 -1
  171. package/modules/chart-tree.d.ts +1 -1
  172. package/modules/chart-tree.esm.min.js +1 -1
  173. package/modules/chart-tree.min.cjs +1 -1
  174. package/modules/chart-tree.min.js +1 -1
  175. package/modules/chart-venn.d.ts +1 -1
  176. package/modules/chart-venn.esm.min.js +1 -1
  177. package/modules/chart-venn.min.cjs +1 -1
  178. package/modules/chart-venn.min.js +1 -1
  179. package/modules/chart-voronoi.d.ts +1 -1
  180. package/modules/chart-voronoi.esm.min.js +1 -1
  181. package/modules/chart-voronoi.min.cjs +1 -1
  182. package/modules/chart-voronoi.min.js +1 -1
  183. package/modules/chart-waffle.d.ts +1 -1
  184. package/modules/chart-waffle.esm.min.js +1 -1
  185. package/modules/chart-waffle.min.cjs +1 -1
  186. package/modules/chart-waffle.min.js +1 -1
  187. package/modules/chart-wordcloud.d.ts +1 -1
  188. package/modules/chart-wordcloud.esm.min.js +1 -1
  189. package/modules/chart-wordcloud.min.cjs +1 -1
  190. package/modules/chart-wordcloud.min.js +1 -1
  191. package/modules/charts.d.ts +1 -1
  192. package/modules/charts.esm.min.js +2 -2
  193. package/modules/charts.min.cjs +2 -2
  194. package/modules/charts.min.js +2 -2
  195. package/modules/dashboard.d.ts +1 -1
  196. package/modules/dashboard.esm.min.js +2 -2
  197. package/modules/dashboard.min.cjs +2 -2
  198. package/modules/dashboard.min.js +2 -2
  199. package/modules/data-router.d.ts +1 -1
  200. package/modules/data-router.esm.min.js +2 -2
  201. package/modules/data-router.min.cjs +2 -2
  202. package/modules/data-router.min.js +2 -2
  203. package/modules/deckgl.d.ts +1 -1
  204. package/modules/deckgl.esm.min.js +2 -2
  205. package/modules/deckgl.min.cjs +2 -2
  206. package/modules/deckgl.min.js +2 -2
  207. package/modules/devtools.d.ts +1 -1
  208. package/modules/devtools.esm.min.js +1 -1
  209. package/modules/devtools.min.cjs +1 -1
  210. package/modules/devtools.min.js +1 -1
  211. package/modules/dhtmlx-compat.d.ts +1 -1
  212. package/modules/dhtmlx-compat.esm.min.js +2 -2
  213. package/modules/dhtmlx-compat.min.cjs +2 -2
  214. package/modules/dhtmlx-compat.min.js +2 -2
  215. package/modules/gantt.d.ts +58 -3
  216. package/modules/gantt.esm.min.js +223 -217
  217. package/modules/gantt.esm.min.js.map +2 -2
  218. package/modules/gantt.min.cjs +222 -216
  219. package/modules/gantt.min.js +222 -216
  220. package/modules/gantt.min.js.map +2 -2
  221. package/modules/geo-europe-nuts.d.ts +1 -1
  222. package/modules/geo-europe-nuts.esm.min.js +1 -1
  223. package/modules/geo-europe-nuts.min.cjs +1 -1
  224. package/modules/geo-europe-nuts.min.js +1 -1
  225. package/modules/geo-uk.d.ts +1 -1
  226. package/modules/geo-uk.esm.min.js +1 -1
  227. package/modules/geo-uk.min.cjs +1 -1
  228. package/modules/geo-uk.min.js +1 -1
  229. package/modules/geo-us-states.d.ts +1 -1
  230. package/modules/geo-us-states.esm.min.js +1 -1
  231. package/modules/geo-us-states.min.cjs +1 -1
  232. package/modules/geo-us-states.min.js +1 -1
  233. package/modules/geo-world-110m.d.ts +1 -1
  234. package/modules/geo-world-110m.esm.min.js +1 -1
  235. package/modules/geo-world-110m.min.cjs +1 -1
  236. package/modules/geo-world-110m.min.js +1 -1
  237. package/modules/geo-world-50m.d.ts +1 -1
  238. package/modules/geo-world-50m.esm.min.js +1 -1
  239. package/modules/geo-world-50m.min.cjs +1 -1
  240. package/modules/geo-world-50m.min.js +1 -1
  241. package/modules/geometry.d.ts +1 -1
  242. package/modules/geometry.esm.min.js +2 -2
  243. package/modules/geometry.min.cjs +2 -2
  244. package/modules/geometry.min.js +2 -2
  245. package/modules/htmx.d.ts +1 -1
  246. package/modules/htmx.esm.min.js +3 -3
  247. package/modules/htmx.min.cjs +3 -3
  248. package/modules/htmx.min.js +3 -3
  249. package/modules/kanban.d.ts +1 -1
  250. package/modules/kanban.esm.min.js +2 -2
  251. package/modules/kanban.min.cjs +2 -2
  252. package/modules/kanban.min.js +2 -2
  253. package/modules/kpi.d.ts +1 -1
  254. package/modules/kpi.esm.min.js +2 -2
  255. package/modules/kpi.min.cjs +2 -2
  256. package/modules/kpi.min.js +2 -2
  257. package/modules/layout.d.ts +1 -1
  258. package/modules/layout.esm.min.js +2 -2
  259. package/modules/layout.min.cjs +2 -2
  260. package/modules/layout.min.js +2 -2
  261. package/modules/leaflet.d.ts +1 -1
  262. package/modules/leaflet.esm.min.js +2 -2
  263. package/modules/leaflet.min.cjs +2 -2
  264. package/modules/leaflet.min.js +2 -2
  265. package/modules/list.d.ts +1 -1
  266. package/modules/list.esm.min.js +2 -2
  267. package/modules/list.min.cjs +2 -2
  268. package/modules/list.min.js +2 -2
  269. package/modules/mapview.d.ts +1 -1
  270. package/modules/mapview.esm.min.js +2 -2
  271. package/modules/mapview.min.cjs +2 -2
  272. package/modules/mapview.min.js +2 -2
  273. package/modules/mock-socket.d.ts +1 -1
  274. package/modules/mock-socket.esm.min.js +1 -1
  275. package/modules/mock-socket.min.cjs +1 -1
  276. package/modules/mock-socket.min.js +1 -1
  277. package/modules/presets.d.ts +1 -1
  278. package/modules/presets.esm.min.js +2 -2
  279. package/modules/presets.min.cjs +2 -2
  280. package/modules/presets.min.js +2 -2
  281. package/modules/react.d.ts +1 -1
  282. package/modules/react.esm.min.js +2 -2
  283. package/modules/react.esm.min.js.map +1 -1
  284. package/modules/react.min.cjs +2 -2
  285. package/modules/react.min.js +2 -2
  286. package/modules/react.min.js.map +1 -1
  287. package/modules/svelte.d.ts +1 -1
  288. package/modules/svelte.esm.min.js +3 -3
  289. package/modules/svelte.esm.min.js.map +1 -1
  290. package/modules/svelte.min.cjs +2 -2
  291. package/modules/svelte.min.js +2 -2
  292. package/modules/svelte.min.js.map +1 -1
  293. package/modules/tabs.d.ts +1 -1
  294. package/modules/tabs.esm.min.js +2 -2
  295. package/modules/tabs.min.cjs +2 -2
  296. package/modules/tabs.min.js +2 -2
  297. package/modules/vue.d.ts +1 -1
  298. package/modules/vue.esm.min.js +2 -2
  299. package/modules/vue.esm.min.js.map +1 -1
  300. package/modules/vue.min.cjs +2 -2
  301. package/modules/vue.min.js +2 -2
  302. package/modules/vue.min.js.map +1 -1
  303. package/modules/webcomponent.d.ts +1 -1
  304. package/modules/webcomponent.esm.min.js +4 -4
  305. package/modules/webcomponent.esm.min.js.map +1 -1
  306. package/modules/webcomponent.min.cjs +4 -4
  307. package/modules/webcomponent.min.js +4 -4
  308. package/modules/webcomponent.min.js.map +1 -1
  309. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, calendar module
2
+ * Lattice Grid 1.88.3, calendar module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- var Ue=Object.create(null),Ge=Object.create(null);function Ye(p,Q){Ue[p]=Q}function Ze(p){var Q=Ge[p];if(Q)return Q;var u=Object.create(null);Ge[p]=u;var G=Ue[p];if(!G)throw new Error("[lattice] missing module: "+p);return G(u,Ze),u}Ye("packages/core/src/internal/util.js",function(p,Q){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return J}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return l}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return S}});const u="1.88.2";async function G(){return u}const N="1.88.2",X=new Set,b=2e3;function V(c){if(X.add(c),X.size>b){const r=X.values().next().value;r!==void 0&&X.delete(r)}}const M=[],B=500;function se(c,r,y){M.push({key:c,level:r,message:y.map(h=>typeof h=="string"?h:O(h)).join(" "),at:Date.now()}),M.length>B&&M.shift()}function O(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function E(){return M.map(c=>({...c}))}function T(c){if(c.length===0||typeof c[0]!="string")return c;const r=c[0].replace(/^\[lattice\]\s*/,"");return r===c[0]?c:[r,...c.slice(1)]}function L(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"warn",y),console.warn("[lattice]",...y)}function W(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"info",y),console.info("[lattice]",...y)}function ie(){X.clear(),M.length=0}function le(c,r){const y=new Error(`[lattice] ${c}`);throw r!==void 0&&(y.cause=r),y}function me(c,r){c||le(r)}const ne=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function q(c){return c!==null&&typeof c=="object"&&!Array.isArray(c)}function pe(c){return typeof c=="function"}function ue(c){return c==null}function R(c){return c==null||c===""}function ee(c){return typeof c!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(c))?!0:!!(c.prototype&&Object.getOwnPropertyNames(c.prototype).length>1)}const oe=new Map;function ae(c){let r=oe.get(c);if(r)return r;if(!c.includes("."))r=y=>y?.[c];else{const y=c.split("."),h=y.length;r=j=>{let P=j;for(let C=0;C<h;C++){if(P==null)return;P=P[y[C]]}return P}}return oe.set(c,r),r}const Ce=new Map;function be(c){let r=Ce.get(c);if(r)return r;if(!c.includes("."))r=(y,h)=>{y!=null&&(y[c]=h)};else{const y=c.split("."),h=y.length-1;r=(j,P)=>{let C=j;for(let te=0;te<h;te++){if(C==null)return;const ce=y[te];C[ce]==null&&(C[ce]={}),C=C[ce]}C!=null&&(C[y[h]]=P)}}return Ce.set(c,r),r}function de(c,r){return ae(r)(c)}function Ae(c,r,y){be(r)(c,y)}function Oe(c){return c?(c.includes(".")?c.slice(c.lastIndexOf(".")+1):c).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(/^./,y=>y.toUpperCase()):""}const Te={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function he(c){const r=c==null?"":String(c);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,y=>Te[y]):r}function Ne(c){return String(c).replace(/\w\S*/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function we(c,r,y){if(c!==void 0)return c===!0?{enabled:!0,...y}:c===!1?{enabled:!1}:q(c)?c:{[r]:c,enabled:!0}}function xe(c){return c==null?[]:Array.isArray(c)?c:[c]}const Fe=Object.freeze(new Set(["__proto__","constructor","prototype"]));function ve(c,r){if(!q(c))return q(r)?{...r}:r;if(!q(r))return r===void 0?c:r;const y={...c};for(const h of Object.keys(r)){if(Fe.has(h))continue;const j=r[h];j!==void 0&&(y[h]=q(j)&&q(y[h])?ve(y[h],j):j)}return y}function Le(c,r){if(!q(c)||!q(r)||c===r)return r;const y=Object.create(Object.getPrototypeOf(c));return Object.assign(y,c,r),y}class Pe{#t;#e=new Map;#r;constructor(r=256,y=null){this.#t=r,this.#r=y}get size(){return this.#e.size}get max(){return this.#t}set max(r){this.#t=r,this.#n()}has(r){return this.#e.has(r)}get(r){const y=this.#e;if(!y.has(r))return;const h=y.get(r);return y.delete(r),y.set(r,h),h}peek(r){return this.#e.get(r)}set(r,y){const h=this.#e;return h.has(r)&&h.delete(r),h.set(r,y),this.#n(),y}delete(r){const y=this.#e.get(r);return this.#e.delete(r)&&this.#r&&this.#r(y,r),y}clear(){if(this.#r)for(const[r,y]of this.#e)this.#r(y,r);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#n(){const r=this.#e;for(;r.size>this.#t;){const y=r.keys().next().value,h=r.get(y);r.delete(y),this.#r&&this.#r(h,y)}}}const Me=new Map;function J(c,r){const y=`${c||""}|${r?JSON.stringify(r):""}`;let h=Me.get(y);return h||(h=new Intl.Collator(c||void 0,{numeric:!0,sensitivity:"variant",...r}),Me.set(y,h)),h}function i(c,r){if(c===r)return 0;if(c==null)return 1;if(r==null)return-1;if(typeof c=="number"&&typeof r=="number")return Number.isNaN(c)?Number.isNaN(r)?0:1:Number.isNaN(r)||c<r?-1:c>r?1:0;const y=String(c),h=String(r);return y<h?-1:y>h?1:0}function l(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const s=typeof requestAnimationFrame=="function";function m(c){return s?requestAnimationFrame(c):setTimeout(()=>c(l()),16)}function k(c){c!=null&&(s?cancelAnimationFrame(c):clearTimeout(c))}function D(c){let r=null,y=null;const h=()=>{r=null;const P=y;y=null,c(...P||[])},j=(...P)=>{y=P,r===null&&(r=m(h))};return j.cancel=()=>{k(r),r=null,y=null},j.flush=()=>{r!==null&&(k(r),h())},j}function F(c,r){let y=null,h=null;const j=()=>{if(y=null,h===null)return;const te=h;h=null,c(...te),P()},P=()=>{y=setTimeout(j,r),typeof y?.unref=="function"&&y.unref()},C=(...te)=>{y===null?(c(...te),P()):(h=te,clearTimeout(y),P())};return C.flush=()=>{if(y!==null&&clearTimeout(y),y=null,h===null)return;const te=h;h=null,c(...te)},C.cancel=()=>{y!==null&&clearTimeout(y),y=null,h=null},C.pending=()=>y!==null||h!==null,C}function _(c,r=50){return typeof requestIdleCallback=="function"?requestIdleCallback(c,{timeout:r}):setTimeout(()=>c({timeRemaining:()=>0,didTimeout:!0}),1)}let I=0;function S(c="l"){return`${c}${(++I).toString(36)}`}}),Ye("packages/modules/calendar/model.js",function(p,Q){"use strict";Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"keyFn",{enumerable:!0,get:function(){return se}}),Object.defineProperty(p,"parseDate",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"toDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"startOfDay",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"addDays",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"shiftDays",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"shiftMinutes",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"toWriteString",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"rowDates",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"dayKeyOf",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isTimeView",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"computeRange",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"titleFor",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"formatTime",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"fieldText",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"colorFor",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(p,"cardRank",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"isDateOnlyValue",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(p,"durationMinutes",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"clockMinutes",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"minutesToClock",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"isoWeekNumber",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"resolveBusinessHours",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(p,"wallClock",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"nowAt",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"spanSegments",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"assignColumns",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"resolveContext",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(p,"buildDays",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"buildTimeDays",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"resolveReadonly",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"facets",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(p,"cssId",{enumerable:!0,get:function(){return J}});const u=Q("packages/core/src/internal/util.js"),G=u.warnOnce,N=u.getPath,X=u.isFunction,b=u.isNil,V=u.isObject;function M(i){return X(i)?i:typeof i=="string"?l=>N(l,i):()=>{}}function B(i){return Array.isArray(i)?"array":i===null?"null":typeof i}function se(i){if(i!==void 0&&typeof i!="function"&&!(typeof i=="string"&&i.length>0))throw new Error("lattice-calendar: rowKey must be a property name or a function; composite keys are not supported on calendars.");if(X(i))return s=>{const m=i(s);if(typeof m=="string"||typeof m=="number"&&Number.isFinite(m))return m;throw new Error(`lattice-calendar: rowKey function must return a string or number; got ${B(m)}.`)};const l=typeof i=="string"?i:"id";return s=>N(s,l)}function O(i){if(i instanceof Date)return Number.isNaN(i.getTime())?null:i;if(typeof i=="number"&&Number.isFinite(i))return new Date(i);if(typeof i!="string")return null;const l=i.trim();if(!l)return null;let s=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?$/.exec(l);if(s){const k=new Date(+s[1],+s[2]-1,+s[3],+s[4],+s[5],s[6]?+s[6]:0);return Number.isNaN(k.getTime())?null:k}if(s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(l),s){const k=new Date(+s[1],+s[2]-1,+s[3]);return Number.isNaN(k.getTime())?null:k}const m=new Date(l);return Number.isNaN(m.getTime())?null:m}function E(i){return i==null?null:O(i)}function T(i){return new Date(i.getFullYear(),i.getMonth(),i.getDate())}function L(i,l){return new Date(i.getFullYear(),i.getMonth(),i.getDate()+l)}function W(i,l){const s=new Date(i);return s.setDate(s.getDate()+l),s}function ie(i,l){return new Date(i.getTime()+l*6e4)}function le(i,l){const s=i.getFullYear(),m=String(i.getMonth()+1).padStart(2,"0"),k=String(i.getDate()).padStart(2,"0");if(l)return`${s}-${m}-${k}`;const D=String(i.getHours()).padStart(2,"0"),F=String(i.getMinutes()).padStart(2,"0");return`${s}-${m}-${k} ${D}:${F}`}function me(i,l){const s=O(M(i.startProperty)(l)),m=i.endProperty?O(M(i.endProperty)(l)):null;return{start:s,end:m}}function ne(i){const l=i.getFullYear(),s=String(i.getMonth()+1).padStart(2,"0"),m=String(i.getDate()).padStart(2,"0");return`${l}-${s}-${m}`}function q(i){return i==="week-time"||i==="day"}function pe(i,l,s){const m=T(i),k=s===void 0?1:s,D=l==="month",F=l==="day";let _,I;if(F)_=m,I=1;else if(D){const c=new Date(m.getFullYear(),m.getMonth(),1),r=(c.getDay()-k+7)%7;_=L(c,-r);const y=new Date(m.getFullYear(),m.getMonth()+1,0).getDate();I=Math.ceil((r+y)/7)*7}else{const c=(m.getDay()-k+7)%7;_=L(m,-c),I=7}const S=[];for(let c=0;c<I;c++){const r=L(_,c);S.push({date:r,key:ne(r),dayNumber:r.getDate(),weekday:r.getDay(),inRange:!D||r.getMonth()===m.getMonth()})}return{start:_,end:L(_,I-1),view:l,days:S}}function ue(i,l,s){const m=i||void 0;if(l.view==="week"||l.view==="week-time"){const k=new Intl.DateTimeFormat(m,{month:"short",day:"numeric"});if(l.start.getFullYear()===l.end.getFullYear())return`${k.format(l.start)} – ${k.format(l.end)}, ${l.start.getFullYear()}`;const D=new Intl.DateTimeFormat(m,{month:"short",day:"numeric",year:"numeric"});return`${D.format(l.start)} – ${D.format(l.end)}`}return l.view==="day"?new Intl.DateTimeFormat(m,{weekday:"long",month:"long",day:"numeric",year:"numeric"}).format(s):new Intl.DateTimeFormat(m,{month:"long",year:"numeric"}).format(s)}function R(i,l){return new Intl.DateTimeFormat(i||void 0,{hour:"numeric",minute:"2-digit"}).format(l)}function ee(i,l,s,m){if(b(m))return"";if(i.grid&&typeof m=="string")try{if(i.grid.columns&&i.grid.columns.get&&i.grid.columns.get(m)){const D=i.grid.rows.text(s,m);if(!b(D))return String(D)}}catch{}const k=M(m)(l);return b(k)?"":String(k)}function oe(i,l){if(!i.colorProperty)return null;const s=M(i.colorProperty)(l);if(b(s))return null;if(i.colorMap&&V(i.colorMap)){const m=i.colorMap[String(s)];if(typeof m=="string"&&m)return m}return typeof s=="string"&&/^(#|rgb|hsl|oklch|var\()/.test(s.trim())?s.trim():null}function ae(i,l,s){if(X(i.eventOrder))return i.eventOrder(l.row,s.row)||0;if(typeof i.eventOrder=="string"&&i.eventOrder){const D=M(i.eventOrder),F=D(l.row),_=D(s.row);if(F!==_)return(F>_?1:0)-(F<_?1:0)}const m=l.start?l.start.getTime():0,k=s.start?s.start.getTime():0;return m!==k?m-k:String(l.key)<String(s.key)?-1:String(l.key)>String(s.key)?1:0}function Ce(i){return typeof i=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(i.trim())}function be(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>0)return i;if(typeof i=="string"){const s=/^(\d+)(?::(\d{1,2})(?::(\d{1,2}))?)?$/.exec(i.trim());if(s){const m=+s[1]*60+ +(s[2]||0)+ +(s[3]||0)/60;if(m>0)return m}}return l}function de(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>=0)return i;if(typeof i=="string"){const s=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(i.trim());if(s)return+s[1]*60+ +s[2]+ +(s[3]||0)/60}return l}function Ae(i){const l=Math.floor(i/60),s=Math.round(i%60);return`${String(l).padStart(2,"0")}:${String(s).padStart(2,"0")}`}function Oe(i){const l=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())),s=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-s);const m=new Date(Date.UTC(l.getUTCFullYear(),0,1));return Math.ceil(((l.getTime()-m.getTime())/864e5+1)/7)}function Te(i){if(i!==!0&&!V(i))return null;const l=V(i)?i:{},s=Array.isArray(l.daysOfWeek)?l.daysOfWeek.filter(m=>Number.isInteger(m)):[1,2,3,4,5];return{start:de(l.startTime,540),end:de(l.endTime,1020),daysOfWeek:s}}function he(i,l){if(l)try{const s=new Intl.DateTimeFormat("en-CA",{timeZone:l,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).formatToParts(i).reduce((k,D)=>(D.type!=="literal"&&(k[D.type]=D.value),k),{}),m=s.hour==="24"?"00":s.hour;return{dayKey:`${s.year}-${s.month}-${s.day}`,minutes:+m*60+ +s.minute}}catch{}return{dayKey:ne(i),minutes:i.getHours()*60+i.getMinutes()}}function Ne(i,l){return he(i,l)}function we(i,l,s,m,k,D){const F=D.start.getTime(),_=D.end.getTime(),I=m.getTime(),S=k.getTime();if(S<F||I>_)return[];const c=new Map(D.days.map((K,g)=>[K.key,g])),r=new Date(Math.max(T(m).getTime(),F)),y=new Date(Math.min(T(k).getTime(),_)),h=[];for(let K=new Date(r);K.getTime()<=y.getTime();K=L(K,1))h.push(ne(K));const j=K=>Math.floor(c.get(K)/7),P=[];let C=[];for(const K of h)c.has(K)&&(C.length&&(c.get(K)!==c.get(C[C.length-1])+1||j(K)!==j(C[C.length-1]))&&(P.push(C),C=[]),C.push(K));C.length&&P.push(C);const te=h[0],ce=h[h.length-1];return P.map(K=>({key:l,row:s,start:m,end:k,span:!0,color:oe(i,s),day:K[0],length:K.length,continuesBefore:K[0]!==te||I<F,continuesAfter:K[K.length-1]!==ce||S>_}))}function xe(i){i.sort((s,m)=>s.startMin-m.startMin||m.endMin-s.endMin||(String(s.key)<String(m.key)?-1:String(s.key)>String(m.key)?1:0));const l=[];for(const s of i){const m=l[l.length-1];m&&s.startMin<m.end?(m.items.push(s),s.endMin>m.end&&(m.end=s.endMin)):l.push({items:[s],end:s.endMin})}for(const s of l){const m=[];for(const k of s.items){let D=0;for(;D<m.length&&m[D]>k.startMin;)D++;k.col=D,D===m.length?m.push(k.endMin):m[D]=k.endMin}for(const k of s.items)k.cols=m.length}return i}function Fe(i){const l=V(i)?i:{},s=["week","month","week-time","day"].includes(l.view)?l.view:"month",m=be(l.slotDuration,30),k=de(l.slotMinTime,0),D=de(l.slotMaxTime,1440),F=de(l.scrollTime,k);return{grid:l.grid||null,key:se(l.rowKey??"id"),rowKey:l.rowKey??"id",startProperty:l.startProperty??"start",endProperty:l.endProperty??null,allDayProperty:l.allDayProperty??null,view:s,date:E(l.date)||new Date,firstDay:typeof l.firstDay=="number"?l.firstDay:1,locale:typeof l.locale=="string"?l.locale:void 0,timeZone:typeof l.timeZone=="string"?l.timeZone:void 0,header:V(l.header)?l.header:l.header===!1?!1:{},card:V(l.card)?l.card:{},colorProperty:l.colorProperty??null,colorMap:V(l.colorMap)?l.colorMap:null,eventOrder:l.eventOrder??null,dayMaxEvents:typeof l.dayMaxEvents=="number"&&l.dayMaxEvents>=0?l.dayMaxEvents:!1,readonly:l.readonly,renderCard:X(l.renderCard)?l.renderCard:null,ariaLabel:typeof l.ariaLabel=="string"?l.ariaLabel:"",messages:V(l.messages)?l.messages:null,labels:V(l.labels)?l.labels:{},slotDuration:m,slotMinTime:k,slotMaxTime:D,scrollTime:F,defaultDuration:be(l.defaultDuration,60),businessHours:Te(l.businessHours),weekNumbers:l.weekNumbers===!0}}function ve(i,l,s){const m=new Map(s.days.map(S=>[S.key,{...S,cards:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null;for(const S of l){const c=i.key(S),r=O(F(S));if(!r){k.push({key:c,row:S}),D||(D=!0,G("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}let y=null,h=!1;if(_&&(y=O(_(S)),y&&(h=!0)),!h){const j=m.get(ne(r));j&&j.cards.push({key:c,row:S,start:r,end:y,span:!1,color:oe(i,S)});continue}for(const j of we(i,c,S,r,y,s)){const P=m.get(j.day);P&&P.spans.push(j)}}const I=[...m.values()];for(const S of I)S.cards.sort((c,r)=>ae(i,c,r));return{days:I,unscheduled:k}}function Le(i,l,s){const m=new Map(s.days.map(h=>[h.key,{...h,timed:[],allDay:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null,I=i.allDayProperty?M(i.allDayProperty):null,{slotMinTime:S,slotMaxTime:c,defaultDuration:r}=i;for(const h of l){const j=i.key(h),P=F(h),C=O(P);if(!C){k.push({key:j,row:h}),D||(D=!0,G("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}const te=I&&!!I(h)||Ce(P),ce=oe(i,h);if(te){let Z=null;if(_&&(Z=O(_(h))),Z&&ne(Z)!==ne(C)){for(const U of we(i,j,h,C,Z,s)){const H=m.get(U.day);H&&H.spans.push(U)}continue}const z=m.get(ne(C));z&&z.allDay.push({key:j,row:h,start:C,end:Z,allDay:!0,color:ce});continue}const ke=he(C,i.timeZone),K=m.get(ke.dayKey);if(!K)continue;const g=Math.min(Math.max(ke.minutes,S),c);let w,A=null;if(_){const Z=O(_(h));if(Z){A=Z;const z=he(Z,i.timeZone);w=z.dayKey===ke.dayKey?Math.min(Math.max(z.minutes,S),c):c}else w=g+r}else w=g+r;w>c&&(w=c),K.timed.push({key:j,row:h,start:C,end:A,allDay:!1,color:ce,day:ke.dayKey,startMin:g,endMin:w,col:0,cols:1})}const y=[...m.values()];for(const h of y)xe(h.timed),h.allDay.sort((j,P)=>ae(i,j,P));return{days:y,unscheduled:k}}function Pe(i){if(i===!0)return()=>!0;if(!i||typeof i!="object")return()=>!1;const l=i.days||{},s=i.cards||{};return({day:m,card:k}={})=>i.board===!0||!b(m)&&l[m]===!0||!b(k)&&s[k]===!0}function Me(i,l){const s=M(i),m=new Map;for(const k of l){const D=s(k);m.set(D,(m.get(D)||0)+1)}return[...m.entries()].map(([k,D])=>({value:k,count:D})).sort((k,D)=>D.count-k.count)}function J(i){return String(i).replace(/[^\w-]/g,"_")}}),Ye("packages/modules/shared/emitter.js",function(p,Q){"use strict";Object.defineProperty(p,"WILDCARD",{enumerable:!0,get:function(){return X}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"gate",{enumerable:!0,get:function(){return B}});const u=Q("packages/core/src/internal/util.js"),G=u.isFunction,N=u.warnOnce,X="*",b=new Set(["api","user","init","ai"]);function V(se,O){return se&&se.name?se.name:`#${O}`}class M{#t=new Map;#e;constructor(O="module"){this.#e=String(O)}on(O,E){if(!G(E))return()=>{};let T=this.#t.get(O);return T||(T=new Set,this.#t.set(O,T)),T.add(E),()=>this.off(O,E)}off(O,E){const T=this.#t.get(O);T&&T.delete(E)}count(O){const E=this.#t.get(O);return E?E.size:0}emit(O,E){const T=this.#t.get(O),L=this.#t.get(X);if((!T||T.size===0)&&(!L||L.size===0))return;const W={...E||null,type:O};T&&T.size&&this.#r([...T],W,O),L&&L.size&&this.#r([...L],W,X)}#r(O,E,T){for(let L=0;L<O.length;L++)try{O[L](E)}catch(W){N(`${this.#e}.emit.throw:${T}:${V(O[L],L)}`,`${this.#e}: a '${T}' handler threw; other handlers were unaffected.`,W)}}emitBefore(O,E,T){const L=T??(E&&E.origin),W=b.has(L)?L:"user";let ie=!1,le=null;const me=ee=>{ie=!0,ee!=null&&le===null&&(le=String(ee))},ne={...E||null,type:O,origin:W,get defaultPrevented(){return ie},get reason(){return le},preventDefault(ee){me(ee)}},q=this.#t.get(O);if(!q||q.size===0)return!0;const pe=[...q],ue=()=>(ie&&le===null&&(le="prevented"),ie&&E&&typeof E=="object"&&(E.reason=le),!ie),R=[];for(let ee=0;ee<pe.length;ee++){const oe=pe[ee];try{const ae=oe(ne);ae&&G(ae.then)?R.push(ae):ae===!1&&me("prevented")}catch(ae){me("error"),N(`${this.#e}.beforeThrow:${O}:${V(oe,ee)}`,`${this.#e}: a '${O}' before-handler threw; the action was cancelled.`,ae)}}return R.length===0?ue():Promise.allSettled(R).then(ee=>{for(const oe of ee)oe.status==="rejected"?(me("error"),N(`${this.#e}.beforeReject:${O}`,`${this.#e}: a '${O}' before-handler rejected; the action was cancelled.`,oe.reason)):oe.value===!1&&me("prevented");return ue()})}clear(){this.#t.clear()}}function B(se,O,E,T,L){const W=se.emitBefore(O,T,T.origin),ie=()=>(se.emit(E,{...T,reason:T.reason||"prevented"}),!1);return W===!1?ie():W&&G(W.then)?W.then(le=>le?L():ie()):L()}}),Ye("packages/modules/calendar/styles.js",function(p,Q){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return u}}),Object.defineProperty(p,"css",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return X}});const u="lat-calendar",G="data-lattice-calendar-styles";function N(){return`
6
+ var Ue=Object.create(null),Ge=Object.create(null);function Ye(p,Q){Ue[p]=Q}function Ze(p){var Q=Ge[p];if(Q)return Q;var u=Object.create(null);Ge[p]=u;var G=Ue[p];if(!G)throw new Error("[lattice] missing module: "+p);return G(u,Ze),u}Ye("packages/core/src/internal/util.js",function(p,Q){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return J}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return l}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return S}});const u="1.88.3";async function G(){return u}const N="1.88.3",X=new Set,b=2e3;function V(c){if(X.add(c),X.size>b){const r=X.values().next().value;r!==void 0&&X.delete(r)}}const M=[],B=500;function se(c,r,y){M.push({key:c,level:r,message:y.map(h=>typeof h=="string"?h:O(h)).join(" "),at:Date.now()}),M.length>B&&M.shift()}function O(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function E(){return M.map(c=>({...c}))}function T(c){if(c.length===0||typeof c[0]!="string")return c;const r=c[0].replace(/^\[lattice\]\s*/,"");return r===c[0]?c:[r,...c.slice(1)]}function L(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"warn",y),console.warn("[lattice]",...y)}function W(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"info",y),console.info("[lattice]",...y)}function ie(){X.clear(),M.length=0}function le(c,r){const y=new Error(`[lattice] ${c}`);throw r!==void 0&&(y.cause=r),y}function me(c,r){c||le(r)}const ne=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function q(c){return c!==null&&typeof c=="object"&&!Array.isArray(c)}function pe(c){return typeof c=="function"}function ue(c){return c==null}function R(c){return c==null||c===""}function ee(c){return typeof c!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(c))?!0:!!(c.prototype&&Object.getOwnPropertyNames(c.prototype).length>1)}const oe=new Map;function ae(c){let r=oe.get(c);if(r)return r;if(!c.includes("."))r=y=>y?.[c];else{const y=c.split("."),h=y.length;r=j=>{let P=j;for(let C=0;C<h;C++){if(P==null)return;P=P[y[C]]}return P}}return oe.set(c,r),r}const Ce=new Map;function be(c){let r=Ce.get(c);if(r)return r;if(!c.includes("."))r=(y,h)=>{y!=null&&(y[c]=h)};else{const y=c.split("."),h=y.length-1;r=(j,P)=>{let C=j;for(let te=0;te<h;te++){if(C==null)return;const ce=y[te];C[ce]==null&&(C[ce]={}),C=C[ce]}C!=null&&(C[y[h]]=P)}}return Ce.set(c,r),r}function de(c,r){return ae(r)(c)}function Ae(c,r,y){be(r)(c,y)}function Oe(c){return c?(c.includes(".")?c.slice(c.lastIndexOf(".")+1):c).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(/^./,y=>y.toUpperCase()):""}const Te={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function he(c){const r=c==null?"":String(c);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,y=>Te[y]):r}function Ne(c){return String(c).replace(/\w\S*/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function we(c,r,y){if(c!==void 0)return c===!0?{enabled:!0,...y}:c===!1?{enabled:!1}:q(c)?c:{[r]:c,enabled:!0}}function xe(c){return c==null?[]:Array.isArray(c)?c:[c]}const Fe=Object.freeze(new Set(["__proto__","constructor","prototype"]));function ve(c,r){if(!q(c))return q(r)?{...r}:r;if(!q(r))return r===void 0?c:r;const y={...c};for(const h of Object.keys(r)){if(Fe.has(h))continue;const j=r[h];j!==void 0&&(y[h]=q(j)&&q(y[h])?ve(y[h],j):j)}return y}function Le(c,r){if(!q(c)||!q(r)||c===r)return r;const y=Object.create(Object.getPrototypeOf(c));return Object.assign(y,c,r),y}class Pe{#t;#e=new Map;#r;constructor(r=256,y=null){this.#t=r,this.#r=y}get size(){return this.#e.size}get max(){return this.#t}set max(r){this.#t=r,this.#n()}has(r){return this.#e.has(r)}get(r){const y=this.#e;if(!y.has(r))return;const h=y.get(r);return y.delete(r),y.set(r,h),h}peek(r){return this.#e.get(r)}set(r,y){const h=this.#e;return h.has(r)&&h.delete(r),h.set(r,y),this.#n(),y}delete(r){const y=this.#e.get(r);return this.#e.delete(r)&&this.#r&&this.#r(y,r),y}clear(){if(this.#r)for(const[r,y]of this.#e)this.#r(y,r);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#n(){const r=this.#e;for(;r.size>this.#t;){const y=r.keys().next().value,h=r.get(y);r.delete(y),this.#r&&this.#r(h,y)}}}const Me=new Map;function J(c,r){const y=`${c||""}|${r?JSON.stringify(r):""}`;let h=Me.get(y);return h||(h=new Intl.Collator(c||void 0,{numeric:!0,sensitivity:"variant",...r}),Me.set(y,h)),h}function i(c,r){if(c===r)return 0;if(c==null)return 1;if(r==null)return-1;if(typeof c=="number"&&typeof r=="number")return Number.isNaN(c)?Number.isNaN(r)?0:1:Number.isNaN(r)||c<r?-1:c>r?1:0;const y=String(c),h=String(r);return y<h?-1:y>h?1:0}function l(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const s=typeof requestAnimationFrame=="function";function m(c){return s?requestAnimationFrame(c):setTimeout(()=>c(l()),16)}function k(c){c!=null&&(s?cancelAnimationFrame(c):clearTimeout(c))}function D(c){let r=null,y=null;const h=()=>{r=null;const P=y;y=null,c(...P||[])},j=(...P)=>{y=P,r===null&&(r=m(h))};return j.cancel=()=>{k(r),r=null,y=null},j.flush=()=>{r!==null&&(k(r),h())},j}function F(c,r){let y=null,h=null;const j=()=>{if(y=null,h===null)return;const te=h;h=null,c(...te),P()},P=()=>{y=setTimeout(j,r),typeof y?.unref=="function"&&y.unref()},C=(...te)=>{y===null?(c(...te),P()):(h=te,clearTimeout(y),P())};return C.flush=()=>{if(y!==null&&clearTimeout(y),y=null,h===null)return;const te=h;h=null,c(...te)},C.cancel=()=>{y!==null&&clearTimeout(y),y=null,h=null},C.pending=()=>y!==null||h!==null,C}function _(c,r=50){return typeof requestIdleCallback=="function"?requestIdleCallback(c,{timeout:r}):setTimeout(()=>c({timeRemaining:()=>0,didTimeout:!0}),1)}let I=0;function S(c="l"){return`${c}${(++I).toString(36)}`}}),Ye("packages/modules/calendar/model.js",function(p,Q){"use strict";Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"keyFn",{enumerable:!0,get:function(){return se}}),Object.defineProperty(p,"parseDate",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"toDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"startOfDay",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"addDays",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"shiftDays",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"shiftMinutes",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"toWriteString",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"rowDates",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"dayKeyOf",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isTimeView",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"computeRange",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"titleFor",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"formatTime",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"fieldText",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"colorFor",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(p,"cardRank",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"isDateOnlyValue",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(p,"durationMinutes",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"clockMinutes",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"minutesToClock",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"isoWeekNumber",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"resolveBusinessHours",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(p,"wallClock",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"nowAt",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"spanSegments",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"assignColumns",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"resolveContext",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(p,"buildDays",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"buildTimeDays",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"resolveReadonly",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"facets",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(p,"cssId",{enumerable:!0,get:function(){return J}});const u=Q("packages/core/src/internal/util.js"),G=u.warnOnce,N=u.getPath,X=u.isFunction,b=u.isNil,V=u.isObject;function M(i){return X(i)?i:typeof i=="string"?l=>N(l,i):()=>{}}function B(i){return Array.isArray(i)?"array":i===null?"null":typeof i}function se(i){if(i!==void 0&&typeof i!="function"&&!(typeof i=="string"&&i.length>0))throw new Error("lattice-calendar: rowKey must be a property name or a function; composite keys are not supported on calendars.");if(X(i))return s=>{const m=i(s);if(typeof m=="string"||typeof m=="number"&&Number.isFinite(m))return m;throw new Error(`lattice-calendar: rowKey function must return a string or number; got ${B(m)}.`)};const l=typeof i=="string"?i:"id";return s=>N(s,l)}function O(i){if(i instanceof Date)return Number.isNaN(i.getTime())?null:i;if(typeof i=="number"&&Number.isFinite(i))return new Date(i);if(typeof i!="string")return null;const l=i.trim();if(!l)return null;let s=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?$/.exec(l);if(s){const k=new Date(+s[1],+s[2]-1,+s[3],+s[4],+s[5],s[6]?+s[6]:0);return Number.isNaN(k.getTime())?null:k}if(s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(l),s){const k=new Date(+s[1],+s[2]-1,+s[3]);return Number.isNaN(k.getTime())?null:k}const m=new Date(l);return Number.isNaN(m.getTime())?null:m}function E(i){return i==null?null:O(i)}function T(i){return new Date(i.getFullYear(),i.getMonth(),i.getDate())}function L(i,l){return new Date(i.getFullYear(),i.getMonth(),i.getDate()+l)}function W(i,l){const s=new Date(i);return s.setDate(s.getDate()+l),s}function ie(i,l){return new Date(i.getTime()+l*6e4)}function le(i,l){const s=i.getFullYear(),m=String(i.getMonth()+1).padStart(2,"0"),k=String(i.getDate()).padStart(2,"0");if(l)return`${s}-${m}-${k}`;const D=String(i.getHours()).padStart(2,"0"),F=String(i.getMinutes()).padStart(2,"0");return`${s}-${m}-${k} ${D}:${F}`}function me(i,l){const s=O(M(i.startProperty)(l)),m=i.endProperty?O(M(i.endProperty)(l)):null;return{start:s,end:m}}function ne(i){const l=i.getFullYear(),s=String(i.getMonth()+1).padStart(2,"0"),m=String(i.getDate()).padStart(2,"0");return`${l}-${s}-${m}`}function q(i){return i==="week-time"||i==="day"}function pe(i,l,s){const m=T(i),k=s===void 0?1:s,D=l==="month",F=l==="day";let _,I;if(F)_=m,I=1;else if(D){const c=new Date(m.getFullYear(),m.getMonth(),1),r=(c.getDay()-k+7)%7;_=L(c,-r);const y=new Date(m.getFullYear(),m.getMonth()+1,0).getDate();I=Math.ceil((r+y)/7)*7}else{const c=(m.getDay()-k+7)%7;_=L(m,-c),I=7}const S=[];for(let c=0;c<I;c++){const r=L(_,c);S.push({date:r,key:ne(r),dayNumber:r.getDate(),weekday:r.getDay(),inRange:!D||r.getMonth()===m.getMonth()})}return{start:_,end:L(_,I-1),view:l,days:S}}function ue(i,l,s){const m=i||void 0;if(l.view==="week"||l.view==="week-time"){const k=new Intl.DateTimeFormat(m,{month:"short",day:"numeric"});if(l.start.getFullYear()===l.end.getFullYear())return`${k.format(l.start)} – ${k.format(l.end)}, ${l.start.getFullYear()}`;const D=new Intl.DateTimeFormat(m,{month:"short",day:"numeric",year:"numeric"});return`${D.format(l.start)} – ${D.format(l.end)}`}return l.view==="day"?new Intl.DateTimeFormat(m,{weekday:"long",month:"long",day:"numeric",year:"numeric"}).format(s):new Intl.DateTimeFormat(m,{month:"long",year:"numeric"}).format(s)}function R(i,l){return new Intl.DateTimeFormat(i||void 0,{hour:"numeric",minute:"2-digit"}).format(l)}function ee(i,l,s,m){if(b(m))return"";if(i.grid&&typeof m=="string")try{if(i.grid.columns&&i.grid.columns.get&&i.grid.columns.get(m)){const D=i.grid.rows.text(s,m);if(!b(D))return String(D)}}catch{}const k=M(m)(l);return b(k)?"":String(k)}function oe(i,l){if(!i.colorProperty)return null;const s=M(i.colorProperty)(l);if(b(s))return null;if(i.colorMap&&V(i.colorMap)){const m=i.colorMap[String(s)];if(typeof m=="string"&&m)return m}return typeof s=="string"&&/^(#|rgb|hsl|oklch|var\()/.test(s.trim())?s.trim():null}function ae(i,l,s){if(X(i.eventOrder))return i.eventOrder(l.row,s.row)||0;if(typeof i.eventOrder=="string"&&i.eventOrder){const D=M(i.eventOrder),F=D(l.row),_=D(s.row);if(F!==_)return(F>_?1:0)-(F<_?1:0)}const m=l.start?l.start.getTime():0,k=s.start?s.start.getTime():0;return m!==k?m-k:String(l.key)<String(s.key)?-1:String(l.key)>String(s.key)?1:0}function Ce(i){return typeof i=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(i.trim())}function be(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>0)return i;if(typeof i=="string"){const s=/^(\d+)(?::(\d{1,2})(?::(\d{1,2}))?)?$/.exec(i.trim());if(s){const m=+s[1]*60+ +(s[2]||0)+ +(s[3]||0)/60;if(m>0)return m}}return l}function de(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>=0)return i;if(typeof i=="string"){const s=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(i.trim());if(s)return+s[1]*60+ +s[2]+ +(s[3]||0)/60}return l}function Ae(i){const l=Math.floor(i/60),s=Math.round(i%60);return`${String(l).padStart(2,"0")}:${String(s).padStart(2,"0")}`}function Oe(i){const l=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())),s=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-s);const m=new Date(Date.UTC(l.getUTCFullYear(),0,1));return Math.ceil(((l.getTime()-m.getTime())/864e5+1)/7)}function Te(i){if(i!==!0&&!V(i))return null;const l=V(i)?i:{},s=Array.isArray(l.daysOfWeek)?l.daysOfWeek.filter(m=>Number.isInteger(m)):[1,2,3,4,5];return{start:de(l.startTime,540),end:de(l.endTime,1020),daysOfWeek:s}}function he(i,l){if(l)try{const s=new Intl.DateTimeFormat("en-CA",{timeZone:l,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).formatToParts(i).reduce((k,D)=>(D.type!=="literal"&&(k[D.type]=D.value),k),{}),m=s.hour==="24"?"00":s.hour;return{dayKey:`${s.year}-${s.month}-${s.day}`,minutes:+m*60+ +s.minute}}catch{}return{dayKey:ne(i),minutes:i.getHours()*60+i.getMinutes()}}function Ne(i,l){return he(i,l)}function we(i,l,s,m,k,D){const F=D.start.getTime(),_=D.end.getTime(),I=m.getTime(),S=k.getTime();if(S<F||I>_)return[];const c=new Map(D.days.map((K,g)=>[K.key,g])),r=new Date(Math.max(T(m).getTime(),F)),y=new Date(Math.min(T(k).getTime(),_)),h=[];for(let K=new Date(r);K.getTime()<=y.getTime();K=L(K,1))h.push(ne(K));const j=K=>Math.floor(c.get(K)/7),P=[];let C=[];for(const K of h)c.has(K)&&(C.length&&(c.get(K)!==c.get(C[C.length-1])+1||j(K)!==j(C[C.length-1]))&&(P.push(C),C=[]),C.push(K));C.length&&P.push(C);const te=h[0],ce=h[h.length-1];return P.map(K=>({key:l,row:s,start:m,end:k,span:!0,color:oe(i,s),day:K[0],length:K.length,continuesBefore:K[0]!==te||I<F,continuesAfter:K[K.length-1]!==ce||S>_}))}function xe(i){i.sort((s,m)=>s.startMin-m.startMin||m.endMin-s.endMin||(String(s.key)<String(m.key)?-1:String(s.key)>String(m.key)?1:0));const l=[];for(const s of i){const m=l[l.length-1];m&&s.startMin<m.end?(m.items.push(s),s.endMin>m.end&&(m.end=s.endMin)):l.push({items:[s],end:s.endMin})}for(const s of l){const m=[];for(const k of s.items){let D=0;for(;D<m.length&&m[D]>k.startMin;)D++;k.col=D,D===m.length?m.push(k.endMin):m[D]=k.endMin}for(const k of s.items)k.cols=m.length}return i}function Fe(i){const l=V(i)?i:{},s=["week","month","week-time","day"].includes(l.view)?l.view:"month",m=be(l.slotDuration,30),k=de(l.slotMinTime,0),D=de(l.slotMaxTime,1440),F=de(l.scrollTime,k);return{grid:l.grid||null,key:se(l.rowKey??"id"),rowKey:l.rowKey??"id",startProperty:l.startProperty??"start",endProperty:l.endProperty??null,allDayProperty:l.allDayProperty??null,view:s,date:E(l.date)||new Date,firstDay:typeof l.firstDay=="number"?l.firstDay:1,locale:typeof l.locale=="string"?l.locale:void 0,timeZone:typeof l.timeZone=="string"?l.timeZone:void 0,header:V(l.header)?l.header:l.header===!1?!1:{},card:V(l.card)?l.card:{},colorProperty:l.colorProperty??null,colorMap:V(l.colorMap)?l.colorMap:null,eventOrder:l.eventOrder??null,dayMaxEvents:typeof l.dayMaxEvents=="number"&&l.dayMaxEvents>=0?l.dayMaxEvents:!1,readonly:l.readonly,renderCard:X(l.renderCard)?l.renderCard:null,ariaLabel:typeof l.ariaLabel=="string"?l.ariaLabel:"",messages:V(l.messages)?l.messages:null,labels:V(l.labels)?l.labels:{},slotDuration:m,slotMinTime:k,slotMaxTime:D,scrollTime:F,defaultDuration:be(l.defaultDuration,60),businessHours:Te(l.businessHours),weekNumbers:l.weekNumbers===!0}}function ve(i,l,s){const m=new Map(s.days.map(S=>[S.key,{...S,cards:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null;for(const S of l){const c=i.key(S),r=O(F(S));if(!r){k.push({key:c,row:S}),D||(D=!0,G("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}let y=null,h=!1;if(_&&(y=O(_(S)),y&&(h=!0)),!h){const j=m.get(ne(r));j&&j.cards.push({key:c,row:S,start:r,end:y,span:!1,color:oe(i,S)});continue}for(const j of we(i,c,S,r,y,s)){const P=m.get(j.day);P&&P.spans.push(j)}}const I=[...m.values()];for(const S of I)S.cards.sort((c,r)=>ae(i,c,r));return{days:I,unscheduled:k}}function Le(i,l,s){const m=new Map(s.days.map(h=>[h.key,{...h,timed:[],allDay:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null,I=i.allDayProperty?M(i.allDayProperty):null,{slotMinTime:S,slotMaxTime:c,defaultDuration:r}=i;for(const h of l){const j=i.key(h),P=F(h),C=O(P);if(!C){k.push({key:j,row:h}),D||(D=!0,G("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}const te=I&&!!I(h)||Ce(P),ce=oe(i,h);if(te){let Z=null;if(_&&(Z=O(_(h))),Z&&ne(Z)!==ne(C)){for(const U of we(i,j,h,C,Z,s)){const H=m.get(U.day);H&&H.spans.push(U)}continue}const z=m.get(ne(C));z&&z.allDay.push({key:j,row:h,start:C,end:Z,allDay:!0,color:ce});continue}const ke=he(C,i.timeZone),K=m.get(ke.dayKey);if(!K)continue;const g=Math.min(Math.max(ke.minutes,S),c);let w,A=null;if(_){const Z=O(_(h));if(Z){A=Z;const z=he(Z,i.timeZone);w=z.dayKey===ke.dayKey?Math.min(Math.max(z.minutes,S),c):c}else w=g+r}else w=g+r;w>c&&(w=c),K.timed.push({key:j,row:h,start:C,end:A,allDay:!1,color:ce,day:ke.dayKey,startMin:g,endMin:w,col:0,cols:1})}const y=[...m.values()];for(const h of y)xe(h.timed),h.allDay.sort((j,P)=>ae(i,j,P));return{days:y,unscheduled:k}}function Pe(i){if(i===!0)return()=>!0;if(!i||typeof i!="object")return()=>!1;const l=i.days||{},s=i.cards||{};return({day:m,card:k}={})=>i.board===!0||!b(m)&&l[m]===!0||!b(k)&&s[k]===!0}function Me(i,l){const s=M(i),m=new Map;for(const k of l){const D=s(k);m.set(D,(m.get(D)||0)+1)}return[...m.entries()].map(([k,D])=>({value:k,count:D})).sort((k,D)=>D.count-k.count)}function J(i){return String(i).replace(/[^\w-]/g,"_")}}),Ye("packages/modules/shared/emitter.js",function(p,Q){"use strict";Object.defineProperty(p,"WILDCARD",{enumerable:!0,get:function(){return X}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"gate",{enumerable:!0,get:function(){return B}});const u=Q("packages/core/src/internal/util.js"),G=u.isFunction,N=u.warnOnce,X="*",b=new Set(["api","user","init","ai"]);function V(se,O){return se&&se.name?se.name:`#${O}`}class M{#t=new Map;#e;constructor(O="module"){this.#e=String(O)}on(O,E){if(!G(E))return()=>{};let T=this.#t.get(O);return T||(T=new Set,this.#t.set(O,T)),T.add(E),()=>this.off(O,E)}off(O,E){const T=this.#t.get(O);T&&T.delete(E)}count(O){const E=this.#t.get(O);return E?E.size:0}emit(O,E){const T=this.#t.get(O),L=this.#t.get(X);if((!T||T.size===0)&&(!L||L.size===0))return;const W={...E||null,type:O};T&&T.size&&this.#r([...T],W,O),L&&L.size&&this.#r([...L],W,X)}#r(O,E,T){for(let L=0;L<O.length;L++)try{O[L](E)}catch(W){N(`${this.#e}.emit.throw:${T}:${V(O[L],L)}`,`${this.#e}: a '${T}' handler threw; other handlers were unaffected.`,W)}}emitBefore(O,E,T){const L=T??(E&&E.origin),W=b.has(L)?L:"user";let ie=!1,le=null;const me=ee=>{ie=!0,ee!=null&&le===null&&(le=String(ee))},ne={...E||null,type:O,origin:W,get defaultPrevented(){return ie},get reason(){return le},preventDefault(ee){me(ee)}},q=this.#t.get(O);if(!q||q.size===0)return!0;const pe=[...q],ue=()=>(ie&&le===null&&(le="prevented"),ie&&E&&typeof E=="object"&&(E.reason=le),!ie),R=[];for(let ee=0;ee<pe.length;ee++){const oe=pe[ee];try{const ae=oe(ne);ae&&G(ae.then)?R.push(ae):ae===!1&&me("prevented")}catch(ae){me("error"),N(`${this.#e}.beforeThrow:${O}:${V(oe,ee)}`,`${this.#e}: a '${O}' before-handler threw; the action was cancelled.`,ae)}}return R.length===0?ue():Promise.allSettled(R).then(ee=>{for(const oe of ee)oe.status==="rejected"?(me("error"),N(`${this.#e}.beforeReject:${O}`,`${this.#e}: a '${O}' before-handler rejected; the action was cancelled.`,oe.reason)):oe.value===!1&&me("prevented");return ue()})}clear(){this.#t.clear()}}function B(se,O,E,T,L){const W=se.emitBefore(O,T,T.origin),ie=()=>(se.emit(E,{...T,reason:T.reason||"prevented"}),!1);return W===!1?ie():W&&G(W.then)?W.then(le=>le?L():ie()):L()}}),Ye("packages/modules/calendar/styles.js",function(p,Q){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return u}}),Object.defineProperty(p,"css",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return X}});const u="lat-calendar",G="data-lattice-calendar-styles";function N(){return`
7
7
  .${u}{
8
8
  display:flex; flex-direction:column; box-sizing:border-box;
9
9
  width:100%; height:100%; min-height:0;
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, calendar module
2
+ * Lattice Grid 1.88.3, calendar module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- (function(Je){"use strict";var Ge=Object.create(null),Ue=Object.create(null);function ze(p,Q){Ge[p]=Q}function Ze(p){var Q=Ue[p];if(Q)return Q;var u=Object.create(null);Ue[p]=u;var U=Ge[p];if(!U)throw new Error("[lattice] missing module: "+p);return U(u,Ze),u}ze("packages/core/src/internal/util.js",function(p,Q){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return J}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return l}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return S}});const u="1.88.2";async function U(){return u}const N="1.88.2",X=new Set,b=2e3;function V(c){if(X.add(c),X.size>b){const r=X.values().next().value;r!==void 0&&X.delete(r)}}const M=[],B=500;function se(c,r,y){M.push({key:c,level:r,message:y.map(h=>typeof h=="string"?h:O(h)).join(" "),at:Date.now()}),M.length>B&&M.shift()}function O(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function E(){return M.map(c=>({...c}))}function T(c){if(c.length===0||typeof c[0]!="string")return c;const r=c[0].replace(/^\[lattice\]\s*/,"");return r===c[0]?c:[r,...c.slice(1)]}function L(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"warn",y),console.warn("[lattice]",...y)}function W(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"info",y),console.info("[lattice]",...y)}function ie(){X.clear(),M.length=0}function le(c,r){const y=new Error(`[lattice] ${c}`);throw r!==void 0&&(y.cause=r),y}function me(c,r){c||le(r)}const ne=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function q(c){return c!==null&&typeof c=="object"&&!Array.isArray(c)}function pe(c){return typeof c=="function"}function ue(c){return c==null}function R(c){return c==null||c===""}function ee(c){return typeof c!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(c))?!0:!!(c.prototype&&Object.getOwnPropertyNames(c.prototype).length>1)}const oe=new Map;function ae(c){let r=oe.get(c);if(r)return r;if(!c.includes("."))r=y=>y?.[c];else{const y=c.split("."),h=y.length;r=j=>{let P=j;for(let C=0;C<h;C++){if(P==null)return;P=P[y[C]]}return P}}return oe.set(c,r),r}const Ce=new Map;function be(c){let r=Ce.get(c);if(r)return r;if(!c.includes("."))r=(y,h)=>{y!=null&&(y[c]=h)};else{const y=c.split("."),h=y.length-1;r=(j,P)=>{let C=j;for(let te=0;te<h;te++){if(C==null)return;const ce=y[te];C[ce]==null&&(C[ce]={}),C=C[ce]}C!=null&&(C[y[h]]=P)}}return Ce.set(c,r),r}function de(c,r){return ae(r)(c)}function Ae(c,r,y){be(r)(c,y)}function Oe(c){return c?(c.includes(".")?c.slice(c.lastIndexOf(".")+1):c).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(/^./,y=>y.toUpperCase()):""}const Te={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function he(c){const r=c==null?"":String(c);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,y=>Te[y]):r}function Ne(c){return String(c).replace(/\w\S*/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function we(c,r,y){if(c!==void 0)return c===!0?{enabled:!0,...y}:c===!1?{enabled:!1}:q(c)?c:{[r]:c,enabled:!0}}function xe(c){return c==null?[]:Array.isArray(c)?c:[c]}const Fe=Object.freeze(new Set(["__proto__","constructor","prototype"]));function ve(c,r){if(!q(c))return q(r)?{...r}:r;if(!q(r))return r===void 0?c:r;const y={...c};for(const h of Object.keys(r)){if(Fe.has(h))continue;const j=r[h];j!==void 0&&(y[h]=q(j)&&q(y[h])?ve(y[h],j):j)}return y}function Le(c,r){if(!q(c)||!q(r)||c===r)return r;const y=Object.create(Object.getPrototypeOf(c));return Object.assign(y,c,r),y}class Pe{#t;#e=new Map;#r;constructor(r=256,y=null){this.#t=r,this.#r=y}get size(){return this.#e.size}get max(){return this.#t}set max(r){this.#t=r,this.#n()}has(r){return this.#e.has(r)}get(r){const y=this.#e;if(!y.has(r))return;const h=y.get(r);return y.delete(r),y.set(r,h),h}peek(r){return this.#e.get(r)}set(r,y){const h=this.#e;return h.has(r)&&h.delete(r),h.set(r,y),this.#n(),y}delete(r){const y=this.#e.get(r);return this.#e.delete(r)&&this.#r&&this.#r(y,r),y}clear(){if(this.#r)for(const[r,y]of this.#e)this.#r(y,r);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#n(){const r=this.#e;for(;r.size>this.#t;){const y=r.keys().next().value,h=r.get(y);r.delete(y),this.#r&&this.#r(h,y)}}}const Me=new Map;function J(c,r){const y=`${c||""}|${r?JSON.stringify(r):""}`;let h=Me.get(y);return h||(h=new Intl.Collator(c||void 0,{numeric:!0,sensitivity:"variant",...r}),Me.set(y,h)),h}function i(c,r){if(c===r)return 0;if(c==null)return 1;if(r==null)return-1;if(typeof c=="number"&&typeof r=="number")return Number.isNaN(c)?Number.isNaN(r)?0:1:Number.isNaN(r)||c<r?-1:c>r?1:0;const y=String(c),h=String(r);return y<h?-1:y>h?1:0}function l(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const s=typeof requestAnimationFrame=="function";function m(c){return s?requestAnimationFrame(c):setTimeout(()=>c(l()),16)}function k(c){c!=null&&(s?cancelAnimationFrame(c):clearTimeout(c))}function D(c){let r=null,y=null;const h=()=>{r=null;const P=y;y=null,c(...P||[])},j=(...P)=>{y=P,r===null&&(r=m(h))};return j.cancel=()=>{k(r),r=null,y=null},j.flush=()=>{r!==null&&(k(r),h())},j}function F(c,r){let y=null,h=null;const j=()=>{if(y=null,h===null)return;const te=h;h=null,c(...te),P()},P=()=>{y=setTimeout(j,r),typeof y?.unref=="function"&&y.unref()},C=(...te)=>{y===null?(c(...te),P()):(h=te,clearTimeout(y),P())};return C.flush=()=>{if(y!==null&&clearTimeout(y),y=null,h===null)return;const te=h;h=null,c(...te)},C.cancel=()=>{y!==null&&clearTimeout(y),y=null,h=null},C.pending=()=>y!==null||h!==null,C}function _(c,r=50){return typeof requestIdleCallback=="function"?requestIdleCallback(c,{timeout:r}):setTimeout(()=>c({timeRemaining:()=>0,didTimeout:!0}),1)}let I=0;function S(c="l"){return`${c}${(++I).toString(36)}`}}),ze("packages/modules/calendar/model.js",function(p,Q){"use strict";Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"keyFn",{enumerable:!0,get:function(){return se}}),Object.defineProperty(p,"parseDate",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"toDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"startOfDay",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"addDays",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"shiftDays",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"shiftMinutes",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"toWriteString",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"rowDates",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"dayKeyOf",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isTimeView",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"computeRange",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"titleFor",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"formatTime",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"fieldText",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"colorFor",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(p,"cardRank",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"isDateOnlyValue",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(p,"durationMinutes",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"clockMinutes",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"minutesToClock",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"isoWeekNumber",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"resolveBusinessHours",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(p,"wallClock",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"nowAt",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"spanSegments",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"assignColumns",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"resolveContext",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(p,"buildDays",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"buildTimeDays",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"resolveReadonly",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"facets",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(p,"cssId",{enumerable:!0,get:function(){return J}});const u=Q("packages/core/src/internal/util.js"),U=u.warnOnce,N=u.getPath,X=u.isFunction,b=u.isNil,V=u.isObject;function M(i){return X(i)?i:typeof i=="string"?l=>N(l,i):()=>{}}function B(i){return Array.isArray(i)?"array":i===null?"null":typeof i}function se(i){if(i!==void 0&&typeof i!="function"&&!(typeof i=="string"&&i.length>0))throw new Error("lattice-calendar: rowKey must be a property name or a function; composite keys are not supported on calendars.");if(X(i))return s=>{const m=i(s);if(typeof m=="string"||typeof m=="number"&&Number.isFinite(m))return m;throw new Error(`lattice-calendar: rowKey function must return a string or number; got ${B(m)}.`)};const l=typeof i=="string"?i:"id";return s=>N(s,l)}function O(i){if(i instanceof Date)return Number.isNaN(i.getTime())?null:i;if(typeof i=="number"&&Number.isFinite(i))return new Date(i);if(typeof i!="string")return null;const l=i.trim();if(!l)return null;let s=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?$/.exec(l);if(s){const k=new Date(+s[1],+s[2]-1,+s[3],+s[4],+s[5],s[6]?+s[6]:0);return Number.isNaN(k.getTime())?null:k}if(s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(l),s){const k=new Date(+s[1],+s[2]-1,+s[3]);return Number.isNaN(k.getTime())?null:k}const m=new Date(l);return Number.isNaN(m.getTime())?null:m}function E(i){return i==null?null:O(i)}function T(i){return new Date(i.getFullYear(),i.getMonth(),i.getDate())}function L(i,l){return new Date(i.getFullYear(),i.getMonth(),i.getDate()+l)}function W(i,l){const s=new Date(i);return s.setDate(s.getDate()+l),s}function ie(i,l){return new Date(i.getTime()+l*6e4)}function le(i,l){const s=i.getFullYear(),m=String(i.getMonth()+1).padStart(2,"0"),k=String(i.getDate()).padStart(2,"0");if(l)return`${s}-${m}-${k}`;const D=String(i.getHours()).padStart(2,"0"),F=String(i.getMinutes()).padStart(2,"0");return`${s}-${m}-${k} ${D}:${F}`}function me(i,l){const s=O(M(i.startProperty)(l)),m=i.endProperty?O(M(i.endProperty)(l)):null;return{start:s,end:m}}function ne(i){const l=i.getFullYear(),s=String(i.getMonth()+1).padStart(2,"0"),m=String(i.getDate()).padStart(2,"0");return`${l}-${s}-${m}`}function q(i){return i==="week-time"||i==="day"}function pe(i,l,s){const m=T(i),k=s===void 0?1:s,D=l==="month",F=l==="day";let _,I;if(F)_=m,I=1;else if(D){const c=new Date(m.getFullYear(),m.getMonth(),1),r=(c.getDay()-k+7)%7;_=L(c,-r);const y=new Date(m.getFullYear(),m.getMonth()+1,0).getDate();I=Math.ceil((r+y)/7)*7}else{const c=(m.getDay()-k+7)%7;_=L(m,-c),I=7}const S=[];for(let c=0;c<I;c++){const r=L(_,c);S.push({date:r,key:ne(r),dayNumber:r.getDate(),weekday:r.getDay(),inRange:!D||r.getMonth()===m.getMonth()})}return{start:_,end:L(_,I-1),view:l,days:S}}function ue(i,l,s){const m=i||void 0;if(l.view==="week"||l.view==="week-time"){const k=new Intl.DateTimeFormat(m,{month:"short",day:"numeric"});if(l.start.getFullYear()===l.end.getFullYear())return`${k.format(l.start)} – ${k.format(l.end)}, ${l.start.getFullYear()}`;const D=new Intl.DateTimeFormat(m,{month:"short",day:"numeric",year:"numeric"});return`${D.format(l.start)} – ${D.format(l.end)}`}return l.view==="day"?new Intl.DateTimeFormat(m,{weekday:"long",month:"long",day:"numeric",year:"numeric"}).format(s):new Intl.DateTimeFormat(m,{month:"long",year:"numeric"}).format(s)}function R(i,l){return new Intl.DateTimeFormat(i||void 0,{hour:"numeric",minute:"2-digit"}).format(l)}function ee(i,l,s,m){if(b(m))return"";if(i.grid&&typeof m=="string")try{if(i.grid.columns&&i.grid.columns.get&&i.grid.columns.get(m)){const D=i.grid.rows.text(s,m);if(!b(D))return String(D)}}catch{}const k=M(m)(l);return b(k)?"":String(k)}function oe(i,l){if(!i.colorProperty)return null;const s=M(i.colorProperty)(l);if(b(s))return null;if(i.colorMap&&V(i.colorMap)){const m=i.colorMap[String(s)];if(typeof m=="string"&&m)return m}return typeof s=="string"&&/^(#|rgb|hsl|oklch|var\()/.test(s.trim())?s.trim():null}function ae(i,l,s){if(X(i.eventOrder))return i.eventOrder(l.row,s.row)||0;if(typeof i.eventOrder=="string"&&i.eventOrder){const D=M(i.eventOrder),F=D(l.row),_=D(s.row);if(F!==_)return(F>_?1:0)-(F<_?1:0)}const m=l.start?l.start.getTime():0,k=s.start?s.start.getTime():0;return m!==k?m-k:String(l.key)<String(s.key)?-1:String(l.key)>String(s.key)?1:0}function Ce(i){return typeof i=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(i.trim())}function be(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>0)return i;if(typeof i=="string"){const s=/^(\d+)(?::(\d{1,2})(?::(\d{1,2}))?)?$/.exec(i.trim());if(s){const m=+s[1]*60+ +(s[2]||0)+ +(s[3]||0)/60;if(m>0)return m}}return l}function de(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>=0)return i;if(typeof i=="string"){const s=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(i.trim());if(s)return+s[1]*60+ +s[2]+ +(s[3]||0)/60}return l}function Ae(i){const l=Math.floor(i/60),s=Math.round(i%60);return`${String(l).padStart(2,"0")}:${String(s).padStart(2,"0")}`}function Oe(i){const l=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())),s=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-s);const m=new Date(Date.UTC(l.getUTCFullYear(),0,1));return Math.ceil(((l.getTime()-m.getTime())/864e5+1)/7)}function Te(i){if(i!==!0&&!V(i))return null;const l=V(i)?i:{},s=Array.isArray(l.daysOfWeek)?l.daysOfWeek.filter(m=>Number.isInteger(m)):[1,2,3,4,5];return{start:de(l.startTime,540),end:de(l.endTime,1020),daysOfWeek:s}}function he(i,l){if(l)try{const s=new Intl.DateTimeFormat("en-CA",{timeZone:l,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).formatToParts(i).reduce((k,D)=>(D.type!=="literal"&&(k[D.type]=D.value),k),{}),m=s.hour==="24"?"00":s.hour;return{dayKey:`${s.year}-${s.month}-${s.day}`,minutes:+m*60+ +s.minute}}catch{}return{dayKey:ne(i),minutes:i.getHours()*60+i.getMinutes()}}function Ne(i,l){return he(i,l)}function we(i,l,s,m,k,D){const F=D.start.getTime(),_=D.end.getTime(),I=m.getTime(),S=k.getTime();if(S<F||I>_)return[];const c=new Map(D.days.map((K,g)=>[K.key,g])),r=new Date(Math.max(T(m).getTime(),F)),y=new Date(Math.min(T(k).getTime(),_)),h=[];for(let K=new Date(r);K.getTime()<=y.getTime();K=L(K,1))h.push(ne(K));const j=K=>Math.floor(c.get(K)/7),P=[];let C=[];for(const K of h)c.has(K)&&(C.length&&(c.get(K)!==c.get(C[C.length-1])+1||j(K)!==j(C[C.length-1]))&&(P.push(C),C=[]),C.push(K));C.length&&P.push(C);const te=h[0],ce=h[h.length-1];return P.map(K=>({key:l,row:s,start:m,end:k,span:!0,color:oe(i,s),day:K[0],length:K.length,continuesBefore:K[0]!==te||I<F,continuesAfter:K[K.length-1]!==ce||S>_}))}function xe(i){i.sort((s,m)=>s.startMin-m.startMin||m.endMin-s.endMin||(String(s.key)<String(m.key)?-1:String(s.key)>String(m.key)?1:0));const l=[];for(const s of i){const m=l[l.length-1];m&&s.startMin<m.end?(m.items.push(s),s.endMin>m.end&&(m.end=s.endMin)):l.push({items:[s],end:s.endMin})}for(const s of l){const m=[];for(const k of s.items){let D=0;for(;D<m.length&&m[D]>k.startMin;)D++;k.col=D,D===m.length?m.push(k.endMin):m[D]=k.endMin}for(const k of s.items)k.cols=m.length}return i}function Fe(i){const l=V(i)?i:{},s=["week","month","week-time","day"].includes(l.view)?l.view:"month",m=be(l.slotDuration,30),k=de(l.slotMinTime,0),D=de(l.slotMaxTime,1440),F=de(l.scrollTime,k);return{grid:l.grid||null,key:se(l.rowKey??"id"),rowKey:l.rowKey??"id",startProperty:l.startProperty??"start",endProperty:l.endProperty??null,allDayProperty:l.allDayProperty??null,view:s,date:E(l.date)||new Date,firstDay:typeof l.firstDay=="number"?l.firstDay:1,locale:typeof l.locale=="string"?l.locale:void 0,timeZone:typeof l.timeZone=="string"?l.timeZone:void 0,header:V(l.header)?l.header:l.header===!1?!1:{},card:V(l.card)?l.card:{},colorProperty:l.colorProperty??null,colorMap:V(l.colorMap)?l.colorMap:null,eventOrder:l.eventOrder??null,dayMaxEvents:typeof l.dayMaxEvents=="number"&&l.dayMaxEvents>=0?l.dayMaxEvents:!1,readonly:l.readonly,renderCard:X(l.renderCard)?l.renderCard:null,ariaLabel:typeof l.ariaLabel=="string"?l.ariaLabel:"",messages:V(l.messages)?l.messages:null,labels:V(l.labels)?l.labels:{},slotDuration:m,slotMinTime:k,slotMaxTime:D,scrollTime:F,defaultDuration:be(l.defaultDuration,60),businessHours:Te(l.businessHours),weekNumbers:l.weekNumbers===!0}}function ve(i,l,s){const m=new Map(s.days.map(S=>[S.key,{...S,cards:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null;for(const S of l){const c=i.key(S),r=O(F(S));if(!r){k.push({key:c,row:S}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}let y=null,h=!1;if(_&&(y=O(_(S)),y&&(h=!0)),!h){const j=m.get(ne(r));j&&j.cards.push({key:c,row:S,start:r,end:y,span:!1,color:oe(i,S)});continue}for(const j of we(i,c,S,r,y,s)){const P=m.get(j.day);P&&P.spans.push(j)}}const I=[...m.values()];for(const S of I)S.cards.sort((c,r)=>ae(i,c,r));return{days:I,unscheduled:k}}function Le(i,l,s){const m=new Map(s.days.map(h=>[h.key,{...h,timed:[],allDay:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null,I=i.allDayProperty?M(i.allDayProperty):null,{slotMinTime:S,slotMaxTime:c,defaultDuration:r}=i;for(const h of l){const j=i.key(h),P=F(h),C=O(P);if(!C){k.push({key:j,row:h}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}const te=I&&!!I(h)||Ce(P),ce=oe(i,h);if(te){let Z=null;if(_&&(Z=O(_(h))),Z&&ne(Z)!==ne(C)){for(const G of we(i,j,h,C,Z,s)){const H=m.get(G.day);H&&H.spans.push(G)}continue}const z=m.get(ne(C));z&&z.allDay.push({key:j,row:h,start:C,end:Z,allDay:!0,color:ce});continue}const ke=he(C,i.timeZone),K=m.get(ke.dayKey);if(!K)continue;const g=Math.min(Math.max(ke.minutes,S),c);let w,A=null;if(_){const Z=O(_(h));if(Z){A=Z;const z=he(Z,i.timeZone);w=z.dayKey===ke.dayKey?Math.min(Math.max(z.minutes,S),c):c}else w=g+r}else w=g+r;w>c&&(w=c),K.timed.push({key:j,row:h,start:C,end:A,allDay:!1,color:ce,day:ke.dayKey,startMin:g,endMin:w,col:0,cols:1})}const y=[...m.values()];for(const h of y)xe(h.timed),h.allDay.sort((j,P)=>ae(i,j,P));return{days:y,unscheduled:k}}function Pe(i){if(i===!0)return()=>!0;if(!i||typeof i!="object")return()=>!1;const l=i.days||{},s=i.cards||{};return({day:m,card:k}={})=>i.board===!0||!b(m)&&l[m]===!0||!b(k)&&s[k]===!0}function Me(i,l){const s=M(i),m=new Map;for(const k of l){const D=s(k);m.set(D,(m.get(D)||0)+1)}return[...m.entries()].map(([k,D])=>({value:k,count:D})).sort((k,D)=>D.count-k.count)}function J(i){return String(i).replace(/[^\w-]/g,"_")}}),ze("packages/modules/shared/emitter.js",function(p,Q){"use strict";Object.defineProperty(p,"WILDCARD",{enumerable:!0,get:function(){return X}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"gate",{enumerable:!0,get:function(){return B}});const u=Q("packages/core/src/internal/util.js"),U=u.isFunction,N=u.warnOnce,X="*",b=new Set(["api","user","init","ai"]);function V(se,O){return se&&se.name?se.name:`#${O}`}class M{#t=new Map;#e;constructor(O="module"){this.#e=String(O)}on(O,E){if(!U(E))return()=>{};let T=this.#t.get(O);return T||(T=new Set,this.#t.set(O,T)),T.add(E),()=>this.off(O,E)}off(O,E){const T=this.#t.get(O);T&&T.delete(E)}count(O){const E=this.#t.get(O);return E?E.size:0}emit(O,E){const T=this.#t.get(O),L=this.#t.get(X);if((!T||T.size===0)&&(!L||L.size===0))return;const W={...E||null,type:O};T&&T.size&&this.#r([...T],W,O),L&&L.size&&this.#r([...L],W,X)}#r(O,E,T){for(let L=0;L<O.length;L++)try{O[L](E)}catch(W){N(`${this.#e}.emit.throw:${T}:${V(O[L],L)}`,`${this.#e}: a '${T}' handler threw; other handlers were unaffected.`,W)}}emitBefore(O,E,T){const L=T??(E&&E.origin),W=b.has(L)?L:"user";let ie=!1,le=null;const me=ee=>{ie=!0,ee!=null&&le===null&&(le=String(ee))},ne={...E||null,type:O,origin:W,get defaultPrevented(){return ie},get reason(){return le},preventDefault(ee){me(ee)}},q=this.#t.get(O);if(!q||q.size===0)return!0;const pe=[...q],ue=()=>(ie&&le===null&&(le="prevented"),ie&&E&&typeof E=="object"&&(E.reason=le),!ie),R=[];for(let ee=0;ee<pe.length;ee++){const oe=pe[ee];try{const ae=oe(ne);ae&&U(ae.then)?R.push(ae):ae===!1&&me("prevented")}catch(ae){me("error"),N(`${this.#e}.beforeThrow:${O}:${V(oe,ee)}`,`${this.#e}: a '${O}' before-handler threw; the action was cancelled.`,ae)}}return R.length===0?ue():Promise.allSettled(R).then(ee=>{for(const oe of ee)oe.status==="rejected"?(me("error"),N(`${this.#e}.beforeReject:${O}`,`${this.#e}: a '${O}' before-handler rejected; the action was cancelled.`,oe.reason)):oe.value===!1&&me("prevented");return ue()})}clear(){this.#t.clear()}}function B(se,O,E,T,L){const W=se.emitBefore(O,T,T.origin),ie=()=>(se.emit(E,{...T,reason:T.reason||"prevented"}),!1);return W===!1?ie():W&&U(W.then)?W.then(le=>le?L():ie()):L()}}),ze("packages/modules/calendar/styles.js",function(p,Q){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return u}}),Object.defineProperty(p,"css",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return X}});const u="lat-calendar",U="data-lattice-calendar-styles";function N(){return`
6
+ (function(Je){"use strict";var Ge=Object.create(null),Ue=Object.create(null);function ze(p,Q){Ge[p]=Q}function Ze(p){var Q=Ue[p];if(Q)return Q;var u=Object.create(null);Ue[p]=u;var U=Ge[p];if(!U)throw new Error("[lattice] missing module: "+p);return U(u,Ze),u}ze("packages/core/src/internal/util.js",function(p,Q){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return J}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return l}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return S}});const u="1.88.3";async function U(){return u}const N="1.88.3",X=new Set,b=2e3;function V(c){if(X.add(c),X.size>b){const r=X.values().next().value;r!==void 0&&X.delete(r)}}const M=[],B=500;function se(c,r,y){M.push({key:c,level:r,message:y.map(h=>typeof h=="string"?h:O(h)).join(" "),at:Date.now()}),M.length>B&&M.shift()}function O(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function E(){return M.map(c=>({...c}))}function T(c){if(c.length===0||typeof c[0]!="string")return c;const r=c[0].replace(/^\[lattice\]\s*/,"");return r===c[0]?c:[r,...c.slice(1)]}function L(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"warn",y),console.warn("[lattice]",...y)}function W(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"info",y),console.info("[lattice]",...y)}function ie(){X.clear(),M.length=0}function le(c,r){const y=new Error(`[lattice] ${c}`);throw r!==void 0&&(y.cause=r),y}function me(c,r){c||le(r)}const ne=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function q(c){return c!==null&&typeof c=="object"&&!Array.isArray(c)}function pe(c){return typeof c=="function"}function ue(c){return c==null}function R(c){return c==null||c===""}function ee(c){return typeof c!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(c))?!0:!!(c.prototype&&Object.getOwnPropertyNames(c.prototype).length>1)}const oe=new Map;function ae(c){let r=oe.get(c);if(r)return r;if(!c.includes("."))r=y=>y?.[c];else{const y=c.split("."),h=y.length;r=j=>{let P=j;for(let C=0;C<h;C++){if(P==null)return;P=P[y[C]]}return P}}return oe.set(c,r),r}const Ce=new Map;function be(c){let r=Ce.get(c);if(r)return r;if(!c.includes("."))r=(y,h)=>{y!=null&&(y[c]=h)};else{const y=c.split("."),h=y.length-1;r=(j,P)=>{let C=j;for(let te=0;te<h;te++){if(C==null)return;const ce=y[te];C[ce]==null&&(C[ce]={}),C=C[ce]}C!=null&&(C[y[h]]=P)}}return Ce.set(c,r),r}function de(c,r){return ae(r)(c)}function Ae(c,r,y){be(r)(c,y)}function Oe(c){return c?(c.includes(".")?c.slice(c.lastIndexOf(".")+1):c).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(/^./,y=>y.toUpperCase()):""}const Te={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function he(c){const r=c==null?"":String(c);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,y=>Te[y]):r}function Ne(c){return String(c).replace(/\w\S*/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function we(c,r,y){if(c!==void 0)return c===!0?{enabled:!0,...y}:c===!1?{enabled:!1}:q(c)?c:{[r]:c,enabled:!0}}function xe(c){return c==null?[]:Array.isArray(c)?c:[c]}const Fe=Object.freeze(new Set(["__proto__","constructor","prototype"]));function ve(c,r){if(!q(c))return q(r)?{...r}:r;if(!q(r))return r===void 0?c:r;const y={...c};for(const h of Object.keys(r)){if(Fe.has(h))continue;const j=r[h];j!==void 0&&(y[h]=q(j)&&q(y[h])?ve(y[h],j):j)}return y}function Le(c,r){if(!q(c)||!q(r)||c===r)return r;const y=Object.create(Object.getPrototypeOf(c));return Object.assign(y,c,r),y}class Pe{#t;#e=new Map;#r;constructor(r=256,y=null){this.#t=r,this.#r=y}get size(){return this.#e.size}get max(){return this.#t}set max(r){this.#t=r,this.#n()}has(r){return this.#e.has(r)}get(r){const y=this.#e;if(!y.has(r))return;const h=y.get(r);return y.delete(r),y.set(r,h),h}peek(r){return this.#e.get(r)}set(r,y){const h=this.#e;return h.has(r)&&h.delete(r),h.set(r,y),this.#n(),y}delete(r){const y=this.#e.get(r);return this.#e.delete(r)&&this.#r&&this.#r(y,r),y}clear(){if(this.#r)for(const[r,y]of this.#e)this.#r(y,r);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#n(){const r=this.#e;for(;r.size>this.#t;){const y=r.keys().next().value,h=r.get(y);r.delete(y),this.#r&&this.#r(h,y)}}}const Me=new Map;function J(c,r){const y=`${c||""}|${r?JSON.stringify(r):""}`;let h=Me.get(y);return h||(h=new Intl.Collator(c||void 0,{numeric:!0,sensitivity:"variant",...r}),Me.set(y,h)),h}function i(c,r){if(c===r)return 0;if(c==null)return 1;if(r==null)return-1;if(typeof c=="number"&&typeof r=="number")return Number.isNaN(c)?Number.isNaN(r)?0:1:Number.isNaN(r)||c<r?-1:c>r?1:0;const y=String(c),h=String(r);return y<h?-1:y>h?1:0}function l(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const s=typeof requestAnimationFrame=="function";function m(c){return s?requestAnimationFrame(c):setTimeout(()=>c(l()),16)}function k(c){c!=null&&(s?cancelAnimationFrame(c):clearTimeout(c))}function D(c){let r=null,y=null;const h=()=>{r=null;const P=y;y=null,c(...P||[])},j=(...P)=>{y=P,r===null&&(r=m(h))};return j.cancel=()=>{k(r),r=null,y=null},j.flush=()=>{r!==null&&(k(r),h())},j}function F(c,r){let y=null,h=null;const j=()=>{if(y=null,h===null)return;const te=h;h=null,c(...te),P()},P=()=>{y=setTimeout(j,r),typeof y?.unref=="function"&&y.unref()},C=(...te)=>{y===null?(c(...te),P()):(h=te,clearTimeout(y),P())};return C.flush=()=>{if(y!==null&&clearTimeout(y),y=null,h===null)return;const te=h;h=null,c(...te)},C.cancel=()=>{y!==null&&clearTimeout(y),y=null,h=null},C.pending=()=>y!==null||h!==null,C}function _(c,r=50){return typeof requestIdleCallback=="function"?requestIdleCallback(c,{timeout:r}):setTimeout(()=>c({timeRemaining:()=>0,didTimeout:!0}),1)}let I=0;function S(c="l"){return`${c}${(++I).toString(36)}`}}),ze("packages/modules/calendar/model.js",function(p,Q){"use strict";Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"keyFn",{enumerable:!0,get:function(){return se}}),Object.defineProperty(p,"parseDate",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"toDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"startOfDay",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"addDays",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"shiftDays",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"shiftMinutes",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"toWriteString",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"rowDates",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"dayKeyOf",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isTimeView",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"computeRange",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"titleFor",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"formatTime",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"fieldText",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"colorFor",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(p,"cardRank",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"isDateOnlyValue",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(p,"durationMinutes",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"clockMinutes",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"minutesToClock",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"isoWeekNumber",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"resolveBusinessHours",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(p,"wallClock",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"nowAt",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"spanSegments",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"assignColumns",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"resolveContext",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(p,"buildDays",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"buildTimeDays",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"resolveReadonly",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"facets",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(p,"cssId",{enumerable:!0,get:function(){return J}});const u=Q("packages/core/src/internal/util.js"),U=u.warnOnce,N=u.getPath,X=u.isFunction,b=u.isNil,V=u.isObject;function M(i){return X(i)?i:typeof i=="string"?l=>N(l,i):()=>{}}function B(i){return Array.isArray(i)?"array":i===null?"null":typeof i}function se(i){if(i!==void 0&&typeof i!="function"&&!(typeof i=="string"&&i.length>0))throw new Error("lattice-calendar: rowKey must be a property name or a function; composite keys are not supported on calendars.");if(X(i))return s=>{const m=i(s);if(typeof m=="string"||typeof m=="number"&&Number.isFinite(m))return m;throw new Error(`lattice-calendar: rowKey function must return a string or number; got ${B(m)}.`)};const l=typeof i=="string"?i:"id";return s=>N(s,l)}function O(i){if(i instanceof Date)return Number.isNaN(i.getTime())?null:i;if(typeof i=="number"&&Number.isFinite(i))return new Date(i);if(typeof i!="string")return null;const l=i.trim();if(!l)return null;let s=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?$/.exec(l);if(s){const k=new Date(+s[1],+s[2]-1,+s[3],+s[4],+s[5],s[6]?+s[6]:0);return Number.isNaN(k.getTime())?null:k}if(s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(l),s){const k=new Date(+s[1],+s[2]-1,+s[3]);return Number.isNaN(k.getTime())?null:k}const m=new Date(l);return Number.isNaN(m.getTime())?null:m}function E(i){return i==null?null:O(i)}function T(i){return new Date(i.getFullYear(),i.getMonth(),i.getDate())}function L(i,l){return new Date(i.getFullYear(),i.getMonth(),i.getDate()+l)}function W(i,l){const s=new Date(i);return s.setDate(s.getDate()+l),s}function ie(i,l){return new Date(i.getTime()+l*6e4)}function le(i,l){const s=i.getFullYear(),m=String(i.getMonth()+1).padStart(2,"0"),k=String(i.getDate()).padStart(2,"0");if(l)return`${s}-${m}-${k}`;const D=String(i.getHours()).padStart(2,"0"),F=String(i.getMinutes()).padStart(2,"0");return`${s}-${m}-${k} ${D}:${F}`}function me(i,l){const s=O(M(i.startProperty)(l)),m=i.endProperty?O(M(i.endProperty)(l)):null;return{start:s,end:m}}function ne(i){const l=i.getFullYear(),s=String(i.getMonth()+1).padStart(2,"0"),m=String(i.getDate()).padStart(2,"0");return`${l}-${s}-${m}`}function q(i){return i==="week-time"||i==="day"}function pe(i,l,s){const m=T(i),k=s===void 0?1:s,D=l==="month",F=l==="day";let _,I;if(F)_=m,I=1;else if(D){const c=new Date(m.getFullYear(),m.getMonth(),1),r=(c.getDay()-k+7)%7;_=L(c,-r);const y=new Date(m.getFullYear(),m.getMonth()+1,0).getDate();I=Math.ceil((r+y)/7)*7}else{const c=(m.getDay()-k+7)%7;_=L(m,-c),I=7}const S=[];for(let c=0;c<I;c++){const r=L(_,c);S.push({date:r,key:ne(r),dayNumber:r.getDate(),weekday:r.getDay(),inRange:!D||r.getMonth()===m.getMonth()})}return{start:_,end:L(_,I-1),view:l,days:S}}function ue(i,l,s){const m=i||void 0;if(l.view==="week"||l.view==="week-time"){const k=new Intl.DateTimeFormat(m,{month:"short",day:"numeric"});if(l.start.getFullYear()===l.end.getFullYear())return`${k.format(l.start)} – ${k.format(l.end)}, ${l.start.getFullYear()}`;const D=new Intl.DateTimeFormat(m,{month:"short",day:"numeric",year:"numeric"});return`${D.format(l.start)} – ${D.format(l.end)}`}return l.view==="day"?new Intl.DateTimeFormat(m,{weekday:"long",month:"long",day:"numeric",year:"numeric"}).format(s):new Intl.DateTimeFormat(m,{month:"long",year:"numeric"}).format(s)}function R(i,l){return new Intl.DateTimeFormat(i||void 0,{hour:"numeric",minute:"2-digit"}).format(l)}function ee(i,l,s,m){if(b(m))return"";if(i.grid&&typeof m=="string")try{if(i.grid.columns&&i.grid.columns.get&&i.grid.columns.get(m)){const D=i.grid.rows.text(s,m);if(!b(D))return String(D)}}catch{}const k=M(m)(l);return b(k)?"":String(k)}function oe(i,l){if(!i.colorProperty)return null;const s=M(i.colorProperty)(l);if(b(s))return null;if(i.colorMap&&V(i.colorMap)){const m=i.colorMap[String(s)];if(typeof m=="string"&&m)return m}return typeof s=="string"&&/^(#|rgb|hsl|oklch|var\()/.test(s.trim())?s.trim():null}function ae(i,l,s){if(X(i.eventOrder))return i.eventOrder(l.row,s.row)||0;if(typeof i.eventOrder=="string"&&i.eventOrder){const D=M(i.eventOrder),F=D(l.row),_=D(s.row);if(F!==_)return(F>_?1:0)-(F<_?1:0)}const m=l.start?l.start.getTime():0,k=s.start?s.start.getTime():0;return m!==k?m-k:String(l.key)<String(s.key)?-1:String(l.key)>String(s.key)?1:0}function Ce(i){return typeof i=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(i.trim())}function be(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>0)return i;if(typeof i=="string"){const s=/^(\d+)(?::(\d{1,2})(?::(\d{1,2}))?)?$/.exec(i.trim());if(s){const m=+s[1]*60+ +(s[2]||0)+ +(s[3]||0)/60;if(m>0)return m}}return l}function de(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>=0)return i;if(typeof i=="string"){const s=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(i.trim());if(s)return+s[1]*60+ +s[2]+ +(s[3]||0)/60}return l}function Ae(i){const l=Math.floor(i/60),s=Math.round(i%60);return`${String(l).padStart(2,"0")}:${String(s).padStart(2,"0")}`}function Oe(i){const l=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())),s=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-s);const m=new Date(Date.UTC(l.getUTCFullYear(),0,1));return Math.ceil(((l.getTime()-m.getTime())/864e5+1)/7)}function Te(i){if(i!==!0&&!V(i))return null;const l=V(i)?i:{},s=Array.isArray(l.daysOfWeek)?l.daysOfWeek.filter(m=>Number.isInteger(m)):[1,2,3,4,5];return{start:de(l.startTime,540),end:de(l.endTime,1020),daysOfWeek:s}}function he(i,l){if(l)try{const s=new Intl.DateTimeFormat("en-CA",{timeZone:l,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).formatToParts(i).reduce((k,D)=>(D.type!=="literal"&&(k[D.type]=D.value),k),{}),m=s.hour==="24"?"00":s.hour;return{dayKey:`${s.year}-${s.month}-${s.day}`,minutes:+m*60+ +s.minute}}catch{}return{dayKey:ne(i),minutes:i.getHours()*60+i.getMinutes()}}function Ne(i,l){return he(i,l)}function we(i,l,s,m,k,D){const F=D.start.getTime(),_=D.end.getTime(),I=m.getTime(),S=k.getTime();if(S<F||I>_)return[];const c=new Map(D.days.map((K,g)=>[K.key,g])),r=new Date(Math.max(T(m).getTime(),F)),y=new Date(Math.min(T(k).getTime(),_)),h=[];for(let K=new Date(r);K.getTime()<=y.getTime();K=L(K,1))h.push(ne(K));const j=K=>Math.floor(c.get(K)/7),P=[];let C=[];for(const K of h)c.has(K)&&(C.length&&(c.get(K)!==c.get(C[C.length-1])+1||j(K)!==j(C[C.length-1]))&&(P.push(C),C=[]),C.push(K));C.length&&P.push(C);const te=h[0],ce=h[h.length-1];return P.map(K=>({key:l,row:s,start:m,end:k,span:!0,color:oe(i,s),day:K[0],length:K.length,continuesBefore:K[0]!==te||I<F,continuesAfter:K[K.length-1]!==ce||S>_}))}function xe(i){i.sort((s,m)=>s.startMin-m.startMin||m.endMin-s.endMin||(String(s.key)<String(m.key)?-1:String(s.key)>String(m.key)?1:0));const l=[];for(const s of i){const m=l[l.length-1];m&&s.startMin<m.end?(m.items.push(s),s.endMin>m.end&&(m.end=s.endMin)):l.push({items:[s],end:s.endMin})}for(const s of l){const m=[];for(const k of s.items){let D=0;for(;D<m.length&&m[D]>k.startMin;)D++;k.col=D,D===m.length?m.push(k.endMin):m[D]=k.endMin}for(const k of s.items)k.cols=m.length}return i}function Fe(i){const l=V(i)?i:{},s=["week","month","week-time","day"].includes(l.view)?l.view:"month",m=be(l.slotDuration,30),k=de(l.slotMinTime,0),D=de(l.slotMaxTime,1440),F=de(l.scrollTime,k);return{grid:l.grid||null,key:se(l.rowKey??"id"),rowKey:l.rowKey??"id",startProperty:l.startProperty??"start",endProperty:l.endProperty??null,allDayProperty:l.allDayProperty??null,view:s,date:E(l.date)||new Date,firstDay:typeof l.firstDay=="number"?l.firstDay:1,locale:typeof l.locale=="string"?l.locale:void 0,timeZone:typeof l.timeZone=="string"?l.timeZone:void 0,header:V(l.header)?l.header:l.header===!1?!1:{},card:V(l.card)?l.card:{},colorProperty:l.colorProperty??null,colorMap:V(l.colorMap)?l.colorMap:null,eventOrder:l.eventOrder??null,dayMaxEvents:typeof l.dayMaxEvents=="number"&&l.dayMaxEvents>=0?l.dayMaxEvents:!1,readonly:l.readonly,renderCard:X(l.renderCard)?l.renderCard:null,ariaLabel:typeof l.ariaLabel=="string"?l.ariaLabel:"",messages:V(l.messages)?l.messages:null,labels:V(l.labels)?l.labels:{},slotDuration:m,slotMinTime:k,slotMaxTime:D,scrollTime:F,defaultDuration:be(l.defaultDuration,60),businessHours:Te(l.businessHours),weekNumbers:l.weekNumbers===!0}}function ve(i,l,s){const m=new Map(s.days.map(S=>[S.key,{...S,cards:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null;for(const S of l){const c=i.key(S),r=O(F(S));if(!r){k.push({key:c,row:S}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}let y=null,h=!1;if(_&&(y=O(_(S)),y&&(h=!0)),!h){const j=m.get(ne(r));j&&j.cards.push({key:c,row:S,start:r,end:y,span:!1,color:oe(i,S)});continue}for(const j of we(i,c,S,r,y,s)){const P=m.get(j.day);P&&P.spans.push(j)}}const I=[...m.values()];for(const S of I)S.cards.sort((c,r)=>ae(i,c,r));return{days:I,unscheduled:k}}function Le(i,l,s){const m=new Map(s.days.map(h=>[h.key,{...h,timed:[],allDay:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null,I=i.allDayProperty?M(i.allDayProperty):null,{slotMinTime:S,slotMaxTime:c,defaultDuration:r}=i;for(const h of l){const j=i.key(h),P=F(h),C=O(P);if(!C){k.push({key:j,row:h}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}const te=I&&!!I(h)||Ce(P),ce=oe(i,h);if(te){let Z=null;if(_&&(Z=O(_(h))),Z&&ne(Z)!==ne(C)){for(const G of we(i,j,h,C,Z,s)){const H=m.get(G.day);H&&H.spans.push(G)}continue}const z=m.get(ne(C));z&&z.allDay.push({key:j,row:h,start:C,end:Z,allDay:!0,color:ce});continue}const ke=he(C,i.timeZone),K=m.get(ke.dayKey);if(!K)continue;const g=Math.min(Math.max(ke.minutes,S),c);let w,A=null;if(_){const Z=O(_(h));if(Z){A=Z;const z=he(Z,i.timeZone);w=z.dayKey===ke.dayKey?Math.min(Math.max(z.minutes,S),c):c}else w=g+r}else w=g+r;w>c&&(w=c),K.timed.push({key:j,row:h,start:C,end:A,allDay:!1,color:ce,day:ke.dayKey,startMin:g,endMin:w,col:0,cols:1})}const y=[...m.values()];for(const h of y)xe(h.timed),h.allDay.sort((j,P)=>ae(i,j,P));return{days:y,unscheduled:k}}function Pe(i){if(i===!0)return()=>!0;if(!i||typeof i!="object")return()=>!1;const l=i.days||{},s=i.cards||{};return({day:m,card:k}={})=>i.board===!0||!b(m)&&l[m]===!0||!b(k)&&s[k]===!0}function Me(i,l){const s=M(i),m=new Map;for(const k of l){const D=s(k);m.set(D,(m.get(D)||0)+1)}return[...m.entries()].map(([k,D])=>({value:k,count:D})).sort((k,D)=>D.count-k.count)}function J(i){return String(i).replace(/[^\w-]/g,"_")}}),ze("packages/modules/shared/emitter.js",function(p,Q){"use strict";Object.defineProperty(p,"WILDCARD",{enumerable:!0,get:function(){return X}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"gate",{enumerable:!0,get:function(){return B}});const u=Q("packages/core/src/internal/util.js"),U=u.isFunction,N=u.warnOnce,X="*",b=new Set(["api","user","init","ai"]);function V(se,O){return se&&se.name?se.name:`#${O}`}class M{#t=new Map;#e;constructor(O="module"){this.#e=String(O)}on(O,E){if(!U(E))return()=>{};let T=this.#t.get(O);return T||(T=new Set,this.#t.set(O,T)),T.add(E),()=>this.off(O,E)}off(O,E){const T=this.#t.get(O);T&&T.delete(E)}count(O){const E=this.#t.get(O);return E?E.size:0}emit(O,E){const T=this.#t.get(O),L=this.#t.get(X);if((!T||T.size===0)&&(!L||L.size===0))return;const W={...E||null,type:O};T&&T.size&&this.#r([...T],W,O),L&&L.size&&this.#r([...L],W,X)}#r(O,E,T){for(let L=0;L<O.length;L++)try{O[L](E)}catch(W){N(`${this.#e}.emit.throw:${T}:${V(O[L],L)}`,`${this.#e}: a '${T}' handler threw; other handlers were unaffected.`,W)}}emitBefore(O,E,T){const L=T??(E&&E.origin),W=b.has(L)?L:"user";let ie=!1,le=null;const me=ee=>{ie=!0,ee!=null&&le===null&&(le=String(ee))},ne={...E||null,type:O,origin:W,get defaultPrevented(){return ie},get reason(){return le},preventDefault(ee){me(ee)}},q=this.#t.get(O);if(!q||q.size===0)return!0;const pe=[...q],ue=()=>(ie&&le===null&&(le="prevented"),ie&&E&&typeof E=="object"&&(E.reason=le),!ie),R=[];for(let ee=0;ee<pe.length;ee++){const oe=pe[ee];try{const ae=oe(ne);ae&&U(ae.then)?R.push(ae):ae===!1&&me("prevented")}catch(ae){me("error"),N(`${this.#e}.beforeThrow:${O}:${V(oe,ee)}`,`${this.#e}: a '${O}' before-handler threw; the action was cancelled.`,ae)}}return R.length===0?ue():Promise.allSettled(R).then(ee=>{for(const oe of ee)oe.status==="rejected"?(me("error"),N(`${this.#e}.beforeReject:${O}`,`${this.#e}: a '${O}' before-handler rejected; the action was cancelled.`,oe.reason)):oe.value===!1&&me("prevented");return ue()})}clear(){this.#t.clear()}}function B(se,O,E,T,L){const W=se.emitBefore(O,T,T.origin),ie=()=>(se.emit(E,{...T,reason:T.reason||"prevented"}),!1);return W===!1?ie():W&&U(W.then)?W.then(le=>le?L():ie()):L()}}),ze("packages/modules/calendar/styles.js",function(p,Q){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return u}}),Object.defineProperty(p,"css",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return X}});const u="lat-calendar",U="data-lattice-calendar-styles";function N(){return`
7
7
  .${u}{
8
8
  display:flex; flex-direction:column; box-sizing:border-box;
9
9
  width:100%; height:100%; min-height:0;
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, calendar module
2
+ * Lattice Grid 1.88.3, calendar module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- (function(Je){"use strict";var Ge=Object.create(null),Ue=Object.create(null);function ze(p,Q){Ge[p]=Q}function Ze(p){var Q=Ue[p];if(Q)return Q;var u=Object.create(null);Ue[p]=u;var U=Ge[p];if(!U)throw new Error("[lattice] missing module: "+p);return U(u,Ze),u}ze("packages/core/src/internal/util.js",function(p,Q){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return J}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return l}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return S}});const u="1.88.2";async function U(){return u}const N="1.88.2",X=new Set,b=2e3;function V(c){if(X.add(c),X.size>b){const r=X.values().next().value;r!==void 0&&X.delete(r)}}const M=[],B=500;function se(c,r,y){M.push({key:c,level:r,message:y.map(h=>typeof h=="string"?h:O(h)).join(" "),at:Date.now()}),M.length>B&&M.shift()}function O(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function E(){return M.map(c=>({...c}))}function T(c){if(c.length===0||typeof c[0]!="string")return c;const r=c[0].replace(/^\[lattice\]\s*/,"");return r===c[0]?c:[r,...c.slice(1)]}function L(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"warn",y),console.warn("[lattice]",...y)}function W(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"info",y),console.info("[lattice]",...y)}function ie(){X.clear(),M.length=0}function le(c,r){const y=new Error(`[lattice] ${c}`);throw r!==void 0&&(y.cause=r),y}function me(c,r){c||le(r)}const ne=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function q(c){return c!==null&&typeof c=="object"&&!Array.isArray(c)}function pe(c){return typeof c=="function"}function ue(c){return c==null}function R(c){return c==null||c===""}function ee(c){return typeof c!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(c))?!0:!!(c.prototype&&Object.getOwnPropertyNames(c.prototype).length>1)}const oe=new Map;function ae(c){let r=oe.get(c);if(r)return r;if(!c.includes("."))r=y=>y?.[c];else{const y=c.split("."),h=y.length;r=j=>{let P=j;for(let C=0;C<h;C++){if(P==null)return;P=P[y[C]]}return P}}return oe.set(c,r),r}const Ce=new Map;function be(c){let r=Ce.get(c);if(r)return r;if(!c.includes("."))r=(y,h)=>{y!=null&&(y[c]=h)};else{const y=c.split("."),h=y.length-1;r=(j,P)=>{let C=j;for(let te=0;te<h;te++){if(C==null)return;const ce=y[te];C[ce]==null&&(C[ce]={}),C=C[ce]}C!=null&&(C[y[h]]=P)}}return Ce.set(c,r),r}function de(c,r){return ae(r)(c)}function Ae(c,r,y){be(r)(c,y)}function Oe(c){return c?(c.includes(".")?c.slice(c.lastIndexOf(".")+1):c).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(/^./,y=>y.toUpperCase()):""}const Te={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function he(c){const r=c==null?"":String(c);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,y=>Te[y]):r}function Ne(c){return String(c).replace(/\w\S*/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function we(c,r,y){if(c!==void 0)return c===!0?{enabled:!0,...y}:c===!1?{enabled:!1}:q(c)?c:{[r]:c,enabled:!0}}function xe(c){return c==null?[]:Array.isArray(c)?c:[c]}const Fe=Object.freeze(new Set(["__proto__","constructor","prototype"]));function ve(c,r){if(!q(c))return q(r)?{...r}:r;if(!q(r))return r===void 0?c:r;const y={...c};for(const h of Object.keys(r)){if(Fe.has(h))continue;const j=r[h];j!==void 0&&(y[h]=q(j)&&q(y[h])?ve(y[h],j):j)}return y}function Le(c,r){if(!q(c)||!q(r)||c===r)return r;const y=Object.create(Object.getPrototypeOf(c));return Object.assign(y,c,r),y}class Pe{#t;#e=new Map;#r;constructor(r=256,y=null){this.#t=r,this.#r=y}get size(){return this.#e.size}get max(){return this.#t}set max(r){this.#t=r,this.#n()}has(r){return this.#e.has(r)}get(r){const y=this.#e;if(!y.has(r))return;const h=y.get(r);return y.delete(r),y.set(r,h),h}peek(r){return this.#e.get(r)}set(r,y){const h=this.#e;return h.has(r)&&h.delete(r),h.set(r,y),this.#n(),y}delete(r){const y=this.#e.get(r);return this.#e.delete(r)&&this.#r&&this.#r(y,r),y}clear(){if(this.#r)for(const[r,y]of this.#e)this.#r(y,r);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#n(){const r=this.#e;for(;r.size>this.#t;){const y=r.keys().next().value,h=r.get(y);r.delete(y),this.#r&&this.#r(h,y)}}}const Me=new Map;function J(c,r){const y=`${c||""}|${r?JSON.stringify(r):""}`;let h=Me.get(y);return h||(h=new Intl.Collator(c||void 0,{numeric:!0,sensitivity:"variant",...r}),Me.set(y,h)),h}function i(c,r){if(c===r)return 0;if(c==null)return 1;if(r==null)return-1;if(typeof c=="number"&&typeof r=="number")return Number.isNaN(c)?Number.isNaN(r)?0:1:Number.isNaN(r)||c<r?-1:c>r?1:0;const y=String(c),h=String(r);return y<h?-1:y>h?1:0}function l(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const s=typeof requestAnimationFrame=="function";function m(c){return s?requestAnimationFrame(c):setTimeout(()=>c(l()),16)}function k(c){c!=null&&(s?cancelAnimationFrame(c):clearTimeout(c))}function D(c){let r=null,y=null;const h=()=>{r=null;const P=y;y=null,c(...P||[])},j=(...P)=>{y=P,r===null&&(r=m(h))};return j.cancel=()=>{k(r),r=null,y=null},j.flush=()=>{r!==null&&(k(r),h())},j}function F(c,r){let y=null,h=null;const j=()=>{if(y=null,h===null)return;const te=h;h=null,c(...te),P()},P=()=>{y=setTimeout(j,r),typeof y?.unref=="function"&&y.unref()},C=(...te)=>{y===null?(c(...te),P()):(h=te,clearTimeout(y),P())};return C.flush=()=>{if(y!==null&&clearTimeout(y),y=null,h===null)return;const te=h;h=null,c(...te)},C.cancel=()=>{y!==null&&clearTimeout(y),y=null,h=null},C.pending=()=>y!==null||h!==null,C}function _(c,r=50){return typeof requestIdleCallback=="function"?requestIdleCallback(c,{timeout:r}):setTimeout(()=>c({timeRemaining:()=>0,didTimeout:!0}),1)}let I=0;function S(c="l"){return`${c}${(++I).toString(36)}`}}),ze("packages/modules/calendar/model.js",function(p,Q){"use strict";Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"keyFn",{enumerable:!0,get:function(){return se}}),Object.defineProperty(p,"parseDate",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"toDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"startOfDay",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"addDays",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"shiftDays",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"shiftMinutes",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"toWriteString",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"rowDates",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"dayKeyOf",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isTimeView",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"computeRange",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"titleFor",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"formatTime",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"fieldText",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"colorFor",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(p,"cardRank",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"isDateOnlyValue",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(p,"durationMinutes",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"clockMinutes",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"minutesToClock",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"isoWeekNumber",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"resolveBusinessHours",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(p,"wallClock",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"nowAt",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"spanSegments",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"assignColumns",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"resolveContext",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(p,"buildDays",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"buildTimeDays",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"resolveReadonly",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"facets",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(p,"cssId",{enumerable:!0,get:function(){return J}});const u=Q("packages/core/src/internal/util.js"),U=u.warnOnce,N=u.getPath,X=u.isFunction,b=u.isNil,V=u.isObject;function M(i){return X(i)?i:typeof i=="string"?l=>N(l,i):()=>{}}function B(i){return Array.isArray(i)?"array":i===null?"null":typeof i}function se(i){if(i!==void 0&&typeof i!="function"&&!(typeof i=="string"&&i.length>0))throw new Error("lattice-calendar: rowKey must be a property name or a function; composite keys are not supported on calendars.");if(X(i))return s=>{const m=i(s);if(typeof m=="string"||typeof m=="number"&&Number.isFinite(m))return m;throw new Error(`lattice-calendar: rowKey function must return a string or number; got ${B(m)}.`)};const l=typeof i=="string"?i:"id";return s=>N(s,l)}function O(i){if(i instanceof Date)return Number.isNaN(i.getTime())?null:i;if(typeof i=="number"&&Number.isFinite(i))return new Date(i);if(typeof i!="string")return null;const l=i.trim();if(!l)return null;let s=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?$/.exec(l);if(s){const k=new Date(+s[1],+s[2]-1,+s[3],+s[4],+s[5],s[6]?+s[6]:0);return Number.isNaN(k.getTime())?null:k}if(s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(l),s){const k=new Date(+s[1],+s[2]-1,+s[3]);return Number.isNaN(k.getTime())?null:k}const m=new Date(l);return Number.isNaN(m.getTime())?null:m}function E(i){return i==null?null:O(i)}function T(i){return new Date(i.getFullYear(),i.getMonth(),i.getDate())}function L(i,l){return new Date(i.getFullYear(),i.getMonth(),i.getDate()+l)}function W(i,l){const s=new Date(i);return s.setDate(s.getDate()+l),s}function ie(i,l){return new Date(i.getTime()+l*6e4)}function le(i,l){const s=i.getFullYear(),m=String(i.getMonth()+1).padStart(2,"0"),k=String(i.getDate()).padStart(2,"0");if(l)return`${s}-${m}-${k}`;const D=String(i.getHours()).padStart(2,"0"),F=String(i.getMinutes()).padStart(2,"0");return`${s}-${m}-${k} ${D}:${F}`}function me(i,l){const s=O(M(i.startProperty)(l)),m=i.endProperty?O(M(i.endProperty)(l)):null;return{start:s,end:m}}function ne(i){const l=i.getFullYear(),s=String(i.getMonth()+1).padStart(2,"0"),m=String(i.getDate()).padStart(2,"0");return`${l}-${s}-${m}`}function q(i){return i==="week-time"||i==="day"}function pe(i,l,s){const m=T(i),k=s===void 0?1:s,D=l==="month",F=l==="day";let _,I;if(F)_=m,I=1;else if(D){const c=new Date(m.getFullYear(),m.getMonth(),1),r=(c.getDay()-k+7)%7;_=L(c,-r);const y=new Date(m.getFullYear(),m.getMonth()+1,0).getDate();I=Math.ceil((r+y)/7)*7}else{const c=(m.getDay()-k+7)%7;_=L(m,-c),I=7}const S=[];for(let c=0;c<I;c++){const r=L(_,c);S.push({date:r,key:ne(r),dayNumber:r.getDate(),weekday:r.getDay(),inRange:!D||r.getMonth()===m.getMonth()})}return{start:_,end:L(_,I-1),view:l,days:S}}function ue(i,l,s){const m=i||void 0;if(l.view==="week"||l.view==="week-time"){const k=new Intl.DateTimeFormat(m,{month:"short",day:"numeric"});if(l.start.getFullYear()===l.end.getFullYear())return`${k.format(l.start)} – ${k.format(l.end)}, ${l.start.getFullYear()}`;const D=new Intl.DateTimeFormat(m,{month:"short",day:"numeric",year:"numeric"});return`${D.format(l.start)} – ${D.format(l.end)}`}return l.view==="day"?new Intl.DateTimeFormat(m,{weekday:"long",month:"long",day:"numeric",year:"numeric"}).format(s):new Intl.DateTimeFormat(m,{month:"long",year:"numeric"}).format(s)}function R(i,l){return new Intl.DateTimeFormat(i||void 0,{hour:"numeric",minute:"2-digit"}).format(l)}function ee(i,l,s,m){if(b(m))return"";if(i.grid&&typeof m=="string")try{if(i.grid.columns&&i.grid.columns.get&&i.grid.columns.get(m)){const D=i.grid.rows.text(s,m);if(!b(D))return String(D)}}catch{}const k=M(m)(l);return b(k)?"":String(k)}function oe(i,l){if(!i.colorProperty)return null;const s=M(i.colorProperty)(l);if(b(s))return null;if(i.colorMap&&V(i.colorMap)){const m=i.colorMap[String(s)];if(typeof m=="string"&&m)return m}return typeof s=="string"&&/^(#|rgb|hsl|oklch|var\()/.test(s.trim())?s.trim():null}function ae(i,l,s){if(X(i.eventOrder))return i.eventOrder(l.row,s.row)||0;if(typeof i.eventOrder=="string"&&i.eventOrder){const D=M(i.eventOrder),F=D(l.row),_=D(s.row);if(F!==_)return(F>_?1:0)-(F<_?1:0)}const m=l.start?l.start.getTime():0,k=s.start?s.start.getTime():0;return m!==k?m-k:String(l.key)<String(s.key)?-1:String(l.key)>String(s.key)?1:0}function Ce(i){return typeof i=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(i.trim())}function be(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>0)return i;if(typeof i=="string"){const s=/^(\d+)(?::(\d{1,2})(?::(\d{1,2}))?)?$/.exec(i.trim());if(s){const m=+s[1]*60+ +(s[2]||0)+ +(s[3]||0)/60;if(m>0)return m}}return l}function de(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>=0)return i;if(typeof i=="string"){const s=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(i.trim());if(s)return+s[1]*60+ +s[2]+ +(s[3]||0)/60}return l}function Ae(i){const l=Math.floor(i/60),s=Math.round(i%60);return`${String(l).padStart(2,"0")}:${String(s).padStart(2,"0")}`}function Oe(i){const l=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())),s=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-s);const m=new Date(Date.UTC(l.getUTCFullYear(),0,1));return Math.ceil(((l.getTime()-m.getTime())/864e5+1)/7)}function Te(i){if(i!==!0&&!V(i))return null;const l=V(i)?i:{},s=Array.isArray(l.daysOfWeek)?l.daysOfWeek.filter(m=>Number.isInteger(m)):[1,2,3,4,5];return{start:de(l.startTime,540),end:de(l.endTime,1020),daysOfWeek:s}}function he(i,l){if(l)try{const s=new Intl.DateTimeFormat("en-CA",{timeZone:l,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).formatToParts(i).reduce((k,D)=>(D.type!=="literal"&&(k[D.type]=D.value),k),{}),m=s.hour==="24"?"00":s.hour;return{dayKey:`${s.year}-${s.month}-${s.day}`,minutes:+m*60+ +s.minute}}catch{}return{dayKey:ne(i),minutes:i.getHours()*60+i.getMinutes()}}function Ne(i,l){return he(i,l)}function we(i,l,s,m,k,D){const F=D.start.getTime(),_=D.end.getTime(),I=m.getTime(),S=k.getTime();if(S<F||I>_)return[];const c=new Map(D.days.map((K,g)=>[K.key,g])),r=new Date(Math.max(T(m).getTime(),F)),y=new Date(Math.min(T(k).getTime(),_)),h=[];for(let K=new Date(r);K.getTime()<=y.getTime();K=L(K,1))h.push(ne(K));const j=K=>Math.floor(c.get(K)/7),P=[];let C=[];for(const K of h)c.has(K)&&(C.length&&(c.get(K)!==c.get(C[C.length-1])+1||j(K)!==j(C[C.length-1]))&&(P.push(C),C=[]),C.push(K));C.length&&P.push(C);const te=h[0],ce=h[h.length-1];return P.map(K=>({key:l,row:s,start:m,end:k,span:!0,color:oe(i,s),day:K[0],length:K.length,continuesBefore:K[0]!==te||I<F,continuesAfter:K[K.length-1]!==ce||S>_}))}function xe(i){i.sort((s,m)=>s.startMin-m.startMin||m.endMin-s.endMin||(String(s.key)<String(m.key)?-1:String(s.key)>String(m.key)?1:0));const l=[];for(const s of i){const m=l[l.length-1];m&&s.startMin<m.end?(m.items.push(s),s.endMin>m.end&&(m.end=s.endMin)):l.push({items:[s],end:s.endMin})}for(const s of l){const m=[];for(const k of s.items){let D=0;for(;D<m.length&&m[D]>k.startMin;)D++;k.col=D,D===m.length?m.push(k.endMin):m[D]=k.endMin}for(const k of s.items)k.cols=m.length}return i}function Fe(i){const l=V(i)?i:{},s=["week","month","week-time","day"].includes(l.view)?l.view:"month",m=be(l.slotDuration,30),k=de(l.slotMinTime,0),D=de(l.slotMaxTime,1440),F=de(l.scrollTime,k);return{grid:l.grid||null,key:se(l.rowKey??"id"),rowKey:l.rowKey??"id",startProperty:l.startProperty??"start",endProperty:l.endProperty??null,allDayProperty:l.allDayProperty??null,view:s,date:E(l.date)||new Date,firstDay:typeof l.firstDay=="number"?l.firstDay:1,locale:typeof l.locale=="string"?l.locale:void 0,timeZone:typeof l.timeZone=="string"?l.timeZone:void 0,header:V(l.header)?l.header:l.header===!1?!1:{},card:V(l.card)?l.card:{},colorProperty:l.colorProperty??null,colorMap:V(l.colorMap)?l.colorMap:null,eventOrder:l.eventOrder??null,dayMaxEvents:typeof l.dayMaxEvents=="number"&&l.dayMaxEvents>=0?l.dayMaxEvents:!1,readonly:l.readonly,renderCard:X(l.renderCard)?l.renderCard:null,ariaLabel:typeof l.ariaLabel=="string"?l.ariaLabel:"",messages:V(l.messages)?l.messages:null,labels:V(l.labels)?l.labels:{},slotDuration:m,slotMinTime:k,slotMaxTime:D,scrollTime:F,defaultDuration:be(l.defaultDuration,60),businessHours:Te(l.businessHours),weekNumbers:l.weekNumbers===!0}}function ve(i,l,s){const m=new Map(s.days.map(S=>[S.key,{...S,cards:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null;for(const S of l){const c=i.key(S),r=O(F(S));if(!r){k.push({key:c,row:S}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}let y=null,h=!1;if(_&&(y=O(_(S)),y&&(h=!0)),!h){const j=m.get(ne(r));j&&j.cards.push({key:c,row:S,start:r,end:y,span:!1,color:oe(i,S)});continue}for(const j of we(i,c,S,r,y,s)){const P=m.get(j.day);P&&P.spans.push(j)}}const I=[...m.values()];for(const S of I)S.cards.sort((c,r)=>ae(i,c,r));return{days:I,unscheduled:k}}function Le(i,l,s){const m=new Map(s.days.map(h=>[h.key,{...h,timed:[],allDay:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null,I=i.allDayProperty?M(i.allDayProperty):null,{slotMinTime:S,slotMaxTime:c,defaultDuration:r}=i;for(const h of l){const j=i.key(h),P=F(h),C=O(P);if(!C){k.push({key:j,row:h}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}const te=I&&!!I(h)||Ce(P),ce=oe(i,h);if(te){let Z=null;if(_&&(Z=O(_(h))),Z&&ne(Z)!==ne(C)){for(const G of we(i,j,h,C,Z,s)){const H=m.get(G.day);H&&H.spans.push(G)}continue}const z=m.get(ne(C));z&&z.allDay.push({key:j,row:h,start:C,end:Z,allDay:!0,color:ce});continue}const ke=he(C,i.timeZone),K=m.get(ke.dayKey);if(!K)continue;const g=Math.min(Math.max(ke.minutes,S),c);let w,A=null;if(_){const Z=O(_(h));if(Z){A=Z;const z=he(Z,i.timeZone);w=z.dayKey===ke.dayKey?Math.min(Math.max(z.minutes,S),c):c}else w=g+r}else w=g+r;w>c&&(w=c),K.timed.push({key:j,row:h,start:C,end:A,allDay:!1,color:ce,day:ke.dayKey,startMin:g,endMin:w,col:0,cols:1})}const y=[...m.values()];for(const h of y)xe(h.timed),h.allDay.sort((j,P)=>ae(i,j,P));return{days:y,unscheduled:k}}function Pe(i){if(i===!0)return()=>!0;if(!i||typeof i!="object")return()=>!1;const l=i.days||{},s=i.cards||{};return({day:m,card:k}={})=>i.board===!0||!b(m)&&l[m]===!0||!b(k)&&s[k]===!0}function Me(i,l){const s=M(i),m=new Map;for(const k of l){const D=s(k);m.set(D,(m.get(D)||0)+1)}return[...m.entries()].map(([k,D])=>({value:k,count:D})).sort((k,D)=>D.count-k.count)}function J(i){return String(i).replace(/[^\w-]/g,"_")}}),ze("packages/modules/shared/emitter.js",function(p,Q){"use strict";Object.defineProperty(p,"WILDCARD",{enumerable:!0,get:function(){return X}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"gate",{enumerable:!0,get:function(){return B}});const u=Q("packages/core/src/internal/util.js"),U=u.isFunction,N=u.warnOnce,X="*",b=new Set(["api","user","init","ai"]);function V(se,O){return se&&se.name?se.name:`#${O}`}class M{#t=new Map;#e;constructor(O="module"){this.#e=String(O)}on(O,E){if(!U(E))return()=>{};let T=this.#t.get(O);return T||(T=new Set,this.#t.set(O,T)),T.add(E),()=>this.off(O,E)}off(O,E){const T=this.#t.get(O);T&&T.delete(E)}count(O){const E=this.#t.get(O);return E?E.size:0}emit(O,E){const T=this.#t.get(O),L=this.#t.get(X);if((!T||T.size===0)&&(!L||L.size===0))return;const W={...E||null,type:O};T&&T.size&&this.#r([...T],W,O),L&&L.size&&this.#r([...L],W,X)}#r(O,E,T){for(let L=0;L<O.length;L++)try{O[L](E)}catch(W){N(`${this.#e}.emit.throw:${T}:${V(O[L],L)}`,`${this.#e}: a '${T}' handler threw; other handlers were unaffected.`,W)}}emitBefore(O,E,T){const L=T??(E&&E.origin),W=b.has(L)?L:"user";let ie=!1,le=null;const me=ee=>{ie=!0,ee!=null&&le===null&&(le=String(ee))},ne={...E||null,type:O,origin:W,get defaultPrevented(){return ie},get reason(){return le},preventDefault(ee){me(ee)}},q=this.#t.get(O);if(!q||q.size===0)return!0;const pe=[...q],ue=()=>(ie&&le===null&&(le="prevented"),ie&&E&&typeof E=="object"&&(E.reason=le),!ie),R=[];for(let ee=0;ee<pe.length;ee++){const oe=pe[ee];try{const ae=oe(ne);ae&&U(ae.then)?R.push(ae):ae===!1&&me("prevented")}catch(ae){me("error"),N(`${this.#e}.beforeThrow:${O}:${V(oe,ee)}`,`${this.#e}: a '${O}' before-handler threw; the action was cancelled.`,ae)}}return R.length===0?ue():Promise.allSettled(R).then(ee=>{for(const oe of ee)oe.status==="rejected"?(me("error"),N(`${this.#e}.beforeReject:${O}`,`${this.#e}: a '${O}' before-handler rejected; the action was cancelled.`,oe.reason)):oe.value===!1&&me("prevented");return ue()})}clear(){this.#t.clear()}}function B(se,O,E,T,L){const W=se.emitBefore(O,T,T.origin),ie=()=>(se.emit(E,{...T,reason:T.reason||"prevented"}),!1);return W===!1?ie():W&&U(W.then)?W.then(le=>le?L():ie()):L()}}),ze("packages/modules/calendar/styles.js",function(p,Q){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return u}}),Object.defineProperty(p,"css",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return X}});const u="lat-calendar",U="data-lattice-calendar-styles";function N(){return`
6
+ (function(Je){"use strict";var Ge=Object.create(null),Ue=Object.create(null);function ze(p,Q){Ge[p]=Q}function Ze(p){var Q=Ue[p];if(Q)return Q;var u=Object.create(null);Ue[p]=u;var U=Ge[p];if(!U)throw new Error("[lattice] missing module: "+p);return U(u,Ze),u}ze("packages/core/src/internal/util.js",function(p,Q){"use strict";Object.defineProperty(p,"VERSION",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"reportedWarnings",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"warnOnce",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"infoOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"resetWarnings",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"fail",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"invariant",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"DEV",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isObject",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"isFunction",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"isNil",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"isBlank",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"isCtor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"pathGetter",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"pathSetter",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"getPath",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"setPath",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"humanise",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"escapeHtml",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"titleCase",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"expand",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"toArray",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"merge",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"mergeRow",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"Lru",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"collator",{enumerable:!0,get:function(){return J}}),Object.defineProperty(p,"defaultCompare",{enumerable:!0,get:function(){return i}}),Object.defineProperty(p,"now",{enumerable:!0,get:function(){return l}}),Object.defineProperty(p,"nextFrame",{enumerable:!0,get:function(){return m}}),Object.defineProperty(p,"cancelFrame",{enumerable:!0,get:function(){return k}}),Object.defineProperty(p,"frameBatched",{enumerable:!0,get:function(){return D}}),Object.defineProperty(p,"settleDebounce",{enumerable:!0,get:function(){return F}}),Object.defineProperty(p,"whenIdle",{enumerable:!0,get:function(){return _}}),Object.defineProperty(p,"uid",{enumerable:!0,get:function(){return S}});const u="1.88.3";async function U(){return u}const N="1.88.3",X=new Set,b=2e3;function V(c){if(X.add(c),X.size>b){const r=X.values().next().value;r!==void 0&&X.delete(r)}}const M=[],B=500;function se(c,r,y){M.push({key:c,level:r,message:y.map(h=>typeof h=="string"?h:O(h)).join(" "),at:Date.now()}),M.length>B&&M.shift()}function O(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function E(){return M.map(c=>({...c}))}function T(c){if(c.length===0||typeof c[0]!="string")return c;const r=c[0].replace(/^\[lattice\]\s*/,"");return r===c[0]?c:[r,...c.slice(1)]}function L(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"warn",y),console.warn("[lattice]",...y)}function W(c,...r){if(X.has(c))return;V(c);const y=T(r);se(c,"info",y),console.info("[lattice]",...y)}function ie(){X.clear(),M.length=0}function le(c,r){const y=new Error(`[lattice] ${c}`);throw r!==void 0&&(y.cause=r),y}function me(c,r){c||le(r)}const ne=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})();function q(c){return c!==null&&typeof c=="object"&&!Array.isArray(c)}function pe(c){return typeof c=="function"}function ue(c){return c==null}function R(c){return c==null||c===""}function ee(c){return typeof c!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(c))?!0:!!(c.prototype&&Object.getOwnPropertyNames(c.prototype).length>1)}const oe=new Map;function ae(c){let r=oe.get(c);if(r)return r;if(!c.includes("."))r=y=>y?.[c];else{const y=c.split("."),h=y.length;r=j=>{let P=j;for(let C=0;C<h;C++){if(P==null)return;P=P[y[C]]}return P}}return oe.set(c,r),r}const Ce=new Map;function be(c){let r=Ce.get(c);if(r)return r;if(!c.includes("."))r=(y,h)=>{y!=null&&(y[c]=h)};else{const y=c.split("."),h=y.length-1;r=(j,P)=>{let C=j;for(let te=0;te<h;te++){if(C==null)return;const ce=y[te];C[ce]==null&&(C[ce]={}),C=C[ce]}C!=null&&(C[y[h]]=P)}}return Ce.set(c,r),r}function de(c,r){return ae(r)(c)}function Ae(c,r,y){be(r)(c,y)}function Oe(c){return c?(c.includes(".")?c.slice(c.lastIndexOf(".")+1):c).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(/^./,y=>y.toUpperCase()):""}const Te={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function he(c){const r=c==null?"":String(c);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,y=>Te[y]):r}function Ne(c){return String(c).replace(/\w\S*/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function we(c,r,y){if(c!==void 0)return c===!0?{enabled:!0,...y}:c===!1?{enabled:!1}:q(c)?c:{[r]:c,enabled:!0}}function xe(c){return c==null?[]:Array.isArray(c)?c:[c]}const Fe=Object.freeze(new Set(["__proto__","constructor","prototype"]));function ve(c,r){if(!q(c))return q(r)?{...r}:r;if(!q(r))return r===void 0?c:r;const y={...c};for(const h of Object.keys(r)){if(Fe.has(h))continue;const j=r[h];j!==void 0&&(y[h]=q(j)&&q(y[h])?ve(y[h],j):j)}return y}function Le(c,r){if(!q(c)||!q(r)||c===r)return r;const y=Object.create(Object.getPrototypeOf(c));return Object.assign(y,c,r),y}class Pe{#t;#e=new Map;#r;constructor(r=256,y=null){this.#t=r,this.#r=y}get size(){return this.#e.size}get max(){return this.#t}set max(r){this.#t=r,this.#n()}has(r){return this.#e.has(r)}get(r){const y=this.#e;if(!y.has(r))return;const h=y.get(r);return y.delete(r),y.set(r,h),h}peek(r){return this.#e.get(r)}set(r,y){const h=this.#e;return h.has(r)&&h.delete(r),h.set(r,y),this.#n(),y}delete(r){const y=this.#e.get(r);return this.#e.delete(r)&&this.#r&&this.#r(y,r),y}clear(){if(this.#r)for(const[r,y]of this.#e)this.#r(y,r);this.#e.clear()}keys(){return this.#e.keys()}values(){return this.#e.values()}#n(){const r=this.#e;for(;r.size>this.#t;){const y=r.keys().next().value,h=r.get(y);r.delete(y),this.#r&&this.#r(h,y)}}}const Me=new Map;function J(c,r){const y=`${c||""}|${r?JSON.stringify(r):""}`;let h=Me.get(y);return h||(h=new Intl.Collator(c||void 0,{numeric:!0,sensitivity:"variant",...r}),Me.set(y,h)),h}function i(c,r){if(c===r)return 0;if(c==null)return 1;if(r==null)return-1;if(typeof c=="number"&&typeof r=="number")return Number.isNaN(c)?Number.isNaN(r)?0:1:Number.isNaN(r)||c<r?-1:c>r?1:0;const y=String(c),h=String(r);return y<h?-1:y>h?1:0}function l(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}const s=typeof requestAnimationFrame=="function";function m(c){return s?requestAnimationFrame(c):setTimeout(()=>c(l()),16)}function k(c){c!=null&&(s?cancelAnimationFrame(c):clearTimeout(c))}function D(c){let r=null,y=null;const h=()=>{r=null;const P=y;y=null,c(...P||[])},j=(...P)=>{y=P,r===null&&(r=m(h))};return j.cancel=()=>{k(r),r=null,y=null},j.flush=()=>{r!==null&&(k(r),h())},j}function F(c,r){let y=null,h=null;const j=()=>{if(y=null,h===null)return;const te=h;h=null,c(...te),P()},P=()=>{y=setTimeout(j,r),typeof y?.unref=="function"&&y.unref()},C=(...te)=>{y===null?(c(...te),P()):(h=te,clearTimeout(y),P())};return C.flush=()=>{if(y!==null&&clearTimeout(y),y=null,h===null)return;const te=h;h=null,c(...te)},C.cancel=()=>{y!==null&&clearTimeout(y),y=null,h=null},C.pending=()=>y!==null||h!==null,C}function _(c,r=50){return typeof requestIdleCallback=="function"?requestIdleCallback(c,{timeout:r}):setTimeout(()=>c({timeRemaining:()=>0,didTimeout:!0}),1)}let I=0;function S(c="l"){return`${c}${(++I).toString(36)}`}}),ze("packages/modules/calendar/model.js",function(p,Q){"use strict";Object.defineProperty(p,"accessorFor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"keyFn",{enumerable:!0,get:function(){return se}}),Object.defineProperty(p,"parseDate",{enumerable:!0,get:function(){return O}}),Object.defineProperty(p,"toDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(p,"startOfDay",{enumerable:!0,get:function(){return T}}),Object.defineProperty(p,"addDays",{enumerable:!0,get:function(){return L}}),Object.defineProperty(p,"shiftDays",{enumerable:!0,get:function(){return W}}),Object.defineProperty(p,"shiftMinutes",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(p,"toWriteString",{enumerable:!0,get:function(){return le}}),Object.defineProperty(p,"rowDates",{enumerable:!0,get:function(){return me}}),Object.defineProperty(p,"dayKeyOf",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(p,"isTimeView",{enumerable:!0,get:function(){return q}}),Object.defineProperty(p,"computeRange",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(p,"titleFor",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(p,"formatTime",{enumerable:!0,get:function(){return R}}),Object.defineProperty(p,"fieldText",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(p,"colorFor",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(p,"cardRank",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(p,"isDateOnlyValue",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(p,"durationMinutes",{enumerable:!0,get:function(){return be}}),Object.defineProperty(p,"clockMinutes",{enumerable:!0,get:function(){return de}}),Object.defineProperty(p,"minutesToClock",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(p,"isoWeekNumber",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(p,"resolveBusinessHours",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(p,"wallClock",{enumerable:!0,get:function(){return he}}),Object.defineProperty(p,"nowAt",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(p,"spanSegments",{enumerable:!0,get:function(){return we}}),Object.defineProperty(p,"assignColumns",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(p,"resolveContext",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(p,"buildDays",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(p,"buildTimeDays",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(p,"resolveReadonly",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(p,"facets",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(p,"cssId",{enumerable:!0,get:function(){return J}});const u=Q("packages/core/src/internal/util.js"),U=u.warnOnce,N=u.getPath,X=u.isFunction,b=u.isNil,V=u.isObject;function M(i){return X(i)?i:typeof i=="string"?l=>N(l,i):()=>{}}function B(i){return Array.isArray(i)?"array":i===null?"null":typeof i}function se(i){if(i!==void 0&&typeof i!="function"&&!(typeof i=="string"&&i.length>0))throw new Error("lattice-calendar: rowKey must be a property name or a function; composite keys are not supported on calendars.");if(X(i))return s=>{const m=i(s);if(typeof m=="string"||typeof m=="number"&&Number.isFinite(m))return m;throw new Error(`lattice-calendar: rowKey function must return a string or number; got ${B(m)}.`)};const l=typeof i=="string"?i:"id";return s=>N(s,l)}function O(i){if(i instanceof Date)return Number.isNaN(i.getTime())?null:i;if(typeof i=="number"&&Number.isFinite(i))return new Date(i);if(typeof i!="string")return null;const l=i.trim();if(!l)return null;let s=/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?$/.exec(l);if(s){const k=new Date(+s[1],+s[2]-1,+s[3],+s[4],+s[5],s[6]?+s[6]:0);return Number.isNaN(k.getTime())?null:k}if(s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(l),s){const k=new Date(+s[1],+s[2]-1,+s[3]);return Number.isNaN(k.getTime())?null:k}const m=new Date(l);return Number.isNaN(m.getTime())?null:m}function E(i){return i==null?null:O(i)}function T(i){return new Date(i.getFullYear(),i.getMonth(),i.getDate())}function L(i,l){return new Date(i.getFullYear(),i.getMonth(),i.getDate()+l)}function W(i,l){const s=new Date(i);return s.setDate(s.getDate()+l),s}function ie(i,l){return new Date(i.getTime()+l*6e4)}function le(i,l){const s=i.getFullYear(),m=String(i.getMonth()+1).padStart(2,"0"),k=String(i.getDate()).padStart(2,"0");if(l)return`${s}-${m}-${k}`;const D=String(i.getHours()).padStart(2,"0"),F=String(i.getMinutes()).padStart(2,"0");return`${s}-${m}-${k} ${D}:${F}`}function me(i,l){const s=O(M(i.startProperty)(l)),m=i.endProperty?O(M(i.endProperty)(l)):null;return{start:s,end:m}}function ne(i){const l=i.getFullYear(),s=String(i.getMonth()+1).padStart(2,"0"),m=String(i.getDate()).padStart(2,"0");return`${l}-${s}-${m}`}function q(i){return i==="week-time"||i==="day"}function pe(i,l,s){const m=T(i),k=s===void 0?1:s,D=l==="month",F=l==="day";let _,I;if(F)_=m,I=1;else if(D){const c=new Date(m.getFullYear(),m.getMonth(),1),r=(c.getDay()-k+7)%7;_=L(c,-r);const y=new Date(m.getFullYear(),m.getMonth()+1,0).getDate();I=Math.ceil((r+y)/7)*7}else{const c=(m.getDay()-k+7)%7;_=L(m,-c),I=7}const S=[];for(let c=0;c<I;c++){const r=L(_,c);S.push({date:r,key:ne(r),dayNumber:r.getDate(),weekday:r.getDay(),inRange:!D||r.getMonth()===m.getMonth()})}return{start:_,end:L(_,I-1),view:l,days:S}}function ue(i,l,s){const m=i||void 0;if(l.view==="week"||l.view==="week-time"){const k=new Intl.DateTimeFormat(m,{month:"short",day:"numeric"});if(l.start.getFullYear()===l.end.getFullYear())return`${k.format(l.start)} – ${k.format(l.end)}, ${l.start.getFullYear()}`;const D=new Intl.DateTimeFormat(m,{month:"short",day:"numeric",year:"numeric"});return`${D.format(l.start)} – ${D.format(l.end)}`}return l.view==="day"?new Intl.DateTimeFormat(m,{weekday:"long",month:"long",day:"numeric",year:"numeric"}).format(s):new Intl.DateTimeFormat(m,{month:"long",year:"numeric"}).format(s)}function R(i,l){return new Intl.DateTimeFormat(i||void 0,{hour:"numeric",minute:"2-digit"}).format(l)}function ee(i,l,s,m){if(b(m))return"";if(i.grid&&typeof m=="string")try{if(i.grid.columns&&i.grid.columns.get&&i.grid.columns.get(m)){const D=i.grid.rows.text(s,m);if(!b(D))return String(D)}}catch{}const k=M(m)(l);return b(k)?"":String(k)}function oe(i,l){if(!i.colorProperty)return null;const s=M(i.colorProperty)(l);if(b(s))return null;if(i.colorMap&&V(i.colorMap)){const m=i.colorMap[String(s)];if(typeof m=="string"&&m)return m}return typeof s=="string"&&/^(#|rgb|hsl|oklch|var\()/.test(s.trim())?s.trim():null}function ae(i,l,s){if(X(i.eventOrder))return i.eventOrder(l.row,s.row)||0;if(typeof i.eventOrder=="string"&&i.eventOrder){const D=M(i.eventOrder),F=D(l.row),_=D(s.row);if(F!==_)return(F>_?1:0)-(F<_?1:0)}const m=l.start?l.start.getTime():0,k=s.start?s.start.getTime():0;return m!==k?m-k:String(l.key)<String(s.key)?-1:String(l.key)>String(s.key)?1:0}function Ce(i){return typeof i=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(i.trim())}function be(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>0)return i;if(typeof i=="string"){const s=/^(\d+)(?::(\d{1,2})(?::(\d{1,2}))?)?$/.exec(i.trim());if(s){const m=+s[1]*60+ +(s[2]||0)+ +(s[3]||0)/60;if(m>0)return m}}return l}function de(i,l){if(typeof i=="number"&&Number.isFinite(i)&&i>=0)return i;if(typeof i=="string"){const s=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(i.trim());if(s)return+s[1]*60+ +s[2]+ +(s[3]||0)/60}return l}function Ae(i){const l=Math.floor(i/60),s=Math.round(i%60);return`${String(l).padStart(2,"0")}:${String(s).padStart(2,"0")}`}function Oe(i){const l=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())),s=l.getUTCDay()||7;l.setUTCDate(l.getUTCDate()+4-s);const m=new Date(Date.UTC(l.getUTCFullYear(),0,1));return Math.ceil(((l.getTime()-m.getTime())/864e5+1)/7)}function Te(i){if(i!==!0&&!V(i))return null;const l=V(i)?i:{},s=Array.isArray(l.daysOfWeek)?l.daysOfWeek.filter(m=>Number.isInteger(m)):[1,2,3,4,5];return{start:de(l.startTime,540),end:de(l.endTime,1020),daysOfWeek:s}}function he(i,l){if(l)try{const s=new Intl.DateTimeFormat("en-CA",{timeZone:l,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).formatToParts(i).reduce((k,D)=>(D.type!=="literal"&&(k[D.type]=D.value),k),{}),m=s.hour==="24"?"00":s.hour;return{dayKey:`${s.year}-${s.month}-${s.day}`,minutes:+m*60+ +s.minute}}catch{}return{dayKey:ne(i),minutes:i.getHours()*60+i.getMinutes()}}function Ne(i,l){return he(i,l)}function we(i,l,s,m,k,D){const F=D.start.getTime(),_=D.end.getTime(),I=m.getTime(),S=k.getTime();if(S<F||I>_)return[];const c=new Map(D.days.map((K,g)=>[K.key,g])),r=new Date(Math.max(T(m).getTime(),F)),y=new Date(Math.min(T(k).getTime(),_)),h=[];for(let K=new Date(r);K.getTime()<=y.getTime();K=L(K,1))h.push(ne(K));const j=K=>Math.floor(c.get(K)/7),P=[];let C=[];for(const K of h)c.has(K)&&(C.length&&(c.get(K)!==c.get(C[C.length-1])+1||j(K)!==j(C[C.length-1]))&&(P.push(C),C=[]),C.push(K));C.length&&P.push(C);const te=h[0],ce=h[h.length-1];return P.map(K=>({key:l,row:s,start:m,end:k,span:!0,color:oe(i,s),day:K[0],length:K.length,continuesBefore:K[0]!==te||I<F,continuesAfter:K[K.length-1]!==ce||S>_}))}function xe(i){i.sort((s,m)=>s.startMin-m.startMin||m.endMin-s.endMin||(String(s.key)<String(m.key)?-1:String(s.key)>String(m.key)?1:0));const l=[];for(const s of i){const m=l[l.length-1];m&&s.startMin<m.end?(m.items.push(s),s.endMin>m.end&&(m.end=s.endMin)):l.push({items:[s],end:s.endMin})}for(const s of l){const m=[];for(const k of s.items){let D=0;for(;D<m.length&&m[D]>k.startMin;)D++;k.col=D,D===m.length?m.push(k.endMin):m[D]=k.endMin}for(const k of s.items)k.cols=m.length}return i}function Fe(i){const l=V(i)?i:{},s=["week","month","week-time","day"].includes(l.view)?l.view:"month",m=be(l.slotDuration,30),k=de(l.slotMinTime,0),D=de(l.slotMaxTime,1440),F=de(l.scrollTime,k);return{grid:l.grid||null,key:se(l.rowKey??"id"),rowKey:l.rowKey??"id",startProperty:l.startProperty??"start",endProperty:l.endProperty??null,allDayProperty:l.allDayProperty??null,view:s,date:E(l.date)||new Date,firstDay:typeof l.firstDay=="number"?l.firstDay:1,locale:typeof l.locale=="string"?l.locale:void 0,timeZone:typeof l.timeZone=="string"?l.timeZone:void 0,header:V(l.header)?l.header:l.header===!1?!1:{},card:V(l.card)?l.card:{},colorProperty:l.colorProperty??null,colorMap:V(l.colorMap)?l.colorMap:null,eventOrder:l.eventOrder??null,dayMaxEvents:typeof l.dayMaxEvents=="number"&&l.dayMaxEvents>=0?l.dayMaxEvents:!1,readonly:l.readonly,renderCard:X(l.renderCard)?l.renderCard:null,ariaLabel:typeof l.ariaLabel=="string"?l.ariaLabel:"",messages:V(l.messages)?l.messages:null,labels:V(l.labels)?l.labels:{},slotDuration:m,slotMinTime:k,slotMaxTime:D,scrollTime:F,defaultDuration:be(l.defaultDuration,60),businessHours:Te(l.businessHours),weekNumbers:l.weekNumbers===!0}}function ve(i,l,s){const m=new Map(s.days.map(S=>[S.key,{...S,cards:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null;for(const S of l){const c=i.key(S),r=O(F(S));if(!r){k.push({key:c,row:S}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}let y=null,h=!1;if(_&&(y=O(_(S)),y&&(h=!0)),!h){const j=m.get(ne(r));j&&j.cards.push({key:c,row:S,start:r,end:y,span:!1,color:oe(i,S)});continue}for(const j of we(i,c,S,r,y,s)){const P=m.get(j.day);P&&P.spans.push(j)}}const I=[...m.values()];for(const S of I)S.cards.sort((c,r)=>ae(i,c,r));return{days:I,unscheduled:k}}function Le(i,l,s){const m=new Map(s.days.map(h=>[h.key,{...h,timed:[],allDay:[],spans:[]}])),k=[];let D=!1;const F=M(i.startProperty),_=i.endProperty?M(i.endProperty):null,I=i.allDayProperty?M(i.allDayProperty):null,{slotMinTime:S,slotMaxTime:c,defaultDuration:r}=i;for(const h of l){const j=i.key(h),P=F(h),C=O(P);if(!C){k.push({key:j,row:h}),D||(D=!0,U("calendar:unparsable-start",`calendar: a row's "${i.startProperty}" is empty or unparsable, so it is not shown; count it in \`unscheduled\`.`));continue}const te=I&&!!I(h)||Ce(P),ce=oe(i,h);if(te){let Z=null;if(_&&(Z=O(_(h))),Z&&ne(Z)!==ne(C)){for(const G of we(i,j,h,C,Z,s)){const H=m.get(G.day);H&&H.spans.push(G)}continue}const z=m.get(ne(C));z&&z.allDay.push({key:j,row:h,start:C,end:Z,allDay:!0,color:ce});continue}const ke=he(C,i.timeZone),K=m.get(ke.dayKey);if(!K)continue;const g=Math.min(Math.max(ke.minutes,S),c);let w,A=null;if(_){const Z=O(_(h));if(Z){A=Z;const z=he(Z,i.timeZone);w=z.dayKey===ke.dayKey?Math.min(Math.max(z.minutes,S),c):c}else w=g+r}else w=g+r;w>c&&(w=c),K.timed.push({key:j,row:h,start:C,end:A,allDay:!1,color:ce,day:ke.dayKey,startMin:g,endMin:w,col:0,cols:1})}const y=[...m.values()];for(const h of y)xe(h.timed),h.allDay.sort((j,P)=>ae(i,j,P));return{days:y,unscheduled:k}}function Pe(i){if(i===!0)return()=>!0;if(!i||typeof i!="object")return()=>!1;const l=i.days||{},s=i.cards||{};return({day:m,card:k}={})=>i.board===!0||!b(m)&&l[m]===!0||!b(k)&&s[k]===!0}function Me(i,l){const s=M(i),m=new Map;for(const k of l){const D=s(k);m.set(D,(m.get(D)||0)+1)}return[...m.entries()].map(([k,D])=>({value:k,count:D})).sort((k,D)=>D.count-k.count)}function J(i){return String(i).replace(/[^\w-]/g,"_")}}),ze("packages/modules/shared/emitter.js",function(p,Q){"use strict";Object.defineProperty(p,"WILDCARD",{enumerable:!0,get:function(){return X}}),Object.defineProperty(p,"Emitter",{enumerable:!0,get:function(){return M}}),Object.defineProperty(p,"gate",{enumerable:!0,get:function(){return B}});const u=Q("packages/core/src/internal/util.js"),U=u.isFunction,N=u.warnOnce,X="*",b=new Set(["api","user","init","ai"]);function V(se,O){return se&&se.name?se.name:`#${O}`}class M{#t=new Map;#e;constructor(O="module"){this.#e=String(O)}on(O,E){if(!U(E))return()=>{};let T=this.#t.get(O);return T||(T=new Set,this.#t.set(O,T)),T.add(E),()=>this.off(O,E)}off(O,E){const T=this.#t.get(O);T&&T.delete(E)}count(O){const E=this.#t.get(O);return E?E.size:0}emit(O,E){const T=this.#t.get(O),L=this.#t.get(X);if((!T||T.size===0)&&(!L||L.size===0))return;const W={...E||null,type:O};T&&T.size&&this.#r([...T],W,O),L&&L.size&&this.#r([...L],W,X)}#r(O,E,T){for(let L=0;L<O.length;L++)try{O[L](E)}catch(W){N(`${this.#e}.emit.throw:${T}:${V(O[L],L)}`,`${this.#e}: a '${T}' handler threw; other handlers were unaffected.`,W)}}emitBefore(O,E,T){const L=T??(E&&E.origin),W=b.has(L)?L:"user";let ie=!1,le=null;const me=ee=>{ie=!0,ee!=null&&le===null&&(le=String(ee))},ne={...E||null,type:O,origin:W,get defaultPrevented(){return ie},get reason(){return le},preventDefault(ee){me(ee)}},q=this.#t.get(O);if(!q||q.size===0)return!0;const pe=[...q],ue=()=>(ie&&le===null&&(le="prevented"),ie&&E&&typeof E=="object"&&(E.reason=le),!ie),R=[];for(let ee=0;ee<pe.length;ee++){const oe=pe[ee];try{const ae=oe(ne);ae&&U(ae.then)?R.push(ae):ae===!1&&me("prevented")}catch(ae){me("error"),N(`${this.#e}.beforeThrow:${O}:${V(oe,ee)}`,`${this.#e}: a '${O}' before-handler threw; the action was cancelled.`,ae)}}return R.length===0?ue():Promise.allSettled(R).then(ee=>{for(const oe of ee)oe.status==="rejected"?(me("error"),N(`${this.#e}.beforeReject:${O}`,`${this.#e}: a '${O}' before-handler rejected; the action was cancelled.`,oe.reason)):oe.value===!1&&me("prevented");return ue()})}clear(){this.#t.clear()}}function B(se,O,E,T,L){const W=se.emitBefore(O,T,T.origin),ie=()=>(se.emit(E,{...T,reason:T.reason||"prevented"}),!1);return W===!1?ie():W&&U(W.then)?W.then(le=>le?L():ie()):L()}}),ze("packages/modules/calendar/styles.js",function(p,Q){"use strict";Object.defineProperty(p,"NS",{enumerable:!0,get:function(){return u}}),Object.defineProperty(p,"css",{enumerable:!0,get:function(){return N}}),Object.defineProperty(p,"injectStyles",{enumerable:!0,get:function(){return X}});const u="lat-calendar",U="data-lattice-calendar-styles";function N(){return`
7
7
  .${u}{
8
8
  display:flex; flex-direction:column; box-sizing:border-box;
9
9
  width:100%; height:100%; min-height:0;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-alluvial module type declarations
2
+ * Lattice Grid 1.88.3, chart-alluvial module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-alluvial module
2
+ * Lattice Grid 1.88.3, chart-alluvial module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-alluvial module
2
+ * Lattice Grid 1.88.3, chart-alluvial module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-alluvial module
2
+ * Lattice Grid 1.88.3, chart-alluvial module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-arc module type declarations
2
+ * Lattice Grid 1.88.3, chart-arc module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-arc module
2
+ * Lattice Grid 1.88.3, chart-arc module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-arc module
2
+ * Lattice Grid 1.88.3, chart-arc module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-arc module
2
+ * Lattice Grid 1.88.3, chart-arc module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-barrace module type declarations
2
+ * Lattice Grid 1.88.3, chart-barrace module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-barrace module
2
+ * Lattice Grid 1.88.3, chart-barrace module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-barrace module
2
+ * Lattice Grid 1.88.3, chart-barrace module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-barrace module
2
+ * Lattice Grid 1.88.3, chart-barrace module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bubblemap module type declarations
2
+ * Lattice Grid 1.88.3, chart-bubblemap module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bubblemap module
2
+ * Lattice Grid 1.88.3, chart-bubblemap module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bubblemap module
2
+ * Lattice Grid 1.88.3, chart-bubblemap module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bubblemap module
2
+ * Lattice Grid 1.88.3, chart-bubblemap module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bump module type declarations
2
+ * Lattice Grid 1.88.3, chart-bump module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bump module
2
+ * Lattice Grid 1.88.3, chart-bump module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bump module
2
+ * Lattice Grid 1.88.3, chart-bump module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-bump module
2
+ * Lattice Grid 1.88.3, chart-bump module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-calendar module type declarations
2
+ * Lattice Grid 1.88.3, chart-calendar module type declarations
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Lattice Grid 1.88.2, chart-calendar module
2
+ * Lattice Grid 1.88.3, chart-calendar module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */