@toclocoinc/lattice-grid 1.101.7 → 1.101.8

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 (407) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +8 -6
  5. package/docs/api/adapters.html +1 -1
  6. package/docs/api/ai.html +1 -1
  7. package/docs/api/alarms.html +1 -1
  8. package/docs/api/calendar.html +1 -1
  9. package/docs/api/charts.html +1 -1
  10. package/docs/api/dashboard.html +1 -1
  11. package/docs/api/data-router.html +1 -1
  12. package/docs/api/deckgl.html +1 -1
  13. package/docs/api/designer.html +1 -1
  14. package/docs/api/form.html +5 -3
  15. package/docs/api/gantt.html +1 -1
  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/scheduler.html +1 -1
  28. package/docs/api/shell.html +1 -1
  29. package/docs/api/tabs.html +1 -1
  30. package/docs/api/types.html +1 -1
  31. package/docs/api-detail.html +4 -4
  32. package/docs/warnings.json +1 -1
  33. package/lattice-grid.d.ts +1 -1
  34. package/lattice-grid.esm.min.js +2 -2
  35. package/lattice-grid.min.cjs +2 -2
  36. package/lattice-grid.min.js +2 -2
  37. package/locales/all.d.ts +1 -1
  38. package/locales/all.esm.min.js +1 -1
  39. package/locales/all.min.cjs +1 -1
  40. package/locales/all.min.js +1 -1
  41. package/locales/ar.d.ts +1 -1
  42. package/locales/ar.esm.min.js +1 -1
  43. package/locales/ar.min.cjs +1 -1
  44. package/locales/ar.min.js +1 -1
  45. package/locales/cs-CZ.d.ts +1 -1
  46. package/locales/cs-CZ.esm.min.js +1 -1
  47. package/locales/cs-CZ.min.cjs +1 -1
  48. package/locales/cs-CZ.min.js +1 -1
  49. package/locales/da-DK.d.ts +1 -1
  50. package/locales/da-DK.esm.min.js +1 -1
  51. package/locales/da-DK.min.cjs +1 -1
  52. package/locales/da-DK.min.js +1 -1
  53. package/locales/de-DE.d.ts +1 -1
  54. package/locales/de-DE.esm.min.js +1 -1
  55. package/locales/de-DE.min.cjs +1 -1
  56. package/locales/de-DE.min.js +1 -1
  57. package/locales/el-GR.d.ts +1 -1
  58. package/locales/el-GR.esm.min.js +1 -1
  59. package/locales/el-GR.min.cjs +1 -1
  60. package/locales/el-GR.min.js +1 -1
  61. package/locales/en-US.d.ts +1 -1
  62. package/locales/en-US.esm.min.js +1 -1
  63. package/locales/en-US.min.cjs +1 -1
  64. package/locales/en-US.min.js +1 -1
  65. package/locales/es-ES.d.ts +1 -1
  66. package/locales/es-ES.esm.min.js +1 -1
  67. package/locales/es-ES.min.cjs +1 -1
  68. package/locales/es-ES.min.js +1 -1
  69. package/locales/fi-FI.d.ts +1 -1
  70. package/locales/fi-FI.esm.min.js +1 -1
  71. package/locales/fi-FI.min.cjs +1 -1
  72. package/locales/fi-FI.min.js +1 -1
  73. package/locales/fr-CA.d.ts +1 -1
  74. package/locales/fr-CA.esm.min.js +1 -1
  75. package/locales/fr-CA.min.cjs +1 -1
  76. package/locales/fr-CA.min.js +1 -1
  77. package/locales/fr-FR.d.ts +1 -1
  78. package/locales/fr-FR.esm.min.js +1 -1
  79. package/locales/fr-FR.min.cjs +1 -1
  80. package/locales/fr-FR.min.js +1 -1
  81. package/locales/hu-HU.d.ts +1 -1
  82. package/locales/hu-HU.esm.min.js +1 -1
  83. package/locales/hu-HU.min.cjs +1 -1
  84. package/locales/hu-HU.min.js +1 -1
  85. package/locales/it-IT.d.ts +1 -1
  86. package/locales/it-IT.esm.min.js +1 -1
  87. package/locales/it-IT.min.cjs +1 -1
  88. package/locales/it-IT.min.js +1 -1
  89. package/locales/ja-JP.d.ts +1 -1
  90. package/locales/ja-JP.esm.min.js +1 -1
  91. package/locales/ja-JP.min.cjs +1 -1
  92. package/locales/ja-JP.min.js +1 -1
  93. package/locales/nb-NO.d.ts +1 -1
  94. package/locales/nb-NO.esm.min.js +1 -1
  95. package/locales/nb-NO.min.cjs +1 -1
  96. package/locales/nb-NO.min.js +1 -1
  97. package/locales/nl-NL.d.ts +1 -1
  98. package/locales/nl-NL.esm.min.js +1 -1
  99. package/locales/nl-NL.min.cjs +1 -1
  100. package/locales/nl-NL.min.js +1 -1
  101. package/locales/pl-PL.d.ts +1 -1
  102. package/locales/pl-PL.esm.min.js +1 -1
  103. package/locales/pl-PL.min.cjs +1 -1
  104. package/locales/pl-PL.min.js +1 -1
  105. package/locales/pt-BR.d.ts +1 -1
  106. package/locales/pt-BR.esm.min.js +1 -1
  107. package/locales/pt-BR.min.cjs +1 -1
  108. package/locales/pt-BR.min.js +1 -1
  109. package/locales/ro-RO.d.ts +1 -1
  110. package/locales/ro-RO.esm.min.js +1 -1
  111. package/locales/ro-RO.min.cjs +1 -1
  112. package/locales/ro-RO.min.js +1 -1
  113. package/locales/sv-SE.d.ts +1 -1
  114. package/locales/sv-SE.esm.min.js +1 -1
  115. package/locales/sv-SE.min.cjs +1 -1
  116. package/locales/sv-SE.min.js +1 -1
  117. package/locales/uk-UA.d.ts +1 -1
  118. package/locales/uk-UA.esm.min.js +1 -1
  119. package/locales/uk-UA.min.cjs +1 -1
  120. package/locales/uk-UA.min.js +1 -1
  121. package/modules/ai.d.ts +1 -1
  122. package/modules/ai.esm.min.js +1 -1
  123. package/modules/ai.min.cjs +1 -1
  124. package/modules/ai.min.js +1 -1
  125. package/modules/alarms.d.ts +1 -1
  126. package/modules/alarms.esm.min.js +1 -1
  127. package/modules/alarms.min.cjs +1 -1
  128. package/modules/alarms.min.js +1 -1
  129. package/modules/angular.d.ts +1 -1
  130. package/modules/angular.esm.min.js +1 -1
  131. package/modules/angular.min.cjs +1 -1
  132. package/modules/angular.min.js +1 -1
  133. package/modules/calendar.d.ts +1 -1
  134. package/modules/calendar.esm.min.js +1 -1
  135. package/modules/calendar.min.cjs +1 -1
  136. package/modules/calendar.min.js +1 -1
  137. package/modules/chart-alluvial.d.ts +1 -1
  138. package/modules/chart-alluvial.esm.min.js +1 -1
  139. package/modules/chart-alluvial.min.cjs +1 -1
  140. package/modules/chart-alluvial.min.js +1 -1
  141. package/modules/chart-arc.d.ts +1 -1
  142. package/modules/chart-arc.esm.min.js +1 -1
  143. package/modules/chart-arc.min.cjs +1 -1
  144. package/modules/chart-arc.min.js +1 -1
  145. package/modules/chart-barrace.d.ts +1 -1
  146. package/modules/chart-barrace.esm.min.js +1 -1
  147. package/modules/chart-barrace.min.cjs +1 -1
  148. package/modules/chart-barrace.min.js +1 -1
  149. package/modules/chart-bubblemap.d.ts +1 -1
  150. package/modules/chart-bubblemap.esm.min.js +1 -1
  151. package/modules/chart-bubblemap.min.cjs +1 -1
  152. package/modules/chart-bubblemap.min.js +1 -1
  153. package/modules/chart-bump.d.ts +1 -1
  154. package/modules/chart-bump.esm.min.js +1 -1
  155. package/modules/chart-bump.min.cjs +1 -1
  156. package/modules/chart-bump.min.js +1 -1
  157. package/modules/chart-calendar.d.ts +1 -1
  158. package/modules/chart-calendar.esm.min.js +1 -1
  159. package/modules/chart-calendar.min.cjs +1 -1
  160. package/modules/chart-calendar.min.js +1 -1
  161. package/modules/chart-choropleth.d.ts +1 -1
  162. package/modules/chart-choropleth.esm.min.js +1 -1
  163. package/modules/chart-choropleth.min.cjs +1 -1
  164. package/modules/chart-choropleth.min.js +1 -1
  165. package/modules/chart-decomposition.d.ts +1 -1
  166. package/modules/chart-decomposition.esm.min.js +1 -1
  167. package/modules/chart-decomposition.min.cjs +1 -1
  168. package/modules/chart-decomposition.min.js +1 -1
  169. package/modules/chart-diverging.d.ts +1 -1
  170. package/modules/chart-diverging.esm.min.js +1 -1
  171. package/modules/chart-diverging.min.cjs +1 -1
  172. package/modules/chart-diverging.min.js +1 -1
  173. package/modules/chart-dumbbell.d.ts +1 -1
  174. package/modules/chart-dumbbell.esm.min.js +1 -1
  175. package/modules/chart-dumbbell.min.cjs +1 -1
  176. package/modules/chart-dumbbell.min.js +1 -1
  177. package/modules/chart-fan.d.ts +1 -1
  178. package/modules/chart-fan.esm.min.js +1 -1
  179. package/modules/chart-fan.min.cjs +1 -1
  180. package/modules/chart-fan.min.js +1 -1
  181. package/modules/chart-forcetree.d.ts +1 -1
  182. package/modules/chart-forcetree.esm.min.js +1 -1
  183. package/modules/chart-forcetree.min.cjs +1 -1
  184. package/modules/chart-forcetree.min.js +1 -1
  185. package/modules/chart-hexbin.d.ts +1 -1
  186. package/modules/chart-hexbin.esm.min.js +1 -1
  187. package/modules/chart-hexbin.min.cjs +1 -1
  188. package/modules/chart-hexbin.min.js +1 -1
  189. package/modules/chart-hexmap.d.ts +1 -1
  190. package/modules/chart-hexmap.esm.min.js +1 -1
  191. package/modules/chart-hexmap.min.cjs +1 -1
  192. package/modules/chart-hexmap.min.js +1 -1
  193. package/modules/chart-icicle.d.ts +1 -1
  194. package/modules/chart-icicle.esm.min.js +1 -1
  195. package/modules/chart-icicle.min.cjs +1 -1
  196. package/modules/chart-icicle.min.js +1 -1
  197. package/modules/chart-markermap.d.ts +1 -1
  198. package/modules/chart-markermap.esm.min.js +1 -1
  199. package/modules/chart-markermap.min.cjs +1 -1
  200. package/modules/chart-markermap.min.js +1 -1
  201. package/modules/chart-motion.d.ts +1 -1
  202. package/modules/chart-motion.esm.min.js +1 -1
  203. package/modules/chart-motion.min.cjs +1 -1
  204. package/modules/chart-motion.min.js +1 -1
  205. package/modules/chart-pack.d.ts +1 -1
  206. package/modules/chart-pack.esm.min.js +1 -1
  207. package/modules/chart-pack.min.cjs +1 -1
  208. package/modules/chart-pack.min.js +1 -1
  209. package/modules/chart-parallel.d.ts +1 -1
  210. package/modules/chart-parallel.esm.min.js +1 -1
  211. package/modules/chart-parallel.min.cjs +1 -1
  212. package/modules/chart-parallel.min.js +1 -1
  213. package/modules/chart-pictorial.d.ts +1 -1
  214. package/modules/chart-pictorial.esm.min.js +1 -1
  215. package/modules/chart-pictorial.min.cjs +1 -1
  216. package/modules/chart-pictorial.min.js +1 -1
  217. package/modules/chart-polararea.d.ts +1 -1
  218. package/modules/chart-polararea.esm.min.js +1 -1
  219. package/modules/chart-polararea.min.cjs +1 -1
  220. package/modules/chart-polararea.min.js +1 -1
  221. package/modules/chart-polarscatter.d.ts +1 -1
  222. package/modules/chart-polarscatter.esm.min.js +1 -1
  223. package/modules/chart-polarscatter.min.cjs +1 -1
  224. package/modules/chart-polarscatter.min.js +1 -1
  225. package/modules/chart-pyramid.d.ts +1 -1
  226. package/modules/chart-pyramid.esm.min.js +1 -1
  227. package/modules/chart-pyramid.min.cjs +1 -1
  228. package/modules/chart-pyramid.min.js +1 -1
  229. package/modules/chart-radialbar.d.ts +1 -1
  230. package/modules/chart-radialbar.esm.min.js +1 -1
  231. package/modules/chart-radialbar.min.cjs +1 -1
  232. package/modules/chart-radialbar.min.js +1 -1
  233. package/modules/chart-ridgeline.d.ts +1 -1
  234. package/modules/chart-ridgeline.esm.min.js +1 -1
  235. package/modules/chart-ridgeline.min.cjs +1 -1
  236. package/modules/chart-ridgeline.min.js +1 -1
  237. package/modules/chart-roc.d.ts +1 -1
  238. package/modules/chart-roc.esm.min.js +1 -1
  239. package/modules/chart-roc.min.cjs +1 -1
  240. package/modules/chart-roc.min.js +1 -1
  241. package/modules/chart-scatter3d.d.ts +1 -1
  242. package/modules/chart-scatter3d.esm.min.js +1 -1
  243. package/modules/chart-scatter3d.min.cjs +1 -1
  244. package/modules/chart-scatter3d.min.js +1 -1
  245. package/modules/chart-serpentine.d.ts +1 -1
  246. package/modules/chart-serpentine.esm.min.js +1 -1
  247. package/modules/chart-serpentine.min.cjs +1 -1
  248. package/modules/chart-serpentine.min.js +1 -1
  249. package/modules/chart-slope.d.ts +1 -1
  250. package/modules/chart-slope.esm.min.js +1 -1
  251. package/modules/chart-slope.min.cjs +1 -1
  252. package/modules/chart-slope.min.js +1 -1
  253. package/modules/chart-spiral.d.ts +1 -1
  254. package/modules/chart-spiral.esm.min.js +1 -1
  255. package/modules/chart-spiral.min.cjs +1 -1
  256. package/modules/chart-spiral.min.js +1 -1
  257. package/modules/chart-splom.d.ts +1 -1
  258. package/modules/chart-splom.esm.min.js +1 -1
  259. package/modules/chart-splom.min.cjs +1 -1
  260. package/modules/chart-splom.min.js +1 -1
  261. package/modules/chart-tree.d.ts +1 -1
  262. package/modules/chart-tree.esm.min.js +1 -1
  263. package/modules/chart-tree.min.cjs +1 -1
  264. package/modules/chart-tree.min.js +1 -1
  265. package/modules/chart-venn.d.ts +1 -1
  266. package/modules/chart-venn.esm.min.js +1 -1
  267. package/modules/chart-venn.min.cjs +1 -1
  268. package/modules/chart-venn.min.js +1 -1
  269. package/modules/chart-voronoi.d.ts +1 -1
  270. package/modules/chart-voronoi.esm.min.js +1 -1
  271. package/modules/chart-voronoi.min.cjs +1 -1
  272. package/modules/chart-voronoi.min.js +1 -1
  273. package/modules/chart-waffle.d.ts +1 -1
  274. package/modules/chart-waffle.esm.min.js +1 -1
  275. package/modules/chart-waffle.min.cjs +1 -1
  276. package/modules/chart-waffle.min.js +1 -1
  277. package/modules/chart-wordcloud.d.ts +1 -1
  278. package/modules/chart-wordcloud.esm.min.js +1 -1
  279. package/modules/chart-wordcloud.min.cjs +1 -1
  280. package/modules/chart-wordcloud.min.js +1 -1
  281. package/modules/charts.d.ts +1 -1
  282. package/modules/charts.esm.min.js +1 -1
  283. package/modules/charts.min.cjs +1 -1
  284. package/modules/charts.min.js +1 -1
  285. package/modules/dashboard.d.ts +1 -1
  286. package/modules/dashboard.esm.min.js +1 -1
  287. package/modules/dashboard.min.cjs +1 -1
  288. package/modules/dashboard.min.js +1 -1
  289. package/modules/data-router.d.ts +1 -1
  290. package/modules/data-router.esm.min.js +1 -1
  291. package/modules/data-router.min.cjs +1 -1
  292. package/modules/data-router.min.js +1 -1
  293. package/modules/deckgl.d.ts +1 -1
  294. package/modules/deckgl.esm.min.js +1 -1
  295. package/modules/deckgl.min.cjs +1 -1
  296. package/modules/deckgl.min.js +1 -1
  297. package/modules/designer.d.ts +1 -1
  298. package/modules/designer.esm.min.js +1 -1
  299. package/modules/designer.min.cjs +1 -1
  300. package/modules/designer.min.js +1 -1
  301. package/modules/devtools.d.ts +1 -1
  302. package/modules/devtools.esm.min.js +1 -1
  303. package/modules/devtools.min.cjs +1 -1
  304. package/modules/devtools.min.js +1 -1
  305. package/modules/dhtmlx-compat.d.ts +1 -1
  306. package/modules/dhtmlx-compat.esm.min.js +1 -1
  307. package/modules/dhtmlx-compat.min.cjs +1 -1
  308. package/modules/dhtmlx-compat.min.js +1 -1
  309. package/modules/form.d.ts +4 -2
  310. package/modules/form.esm.min.js +198 -178
  311. package/modules/form.esm.min.js.map +2 -2
  312. package/modules/form.min.cjs +198 -178
  313. package/modules/form.min.js +198 -178
  314. package/modules/form.min.js.map +2 -2
  315. package/modules/gantt.d.ts +1 -1
  316. package/modules/gantt.esm.min.js +1 -1
  317. package/modules/gantt.min.cjs +1 -1
  318. package/modules/gantt.min.js +1 -1
  319. package/modules/geo-europe-nuts.d.ts +1 -1
  320. package/modules/geo-europe-nuts.esm.min.js +1 -1
  321. package/modules/geo-europe-nuts.min.cjs +1 -1
  322. package/modules/geo-europe-nuts.min.js +1 -1
  323. package/modules/geo-uk.d.ts +1 -1
  324. package/modules/geo-uk.esm.min.js +1 -1
  325. package/modules/geo-uk.min.cjs +1 -1
  326. package/modules/geo-uk.min.js +1 -1
  327. package/modules/geo-us-states.d.ts +1 -1
  328. package/modules/geo-us-states.esm.min.js +1 -1
  329. package/modules/geo-us-states.min.cjs +1 -1
  330. package/modules/geo-us-states.min.js +1 -1
  331. package/modules/geo-world-110m.d.ts +1 -1
  332. package/modules/geo-world-110m.esm.min.js +1 -1
  333. package/modules/geo-world-110m.min.cjs +1 -1
  334. package/modules/geo-world-110m.min.js +1 -1
  335. package/modules/geo-world-50m.d.ts +1 -1
  336. package/modules/geo-world-50m.esm.min.js +1 -1
  337. package/modules/geo-world-50m.min.cjs +1 -1
  338. package/modules/geo-world-50m.min.js +1 -1
  339. package/modules/geometry.d.ts +1 -1
  340. package/modules/geometry.esm.min.js +1 -1
  341. package/modules/geometry.min.cjs +1 -1
  342. package/modules/geometry.min.js +1 -1
  343. package/modules/htmx.d.ts +1 -1
  344. package/modules/htmx.esm.min.js +2 -2
  345. package/modules/htmx.min.cjs +2 -2
  346. package/modules/htmx.min.js +2 -2
  347. package/modules/kanban.d.ts +1 -1
  348. package/modules/kanban.esm.min.js +1 -1
  349. package/modules/kanban.min.cjs +1 -1
  350. package/modules/kanban.min.js +1 -1
  351. package/modules/kpi.d.ts +1 -1
  352. package/modules/kpi.esm.min.js +1 -1
  353. package/modules/kpi.min.cjs +1 -1
  354. package/modules/kpi.min.js +1 -1
  355. package/modules/layout.d.ts +1 -1
  356. package/modules/layout.esm.min.js +1 -1
  357. package/modules/layout.min.cjs +1 -1
  358. package/modules/layout.min.js +1 -1
  359. package/modules/leaflet.d.ts +1 -1
  360. package/modules/leaflet.esm.min.js +1 -1
  361. package/modules/leaflet.min.cjs +1 -1
  362. package/modules/leaflet.min.js +1 -1
  363. package/modules/list.d.ts +1 -1
  364. package/modules/list.esm.min.js +1 -1
  365. package/modules/list.min.cjs +1 -1
  366. package/modules/list.min.js +1 -1
  367. package/modules/mapview.d.ts +1 -1
  368. package/modules/mapview.esm.min.js +1 -1
  369. package/modules/mapview.min.cjs +1 -1
  370. package/modules/mapview.min.js +1 -1
  371. package/modules/mock-socket.d.ts +1 -1
  372. package/modules/mock-socket.esm.min.js +1 -1
  373. package/modules/mock-socket.min.cjs +1 -1
  374. package/modules/mock-socket.min.js +1 -1
  375. package/modules/presets.d.ts +1 -1
  376. package/modules/presets.esm.min.js +1 -1
  377. package/modules/presets.min.cjs +1 -1
  378. package/modules/presets.min.js +1 -1
  379. package/modules/react.d.ts +1 -1
  380. package/modules/react.esm.min.js +1 -1
  381. package/modules/react.min.cjs +1 -1
  382. package/modules/react.min.js +1 -1
  383. package/modules/scheduler.d.ts +1 -1
  384. package/modules/scheduler.esm.min.js +1 -1
  385. package/modules/scheduler.min.cjs +1 -1
  386. package/modules/scheduler.min.js +1 -1
  387. package/modules/shell.d.ts +1 -1
  388. package/modules/shell.esm.min.js +1 -1
  389. package/modules/shell.min.cjs +1 -1
  390. package/modules/shell.min.js +1 -1
  391. package/modules/svelte.d.ts +1 -1
  392. package/modules/svelte.esm.min.js +1 -1
  393. package/modules/svelte.min.cjs +1 -1
  394. package/modules/svelte.min.js +1 -1
  395. package/modules/tabs.d.ts +1 -1
  396. package/modules/tabs.esm.min.js +1 -1
  397. package/modules/tabs.min.cjs +1 -1
  398. package/modules/tabs.min.js +1 -1
  399. package/modules/vue.d.ts +1 -1
  400. package/modules/vue.esm.min.js +1 -1
  401. package/modules/vue.min.cjs +1 -1
  402. package/modules/vue.min.js +1 -1
  403. package/modules/webcomponent.d.ts +1 -1
  404. package/modules/webcomponent.esm.min.js +2 -2
  405. package/modules/webcomponent.min.cjs +2 -2
  406. package/modules/webcomponent.min.js +2 -2
  407. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.101.7, form module
2
+ * Lattice Grid 1.101.8, form module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}function Xt($){var X=Yt[$];if(X)return X;var e=Object.create(null);Yt[$]=e;var I=Zt[$];if(!I)throw new Error("[lattice] missing module: "+$);return I(e,Xt),e}Te("packages/modules/form/styles.js",function($,X){"use strict";Object.defineProperty($,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"css",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"injectStyles",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"injectColsBreakpoint",{enumerable:!0,get:function(){return T}});const e="lat-form",I="lat-cols-never",x="data-lattice-form-styles";function te(){return`
6
+ var Xt=Object.create(null),Jt=Object.create(null);function Te($,J){Xt[$]=J}function qt($){var J=Jt[$];if(J)return J;var e=Object.create(null);Jt[$]=e;var R=Xt[$];if(!R)throw new Error("[lattice] missing module: "+$);return R(e,qt),e}Te("packages/modules/form/styles.js",function($,J){"use strict";Object.defineProperty($,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"css",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"injectStyles",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"injectColsBreakpoint",{enumerable:!0,get:function(){return P}});const e="lat-form",R="lat-cols-never",k="data-lattice-form-styles";function re(){return`
7
7
  /* The shared top-level layer host (BACKLOG-0002291): select, combo and the
8
8
  date picker each reparent their own popup in here while it is open, so an
9
9
  ancestor's \`overflow: hidden\` or fixed height never clips it. One host per
@@ -323,6 +323,15 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
323
323
  .lat-combo .lat-combo__toggle:hover,
324
324
  .lat-combo .lat-combo__toggle:focus-visible{ color:var(--lattice-foreground); }
325
325
  .lat-combo .lat-combo__toggle:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
326
+ .lat-combo .lat-combo__clear{
327
+ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
328
+ width:calc(var(--lattice-control-size) * var(--lattice-scale)); height:calc(var(--lattice-control-size) * var(--lattice-scale));
329
+ padding:0; border:0; background:transparent; color:var(--lattice-foreground-muted); cursor:pointer; border-radius:var(--lattice-radius);
330
+ }
331
+ .lat-combo .lat-combo__clear[hidden]{ display:none; }
332
+ .lat-combo .lat-combo__clear:hover,
333
+ .lat-combo .lat-combo__clear:focus-visible{ color:var(--lattice-foreground); }
334
+ .lat-combo .lat-combo__clear:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
326
335
  .lat-combo__popup{
327
336
  position:absolute; top:100%; left:0; right:0; z-index:10; margin-top:2px;
328
337
  box-sizing:border-box; border:var(--lattice-border-width) solid var(--lattice-border-color);
@@ -414,6 +423,17 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
414
423
  .lat-select__arrow{ flex:0 0 auto; display:inline-flex; align-items:center; color:var(--lattice-foreground-muted); }
415
424
  .lat-select__trigger:hover .lat-select__arrow,
416
425
  .lat-select__trigger:focus-visible .lat-select__arrow{ color:var(--lattice-foreground); }
426
+ .lat-select__clear{
427
+ position:absolute; top:50%; transform:translateY(-50%);
428
+ right:calc(var(--lattice-space) * 1.5 + var(--lattice-border-width) + (var(--lattice-control-size) * var(--lattice-scale)));
429
+ display:inline-flex; align-items:center; justify-content:center;
430
+ width:calc(var(--lattice-control-size) * var(--lattice-scale)); height:calc(var(--lattice-control-size) * var(--lattice-scale));
431
+ padding:0; border:0; background:transparent; color:var(--lattice-foreground-muted); cursor:pointer; border-radius:var(--lattice-radius);
432
+ }
433
+ .lat-select__clear[hidden]{ display:none; }
434
+ .lat-select__clear:hover,
435
+ .lat-select__clear:focus-visible{ color:var(--lattice-foreground); }
436
+ .lat-select__clear:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
417
437
  .lat-select__popup--above{ top:auto; bottom:100%; margin-top:0; margin-bottom:2px; }
418
438
  .lat-select__group{
419
439
  box-sizing:border-box; padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.5);
@@ -1140,13 +1160,13 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1140
1160
  font:inherit; cursor:pointer; padding:0 calc(var(--lattice-space) * 1.25);
1141
1161
  }
1142
1162
  .${e}__color-select{ margin-left:auto; background:var(--lattice-accent); border-color:var(--lattice-accent); color:#fff; }
1143
- `.trim()}function _(O){const w=O&&O.documentElement;if(!w||w.getAttribute(x))return;w.setAttribute(x,"1");const k=O.createElement("style");k.textContent=te(),(O.head||O.body||w).appendChild(k)}function T(O,w){const k=`lat-cols-bp-${String(w).replace(/[^0-9]/g,"")}`,E=`data-lattice-cols-breakpoint-${k}`,g=O&&O.documentElement;if(g&&!g.querySelector(`style[${E}]`)){const o=O.createElement("style");o.setAttribute(E,"1"),o.textContent=`@container ${k} (max-width:${w}px){.${e}__cols > *{flex:1 1 100%}}`,(O.head||O.body||g).appendChild(o)}return k}}),Te("packages/modules/form/controls/registry.js",function($,X){"use strict";Object.defineProperty($,"registerControl",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"resolveControl",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"controlTypes",{enumerable:!0,get:function(){return te}});const e=new Map;function I(_,T){e.set(_,T)}function x(_){return e.get(_)||null}function te(){return[...e.keys()]}}),Te("packages/modules/form/validation.js",function($,X){"use strict";Object.defineProperty($,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"BUILTIN_RULES",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"isEmpty",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"resolveValidationMode",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"validateValue",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"normalizeHookResult",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["change","blur","submit"]),I=Object.freeze(["email","number","integer","url"]),x=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function te(o){return o==null||o===""||o===!1||Array.isArray(o)&&o.length===0}function _(o){return e.includes(o)?o:"submit"}function T(o){return Object.prototype.toString.call(o)==="[object RegExp]"}function O(o,a){if(o==="email")return typeof a=="string"&&x.test(a);if(o==="number")return Number.isFinite(Number(a));if(o==="integer")return typeof a=="number"?Number.isInteger(a):typeof a=="string"&&/^-?\d+$/.test(a);if(o==="url"){if(typeof a!="string")return!1;try{const d=new URL(a);return d.protocol==="http:"||d.protocol==="https:"}catch{return!1}}return!0}function w(o,a){return typeof o.errorMessage=="string"&&o.errorMessage!==""?o.errorMessage:a}function k(o,a,d,h){let t;try{t=o(a,d)}catch{return{code:"custom",message:w(d,h("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:w(d,h("form.validation.custom"))}:{code:"custom",message:String(t)}}function E(o,a,d,h){if((o.required===!0||h===!0)&&te(a))return{code:"required",message:w(o,d("form.validation.required"))};const t=o.validation;return t==null?null:typeof t=="function"?k(t,a,o,d):T(t)?te(a)||t.test(String(a))?null:{code:"pattern",message:w(o,d("form.validation.pattern"))}:typeof t=="string"&&I.includes(t)?te(a)||O(t,a)?null:{code:t,message:w(o,d(`form.validation.${t}`))}:null}function g(o,a,d){return o==null||o===!0?null:o===!1?{code:"custom",message:w(a,d("form.validation.custom"))}:typeof o=="string"?{code:"custom",message:o}:typeof o=="object"?{code:o.code||"custom",message:o.message!=null?String(o.message):w(a,d("form.validation.custom"))}:null}}),Te("packages/modules/form/model.js",function($,X){"use strict";Object.defineProperty($,"isEmpty",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"DENSITIES",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"CONTROL_TYPES",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"cssSize",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"resolveLabelPosition",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"resolveDensity",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"resolveColsBreakpoint",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"axisOf",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"normalizeItem",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"normalizeBlock",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"resolveConfig",{enumerable:!0,get:function(){return d}});const I=X("packages/modules/form/validation.js").resolveValidationMode;function x(t){return t!==null&&typeof t=="object"}function te(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const _=Object.freeze(["compact","standard","comfortable"]),T=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial"]);function O(t){return typeof t=="number"?`${t}px`:String(t)}function w(t){return t==="left"||t==="hidden"?t:"top"}function k(t){return _.includes(t)?t:"standard"}function E(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function g(t){return Array.isArray(t.items)&&t.items.length?"items":Array.isArray(t.rows)&&t.rows.length?"rows":Array.isArray(t.cols)&&t.cols.length?"cols":null}function o(t,r){const n=t.text!=null&&t.type===void 0,p=n?"text":t.type!=null&&t.type!==""?String(t.type):"input",y=n?t.text:t.value,b={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:p,label:t.label,labelPosition:t.labelPosition==null?null:w(t.labelPosition),labelWidth:t.labelWidth,requiredHint:t.requiredHint,width:t.width,placeholder:t.placeholder,helpMessage:t.helpMessage,hidden:t.hidden===!0,disabled:t.disabled===!0,readOnly:t.readOnly===!0,tooltip:t.tooltip,lockIcon:t.lockIcon,addons:t.addons,value:y,subtype:t.subtype,step:t.step,min:t.min,max:t.max,rows:t.rows,options:t.options,mode:t.mode,locale:t.locale,timeZone:t.timeZone,css:t.css,visibleWhen:t.visibleWhen,readOnlyWhen:t.readOnlyWhen,requiredWhen:t.requiredWhen,required:t.required===!0,validation:t.validation,errorMessage:t.errorMessage,successMessage:t.successMessage,preMessage:t.preMessage,validationMode:I(t.validationMode),props:x(t.props)?Object.assign({},t.props):{},path:r};for(const m of Object.keys(t))!(m in b)&&m!=="text"&&m!=="value"&&m!=="type"&&(b.props[m]=t[m]);return b}function a(t,r){if(!x(t))return null;if(t.fieldset!=null){const p=x(t.fieldset)?t.fieldset:t,y=x(t.fieldset)?t.fieldset.legend:t.fieldset,b=g(p),m=b==="items"?p.items:b==="rows"?p.rows:b==="cols"?p.cols:[];return{kind:"fieldset",legend:y==null?null:String(y),axis:b,spacing:p.spacing==null?null:O(p.spacing),labelPosition:p.labelPosition==null?null:w(p.labelPosition),labelWidth:p.labelWidth,blocks:m.filter(x).map((V,l)=>a(V,`${r}/${l}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.container!=null){const p=x(t.container)?t.container:t,y=g(p),b=y==="items"?p.items:y==="rows"?p.rows:y==="cols"?p.cols:[];return{kind:"container",axis:y,spacing:p.spacing==null?null:O(p.spacing),labelPosition:p.labelPosition==null?null:w(p.labelPosition),labelWidth:p.labelWidth,blocks:b.filter(x).map((m,V)=>a(m,`${r}/${V}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.panel!=null){const p=x(t.panel)?t.panel:{},y=x(t.panel)&&g(t.panel)?t.panel:t,b=g(y),m=b==="items"?y.items:b==="rows"?y.rows:b==="cols"?y.cols:[],V=Array.isArray(p.actions)?p.actions.filter(x).map(l=>({icon:l.icon,ariaLabel:l.ariaLabel!=null&&l.ariaLabel!==""?String(l.ariaLabel):null,onClick:typeof l.onClick=="function"?l.onClick:null})):[];return{kind:"panel",title:p.title!=null&&p.title!==""?String(p.title):null,subtitle:p.subtitle!=null&&p.subtitle!==""?String(p.subtitle):null,actions:V,collapsible:p.collapsible===!0,axis:b,spacing:y.spacing==null?null:O(y.spacing),labelPosition:y.labelPosition==null?null:w(y.labelPosition),labelWidth:y.labelWidth,blocks:m.filter(x).map((l,f)=>a(l,`${r}/${f}`)).filter(Boolean),css:y.css,hidden:y.hidden===!0}}const n=g(t);if(n){const p=n==="items"?t.items:n==="rows"?t.rows:t.cols;return{kind:"container",axis:n,spacing:t.spacing==null?null:O(t.spacing),labelPosition:t.labelPosition==null?null:w(t.labelPosition),labelWidth:t.labelWidth,blocks:p.filter(x).map((y,b)=>a(y,`${r}/${b}`)).filter(Boolean),css:t.css,hidden:t.hidden===!0}}return t.spacer===!0||t.type==="spacer"?{kind:"spacer",css:t.css,hidden:t.hidden===!0}:t.separator===!0||t.type==="separator"?{kind:"separator",label:t.label!=null&&t.label!==""?String(t.label):null,css:t.css,hidden:t.hidden===!0}:o(t,r)}function d(t={}){const r=x(t)?t:{},n=Array.isArray(r.steps)?r.steps.filter(x).map((l,f)=>h(l,f)).filter(Boolean):[],p=n.length>0,y=!p&&Array.isArray(r.rows)&&r.rows.length,b=!p&&!y&&Array.isArray(r.cols)&&r.cols.length,m=y||p?"rows":"cols",V=p?[]:y?r.rows:b?r.cols:[];return{axis:m,density:k(r.density),css:r.css,messages:r.messages,colsBreakpoint:E(r.colsBreakpoint),spacing:r.spacing==null?null:O(r.spacing),labelGap:r.labelGap==null?null:O(r.labelGap),labelPosition:r.labelPosition==null?null:w(r.labelPosition),labelWidth:r.labelWidth,requiredHint:r.requiredHint,blocks:V.filter(x).map((l,f)=>a(l,String(f))).filter(Boolean),steps:n,stepOrientation:r.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:r.validateSteps!==!1}}function h(t,r){const p=(Array.isArray(t.rows)?t.rows:[]).filter(x).map((y,b)=>a(y,`step${r}/${b}`)).filter(Boolean);return p.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${r}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:p,css:t.css}}}),Te("packages/modules/form/ids.js",function($,X){"use strict";Object.defineProperty($,"nextId",{enumerable:!0,get:function(){return I}});let e=0;function I(x){return e+=1,`${x}-${e}`}}),Te("packages/modules/form/state.js",function($,X){"use strict";Object.defineProperty($,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"guardBooleanInput",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"syncRootAria",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"syncRecordState",{enumerable:!0,get:function(){return te}});function e(_,T,O){_.disabled=T===!0,_.__latReadOnly=O===!0,O===!0?_.setAttribute("aria-readonly","true"):_.removeAttribute("aria-readonly")}function I(_){const T=()=>_.__latReadOnly===!0,O=g=>{T()&&g.preventDefault()},w=g=>{T()&&(g.preventDefault(),g.stopPropagation())},k=g=>{T()&&(g.key===" "||g.key==="Enter")&&g.preventDefault()},E=g=>{T()&&g.key===" "&&g.preventDefault()};_.addEventListener("pointerdown",O),_.addEventListener("click",w),_.addEventListener("keydown",k),_.addEventListener("keyup",E)}function x(_,T,O){T?_.setAttribute("aria-disabled","true"):_.removeAttribute("aria-disabled"),O?_.setAttribute("aria-readonly","true"):_.removeAttribute("aria-readonly")}function te(_){const T=_.item,O=T.disabled===!0,w=T.readOnly===!0||_.ruleReadOnly===!0;_.controlWrap&&(_.controlWrap.setAttribute("data-disabled",O?"true":"false"),_.controlWrap.setAttribute("data-readonly",w?"true":"false")),_.def.state(_.control,{...T,readOnly:w}),typeof _.syncLock=="function"&&_.syncLock(),typeof _.syncAddons=="function"&&_.syncAddons()}}),Te("packages/modules/form/group-rules.js",function($,X){"use strict";Object.defineProperty($,"attachRuleResolver",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"detachRuleResolver",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"ruleResolverFor",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"makeRuleResolver",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"reapplyMembers",{enumerable:!0,get:function(){return T}});const e=new WeakMap;function I(O,w){e.set(O,w)}function x(O){e.delete(O)}function te(O){return e.get(O)}function _(O){const{owners:w,byId:k,warnOnce:E}=O;return function(o,a){if(o==null||typeof o!="object")return;const d=o.name;if(o.form!=null){const t=k.get(o.form);if(!t){E(`form.group.unknown-member:${String(o.form)}`,`form group: a rule pins the member "${o.form}", but no member has that id; the rule reads an empty value.`);return}return d!=null?t.form.getValue()[d]:void 0}if(d==null)return;if(Object.prototype.hasOwnProperty.call(a,d))return a[d];const h=w.get(String(d));if(h)return h.form.getValue()[d]}}function T(O){for(const w of O)w.form&&typeof w.form.__reapplyRules=="function"&&w.form.__reapplyRules()}}),Te("packages/modules/form/rules.js",function($,X){"use strict";Object.defineProperty($,"evalRule",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"applyRules",{enumerable:!0,get:function(){return w}});const I=X("packages/modules/form/model.js").isEmpty,te=X("packages/modules/form/state.js").syncRecordState,T=X("packages/modules/form/group-rules.js").ruleResolverFor;function O(E,g,o){if(E==null)return null;if(typeof E=="function")return!!E(g);if(typeof E=="boolean")return E;if(typeof E=="object"){const a=o?o(E,g):E.name!=null?g[E.name]:void 0;if(typeof E.fn=="function")return!!E.fn(a,g);let d=!0,h=!1;return Object.prototype.hasOwnProperty.call(E,"equals")&&(h=!0,d=d&&a===E.equals),Object.prototype.hasOwnProperty.call(E,"in")&&(h=!0,d=d&&Array.isArray(E.in)&&E.in.includes(a)),Object.prototype.hasOwnProperty.call(E,"empty")&&(h=!0,d=d&&I(a)===!!E.empty),h?d:!1}return!1}function w(E){const g={};for(const a of E.order)a.item.name!=null&&(g[a.item.name]=a.value);const o=E.form?T(E.form):void 0;for(const a of E.order){const d=a.item;a.ruleHidden=O(d.visibleWhen,g,o)===!1,a.ruleReadOnly=O(d.readOnlyWhen,g,o)===!0,a.ruleRequired=O(d.requiredWhen,g,o)===!0,a.el.hidden=a.hidden||a.ruleHidden,te(a);const h=d.required===!0||a.ruleRequired,t=a.labelEl!=null&&a.labelPosition!=="hidden",r=a.placeholderEl||a.control;h?r.setAttribute("aria-required","true"):r.removeAttribute("aria-required"),h&&t?a.el.setAttribute("data-required","true"):a.el.removeAttribute("data-required"),k(a,h,t,n=>E.t(n))}}function k(E,g,o,a){const d=E.placeholderEl;if(!d)return;const h=E.placeholderBase;if(g&&!o&&h!==""){const t=E.requiredHint,r=t===!1?"":typeof t=="string"?a(t):" *";d.placeholder=h+r}else d.placeholder=h}}),Te("packages/modules/form/enter-submit.js",function($,X){"use strict";Object.defineProperty($,"attachEnterSubmit",{enumerable:!0,get:function(){return O}});function e(w){const k=w.control;if(!k)return null;const E=w.item&&w.item.type;return E==="input"?k.__latPassword?k.__latPassword.input:k:E==="number"?k.__latNumber?k.__latNumber.input:k:(E==="datepicker"||E==="daterange")&&k.__input||null}function I(w,k){for(const E of w.order){const g=E.control;if(g&&(g===k||typeof g.contains=="function"&&g.contains(k)))return E}return null}function x(w,k){const E=w.item&&w.item.type;if(E==="otp"){const o=w.control&&w.control.__latOtp;return!o||!Array.isArray(o.boxes)||o.boxes.length===0?!1:k===o.boxes[o.boxes.length-1]}if(E==="combo"||E==="select")return!1;const g=e(w);if(!g||k!==g)return!1;if(E==="input"||E==="number")return!0;if(E==="datepicker"||E==="daterange"){const o=w.control&&w.control.__popup;return!o||o.hidden!==!1}return!1}function te(w){for(const k of w.order){if(k.hidden)continue;const E=k.item&&k.item.type;if(E==="button"){const g=k.control&&k.control.__latButton;if(g&&g.buttonType==="submit")return k.control}else if(E==="buttons"){const g=k.control&&k.control.children;if(!g)continue;for(const o of g){const a=o&&o.__latButton;if(a&&a.buttonType==="submit")return o}}}return null}function _(w,k){const E=k&&k.defaultView,g=E&&(E.MouseEvent||E.Event),o=g?new g("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};w.dispatchEvent(o)}function T(w,k,E){const g=w.doc,o=g&&g.defaultView,a=e(k)||E;if(!a||typeof a.dispatchEvent!="function")return!1;const d=o&&(o.FocusEvent||o.Event);d&&a.dispatchEvent(new d("blur",{bubbles:!1}));const h=k.def,t=h&&typeof h.read=="function"?h.read(k.control,k.item):void 0;if(t===void 0||t===k.value)return!1;const r=o&&o.Event;return r?a.dispatchEvent(new r("change",{bubbles:!0})):a.dispatchEvent({type:"change",bubbles:!0,target:a}),!0}function O(w){const k=E=>{if(E.key!=="Enter"||E.altKey||E.ctrlKey||E.metaKey||E.shiftKey||E.isComposing)return;const g=E.target;if(!g)return;const o=I(w,g);if(!o||!x(o,g))return;const a=te(w);if(!a)return;E.preventDefault(),T(w,o,g)?Promise.resolve().then(()=>_(a,w.doc)):_(a,w.doc)};w.el.addEventListener("keydown",k),w.disposers.push(()=>w.el.removeEventListener("keydown",k))}}),Te("packages/modules/form/stepper.js",function($,X){"use strict";Object.defineProperty($,"createStepper",{enumerable:!0,get:function(){return te}});const I=X("packages/modules/form/styles.js").NS;function x(_,T,O){return Math.min(O,Math.max(T,_))}function te(_,T){const O=T.doc,w=T.steps||[],k=T.t||(b=>b),E=T.orientation==="vertical"?"vertical":"horizontal";let g=x(Number(T.active)||0,0,Math.max(0,w.length-1));const o=[];_.className=`${I}__stepper ${I}__stepper--${E}`,_.setAttribute("data-orientation",E),_.setAttribute("role","navigation"),_.setAttribute("aria-label",k("form.steps"));const a=O.createElement("ol");a.className=`${I}__stepper-list`,a.setAttribute("role","tablist"),a.setAttribute("aria-orientation",E),_.appendChild(a);let d=[];const h=b=>o[b]?o[b]:b<g?"complete":b===g?"active":"pending",t=b=>b<=g+1,r=()=>{a.textContent="",d=w.map((b,m)=>{const V=h(m),l=O.createElement("li");l.className=`${I}__stepper-item is-${V}`+(m===g?" is-active":"")+(t(m)?"":" is-locked");const f=O.createElement("button");f.type="button",f.className=`${I}__stepper-step`,f.setAttribute("role","tab"),f.setAttribute("aria-selected",m===g?"true":"false"),m===g&&f.setAttribute("aria-current","step"),f.tabIndex=m===g?0:-1,f.setAttribute("aria-disabled",t(m)?"false":"true");const c=O.createElement("span");c.className=`${I}__stepper-marker`,c.setAttribute("aria-hidden","true"),c.textContent=V==="complete"?"✓":V==="error"?"!":String(m+1),f.appendChild(c);const s=O.createElement("span");return s.className=`${I}__stepper-label`,s.textContent=b.label!=null&&b.label!==""?b.label:`${k("form.step")} ${m+1}`,f.appendChild(s),l.appendChild(f),a.appendChild(l),f})},n=b=>{typeof T.onGoTo=="function"&&t(b)&&T.onGoTo(b)},p=b=>{const m=b.target&&b.target.closest?b.target.closest(`.${I}__stepper-step`):null;if(!m||!a.contains(m))return;const V=d.indexOf(m);V>=0&&n(V)},y=b=>{const m=b.target&&b.target.closest?b.target.closest(`.${I}__stepper-step`):null;if(!m||!a.contains(m))return;const V=w.length;let l=d.indexOf(m);if(l<0)return;if(b.key==="ArrowRight"||b.key==="ArrowDown")l=(l+1)%V;else if(b.key==="ArrowLeft"||b.key==="ArrowUp")l=(l-1+V)%V;else if(b.key==="Home")l=0;else if(b.key==="End")l=V-1;else if(b.key==="Enter"||b.key===" "){b.preventDefault(),n(l);return}else return;b.preventDefault();const f=d[l];f&&f.focus()};return a.addEventListener("click",p),a.addEventListener("keydown",y),r(),{el:_,setActive(b){g=x(Number(b)||0,0,Math.max(0,w.length-1)),r()},setStatus(b,m){o[b]=m,r()},statusOf:h}}}),Te("packages/core/src/internal/icon-builtins.js",function($,X){"use strict";Object.defineProperty($,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"normaliseIcon",{enumerable:!0,get:function(){return I}});const e={chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},dash:{viewBox:"0 0 16 16",paths:["M4 8h8"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},minus:{viewBox:"0 0 16 16",paths:["M3.5 8h9"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},calendar:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3z","M3 5.5h10","M5.5 1.5v2","M10.5 1.5v2"],paint:"stroke"},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},filter:{viewBox:"0 0 16 16",paths:["M2 3h12l-4.5 5.2V13L6.5 11.5V8.2Z"]},pause:{viewBox:"0 0 16 16",paths:["M4.5 3h2.5v10H4.5zM9 3h2.5v10H9z"]},play:{viewBox:"0 0 16 16",paths:["M4.5 3l8 5-8 5z"]},chart:{viewBox:"0 0 16 16",paths:["M2.5 13.5h11","M4.5 13.5v-4","M8 13.5v-8","M11.5 13.5v-6"],paint:"stroke"},palette:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 0 0 0 13c.7 0 1.2-.5 1.2-1.1 0-.3-.1-.6-.3-.8a1.1 1.1 0 0 1 .8-1.9h1.4A3.4 3.4 0 0 0 14.5 7c0-3-2.9-5.5-6.5-5.5Z","M4.6 7.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM6.7 4.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM9.9 4.7a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM11.9 6.9a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"]},undo:{viewBox:"0 0 16 16",paths:["M3 8h6.5a3.25 3.25 0 0 1 0 6.5H6M3 8l3-3M3 8l3 3"],paint:"stroke"},redo:{viewBox:"0 0 16 16",paths:["M13 8H6.5a3.25 3.25 0 0 0 0 6.5H10M13 8l-3-3M13 8l-3 3"],paint:"stroke"},columns:{viewBox:"0 0 16 16",paths:["M2.5 2.5h11v11h-11zM6.5 2.5v11M10 2.5v11"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},restore:{viewBox:"0 0 16 16",paths:["M3 8a5 5 0 1 0 1.6-3.7M3 3v2.8h2.8"],paint:"stroke"},spreadsheet:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3zM3 6h10M3 9.5h10M6.5 6v7.5"],paint:"stroke"},print:{viewBox:"0 0 16 16",paths:["M4.5 6V2.5h7V6M4.5 11.5h-2V6h11v5.5h-2M4.5 9.5h7v4h-7z"],paint:"stroke"},maximise:{viewBox:"0 0 16 16",paths:["M2.5 6V2.5H6M10 2.5h3.5V6M13.5 10v3.5H10M6 13.5H2.5V10"],paint:"stroke"},minimise:{viewBox:"0 0 16 16",paths:["M6 2.5V6H2.5M13.5 6H10V2.5M10 13.5V10h3.5M2.5 10H6v3.5"],paint:"stroke"},views:{viewBox:"0 0 16 16",paths:["M4 2.5h8v11L8 11l-4 2.5z"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},share:{viewBox:"0 0 16 16",paths:["M11.5 5.5a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M4.5 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M11.5 14.1a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M6.1 7.1l3.8-1.9M6.1 8.9l3.8 1.9"],paint:"stroke"},pin:{viewBox:"0 0 16 16",paths:["M8 2v6M5 8h6l1 2.5H4zM8 10.5V14"],paint:"stroke"},sortAsc:{viewBox:"0 0 16 16",paths:["M8 3.5 12 8H4Z"]},sortDesc:{viewBox:"0 0 16 16",paths:["M8 12.5 4 8h8Z"]},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"},drag:{viewBox:"0 0 16 16",paths:["M6 3.5h1.5V5H6Zm3 0h1.5V5H9ZM6 7.25h1.5v1.5H6Zm3 0h1.5v1.5H9ZM6 11h1.5v1.5H6Zm3 0h1.5v1.5H9Z"]},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},circleFilled:{viewBox:"0 0 16 16",paths:["M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]},square:{viewBox:"0 0 16 16",paths:["M3 3h10v10H3Z"]},bolt:{viewBox:"0 0 16 16",paths:["M9.5 1.5 3.5 9h3.2l-.7 5.5L12.5 7H9.3Z"]},flag:{viewBox:"0 0 16 16",paths:["M4 1.5h1.5v13H4Zm1.5 1h7.5l-1.6 2.6L13 7.7H5.5Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},highlight:{viewBox:"0 0 16 16",paths:["M4 11 10 5l2 2-6 6H4z","M3 14.5h10"],paint:"stroke"},eraser:{viewBox:"0 0 16 16",paths:["M3 11 9 5 13 9 7 15Z","M5 13 9 9"],paint:"stroke"},thumbUp:{viewBox:"0 0 16 16",paths:["M5.5 6.8 8.6 1.5a1.6 1.6 0 0 1 1.5 2.1L9.4 6h3.4a1.4 1.4 0 0 1 1.35 1.78l-1.3 4.6A1.9 1.9 0 0 1 11 13.8H5.5ZM4 6.5H1.5v7.3H4Z"]},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},copy:{viewBox:"0 0 16 16",paths:["M5.5 2.5h8v8M2.5 5.5h8v8h-8Z"],paint:"stroke"},present:{viewBox:"0 0 16 16",paths:["M2 2.5h12v8H2Z","M8 10.5v3","M6 13.5h4"],paint:"stroke"},cabinet:{viewBox:"0 0 16 16",paths:["M3 2h10v12H3ZM5 4v4h2.5V4ZM8.5 4v4H11V4ZM5 9.5V11h6V9.5Z"]},splice:{viewBox:"0 0 16 16",paths:["M8 4.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM8 6.8a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4ZM1.5 7.2h3v1.6h-3ZM11.5 7.2h3v1.6h-3Z"]},exchange:{viewBox:"0 0 16 16",paths:["M8 1.5 14.5 6v1H1.5V6ZM3 8h2v5H3ZM7 8h2v5H7ZM11 8h2v5h-2ZM1.5 13.5h13V15h-13Z"]},pole:{viewBox:"0 0 16 16",paths:["M7.2 1.5h1.6V15H7.2ZM3 3.5h10V5H3ZM4.5 7h7v1.4h-7Z"]},chamber:{viewBox:"0 0 16 16",paths:["M2.5 3.5h11v9h-11ZM4.5 5.5v5h7v-5ZM6 7h4v1.5H6Z"]},premises:{viewBox:"0 0 16 16",paths:["M8 1.8 14.5 7.5h-2V14h-9V7.5h-2ZM6.8 10.4V14h2.4v-3.6Z"]},fault:{viewBox:"0 0 16 16",paths:["M5.2 1.5h5.6L14.5 5.2v5.6L10.8 14.5H5.2L1.5 10.8V5.2ZM5.4 9.4 6.6 10.6 8 9.2 9.4 10.6 10.6 9.4 9.2 8 10.6 6.6 9.4 5.4 8 6.8 6.6 5.4 5.4 6.6 6.8 8Z"]},user:{viewBox:"0 0 16 16",paths:["M8 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z","M8 9c3 0 5.5 1.5 5.5 3.5V14h-11v-1.5C2.5 10.5 5 9 8 9Z"]},blank:{viewBox:"0 0 16 16",paths:[""]}};function I(x){return typeof x=="string"?{viewBox:"0 0 16 16",paths:[x],paint:"fill"}:Array.isArray(x)?{viewBox:"0 0 16 16",paths:x.slice(),paint:"fill"}:{viewBox:x&&x.viewBox||"0 0 16 16",paths:x&&Array.isArray(x.paths)?x.paths.slice():x&&x.path?[x.path]:[],paint:x&&x.paint==="stroke"?"stroke":"fill"}}}),Te("packages/modules/form/controls/field-icon.js",function($,X){"use strict";Object.defineProperty($,"fieldIconStylesheet",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"injectFieldIconStyles",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"makeFieldIcon",{enumerable:!0,get:function(){return O}});const I=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,x="http://www.w3.org/2000/svg",te="data-lattice-form-field-icon-styles";function _(){return`
1163
+ `.trim()}function _(O){const y=O&&O.documentElement;if(!y||y.getAttribute(k))return;y.setAttribute(k,"1");const C=O.createElement("style");C.textContent=re(),(O.head||O.body||y).appendChild(C)}function P(O,y){const C=`lat-cols-bp-${String(y).replace(/[^0-9]/g,"")}`,E=`data-lattice-cols-breakpoint-${C}`,g=O&&O.documentElement;if(g&&!g.querySelector(`style[${E}]`)){const o=O.createElement("style");o.setAttribute(E,"1"),o.textContent=`@container ${C} (max-width:${y}px){.${e}__cols > *{flex:1 1 100%}}`,(O.head||O.body||g).appendChild(o)}return C}}),Te("packages/modules/form/controls/registry.js",function($,J){"use strict";Object.defineProperty($,"registerControl",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"resolveControl",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"controlTypes",{enumerable:!0,get:function(){return re}});const e=new Map;function R(_,P){e.set(_,P)}function k(_){return e.get(_)||null}function re(){return[...e.keys()]}}),Te("packages/modules/form/validation.js",function($,J){"use strict";Object.defineProperty($,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"BUILTIN_RULES",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"isEmpty",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"resolveValidationMode",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"validateValue",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"normalizeHookResult",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["change","blur","submit"]),R=Object.freeze(["email","number","integer","url"]),k=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function re(o){return o==null||o===""||o===!1||Array.isArray(o)&&o.length===0}function _(o){return e.includes(o)?o:"submit"}function P(o){return Object.prototype.toString.call(o)==="[object RegExp]"}function O(o,a){if(o==="email")return typeof a=="string"&&k.test(a);if(o==="number")return Number.isFinite(Number(a));if(o==="integer")return typeof a=="number"?Number.isInteger(a):typeof a=="string"&&/^-?\d+$/.test(a);if(o==="url"){if(typeof a!="string")return!1;try{const d=new URL(a);return d.protocol==="http:"||d.protocol==="https:"}catch{return!1}}return!0}function y(o,a){return typeof o.errorMessage=="string"&&o.errorMessage!==""?o.errorMessage:a}function C(o,a,d,h){let t;try{t=o(a,d)}catch{return{code:"custom",message:y(d,h("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:y(d,h("form.validation.custom"))}:{code:"custom",message:String(t)}}function E(o,a,d,h){if((o.required===!0||h===!0)&&re(a))return{code:"required",message:y(o,d("form.validation.required"))};const t=o.validation;return t==null?null:typeof t=="function"?C(t,a,o,d):P(t)?re(a)||t.test(String(a))?null:{code:"pattern",message:y(o,d("form.validation.pattern"))}:typeof t=="string"&&R.includes(t)?re(a)||O(t,a)?null:{code:t,message:y(o,d(`form.validation.${t}`))}:null}function g(o,a,d){return o==null||o===!0?null:o===!1?{code:"custom",message:y(a,d("form.validation.custom"))}:typeof o=="string"?{code:"custom",message:o}:typeof o=="object"?{code:o.code||"custom",message:o.message!=null?String(o.message):y(a,d("form.validation.custom"))}:null}}),Te("packages/modules/form/model.js",function($,J){"use strict";Object.defineProperty($,"isEmpty",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"DENSITIES",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"CONTROL_TYPES",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"cssSize",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"resolveLabelPosition",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"resolveDensity",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"resolveColsBreakpoint",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"axisOf",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"normalizeItem",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"normalizeBlock",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"resolveConfig",{enumerable:!0,get:function(){return d}});const R=J("packages/modules/form/validation.js").resolveValidationMode;function k(t){return t!==null&&typeof t=="object"}function re(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const _=Object.freeze(["compact","standard","comfortable"]),P=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial"]);function O(t){return typeof t=="number"?`${t}px`:String(t)}function y(t){return t==="left"||t==="hidden"?t:"top"}function C(t){return _.includes(t)?t:"standard"}function E(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function g(t){return Array.isArray(t.items)&&t.items.length?"items":Array.isArray(t.rows)&&t.rows.length?"rows":Array.isArray(t.cols)&&t.cols.length?"cols":null}function o(t,r){const n=t.text!=null&&t.type===void 0,p=n?"text":t.type!=null&&t.type!==""?String(t.type):"input",v=n?t.text:t.value,b={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:p,label:t.label,labelPosition:t.labelPosition==null?null:y(t.labelPosition),labelWidth:t.labelWidth,requiredHint:t.requiredHint,width:t.width,placeholder:t.placeholder,helpMessage:t.helpMessage,hidden:t.hidden===!0,disabled:t.disabled===!0,readOnly:t.readOnly===!0,tooltip:t.tooltip,lockIcon:t.lockIcon,addons:t.addons,value:v,subtype:t.subtype,step:t.step,min:t.min,max:t.max,rows:t.rows,options:t.options,mode:t.mode,locale:t.locale,timeZone:t.timeZone,css:t.css,visibleWhen:t.visibleWhen,readOnlyWhen:t.readOnlyWhen,requiredWhen:t.requiredWhen,required:t.required===!0,validation:t.validation,errorMessage:t.errorMessage,successMessage:t.successMessage,preMessage:t.preMessage,validationMode:R(t.validationMode),props:k(t.props)?Object.assign({},t.props):{},path:r};for(const m of Object.keys(t))!(m in b)&&m!=="text"&&m!=="value"&&m!=="type"&&(b.props[m]=t[m]);return b}function a(t,r){if(!k(t))return null;if(t.fieldset!=null){const p=k(t.fieldset)?t.fieldset:t,v=k(t.fieldset)?t.fieldset.legend:t.fieldset,b=g(p),m=b==="items"?p.items:b==="rows"?p.rows:b==="cols"?p.cols:[];return{kind:"fieldset",legend:v==null?null:String(v),axis:b,spacing:p.spacing==null?null:O(p.spacing),labelPosition:p.labelPosition==null?null:y(p.labelPosition),labelWidth:p.labelWidth,blocks:m.filter(k).map((V,l)=>a(V,`${r}/${l}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.container!=null){const p=k(t.container)?t.container:t,v=g(p),b=v==="items"?p.items:v==="rows"?p.rows:v==="cols"?p.cols:[];return{kind:"container",axis:v,spacing:p.spacing==null?null:O(p.spacing),labelPosition:p.labelPosition==null?null:y(p.labelPosition),labelWidth:p.labelWidth,blocks:b.filter(k).map((m,V)=>a(m,`${r}/${V}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.panel!=null){const p=k(t.panel)?t.panel:{},v=k(t.panel)&&g(t.panel)?t.panel:t,b=g(v),m=b==="items"?v.items:b==="rows"?v.rows:b==="cols"?v.cols:[],V=Array.isArray(p.actions)?p.actions.filter(k).map(l=>({icon:l.icon,ariaLabel:l.ariaLabel!=null&&l.ariaLabel!==""?String(l.ariaLabel):null,onClick:typeof l.onClick=="function"?l.onClick:null})):[];return{kind:"panel",title:p.title!=null&&p.title!==""?String(p.title):null,subtitle:p.subtitle!=null&&p.subtitle!==""?String(p.subtitle):null,actions:V,collapsible:p.collapsible===!0,axis:b,spacing:v.spacing==null?null:O(v.spacing),labelPosition:v.labelPosition==null?null:y(v.labelPosition),labelWidth:v.labelWidth,blocks:m.filter(k).map((l,f)=>a(l,`${r}/${f}`)).filter(Boolean),css:v.css,hidden:v.hidden===!0}}const n=g(t);if(n){const p=n==="items"?t.items:n==="rows"?t.rows:t.cols;return{kind:"container",axis:n,spacing:t.spacing==null?null:O(t.spacing),labelPosition:t.labelPosition==null?null:y(t.labelPosition),labelWidth:t.labelWidth,blocks:p.filter(k).map((v,b)=>a(v,`${r}/${b}`)).filter(Boolean),css:t.css,hidden:t.hidden===!0}}return t.spacer===!0||t.type==="spacer"?{kind:"spacer",css:t.css,hidden:t.hidden===!0}:t.separator===!0||t.type==="separator"?{kind:"separator",label:t.label!=null&&t.label!==""?String(t.label):null,css:t.css,hidden:t.hidden===!0}:o(t,r)}function d(t={}){const r=k(t)?t:{},n=Array.isArray(r.steps)?r.steps.filter(k).map((l,f)=>h(l,f)).filter(Boolean):[],p=n.length>0,v=!p&&Array.isArray(r.rows)&&r.rows.length,b=!p&&!v&&Array.isArray(r.cols)&&r.cols.length,m=v||p?"rows":"cols",V=p?[]:v?r.rows:b?r.cols:[];return{axis:m,density:C(r.density),css:r.css,messages:r.messages,colsBreakpoint:E(r.colsBreakpoint),spacing:r.spacing==null?null:O(r.spacing),labelGap:r.labelGap==null?null:O(r.labelGap),labelPosition:r.labelPosition==null?null:y(r.labelPosition),labelWidth:r.labelWidth,requiredHint:r.requiredHint,blocks:V.filter(k).map((l,f)=>a(l,String(f))).filter(Boolean),steps:n,stepOrientation:r.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:r.validateSteps!==!1}}function h(t,r){const p=(Array.isArray(t.rows)?t.rows:[]).filter(k).map((v,b)=>a(v,`step${r}/${b}`)).filter(Boolean);return p.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${r}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:p,css:t.css}}}),Te("packages/modules/form/ids.js",function($,J){"use strict";Object.defineProperty($,"nextId",{enumerable:!0,get:function(){return R}});let e=0;function R(k){return e+=1,`${k}-${e}`}}),Te("packages/modules/form/state.js",function($,J){"use strict";Object.defineProperty($,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"guardBooleanInput",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"syncRootAria",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"syncRecordState",{enumerable:!0,get:function(){return re}});function e(_,P,O){_.disabled=P===!0,_.__latReadOnly=O===!0,O===!0?_.setAttribute("aria-readonly","true"):_.removeAttribute("aria-readonly")}function R(_){const P=()=>_.__latReadOnly===!0,O=g=>{P()&&g.preventDefault()},y=g=>{P()&&(g.preventDefault(),g.stopPropagation())},C=g=>{P()&&(g.key===" "||g.key==="Enter")&&g.preventDefault()},E=g=>{P()&&g.key===" "&&g.preventDefault()};_.addEventListener("pointerdown",O),_.addEventListener("click",y),_.addEventListener("keydown",C),_.addEventListener("keyup",E)}function k(_,P,O){P?_.setAttribute("aria-disabled","true"):_.removeAttribute("aria-disabled"),O?_.setAttribute("aria-readonly","true"):_.removeAttribute("aria-readonly")}function re(_){const P=_.item,O=P.disabled===!0,y=P.readOnly===!0||_.ruleReadOnly===!0;_.controlWrap&&(_.controlWrap.setAttribute("data-disabled",O?"true":"false"),_.controlWrap.setAttribute("data-readonly",y?"true":"false")),_.def.state(_.control,{...P,readOnly:y}),typeof _.syncLock=="function"&&_.syncLock(),typeof _.syncAddons=="function"&&_.syncAddons()}}),Te("packages/modules/form/group-rules.js",function($,J){"use strict";Object.defineProperty($,"attachRuleResolver",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"detachRuleResolver",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"ruleResolverFor",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"makeRuleResolver",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"reapplyMembers",{enumerable:!0,get:function(){return P}});const e=new WeakMap;function R(O,y){e.set(O,y)}function k(O){e.delete(O)}function re(O){return e.get(O)}function _(O){const{owners:y,byId:C,warnOnce:E}=O;return function(o,a){if(o==null||typeof o!="object")return;const d=o.name;if(o.form!=null){const t=C.get(o.form);if(!t){E(`form.group.unknown-member:${String(o.form)}`,`form group: a rule pins the member "${o.form}", but no member has that id; the rule reads an empty value.`);return}return d!=null?t.form.getValue()[d]:void 0}if(d==null)return;if(Object.prototype.hasOwnProperty.call(a,d))return a[d];const h=y.get(String(d));if(h)return h.form.getValue()[d]}}function P(O){for(const y of O)y.form&&typeof y.form.__reapplyRules=="function"&&y.form.__reapplyRules()}}),Te("packages/modules/form/rules.js",function($,J){"use strict";Object.defineProperty($,"evalRule",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"applyRules",{enumerable:!0,get:function(){return y}});const R=J("packages/modules/form/model.js").isEmpty,re=J("packages/modules/form/state.js").syncRecordState,P=J("packages/modules/form/group-rules.js").ruleResolverFor;function O(E,g,o){if(E==null)return null;if(typeof E=="function")return!!E(g);if(typeof E=="boolean")return E;if(typeof E=="object"){const a=o?o(E,g):E.name!=null?g[E.name]:void 0;if(typeof E.fn=="function")return!!E.fn(a,g);let d=!0,h=!1;return Object.prototype.hasOwnProperty.call(E,"equals")&&(h=!0,d=d&&a===E.equals),Object.prototype.hasOwnProperty.call(E,"in")&&(h=!0,d=d&&Array.isArray(E.in)&&E.in.includes(a)),Object.prototype.hasOwnProperty.call(E,"empty")&&(h=!0,d=d&&R(a)===!!E.empty),h?d:!1}return!1}function y(E){const g={};for(const a of E.order)a.item.name!=null&&(g[a.item.name]=a.value);const o=E.form?P(E.form):void 0;for(const a of E.order){const d=a.item;a.ruleHidden=O(d.visibleWhen,g,o)===!1,a.ruleReadOnly=O(d.readOnlyWhen,g,o)===!0,a.ruleRequired=O(d.requiredWhen,g,o)===!0,a.el.hidden=a.hidden||a.ruleHidden,re(a);const h=d.required===!0||a.ruleRequired,t=a.labelEl!=null&&a.labelPosition!=="hidden",r=a.placeholderEl||a.control;h?r.setAttribute("aria-required","true"):r.removeAttribute("aria-required"),h&&t?a.el.setAttribute("data-required","true"):a.el.removeAttribute("data-required"),C(a,h,t,n=>E.t(n))}}function C(E,g,o,a){const d=E.placeholderEl;if(!d)return;const h=E.placeholderBase;if(g&&!o&&h!==""){const t=E.requiredHint,r=t===!1?"":typeof t=="string"?a(t):" *";d.placeholder=h+r}else d.placeholder=h}}),Te("packages/modules/form/enter-submit.js",function($,J){"use strict";Object.defineProperty($,"attachEnterSubmit",{enumerable:!0,get:function(){return O}});function e(y){const C=y.control;if(!C)return null;const E=y.item&&y.item.type;return E==="input"?C.__latPassword?C.__latPassword.input:C:E==="number"?C.__latNumber?C.__latNumber.input:C:(E==="datepicker"||E==="daterange")&&C.__input||null}function R(y,C){for(const E of y.order){const g=E.control;if(g&&(g===C||typeof g.contains=="function"&&g.contains(C)))return E}return null}function k(y,C){const E=y.item&&y.item.type;if(E==="otp"){const o=y.control&&y.control.__latOtp;return!o||!Array.isArray(o.boxes)||o.boxes.length===0?!1:C===o.boxes[o.boxes.length-1]}if(E==="combo"||E==="select")return!1;const g=e(y);if(!g||C!==g)return!1;if(E==="input"||E==="number")return!0;if(E==="datepicker"||E==="daterange"){const o=y.control&&y.control.__popup;return!o||o.hidden!==!1}return!1}function re(y){for(const C of y.order){if(C.hidden)continue;const E=C.item&&C.item.type;if(E==="button"){const g=C.control&&C.control.__latButton;if(g&&g.buttonType==="submit")return C.control}else if(E==="buttons"){const g=C.control&&C.control.children;if(!g)continue;for(const o of g){const a=o&&o.__latButton;if(a&&a.buttonType==="submit")return o}}}return null}function _(y,C){const E=C&&C.defaultView,g=E&&(E.MouseEvent||E.Event),o=g?new g("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};y.dispatchEvent(o)}function P(y,C,E){const g=y.doc,o=g&&g.defaultView,a=e(C)||E;if(!a||typeof a.dispatchEvent!="function")return!1;const d=o&&(o.FocusEvent||o.Event);d&&a.dispatchEvent(new d("blur",{bubbles:!1}));const h=C.def,t=h&&typeof h.read=="function"?h.read(C.control,C.item):void 0;if(t===void 0||t===C.value)return!1;const r=o&&o.Event;return r?a.dispatchEvent(new r("change",{bubbles:!0})):a.dispatchEvent({type:"change",bubbles:!0,target:a}),!0}function O(y){const C=E=>{if(E.key!=="Enter"||E.altKey||E.ctrlKey||E.metaKey||E.shiftKey||E.isComposing)return;const g=E.target;if(!g)return;const o=R(y,g);if(!o||!k(o,g))return;const a=re(y);if(!a)return;E.preventDefault(),P(y,o,g)?Promise.resolve().then(()=>_(a,y.doc)):_(a,y.doc)};y.el.addEventListener("keydown",C),y.disposers.push(()=>y.el.removeEventListener("keydown",C))}}),Te("packages/modules/form/stepper.js",function($,J){"use strict";Object.defineProperty($,"createStepper",{enumerable:!0,get:function(){return re}});const R=J("packages/modules/form/styles.js").NS;function k(_,P,O){return Math.min(O,Math.max(P,_))}function re(_,P){const O=P.doc,y=P.steps||[],C=P.t||(b=>b),E=P.orientation==="vertical"?"vertical":"horizontal";let g=k(Number(P.active)||0,0,Math.max(0,y.length-1));const o=[];_.className=`${R}__stepper ${R}__stepper--${E}`,_.setAttribute("data-orientation",E),_.setAttribute("role","navigation"),_.setAttribute("aria-label",C("form.steps"));const a=O.createElement("ol");a.className=`${R}__stepper-list`,a.setAttribute("role","tablist"),a.setAttribute("aria-orientation",E),_.appendChild(a);let d=[];const h=b=>o[b]?o[b]:b<g?"complete":b===g?"active":"pending",t=b=>b<=g+1,r=()=>{a.textContent="",d=y.map((b,m)=>{const V=h(m),l=O.createElement("li");l.className=`${R}__stepper-item is-${V}`+(m===g?" is-active":"")+(t(m)?"":" is-locked");const f=O.createElement("button");f.type="button",f.className=`${R}__stepper-step`,f.setAttribute("role","tab"),f.setAttribute("aria-selected",m===g?"true":"false"),m===g&&f.setAttribute("aria-current","step"),f.tabIndex=m===g?0:-1,f.setAttribute("aria-disabled",t(m)?"false":"true");const c=O.createElement("span");c.className=`${R}__stepper-marker`,c.setAttribute("aria-hidden","true"),c.textContent=V==="complete"?"✓":V==="error"?"!":String(m+1),f.appendChild(c);const s=O.createElement("span");return s.className=`${R}__stepper-label`,s.textContent=b.label!=null&&b.label!==""?b.label:`${C("form.step")} ${m+1}`,f.appendChild(s),l.appendChild(f),a.appendChild(l),f})},n=b=>{typeof P.onGoTo=="function"&&t(b)&&P.onGoTo(b)},p=b=>{const m=b.target&&b.target.closest?b.target.closest(`.${R}__stepper-step`):null;if(!m||!a.contains(m))return;const V=d.indexOf(m);V>=0&&n(V)},v=b=>{const m=b.target&&b.target.closest?b.target.closest(`.${R}__stepper-step`):null;if(!m||!a.contains(m))return;const V=y.length;let l=d.indexOf(m);if(l<0)return;if(b.key==="ArrowRight"||b.key==="ArrowDown")l=(l+1)%V;else if(b.key==="ArrowLeft"||b.key==="ArrowUp")l=(l-1+V)%V;else if(b.key==="Home")l=0;else if(b.key==="End")l=V-1;else if(b.key==="Enter"||b.key===" "){b.preventDefault(),n(l);return}else return;b.preventDefault();const f=d[l];f&&f.focus()};return a.addEventListener("click",p),a.addEventListener("keydown",v),r(),{el:_,setActive(b){g=k(Number(b)||0,0,Math.max(0,y.length-1)),r()},setStatus(b,m){o[b]=m,r()},statusOf:h}}}),Te("packages/core/src/internal/icon-builtins.js",function($,J){"use strict";Object.defineProperty($,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"normaliseIcon",{enumerable:!0,get:function(){return R}});const e={chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},dash:{viewBox:"0 0 16 16",paths:["M4 8h8"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},minus:{viewBox:"0 0 16 16",paths:["M3.5 8h9"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},calendar:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3z","M3 5.5h10","M5.5 1.5v2","M10.5 1.5v2"],paint:"stroke"},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},filter:{viewBox:"0 0 16 16",paths:["M2 3h12l-4.5 5.2V13L6.5 11.5V8.2Z"]},pause:{viewBox:"0 0 16 16",paths:["M4.5 3h2.5v10H4.5zM9 3h2.5v10H9z"]},play:{viewBox:"0 0 16 16",paths:["M4.5 3l8 5-8 5z"]},chart:{viewBox:"0 0 16 16",paths:["M2.5 13.5h11","M4.5 13.5v-4","M8 13.5v-8","M11.5 13.5v-6"],paint:"stroke"},palette:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 0 0 0 13c.7 0 1.2-.5 1.2-1.1 0-.3-.1-.6-.3-.8a1.1 1.1 0 0 1 .8-1.9h1.4A3.4 3.4 0 0 0 14.5 7c0-3-2.9-5.5-6.5-5.5Z","M4.6 7.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM6.7 4.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM9.9 4.7a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM11.9 6.9a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"]},undo:{viewBox:"0 0 16 16",paths:["M3 8h6.5a3.25 3.25 0 0 1 0 6.5H6M3 8l3-3M3 8l3 3"],paint:"stroke"},redo:{viewBox:"0 0 16 16",paths:["M13 8H6.5a3.25 3.25 0 0 0 0 6.5H10M13 8l-3-3M13 8l-3 3"],paint:"stroke"},columns:{viewBox:"0 0 16 16",paths:["M2.5 2.5h11v11h-11zM6.5 2.5v11M10 2.5v11"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},restore:{viewBox:"0 0 16 16",paths:["M3 8a5 5 0 1 0 1.6-3.7M3 3v2.8h2.8"],paint:"stroke"},spreadsheet:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3zM3 6h10M3 9.5h10M6.5 6v7.5"],paint:"stroke"},print:{viewBox:"0 0 16 16",paths:["M4.5 6V2.5h7V6M4.5 11.5h-2V6h11v5.5h-2M4.5 9.5h7v4h-7z"],paint:"stroke"},maximise:{viewBox:"0 0 16 16",paths:["M2.5 6V2.5H6M10 2.5h3.5V6M13.5 10v3.5H10M6 13.5H2.5V10"],paint:"stroke"},minimise:{viewBox:"0 0 16 16",paths:["M6 2.5V6H2.5M13.5 6H10V2.5M10 13.5V10h3.5M2.5 10H6v3.5"],paint:"stroke"},views:{viewBox:"0 0 16 16",paths:["M4 2.5h8v11L8 11l-4 2.5z"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},share:{viewBox:"0 0 16 16",paths:["M11.5 5.5a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M4.5 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M11.5 14.1a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M6.1 7.1l3.8-1.9M6.1 8.9l3.8 1.9"],paint:"stroke"},pin:{viewBox:"0 0 16 16",paths:["M8 2v6M5 8h6l1 2.5H4zM8 10.5V14"],paint:"stroke"},sortAsc:{viewBox:"0 0 16 16",paths:["M8 3.5 12 8H4Z"]},sortDesc:{viewBox:"0 0 16 16",paths:["M8 12.5 4 8h8Z"]},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"},drag:{viewBox:"0 0 16 16",paths:["M6 3.5h1.5V5H6Zm3 0h1.5V5H9ZM6 7.25h1.5v1.5H6Zm3 0h1.5v1.5H9ZM6 11h1.5v1.5H6Zm3 0h1.5v1.5H9Z"]},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},circleFilled:{viewBox:"0 0 16 16",paths:["M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]},square:{viewBox:"0 0 16 16",paths:["M3 3h10v10H3Z"]},bolt:{viewBox:"0 0 16 16",paths:["M9.5 1.5 3.5 9h3.2l-.7 5.5L12.5 7H9.3Z"]},flag:{viewBox:"0 0 16 16",paths:["M4 1.5h1.5v13H4Zm1.5 1h7.5l-1.6 2.6L13 7.7H5.5Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},highlight:{viewBox:"0 0 16 16",paths:["M4 11 10 5l2 2-6 6H4z","M3 14.5h10"],paint:"stroke"},eraser:{viewBox:"0 0 16 16",paths:["M3 11 9 5 13 9 7 15Z","M5 13 9 9"],paint:"stroke"},thumbUp:{viewBox:"0 0 16 16",paths:["M5.5 6.8 8.6 1.5a1.6 1.6 0 0 1 1.5 2.1L9.4 6h3.4a1.4 1.4 0 0 1 1.35 1.78l-1.3 4.6A1.9 1.9 0 0 1 11 13.8H5.5ZM4 6.5H1.5v7.3H4Z"]},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},copy:{viewBox:"0 0 16 16",paths:["M5.5 2.5h8v8M2.5 5.5h8v8h-8Z"],paint:"stroke"},present:{viewBox:"0 0 16 16",paths:["M2 2.5h12v8H2Z","M8 10.5v3","M6 13.5h4"],paint:"stroke"},cabinet:{viewBox:"0 0 16 16",paths:["M3 2h10v12H3ZM5 4v4h2.5V4ZM8.5 4v4H11V4ZM5 9.5V11h6V9.5Z"]},splice:{viewBox:"0 0 16 16",paths:["M8 4.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM8 6.8a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4ZM1.5 7.2h3v1.6h-3ZM11.5 7.2h3v1.6h-3Z"]},exchange:{viewBox:"0 0 16 16",paths:["M8 1.5 14.5 6v1H1.5V6ZM3 8h2v5H3ZM7 8h2v5H7ZM11 8h2v5h-2ZM1.5 13.5h13V15h-13Z"]},pole:{viewBox:"0 0 16 16",paths:["M7.2 1.5h1.6V15H7.2ZM3 3.5h10V5H3ZM4.5 7h7v1.4h-7Z"]},chamber:{viewBox:"0 0 16 16",paths:["M2.5 3.5h11v9h-11ZM4.5 5.5v5h7v-5ZM6 7h4v1.5H6Z"]},premises:{viewBox:"0 0 16 16",paths:["M8 1.8 14.5 7.5h-2V14h-9V7.5h-2ZM6.8 10.4V14h2.4v-3.6Z"]},fault:{viewBox:"0 0 16 16",paths:["M5.2 1.5h5.6L14.5 5.2v5.6L10.8 14.5H5.2L1.5 10.8V5.2ZM5.4 9.4 6.6 10.6 8 9.2 9.4 10.6 10.6 9.4 9.2 8 10.6 6.6 9.4 5.4 8 6.8 6.6 5.4 5.4 6.6 6.8 8Z"]},user:{viewBox:"0 0 16 16",paths:["M8 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z","M8 9c3 0 5.5 1.5 5.5 3.5V14h-11v-1.5C2.5 10.5 5 9 8 9Z"]},blank:{viewBox:"0 0 16 16",paths:[""]}};function R(k){return typeof k=="string"?{viewBox:"0 0 16 16",paths:[k],paint:"fill"}:Array.isArray(k)?{viewBox:"0 0 16 16",paths:k.slice(),paint:"fill"}:{viewBox:k&&k.viewBox||"0 0 16 16",paths:k&&Array.isArray(k.paths)?k.paths.slice():k&&k.path?[k.path]:[],paint:k&&k.paint==="stroke"?"stroke":"fill"}}}),Te("packages/modules/form/controls/field-icon.js",function($,J){"use strict";Object.defineProperty($,"fieldIconStylesheet",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"injectFieldIconStyles",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"makeFieldIcon",{enumerable:!0,get:function(){return O}});const R=J("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,k="http://www.w3.org/2000/svg",re="data-lattice-form-field-icon-styles";function _(){return`
1144
1164
  .lat-form__field-icon{
1145
1165
  display:block; flex:0 0 auto;
1146
1166
  width:calc(var(--lattice-control-size) * var(--lattice-scale));
1147
1167
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1148
1168
  }
1149
- `.trim()}function T(w){const k=w&&w.documentElement;if(!k||k.getAttribute(te))return;k.setAttribute(te,"1");const E=w.createElement("style");E.textContent=_(),(w.head||w.body||k).appendChild(E)}function O(w,k){const E=I[k];if(!E)return null;const g=w.createElementNS(x,"svg");g.setAttribute("class","lat-form__field-icon"),g.setAttribute("viewBox",E.viewBox||"0 0 16 16"),g.setAttribute("aria-hidden","true"),g.setAttribute("focusable","false");const o=E.paint==="stroke";for(const a of E.paths||[]){const d=w.createElementNS(x,"path");d.setAttribute("d",a),o?(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round")):d.setAttribute("fill","currentColor"),g.appendChild(d)}return g}}),Te("packages/modules/form/messages.js",function($,X){"use strict";Object.defineProperty($,"FALLBACK_EN",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"t",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"createTranslator",{enumerable:!0,get:function(){return T}});const e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.combo.toggle":"Show options","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.noMatches":"No matches","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.datepicker.invalid":"Enter a valid date.","form.daterange.open":"Open date range picker","form.daterange.prev":"Previous month","form.daterange.next":"Next month","form.daterange.apply":"Apply","form.daterange.cancel":"Cancel","form.daterange.clear":"Clear","form.daterange.presets":"Presets","form.daterange.today":"Today","form.daterange.yesterday":"Yesterday","form.daterange.last7":"Last 7 days","form.daterange.last30":"Last 30 days","form.daterange.thisMonth":"This month","form.daterange.lastMonth":"Last month","form.daterange.monthThisMonth":"This month","form.daterange.monthLastMonth":"Last month","form.daterange.monthLast3":"Last 3 months","form.daterange.monthLast6":"Last 6 months","form.daterange.monthLast12":"Last 12 months","form.daterange.monthThisYear":"This year","form.daterange.monthLastYear":"Last year","form.daterange.invalid":"Enter a start and end date.","form.daterange.bounds":"Date is outside the allowed range.","form.daterange.minSpan":"Select a range of at least {min} {unit}.","form.daterange.maxSpan":"Select a range of at most {max} {unit}.","form.daterange.days":"days","form.daterange.months":"months","form.tooltip.help":"Help","form.readonly":"Read-only","form.panel.collapse":"Collapse section","form.panel.expand":"Expand section","form.file.add":"Add files","form.file.dropText":"Drag files here or","form.file.browse":"browse","form.file.dropToUpload":"Drop to upload","form.file.addMore":"Add more or drop here","form.file.typeNotAccepted":"This file type is not accepted","form.file.hint.size":"up to {size} each","form.file.hint.file":"max {max} file","form.file.hint.files":"max {max} files","form.file.addedOne":"1 file added","form.file.added":"{count} files added","form.file.uploaded":"{name} uploaded","form.file.failed":"{name} failed","form.file.remove":"Remove","form.file.retry":"Retry","form.file.rejected.size":"File is larger than {size}","form.file.rejected.type":"File type not allowed","form.file.rejected.count":"Too many files (max {max})","form.file.uploadFailed":"Upload failed","form.richtext.bold":"Bold (Ctrl+B)","form.richtext.italic":"Italic (Ctrl+I)","form.richtext.underline":"Underline (Ctrl+U)","form.richtext.strike":"Strikethrough","form.richtext.color":"Text colour","form.richtext.heading":"Paragraph style","form.richtext.alignLeft":"Align left","form.richtext.alignCenter":"Align centre","form.richtext.alignRight":"Align right","form.richtext.ul":"Bulleted list","form.richtext.ol":"Numbered list","form.richtext.outdent":"Decrease indent","form.richtext.indent":"Increase indent","form.richtext.link":"Link (Ctrl+K)","form.richtext.image":"Insert image","form.richtext.clear":"Clear formatting","form.richtext.source":"HTML source","form.richtext.undo":"Undo (Ctrl+Z)","form.richtext.redo":"Redo (Ctrl+Y)","form.richtext.lowercase":"lower case","form.richtext.uppercase":"UPPER CASE","form.richtext.lowercaseText":"ab","form.richtext.uppercaseText":"AB","form.richtext.placeholder":"Start writing…","form.richtext.formatting":"Formatting","form.richtext.richText":"Rich text","form.richtext.linkLabel":"Link address","form.richtext.linkPlaceholder":"https://","form.richtext.linkAdd":"Add link","form.richtext.linkUpdate":"Update","form.richtext.linkRemove":"Remove","form.richtext.colorCustom":"Custom colour","form.richtext.colorRemove":"Remove colour","form.color.open":"Open colour picker","form.color.clear":"Clear colour","form.color.customColor":"Custom colour","form.color.select":"Select","form.color.hexLabel":"Hex","form.color.redLabel":"Red","form.color.greenLabel":"Green","form.color.blueLabel":"Blue","form.color.saturationLightness":"Saturation and lightness","form.color.hue":"Hue","form.color.invalidHex":"Enter a colour such as #1a2b3c"}),I=Object.freeze({...e});function x(O,w={}){const k=e[O];return k===void 0?O:k.replace(/\{(\w+)\}/g,(E,g)=>w[g]===void 0?E:String(w[g]))}const te={t(O,w={}){return x(O,w)}};function _(O,w={}){return te.t(O,w)}function T(O){return{t(w,k={}){const E=O&&typeof O.t=="function"?O.t(w,k):w;return E===w?x(w,k):E}}}}),Te("packages/dom/src/editors/sanitize-richtext.js",function($,X){"use strict";Object.defineProperty($,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"escapeHtml",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"sanitizeRichText",{enumerable:!0,get:function(){return E}});const e={p:["style","class"],br:[],h1:["style"],h2:["style"],h3:["style"],h4:["style"],blockquote:["style"],pre:[],code:[],b:[],strong:[],i:[],em:[],u:[],s:[],strike:[],sub:[],sup:[],span:["style","class"],font:["color"],ins:["class"],del:["class"],ul:[],ol:["start"],li:["style","class"],a:["href","target","rel","title"],img:["src","alt","width","height","style"],hr:[],div:["style"],table:[],thead:[],tbody:[],tr:[],th:["style"],td:["style"]},I={color:/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"background-color":/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"text-align":/^(left|center|right|justify)$/,"max-width":/^\d+(px|%)$/,width:/^\d+(px|%)$/,height:/^\d+(px|%)$/,"text-decoration":/^(underline|line-through)$/,"font-weight":/^(bold|\d{3})$/,"font-style":/^italic$/},x=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),te=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],_=/^(data:image\/|https?:\/\/|\/)/i,T={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function O(g){const o=g==null?"":String(g);return/[&<>"']/.test(o)?o.replace(/[&<>"']/g,a=>T[a]):o}function w(g,o){const a=String(g).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return a.startsWith("javascript:")||a.startsWith("vbscript:")?!0:a.startsWith("data:")?!(o&&a.startsWith("data:image/")):!1}function k(g){if(g.__latRtCanParse!==void 0)return g.__latRtCanParse;try{const o=g.createElement("template");o.innerHTML="<p>x</p>";const a=!!(o.content&&o.content.childNodes&&o.content.childNodes.length);return g.__latRtCanParse=a,a}catch{return g.__latRtCanParse=!1,!1}}function E(g,o,a=e,d={}){const h=a||e,t=String(o??"");if(!k(g))return O(t.replace(/<[^>]*>/g,""));const r=d.imageSrcPattern||_,n=g.createElement("template");n.innerHTML=t;const p=y=>{[...y.childNodes].forEach(b=>{if(b.nodeType===8){b.remove();return}if(b.nodeType!==1)return;const m=b.tagName.toLowerCase();if(x.has(m)){b.remove();return}if(p(b),!h[m]){const V=te.includes(m)?g.createElement("p"):null;if(V){for(;b.firstChild;)V.appendChild(b.firstChild);b.replaceWith(V)}else{for(;b.firstChild;)b.parentNode.insertBefore(b.firstChild,b);b.remove()}return}if([...b.attributes].forEach(V=>{const l=V.name.toLowerCase();if(/^on/i.test(l)||l==="srcdoc"||l==="id"||l==="name"){b.removeAttribute(V.name);return}if(!h[m].includes(l)){b.removeAttribute(V.name);return}if(l==="href"){const f=V.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(f)||w(f))&&b.removeAttribute("href")}else if(l==="src"){const f=V.value.trim();(!r.test(f)||w(f,!0))&&b.removeAttribute("src")}else if(l==="style"){if(d.stripStyles&&m!=="img"){b.removeAttribute("style");return}const f=V.value.split(";").map(c=>c.trim()).filter(Boolean).map(c=>{const s=c.indexOf(":");return[c.slice(0,s).trim().toLowerCase(),c.slice(s+1).trim()]}).filter(([c,s])=>I[c]&&I[c].test(s)).map(([c,s])=>`${c}: ${s}`).join("; ");f?b.setAttribute("style",f):b.removeAttribute("style")}else if(l==="target"&&V.value!=="_blank")b.removeAttribute("target");else if(l==="class"){const f=V.value.split(/\s+/).filter(c=>/^lat-/.test(c)||/^dfc-/.test(c)).join(" ");f?b.setAttribute("class",f):b.removeAttribute("class")}}),m==="div"){const V=g.createElement("p");for([...b.attributes].forEach(l=>V.setAttribute(l.name,l.value));b.firstChild;)V.appendChild(b.firstChild);b.replaceWith(V)}if(m==="img"&&!b.getAttribute("src")&&b.remove(),m==="a")if(b.getAttribute("href"))b.getAttribute("target")==="_blank"&&b.setAttribute("rel","noopener noreferrer");else{for(;b.firstChild;)b.parentNode.insertBefore(b.firstChild,b);b.remove()}})};return p(n.content),n.innerHTML}}),Te("packages/dom/src/themeof.js",function($,X){"use strict";Object.defineProperty($,"themeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"carryTheme",{enumerable:!0,get:function(){return I}});function e(x){for(let te=x;te;te=te.parentNode){if(typeof te.getAttribute!="function")continue;const _=te.getAttribute("data-theme");if(_)return _}return null}function I(x,te){if(!x||typeof x.setAttribute!="function")return;const _=e(te);_?x.setAttribute("data-theme",_):typeof x.removeAttribute=="function"&&x.removeAttribute("data-theme")}}),Te("packages/modules/form/controls/popup-layer.js",function($,X){"use strict";Object.defineProperty($,"getLayerHost",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"placeAgainstField",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"openInLayer",{enumerable:!0,get:function(){return p}});const I=X("packages/dom/src/themeof.js").carryTheme,x="lat-form__layer-host",te=Object.freeze(["--lattice-density-scale","--lattice-presentation-scale","--lattice-scale","--lattice-space","--lattice-row-height","--lattice-font-size","--lattice-font-family","--lattice-line-height","--lattice-control-size","--lattice-border-color","--lattice-border-width","--lattice-background","--lattice-foreground","--lattice-foreground-muted","--lattice-accent","--lattice-accent-contrast","--lattice-switch-track-on","--lattice-switch-track-off","--lattice-switch-handle","--lattice-switch-label","--lattice-focus-ring","--lattice-danger","--lattice-success","--lattice-radius","--lattice-form-item-gap","--lattice-form-label-gap","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border","--lattice-popup-z"]),_="2147483647";function T(y){return typeof y.showPopover=="function"&&typeof y.hidePopover=="function"}function O(y){if(y.style.zIndex=`var(--lattice-popup-z, ${_})`,!!T(y)){y.setAttribute("popover","manual"),y.style.margin="0",y.style.inset="auto";try{y.showPopover()}catch{}}}function w(y){if(T(y)&&y.hasAttribute("popover")){try{y.hidePopover()}catch{}y.removeAttribute("popover")}y.style.zIndex="",y.style.margin="",y.style.inset=""}function k(y,b){const m=b.ownerDocument&&b.ownerDocument.defaultView;if(!m||typeof m.getComputedStyle!="function")return;const V=m.getComputedStyle(b);for(const l of te){const f=V.getPropertyValue(l);f&&y.style.setProperty(l,f)}}const E=new WeakMap,g=new WeakMap,o=new WeakMap;function a(y){for(let b=y;b;b=b.parentNode){if(typeof b.getAttribute!="function")continue;if((typeof b.tagName=="string"?b.tagName.toUpperCase():"")==="DIALOG"&&b.getAttribute("open")!==null)return b}return null}function d(y,b){const m=b?a(b):null;if(m){const s=g.get(m);if(s&&s.parentNode===m)return s;let i=null;for(const j of m.childNodes||[])if(j&&typeof j.className=="string"&&j.className.split(/\s+/).includes(x)){i=j;break}const u=i||y.createElement("div");return i||(u.className=x,m.appendChild(u)),g.set(m,u),u}const V=E.get(y);if(V&&V.isConnected!==!1)return V;const l=y.body||y.documentElement,f=l&&typeof l.querySelector=="function"?l.querySelector(`.${x}`):null,c=f||y.createElement("div");return f||(c.className=x,l.appendChild(c)),E.set(y,c),c}function h(y,b,m){return y.bottom<=0||y.top>=m||y.right<=0||y.left>=b}function t(y,b,m={}){const V=b.ownerDocument,l=V&&V.defaultView,f=l?l.innerWidth:0,c=l?l.innerHeight:0;y.style.position="fixed";const s=b.getBoundingClientRect();if(h(s,f,c))return!0;y.style.marginTop="0",y.style.marginBottom="0",y.style.marginLeft="0",y.style.marginRight="0",m.matchWidth===!1?y.style.minWidth=`${s.width}px`:y.style.width=`${s.width}px`;let i=s.left;const u=y.offsetWidth||s.width;f&&i+u>f&&(i=Math.max(0,f-u)),y.style.left=`${i}px`,y.style.right="auto";const j=y.offsetHeight||0;return c-s.bottom<j+4&&s.top>j+4?(y.style.top="auto",y.style.bottom=`${Math.max(0,c-s.top)}px`,m.aboveClass&&y.classList.add(m.aboveClass)):(y.style.bottom="auto",y.style.top=`${s.bottom}px`,m.aboveClass&&y.classList.remove(m.aboveClass)),!1}function r(y,b){let m=o.get(y);if(!m){const V=y.defaultView;m={entries:new Set,onTrack(){for(const l of[...m.entries])l.reposition()}},V&&(V.addEventListener("scroll",m.onTrack,!0),V.addEventListener("resize",m.onTrack)),o.set(y,m)}m.entries.add(b)}function n(y,b){const m=o.get(y);if(m&&(m.entries.delete(b),m.entries.size===0)){const V=y.defaultView;V&&(V.removeEventListener("scroll",m.onTrack,!0),V.removeEventListener("resize",m.onTrack)),o.delete(y)}}function p(y,b,m={}){const V=b.ownerDocument,l=d(V,b),f=y.parentNode,c=y.nextSibling;let s=!1;l.appendChild(y),I(y,b),k(y,b),k(l,b),O(y);const i={reposition(){if(s)return;t(y,b,m)&&typeof m.onOffscreen=="function"&&m.onOffscreen()},close(){s||(s=!0,n(V,i),w(y),f&&(c&&c.parentNode===f?f.insertBefore(y,c):f.appendChild(y)))}};return r(V,i),i.reposition(),i}}),Te("packages/modules/form/controls/combo.js",function($,X){"use strict";Object.defineProperty($,"adornmentStylesheet",{enumerable:!0,get:function(){return s}}),Object.defineProperty($,"injectAdornmentStyles",{enumerable:!0,get:function(){return i}}),Object.defineProperty($,"isImageUrl",{enumerable:!0,get:function(){return u}}),Object.defineProperty($,"initialsFor",{enumerable:!0,get:function(){return j}}),Object.defineProperty($,"stableHash",{enumerable:!0,get:function(){return H}}),Object.defineProperty($,"avatarColor",{enumerable:!0,get:function(){return M}}),Object.defineProperty($,"applyAvatarTint",{enumerable:!0,get:function(){return D}}),Object.defineProperty($,"makeIcon",{enumerable:!0,get:function(){return Q}}),Object.defineProperty($,"renderIcon",{enumerable:!0,get:function(){return Z}}),Object.defineProperty($,"renderAvatar",{enumerable:!0,get:function(){return ae}}),Object.defineProperty($,"renderDot",{enumerable:!0,get:function(){return v}}),Object.defineProperty($,"renderAdornment",{enumerable:!0,get:function(){return B}}),Object.defineProperty($,"renderTemplateContent",{enumerable:!0,get:function(){return W}}),Object.defineProperty($,"createCombo",{enumerable:!0,get:function(){return L}});const I=X("packages/modules/form/controls/registry.js").registerControl,te=X("packages/modules/form/messages.js").t,T=X("packages/modules/form/ids.js").nextId,w=X("packages/modules/form/styles.js").injectStyles,E=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,o=X("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,a=X("packages/modules/form/controls/field-icon.js"),d=a.makeFieldIcon,h=a.injectFieldIconStyles,r=X("packages/modules/form/controls/popup-layer.js").openInLayer,n=250,p="lat-combo__popup--above",y=20,b=48,m="data-lattice-combo-chip-row-styles";function V(){return`
1169
+ `.trim()}function P(y){const C=y&&y.documentElement;if(!C||C.getAttribute(re))return;C.setAttribute(re,"1");const E=y.createElement("style");E.textContent=_(),(y.head||y.body||C).appendChild(E)}function O(y,C){const E=R[C];if(!E)return null;const g=y.createElementNS(k,"svg");g.setAttribute("class","lat-form__field-icon"),g.setAttribute("viewBox",E.viewBox||"0 0 16 16"),g.setAttribute("aria-hidden","true"),g.setAttribute("focusable","false");const o=E.paint==="stroke";for(const a of E.paths||[]){const d=y.createElementNS(k,"path");d.setAttribute("d",a),o?(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round")):d.setAttribute("fill","currentColor"),g.appendChild(d)}return g}}),Te("packages/modules/form/messages.js",function($,J){"use strict";Object.defineProperty($,"FALLBACK_EN",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"t",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"createTranslator",{enumerable:!0,get:function(){return P}});const e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.select.clear":"Clear selection","form.combo.toggle":"Show options","form.combo.clear":"Clear selection","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.noMatches":"No matches","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.datepicker.invalid":"Enter a valid date.","form.daterange.open":"Open date range picker","form.daterange.prev":"Previous month","form.daterange.next":"Next month","form.daterange.apply":"Apply","form.daterange.cancel":"Cancel","form.daterange.clear":"Clear","form.daterange.presets":"Presets","form.daterange.today":"Today","form.daterange.yesterday":"Yesterday","form.daterange.last7":"Last 7 days","form.daterange.last30":"Last 30 days","form.daterange.thisMonth":"This month","form.daterange.lastMonth":"Last month","form.daterange.monthThisMonth":"This month","form.daterange.monthLastMonth":"Last month","form.daterange.monthLast3":"Last 3 months","form.daterange.monthLast6":"Last 6 months","form.daterange.monthLast12":"Last 12 months","form.daterange.monthThisYear":"This year","form.daterange.monthLastYear":"Last year","form.daterange.invalid":"Enter a start and end date.","form.daterange.bounds":"Date is outside the allowed range.","form.daterange.minSpan":"Select a range of at least {min} {unit}.","form.daterange.maxSpan":"Select a range of at most {max} {unit}.","form.daterange.days":"days","form.daterange.months":"months","form.tooltip.help":"Help","form.readonly":"Read-only","form.panel.collapse":"Collapse section","form.panel.expand":"Expand section","form.file.add":"Add files","form.file.dropText":"Drag files here or","form.file.browse":"browse","form.file.dropToUpload":"Drop to upload","form.file.addMore":"Add more or drop here","form.file.typeNotAccepted":"This file type is not accepted","form.file.hint.size":"up to {size} each","form.file.hint.file":"max {max} file","form.file.hint.files":"max {max} files","form.file.addedOne":"1 file added","form.file.added":"{count} files added","form.file.uploaded":"{name} uploaded","form.file.failed":"{name} failed","form.file.remove":"Remove","form.file.retry":"Retry","form.file.rejected.size":"File is larger than {size}","form.file.rejected.type":"File type not allowed","form.file.rejected.count":"Too many files (max {max})","form.file.uploadFailed":"Upload failed","form.richtext.bold":"Bold (Ctrl+B)","form.richtext.italic":"Italic (Ctrl+I)","form.richtext.underline":"Underline (Ctrl+U)","form.richtext.strike":"Strikethrough","form.richtext.color":"Text colour","form.richtext.heading":"Paragraph style","form.richtext.alignLeft":"Align left","form.richtext.alignCenter":"Align centre","form.richtext.alignRight":"Align right","form.richtext.ul":"Bulleted list","form.richtext.ol":"Numbered list","form.richtext.outdent":"Decrease indent","form.richtext.indent":"Increase indent","form.richtext.link":"Link (Ctrl+K)","form.richtext.image":"Insert image","form.richtext.clear":"Clear formatting","form.richtext.source":"HTML source","form.richtext.undo":"Undo (Ctrl+Z)","form.richtext.redo":"Redo (Ctrl+Y)","form.richtext.lowercase":"lower case","form.richtext.uppercase":"UPPER CASE","form.richtext.lowercaseText":"ab","form.richtext.uppercaseText":"AB","form.richtext.placeholder":"Start writing…","form.richtext.formatting":"Formatting","form.richtext.richText":"Rich text","form.richtext.linkLabel":"Link address","form.richtext.linkPlaceholder":"https://","form.richtext.linkAdd":"Add link","form.richtext.linkUpdate":"Update","form.richtext.linkRemove":"Remove","form.richtext.colorCustom":"Custom colour","form.richtext.colorRemove":"Remove colour","form.color.open":"Open colour picker","form.color.clear":"Clear colour","form.color.customColor":"Custom colour","form.color.select":"Select","form.color.hexLabel":"Hex","form.color.redLabel":"Red","form.color.greenLabel":"Green","form.color.blueLabel":"Blue","form.color.saturationLightness":"Saturation and lightness","form.color.hue":"Hue","form.color.invalidHex":"Enter a colour such as #1a2b3c"}),R=Object.freeze({...e});function k(O,y={}){const C=e[O];return C===void 0?O:C.replace(/\{(\w+)\}/g,(E,g)=>y[g]===void 0?E:String(y[g]))}const re={t(O,y={}){return k(O,y)}};function _(O,y={}){return re.t(O,y)}function P(O){return{t(y,C={}){const E=O&&typeof O.t=="function"?O.t(y,C):y;return E===y?k(y,C):E}}}}),Te("packages/dom/src/editors/sanitize-richtext.js",function($,J){"use strict";Object.defineProperty($,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"escapeHtml",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"sanitizeRichText",{enumerable:!0,get:function(){return E}});const e={p:["style","class"],br:[],h1:["style"],h2:["style"],h3:["style"],h4:["style"],blockquote:["style"],pre:[],code:[],b:[],strong:[],i:[],em:[],u:[],s:[],strike:[],sub:[],sup:[],span:["style","class"],font:["color"],ins:["class"],del:["class"],ul:[],ol:["start"],li:["style","class"],a:["href","target","rel","title"],img:["src","alt","width","height","style"],hr:[],div:["style"],table:[],thead:[],tbody:[],tr:[],th:["style"],td:["style"]},R={color:/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"background-color":/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"text-align":/^(left|center|right|justify)$/,"max-width":/^\d+(px|%)$/,width:/^\d+(px|%)$/,height:/^\d+(px|%)$/,"text-decoration":/^(underline|line-through)$/,"font-weight":/^(bold|\d{3})$/,"font-style":/^italic$/},k=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),re=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],_=/^(data:image\/|https?:\/\/|\/)/i,P={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function O(g){const o=g==null?"":String(g);return/[&<>"']/.test(o)?o.replace(/[&<>"']/g,a=>P[a]):o}function y(g,o){const a=String(g).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return a.startsWith("javascript:")||a.startsWith("vbscript:")?!0:a.startsWith("data:")?!(o&&a.startsWith("data:image/")):!1}function C(g){if(g.__latRtCanParse!==void 0)return g.__latRtCanParse;try{const o=g.createElement("template");o.innerHTML="<p>x</p>";const a=!!(o.content&&o.content.childNodes&&o.content.childNodes.length);return g.__latRtCanParse=a,a}catch{return g.__latRtCanParse=!1,!1}}function E(g,o,a=e,d={}){const h=a||e,t=String(o??"");if(!C(g))return O(t.replace(/<[^>]*>/g,""));const r=d.imageSrcPattern||_,n=g.createElement("template");n.innerHTML=t;const p=v=>{[...v.childNodes].forEach(b=>{if(b.nodeType===8){b.remove();return}if(b.nodeType!==1)return;const m=b.tagName.toLowerCase();if(k.has(m)){b.remove();return}if(p(b),!h[m]){const V=re.includes(m)?g.createElement("p"):null;if(V){for(;b.firstChild;)V.appendChild(b.firstChild);b.replaceWith(V)}else{for(;b.firstChild;)b.parentNode.insertBefore(b.firstChild,b);b.remove()}return}if([...b.attributes].forEach(V=>{const l=V.name.toLowerCase();if(/^on/i.test(l)||l==="srcdoc"||l==="id"||l==="name"){b.removeAttribute(V.name);return}if(!h[m].includes(l)){b.removeAttribute(V.name);return}if(l==="href"){const f=V.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(f)||y(f))&&b.removeAttribute("href")}else if(l==="src"){const f=V.value.trim();(!r.test(f)||y(f,!0))&&b.removeAttribute("src")}else if(l==="style"){if(d.stripStyles&&m!=="img"){b.removeAttribute("style");return}const f=V.value.split(";").map(c=>c.trim()).filter(Boolean).map(c=>{const s=c.indexOf(":");return[c.slice(0,s).trim().toLowerCase(),c.slice(s+1).trim()]}).filter(([c,s])=>R[c]&&R[c].test(s)).map(([c,s])=>`${c}: ${s}`).join("; ");f?b.setAttribute("style",f):b.removeAttribute("style")}else if(l==="target"&&V.value!=="_blank")b.removeAttribute("target");else if(l==="class"){const f=V.value.split(/\s+/).filter(c=>/^lat-/.test(c)||/^dfc-/.test(c)).join(" ");f?b.setAttribute("class",f):b.removeAttribute("class")}}),m==="div"){const V=g.createElement("p");for([...b.attributes].forEach(l=>V.setAttribute(l.name,l.value));b.firstChild;)V.appendChild(b.firstChild);b.replaceWith(V)}if(m==="img"&&!b.getAttribute("src")&&b.remove(),m==="a")if(b.getAttribute("href"))b.getAttribute("target")==="_blank"&&b.setAttribute("rel","noopener noreferrer");else{for(;b.firstChild;)b.parentNode.insertBefore(b.firstChild,b);b.remove()}})};return p(n.content),n.innerHTML}}),Te("packages/dom/src/themeof.js",function($,J){"use strict";Object.defineProperty($,"themeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"carryTheme",{enumerable:!0,get:function(){return R}});function e(k){for(let re=k;re;re=re.parentNode){if(typeof re.getAttribute!="function")continue;const _=re.getAttribute("data-theme");if(_)return _}return null}function R(k,re){if(!k||typeof k.setAttribute!="function")return;const _=e(re);_?k.setAttribute("data-theme",_):typeof k.removeAttribute=="function"&&k.removeAttribute("data-theme")}}),Te("packages/modules/form/controls/popup-layer.js",function($,J){"use strict";Object.defineProperty($,"getLayerHost",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"placeAgainstField",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"openInLayer",{enumerable:!0,get:function(){return p}});const R=J("packages/dom/src/themeof.js").carryTheme,k="lat-form__layer-host",re=Object.freeze(["--lattice-density-scale","--lattice-presentation-scale","--lattice-scale","--lattice-space","--lattice-row-height","--lattice-font-size","--lattice-font-family","--lattice-line-height","--lattice-control-size","--lattice-border-color","--lattice-border-width","--lattice-background","--lattice-foreground","--lattice-foreground-muted","--lattice-accent","--lattice-accent-contrast","--lattice-switch-track-on","--lattice-switch-track-off","--lattice-switch-handle","--lattice-switch-label","--lattice-focus-ring","--lattice-danger","--lattice-success","--lattice-radius","--lattice-form-item-gap","--lattice-form-label-gap","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border","--lattice-popup-z"]),_="2147483647";function P(v){return typeof v.showPopover=="function"&&typeof v.hidePopover=="function"}function O(v){if(v.style.zIndex=`var(--lattice-popup-z, ${_})`,!!P(v)){v.setAttribute("popover","manual"),v.style.margin="0",v.style.inset="auto";try{v.showPopover()}catch{}}}function y(v){if(P(v)&&v.hasAttribute("popover")){try{v.hidePopover()}catch{}v.removeAttribute("popover")}v.style.zIndex="",v.style.margin="",v.style.inset=""}function C(v,b){const m=b.ownerDocument&&b.ownerDocument.defaultView;if(!m||typeof m.getComputedStyle!="function")return;const V=m.getComputedStyle(b);for(const l of re){const f=V.getPropertyValue(l);f&&v.style.setProperty(l,f)}}const E=new WeakMap,g=new WeakMap,o=new WeakMap;function a(v){for(let b=v;b;b=b.parentNode){if(typeof b.getAttribute!="function")continue;if((typeof b.tagName=="string"?b.tagName.toUpperCase():"")==="DIALOG"&&b.getAttribute("open")!==null)return b}return null}function d(v,b){const m=b?a(b):null;if(m){const s=g.get(m);if(s&&s.parentNode===m)return s;let i=null;for(const j of m.childNodes||[])if(j&&typeof j.className=="string"&&j.className.split(/\s+/).includes(k)){i=j;break}const u=i||v.createElement("div");return i||(u.className=k,m.appendChild(u)),g.set(m,u),u}const V=E.get(v);if(V&&V.isConnected!==!1)return V;const l=v.body||v.documentElement,f=l&&typeof l.querySelector=="function"?l.querySelector(`.${k}`):null,c=f||v.createElement("div");return f||(c.className=k,l.appendChild(c)),E.set(v,c),c}function h(v,b,m){return v.bottom<=0||v.top>=m||v.right<=0||v.left>=b}function t(v,b,m={}){const V=b.ownerDocument,l=V&&V.defaultView,f=l?l.innerWidth:0,c=l?l.innerHeight:0;v.style.position="fixed";const s=b.getBoundingClientRect();if(h(s,f,c))return!0;v.style.marginTop="0",v.style.marginBottom="0",v.style.marginLeft="0",v.style.marginRight="0",m.matchWidth===!1?v.style.minWidth=`${s.width}px`:v.style.width=`${s.width}px`;let i=s.left;const u=v.offsetWidth||s.width;f&&i+u>f&&(i=Math.max(0,f-u)),v.style.left=`${i}px`,v.style.right="auto";const j=v.offsetHeight||0;return c-s.bottom<j+4&&s.top>j+4?(v.style.top="auto",v.style.bottom=`${Math.max(0,c-s.top)}px`,m.aboveClass&&v.classList.add(m.aboveClass)):(v.style.bottom="auto",v.style.top=`${s.bottom}px`,m.aboveClass&&v.classList.remove(m.aboveClass)),!1}function r(v,b){let m=o.get(v);if(!m){const V=v.defaultView;m={entries:new Set,onTrack(){for(const l of[...m.entries])l.reposition()}},V&&(V.addEventListener("scroll",m.onTrack,!0),V.addEventListener("resize",m.onTrack)),o.set(v,m)}m.entries.add(b)}function n(v,b){const m=o.get(v);if(m&&(m.entries.delete(b),m.entries.size===0)){const V=v.defaultView;V&&(V.removeEventListener("scroll",m.onTrack,!0),V.removeEventListener("resize",m.onTrack)),o.delete(v)}}function p(v,b,m={}){const V=b.ownerDocument,l=d(V,b),f=v.parentNode,c=v.nextSibling;let s=!1;l.appendChild(v),R(v,b),C(v,b),C(l,b),O(v);const i={reposition(){if(s)return;t(v,b,m)&&typeof m.onOffscreen=="function"&&m.onOffscreen()},close(){s||(s=!0,n(V,i),y(v),f&&(c&&c.parentNode===f?f.insertBefore(v,c):f.appendChild(v)))}};return r(V,i),i.reposition(),i}}),Te("packages/modules/form/controls/combo.js",function($,J){"use strict";Object.defineProperty($,"adornmentStylesheet",{enumerable:!0,get:function(){return s}}),Object.defineProperty($,"injectAdornmentStyles",{enumerable:!0,get:function(){return i}}),Object.defineProperty($,"isImageUrl",{enumerable:!0,get:function(){return u}}),Object.defineProperty($,"initialsFor",{enumerable:!0,get:function(){return j}}),Object.defineProperty($,"stableHash",{enumerable:!0,get:function(){return F}}),Object.defineProperty($,"avatarColor",{enumerable:!0,get:function(){return M}}),Object.defineProperty($,"applyAvatarTint",{enumerable:!0,get:function(){return D}}),Object.defineProperty($,"makeIcon",{enumerable:!0,get:function(){return Q}}),Object.defineProperty($,"renderIcon",{enumerable:!0,get:function(){return Z}}),Object.defineProperty($,"renderAvatar",{enumerable:!0,get:function(){return ae}}),Object.defineProperty($,"renderDot",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"renderAdornment",{enumerable:!0,get:function(){return B}}),Object.defineProperty($,"renderTemplateContent",{enumerable:!0,get:function(){return W}}),Object.defineProperty($,"createCombo",{enumerable:!0,get:function(){return L}});const R=J("packages/modules/form/controls/registry.js").registerControl,re=J("packages/modules/form/messages.js").t,P=J("packages/modules/form/ids.js").nextId,y=J("packages/modules/form/styles.js").injectStyles,E=J("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,o=J("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,a=J("packages/modules/form/controls/field-icon.js"),d=a.makeFieldIcon,h=a.injectFieldIconStyles,r=J("packages/modules/form/controls/popup-layer.js").openInLayer,n=250,p="lat-combo__popup--above",v=20,b=48,m="data-lattice-combo-chip-row-styles";function V(){return`
1150
1170
  .lat-combo__control{ position:relative; }
1151
1171
  .lat-combo__chip-row{
1152
1172
  display:flex;flex-wrap:wrap;align-items:flex-start;
@@ -1161,7 +1181,7 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1161
1181
  .lat-combo[data-chip-placement] .lat-combo__summary{
1162
1182
  flex:0 0 auto;margin-top:calc(var(--lattice-space)/4);
1163
1183
  }
1164
- `.trim()}function l(C){const U=C&&C.documentElement;if(!U||U.getAttribute(m))return;U.setAttribute(m,"1");const J=C.createElement("style");J.textContent=V(),(C.head||C.body||U).appendChild(J)}const f="data-lattice-form-adornment-styles",c="http://www.w3.org/2000/svg";function s(){return`
1184
+ `.trim()}function l(A){const H=A&&A.documentElement;if(!H||H.getAttribute(m))return;H.setAttribute(m,"1");const X=A.createElement("style");X.textContent=V(),(A.head||A.body||H).appendChild(X)}const f="data-lattice-form-adornment-styles",c="http://www.w3.org/2000/svg";function s(){return`
1165
1185
  .lat-combo__value{
1166
1186
  flex:0 0 auto; display:inline-flex; align-items:center; min-width:0;
1167
1187
  gap:calc(var(--lattice-space) / 2);
@@ -1200,17 +1220,17 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1200
1220
  .lat-select__value{ display:flex; align-items:center; gap:calc(var(--lattice-space) / 2); }
1201
1221
  .lat-select__value[data-placeholder='true']{ display:block; }
1202
1222
  .lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
1203
- `.trim()}function i(C){const U=C&&C.documentElement;if(!U||U.getAttribute(f))return;U.setAttribute(f,"1");const J=C.createElement("style");J.textContent=s(),(C.head||C.body||U).appendChild(J)}function u(C){return/^(https?:|data:image\/|\/)/i.test(C)}function j(C){const U=String(C??"").trim();if(!U)return"";const J=U.split(/\s+/);return J.length>=2?(J[0][0]+J[1][0]).toUpperCase():U.slice(0,2).toUpperCase()}function H(C){let U=5381;const J=String(C??"");for(let ie=0;ie<J.length;ie++)U=(U<<5)+U+J.charCodeAt(ie)>>>0;return U}function M(C){if(C&&C.color!=null&&String(C.color)!=="")return String(C.color);const U=C&&C.label!=null?String(C.label):C&&C.value!=null?String(C.value):"";return`hsl(${H(U)%360}, 62%, 45%)`}function D(C,U){C.style.background=M(U),C.style.color="#fff"}function Q(C,U){const J=E[U];if(!J)return null;const ie=C.createElementNS(c,"svg");ie.setAttribute("class","lat-combo__icon"),ie.setAttribute("viewBox",J.viewBox||"0 0 16 16"),ie.setAttribute("aria-hidden","true"),ie.setAttribute("focusable","false");const fe=J.paint==="stroke";for(const xe of J.paths||[]){const _e=C.createElementNS(c,"path");_e.setAttribute("d",xe),fe?(_e.setAttribute("fill","none"),_e.setAttribute("stroke","currentColor"),_e.setAttribute("stroke-width","1.5"),_e.setAttribute("stroke-linecap","round"),_e.setAttribute("stroke-linejoin","round")):_e.setAttribute("fill","currentColor"),ie.appendChild(_e)}return ie}function Z(C,U,J){if(U==null||U==="")return null;let ie;if(U.nodeType)ie=U.cloneNode(!0),ie.setAttribute&&ie.setAttribute("aria-hidden","true");else{const fe=String(U),xe=Q(C,fe);xe?ie=xe:(ie=C.createElement("span"),ie.className="lat-combo__icon lat-combo__icon--glyph",ie.setAttribute("aria-hidden","true"),ie.textContent=fe.slice(0,2))}return J!=null&&String(J)!==""&&ie&&ie.style&&(ie.style.color=String(J)),ie}function ae(C,U){const J=C.createElement("span");J.className="lat-combo__avatar",J.setAttribute("aria-hidden","true");const ie=String(U.avatar);if(u(ie)){const fe=C.createElement("img");return fe.className="lat-combo__avatar-img",fe.alt="",fe.src=ie,fe.addEventListener("error",()=>{for(;J.firstChild;)J.removeChild(J.firstChild);J.classList.add("lat-combo__avatar--initials"),J.textContent=j(U.label),D(J,U)}),J.appendChild(fe),J}return J.classList.add("lat-combo__avatar--initials"),J.textContent=ie.slice(0,2),D(J,U),J}const Y={r:255,g:255,b:255},q={r:20,g:24,b:28},Re=3;function ke(C){const U=C.split(/[,/\s]+/).filter(Boolean).map(Number);return U.length<3||U.some(J=>Number.isNaN(J))?null:{r:U[0],g:U[1],b:U[2]}}function me(C,U){const J=String(U).trim();if(!J)return null;if(C&&C.createElement)try{const fe=C.defaultView;if(fe&&fe.getComputedStyle){const xe=C.createElement("span");xe.style.color=J;const _e=/rgba?\(([^)]+)\)/.exec(fe.getComputedStyle(xe).color||"");if(_e)return ke(_e[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(J)){let fe=J.slice(1);return(fe.length===3||fe.length===4)&&(fe=fe.split("").map(xe=>xe+xe).join("")),{r:parseInt(fe.slice(0,2),16),g:parseInt(fe.slice(2,4),16),b:parseInt(fe.slice(4,6),16)}}const ie=/rgba?\(([^)]+)\)/.exec(J);return ie?ke(ie[1]):null}function S(C){const U=J=>{const ie=J/255;return ie<=.03928?ie/12.92:((ie+.055)/1.055)**2.4};return .2126*U(C.r)+.7152*U(C.g)+.0722*U(C.b)}function z(C,U){const J=S(C),ie=S(U),fe=Math.max(J,ie),xe=Math.min(J,ie);return(fe+.05)/(xe+.05)}function F(C,U){const J=me(C,U);return J?z(J,Y)<Re||z(J,q)<Re:!0}function v(C,U){const J=C.createElement("span");J.className="lat-combo__dot",J.setAttribute("aria-hidden","true");const ie=String(U.dot);return J.style.background=ie,F(C,ie)&&J.setAttribute("data-ring","true"),J}function B(C,U){const J=U&&U.dot;if(J!=null&&J!=="")return v(C,U);const ie=U&&U.icon;if(ie!=null&&ie!=="")return Z(C,ie,U.color);const fe=U&&U.avatar;return fe!=null&&fe!==""?ae(C,U):null}function W(C,U,J){if(typeof J!="function")return null;const ie=J(U);if(ie==null||ie===!1)return null;if(ie.nodeType)return ie.cloneNode(!0);const fe=C.createElement("span");fe.className="lat-combo__template";const xe=String(ie);return xe.includes("<")?fe.innerHTML=o(C,xe):fe.textContent=xe,fe}function ne(C){return C!=null&&typeof C=="object"?C.value:C}function re(C){return C==null?"":typeof C!="object"?String(C):C.label!=null?String(C.label):C.title!=null?String(C.title):C.value==null?"":String(C.value)}function ce(C){return C==null||typeof C!="object"?null:C.description!=null?String(C.description):C.subtitle!=null?String(C.subtitle):null}function N(C){return ce(C)!=null||C!=null&&typeof C=="object"&&(C.avatar!=null||C.icon!=null)}function K(C){const U=C!=null&&typeof C=="object"?C:{};return{value:ne(C),label:re(C),description:ce(C),avatar:U.avatar,icon:U.icon,color:U.color,dot:U.dot,disabled:U.disabled===!0}}function oe(C){if(Array.isArray(C))return{items:C,total:C.length,hasMore:!1};if(C&&typeof C=="object"){const U=Array.isArray(C.items)?C.items:[];return{items:U,total:typeof C.total=="number"?C.total:U.length,hasMore:C.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function R(C,U){return C===U?!0:C!=null&&U!=null&&String(C)===String(U)}function P(C,U,J={}){const ie=C&&C.defaultView;return ie&&ie.Event?new ie.Event(U,J):{type:U,bubbles:J.bubbles!==!1,cancelable:J.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function L(C,U={}){const J=U.doc||C&&C.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;J&&(w(J),i(J),h(J));const ie=typeof U.t=="function"?U.t:te,fe=U.multiple===!0,xe=fe&&["above","below"].includes(U.chipPlacement)?U.chipPlacement:"inside";J&&xe!=="inside"&&l(J);const _e=typeof U.debounce=="number"&&U.debounce>=0?U.debounce:n,Le=typeof U.pageSize=="number"&&U.pageSize>0?U.pageSize:y,Se=U.selectAll===!0,Pe=fe?Array.isArray(U.value)?U.value:U.value==null?[]:[U.value]:U.value==null?null:U.value,A=J.createElement("div");A.className="lat-combo",fe&&A.setAttribute("data-multiple","true"),xe!=="inside"&&A.setAttribute("data-chip-placement",xe),U.inForm||(A.setAttribute("data-lattice-standalone","true"),A.setAttribute("data-density",["compact","standard","comfortable"].includes(U.density)?U.density:"standard"));const ee=J.createElement("div");ee.className="lat-combo__control";const pe=J.createElement("div");pe.className="lat-combo__chips";const G=J.createElement("span");G.className="lat-combo__summary",G.hidden=!0;const de=J.createElement("div");de.className="lat-combo__chip-row",de.setAttribute("role","group"),de.hidden=!0;const ye=xe==="inside"?pe:de;typeof U.maxHeight=="number"&&(ye.style.maxHeight=`${U.maxHeight}px`);const be=J.createElement("span");be.className="lat-combo__value",be.setAttribute("aria-hidden","true"),be.hidden=!0;const we=J.createElement("input");we.className="lat-combo__input",we.type="text",we.setAttribute("role","combobox"),we.setAttribute("aria-autocomplete","list"),we.setAttribute("aria-haspopup","listbox"),fe&&we.setAttribute("aria-multiselectable","true"),U.placeholder!=null&&(we.placeholder=String(U.placeholder)),U.inForm&&U.ariaLabel!=null&&we.setAttribute("aria-label",String(U.ariaLabel));const Be=J.createElement("button");Be.type="button",Be.className="lat-combo__toggle",Be.setAttribute("aria-label",ie("form.combo.toggle")),Be.setAttribute("aria-haspopup","listbox");const ze=d(J,"chevronDown");ze&&Be.appendChild(ze);const Ce=J.createElement("div");Ce.className="lat-combo__popup lat-combo",Ce.hidden=!0;const Me=J.createElement("div");Me.className="lat-combo__list",Me.setAttribute("role","listbox");const ge=J.createElement("div");ge.className="lat-combo__spacer",Me.appendChild(ge);const De=J.createElement("div");De.className="lat-combo__status",De.setAttribute("role","status"),De.setAttribute("aria-live","polite");const le=J.createElement("div");le.className="lat-combo__option lat-combo__option--create",le.setAttribute("role","option"),le.hidden=!0,Me.insertBefore(le,ge);const Oe=J.createElement("div");Oe.className="lat-combo__empty",Oe.setAttribute("role","presentation"),Oe.setAttribute("aria-live","polite"),Oe.hidden=!0,Me.insertBefore(Oe,ge),Ce.appendChild(Me),Ce.appendChild(De),ee.appendChild(Ce),xe!=="inside"?(ee.appendChild(we),ee.appendChild(Be),de.appendChild(pe),de.appendChild(G),xe==="above"&&A.appendChild(de),A.appendChild(ee),xe==="below"&&A.appendChild(de)):(ee.appendChild(pe),ee.appendChild(G),ee.appendChild(be),ee.appendChild(we),ee.appendChild(Be),A.appendChild(ee));const je=T("lat-combo-lb");Me.id=je,we.setAttribute("aria-controls",je);let Ae=[],Ee=[];const Ge=new Map;let He=0,ot=0,lt=!1,rt=!1,Xe=!1,at="",tt=!1,Je=-1,ut=null,mt=0,qe=null;const kt=new Map;let pt=Array.isArray(U.options)?U.options:[];const st=[],nt=[];let it=0,Ct=0;const Lt=[];let dt=!1,bt=null;function ct(ue,$e,Ie){ue.addEventListener($e,Ie),Lt.push(()=>ue.removeEventListener($e,Ie))}function yt(ue){const $e=Ge.get(String(ue));if($e)return $e;if(ue!=null){for(const Ie of Ge.values())if(R(Ie.value,ue))return Ie}return null}function At(ue){const $e=yt(ue);return $e?$e.label:ue==null?"":String(ue)}function gt(ue){ue.value!=null&&Ge.set(String(ue.value),ue)}function ft(ue){if(typeof U.resolveLabels!="function")return;const $e=ue.filter(Ze=>Ze!=null&&!yt(Ze));if($e.length===0)return;const Ie=U.resolveLabels($e),Fe=Ze=>{if(!(dt||!Array.isArray(Ze))){for(const Ye of Ze){const Ve=K(Ye);Ve.value!=null&&gt(Ve)}Ee=Ee.map(Ye=>yt(Ye.value)||Ye),ht(),et()}};Ie&&typeof Ie.then=="function"?Ie.then(Fe):Fe(Ie)}function se(){C.dispatchEvent(P(J,"change",{bubbles:!0}))}function he(){return fe?Ee.map(ue=>ue.value):Ee.length?Ee[0].value:null}function ve(ue){let $e;if(fe)$e=Array.isArray(ue)?ue:ue==null?[]:[ue];else{const Fe=Array.isArray(ue)?ue.length?ue[0]:null:ue;$e=Fe==null?[]:[Fe]}const Ie=$e.filter(Fe=>Fe!=null&&(Fe!==""||yt(Fe)!=null));Ee=Ie.map(Fe=>yt(Fe)||{value:Fe,label:Fe==null?"":String(Fe),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),ft(Ie),ht(),$t(),Ot()}function Ne(){return U.readOnly===!0}function Ke(){Ee.length!==0&&(Ee=[],ht(),$t(),Ot(),se())}function Ue(ue){const $e=J.createElement("span");$e.className="lat-combo__chip",$e.dataset.value=String(ue.value);const Ie=W(J,ue,U.selectedTemplate);if(Ie){const Fe=J.createElement("span");Fe.className="lat-combo__chip-label",Fe.appendChild(Ie),$e.appendChild(Fe)}else{const Fe=B(J,ue);Fe&&$e.appendChild(Fe);const Ze=J.createElement("span");Ze.className="lat-combo__chip-label",Ze.textContent=At(ue.value),$e.appendChild(Ze)}if(!ue.disabled&&!Ne()){const Fe=J.createElement("button");Fe.type="button",Fe.className="lat-combo__chip-remove",Fe.setAttribute("aria-label",ie("form.combo.remove",{label:At(ue.value)})),Fe.textContent="×",ct(Fe,"click",Ye=>{Ye.stopPropagation(),Dt(ue.value)}),$e.appendChild(Fe)}return $e}function We(){fe||(we.value=Ee.length?At(Ee[0].value):"")}function et(){if(fe){be.hidden=!0;return}for(;be.firstChild;)be.removeChild(be.firstChild);if(Ee.length===0){be.hidden=!0;return}const ue=Ee[0],Ie=W(J,ue,U.selectedTemplate)||B(J,ue);Ie?(be.appendChild(Ie),be.hidden=!1):be.hidden=!0}function wt(ue){const $e=ie("form.combo.selected",{count:ue});return $e==="form.combo.selected"?`Selected: ${ue}`:$e}function ht(){for(;pe.firstChild;)pe.removeChild(pe.firstChild);if(fe){for(const ue of Ee)pe.appendChild(Ue(ue));pe.hidden=Ee.length===0}else pe.hidden=!0;xe!=="inside"&&(de.hidden=!fe||Ee.length===0,de.setAttribute("aria-label",wt(Ee.length))),We(),et(),Jt()}function Jt(){if(!fe||Ee.length===0){G.hidden=!0;return}const ue=ye.getBoundingClientRect().bottom;let $e=0;const Ie=[...pe.children];for(const Fe of Ie)Fe.getBoundingClientRect().top>=ue-1&&($e+=1);$e>0?(G.hidden=!1,G.textContent=ie("form.combo.more",{count:$e})):G.hidden=!0}function Dt(ue){if(Ne())return;const $e=Ee.length;Ee=Ee.filter(Ie=>!R(Ie.value,ue)),Ee.length!==$e&&(ht(),$t(),Ot(),se())}function zt(ue){if(Ne())return;const $e=yt(ue)||{value:ue,label:ue==null?"":String(ue),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(gt($e),fe){if(Ee.some(Ie=>R(Ie.value,ue)))return;Ee=[...Ee,$e]}else{if(Ee.length&&R(Ee[0].value,ue))return;Ee=[$e]}ht(),$t(),Ot(),se()}function qt(){if(Ne())return;const ue=Ae.filter($e=>!$e.disabled).map($e=>({...$e}));if(!(ue.length===0&&Ee.length===0)){for(const $e of ue)gt($e);Ee=ue,ht(),$t(),Ot(),se()}}function Ft(){return Ae.length>0&&Ae.every(ue=>Ee.some($e=>R($e.value,ue.value)))}function $t(){const ue=A.querySelector(".lat-combo__select-all");if(!ue)return;const $e=Ft();ue.setAttribute("aria-selected",$e?"true":"false"),ue.textContent=ie("form.combo.selectAll")}function Et(){tt||dt||U.disabled||(tt=!0,Ce.hidden=!1,we.setAttribute("aria-expanded","true"),Be.setAttribute("aria-expanded","true"),bt=r(Ce,ee,{aboveClass:p,onOffscreen:_t}),or(),Ae.length===0&&U.load&&!rt&&!Xe?jt(0):Pt())}function _t(){tt&&(tt=!1,Ce.hidden=!0,Ce.classList.remove(p),bt&&(bt.close(),bt=null),we.setAttribute("aria-expanded","false"),Be.setAttribute("aria-expanded","false"),we.removeAttribute("aria-activedescendant"))}function Qt(){dt||(we.focus(),Et())}function er(){we.blur()}function St(ue){if(Je=ue,!tt)return;const $e=ue===-1?`${le.id}`:`${je}-opt-${ue}`;we.setAttribute("aria-activedescendant",$e)}function Mt(ue){const $e=le.hidden===!1,Ie=$e?-1:0,Fe=Math.max(Ie,Ae.length-1);if(Ae.length===0&&!$e){St(-1);return}St(Math.max(Ie,Math.min(Fe,Je+ue))),It()}function It(){if(Je<0)return;const ue=nt[Je]||0,$e=ue+(st[Je]||Ht(Ae[Je]));ue<Ct?Me.scrollTop=ue:$e>Ct+it&&(Me.scrollTop=$e-it)}function Ht(ue){return N(ue)?52:30}function Vt(ue){return`${je}-opt-${ue}`}function tr(ue,$e){const Ie=J.createElement("div");Ie.className="lat-combo__option",Ie.setAttribute("role","option"),Ie.id=Vt($e);const Fe=Ee.some(Ve=>R(Ve.value,ue.value));Ie.setAttribute("aria-selected",Fe?"true":"false"),ue.disabled&&Ie.setAttribute("aria-disabled","true");const Ze=W(J,ue,U.optionTemplate);if(Ze)Ie.appendChild(Ze);else{const Ve=B(J,ue);Ve&&Ie.appendChild(Ve);const Qe=J.createElement("span");Qe.className="lat-combo__text";const xt=J.createElement("span");if(xt.className="lat-combo__title",xt.textContent=ue.label,Qe.appendChild(xt),ue.description!=null){const Bt=J.createElement("span");Bt.className="lat-combo__subtitle",Bt.textContent=ue.description,Qe.appendChild(Bt)}Ie.appendChild(Qe)}return ct(Ie,"click",Ve=>{Ve.stopPropagation(),Kt($e)}),Ie}function rr(){const ue=U.newOptions&&!Ne()&&at.trim()!=="",$e=Ae.some(Ie=>R(Ie.value,at)||Ie.label===at);if(!ue||$e){le.hidden=!0;return}le.hidden=!1,le.id=`${je}-create`,le.textContent=ie("form.combo.create",{query:at}),Je===-1&&St(-1)}function nr(){const ue=!rt&&!Xe&&(typeof U.load=="function"||pt.length>0);Oe.hidden=!ue,ue&&(Oe.textContent=ie("form.combo.noMatches"))}function Pt(){if(rr(),tt&&(it=Me.clientHeight||it),Ae.length===0){for(ge.style.height="0px";ge.firstChild;)ge.removeChild(ge.firstChild);nr(),le.hidden!==!1&&(Je=-1,we.removeAttribute("aria-activedescendant")),Tt(),bt&&bt.reposition();return}Oe.hidden=!0;let ue=!1;for(let Ve=0;Ve<Ae.length;Ve++)st[Ve]==null&&(st[Ve]=Ht(Ae[Ve]));nt.length=0,nt[0]=0;for(let Ve=1;Ve<=Ae.length;Ve++)nt[Ve]=nt[Ve-1]+st[Ve-1];const $e=nt[Ae.length];ge.style.height=`${$e}px`;const Ie=Ct,Fe=Ct+it;let Ze=0;for(;Ze<Ae.length-1&&nt[Ze+1]<Ie;)Ze+=1;let Ye=Ze;for(;Ye<Ae.length&&nt[Ye]<Fe;)Ye+=1;for(Ye=Math.min(Ae.length,Ye+2);ge.firstChild;)ge.removeChild(ge.firstChild);for(let Ve=Ze;Ve<Ye;Ve++){const Qe=tr(Ae[Ve],Ve);Qe.style.position="absolute",Qe.style.left="0",Qe.style.right="0",Qe.style.top="0",Qe.style.transform=`translateY(${nt[Ve]}px)`,ge.appendChild(Qe)}for(let Ve=Ze;Ve<Ye;Ve++){const Qe=J.getElementById(Vt(Ve));if(!Qe)continue;const xt=Qe.getBoundingClientRect().height;xt>0&&Math.abs(xt-st[Ve])>.5&&(st[Ve]=xt,ue=!0)}if(ue){Pt();return}Tt(),bt&&bt.reposition()}function Tt(){for(;De.firstChild;)De.removeChild(De.firstChild);if(rt)De.textContent=ie("form.combo.loading"),De.dataset.state="loading";else if(Xe){De.textContent=ie("form.combo.error"),De.dataset.state="error";const ue=J.createElement("button");ue.type="button",ue.className="lat-combo__retry",ue.textContent=ie("form.combo.retry"),ct(ue,"click",Ie=>{Ie.stopPropagation(),Wt()}),De.appendChild(ue)}else Ae.length===0&&!U.load&&pt.length===0?De.textContent="":Ae.length===0?(De.textContent=ie("form.combo.empty"),De.dataset.state="empty"):(De.textContent=ie("form.combo.results",{count:ot}),De.dataset.state="results")}function Ot(){const ue=`${je}-opt-`;for(const $e of Me.querySelectorAll('.lat-combo__option[role="option"]')){const Ie=$e.id||"";if(!Ie.startsWith(ue))continue;const Fe=Number(Ie.slice(ue.length));if(Number.isNaN(Fe))continue;const Ze=Ae[Fe];Ze&&$e.setAttribute("aria-selected",Ee.some(Ye=>R(Ye.value,Ze.value))?"true":"false")}$t()}function or(){it=Me.clientHeight||240}function ar(){if(Se&&fe){const ue=J.createElement("div");ue.className="lat-combo__select-all",ue.setAttribute("role","option"),ct(ue,"click",Ie=>{Ie.stopPropagation(),!Ne()&&(Ft()?(Ee=[],ht(),Ot(),se()):qt())}),Ce.insertBefore(ue,Me)}}function jt(ue){if(dt)return;if(typeof U.load!="function"){const Ye=at.trim().toLowerCase(),Ve=pt.map(K).filter(Qe=>Ye===""||Qe.label.toLowerCase().includes(Ye));Ae=Ve,ot=Ve.length,lt=!1,He=1,st.length=0,nt.length=0;for(const Qe of Ae)gt(Qe);Pt();return}if(rt)return;rt=!0,Xe=!1,mt+=1;const $e=mt;ut&&ut.abort(),ut=new AbortController;const Ie=ut.signal;Tt();let Fe;try{Fe=U.load({search:at,page:ue,signal:Ie,pageSize:Le})}catch{rt=!1,Xe=!0,Tt();return}const Ze=Ye=>{if(dt||$e!==mt)return;rt=!1;const Ve=oe(Ye),Qe=Ve.items.map(K);ue===0?(Ae=Qe,st.length=0,nt.length=0,kt.set(at,{items:Qe,total:Ve.total,hasMore:Ve.hasMore,nextPage:1})):Ae=Ae.concat(Qe),ot=typeof Ve.total=="number"?Ve.total:Ae.length,lt=Ve.hasMore,He=ue+1;for(const xt of Qe)gt(xt);st.length=Ae.length,Pt(),Ut()};Fe&&typeof Fe.then=="function"?Fe.then(Ze).catch(Ye=>{dt||$e!==mt||Ye&&Ye.name==="AbortError"||(rt=!1,Xe=!0,Tt())}):Ze(Fe)}function Ut(){if(!lt||rt||!tt)return;(nt[Ae.length]||0)<it+b&&jt(He)}function Wt(){dt||(qe&&(clearTimeout(qe),qe=null),ut&&ut.abort(),mt+=1,kt.delete(at),Ae=[],ot=0,lt=!1,rt=!1,Xe=!1,He=0,st.length=0,nt.length=0,Je=-1,jt(0))}function ir(ue){if(dt||(pt=Array.isArray(ue)?ue:[],typeof U.load=="function"))return;jt(0);const $e=Ee.length;Ee=Ee.filter(Ie=>Ae.some(Fe=>R(Fe.value,Ie.value))).map(Ie=>yt(Ie.value)||Ie),Ee.length!==$e?(ht(),$t(),Ot(),se()):ht()}function lr(){return!fe&&Ee.length&&we.value===At(Ee[0].value)?"":we.value}function Gt(){fe||(We(),at!==""&&Rt())}function Rt(){at=lr(),ut&&ut.abort(),mt+=1;const ue=kt.get(at);if(ue&&typeof U.load=="function"){Ae=ue.items.map(K),ot=ue.total,lt=ue.hasMore,He=ue.nextPage,rt=!1,Xe=!1,st.length=0,nt.length=0,Je=-1;for(const $e of Ae)gt($e);Pt(),Ut();return}Ae=[],ot=0,lt=!1,rt=!1,Xe=!1,He=0,st.length=0,nt.length=0,Je=-1,jt(0)}function sr(){qe&&clearTimeout(qe),qe=setTimeout(()=>{qe=null,Rt()},_e)}function cr(ue){const $e=le.hidden===!1,Ie=Ae.length+($e?1:0);if(ue.key==="ArrowDown"){if(ue.preventDefault(),Et(),Ie===0)return;Je===-1?St(Ae.length?0:-1):Mt(1)}else if(ue.key==="ArrowUp"){if(ue.preventDefault(),!tt){Et();return}if(Je===-1){Ae.length&&St(0);return}Mt(-1)}else if(ue.key==="Home"){if(!tt)return;ue.preventDefault(),St($e?-1:0),It()}else if(ue.key==="End"){if(!tt)return;ue.preventDefault(),St(Ae.length-1),It()}else if(ue.key==="PageDown"){if(!tt)return;ue.preventDefault(),Mt(Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ue.key==="PageUp"){if(!tt)return;ue.preventDefault(),Mt(-Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ue.key==="Enter"){if(!tt){Et();return}Je===-1&&$e?(ue.preventDefault(),ur()):Je>=0&&Ae[Je]&&(ue.preventDefault(),Kt(Je))}else ue.key==="Escape"?(qe&&(clearTimeout(qe),qe=null),tt&&(ue.preventDefault(),_t()),Gt()):ue.key==="Backspace"&&fe&&we.value===""&&Ee.length?(ue.preventDefault(),Dt(Ee[Ee.length-1].value)):ue.key==="Tab"&&_t()}function ur(){if(!U.newOptions||Ne())return;const ue=at.trim();if(ue==="")return;let $e;typeof U.newOptions=="object"&&typeof U.newOptions.create=="function"?$e=U.newOptions.create(ue):$e={value:ue,label:ue};const Ie=K($e);gt(Ie),zt(Ie.value),_t()}function Kt(ue){if(Ne())return;const $e=Ae[ue];!$e||$e.disabled||(fe?(Ee.some(Ie=>R(Ie.value,$e.value))?Dt($e.value):zt($e.value),we.focus()):(qe&&(clearTimeout(qe),qe=null),zt($e.value),_t(),we.value=$e.label,at!==""&&Rt()))}const dr=()=>{tt||(we.focus(),!fe&&Ee.length&&we.select(),Et())},fr=ue=>{ue.stopPropagation(),tt?_t():(we.focus(),Et())},pr=()=>{sr()},mr=ue=>{ue.stopPropagation()},br=()=>{Ct=Me.scrollTop,Pt(),lt&&!rt&&Me.scrollTop+Me.clientHeight>=Me.scrollHeight-b&&jt(He)},gr=()=>{!fe&&Ee.length&&we.select(),C.dispatchEvent(P(J,"focus"))},hr=()=>{C.dispatchEvent(P(J,"blur")),qe&&(clearTimeout(qe),qe=null),_t(),Gt()};ct(ee,"click",dr),ct(Be,"click",fr),ct(we,"input",pr),ct(we,"change",mr),ct(we,"keydown",cr),ct(we,"focus",gr),ct(we,"blur",hr),ct(Me,"scroll",br),ct(Me,"mousedown",ue=>ue.preventDefault()),ar(),pt.length&&typeof U.load!="function"&&(at="",jt(0)),ve(Pe);const vt={el:C,root:A,input:we,getValue:he,setValue(ue){return ve(ue),vt},reload(){return Wt(),vt},setOptions(ue){return ir(ue),vt},clear(){return Ke(),vt},open(){return Et(),vt},close(){return _t(),vt},focus(){return Qt(),vt},blur(){return er(),vt},setDisabled(ue){U.disabled=ue,we.disabled=ue,Be.disabled=ue,ue&&_t()},setReadOnly(ue){U.readOnly=ue,we.readOnly=ue,ue?we.setAttribute("aria-readonly","true"):we.removeAttribute("aria-readonly"),ht()},destroy(){_t(),dt=!0,qe&&clearTimeout(qe),ut&&ut.abort();for(const ue of Lt.splice(0))ue();for(;A.firstChild;)A.removeChild(A.firstChild)}};return C.appendChild(A),C.__combo=vt,vt}I("combo",{kind:"field",build(C,U){const J=U.doc.createElement("div"),ie=C.props||{},fe=L(J,{load:ie.load,options:C.options,multiple:ie.multiple,value:C.value,resolveLabels:ie.resolveLabels,newOptions:ie.newOptions,optionTemplate:ie.optionTemplate,selectedTemplate:ie.selectedTemplate,selectAll:ie.selectAll,debounce:ie.debounce,pageSize:ie.pageSize,maxHeight:ie.maxHeight,chipPlacement:ie.chipPlacement,placeholder:C.placeholder,ariaLabel:C.label,t:U.t,doc:U.doc,inForm:!0});if(U.disposers.push(()=>fe.destroy()),Array.isArray(ie.dependsOn))for(const xe of ie.dependsOn){const _e=Se=>{Se.name===xe&&(fe.clear(),fe.reload())},Le=U.emitter.on("change",_e);U.disposers.push(Le)}return J.focus=()=>fe.focus(),J.blur=()=>fe.blur(),J},read(C){return C.__combo?C.__combo.getValue():null},write(C,U){C.__combo&&C.__combo.setValue(U)},state(C,U){C.__combo&&(C.__combo.setDisabled(U.disabled===!0),C.__combo.setReadOnly(U.readOnly===!0))}})}),Te("packages/modules/form/extras.js",function($,X){"use strict";Object.defineProperty($,"injectChromeStyles",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"buildTooltip",{enumerable:!0,get:function(){return r}}),Object.defineProperty($,"buildLock",{enumerable:!0,get:function(){return n}}),Object.defineProperty($,"renderAvatarAddon",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"buildAddons",{enumerable:!0,get:function(){return m}}),Object.defineProperty($,"buildPanel",{enumerable:!0,get:function(){return V}});const I=X("packages/modules/form/styles.js").NS,te=X("packages/modules/form/ids.js").nextId,_=X("packages/modules/form/controls/field-icon.js"),T=_.makeFieldIcon,O=_.injectFieldIconStyles,w=X("packages/modules/form/controls/combo.js"),k=w.initialsFor,E=w.renderAvatar,g="data-lattice-form-chrome-styles";function o(l){return l==="cols"?`${I}__cols`:l==="items"?`${I}__items`:`${I}__rows`}function a(){return`
1204
- .${I}__label-group{
1223
+ `.trim()}function i(A){const H=A&&A.documentElement;if(!H||H.getAttribute(f))return;H.setAttribute(f,"1");const X=A.createElement("style");X.textContent=s(),(A.head||A.body||H).appendChild(X)}function u(A){return/^(https?:|data:image\/|\/)/i.test(A)}function j(A){const H=String(A??"").trim();if(!H)return"";const X=H.split(/\s+/);return X.length>=2?(X[0][0]+X[1][0]).toUpperCase():H.slice(0,2).toUpperCase()}function F(A){let H=5381;const X=String(A??"");for(let ie=0;ie<X.length;ie++)H=(H<<5)+H+X.charCodeAt(ie)>>>0;return H}function M(A){if(A&&A.color!=null&&String(A.color)!=="")return String(A.color);const H=A&&A.label!=null?String(A.label):A&&A.value!=null?String(A.value):"";return`hsl(${F(H)%360}, 62%, 45%)`}function D(A,H){A.style.background=M(H),A.style.color="#fff"}function Q(A,H){const X=E[H];if(!X)return null;const ie=A.createElementNS(c,"svg");ie.setAttribute("class","lat-combo__icon"),ie.setAttribute("viewBox",X.viewBox||"0 0 16 16"),ie.setAttribute("aria-hidden","true"),ie.setAttribute("focusable","false");const de=X.paint==="stroke";for(const ke of X.paths||[]){const _e=A.createElementNS(c,"path");_e.setAttribute("d",ke),de?(_e.setAttribute("fill","none"),_e.setAttribute("stroke","currentColor"),_e.setAttribute("stroke-width","1.5"),_e.setAttribute("stroke-linecap","round"),_e.setAttribute("stroke-linejoin","round")):_e.setAttribute("fill","currentColor"),ie.appendChild(_e)}return ie}function Z(A,H,X){if(H==null||H==="")return null;let ie;if(H.nodeType)ie=H.cloneNode(!0),ie.setAttribute&&ie.setAttribute("aria-hidden","true");else{const de=String(H),ke=Q(A,de);ke?ie=ke:(ie=A.createElement("span"),ie.className="lat-combo__icon lat-combo__icon--glyph",ie.setAttribute("aria-hidden","true"),ie.textContent=de.slice(0,2))}return X!=null&&String(X)!==""&&ie&&ie.style&&(ie.style.color=String(X)),ie}function ae(A,H){const X=A.createElement("span");X.className="lat-combo__avatar",X.setAttribute("aria-hidden","true");const ie=String(H.avatar);if(u(ie)){const de=A.createElement("img");return de.className="lat-combo__avatar-img",de.alt="",de.src=ie,de.addEventListener("error",()=>{for(;X.firstChild;)X.removeChild(X.firstChild);X.classList.add("lat-combo__avatar--initials"),X.textContent=j(H.label),D(X,H)}),X.appendChild(de),X}return X.classList.add("lat-combo__avatar--initials"),X.textContent=ie.slice(0,2),D(X,H),X}const Y={r:255,g:255,b:255},ee={r:20,g:24,b:28},ze=3;function Ce(A){const H=A.split(/[,/\s]+/).filter(Boolean).map(Number);return H.length<3||H.some(X=>Number.isNaN(X))?null:{r:H[0],g:H[1],b:H[2]}}function me(A,H){const X=String(H).trim();if(!X)return null;if(A&&A.createElement)try{const de=A.defaultView;if(de&&de.getComputedStyle){const ke=A.createElement("span");ke.style.color=X;const _e=/rgba?\(([^)]+)\)/.exec(de.getComputedStyle(ke).color||"");if(_e)return Ce(_e[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(X)){let de=X.slice(1);return(de.length===3||de.length===4)&&(de=de.split("").map(ke=>ke+ke).join("")),{r:parseInt(de.slice(0,2),16),g:parseInt(de.slice(2,4),16),b:parseInt(de.slice(4,6),16)}}const ie=/rgba?\(([^)]+)\)/.exec(X);return ie?Ce(ie[1]):null}function S(A){const H=X=>{const ie=X/255;return ie<=.03928?ie/12.92:((ie+.055)/1.055)**2.4};return .2126*H(A.r)+.7152*H(A.g)+.0722*H(A.b)}function I(A,H){const X=S(A),ie=S(H),de=Math.max(X,ie),ke=Math.min(X,ie);return(de+.05)/(ke+.05)}function U(A,H){const X=me(A,H);return X?I(X,Y)<ze||I(X,ee)<ze:!0}function w(A,H){const X=A.createElement("span");X.className="lat-combo__dot",X.setAttribute("aria-hidden","true");const ie=String(H.dot);return X.style.background=ie,U(A,ie)&&X.setAttribute("data-ring","true"),X}function B(A,H){const X=H&&H.dot;if(X!=null&&X!=="")return w(A,H);const ie=H&&H.icon;if(ie!=null&&ie!=="")return Z(A,ie,H.color);const de=H&&H.avatar;return de!=null&&de!==""?ae(A,H):null}function W(A,H,X){if(typeof X!="function")return null;const ie=X(H);if(ie==null||ie===!1)return null;if(ie.nodeType)return ie.cloneNode(!0);const de=A.createElement("span");de.className="lat-combo__template";const ke=String(ie);return ke.includes("<")?de.innerHTML=o(A,ke):de.textContent=ke,de}function q(A){return A!=null&&typeof A=="object"?A.value:A}function ne(A){return A==null?"":typeof A!="object"?String(A):A.label!=null?String(A.label):A.title!=null?String(A.title):A.value==null?"":String(A.value)}function se(A){return A==null||typeof A!="object"?null:A.description!=null?String(A.description):A.subtitle!=null?String(A.subtitle):null}function N(A){return se(A)!=null||A!=null&&typeof A=="object"&&(A.avatar!=null||A.icon!=null)}function K(A){const H=A!=null&&typeof A=="object"?A:{};return{value:q(A),label:ne(A),description:se(A),avatar:H.avatar,icon:H.icon,color:H.color,dot:H.dot,disabled:H.disabled===!0}}function oe(A){if(Array.isArray(A))return{items:A,total:A.length,hasMore:!1};if(A&&typeof A=="object"){const H=Array.isArray(A.items)?A.items:[];return{items:H,total:typeof A.total=="number"?A.total:H.length,hasMore:A.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function z(A,H){return A===H?!0:A!=null&&H!=null&&String(A)===String(H)}function T(A,H,X={}){const ie=A&&A.defaultView;return ie&&ie.Event?new ie.Event(H,X):{type:H,bubbles:X.bubbles!==!1,cancelable:X.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function L(A,H={}){const X=H.doc||A&&A.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;X&&(y(X),i(X),h(X));const ie=typeof H.t=="function"?H.t:re,de=H.multiple===!0,ke=de&&["above","below"].includes(H.chipPlacement)?H.chipPlacement:"inside";X&&ke!=="inside"&&l(X);const _e=typeof H.debounce=="number"&&H.debounce>=0?H.debounce:n,Me=typeof H.pageSize=="number"&&H.pageSize>0?H.pageSize:v,Se=H.selectAll===!0,Oe=de?Array.isArray(H.value)?H.value:H.value==null?[]:[H.value]:H.value==null?null:H.value,x=X.createElement("div");x.className="lat-combo",de&&x.setAttribute("data-multiple","true"),ke!=="inside"&&x.setAttribute("data-chip-placement",ke),H.inForm||(x.setAttribute("data-lattice-standalone","true"),x.setAttribute("data-density",["compact","standard","comfortable"].includes(H.density)?H.density:"standard"));const te=X.createElement("div");te.className="lat-combo__control";const fe=X.createElement("div");fe.className="lat-combo__chips";const G=X.createElement("span");G.className="lat-combo__summary",G.hidden=!0;const ue=X.createElement("div");ue.className="lat-combo__chip-row",ue.setAttribute("role","group"),ue.hidden=!0;const we=ke==="inside"?fe:ue;typeof H.maxHeight=="number"&&(we.style.maxHeight=`${H.maxHeight}px`);const ge=X.createElement("span");ge.className="lat-combo__value",ge.setAttribute("aria-hidden","true"),ge.hidden=!0;const xe=X.createElement("input");xe.className="lat-combo__input",xe.type="text",xe.setAttribute("role","combobox"),xe.setAttribute("aria-autocomplete","list"),xe.setAttribute("aria-haspopup","listbox"),de&&xe.setAttribute("aria-multiselectable","true"),H.placeholder!=null&&(xe.placeholder=String(H.placeholder)),H.inForm&&H.ariaLabel!=null&&xe.setAttribute("aria-label",String(H.ariaLabel));const Ie=X.createElement("button");Ie.type="button",Ie.className="lat-combo__toggle",Ie.setAttribute("aria-label",ie("form.combo.toggle")),Ie.setAttribute("aria-haspopup","listbox");const Le=d(X,"chevronDown");Le&&Ie.appendChild(Le);const $e=X.createElement("button");$e.type="button",$e.className="lat-combo__clear",$e.setAttribute("aria-label",ie("form.combo.clear")),$e.hidden=!0;const Be=d(X,"close");Be&&$e.appendChild(Be);const ye=!de&&H.clearable===!0,Re=X.createElement("div");Re.className="lat-combo__popup lat-combo",Re.hidden=!0;const je=X.createElement("div");je.className="lat-combo__list",je.setAttribute("role","listbox");const We=X.createElement("div");We.className="lat-combo__spacer",je.appendChild(We);const Ke=X.createElement("div");Ke.className="lat-combo__status",Ke.setAttribute("role","status"),Ke.setAttribute("aria-live","polite");const Ge=X.createElement("div");Ge.className="lat-combo__option lat-combo__option--create",Ge.setAttribute("role","option"),Ge.hidden=!0,je.insertBefore(Ge,We);const pe=X.createElement("div");pe.className="lat-combo__empty",pe.setAttribute("role","presentation"),pe.setAttribute("aria-live","polite"),pe.hidden=!0,je.insertBefore(pe,We),Re.appendChild(je),Re.appendChild(Ke),te.appendChild(Re),ke!=="inside"?(te.appendChild(xe),te.appendChild(Ie),ue.appendChild(fe),ue.appendChild(G),ke==="above"&&x.appendChild(ue),x.appendChild(te),ke==="below"&&x.appendChild(ue)):(te.appendChild(fe),te.appendChild(G),te.appendChild(ge),te.appendChild(xe),ye&&te.appendChild($e),te.appendChild(Ie),x.appendChild(te));const Pe=P("lat-combo-lb");je.id=Pe,xe.setAttribute("aria-controls",Pe);let be=[],Ae=[];const at=new Map;let Ye=0,qe=0,pt=!1,rt=!1,ut=!1,ct="",ot=!1,tt=-1,dt=null,mt=0,nt=null;const Nt=new Map;let bt=Array.isArray(H.options)?H.options:[];const ft=[],lt=[];let gt=0,Ct=0;const Lt=[];let ht=!1,_t=null;function st(ce,Ee,De){ce.addEventListener(Ee,De),Lt.push(()=>ce.removeEventListener(Ee,De))}function it(ce){const Ee=at.get(String(ce));if(Ee)return Ee;if(ce!=null){for(const De of at.values())if(z(De.value,ce))return De}return null}function le(ce){const Ee=it(ce);return Ee?Ee.label:ce==null?"":String(ce)}function he(ce){ce.value!=null&&at.set(String(ce.value),ce)}function ve(ce){if(typeof H.resolveLabels!="function")return;const Ee=ce.filter(Xe=>Xe!=null&&!it(Xe));if(Ee.length===0)return;const De=H.resolveLabels(Ee),He=Xe=>{if(!(ht||!Array.isArray(Xe))){for(const Je of Xe){const Ue=K(Je);Ue.value!=null&&he(Ue)}Ae=Ae.map(Je=>it(Je.value)||Je),yt(),zt()}};De&&typeof De.then=="function"?De.then(He):He(De)}function Ne(){A.dispatchEvent(T(X,"change",{bubbles:!0}))}function Ze(){return de?Ae.map(ce=>ce.value):Ae.length?Ae[0].value:null}function Ve(ce){let Ee;if(de)Ee=Array.isArray(ce)?ce:ce==null?[]:[ce];else{const He=Array.isArray(ce)?ce.length?ce[0]:null:ce;Ee=He==null?[]:[He]}const De=Ee.filter(He=>He!=null&&(He!==""||it(He)!=null));Ae=De.map(He=>it(He)||{value:He,label:He==null?"":String(He),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),ve(De),yt(),At(),St()}function Fe(){return H.readOnly===!0}function Qe(){Ae.length!==0&&(Ae=[],yt(),At(),St(),Mt(),zt(),Ne())}function xt(ce){const Ee=X.createElement("span");Ee.className="lat-combo__chip",Ee.dataset.value=String(ce.value);const De=W(X,ce,H.selectedTemplate);if(De){const He=X.createElement("span");He.className="lat-combo__chip-label",He.appendChild(De),Ee.appendChild(He)}else{const He=B(X,ce);He&&Ee.appendChild(He);const Xe=X.createElement("span");Xe.className="lat-combo__chip-label",Xe.textContent=le(ce.value),Ee.appendChild(Xe)}if(!ce.disabled&&!Fe()){const He=X.createElement("button");He.type="button",He.className="lat-combo__chip-remove",He.setAttribute("aria-label",ie("form.combo.remove",{label:le(ce.value)})),He.textContent="×",st(He,"click",Je=>{Je.stopPropagation(),It(ce.value)}),Ee.appendChild(He)}return Ee}function Mt(){de||(xe.value=Ae.length?le(Ae[0].value):"")}function zt(){if(de){ge.hidden=!0;return}for(;ge.firstChild;)ge.removeChild(ge.firstChild);if(Ae.length===0){ge.hidden=!0;return}const ce=Ae[0],De=W(X,ce,H.selectedTemplate)||B(X,ce);De?(ge.appendChild(De),ge.hidden=!1):ge.hidden=!0}function Qt(ce){const Ee=ie("form.combo.selected",{count:ce});return Ee==="form.combo.selected"?`Selected: ${ce}`:Ee}function yt(){for(;fe.firstChild;)fe.removeChild(fe.firstChild);if(de){for(const ce of Ae)fe.appendChild(xt(ce));fe.hidden=Ae.length===0}else fe.hidden=!0;ke!=="inside"&&(ue.hidden=!de||Ae.length===0,ue.setAttribute("aria-label",Qt(Ae.length))),Mt(),zt(),er()}function er(){if(!de||Ae.length===0){G.hidden=!0;return}const ce=we.getBoundingClientRect().bottom;let Ee=0;const De=[...fe.children];for(const He of De)He.getBoundingClientRect().top>=ce-1&&(Ee+=1);Ee>0?(G.hidden=!1,G.textContent=ie("form.combo.more",{count:Ee})):G.hidden=!0}function It(ce){if(Fe())return;const Ee=Ae.length;Ae=Ae.filter(De=>!z(De.value,ce)),Ae.length!==Ee&&(yt(),At(),St(),Ne())}function Rt(ce){if(Fe())return;const Ee=it(ce)||{value:ce,label:ce==null?"":String(ce),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(he(Ee),de){if(Ae.some(De=>z(De.value,ce)))return;Ae=[...Ae,Ee]}else{if(Ae.length&&z(Ae[0].value,ce))return;Ae=[Ee]}yt(),At(),St(),Ne()}function tr(){if(Fe())return;const ce=be.filter(Ee=>!Ee.disabled).map(Ee=>({...Ee}));if(!(ce.length===0&&Ae.length===0)){for(const Ee of ce)he(Ee);Ae=ce,yt(),At(),St(),Ne()}}function Vt(){return be.length>0&&be.every(ce=>Ae.some(Ee=>z(Ee.value,ce.value)))}function At(){const ce=x.querySelector(".lat-combo__select-all");if(!ce)return;const Ee=Vt();ce.setAttribute("aria-selected",Ee?"true":"false"),ce.textContent=ie("form.combo.selectAll")}function $t(){ot||ht||H.disabled||(ot=!0,Re.hidden=!1,xe.setAttribute("aria-expanded","true"),Ie.setAttribute("aria-expanded","true"),_t=r(Re,te,{aboveClass:p,onOffscreen:vt}),lr(),be.length===0&&H.load&&!rt&&!ut?Ot(0):Pt())}function vt(){ot&&(ot=!1,Re.hidden=!0,Re.classList.remove(p),_t&&(_t.close(),_t=null),xe.setAttribute("aria-expanded","false"),Ie.setAttribute("aria-expanded","false"),xe.removeAttribute("aria-activedescendant"))}function rr(){ht||(xe.focus(),$t())}function nr(){xe.blur()}function Et(ce){if(tt=ce,!ot)return;const Ee=ce===-1?`${Ge.id}`:`${Pe}-opt-${ce}`;xe.setAttribute("aria-activedescendant",Ee)}function Dt(ce){const Ee=Ge.hidden===!1,De=Ee?-1:0,He=Math.max(De,be.length-1);if(be.length===0&&!Ee){Et(-1);return}Et(Math.max(De,Math.min(He,tt+ce))),Bt()}function Bt(){if(tt<0)return;const ce=lt[tt]||0,Ee=ce+(ft[tt]||Ut(be[tt]));ce<Ct?je.scrollTop=ce:Ee>Ct+gt&&(je.scrollTop=Ee-gt)}function Ut(ce){return N(ce)?52:30}function Wt(ce){return`${Pe}-opt-${ce}`}function or(ce,Ee){const De=X.createElement("div");De.className="lat-combo__option",De.setAttribute("role","option"),De.id=Wt(Ee);const He=Ae.some(Ue=>z(Ue.value,ce.value));De.setAttribute("aria-selected",He?"true":"false"),ce.disabled&&De.setAttribute("aria-disabled","true");const Xe=W(X,ce,H.optionTemplate);if(Xe)De.appendChild(Xe);else{const Ue=B(X,ce);Ue&&De.appendChild(Ue);const et=X.createElement("span");et.className="lat-combo__text";const kt=X.createElement("span");if(kt.className="lat-combo__title",kt.textContent=ce.label,et.appendChild(kt),ce.description!=null){const Ht=X.createElement("span");Ht.className="lat-combo__subtitle",Ht.textContent=ce.description,et.appendChild(Ht)}De.appendChild(et)}return st(De,"click",Ue=>{Ue.stopPropagation(),Yt(Ee)}),De}function ar(){const ce=H.newOptions&&!Fe()&&ct.trim()!=="",Ee=be.some(De=>z(De.value,ct)||De.label===ct);if(!ce||Ee){Ge.hidden=!0;return}Ge.hidden=!1,Ge.id=`${Pe}-create`,Ge.textContent=ie("form.combo.create",{query:ct}),tt===-1&&Et(-1)}function ir(){const ce=!rt&&!ut&&(typeof H.load=="function"||bt.length>0);pe.hidden=!ce,ce&&(pe.textContent=ie("form.combo.noMatches"))}function Pt(){if(ar(),ot&&(gt=je.clientHeight||gt),be.length===0){for(We.style.height="0px";We.firstChild;)We.removeChild(We.firstChild);ir(),Ge.hidden!==!1&&(tt=-1,xe.removeAttribute("aria-activedescendant")),Tt(),_t&&_t.reposition();return}pe.hidden=!0;let ce=!1;for(let Ue=0;Ue<be.length;Ue++)ft[Ue]==null&&(ft[Ue]=Ut(be[Ue]));lt.length=0,lt[0]=0;for(let Ue=1;Ue<=be.length;Ue++)lt[Ue]=lt[Ue-1]+ft[Ue-1];const Ee=lt[be.length];We.style.height=`${Ee}px`;const De=Ct,He=Ct+gt;let Xe=0;for(;Xe<be.length-1&&lt[Xe+1]<De;)Xe+=1;let Je=Xe;for(;Je<be.length&&lt[Je]<He;)Je+=1;for(Je=Math.min(be.length,Je+2);We.firstChild;)We.removeChild(We.firstChild);for(let Ue=Xe;Ue<Je;Ue++){const et=or(be[Ue],Ue);et.style.position="absolute",et.style.left="0",et.style.right="0",et.style.top="0",et.style.transform=`translateY(${lt[Ue]}px)`,We.appendChild(et)}for(let Ue=Xe;Ue<Je;Ue++){const et=X.getElementById(Wt(Ue));if(!et)continue;const kt=et.getBoundingClientRect().height;kt>0&&Math.abs(kt-ft[Ue])>.5&&(ft[Ue]=kt,ce=!0)}if(ce){Pt();return}Tt(),_t&&_t.reposition()}function Tt(){for(;Ke.firstChild;)Ke.removeChild(Ke.firstChild);if(rt)Ke.textContent=ie("form.combo.loading"),Ke.dataset.state="loading";else if(ut){Ke.textContent=ie("form.combo.error"),Ke.dataset.state="error";const ce=X.createElement("button");ce.type="button",ce.className="lat-combo__retry",ce.textContent=ie("form.combo.retry"),st(ce,"click",De=>{De.stopPropagation(),Kt()}),Ke.appendChild(ce)}else be.length===0&&!H.load&&bt.length===0?Ke.textContent="":be.length===0?(Ke.textContent=ie("form.combo.empty"),Ke.dataset.state="empty"):(Ke.textContent=ie("form.combo.results",{count:qe}),Ke.dataset.state="results")}function St(){const ce=`${Pe}-opt-`;for(const Ee of je.querySelectorAll('.lat-combo__option[role="option"]')){const De=Ee.id||"";if(!De.startsWith(ce))continue;const He=Number(De.slice(ce.length));if(Number.isNaN(He))continue;const Xe=be[He];Xe&&Ee.setAttribute("aria-selected",Ae.some(Je=>z(Je.value,Xe.value))?"true":"false")}At(),ye&&($e.hidden=Ae.length===0||Fe())}function lr(){gt=je.clientHeight||240}function sr(){if(Se&&de){const ce=X.createElement("div");ce.className="lat-combo__select-all",ce.setAttribute("role","option"),st(ce,"click",De=>{De.stopPropagation(),!Fe()&&(Vt()?(Ae=[],yt(),St(),Ne()):tr())}),Re.insertBefore(ce,je)}}function Ot(ce){if(ht)return;if(typeof H.load!="function"){const Je=ct.trim().toLowerCase(),Ue=bt.map(K).filter(et=>Je===""||et.label.toLowerCase().includes(Je));be=Ue,qe=Ue.length,pt=!1,Ye=1,ft.length=0,lt.length=0;for(const et of be)he(et);Pt();return}if(rt)return;rt=!0,ut=!1,mt+=1;const Ee=mt;dt&&dt.abort(),dt=new AbortController;const De=dt.signal;Tt();let He;try{He=H.load({search:ct,page:ce,signal:De,pageSize:Me})}catch{rt=!1,ut=!0,Tt();return}const Xe=Je=>{if(ht||Ee!==mt)return;rt=!1;const Ue=oe(Je),et=Ue.items.map(K);ce===0?(be=et,ft.length=0,lt.length=0,Nt.set(ct,{items:et,total:Ue.total,hasMore:Ue.hasMore,nextPage:1})):be=be.concat(et),qe=typeof Ue.total=="number"?Ue.total:be.length,pt=Ue.hasMore,Ye=ce+1;for(const kt of et)he(kt);ft.length=be.length,Pt(),Gt()};He&&typeof He.then=="function"?He.then(Xe).catch(Je=>{ht||Ee!==mt||Je&&Je.name==="AbortError"||(rt=!1,ut=!0,Tt())}):Xe(He)}function Gt(){if(!pt||rt||!ot)return;(lt[be.length]||0)<gt+b&&Ot(Ye)}function Kt(){ht||(nt&&(clearTimeout(nt),nt=null),dt&&dt.abort(),mt+=1,Nt.delete(ct),be=[],qe=0,pt=!1,rt=!1,ut=!1,Ye=0,ft.length=0,lt.length=0,tt=-1,Ot(0))}function cr(ce){if(ht||(bt=Array.isArray(ce)?ce:[],typeof H.load=="function"))return;Ot(0);const Ee=Ae.length;Ae=Ae.filter(De=>be.some(He=>z(He.value,De.value))).map(De=>it(De.value)||De),Ae.length!==Ee?(yt(),At(),St(),Ne()):yt()}function ur(){return!de&&Ae.length&&xe.value===le(Ae[0].value)?"":xe.value}function Zt(){de||(Mt(),ct!==""&&Ft())}function dr(){return de?!1:Ae.length&&xe.value.trim()===""&&!Fe()?(Qe(),!0):(Zt(),!1)}function Ft(){ct=ur(),dt&&dt.abort(),mt+=1;const ce=Nt.get(ct);if(ce&&typeof H.load=="function"){be=ce.items.map(K),qe=ce.total,pt=ce.hasMore,Ye=ce.nextPage,rt=!1,ut=!1,ft.length=0,lt.length=0,tt=-1;for(const Ee of be)he(Ee);Pt(),Gt();return}be=[],qe=0,pt=!1,rt=!1,ut=!1,Ye=0,ft.length=0,lt.length=0,tt=-1,Ot(0)}function fr(){nt&&clearTimeout(nt),nt=setTimeout(()=>{nt=null,Ft()},_e)}function pr(ce){const Ee=Ge.hidden===!1,De=be.length+(Ee?1:0);if(ce.key==="ArrowDown"){if(ce.preventDefault(),$t(),De===0)return;tt===-1?Et(be.length?0:-1):Dt(1)}else if(ce.key==="ArrowUp"){if(ce.preventDefault(),!ot){$t();return}if(tt===-1){be.length&&Et(0);return}Dt(-1)}else if(ce.key==="Home"){if(!ot)return;ce.preventDefault(),Et(Ee?-1:0),Bt()}else if(ce.key==="End"){if(!ot)return;ce.preventDefault(),Et(be.length-1),Bt()}else if(ce.key==="PageDown"){if(!ot)return;ce.preventDefault(),Dt(Math.max(1,Math.floor(Math.max(gt,60)/30)))}else if(ce.key==="PageUp"){if(!ot)return;ce.preventDefault(),Dt(-Math.max(1,Math.floor(Math.max(gt,60)/30)))}else if(ce.key==="Enter"){if(!de&&Ae.length&&xe.value.trim()===""&&!Fe()){ce.preventDefault(),vt(),Qe();return}if(!ot){$t();return}tt===-1&&Ee?(ce.preventDefault(),mr()):tt>=0&&be[tt]&&(ce.preventDefault(),Yt(tt))}else ce.key==="Escape"?(nt&&(clearTimeout(nt),nt=null),ot&&(ce.preventDefault(),vt()),Zt()):ce.key==="Backspace"&&de&&xe.value===""&&Ae.length?(ce.preventDefault(),It(Ae[Ae.length-1].value)):ce.key==="Tab"&&vt()}function mr(){if(!H.newOptions||Fe())return;const ce=ct.trim();if(ce==="")return;let Ee;typeof H.newOptions=="object"&&typeof H.newOptions.create=="function"?Ee=H.newOptions.create(ce):Ee={value:ce,label:ce};const De=K(Ee);he(De),Rt(De.value),vt()}function Yt(ce){if(Fe())return;const Ee=be[ce];!Ee||Ee.disabled||(de?(Ae.some(De=>z(De.value,Ee.value))?It(Ee.value):Rt(Ee.value),xe.focus()):(nt&&(clearTimeout(nt),nt=null),Rt(Ee.value),vt(),xe.value=Ee.label,ct!==""&&Ft()))}const br=()=>{ot||(xe.focus(),!de&&Ae.length&&xe.select(),$t())},gr=ce=>{ce.stopPropagation(),ot?vt():(xe.focus(),$t())},hr=()=>{fr()},_r=ce=>{ce.stopPropagation()},vr=()=>{Ct=je.scrollTop,Pt(),pt&&!rt&&je.scrollTop+je.clientHeight>=je.scrollHeight-b&&Ot(Ye)},yr=()=>{!de&&Ae.length&&xe.select(),A.dispatchEvent(T(X,"focus"))},wr=()=>{A.dispatchEvent(T(X,"blur")),nt&&(clearTimeout(nt),nt=null),vt(),dr()},xr=()=>{Fe()||(Qe(),Mt(),xe.focus())};st(te,"click",br),ye&&st($e,"click",xr),st(Ie,"click",gr),st(xe,"input",hr),st(xe,"change",_r),st(xe,"keydown",pr),st(xe,"focus",yr),st(xe,"blur",wr),st(je,"scroll",vr),st(je,"mousedown",ce=>ce.preventDefault()),sr(),bt.length&&typeof H.load!="function"&&(ct="",Ot(0)),Ve(Oe);const wt={el:A,root:x,input:xe,getValue:Ze,setValue(ce){return Ve(ce),wt},reload(){return Kt(),wt},setOptions(ce){return cr(ce),wt},clear(){return Qe(),wt},open(){return $t(),wt},close(){return vt(),wt},focus(){return rr(),wt},blur(){return nr(),wt},setDisabled(ce){H.disabled=ce,xe.disabled=ce,Ie.disabled=ce,ce&&vt()},setReadOnly(ce){H.readOnly=ce,xe.readOnly=ce,ce?xe.setAttribute("aria-readonly","true"):xe.removeAttribute("aria-readonly"),yt()},destroy(){vt(),ht=!0,nt&&clearTimeout(nt),dt&&dt.abort();for(const ce of Lt.splice(0))ce();for(;x.firstChild;)x.removeChild(x.firstChild)}};return A.appendChild(x),A.__combo=wt,wt}R("combo",{kind:"field",build(A,H){const X=H.doc.createElement("div"),ie=A.props||{},de=L(X,{load:ie.load,options:A.options,multiple:ie.multiple,value:A.value,resolveLabels:ie.resolveLabels,newOptions:ie.newOptions,optionTemplate:ie.optionTemplate,selectedTemplate:ie.selectedTemplate,selectAll:ie.selectAll,debounce:ie.debounce,pageSize:ie.pageSize,maxHeight:ie.maxHeight,chipPlacement:ie.chipPlacement,clearable:ie.clearable,placeholder:A.placeholder,ariaLabel:A.label,t:H.t,doc:H.doc,inForm:!0});if(H.disposers.push(()=>de.destroy()),Array.isArray(ie.dependsOn))for(const ke of ie.dependsOn){const _e=Se=>{Se.name===ke&&(de.clear(),de.reload())},Me=H.emitter.on("change",_e);H.disposers.push(Me)}return X.focus=()=>de.focus(),X.blur=()=>de.blur(),X},read(A){return A.__combo?A.__combo.getValue():null},write(A,H){A.__combo&&A.__combo.setValue(H)},state(A,H){A.__combo&&(A.__combo.setDisabled(H.disabled===!0),A.__combo.setReadOnly(H.readOnly===!0))}})}),Te("packages/modules/form/extras.js",function($,J){"use strict";Object.defineProperty($,"injectChromeStyles",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"buildTooltip",{enumerable:!0,get:function(){return r}}),Object.defineProperty($,"buildLock",{enumerable:!0,get:function(){return n}}),Object.defineProperty($,"renderAvatarAddon",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"buildAddons",{enumerable:!0,get:function(){return m}}),Object.defineProperty($,"buildPanel",{enumerable:!0,get:function(){return V}});const R=J("packages/modules/form/styles.js").NS,re=J("packages/modules/form/ids.js").nextId,_=J("packages/modules/form/controls/field-icon.js"),P=_.makeFieldIcon,O=_.injectFieldIconStyles,y=J("packages/modules/form/controls/combo.js"),C=y.initialsFor,E=y.renderAvatar,g="data-lattice-form-chrome-styles";function o(l){return l==="cols"?`${R}__cols`:l==="items"?`${R}__items`:`${R}__rows`}function a(){return`
1224
+ .${R}__label-group{
1205
1225
  display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
1206
1226
  min-width:0; box-sizing:border-box;
1207
1227
  }
1208
- .${I}__item[data-label-position='top'] .${I}__label-group{
1228
+ .${R}__item[data-label-position='top'] .${R}__label-group{
1209
1229
  margin-bottom:var(--lattice-form-label-gap);
1210
1230
  }
1211
- .${I}__item[data-label-position='top'] .${I}__label-group .${I}__label{ margin-bottom:0; }
1212
- .${I}__tooltip-wrap{ position:relative; display:inline-flex; flex:0 0 auto; }
1213
- .${I}__tooltip-trigger{
1231
+ .${R}__item[data-label-position='top'] .${R}__label-group .${R}__label{ margin-bottom:0; }
1232
+ .${R}__tooltip-wrap{ position:relative; display:inline-flex; flex:0 0 auto; }
1233
+ .${R}__tooltip-trigger{
1214
1234
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
1215
1235
  box-sizing:border-box; width:calc(var(--lattice-font-size) * 1.35);
1216
1236
  height:calc(var(--lattice-font-size) * 1.35); min-height:0;
@@ -1219,13 +1239,13 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1219
1239
  color:var(--lattice-foreground-muted); font:inherit; line-height:1;
1220
1240
  font-weight:600; cursor:pointer;
1221
1241
  }
1222
- .${I}__tooltip-trigger:hover,
1223
- .${I}__tooltip-trigger:focus-visible{
1242
+ .${R}__tooltip-trigger:hover,
1243
+ .${R}__tooltip-trigger:focus-visible{
1224
1244
  color:var(--lattice-foreground);
1225
1245
  background:color-mix(in srgb, var(--lattice-foreground-muted) 28%, transparent);
1226
1246
  }
1227
- .${I}__tooltip-trigger:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1228
- .${I}__tooltip{
1247
+ .${R}__tooltip-trigger:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1248
+ .${R}__tooltip{
1229
1249
  position:absolute; z-index:20; bottom:calc(100% + var(--lattice-space) / 2); left:50%;
1230
1250
  transform:translateX(-50%); box-sizing:border-box; width:max-content; max-width:280px;
1231
1251
  padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
@@ -1235,11 +1255,11 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1235
1255
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.35; white-space:normal;
1236
1256
  opacity:0; pointer-events:none;
1237
1257
  }
1238
- .${I}__tooltip--open{ opacity:1; }
1258
+ .${R}__tooltip--open{ opacity:1; }
1239
1259
  /* A read-only field's lock sits inside the control's right edge (the control
1240
1260
  wrapper is the input's box, so the inset matches the field's own padding). */
1241
- .${I}__control{ position:relative; }
1242
- .${I}__lock{
1261
+ .${R}__control{ position:relative; }
1262
+ .${R}__lock{
1243
1263
  position:absolute; top:50%; right:calc(var(--lattice-space) * 1.5);
1244
1264
  transform:translateY(-50%); z-index:1; pointer-events:none;
1245
1265
  display:inline-flex; align-items:center; justify-content:center;
@@ -1247,59 +1267,59 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1247
1267
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1248
1268
  color:var(--lattice-foreground-muted);
1249
1269
  }
1250
- .${I}__lock[hidden]{ display:none; }
1251
- .${I}__control--lock input,
1252
- .${I}__control--lock textarea{
1270
+ .${R}__lock[hidden]{ display:none; }
1271
+ .${R}__control--lock input,
1272
+ .${R}__control--lock textarea{
1253
1273
  padding-right:calc(var(--lattice-space) * 1.5 + (var(--lattice-control-size) * var(--lattice-scale)) + calc(var(--lattice-space) / 2));
1254
1274
  }
1255
- .${I}__field{
1275
+ .${R}__field{
1256
1276
  display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
1257
1277
  min-width:0; flex:1 1 auto;
1258
1278
  }
1259
- .${I}__addons{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1260
- .${I}__addon{
1279
+ .${R}__addons{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1280
+ .${R}__addon{
1261
1281
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
1262
1282
  flex:0 0 auto; width:var(--lattice-row-height); height:var(--lattice-row-height); min-height:0;
1263
1283
  padding:0; margin:0; border:var(--lattice-border-width) solid var(--lattice-border-color);
1264
1284
  border-radius:50%; background:var(--lattice-background); color:var(--lattice-foreground);
1265
1285
  font:inherit; line-height:1; cursor:pointer; text-decoration:none;
1266
1286
  }
1267
- .${I}__addon:hover, .${I}__addon:focus-visible{ border-color:var(--lattice-accent); color:var(--lattice-accent); }
1268
- .${I}__addon:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1269
- .${I}__addon:disabled, .${I}__addon[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1270
- .${I}__icon-glyph{ font-size:calc(var(--lattice-font-size) - 1px); line-height:1; }
1271
- .${I}__addon-avatar{
1287
+ .${R}__addon:hover, .${R}__addon:focus-visible{ border-color:var(--lattice-accent); color:var(--lattice-accent); }
1288
+ .${R}__addon:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1289
+ .${R}__addon:disabled, .${R}__addon[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1290
+ .${R}__icon-glyph{ font-size:calc(var(--lattice-font-size) - 1px); line-height:1; }
1291
+ .${R}__addon-avatar{
1272
1292
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
1273
1293
  width:var(--lattice-row-height); height:var(--lattice-row-height);
1274
1294
  }
1275
- .${I}__addon-avatar .lat-combo__avatar{
1295
+ .${R}__addon-avatar .lat-combo__avatar{
1276
1296
  width:var(--lattice-row-height); height:var(--lattice-row-height);
1277
1297
  font-size:calc(var(--lattice-font-size) - 1px);
1278
1298
  }
1279
- .${I}__panel{
1299
+ .${R}__panel{
1280
1300
  display:flex; flex-direction:column; box-sizing:border-box; min-width:0; min-height:0;
1281
1301
  border:var(--lattice-border-width) solid var(--lattice-border-color);
1282
1302
  border-radius:var(--lattice-radius); background:var(--lattice-background);
1283
1303
  padding:calc(var(--lattice-space) * 1.5);
1284
1304
  }
1285
- .${I}__panel[hidden]{ display:none; }
1286
- .${I}__panel-header{
1305
+ .${R}__panel[hidden]{ display:none; }
1306
+ .${R}__panel-header{
1287
1307
  display:flex; align-items:flex-start; justify-content:space-between; gap:var(--lattice-space);
1288
1308
  box-sizing:border-box; padding-bottom:calc(var(--lattice-space) * 1.25);
1289
1309
  border-bottom:var(--lattice-border-width) solid var(--lattice-border-color);
1290
1310
  margin-bottom:calc(var(--lattice-space) * 1.25);
1291
1311
  }
1292
- .${I}__panel-heading{ display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 4); min-width:0; }
1293
- .${I}__panel-title{
1312
+ .${R}__panel-heading{ display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 4); min-width:0; }
1313
+ .${R}__panel-title{
1294
1314
  margin:0; font-size:calc(var(--lattice-font-size) + 1px); font-weight:600; line-height:1.3;
1295
1315
  color:var(--lattice-foreground);
1296
1316
  }
1297
- .${I}__panel-subtitle{
1317
+ .${R}__panel-subtitle{
1298
1318
  margin:0; color:var(--lattice-foreground-muted);
1299
1319
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.4;
1300
1320
  }
1301
- .${I}__panel-actions{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1302
- .${I}__panel-action{
1321
+ .${R}__panel-actions{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1322
+ .${R}__panel-action{
1303
1323
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
1304
1324
  flex:0 0 auto; width:calc(var(--lattice-row-height) - var(--lattice-space) / 2);
1305
1325
  height:calc(var(--lattice-row-height) - var(--lattice-space) / 2); min-height:0;
@@ -1307,27 +1327,27 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1307
1327
  background:transparent; color:var(--lattice-foreground-muted);
1308
1328
  font:inherit; line-height:1; cursor:pointer;
1309
1329
  }
1310
- .${I}__panel-action:hover, .${I}__panel-action:focus-visible{
1330
+ .${R}__panel-action:hover, .${R}__panel-action:focus-visible{
1311
1331
  color:var(--lattice-foreground);
1312
1332
  background:color-mix(in srgb, var(--lattice-foreground-muted) 16%, transparent);
1313
1333
  }
1314
- .${I}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1315
- .${I}__panel-body{ min-width:0; min-height:0; }
1316
- .${I}__panel-body[hidden]{ display:none; }
1317
- `.trim()}function d(l){const f=l&&l.documentElement;if(!f||(O(l),f.getAttribute(g)))return;f.setAttribute(g,"1");const c=l.createElement("style");c.textContent=a(),(l.head||l.body||f).appendChild(c)}function h(l,f,c,s){f.addEventListener(c,s),l.disposers.push(()=>f.removeEventListener(c,s))}function t(l,f){if(f==null||f==="")return null;if(f.nodeType){const i=f.cloneNode(!0);return i.setAttribute&&i.setAttribute("aria-hidden","true"),i}const c=T(l,String(f));if(c)return c;const s=l.createElement("span");return s.className=`${I}__icon-glyph`,s.setAttribute("aria-hidden","true"),s.textContent=String(f).slice(0,2),s}function r(l,f){const{labelEl:c,item:s,labelPosition:i,labelWidth:u}=f,j=s.tooltip;if(typeof j!="string"||j===""||i==="hidden")return null;d(l.doc);const H=l.doc,M=H.createElement("div");M.className=`${I}__label-group`,i==="left"&&u!=null&&(M.style.flex=`0 0 ${typeof u=="number"?`${u}px`:String(u)}`),M.appendChild(c);const D=te("lat-form-tip"),Q=H.createElement("span");Q.className=`${I}__tooltip-wrap`;const Z=H.createElement("button");Z.type="button",Z.className=`${I}__tooltip-trigger`,Z.setAttribute("aria-label",l.t("form.tooltip.help")),Z.setAttribute("aria-expanded","false"),Z.setAttribute("aria-controls",D),Z.textContent="?";const ae=H.createElement("span");ae.className=`${I}__tooltip`,ae.setAttribute("id",D),ae.setAttribute("role","tooltip"),ae.textContent=j,Q.appendChild(Z),Q.appendChild(ae),M.appendChild(Q);let Y=!1;const q=()=>{Z.setAttribute("aria-expanded","true"),ae.classList.add(`${I}__tooltip--open`)},Re=()=>{Y||(Z.setAttribute("aria-expanded","false"),ae.classList.remove(`${I}__tooltip--open`))};return h(l,Z,"mouseenter",q),h(l,Z,"mouseleave",Re),h(l,Z,"focus",q),h(l,Z,"blur",Re),h(l,Z,"click",ke=>{ke.stopPropagation(),Y=!Y,Y?q():Re()}),{group:M,tooltipId:D}}function n(l,f,c,s){const i=s&&s.tagName;if(!(c.lockIcon!==!1&&(i==="INPUT"||i==="TEXTAREA")&&(c.readOnly===!0||c.readOnlyWhen!=null)))return null;d(l.doc);const j=l.doc.createElement("span");j.className=`${I}__lock`,j.setAttribute("aria-hidden","true"),j.title=l.t("form.readonly");const H=T(l.doc,"lock");return H&&j.appendChild(H),f.appendChild(j),{el:j}}function p(l,f){if(!Array.isArray(l))return null;const c=f==null?"":String(f);for(const s of l){if(s!=null&&typeof s=="object"&&Array.isArray(s.options)){const i=p(s.options,f);if(i)return i;continue}if(s!=null&&typeof s=="object"){const i=s.value==null?"":String(s.value);if(i===c)return{label:s.label!=null?String(s.label):i,avatar:s.avatar,color:s.color}}else{const i=String(s);if(i===c)return{label:i,avatar:void 0,color:void 0}}}return null}function y(l,f,c){let s=null,i=f==null?"":String(f),u;if(typeof l=="function")s=l(f,c);else if(l===!0){const j=p(c.options,f);j&&(i=j.label,u=j.color,j.avatar!=null&&j.avatar!==""&&(s=String(j.avatar)))}else s=String(l);if(s==null||s===""){if(i==null||i==="")return null;s=k(i)}return{avatar:s,label:i,color:u}}function b(l,f,c,s,i){for(;f.firstChild;)f.removeChild(f.firstChild);const u=y(c.avatar,s,i);u&&f.appendChild(E(l,u))}function m(l,f){const c=f.addons;if(!Array.isArray(c)||c.length===0)return null;d(l.doc);const s=l.doc,i=s.createElement("div");i.className=`${I}__addons`;const u=[];for(const j of c){if(j==null||typeof j!="object")continue;if(j.avatar!==void 0&&j.avatar!==null&&j.avatar!==!1){const Z=s.createElement("span");Z.className=`${I}__addon-avatar`,Z.setAttribute("aria-hidden","true"),i.appendChild(Z),u.push({el:Z,spec:j,avatar:!0});continue}const M=j.href,D=s.createElement(M!=null?"a":"button");D.className=`${I}__addon`,M==null?D.type="button":D.href=String(M),j.ariaLabel!=null&&j.ariaLabel!==""&&(D.setAttribute("aria-label",String(j.ariaLabel)),D.title=j.tooltip!=null&&j.tooltip!==""?String(j.tooltip):String(j.ariaLabel));const Q=t(s,j.icon);Q&&D.appendChild(Q),i.appendChild(D),u.push({el:D,spec:j,avatar:!1})}return{bar:i,entries:u}}function V(l,f,c,s,i){d(l.doc);const u=l.doc,j=u.createElement("section");j.className=`${I}__panel`;const H=u.createElement("div");H.className=`${I}__panel-header`;const M=u.createElement("div");if(M.className=`${I}__panel-heading`,f.title!=null){const Z=u.createElement("h3");Z.className=`${I}__panel-title`,Z.textContent=f.title,M.appendChild(Z)}if(f.subtitle!=null){const Z=u.createElement("p");Z.className=`${I}__panel-subtitle`,Z.textContent=f.subtitle,M.appendChild(Z)}H.appendChild(M);const D=u.createElement("div");D.className=`${I}__panel-actions`,H.appendChild(D),j.appendChild(H);const Q=u.createElement("div");Q.className=`${I}__panel-body`,f.axis&&(Q.classList.add(o(f.axis)),i.buildChildren(l,Q,f.blocks,f.axis,s)),j.appendChild(Q);for(const Z of f.actions){const ae=u.createElement("button");ae.type="button",ae.className=`${I}__panel-action`,Z.ariaLabel!=null&&Z.ariaLabel!==""&&(ae.setAttribute("aria-label",String(Z.ariaLabel)),ae.title=String(Z.ariaLabel));const Y=t(u,Z.icon);Y&&ae.appendChild(Y),typeof Z.onClick=="function"&&h(l,ae,"click",()=>{Z.onClick()}),D.appendChild(ae)}if(f.collapsible){const Z=u.createElement("button");Z.type="button",Z.className=`${I}__panel-action ${I}__panel-collapse`,Z.setAttribute("aria-expanded","true");const ae=l.t("form.panel.collapse");Z.setAttribute("aria-label",ae),Z.title=ae;const Y=T(u,"chevronUp");Y&&Z.appendChild(Y);let q=!1;h(l,Z,"click",()=>{q=!q,Q.hidden=q,Z.setAttribute("aria-expanded",q?"false":"true");const Re=l.t(q?"form.panel.expand":"form.panel.collapse");for(Z.setAttribute("aria-label",Re),Z.title=Re;Z.firstChild;)Z.removeChild(Z.firstChild);const ke=T(u,q?"chevronDown":"chevronUp");ke&&Z.appendChild(ke)}),D.appendChild(Z)}return i.applyCss(j,f.css),f.spacing!=null&&j.style.setProperty("--lattice-form-item-gap",f.spacing),f.hidden&&(j.hidden=!0),c.appendChild(j),j}}),Te("packages/modules/form/view.js",function($,X){"use strict";Object.defineProperty($,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return H}}),Object.defineProperty($,"applyCss",{enumerable:!0,get:function(){return M}}),Object.defineProperty($,"runValidation",{enumerable:!0,get:function(){return me}}),Object.defineProperty($,"markValidation",{enumerable:!0,get:function(){return z}}),Object.defineProperty($,"validateItem",{enumerable:!0,get:function(){return F}}),Object.defineProperty($,"buildItem",{enumerable:!0,get:function(){return W}}),Object.defineProperty($,"buildBlock",{enumerable:!0,get:function(){return ne}}),Object.defineProperty($,"buildChildren",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"mount",{enumerable:!0,get:function(){return ce}}),Object.defineProperty($,"wizardGoTo",{enumerable:!0,get:function(){return K}}),Object.defineProperty($,"wizardNext",{enumerable:!0,get:function(){return oe}}),Object.defineProperty($,"wizardBack",{enumerable:!0,get:function(){return R}});const e=X("packages/modules/form/styles.js"),I=e.NS,x=e.injectColsBreakpoint,te=e.NEVER_STACK_COLS_CONTAINER,_=X("packages/modules/form/model.js"),T=_.cssSize,O=_.isEmpty,k=X("packages/modules/form/ids.js").nextId,g=X("packages/modules/form/controls/registry.js").resolveControl,a=X("packages/modules/form/rules.js").applyRules,h=X("packages/modules/form/enter-submit.js").attachEnterSubmit,r=X("packages/modules/form/state.js").syncRecordState,p=X("packages/modules/form/stepper.js").createStepper,y=X("packages/modules/form/validation.js"),b=y.normalizeHookResult,m=y.validateValue,V=X("packages/modules/form/extras.js"),l=V.buildTooltip,f=V.buildLock,c=V.buildAddons,s=V.renderAvatarAddon,i=V.buildPanel,u="data-lattice-separator-label-styles";function j(){return`
1318
- .${I}__separator--labelled{
1334
+ .${R}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1335
+ .${R}__panel-body{ min-width:0; min-height:0; }
1336
+ .${R}__panel-body[hidden]{ display:none; }
1337
+ `.trim()}function d(l){const f=l&&l.documentElement;if(!f||(O(l),f.getAttribute(g)))return;f.setAttribute(g,"1");const c=l.createElement("style");c.textContent=a(),(l.head||l.body||f).appendChild(c)}function h(l,f,c,s){f.addEventListener(c,s),l.disposers.push(()=>f.removeEventListener(c,s))}function t(l,f){if(f==null||f==="")return null;if(f.nodeType){const i=f.cloneNode(!0);return i.setAttribute&&i.setAttribute("aria-hidden","true"),i}const c=P(l,String(f));if(c)return c;const s=l.createElement("span");return s.className=`${R}__icon-glyph`,s.setAttribute("aria-hidden","true"),s.textContent=String(f).slice(0,2),s}function r(l,f){const{labelEl:c,item:s,labelPosition:i,labelWidth:u}=f,j=s.tooltip;if(typeof j!="string"||j===""||i==="hidden")return null;d(l.doc);const F=l.doc,M=F.createElement("div");M.className=`${R}__label-group`,i==="left"&&u!=null&&(M.style.flex=`0 0 ${typeof u=="number"?`${u}px`:String(u)}`),M.appendChild(c);const D=re("lat-form-tip"),Q=F.createElement("span");Q.className=`${R}__tooltip-wrap`;const Z=F.createElement("button");Z.type="button",Z.className=`${R}__tooltip-trigger`,Z.setAttribute("aria-label",l.t("form.tooltip.help")),Z.setAttribute("aria-expanded","false"),Z.setAttribute("aria-controls",D),Z.textContent="?";const ae=F.createElement("span");ae.className=`${R}__tooltip`,ae.setAttribute("id",D),ae.setAttribute("role","tooltip"),ae.textContent=j,Q.appendChild(Z),Q.appendChild(ae),M.appendChild(Q);let Y=!1;const ee=()=>{Z.setAttribute("aria-expanded","true"),ae.classList.add(`${R}__tooltip--open`)},ze=()=>{Y||(Z.setAttribute("aria-expanded","false"),ae.classList.remove(`${R}__tooltip--open`))};return h(l,Z,"mouseenter",ee),h(l,Z,"mouseleave",ze),h(l,Z,"focus",ee),h(l,Z,"blur",ze),h(l,Z,"click",Ce=>{Ce.stopPropagation(),Y=!Y,Y?ee():ze()}),{group:M,tooltipId:D}}function n(l,f,c,s){const i=s&&s.tagName;if(!(c.lockIcon!==!1&&(i==="INPUT"||i==="TEXTAREA")&&(c.readOnly===!0||c.readOnlyWhen!=null)))return null;d(l.doc);const j=l.doc.createElement("span");j.className=`${R}__lock`,j.setAttribute("aria-hidden","true"),j.title=l.t("form.readonly");const F=P(l.doc,"lock");return F&&j.appendChild(F),f.appendChild(j),{el:j}}function p(l,f){if(!Array.isArray(l))return null;const c=f==null?"":String(f);for(const s of l){if(s!=null&&typeof s=="object"&&Array.isArray(s.options)){const i=p(s.options,f);if(i)return i;continue}if(s!=null&&typeof s=="object"){const i=s.value==null?"":String(s.value);if(i===c)return{label:s.label!=null?String(s.label):i,avatar:s.avatar,color:s.color}}else{const i=String(s);if(i===c)return{label:i,avatar:void 0,color:void 0}}}return null}function v(l,f,c){let s=null,i=f==null?"":String(f),u;if(typeof l=="function")s=l(f,c);else if(l===!0){const j=p(c.options,f);j&&(i=j.label,u=j.color,j.avatar!=null&&j.avatar!==""&&(s=String(j.avatar)))}else s=String(l);if(s==null||s===""){if(i==null||i==="")return null;s=C(i)}return{avatar:s,label:i,color:u}}function b(l,f,c,s,i){for(;f.firstChild;)f.removeChild(f.firstChild);const u=v(c.avatar,s,i);u&&f.appendChild(E(l,u))}function m(l,f){const c=f.addons;if(!Array.isArray(c)||c.length===0)return null;d(l.doc);const s=l.doc,i=s.createElement("div");i.className=`${R}__addons`;const u=[];for(const j of c){if(j==null||typeof j!="object")continue;if(j.avatar!==void 0&&j.avatar!==null&&j.avatar!==!1){const Z=s.createElement("span");Z.className=`${R}__addon-avatar`,Z.setAttribute("aria-hidden","true"),i.appendChild(Z),u.push({el:Z,spec:j,avatar:!0});continue}const M=j.href,D=s.createElement(M!=null?"a":"button");D.className=`${R}__addon`,M==null?D.type="button":D.href=String(M),j.ariaLabel!=null&&j.ariaLabel!==""&&(D.setAttribute("aria-label",String(j.ariaLabel)),D.title=j.tooltip!=null&&j.tooltip!==""?String(j.tooltip):String(j.ariaLabel));const Q=t(s,j.icon);Q&&D.appendChild(Q),i.appendChild(D),u.push({el:D,spec:j,avatar:!1})}return{bar:i,entries:u}}function V(l,f,c,s,i){d(l.doc);const u=l.doc,j=u.createElement("section");j.className=`${R}__panel`;const F=u.createElement("div");F.className=`${R}__panel-header`;const M=u.createElement("div");if(M.className=`${R}__panel-heading`,f.title!=null){const Z=u.createElement("h3");Z.className=`${R}__panel-title`,Z.textContent=f.title,M.appendChild(Z)}if(f.subtitle!=null){const Z=u.createElement("p");Z.className=`${R}__panel-subtitle`,Z.textContent=f.subtitle,M.appendChild(Z)}F.appendChild(M);const D=u.createElement("div");D.className=`${R}__panel-actions`,F.appendChild(D),j.appendChild(F);const Q=u.createElement("div");Q.className=`${R}__panel-body`,f.axis&&(Q.classList.add(o(f.axis)),i.buildChildren(l,Q,f.blocks,f.axis,s)),j.appendChild(Q);for(const Z of f.actions){const ae=u.createElement("button");ae.type="button",ae.className=`${R}__panel-action`,Z.ariaLabel!=null&&Z.ariaLabel!==""&&(ae.setAttribute("aria-label",String(Z.ariaLabel)),ae.title=String(Z.ariaLabel));const Y=t(u,Z.icon);Y&&ae.appendChild(Y),typeof Z.onClick=="function"&&h(l,ae,"click",()=>{Z.onClick()}),D.appendChild(ae)}if(f.collapsible){const Z=u.createElement("button");Z.type="button",Z.className=`${R}__panel-action ${R}__panel-collapse`,Z.setAttribute("aria-expanded","true");const ae=l.t("form.panel.collapse");Z.setAttribute("aria-label",ae),Z.title=ae;const Y=P(u,"chevronUp");Y&&Z.appendChild(Y);let ee=!1;h(l,Z,"click",()=>{ee=!ee,Q.hidden=ee,Z.setAttribute("aria-expanded",ee?"false":"true");const ze=l.t(ee?"form.panel.expand":"form.panel.collapse");for(Z.setAttribute("aria-label",ze),Z.title=ze;Z.firstChild;)Z.removeChild(Z.firstChild);const Ce=P(u,ee?"chevronDown":"chevronUp");Ce&&Z.appendChild(Ce)}),D.appendChild(Z)}return i.applyCss(j,f.css),f.spacing!=null&&j.style.setProperty("--lattice-form-item-gap",f.spacing),f.hidden&&(j.hidden=!0),c.appendChild(j),j}}),Te("packages/modules/form/view.js",function($,J){"use strict";Object.defineProperty($,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return F}}),Object.defineProperty($,"applyCss",{enumerable:!0,get:function(){return M}}),Object.defineProperty($,"runValidation",{enumerable:!0,get:function(){return me}}),Object.defineProperty($,"markValidation",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"validateItem",{enumerable:!0,get:function(){return U}}),Object.defineProperty($,"buildItem",{enumerable:!0,get:function(){return W}}),Object.defineProperty($,"buildBlock",{enumerable:!0,get:function(){return q}}),Object.defineProperty($,"buildChildren",{enumerable:!0,get:function(){return ne}}),Object.defineProperty($,"mount",{enumerable:!0,get:function(){return se}}),Object.defineProperty($,"wizardGoTo",{enumerable:!0,get:function(){return K}}),Object.defineProperty($,"wizardNext",{enumerable:!0,get:function(){return oe}}),Object.defineProperty($,"wizardBack",{enumerable:!0,get:function(){return z}});const e=J("packages/modules/form/styles.js"),R=e.NS,k=e.injectColsBreakpoint,re=e.NEVER_STACK_COLS_CONTAINER,_=J("packages/modules/form/model.js"),P=_.cssSize,O=_.isEmpty,C=J("packages/modules/form/ids.js").nextId,g=J("packages/modules/form/controls/registry.js").resolveControl,a=J("packages/modules/form/rules.js").applyRules,h=J("packages/modules/form/enter-submit.js").attachEnterSubmit,r=J("packages/modules/form/state.js").syncRecordState,p=J("packages/modules/form/stepper.js").createStepper,v=J("packages/modules/form/validation.js"),b=v.normalizeHookResult,m=v.validateValue,V=J("packages/modules/form/extras.js"),l=V.buildTooltip,f=V.buildLock,c=V.buildAddons,s=V.renderAvatarAddon,i=V.buildPanel,u="data-lattice-separator-label-styles";function j(){return`
1338
+ .${R}__separator--labelled{
1319
1339
  display:flex; align-items:center; gap:var(--lattice-space);
1320
1340
  border-top:0; margin:var(--lattice-space) 0; width:100%;
1321
1341
  }
1322
- .${I}__separator--labelled .${I}__separator-rule{
1342
+ .${R}__separator--labelled .${R}__separator-rule{
1323
1343
  flex:1 1 auto; min-width:0; height:0;
1324
1344
  border-top:var(--lattice-border-width) solid var(--lattice-border-color);
1325
1345
  }
1326
- .${I}__separator--labelled .${I}__separator-label{
1346
+ .${R}__separator--labelled .${R}__separator-label{
1327
1347
  color:var(--lattice-foreground-muted);
1328
1348
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
1329
1349
  }
1330
- `.trim()}function H(P){const L=P&&P.documentElement;if(!L||L.getAttribute(u))return;L.setAttribute(u,"1");const C=P.createElement("style");C.textContent=j(),(P.head||P.body||L).appendChild(C)}function M(P,L){if(L!=null){if(typeof L=="string"){if(L.trim()){const C=typeof P.style.cssText=="string"?P.style.cssText:"";P.style.cssText=C?`${C};${L}`:L}return}for(const C of Object.keys(L))P.style[C]=L[C]}}function D(P){return P==="cols"?`${I}__cols`:P==="items"?`${I}__items`:`${I}__rows`}function Q(P,L,C,U){L.addEventListener(C,U),P.disposers.push(()=>L.removeEventListener(C,U))}function Z(P){if(P==null)return null;const L=P.tagName;return L==="INPUT"||L==="TEXTAREA"||L==="SELECT"?P:typeof P.querySelector=="function"?P.querySelector("input, textarea, select"):null}function ae(P,L,C){const U={name:L.item.name,value:C,previousValue:L.value,item:L.item},J=P.emitter.emitBefore("beforeChange",U,"user"),ie=()=>{L.value=C,L.item.value=C,ke(L);const _e=L.validation&&L.validation.valid===!1;P.emitter.emit("change",{name:L.item.name,value:C,previousValue:U.previousValue,item:L.item}),a(P),(L.item.validationMode==="change"||_e)&&F(P,L)},fe=_e=>{L.def.write(L.control,L.value),Re(P,L,_e)},xe=_e=>{if(!_e){L.def.write(L.control,L.value);return}const Le=Y(P,L,C);Le&&typeof Le.then=="function"?Le.then(Se=>{Se.ok?ie():fe(Se.message)}):Le.ok?ie():fe(Le.message)};J&&typeof J.then=="function"?J.then(xe):xe(J)}function Y(P,L,C){if(L.ruleRequired&&O(C))return{ok:!1,message:P.t("form.required")};const U=L.def;if(typeof U.validate!="function")return{ok:!0,message:null};const J=U.validate(L.control,L.item,C);return J&&typeof J.then=="function"?J.then(ie=>q(P,ie)):q(P,J)}function q(P,L){return L===!1?{ok:!1,message:P.t("form.invalid")}:typeof L=="string"?{ok:!1,message:L}:{ok:!0,message:null}}function Re(P,L,C){let U=L.errorEl;U||(U=P.doc.createElement("div"),U.className=`${I}__error`,U.id=k("lat-form"),L.controlWrap.appendChild(U),L.errorEl=U);const J=C==null||C===""?P.t("form.invalid"):String(C);U.textContent=J,L.el.setAttribute("data-invalid","true"),L.control.setAttribute("aria-invalid","true");const ie=(L.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!L.validationEl.hidden&&L.validationEl.textContent===J&&ie.includes(L.validationEl.id))&&!ie.includes(U.id)&&(ie.push(U.id),L.control.setAttribute("aria-describedby",ie.join(" ")))}function ke(P){P.errorEl&&(P.errorEl.remove(),P.errorEl=null),P.el.removeAttribute("data-invalid"),P.control.removeAttribute("aria-invalid")}function me(P,L){const C=L.value,U=L.item;if(typeof L.def.validate=="function"){const J=b(L.def.validate(L.control,U,C),U,P.t);if(J)return J}return m(U,C,P.t,L.ruleRequired===!0)}function S(P){const L=P.control;if(!L||typeof L.querySelector!="function")return L||null;let C=null;try{C=L.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{C=null}return C||L}function z(P,L,C){const U=L.item,J=L.validationEl;if(L.validation.pristine=!1,L.preEl&&(L.preEl.hidden=!0),C){L.validation.valid=!1,L.validation.code=C.code,L.validation.message=C.message,L.control.setAttribute("aria-invalid","true");const fe=L.tooltipId?`${L.tooltipId} ${J.id}`:J.id;L.control.setAttribute("aria-describedby",fe);const xe=S(L);xe&&(xe.setAttribute("aria-invalid","true"),xe.setAttribute("aria-describedby",fe)),J.textContent=C.message,J.className=`${I}__validation ${I}__validation--error`,J.hidden=!1;return}L.validation.valid=!0,L.validation.code=null,L.validation.message=null,L.control.removeAttribute("aria-invalid"),L.tooltipId?L.control.setAttribute("aria-describedby",L.tooltipId):L.control.removeAttribute("aria-describedby");const ie=S(L);ie&&ie!==L.control&&(ie.removeAttribute("aria-invalid"),L.tooltipId?ie.setAttribute("aria-describedby",L.tooltipId):ie.removeAttribute("aria-describedby")),typeof U.successMessage=="string"&&U.successMessage!==""?(J.textContent=U.successMessage,J.className=`${I}__validation ${I}__validation--success`,J.hidden=!1):(J.textContent="",J.className=`${I}__validation`,J.hidden=!0)}function F(P,L){typeof L.def.reset=="function"&&L.def.reset(L.control,L.item);const C=me(P,L);z(P,L,C);const U=C==null;return P.emitter.emit("validated",{name:L.item.name,item:L.item,value:L.value,valid:U,failures:C?[{name:L.item.name,rule:C.code,message:C.message}]:[]}),U}function v(P,L){const C=L.control,U=L.item,J=L.def,ie=fe=>()=>{P.emitter.emit(fe,{name:U.name,item:U}),fe==="blur"&&U.validationMode==="blur"&&F(P,L)};if(J.kind==="field"){const fe=()=>{P.emitter.emit("input",{name:U.name,value:J.read(C,U),item:U})},xe=()=>{ae(P,L,J.read(C,U))};Q(P,C,"input",fe),Q(P,C,"change",xe);for(const _e of J.domEvents||[])Q(P,C,_e,Se=>{const Pe=Se&&typeof Se=="object"&&Se.detail&&typeof Se.detail=="object"?Se.detail:null;P.emitter.emit(_e,Pe?{name:U.name,item:U,...Pe}:{name:U.name,value:J.read(C,U),item:U})})}else J.kind==="toggle"?Q(P,C,"change",()=>{ae(P,L,J.read(C,U))}):J.kind==="button"&&Q(P,C,"click",()=>{C.disabled||C.getAttribute("aria-disabled")==="true"||P.emitter.emit("click",{name:U.name,item:U,value:null})});J.kind!=="display"&&(Q(P,C,"focus",ie("focus")),Q(P,C,"blur",ie("blur")))}function B(P,L){if(typeof P=="string"&&/%$/.test(P.trim())){const C=parseFloat(P);if(Number.isFinite(C)){const U=Math.round(C*L/100*1e6)/1e6;return`0 0 calc(${C}% - ${U} * var(--lattice-space))`}}return`0 0 ${T(P)}`}function W(P,L,C,U={}){const J=g(L.type)||g("text"),ie=L.labelPosition!=null?L.labelPosition:U.labelPosition!=null?U.labelPosition:"top",fe=L.labelWidth!=null?L.labelWidth:U.labelWidth,xe=L.requiredHint!==void 0?L.requiredHint:U.requiredHint,_e=P.doc.createElement("div");_e.className=`${I}__item`,_e.setAttribute("data-label-position",ie);const Le=J.build(L,P),Se=J.action===!0,Pe=!Se&&L.label!=null&&L.label!=="";let A=null,ee=null;if(Pe){A=P.doc.createElement("label"),A.className=`${I}__label`,A.textContent=String(L.label);const Ce=k("lat-form");A.setAttribute("for",Ce),(Z(Le)||Le).id=Ce,ie==="hidden"&&A.classList.add(`${I}__label--hidden`);const Me=l(P,{labelEl:A,item:L,labelPosition:ie,labelWidth:fe});Me?(ee=Me.tooltipId,_e.appendChild(Me.group)):(ie==="left"&&fe!=null&&(A.style.flex=`0 0 ${T(fe)}`),_e.appendChild(A))}else if(ie==="hidden"&&!Se){const Ce=Z(Le);Ce&&L.placeholder!=null&&L.placeholder!==""&&Ce.setAttribute("aria-label",String(L.placeholder))}const pe=P.doc.createElement("div");pe.className=`${I}__control`,pe.appendChild(Le);const G=f(P,pe,L,Le),de=c(P,L);let ye=pe;if(de&&(ye=P.doc.createElement("div"),ye.className=`${I}__field`,ye.appendChild(pe),ye.appendChild(de.bar)),_e.appendChild(ye),!Se&&L.helpMessage!=null&&L.helpMessage!==""){const Ce=P.doc.createElement("div");Ce.className=`${I}__help`,Ce.textContent=String(L.helpMessage),pe.appendChild(Ce)}let be=null;!Se&&L.preMessage!=null&&L.preMessage!==""&&(be=P.doc.createElement("div"),be.className=`${I}__pre`,be.textContent=String(L.preMessage),pe.appendChild(be));const we=P.doc.createElement("div");we.className=`${I}__validation`,we.id=k("lat-form"),we.hidden=!0,pe.appendChild(we),L.width!=null&&(U.colsGapCount!=null?_e.style.setProperty("--lattice-item-flex",B(L.width,U.colsGapCount)):(_e.style.width=T(L.width),_e.style.flex="0 0 auto")),ie==="left"&&(ye.style.flex="1 1 auto"),Se&&ie==="left"&&fe!=null&&!(L.props&&L.props.fullWidth===!0)&&(ye.style.paddingLeft=`calc(${T(fe)} + var(--lattice-space))`),M(_e,L.css);const Be=J.read(Le,L),ze={item:L,el:_e,control:Le,controlWrap:pe,def:J,value:Be,hidden:L.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:we,preEl:be,labelEl:A,labelPosition:ie,requiredHint:xe,placeholderEl:Z(Le),placeholderBase:L.placeholder!=null?String(L.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:ee,lockEl:G?G.el:null};if(L.value=Be,ee&&ze.control.setAttribute("aria-describedby",ee),de)for(const Ce of de.entries){if(Ce.avatar){s(P.doc,Ce.el,Ce.spec,ze.value,ze.item);continue}typeof Ce.spec.onClick=="function"&&Q(P,Ce.el,"click",()=>{Ce.spec.onClick(ze.value,ze.item)})}if(ze.syncLock=()=>{if(!ze.lockEl)return;const Ce=ze.item.readOnly===!0||ze.ruleReadOnly;ze.lockEl.hidden=!Ce,ze.lockEl.parentElement.classList.toggle(`${I}__control--lock`,Ce)},ze.syncAddons=()=>{if(!de)return;const Ce=ze.item.disabled===!0;for(const Me of de.entries){if(Me.avatar){s(P.doc,Me.el,Me.spec,ze.value,ze.item);continue}Me.el.tagName==="A"?Me.el.setAttribute("aria-disabled",Ce?"true":"false"):Me.el.disabled=Ce}},r(ze),ze.hidden&&(_e.hidden=!0),J.custom&&Le.__latticeFormApi){const Ce=Le.__latticeFormApi;Ce._read=()=>ze.value,Ce._write=Me=>{ze.value=Me,ze.item.value=Me,J.write(Le,Me),a(P)},Ce._commit=Me=>{ae(P,ze,Me)},Ce._input=Me=>{P.emitter.emit("input",{name:ze.item.name,value:Me,item:ze.item})}}return typeof J.destroy=="function"&&P.disposers.push(()=>J.destroy(Le)),v(P,ze),P.order.push(ze),L.name!=null&&P.items.set(L.name,ze),C.appendChild(_e),ze}function ne(P,L,C,U={}){const J={labelPosition:L.labelPosition!=null?L.labelPosition:U.labelPosition,labelWidth:L.labelWidth!=null?L.labelWidth:U.labelWidth,requiredHint:U.requiredHint};if(L.kind==="panel")return i(P,L,C,J,{buildChildren:re,applyCss:M});if(L.kind==="spacer"){const fe=P.doc.createElement("div");return fe.className=`${I}__spacer`,M(fe,L.css),L.hidden&&(fe.hidden=!0),C.appendChild(fe),fe}if(L.kind==="separator"){const fe=P.doc.createElement("div");fe.className=`${I}__separator`,fe.setAttribute("role","separator");const xe=L.label;if(xe!=null){H(P.doc),fe.classList.add(`${I}__separator--labelled`);const _e=P.t(xe);fe.setAttribute("aria-label",_e);const Le=P.doc.createElement("span");Le.className=`${I}__separator-rule`,Le.setAttribute("aria-hidden","true");const Se=P.doc.createElement("span");Se.className=`${I}__separator-label`,Se.textContent=_e;const Pe=P.doc.createElement("span");Pe.className=`${I}__separator-rule`,Pe.setAttribute("aria-hidden","true"),fe.appendChild(Le),fe.appendChild(Se),fe.appendChild(Pe)}else fe.setAttribute("aria-label",P.t("form.separator"));return M(fe,L.css),L.hidden&&(fe.hidden=!0),C.appendChild(fe),fe}if(L.kind==="fieldset"){const fe=P.doc.createElement("fieldset");if(fe.className=`${I}__fieldset`,L.legend!=null){const _e=P.doc.createElement("legend");_e.className=`${I}__legend`,_e.textContent=L.legend,fe.appendChild(_e)}const xe=P.doc.createElement("div");return xe.className=`${I}__fieldset-body`,L.axis&&xe.classList.add(D(L.axis)),L.axis&&re(P,xe,L.blocks,L.axis,J),fe.appendChild(xe),M(fe,L.css),L.spacing!=null&&fe.style.setProperty("--lattice-form-item-gap",L.spacing),L.hidden&&(fe.hidden=!0),C.appendChild(fe),fe}const ie=P.doc.createElement("div");return ie.className=D(L.axis),L.axis&&re(P,ie,L.blocks,L.axis,J),M(ie,L.css),L.spacing!=null&&ie.style.setProperty("--lattice-form-item-gap",L.spacing),L.hidden&&(ie.hidden=!0),C.appendChild(ie),ie}function re(P,L,C,U,J={}){const ie=U==="cols"?{...J,colsGapCount:C.length-1}:J;for(const fe of C)fe.kind==="item"?W(P,fe,L,ie):ne(P,fe,L,J)}function ce(P){const L=P.el;for(;L.firstChild;)L.removeChild(L.firstChild);P.items.clear(),P.order.length=0;const C=P.model;L.classList.add(I,D(C.axis)),L.setAttribute("data-density",C.density),C.colsBreakpoint===!1?L.style.setProperty("--lattice-cols-container",te):C.colsBreakpoint!==480&&L.style.setProperty("--lattice-cols-container",x(P.doc,C.colsBreakpoint)),P.disposers.push(()=>{L.classList.remove(`${I}__rows`,`${I}__cols`,`${I}__items`)}),M(L,C.css),C.spacing!=null&&L.style.setProperty("--lattice-form-item-gap",C.spacing),C.labelGap!=null&&L.style.setProperty("--lattice-form-label-gap",C.labelGap);const U={labelPosition:C.labelPosition,labelWidth:C.labelWidth,requiredHint:C.requiredHint};C.steps&&C.steps.length?N(P,U):re(P,L,C.blocks,C.axis==="cols"?"cols":"rows",U),a(P),h(P)}function N(P,L={}){const C=P.model,U=C.steps,J=P.doc,ie=P.el,fe=J.createElement("div");ie.appendChild(fe);const xe=p(fe,{doc:J,t:P.t,steps:U.map(de=>({id:de.id,label:de.label})),active:0,orientation:C.stepOrientation,onGoTo:de=>{K(P,de)}}),_e=[];let Le=P.order.length;for(const de of U){const ye=J.createElement("div");ye.className=`${I}__step`,ye.hidden=!0,re(P,ye,de.blocks,de.axis,L),de.css&&M(ye,de.css),ie.appendChild(ye);const be=P.order.length;ye.__records=P.order.slice(Le,be),Le=be,_e.push(ye)}const Se=J.createElement("div");Se.className=`${I}__step-nav`;const Pe=J.createElement("button");Pe.type="button",Pe.className=`${I}__step-back`,Pe.textContent=P.t("form.back");const A=J.createElement("button");A.type="button",A.className=`${I}__step-next`,A.textContent=P.t("form.next"),Se.appendChild(Pe),Se.appendChild(A),ie.appendChild(Se);const ee={steps:U,bodies:_e,stepper:xe,back:Pe,next:A,active:0};P.wizard=ee;const pe=()=>{xe.setActive(ee.active),_e.forEach((de,ye)=>{de.hidden=ye!==ee.active}),Pe.disabled=ee.active===0,A.textContent=ee.active===U.length-1?P.t("form.finish"):P.t("form.next")},G=de=>{const ye=_e[de].__records||[];for(const be of ye)if(be.item.name!=null&&!(be.def.kind!=="field"&&be.def.kind!=="toggle")&&be.item.disabled!==!0&&!(be.ruleHidden===!0||be.hidden===!0)&&!(be.item.required!==!0&&be.item.validation==null&&typeof be.def.validate!="function"&&be.ruleRequired!==!0)&&!F(P,be))return typeof be.def.focus=="function"?be.def.focus(be.control):typeof be.control.focus=="function"&&be.control.focus(),be;return null};ee._stepInvalid=G,ee._render=pe,Pe.addEventListener("click",()=>{R(P)}),A.addEventListener("click",()=>{oe(P)}),pe()}async function K(P,L){const C=P.wizard;if(!C)return!1;const U=C.steps.length,J=Number(L);if(!Number.isFinite(J)||J<0||J>=U)return!1;const ie=C.active;if(J===ie)return!1;if(J>ie&&P.model.validateSteps!==!1)for(let fe=ie;fe<J;fe+=1){if(C._stepInvalid(fe))return C.stepper.setStatus(fe,"error"),!1;C.stepper.setStatus(fe,"complete")}return C.active=J,C._render(),!0}function oe(P){const L=P.wizard;if(!L)return Promise.resolve(!1);if(L.active>=L.steps.length-1){if(P.model.validateSteps===!1)return Promise.resolve(!0);const C=L._stepInvalid(L.active);return L.stepper.setStatus(L.active,C?"error":"complete"),Promise.resolve(C==null)}return K(P,L.active+1)}function R(P){const L=P.wizard;return L?K(P,L.active-1):Promise.resolve(!1)}}),Te("packages/modules/form/emitter.js",function($,X){"use strict";Object.defineProperty($,"FORM_EVENTS",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"Emitter",{enumerable:!0,get:function(){return x}});const e=new Set(["api","user"]),I=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class x{#e=new Map;on(_,T){if(typeof T!="function")return()=>{};let O=this.#e.get(_);return O||(O=new Set,this.#e.set(_,O)),O.add(T),()=>this.off(_,T)}off(_,T){const O=this.#e.get(_);O&&O.delete(T)}emit(_,T){const O=this.#e.get(_),w=this.#e.get("*");if((!O||O.size===0)&&(!w||w.size===0))return;const k={...T||null,type:_},E=[],g=o=>{for(const a of[...o])try{a(k)}catch(d){E.push(d)}};O&&O.size&&g(O),w&&w.size&&g(w);for(const o of E)queueMicrotask(()=>{throw o})}emitBefore(_,T,O){const w=this.#e.get(_);if(!w||w.size===0)return!0;let k=!1,E=null;const g=r=>{k=!0,r!=null&&E===null&&(E=String(r))},o=O||T&&T.origin,a={...T||null,type:_,origin:e.has(o)?o:"user",get defaultPrevented(){return k},get reason(){return E},preventDefault(r){g(r)}},d=[...w],h=()=>(k&&E===null&&(E="prevented"),k&&T&&typeof T=="object"&&(T.reason=E),!k),t=[];for(let r=0;r<d.length;r++){const n=d[r];try{const p=n(a);p&&typeof p.then=="function"?t.push(p):p===!1&&g("prevented")}catch(p){g("error"),console.warn(`lattice-form: a '${_}' before-handler threw; the commit was cancelled.`,p)}}return t.length===0?h():Promise.allSettled(t).then(r=>{for(const n of r)n.status==="rejected"?(g("error"),console.warn(`lattice-form: a '${_}' before-handler rejected; the commit was cancelled.`,n.reason)):n.value===!1&&g("prevented");return h()})}clear(){this.#e.clear()}}}),Te("packages/modules/form/bind-router.js",function($,X){"use strict";Object.defineProperty($,"routerBinding",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"writeRouterRecord",{enumerable:!0,get:function(){return x}});function e(te){return te!==null&&typeof te=="object"&&!Array.isArray(te)}function I(te){const{router:_,route:T,key:O}=te,w=o=>o!=null&&String(o.rowKey??o.id)===String(O);return{kind:"router",record:()=>_&&typeof _.get=="function"?_.get(T,O):void 0,items:()=>[],density:()=>{},subscribe:o=>{if(!_||typeof _.subscribe!="function")return()=>{};const a=h=>{if(h){for(const t of h.add||[])w(t)&&o(null,null,t);for(const t of h.update||[])w(t)&&o(null,null,t)}},d=_.subscribe(T,a);return typeof d=="function"?d:()=>{}},save:o=>x(te,o)}}function x(te,_){const{router:T,route:O,key:w,onSave:k}=te;if(!Object.keys(_||{}).length)return!0;const g=()=>T&&typeof T.get=="function"?T.get(O,w):void 0,o=r=>{!T||typeof T.apply!="function"||T.apply([{op:"upsert",row:r}])},a=()=>{!T||typeof T.apply!="function"||(e(d)?T.apply([{op:"upsert",row:d}]):T.apply([{op:"delete",row:h}]))},d=g(),h={...e(d)?d:{},..._};if(o(h),typeof k!="function")return!0;let t;try{t=k(_,h)}catch{return a(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(a(),!1)):!0}}),Te("packages/modules/form/bind.js",function($,X){"use strict";Object.defineProperty($,"resolveBind",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"isBound",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"applyBinding",{enumerable:!0,get:function(){return t}});const I=X("packages/modules/form/model.js").DENSITIES,te=X("packages/modules/form/bind-router.js").routerBinding,_=new Set(["number","currency","percent","integer","decimal","duration"]);function T(r){const n=r&&r.dataType;if(n&&(n.unitConfig||n.temperatureConfig))return!0;const p=r&&r.edit?r.edit.editor:null;return p==="unit"||p==="temperature"}function O(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function w(r){const n=r&&r.edit?r.edit.editor:null,p=r&&r.type;return n==="checkbox"||p==="boolean"?"checkbox":n==="number"||p!=null&&_.has(p)||T(r)?"number":"input"}function k(r){const n=r&&r.columns&&typeof r.columns.all=="function"?r.columns.all():[],p=[];for(const y of n){if(!y||!y.field||y.generated||y.computed)continue;const b={type:w(y),name:y.field,label:y.title,format:y.format},m=y.dataType,V=m&&m.unitConfig,l=m&&m.temperatureConfig;V?Object.assign(b,{system:V.system,unit:V.unit,binary:V.binary,decimals:V.decimals,minDecimals:V.minDecimals,maxDecimals:V.maxDecimals,display:V.display,group:V.group,space:V.space,placement:V.placement,significantFigures:V.significantFigures,compound:V.compound,nullDisplay:V.nullDisplay}):l&&Object.assign(b,{scale:l.scale,display:l.display,decimals:l.decimals,minDecimals:l.minDecimals,maxDecimals:l.maxDecimals,space:l.space,nullDisplay:l.nullDisplay}),p.push(b)}return p}function E(r,n){const p=r&&r.columns&&typeof r.columns.all=="function"?r.columns.all():[];for(const y of p)if(y&&y.field===n)return y;return null}function g(r){const n=r&&typeof r.get=="function"?r.get("density"):void 0;return I.includes(n)?n:void 0}function o(r){const{grid:n,rowKey:p}=r,y=()=>{const l=n&&n.rows&&typeof n.rows.byKey=="function"?n.rows.byKey(p):null;return l&&O(l.data)?{...l.data}:{}},b=l=>{const f=E(n,l);return f?f.id:l};return{kind:"grid",record:y,items:()=>k(n),density:()=>g(n),subscribe:l=>{if(!n||typeof n.on!="function")return()=>{};const f=c=>{if(!c||c.key!==p)return;const s=n.columns&&typeof n.columns.get=="function"?n.columns.get(c.colId):null,i=s?s.field:c.colId;i&&l(i,c.value)};return n.on("cell:changed",f)},save:l=>{const f=Object.keys(l);if(!f.length)return!0;if(!n||!n.edit||typeof n.edit.setCells!="function")return!1;const c=f.map(i=>({key:p,colId:b(i),value:l[i]})),s=n.edit.setCells(c,"cell",{origin:"form"});return s&&typeof s.then=="function"?s.then(i=>i>0):s>0}}}function a(r){return{kind:"values",record:()=>({...r}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:y=>{for(const b of Object.keys(y))r[b]=y[b];return!0}}}function d(r){const n=r&&r.bind;return n==null||typeof n!="object"?null:n.grid!=null&&O(n.grid)?o(n):n.router!=null?te(n):a(n)}function h(r){return!!(r&&r.bind!=null&&typeof r.bind=="object")}function t(r,n,p){r.bound=p;const y=(V,l)=>{const f=n.getItem(V);f&&f.setValue(l)},b=(V,l,f)=>{if(f!=null){for(const c of Object.keys(f))if(r.items.has(c)){if(r.dirty.has(c)){r.conflicts.add(c);continue}r.baseline[c]=f[c],y(c,f[c])}return}if(r.items.has(V)){if(r.dirty.has(V)){r.conflicts.add(V);return}r.baseline[V]=l,y(V,l)}},m=p.record();if(m!=null&&typeof m=="object")for(const V of Object.keys(m))r.items.has(V)&&(r.baseline[V]=m[V],y(V,m[V]));r.disposers.push(n.on("change",V=>{r.dirty.add(V.name),r.conflicts.delete(V.name)})),r.disposers.push(p.subscribe(b))}}),Te("packages/modules/form/controls/input.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=Object.freeze(["text","email","password","url"]),te=Object.freeze({viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"],paint:"fill"}),_=Object.freeze({viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"});function T(g){return x.includes(g)?g:"text"}function O(g){return!(g.props&&g.props.reveal===!1)}function w(g,o){const a=o?_:te,d=g.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("viewBox",a.viewBox),d.setAttribute("focusable","false"),d.setAttribute("aria-hidden","true"),a.paint==="stroke"?(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round")):d.setAttribute("fill","currentColor");for(const h of a.paths){const t=g.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",h),d.appendChild(t)}return d}function k(g){return g.__latPassword?g.__latPassword.input:g}function E(g,o,a){const d=o&&o.defaultView,h=d&&d.Event,t=h?new h(a,{bubbles:!0}):{type:a,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};g.dispatchEvent(t)}I("input",{kind:"field",build(g,o){const a=o.doc,d=T(g.subtype);if(d!=="password"||!O(g)){const m=a.createElement("input");return m.type=d,g.name&&(m.name=g.name),g.placeholder!=null&&(m.placeholder=String(g.placeholder)),m.value=g.value==null?"":String(g.value),m}const h=a.createElement("div");h.className="lat-form__password";const t=a.createElement("input");t.type="password",g.name&&(t.name=g.name),g.placeholder!=null&&(t.placeholder=String(g.placeholder)),t.value=g.value==null?"":String(g.value),h.appendChild(t);const r=a.createElement("button");r.type="button",r.className="lat-form__password-btn",r.setAttribute("aria-pressed","false");const n=o.t("form.password.show");r.setAttribute("aria-label",n),r.title=n,r.appendChild(w(a,!1)),h.appendChild(r);const p={revealed:!1,disabled:!1,input:t,btn:r};h.__latPassword=p;const y=m=>{p.revealed=m===!0,t.type=p.revealed?"text":"password",r.setAttribute("aria-pressed",p.revealed?"true":"false");const V=o.t(p.revealed?"form.password.hide":"form.password.show");r.setAttribute("aria-label",V),r.title=V,r.replaceChild(w(a,p.revealed),r.firstChild)};p.setRevealed=y,r.addEventListener("click",()=>{p.disabled||y(!p.revealed)});let b=!1;return h.addEventListener("focusin",()=>{b||(b=!0,E(h,a,"focus"))}),h.addEventListener("focusout",m=>{h.contains(m.relatedTarget)||(b=!1,y(!1),E(h,a,"blur"))}),h},read(g){return k(g).value},write(g,o){k(g).value=o==null?"":String(o)},state(g,o){const a=k(g);a.disabled=o.disabled===!0,a.readOnly=o.readOnly===!0;const d=g.__latPassword;d&&(d.disabled=o.disabled===!0,d.btn&&(d.btn.disabled=d.disabled))},reset(g){const o=g.__latPassword;o&&typeof o.setRevealed=="function"&&o.setRevealed(!1)}})}),Te("packages/core/src/internal/predicates.js",function($,X){"use strict";Object.defineProperty($,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"isFunction",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"isNil",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"isBlank",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"isCtor",{enumerable:!0,get:function(){return _}});function e(T){return T!==null&&typeof T=="object"&&!Array.isArray(T)}function I(T){return typeof T=="function"}function x(T){return T==null}function te(T){return T==null||T===""}function _(T){return typeof T!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(T))?!0:!!(T.prototype&&Object.getOwnPropertyNames(T.prototype).length>1)}}),Te("packages/core/src/internal/warn.js",function($,X){"use strict";Object.defineProperty($,"reportedWarnings",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"warnOnce",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"infoOnce",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"resetWarnings",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"fail",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"invariant",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"DEV",{enumerable:!0,get:function(){return h}});const e=new Set,I=2e3;function x(t){if(e.add(t),e.size>I){const r=e.values().next().value;r!==void 0&&e.delete(r)}}const te=[],_=500;function T(t,r,n){te.push({key:t,level:r,message:n.map(p=>typeof p=="string"?p:O(p)).join(" "),at:Date.now()}),te.length>_&&te.shift()}function O(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function w(){return te.map(t=>({...t}))}function k(t){if(t.length===0||typeof t[0]!="string")return t;const r=t[0].replace(/^\[lattice\]\s*/,"");return r===t[0]?t:[r,...t.slice(1)]}function E(t,...r){if(e.has(t))return;x(t);const n=k(r);T(t,"warn",n),console.warn("[lattice]",...n)}function g(t,...r){if(e.has(t))return;x(t);const n=k(r);T(t,"info",n),console.info("[lattice]",...n)}function o(){e.clear(),te.length=0}function a(t,r){const n=new Error(`[lattice] ${t}`);throw r!==void 0&&(n.cause=r),n}function d(t,r){t||a(r)}const h=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Te("packages/core/src/format/mask.js",function($,X){"use strict";Object.defineProperty($,"splitSections",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"parseSection",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"compileMask",{enumerable:!0,get:function(){return T}});const e=new Set(["0","#","?",",","."]),I="\0";function x(w){const k=[];let E="",g=!1;for(let o=0;o<w.length;o++){const a=w[o];if(a==="\\"){E+=a+(w[o+1]??""),o+=1;continue}if(a==='"'){g=!g,E+=a;continue}if(a===";"&&!g){k.push(E),E="";continue}E+=a}return k.push(E),k}function te(w){let k="",E="",g="",o=1,a=!1,d=!1;const h=l=>{d?E+=l:k+=l};for(let l=0;l<w.length;l++){const f=w[l];if(f==="\\"){h(w[l+1]??""),l+=1;continue}if(f==='"'){const c=w.indexOf('"',l+1);h(c===-1?w.slice(l+1):w.slice(l+1,c)),l=c===-1?w.length:c;continue}if(f==="%"){o*=100,h("%");continue}if(f==="@"){a=!0,h("\0");continue}if(e.has(f)){g+=f,d=!0;continue}h(f)}let t=-1;for(let l=g.length-1;l>=0;l--){const f=g[l];if(f==="0"||f==="#"||f==="?"){t=l;break}}let r=!1,n="";for(let l=0;l<g.length;l++){const f=g[l];if(f===","){l>t?o/=1e3:r=!0;continue}n+=f}const p=n.indexOf("."),y=p===-1?n:n.slice(0,p),b=p===-1?"":n.slice(p+1);let m=0;for(const l of y)l==="0"&&(m+=1);let V=0;for(const l of b)l==="0"&&(V+=1);return{prefix:k,suffix:E,minInt:m,minDec:V,maxDec:b.length,grouping:r,scale:o,hasNumber:t!==-1,isText:a}}function _(w,k){const E=new Intl.NumberFormat(k,{minimumIntegerDigits:Math.max(w.minInt,1),minimumFractionDigits:w.minDec,maximumFractionDigits:Math.max(w.maxDec,w.minDec),useGrouping:w.grouping}),{prefix:g,suffix:o,scale:a,hasNumber:d}=w;return h=>{if(!d)return g+o;const t=a===1?h:h*a;return g+E.format(t)+o}}function T(w,k){const g=x(String(w)).map(te),o=g.map(n=>_(n,k)),a=0,d=g.length>1?1:-1,h=g.length>2?2:-1,t=g.length>3?3:-1,r=n=>{if(n==null||n==="")return"";if(typeof n!="number"||Number.isNaN(n)){const p=Number(n);if(Number.isNaN(p))return t===-1?String(n):(g[t].prefix+g[t].suffix).split("\0").join(String(n));n=p}return n===0&&h!==-1?o[h](0):n<0&&d!==-1?o[d](-n):o[a](n)};return r.spec={mask:w},{format:r,ooxml:O(String(w))}}function O(w){return w.trim()}}),Te("packages/core/src/format/pattern.js",function($,X){"use strict";Object.defineProperty($,"parseNumberPattern",{enumerable:!0,get:function(){return _}});const I=X("packages/core/src/format/mask.js").splitSections;function x(T){let O="",w="",k="",E="",g=!1,o=!1,a=!1,d=!1;const h=r=>{a?w+=r:O+=r};for(let r=0;r<T.length;r++){const n=T[r];if(n==="\\"){h(T[r+1]??""),r+=1;continue}if(n==='"'){const p=T.indexOf('"',r+1);h(p===-1?T.slice(r+1):T.slice(r+1,p)),r=p===-1?T.length:p;continue}if(n==="%"){o=!0;continue}if(n==="0"||n==="#"){a=!0,d?E+=n:k+=n;continue}if(n===","){d||(g=!0);continue}if(n==="."&&!d){d=!0;continue}h(n)}if(!a)return{hasDigit:!1,prefix:O,suffix:w,minDec:0,maxDec:0,grouping:!1,percent:o};let t=0;for(const r of E)r==="0"&&(t+=1);return{hasDigit:!0,prefix:O,suffix:w,minDec:t,maxDec:E.length,grouping:g,percent:o}}function te(T,O){const w=O.trim(),k=T.trim();return w.startsWith("(")&&w.endsWith(")")&&w.slice(1,-1).trim()===k?"parentheses":w.endsWith("-")?"suffix":"minus"}function _(T){if(typeof T!="string")return null;const O=I(T);if(O.length===0)return null;const w=x(O[0]);if(!w.hasDigit)return null;const k={style:w.percent?"percent":"decimal",prefix:w.prefix,suffix:w.suffix,minDecimals:w.minDec,maxDecimals:Math.max(w.maxDec,w.minDec),thousandsSeparator:w.grouping?void 0:!1};if(O.length>1&&(k.negative=te(O[0],O[1])),O.length>2){const E=x(O[2]);E.hasDigit||(k.zeroDisplay=E.prefix+E.suffix)}return k}}),Te("packages/core/src/format/number.js",function($,X){"use strict";Object.defineProperty($,"compileNumber",{enumerable:!0,get:function(){return O}});const I=X("packages/core/src/internal/predicates.js").isNil,te=X("packages/core/src/internal/warn.js").warnOnce,T=X("packages/core/src/format/pattern.js").parseNumberPattern;function O(w,k){const E=typeof w=="string"?{pattern:w}:w||{};let g=E;if(typeof E.pattern=="string"){const M=T(E.pattern);if(M){const{pattern:D,...Q}=E;g={...M,...Q}}else te(`format:pattern:${E.pattern}`,`invalid number format pattern "${E.pattern}"; the value will use the default number format`)}const o=g.locale||k||void 0,a=g.style||"decimal",d=typeof g.scale=="number"?g.scale:1,h=g.nullDisplay??"",t=g.zeroDisplay,r=g.prefix||"",n=g.suffix||"",p=g.negative||"minus",y=g.signed===!0,b={style:a,notation:g.notation||"standard"};a==="currency"&&(b.currency=g.currency||"USD",g.currencyDisplay&&(b.currencyDisplay=g.currencyDisplay)),typeof g.decimals=="number"?(b.minimumFractionDigits=g.decimals,b.maximumFractionDigits=g.decimals):(typeof g.minDecimals=="number"&&(b.minimumFractionDigits=g.minDecimals),typeof g.maxDecimals=="number"&&(b.maximumFractionDigits=g.maxDecimals),b.minimumFractionDigits>(b.maximumFractionDigits??20)&&(b.maximumFractionDigits=b.minimumFractionDigits)),g.thousandsSeparator===!1&&(b.useGrouping=!1),b.notation==="compact"&&(b.compactDisplay=g.compactDisplay||"short");const m=new Intl.NumberFormat(o,b),V=typeof g.thousandsSeparator=="string"?g.thousandsSeparator:null,l=typeof g.decimalSeparator=="string"?g.decimalSeparator:null;let f=",",c=".";if(V||l)for(const M of m.formatToParts(12345.6))M.type==="group"?f=M.value:M.type==="decimal"&&(c=M.value);const s=M=>{let D=M;return V&&(D=D.split(f).join("")),l&&(D=D.split(c).join("")),V&&(D=D.split("").join(V)),l&&(D=D.split("").join(l)),D},i=!!(V||l),u=r!==""&&a==="currency",j=M=>{let D;if(u){const Q=m.formatToParts(M);let Z=!1;D="";for(const ae of Q)D+=ae.value,!Z&&ae.type==="currency"&&(D+=r,Z=!0);Z||(D=r+D)}else D=r+m.format(M);return i&&(D=s(D)),D+n},H=M=>{if(I(M)||M==="")return h;const D=typeof M=="number"?M:Number(M);if(Number.isNaN(D))return h;const Q=d===1?D:D*d;return Q===0&&t!==void 0?t:Q<0?p==="parentheses"?`(${j(-Q)})`:p==="suffix"?`${j(-Q)}-`:j(Q):y&&Q>0?`+${j(Q)}`:j(Q)};return H.negativeClass=g.negativeClass||null,H.spec=g,H}}),Te("packages/core/src/columns/types/unit.js",function($,X){"use strict";Object.defineProperty($,"defineUnit",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"registerUnitSystem",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"unitSystemNames",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"unitsOf",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"localeSeparators",{enumerable:!0,get:function(){return V}}),Object.defineProperty($,"parseUnit",{enumerable:!0,get:function(){return H}}),Object.defineProperty($,"formatUnit",{enumerable:!0,get:function(){return Re}}),Object.defineProperty($,"createUnitType",{enumerable:!0,get:function(){return S}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return z}});const I=X("packages/core/src/internal/predicates.js").isNil,te=X("packages/core/src/internal/warn.js").warnOnce;function _(F,v,B,W){return Object.freeze({symbol:F,factor:v,aliases:Object.freeze(B||[]),binary:!!(W&&W.binary),prefix:W&&W.prefix||null,auto:!(W&&W.auto===!1)})}function T(F,v,B,W){return _(F,v,B,W)}const O=Object.freeze({data:Object.freeze([_("B",1,["byte","bytes"]),_("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),_("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),_("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),_("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),_("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),_("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),_("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),_("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),_("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([_("bps",1,["bit","bits","bit/s","b/s"]),_("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),_("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),_("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),_("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([_("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),_("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),_("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),_("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),_("in",.0254,["inch","inches"],{auto:!1}),_("ft",.3048,["foot","feet"],{auto:!1}),_("yd",.9144,["yard","yards"],{auto:!1}),_("m",1,["metre","metres","meter","meters"]),_("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),_("mi",1609.344,["mile","miles"],{auto:!1}),_("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([_("mg",.001,["milligram","milligrams"]),_("g",1,["gram","grams"]),_("oz",28.349523125,["ounce","ounces"],{auto:!1}),_("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),_("kg",1e3,["kilogram","kilograms"]),_("st",6350.29318,["stone"],{auto:!1}),_("t",1e6,["tonne","tonnes","ton"],{auto:!1}),_("ton (US)",907184.74,["ton","shortton"],{auto:!1}),_("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([_("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),_("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),_("ms",.001,["msec","msecs","millisecond","milliseconds"]),_("s",1,["sec","secs","second","seconds"]),_("m",60,["min","mins","minute","minutes"]),_("h",3600,["hr","hrs","hour","hours"]),_("d",86400,["day","days"])]),speed:Object.freeze([_("mm/s",.001,["millimetre/s","millimeter/s"]),_("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),_("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),_("mph",.44704,["mile/h","miles/h"],{auto:!1}),_("kn",1852/3600,["knot","knots"],{auto:!1}),_("m/s",1,["metre/s","meter/s","mps"]),_("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([_("mm/s²",.001,["mm/s2"]),_("ft/s²",.3048,["ft/s2"],{auto:!1}),_("m/s²",1,["m/s2","metre/s2","meter/s2"]),_("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([_("mm²",1e-6,["mm2"]),_("cm²",1e-4,["cm2"]),_("in²",64516e-8,["in2","sqin"],{auto:!1}),_("ft²",.09290304,["ft2","sqft"],{auto:!1}),_("yd²",.83612736,["yd2","sqyd"],{auto:!1}),_("m²",1,["m2","sqm"]),_("ha",1e4,["hectare","hectares"],{auto:!1}),_("ac",4046.8564224,["acre","acres"],{auto:!1}),_("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([_("µL",1e-6,["ul","microlitre","microliter"]),_("mL",.001,["millilitre","milliliter"]),_("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),_("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),_("L",1,["litre","litres","liter","liters"]),_("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),_("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),_("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),_("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([_("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),_("J",1,["joule","joules"]),_("cal",4.184,["calorie","calories"],{auto:!1}),_("kJ",1e3,["kilojoule","kilojoules"]),_("BTU",1055.05585262,["btu"],{auto:!1}),_("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),_("MJ",1e6,["megajoule","megajoules"]),_("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),_("GJ",1e9,["gigajoule","gigajoules"]),_("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([_("mW",.001,["milliwatt","milliwatts"]),_("W",1,["watt","watts"]),_("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),_("kW",1e3,["kilowatt","kilowatts"]),_("hp",745.6998715822702,["horsepower"],{auto:!1}),_("MW",1e6,["megawatt","megawatts"]),_("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([_("mN",.001,["millinewton","millinewtons"]),_("N",1,["newton","newtons"]),_("lbf",4.4482216152605,["poundforce"],{auto:!1}),_("kgf",9.80665,["kilogramforce"],{auto:!1}),_("kN",1e3,["kilonewton","kilonewtons"]),_("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([_("Pa",1,["pascal","pascals"]),_("mbar",100,["millibar"],{auto:!1}),_("inH₂O",249.0889,["inh2o"],{auto:!1}),_("mmHg",133.322387415,["torr"],{auto:!1}),_("kPa",1e3,["kilopascal","kilopascals"]),_("inHg",3386.388640341,["inhg"],{auto:!1}),_("psi",6894.757293168361,["lbf/in2"],{auto:!1}),_("bar",1e5,[],{auto:!1}),_("atm",101325,["atmosphere","atmospheres"],{auto:!1}),_("MPa",1e6,["megapascal","megapascals"]),_("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([_("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),_("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),_("kN·m",1e3,["knm","kn.m"],{auto:!1}),_("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([_("kg/m³",1,["kg/m3"]),_("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),_("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),_("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([_("L/min",1/6e4,["lpm","l/min"],{auto:!1}),_("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),_("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),_("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),_("cfm",.0004719474432,["ft3/min"],{auto:!1}),_("L/s",.001,["lps","l/s"],{auto:!1}),_("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([_("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),_("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),_("mrad",.001,["milliradian","milliradians"],{auto:!1}),_("mil",Math.PI/3200,["nato-mil"],{auto:!1}),_("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),_("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),_("rad",1,["radian","radians"]),_("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([_("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),_("rad/s",1,["radps","radians/s"]),_("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),_("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([_("ppt",1e-12,["partspertrillion"],{auto:!1}),_("ppb",1e-9,["partsperbillion"]),_("ppm",1e-6,["partspermillion"]),_("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),_("‰",.001,["permille","permil"],{auto:!1}),_("%",.01,["pct","percent"]),_("×",1,["x","ratio","times"])]),molarity:Object.freeze([_("pM",1e-12,["picomolar","picomolarity"]),_("nM",1e-9,["nanomolar","nanomolarity"]),_("µM",1e-6,["um-molar","micromolar","micromolarity"]),_("mM",.001,["millimolar","millimolarity"]),_("M",1,["molar","mol/l","mol/L","molarity"]),_("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([_("mg/s",1e-6,["milligrams/s"]),_("g/s",.001,["grams/s"]),_("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),_("kg/s",1,["kilograms/s","kgps"]),_("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),_("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),_("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([_("µPa·s",1e-6,["upas","micropascalsecond"]),_("cP",.001,["centipoise"],{auto:!1}),_("mPa·s",.001,["mpas","millipascalsecond"]),_("P",.1,["poise"],{auto:!1}),_("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([_("cSt",1e-6,["centistokes","centistoke"]),_("mm²/s",1e-6,["mm2/s"],{auto:!1}),_("St",1e-4,["stokes","stoke"],{auto:!1}),_("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([_("mW/(m·K)",.001,["mw/mk"]),_("W/(m·K)",1,["w/mk","wmk"]),_("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),_("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([_("J/(kg·K)",1,["j/kgk","jkgk"]),_("kJ/(kg·K)",1e3,["kj/kgk"]),_("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([_("nSv/h",1e-9,["nsvh"]),_("µSv/h",1e-6,["usv/h","usvh"]),_("mSv/h",.001,["msvh"]),_("Sv/h",1,["svh"]),_("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),w=Symbol("ambiguous"),k=new Map,E=new Map;function g(F,v){const B=String(F||"").trim();if(!B)throw new Error("[lattice] a unit system needs a name");if(O[B]||E.has(B))throw new Error(`[lattice] unit system "${B}" already exists`);const W=[...v||[]];if(!W.length)throw new Error(`[lattice] unit system "${B}" has no units`);if(!W.some(re=>re.factor===1))throw new Error(`[lattice] unit system "${B}" has no base unit (none with factor 1)`);const ne=new Set;for(const re of W){if(ne.has(re.symbol))throw new Error(`[lattice] unit system "${B}" declares "${re.symbol}" twice`);ne.add(re.symbol)}return E.set(B,Object.freeze(W)),k.delete(B),B}function o(){return[...Object.keys(O),...E.keys()]}function a(F){const v=d(F);return v?v.units:[]}function d(F){const v=String(F||""),B=k.get(v);if(B!==void 0)return B;const W=O[v]||E.get(v);if(!W)return k.set(v,null),null;const ne=Object.freeze([...W].sort((oe,R)=>oe.factor-R.factor)),re=new Map,ce=new Map,N=(oe,R)=>{const P=re.get(oe);P===void 0?re.set(oe,R):P!==R&&re.set(oe,w)};for(const oe of ne){N(oe.symbol.toLowerCase(),oe);for(const R of oe.aliases)N(R.toLowerCase(),oe);if(oe.prefix){const R=ce.get(oe.prefix)||[];R.push(oe),ce.set(oe.prefix,R)}}const K={units:ne,byToken:re,byPrefix:ce,decimal:ne.filter(oe=>!oe.binary&&oe.auto),binary:ne.some(oe=>oe.binary)?ne.filter(oe=>(oe.binary||oe.factor===1)&&oe.auto):null};return k.set(v,K),K}function h(F,v){return v&&F.binary||F.decimal}function t(F,v){const B=d(F);if(!B||I(v))return null;const W=B.units.find(re=>re.symbol===String(v));if(W)return W;const ne=B.byToken.get(String(v).trim().toLowerCase());return ne&&ne!==w?ne:null}const r=new WeakMap;function n(F){const v=F||{};if(typeof v=="object"&&v!==null){const re=r.get(v);if(re!==void 0)return re}const B=v.system||"data",W=d(B);let ne=null;if(!W)te(`unit:system:${B}`,`unknown unit system "${B}"; known systems are ${o().join(", ")}`);else{let re=v.unit?t(B,v.unit):null;re||(v.unit&&te(`unit:unit:${B}:${v.unit}`,`unknown unit "${v.unit}" in system "${B}"; falling back to ${W.units[0].symbol}`),re=W.units.find(ce=>ce.factor===1)||W.units[0]),ne={index:W,base:re,binary:v.binary===!0}}return typeof v=="object"&&v!==null&&r.set(v,ne),ne}const p=new WeakMap;function y(F,v){if(!F||!v||!Array.isArray(F.compound)||F.compound.length===0)return null;const B=p.get(F);if(B!==void 0)return B;const W=new Set,ne=[];for(const ce of F.compound){const N=t(F.system||"data",ce);if(!N){te(`unit:compound:${F.system}:${ce}`,`unknown compound unit "${ce}" in system "${F.system||"data"}"; ignoring it`);continue}W.has(N.symbol)||(W.add(N.symbol),ne.push(N))}ne.sort((ce,N)=>N.factor-ce.factor);const re=ne.length>=2?ne:null;return p.set(F,re),re}function b(F,v,B){return v===B||v.factor===B.factor?F:F*v.factor/B.factor}const m=new Map;function V(F){const v=F||"",B=m.get(v);if(B)return B;const W={group:",",decimal:"."};try{for(const ne of new Intl.NumberFormat(F||void 0).formatToParts(12345.6))ne.type==="group"?W.group=ne.value:ne.type==="decimal"&&(W.decimal=ne.value)}catch{}return m.set(v,W),W}const l=/[\s   ]/g,f=/^[+-]?[\d   '’ .,]*(?:[eE][+-]?\d+)?/,c=/^[^\d+\-(.,\s]+\s*/,s=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function i(F,v){const{group:B,decimal:W}=V(v);let ne=String(F).replace(l,"");if(ne==="")return null;const re=W?ne.indexOf(W):-1;if(B&&B!==W){if(re>=0&&ne.indexOf(B,re+W.length)>=0)return null;ne=ne.split(B).join("")}if(W&&W!=="."&&(ne=ne.split(W).join(".")),!s.test(ne))return null;const ce=Number(ne);return Number.isFinite(ce)?ce:null}function u(F,v,B){const W=String(F).trim().replace(/\.$/,"");if(W==="")return null;const ne=v.units.find(R=>R.symbol===W);if(ne)return ne;const re=W.toLowerCase(),ce=v.byToken.get(re);if(ce===w)return null;if(ce)return ce;const N=v.byPrefix.get(re);if(!N||!N.length)return null;const K=h(v,B),oe=N.filter(R=>K.includes(R));return oe.length===1?oe[0]:null}function j(F,v,B,W){let ne=F,re=0,ce=!1,N=!1;for(;ne!=="";){const K=f.exec(ne)[0];if(K==="")return null;const oe=i(K,W&&W.locale);if(oe===null)return null;ne=ne.slice(K.length).trim();const R=ne.search(/[+-]?[\d]/),P=(R>=0?ne.slice(0,R):ne).trim();if(ne=R>=0?ne.slice(R).trim():"",P===""){if(ce)return null;N=!0,re+=b(oe,B[0],v.base)}else{const L=u(P,v.index,v.binary);if(!L)return null;re+=b(oe,L,v.base)}if(ce=!0,N&&ne!=="")return null}return ce?re:null}function H(F,v){if(I(F))return null;if(typeof F=="number")return Number.isFinite(F)?F:null;const B=n(v);if(!B)return null;let W=String(F).trim();if(W==="")return null;let ne=!1;W.startsWith("(")&&W.endsWith(")")&&(ne=!0,W=W.slice(1,-1).trim());const re=y(v,B);if(re){W.startsWith("-")&&(ne=!0,W=W.slice(1).trim());const C=j(W,B,re,v);return C===null?null:ne?-C:C}let ce=null;const N=c.exec(W);if(N&&N[0]){const C=u(N[0].trim(),B.index,B.binary);C&&(ce=C,W=W.slice(N[0].length).trim())}const K=f.exec(W)[0],oe=i(K,v&&v.locale);if(oe===null)return null;const R=W.slice(K.length).trim();if(ce&&R!=="")return null;const P=ce||(R===""?B.base:u(R,B.index,B.binary));if(!P)return null;const L=b(oe,P,B.base);return ne?-L:L}const M=new Map;function D(F,v,B,W){const ne=`${F||""}|${v}|${B}|${W?1:0}`;let re=M.get(ne);return re||(re=new Intl.NumberFormat(F||void 0,{minimumFractionDigits:v,maximumFractionDigits:B,useGrouping:W}),M.set(ne,re)),re}function Q(F,v){if(!Number.isFinite(F)||F===0)return Math.max(0,v-1);const B=Math.floor(Math.log10(Math.abs(F)));return Math.min(20,Math.max(0,v-1-B))}function Z(F,v){if(!Number.isFinite(F)||F===0)return F;const B=Math.ceil(Math.log10(Math.abs(F))),W=10**(v-B);return Math.round(F*W)/W}function ae(F,v,B){if(!B||B===v.base.symbol)return v.base;if(B!=="auto")return Y(v,B);if(F===0||!Number.isFinite(F))return v.base;const W=Math.abs(F)*v.base.factor,ne=h(v.index,v.binary);let re=ne[0];for(const K of ne)W>=K.factor&&(re=K);if(W>=re.factor)return re;let ce=re;for(const K of v.index.units)K.binary!==v.binary&&K.factor!==1||K.factor<=W&&K.factor>(ce===re?0:ce.factor)&&(ce=K);if(ce!==re)return ce;let N=re;for(const K of v.index.units)K.binary!==v.binary&&K.factor!==1||K.factor<N.factor&&(N=K);return N.factor<v.base.factor?N:v.base}function Y(F,v){const B=F.index.units.find(ne=>ne.symbol===v);if(B)return B;const W=F.index.byToken.get(String(v).toLowerCase());return W&&W!==w?W:(te(`unit:display:${v}`,`unknown display unit "${v}"; rendering in ${F.base.symbol}`),F.base)}function q(F,v,B,W){const ne=F<0;let re=Math.abs(F)*v.base.factor;const ce=typeof W.decimals=="number"?W.decimals:W.minDecimals??0,N=typeof W.decimals=="number"?W.decimals:W.maxDecimals??Math.max(ce,2),K=W.space??" ",oe=[];for(let P=0;P<B.length;P++){const L=B[P],C=P===B.length-1;let U=C?re/L.factor:Math.floor(re/L.factor);if(re-=U*L.factor,C){const ie=10**N;U=Math.round(U*ie)/ie+0}const J=C?D(W.locale,ce,N,W.group!==!1):D(W.locale,0,0,W.group!==!1);oe.push(`${J.format(U)}${K}${L.symbol}`)}const R=oe.join(" ");return ne?`-${R}`:R}function Re(F,v){const B=v||{},W=B.nullDisplay??"";if(I(F)||F==="")return W;const ne=typeof F=="number"?F:Number(F);if(!Number.isFinite(ne))return W;const re=n(B);if(!re)return String(ne);const ce=y(B,re);if(ce)return q(ne,re,ce,B);const N=typeof B.significantFigures=="number"&&B.significantFigures>0?B.significantFigures:0,K=N?Z(ne,N):ne,oe=ae(K,re,B.display),R=b(K,re.base,oe);let P=typeof B.decimals=="number"?B.decimals:B.minDecimals??0,L=typeof B.decimals=="number"?B.decimals:B.maxDecimals??Math.max(P,2);N&&(P=Q(R,N),L=P);const C=D(B.locale,P,L,B.group!==!1).format(R),U=B.space??" ";return B.placement==="prefix"?`${oe.symbol}${B.space??""}${C}`:`${C}${U}${oe.symbol}`}function ke(F,v){const B=I(F)||Number.isNaN(F)?null:Number(F),W=I(v)||Number.isNaN(v)?null:Number(v);return B===null||Number.isNaN(B)?W===null||Number.isNaN(W)?0:1:W===null||Number.isNaN(W)||B<W?-1:B>W?1:0}function me(F){const v=typeof F.decimals=="number"&&F.decimals>0?`.${"0".repeat(F.decimals)}`:"";return`${typeof F.decimals=="number"?`#,##0${v}`:"#,##0.##"}" ${F.symbol}"`}function S(F){const v={system:"data",...F||{}},B=n(v),W=B?B.base.symbol:String(v.unit||""),ne=Object.freeze({...v,unit:W}),re=Object.freeze({...ne,display:W,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),ce=new Map([[ne.locale||"",ne]]),N=K=>{const oe=K||"";let R=ce.get(oe);return R||(R=Object.freeze({...ne,locale:K||void 0}),ce.set(oe,R)),R};return{base:"number",extends:"number",storage:"float64",unitConfig:ne,format:K=>Re(K.value,K.locale?N(K.locale):ne),parse:K=>H(K.text,K.locale?N(K.locale):ne),compare:ke,defaults:{filter:"number",editor:"unit",align:"end",total:v.total||"sum"},...v.totals?{totals:v.totals}:{},excel:v.excel||me({decimals:v.decimals,symbol:W}),toStorage:K=>typeof K=="number"?Number.isFinite(K)?K:null:typeof K=="string"?H(K,ne):I(K)?null:H(String(K),ne),toClipboard:K=>Re(K,re),fromClipboard:K=>H(K,ne)}}const z=S}),Te("packages/core/src/columns/types/temperature.js",function($,X){"use strict";Object.defineProperty($,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"findScale",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"convertTemperature",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"formatTemperature",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"parseTemperature",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"createTemperatureType",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return d}});const I=X("packages/core/src/internal/predicates.js").isNil,x=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:h=>h+273.15,fromKelvin:h=>h-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:h=>(h+459.67)*(5/9),fromKelvin:h=>h*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:h=>h,fromKelvin:h=>h}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:h=>h*(5/9),fromKelvin:h=>h*(9/5)})});function te(h){if(I(h))return null;const t=String(h).trim();if(t==="")return null;for(const[n,p]of Object.entries(x))if(t===n||t===p.symbol)return{key:n,scale:p};const r=t.toLowerCase();for(const[n,p]of Object.entries(x))if(p.aliases.includes(r))return{key:n,scale:p};return null}function _(h,t,r){const n=te(t),p=te(r);return!n||!p||!Number.isFinite(Number(h))?null:n.key===p.key?Number(h):p.scale.fromKelvin(n.scale.toKelvin(Number(h)))}const T=new Map;function O(h,t,r){const n=`${h||""}|${t}|${r}`;let p=T.get(n);return p||(p=new Intl.NumberFormat(h||void 0,{minimumFractionDigits:t,maximumFractionDigits:r}),T.set(n,p)),p}function w(h,t){const r=t||{},n=r.nullDisplay??"";if(I(h)||h==="")return n;const p=Number(h);if(!Number.isFinite(p))return n;const y=te(r.scale||"C");if(!y)return String(p);const b=te(r.display||r.scale||"C")||y,m=b.key===y.key?p:b.scale.fromKelvin(y.scale.toKelvin(p)),V=typeof r.decimals=="number"?r.decimals:null,l=V??r.minDecimals??0,f=V??r.maxDecimals??1;return`${O(r.locale,l,f).format(m)}${r.space??" "}${b.scale.symbol}`}const k=/^[+-]?[\d\s.,  ]*\d/;function E(h,t){const r=String(h).trim();if(r==="")return null;const n=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(m=>m.type==="decimal")?.value||".",p=n===","?".":",",y=r.split(p).join("").split(/[\s  ]/).join("").replace(n,"."),b=Number(y);return Number.isFinite(b)?b:null}function g(h,t){if(I(h))return null;const r=t||{},n=te(r.scale||"C");if(!n)return null;if(typeof h=="number")return Number.isFinite(h)?h:null;let p=String(h).trim();if(p==="")return null;let y=!1;p.startsWith("(")&&p.endsWith(")")&&(y=!0,p=p.slice(1,-1).trim());const b=k.exec(p);if(!b)return null;const m=E(b[0],r.locale);if(m===null)return null;const V=p.slice(b[0].length).trim();if(V==="")return y?-m:m;const l=te(V);if(!l)return null;const f=l.key===n.key?m:n.scale.fromKelvin(l.scale.toKelvin(m));return y?-f:f}function o(h){const t=Object.freeze({scale:"C",...h||{}}),n=(te(t.scale)||te("C")).scale.symbol,p=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),y=new Map([[t.locale||"",t]]),b=m=>{const V=m||"";let l=y.get(V);return l||(l=Object.freeze({...t,locale:m||void 0}),y.set(V,l)),l};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:m=>w(m.value,m.locale?b(m.locale):t),parse:m=>g(m.text,m.locale?b(m.locale):t),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:t.excel||`#,##0${typeof t.decimals=="number"&&t.decimals>0?`.${"0".repeat(t.decimals)}`:".#"}" ${n}"`,toStorage:m=>typeof m=="number"?Number.isFinite(m)?m:null:typeof m=="string"?g(m,t):I(m)?null:g(String(m),t),toClipboard:m=>w(m,p),fromClipboard:m=>g(m,t)}}const a=Object.freeze({celsius:o({scale:"C"}),fahrenheit:o({scale:"F"}),kelvin:o({scale:"K"})}),d=o}),Te("packages/modules/form/controls/number.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,te=X("packages/modules/form/messages.js").t,T=X("packages/core/src/format/number.js").compileNumber,O=X("packages/core/src/columns/types/unit.js"),w=O.parseUnit,k=O.formatUnit,E=O.findUnit,g=O.unitsOf,o=X("packages/core/src/columns/types/temperature.js"),a=o.parseTemperature,d=o.formatTemperature,h=o.findScale,t="data-lattice-form-number-styles";function r(){return`
1350
+ `.trim()}function F(T){const L=T&&T.documentElement;if(!L||L.getAttribute(u))return;L.setAttribute(u,"1");const A=T.createElement("style");A.textContent=j(),(T.head||T.body||L).appendChild(A)}function M(T,L){if(L!=null){if(typeof L=="string"){if(L.trim()){const A=typeof T.style.cssText=="string"?T.style.cssText:"";T.style.cssText=A?`${A};${L}`:L}return}for(const A of Object.keys(L))T.style[A]=L[A]}}function D(T){return T==="cols"?`${R}__cols`:T==="items"?`${R}__items`:`${R}__rows`}function Q(T,L,A,H){L.addEventListener(A,H),T.disposers.push(()=>L.removeEventListener(A,H))}function Z(T){if(T==null)return null;const L=T.tagName;return L==="INPUT"||L==="TEXTAREA"||L==="SELECT"?T:typeof T.querySelector=="function"?T.querySelector("input, textarea, select"):null}function ae(T,L,A){const H={name:L.item.name,value:A,previousValue:L.value,item:L.item},X=T.emitter.emitBefore("beforeChange",H,"user"),ie=()=>{L.value=A,L.item.value=A,Ce(L);const _e=L.validation&&L.validation.valid===!1;T.emitter.emit("change",{name:L.item.name,value:A,previousValue:H.previousValue,item:L.item}),a(T),(L.item.validationMode==="change"||_e)&&U(T,L)},de=_e=>{L.def.write(L.control,L.value),ze(T,L,_e)},ke=_e=>{if(!_e){L.def.write(L.control,L.value);return}const Me=Y(T,L,A);Me&&typeof Me.then=="function"?Me.then(Se=>{Se.ok?ie():de(Se.message)}):Me.ok?ie():de(Me.message)};X&&typeof X.then=="function"?X.then(ke):ke(X)}function Y(T,L,A){if(L.ruleRequired&&O(A))return{ok:!1,message:T.t("form.required")};const H=L.def;if(typeof H.validate!="function")return{ok:!0,message:null};const X=H.validate(L.control,L.item,A);return X&&typeof X.then=="function"?X.then(ie=>ee(T,ie)):ee(T,X)}function ee(T,L){return L===!1?{ok:!1,message:T.t("form.invalid")}:typeof L=="string"?{ok:!1,message:L}:{ok:!0,message:null}}function ze(T,L,A){let H=L.errorEl;H||(H=T.doc.createElement("div"),H.className=`${R}__error`,H.id=C("lat-form"),L.controlWrap.appendChild(H),L.errorEl=H);const X=A==null||A===""?T.t("form.invalid"):String(A);H.textContent=X,L.el.setAttribute("data-invalid","true"),L.control.setAttribute("aria-invalid","true");const ie=(L.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!L.validationEl.hidden&&L.validationEl.textContent===X&&ie.includes(L.validationEl.id))&&!ie.includes(H.id)&&(ie.push(H.id),L.control.setAttribute("aria-describedby",ie.join(" ")))}function Ce(T){T.errorEl&&(T.errorEl.remove(),T.errorEl=null),T.el.removeAttribute("data-invalid"),T.control.removeAttribute("aria-invalid")}function me(T,L){const A=L.value,H=L.item;if(typeof L.def.validate=="function"){const X=b(L.def.validate(L.control,H,A),H,T.t);if(X)return X}return m(H,A,T.t,L.ruleRequired===!0)}function S(T){const L=T.control;if(!L||typeof L.querySelector!="function")return L||null;let A=null;try{A=L.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{A=null}return A||L}function I(T,L,A){const H=L.item,X=L.validationEl;if(L.validation.pristine=!1,L.preEl&&(L.preEl.hidden=!0),A){L.validation.valid=!1,L.validation.code=A.code,L.validation.message=A.message,L.control.setAttribute("aria-invalid","true");const de=L.tooltipId?`${L.tooltipId} ${X.id}`:X.id;L.control.setAttribute("aria-describedby",de);const ke=S(L);ke&&(ke.setAttribute("aria-invalid","true"),ke.setAttribute("aria-describedby",de)),X.textContent=A.message,X.className=`${R}__validation ${R}__validation--error`,X.hidden=!1;return}L.validation.valid=!0,L.validation.code=null,L.validation.message=null,L.control.removeAttribute("aria-invalid"),L.tooltipId?L.control.setAttribute("aria-describedby",L.tooltipId):L.control.removeAttribute("aria-describedby");const ie=S(L);ie&&ie!==L.control&&(ie.removeAttribute("aria-invalid"),L.tooltipId?ie.setAttribute("aria-describedby",L.tooltipId):ie.removeAttribute("aria-describedby")),typeof H.successMessage=="string"&&H.successMessage!==""?(X.textContent=H.successMessage,X.className=`${R}__validation ${R}__validation--success`,X.hidden=!1):(X.textContent="",X.className=`${R}__validation`,X.hidden=!0)}function U(T,L){typeof L.def.reset=="function"&&L.def.reset(L.control,L.item);const A=me(T,L);I(T,L,A);const H=A==null;return T.emitter.emit("validated",{name:L.item.name,item:L.item,value:L.value,valid:H,failures:A?[{name:L.item.name,rule:A.code,message:A.message}]:[]}),H}function w(T,L){const A=L.control,H=L.item,X=L.def,ie=de=>()=>{T.emitter.emit(de,{name:H.name,item:H}),de==="blur"&&H.validationMode==="blur"&&U(T,L)};if(X.kind==="field"){const de=()=>{T.emitter.emit("input",{name:H.name,value:X.read(A,H),item:H})},ke=()=>{ae(T,L,X.read(A,H))};Q(T,A,"input",de),Q(T,A,"change",ke);for(const _e of X.domEvents||[])Q(T,A,_e,Se=>{const Oe=Se&&typeof Se=="object"&&Se.detail&&typeof Se.detail=="object"?Se.detail:null;T.emitter.emit(_e,Oe?{name:H.name,item:H,...Oe}:{name:H.name,value:X.read(A,H),item:H})})}else X.kind==="toggle"?Q(T,A,"change",()=>{ae(T,L,X.read(A,H))}):X.kind==="button"&&Q(T,A,"click",()=>{A.disabled||A.getAttribute("aria-disabled")==="true"||T.emitter.emit("click",{name:H.name,item:H,value:null})});X.kind!=="display"&&(Q(T,A,"focus",ie("focus")),Q(T,A,"blur",ie("blur")))}function B(T,L){if(typeof T=="string"&&/%$/.test(T.trim())){const A=parseFloat(T);if(Number.isFinite(A)){const H=Math.round(A*L/100*1e6)/1e6;return`0 0 calc(${A}% - ${H} * var(--lattice-space))`}}return`0 0 ${P(T)}`}function W(T,L,A,H={}){const X=g(L.type)||g("text"),ie=L.labelPosition!=null?L.labelPosition:H.labelPosition!=null?H.labelPosition:"top",de=L.labelWidth!=null?L.labelWidth:H.labelWidth,ke=L.requiredHint!==void 0?L.requiredHint:H.requiredHint,_e=T.doc.createElement("div");_e.className=`${R}__item`,_e.setAttribute("data-label-position",ie);const Me=X.build(L,T),Se=X.action===!0,Oe=!Se&&L.label!=null&&L.label!=="";let x=null,te=null;if(Oe){x=T.doc.createElement("label"),x.className=`${R}__label`,x.textContent=String(L.label);const $e=C("lat-form");x.setAttribute("for",$e),(Z(Me)||Me).id=$e,ie==="hidden"&&x.classList.add(`${R}__label--hidden`);const Be=l(T,{labelEl:x,item:L,labelPosition:ie,labelWidth:de});Be?(te=Be.tooltipId,_e.appendChild(Be.group)):(ie==="left"&&de!=null&&(x.style.flex=`0 0 ${P(de)}`),_e.appendChild(x))}else if(ie==="hidden"&&!Se){const $e=Z(Me);$e&&L.placeholder!=null&&L.placeholder!==""&&$e.setAttribute("aria-label",String(L.placeholder))}const fe=T.doc.createElement("div");fe.className=`${R}__control`,fe.appendChild(Me);const G=f(T,fe,L,Me),ue=c(T,L);let we=fe;if(ue&&(we=T.doc.createElement("div"),we.className=`${R}__field`,we.appendChild(fe),we.appendChild(ue.bar)),_e.appendChild(we),!Se&&L.helpMessage!=null&&L.helpMessage!==""){const $e=T.doc.createElement("div");$e.className=`${R}__help`,$e.textContent=String(L.helpMessage),fe.appendChild($e)}let ge=null;!Se&&L.preMessage!=null&&L.preMessage!==""&&(ge=T.doc.createElement("div"),ge.className=`${R}__pre`,ge.textContent=String(L.preMessage),fe.appendChild(ge));const xe=T.doc.createElement("div");xe.className=`${R}__validation`,xe.id=C("lat-form"),xe.hidden=!0,fe.appendChild(xe),L.width!=null&&(H.colsGapCount!=null?_e.style.setProperty("--lattice-item-flex",B(L.width,H.colsGapCount)):(_e.style.width=P(L.width),_e.style.flex="0 0 auto")),ie==="left"&&(we.style.flex="1 1 auto"),Se&&ie==="left"&&de!=null&&!(L.props&&L.props.fullWidth===!0)&&(we.style.paddingLeft=`calc(${P(de)} + var(--lattice-space))`),M(_e,L.css);const Ie=X.read(Me,L),Le={item:L,el:_e,control:Me,controlWrap:fe,def:X,value:Ie,hidden:L.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:xe,preEl:ge,labelEl:x,labelPosition:ie,requiredHint:ke,placeholderEl:Z(Me),placeholderBase:L.placeholder!=null?String(L.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:te,lockEl:G?G.el:null};if(L.value=Ie,te&&Le.control.setAttribute("aria-describedby",te),ue)for(const $e of ue.entries){if($e.avatar){s(T.doc,$e.el,$e.spec,Le.value,Le.item);continue}typeof $e.spec.onClick=="function"&&Q(T,$e.el,"click",()=>{$e.spec.onClick(Le.value,Le.item)})}if(Le.syncLock=()=>{if(!Le.lockEl)return;const $e=Le.item.readOnly===!0||Le.ruleReadOnly;Le.lockEl.hidden=!$e,Le.lockEl.parentElement.classList.toggle(`${R}__control--lock`,$e)},Le.syncAddons=()=>{if(!ue)return;const $e=Le.item.disabled===!0;for(const Be of ue.entries){if(Be.avatar){s(T.doc,Be.el,Be.spec,Le.value,Le.item);continue}Be.el.tagName==="A"?Be.el.setAttribute("aria-disabled",$e?"true":"false"):Be.el.disabled=$e}},r(Le),Le.hidden&&(_e.hidden=!0),X.custom&&Me.__latticeFormApi){const $e=Me.__latticeFormApi;$e._read=()=>Le.value,$e._write=Be=>{Le.value=Be,Le.item.value=Be,X.write(Me,Be),a(T)},$e._commit=Be=>{ae(T,Le,Be)},$e._input=Be=>{T.emitter.emit("input",{name:Le.item.name,value:Be,item:Le.item})}}return typeof X.destroy=="function"&&T.disposers.push(()=>X.destroy(Me)),w(T,Le),T.order.push(Le),L.name!=null&&T.items.set(L.name,Le),A.appendChild(_e),Le}function q(T,L,A,H={}){const X={labelPosition:L.labelPosition!=null?L.labelPosition:H.labelPosition,labelWidth:L.labelWidth!=null?L.labelWidth:H.labelWidth,requiredHint:H.requiredHint};if(L.kind==="panel")return i(T,L,A,X,{buildChildren:ne,applyCss:M});if(L.kind==="spacer"){const de=T.doc.createElement("div");return de.className=`${R}__spacer`,M(de,L.css),L.hidden&&(de.hidden=!0),A.appendChild(de),de}if(L.kind==="separator"){const de=T.doc.createElement("div");de.className=`${R}__separator`,de.setAttribute("role","separator");const ke=L.label;if(ke!=null){F(T.doc),de.classList.add(`${R}__separator--labelled`);const _e=T.t(ke);de.setAttribute("aria-label",_e);const Me=T.doc.createElement("span");Me.className=`${R}__separator-rule`,Me.setAttribute("aria-hidden","true");const Se=T.doc.createElement("span");Se.className=`${R}__separator-label`,Se.textContent=_e;const Oe=T.doc.createElement("span");Oe.className=`${R}__separator-rule`,Oe.setAttribute("aria-hidden","true"),de.appendChild(Me),de.appendChild(Se),de.appendChild(Oe)}else de.setAttribute("aria-label",T.t("form.separator"));return M(de,L.css),L.hidden&&(de.hidden=!0),A.appendChild(de),de}if(L.kind==="fieldset"){const de=T.doc.createElement("fieldset");if(de.className=`${R}__fieldset`,L.legend!=null){const _e=T.doc.createElement("legend");_e.className=`${R}__legend`,_e.textContent=L.legend,de.appendChild(_e)}const ke=T.doc.createElement("div");return ke.className=`${R}__fieldset-body`,L.axis&&ke.classList.add(D(L.axis)),L.axis&&ne(T,ke,L.blocks,L.axis,X),de.appendChild(ke),M(de,L.css),L.spacing!=null&&de.style.setProperty("--lattice-form-item-gap",L.spacing),L.hidden&&(de.hidden=!0),A.appendChild(de),de}const ie=T.doc.createElement("div");return ie.className=D(L.axis),L.axis&&ne(T,ie,L.blocks,L.axis,X),M(ie,L.css),L.spacing!=null&&ie.style.setProperty("--lattice-form-item-gap",L.spacing),L.hidden&&(ie.hidden=!0),A.appendChild(ie),ie}function ne(T,L,A,H,X={}){const ie=H==="cols"?{...X,colsGapCount:A.length-1}:X;for(const de of A)de.kind==="item"?W(T,de,L,ie):q(T,de,L,X)}function se(T){const L=T.el;for(;L.firstChild;)L.removeChild(L.firstChild);T.items.clear(),T.order.length=0;const A=T.model;L.classList.add(R,D(A.axis)),L.setAttribute("data-density",A.density),A.colsBreakpoint===!1?L.style.setProperty("--lattice-cols-container",re):A.colsBreakpoint!==480&&L.style.setProperty("--lattice-cols-container",k(T.doc,A.colsBreakpoint)),T.disposers.push(()=>{L.classList.remove(`${R}__rows`,`${R}__cols`,`${R}__items`)}),M(L,A.css),A.spacing!=null&&L.style.setProperty("--lattice-form-item-gap",A.spacing),A.labelGap!=null&&L.style.setProperty("--lattice-form-label-gap",A.labelGap);const H={labelPosition:A.labelPosition,labelWidth:A.labelWidth,requiredHint:A.requiredHint};A.steps&&A.steps.length?N(T,H):ne(T,L,A.blocks,A.axis==="cols"?"cols":"rows",H),a(T),h(T)}function N(T,L={}){const A=T.model,H=A.steps,X=T.doc,ie=T.el,de=X.createElement("div");ie.appendChild(de);const ke=p(de,{doc:X,t:T.t,steps:H.map(ue=>({id:ue.id,label:ue.label})),active:0,orientation:A.stepOrientation,onGoTo:ue=>{K(T,ue)}}),_e=[];let Me=T.order.length;for(const ue of H){const we=X.createElement("div");we.className=`${R}__step`,we.hidden=!0,ne(T,we,ue.blocks,ue.axis,L),ue.css&&M(we,ue.css),ie.appendChild(we);const ge=T.order.length;we.__records=T.order.slice(Me,ge),Me=ge,_e.push(we)}const Se=X.createElement("div");Se.className=`${R}__step-nav`;const Oe=X.createElement("button");Oe.type="button",Oe.className=`${R}__step-back`,Oe.textContent=T.t("form.back");const x=X.createElement("button");x.type="button",x.className=`${R}__step-next`,x.textContent=T.t("form.next"),Se.appendChild(Oe),Se.appendChild(x),ie.appendChild(Se);const te={steps:H,bodies:_e,stepper:ke,back:Oe,next:x,active:0};T.wizard=te;const fe=()=>{ke.setActive(te.active),_e.forEach((ue,we)=>{ue.hidden=we!==te.active}),Oe.disabled=te.active===0,x.textContent=te.active===H.length-1?T.t("form.finish"):T.t("form.next")},G=ue=>{const we=_e[ue].__records||[];for(const ge of we)if(ge.item.name!=null&&!(ge.def.kind!=="field"&&ge.def.kind!=="toggle")&&ge.item.disabled!==!0&&!(ge.ruleHidden===!0||ge.hidden===!0)&&!(ge.item.required!==!0&&ge.item.validation==null&&typeof ge.def.validate!="function"&&ge.ruleRequired!==!0)&&!U(T,ge))return typeof ge.def.focus=="function"?ge.def.focus(ge.control):typeof ge.control.focus=="function"&&ge.control.focus(),ge;return null};te._stepInvalid=G,te._render=fe,Oe.addEventListener("click",()=>{z(T)}),x.addEventListener("click",()=>{oe(T)}),fe()}async function K(T,L){const A=T.wizard;if(!A)return!1;const H=A.steps.length,X=Number(L);if(!Number.isFinite(X)||X<0||X>=H)return!1;const ie=A.active;if(X===ie)return!1;if(X>ie&&T.model.validateSteps!==!1)for(let de=ie;de<X;de+=1){if(A._stepInvalid(de))return A.stepper.setStatus(de,"error"),!1;A.stepper.setStatus(de,"complete")}return A.active=X,A._render(),!0}function oe(T){const L=T.wizard;if(!L)return Promise.resolve(!1);if(L.active>=L.steps.length-1){if(T.model.validateSteps===!1)return Promise.resolve(!0);const A=L._stepInvalid(L.active);return L.stepper.setStatus(L.active,A?"error":"complete"),Promise.resolve(A==null)}return K(T,L.active+1)}function z(T){const L=T.wizard;return L?K(T,L.active-1):Promise.resolve(!1)}}),Te("packages/modules/form/emitter.js",function($,J){"use strict";Object.defineProperty($,"FORM_EVENTS",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"Emitter",{enumerable:!0,get:function(){return k}});const e=new Set(["api","user"]),R=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class k{#e=new Map;on(_,P){if(typeof P!="function")return()=>{};let O=this.#e.get(_);return O||(O=new Set,this.#e.set(_,O)),O.add(P),()=>this.off(_,P)}off(_,P){const O=this.#e.get(_);O&&O.delete(P)}emit(_,P){const O=this.#e.get(_),y=this.#e.get("*");if((!O||O.size===0)&&(!y||y.size===0))return;const C={...P||null,type:_},E=[],g=o=>{for(const a of[...o])try{a(C)}catch(d){E.push(d)}};O&&O.size&&g(O),y&&y.size&&g(y);for(const o of E)queueMicrotask(()=>{throw o})}emitBefore(_,P,O){const y=this.#e.get(_);if(!y||y.size===0)return!0;let C=!1,E=null;const g=r=>{C=!0,r!=null&&E===null&&(E=String(r))},o=O||P&&P.origin,a={...P||null,type:_,origin:e.has(o)?o:"user",get defaultPrevented(){return C},get reason(){return E},preventDefault(r){g(r)}},d=[...y],h=()=>(C&&E===null&&(E="prevented"),C&&P&&typeof P=="object"&&(P.reason=E),!C),t=[];for(let r=0;r<d.length;r++){const n=d[r];try{const p=n(a);p&&typeof p.then=="function"?t.push(p):p===!1&&g("prevented")}catch(p){g("error"),console.warn(`lattice-form: a '${_}' before-handler threw; the commit was cancelled.`,p)}}return t.length===0?h():Promise.allSettled(t).then(r=>{for(const n of r)n.status==="rejected"?(g("error"),console.warn(`lattice-form: a '${_}' before-handler rejected; the commit was cancelled.`,n.reason)):n.value===!1&&g("prevented");return h()})}clear(){this.#e.clear()}}}),Te("packages/modules/form/bind-router.js",function($,J){"use strict";Object.defineProperty($,"routerBinding",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"writeRouterRecord",{enumerable:!0,get:function(){return k}});function e(re){return re!==null&&typeof re=="object"&&!Array.isArray(re)}function R(re){const{router:_,route:P,key:O}=re,y=o=>o!=null&&String(o.rowKey??o.id)===String(O);return{kind:"router",record:()=>_&&typeof _.get=="function"?_.get(P,O):void 0,items:()=>[],density:()=>{},subscribe:o=>{if(!_||typeof _.subscribe!="function")return()=>{};const a=h=>{if(h){for(const t of h.add||[])y(t)&&o(null,null,t);for(const t of h.update||[])y(t)&&o(null,null,t)}},d=_.subscribe(P,a);return typeof d=="function"?d:()=>{}},save:o=>k(re,o)}}function k(re,_){const{router:P,route:O,key:y,onSave:C}=re;if(!Object.keys(_||{}).length)return!0;const g=()=>P&&typeof P.get=="function"?P.get(O,y):void 0,o=r=>{!P||typeof P.apply!="function"||P.apply([{op:"upsert",row:r}])},a=()=>{!P||typeof P.apply!="function"||(e(d)?P.apply([{op:"upsert",row:d}]):P.apply([{op:"delete",row:h}]))},d=g(),h={...e(d)?d:{},..._};if(o(h),typeof C!="function")return!0;let t;try{t=C(_,h)}catch{return a(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(a(),!1)):!0}}),Te("packages/modules/form/bind.js",function($,J){"use strict";Object.defineProperty($,"resolveBind",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"isBound",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"applyBinding",{enumerable:!0,get:function(){return t}});const R=J("packages/modules/form/model.js").DENSITIES,re=J("packages/modules/form/bind-router.js").routerBinding,_=new Set(["number","currency","percent","integer","decimal","duration"]);function P(r){const n=r&&r.dataType;if(n&&(n.unitConfig||n.temperatureConfig))return!0;const p=r&&r.edit?r.edit.editor:null;return p==="unit"||p==="temperature"}function O(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function y(r){const n=r&&r.edit?r.edit.editor:null,p=r&&r.type;return n==="checkbox"||p==="boolean"?"checkbox":n==="number"||p!=null&&_.has(p)||P(r)?"number":"input"}function C(r){const n=r&&r.columns&&typeof r.columns.all=="function"?r.columns.all():[],p=[];for(const v of n){if(!v||!v.field||v.generated||v.computed)continue;const b={type:y(v),name:v.field,label:v.title,format:v.format},m=v.dataType,V=m&&m.unitConfig,l=m&&m.temperatureConfig;V?Object.assign(b,{system:V.system,unit:V.unit,binary:V.binary,decimals:V.decimals,minDecimals:V.minDecimals,maxDecimals:V.maxDecimals,display:V.display,group:V.group,space:V.space,placement:V.placement,significantFigures:V.significantFigures,compound:V.compound,nullDisplay:V.nullDisplay}):l&&Object.assign(b,{scale:l.scale,display:l.display,decimals:l.decimals,minDecimals:l.minDecimals,maxDecimals:l.maxDecimals,space:l.space,nullDisplay:l.nullDisplay}),p.push(b)}return p}function E(r,n){const p=r&&r.columns&&typeof r.columns.all=="function"?r.columns.all():[];for(const v of p)if(v&&v.field===n)return v;return null}function g(r){const n=r&&typeof r.get=="function"?r.get("density"):void 0;return R.includes(n)?n:void 0}function o(r){const{grid:n,rowKey:p}=r,v=()=>{const l=n&&n.rows&&typeof n.rows.byKey=="function"?n.rows.byKey(p):null;return l&&O(l.data)?{...l.data}:{}},b=l=>{const f=E(n,l);return f?f.id:l};return{kind:"grid",record:v,items:()=>C(n),density:()=>g(n),subscribe:l=>{if(!n||typeof n.on!="function")return()=>{};const f=c=>{if(!c||c.key!==p)return;const s=n.columns&&typeof n.columns.get=="function"?n.columns.get(c.colId):null,i=s?s.field:c.colId;i&&l(i,c.value)};return n.on("cell:changed",f)},save:l=>{const f=Object.keys(l);if(!f.length)return!0;if(!n||!n.edit||typeof n.edit.setCells!="function")return!1;const c=f.map(i=>({key:p,colId:b(i),value:l[i]})),s=n.edit.setCells(c,"cell",{origin:"form"});return s&&typeof s.then=="function"?s.then(i=>i>0):s>0}}}function a(r){return{kind:"values",record:()=>({...r}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:v=>{for(const b of Object.keys(v))r[b]=v[b];return!0}}}function d(r){const n=r&&r.bind;return n==null||typeof n!="object"?null:n.grid!=null&&O(n.grid)?o(n):n.router!=null?re(n):a(n)}function h(r){return!!(r&&r.bind!=null&&typeof r.bind=="object")}function t(r,n,p){r.bound=p;const v=(V,l)=>{const f=n.getItem(V);f&&f.setValue(l)},b=(V,l,f)=>{if(f!=null){for(const c of Object.keys(f))if(r.items.has(c)){if(r.dirty.has(c)){r.conflicts.add(c);continue}r.baseline[c]=f[c],v(c,f[c])}return}if(r.items.has(V)){if(r.dirty.has(V)){r.conflicts.add(V);return}r.baseline[V]=l,v(V,l)}},m=p.record();if(m!=null&&typeof m=="object")for(const V of Object.keys(m))r.items.has(V)&&(r.baseline[V]=m[V],v(V,m[V]));r.disposers.push(n.on("change",V=>{r.dirty.add(V.name),r.conflicts.delete(V.name)})),r.disposers.push(p.subscribe(b))}}),Te("packages/modules/form/controls/input.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=Object.freeze(["text","email","password","url"]),re=Object.freeze({viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"],paint:"fill"}),_=Object.freeze({viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"});function P(g){return k.includes(g)?g:"text"}function O(g){return!(g.props&&g.props.reveal===!1)}function y(g,o){const a=o?_:re,d=g.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("viewBox",a.viewBox),d.setAttribute("focusable","false"),d.setAttribute("aria-hidden","true"),a.paint==="stroke"?(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round")):d.setAttribute("fill","currentColor");for(const h of a.paths){const t=g.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",h),d.appendChild(t)}return d}function C(g){return g.__latPassword?g.__latPassword.input:g}function E(g,o,a){const d=o&&o.defaultView,h=d&&d.Event,t=h?new h(a,{bubbles:!0}):{type:a,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};g.dispatchEvent(t)}R("input",{kind:"field",build(g,o){const a=o.doc,d=P(g.subtype);if(d!=="password"||!O(g)){const m=a.createElement("input");return m.type=d,g.name&&(m.name=g.name),g.placeholder!=null&&(m.placeholder=String(g.placeholder)),m.value=g.value==null?"":String(g.value),m}const h=a.createElement("div");h.className="lat-form__password";const t=a.createElement("input");t.type="password",g.name&&(t.name=g.name),g.placeholder!=null&&(t.placeholder=String(g.placeholder)),t.value=g.value==null?"":String(g.value),h.appendChild(t);const r=a.createElement("button");r.type="button",r.className="lat-form__password-btn",r.setAttribute("aria-pressed","false");const n=o.t("form.password.show");r.setAttribute("aria-label",n),r.title=n,r.appendChild(y(a,!1)),h.appendChild(r);const p={revealed:!1,disabled:!1,input:t,btn:r};h.__latPassword=p;const v=m=>{p.revealed=m===!0,t.type=p.revealed?"text":"password",r.setAttribute("aria-pressed",p.revealed?"true":"false");const V=o.t(p.revealed?"form.password.hide":"form.password.show");r.setAttribute("aria-label",V),r.title=V,r.replaceChild(y(a,p.revealed),r.firstChild)};p.setRevealed=v,r.addEventListener("click",()=>{p.disabled||v(!p.revealed)});let b=!1;return h.addEventListener("focusin",()=>{b||(b=!0,E(h,a,"focus"))}),h.addEventListener("focusout",m=>{h.contains(m.relatedTarget)||(b=!1,v(!1),E(h,a,"blur"))}),h},read(g){return C(g).value},write(g,o){C(g).value=o==null?"":String(o)},state(g,o){const a=C(g);a.disabled=o.disabled===!0,a.readOnly=o.readOnly===!0;const d=g.__latPassword;d&&(d.disabled=o.disabled===!0,d.btn&&(d.btn.disabled=d.disabled))},reset(g){const o=g.__latPassword;o&&typeof o.setRevealed=="function"&&o.setRevealed(!1)}})}),Te("packages/core/src/internal/predicates.js",function($,J){"use strict";Object.defineProperty($,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"isFunction",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"isNil",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"isBlank",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"isCtor",{enumerable:!0,get:function(){return _}});function e(P){return P!==null&&typeof P=="object"&&!Array.isArray(P)}function R(P){return typeof P=="function"}function k(P){return P==null}function re(P){return P==null||P===""}function _(P){return typeof P!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(P))?!0:!!(P.prototype&&Object.getOwnPropertyNames(P.prototype).length>1)}}),Te("packages/core/src/internal/warn.js",function($,J){"use strict";Object.defineProperty($,"reportedWarnings",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"warnOnce",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"infoOnce",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"resetWarnings",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"fail",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"invariant",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"DEV",{enumerable:!0,get:function(){return h}});const e=new Set,R=2e3;function k(t){if(e.add(t),e.size>R){const r=e.values().next().value;r!==void 0&&e.delete(r)}}const re=[],_=500;function P(t,r,n){re.push({key:t,level:r,message:n.map(p=>typeof p=="string"?p:O(p)).join(" "),at:Date.now()}),re.length>_&&re.shift()}function O(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function y(){return re.map(t=>({...t}))}function C(t){if(t.length===0||typeof t[0]!="string")return t;const r=t[0].replace(/^\[lattice\]\s*/,"");return r===t[0]?t:[r,...t.slice(1)]}function E(t,...r){if(e.has(t))return;k(t);const n=C(r);P(t,"warn",n),console.warn("[lattice]",...n)}function g(t,...r){if(e.has(t))return;k(t);const n=C(r);P(t,"info",n),console.info("[lattice]",...n)}function o(){e.clear(),re.length=0}function a(t,r){const n=new Error(`[lattice] ${t}`);throw r!==void 0&&(n.cause=r),n}function d(t,r){t||a(r)}const h=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Te("packages/core/src/format/mask.js",function($,J){"use strict";Object.defineProperty($,"splitSections",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"parseSection",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"compileMask",{enumerable:!0,get:function(){return P}});const e=new Set(["0","#","?",",","."]),R="\0";function k(y){const C=[];let E="",g=!1;for(let o=0;o<y.length;o++){const a=y[o];if(a==="\\"){E+=a+(y[o+1]??""),o+=1;continue}if(a==='"'){g=!g,E+=a;continue}if(a===";"&&!g){C.push(E),E="";continue}E+=a}return C.push(E),C}function re(y){let C="",E="",g="",o=1,a=!1,d=!1;const h=l=>{d?E+=l:C+=l};for(let l=0;l<y.length;l++){const f=y[l];if(f==="\\"){h(y[l+1]??""),l+=1;continue}if(f==='"'){const c=y.indexOf('"',l+1);h(c===-1?y.slice(l+1):y.slice(l+1,c)),l=c===-1?y.length:c;continue}if(f==="%"){o*=100,h("%");continue}if(f==="@"){a=!0,h("\0");continue}if(e.has(f)){g+=f,d=!0;continue}h(f)}let t=-1;for(let l=g.length-1;l>=0;l--){const f=g[l];if(f==="0"||f==="#"||f==="?"){t=l;break}}let r=!1,n="";for(let l=0;l<g.length;l++){const f=g[l];if(f===","){l>t?o/=1e3:r=!0;continue}n+=f}const p=n.indexOf("."),v=p===-1?n:n.slice(0,p),b=p===-1?"":n.slice(p+1);let m=0;for(const l of v)l==="0"&&(m+=1);let V=0;for(const l of b)l==="0"&&(V+=1);return{prefix:C,suffix:E,minInt:m,minDec:V,maxDec:b.length,grouping:r,scale:o,hasNumber:t!==-1,isText:a}}function _(y,C){const E=new Intl.NumberFormat(C,{minimumIntegerDigits:Math.max(y.minInt,1),minimumFractionDigits:y.minDec,maximumFractionDigits:Math.max(y.maxDec,y.minDec),useGrouping:y.grouping}),{prefix:g,suffix:o,scale:a,hasNumber:d}=y;return h=>{if(!d)return g+o;const t=a===1?h:h*a;return g+E.format(t)+o}}function P(y,C){const g=k(String(y)).map(re),o=g.map(n=>_(n,C)),a=0,d=g.length>1?1:-1,h=g.length>2?2:-1,t=g.length>3?3:-1,r=n=>{if(n==null||n==="")return"";if(typeof n!="number"||Number.isNaN(n)){const p=Number(n);if(Number.isNaN(p))return t===-1?String(n):(g[t].prefix+g[t].suffix).split("\0").join(String(n));n=p}return n===0&&h!==-1?o[h](0):n<0&&d!==-1?o[d](-n):o[a](n)};return r.spec={mask:y},{format:r,ooxml:O(String(y))}}function O(y){return y.trim()}}),Te("packages/core/src/format/pattern.js",function($,J){"use strict";Object.defineProperty($,"parseNumberPattern",{enumerable:!0,get:function(){return _}});const R=J("packages/core/src/format/mask.js").splitSections;function k(P){let O="",y="",C="",E="",g=!1,o=!1,a=!1,d=!1;const h=r=>{a?y+=r:O+=r};for(let r=0;r<P.length;r++){const n=P[r];if(n==="\\"){h(P[r+1]??""),r+=1;continue}if(n==='"'){const p=P.indexOf('"',r+1);h(p===-1?P.slice(r+1):P.slice(r+1,p)),r=p===-1?P.length:p;continue}if(n==="%"){o=!0;continue}if(n==="0"||n==="#"){a=!0,d?E+=n:C+=n;continue}if(n===","){d||(g=!0);continue}if(n==="."&&!d){d=!0;continue}h(n)}if(!a)return{hasDigit:!1,prefix:O,suffix:y,minDec:0,maxDec:0,grouping:!1,percent:o};let t=0;for(const r of E)r==="0"&&(t+=1);return{hasDigit:!0,prefix:O,suffix:y,minDec:t,maxDec:E.length,grouping:g,percent:o}}function re(P,O){const y=O.trim(),C=P.trim();return y.startsWith("(")&&y.endsWith(")")&&y.slice(1,-1).trim()===C?"parentheses":y.endsWith("-")?"suffix":"minus"}function _(P){if(typeof P!="string")return null;const O=R(P);if(O.length===0)return null;const y=k(O[0]);if(!y.hasDigit)return null;const C={style:y.percent?"percent":"decimal",prefix:y.prefix,suffix:y.suffix,minDecimals:y.minDec,maxDecimals:Math.max(y.maxDec,y.minDec),thousandsSeparator:y.grouping?void 0:!1};if(O.length>1&&(C.negative=re(O[0],O[1])),O.length>2){const E=k(O[2]);E.hasDigit||(C.zeroDisplay=E.prefix+E.suffix)}return C}}),Te("packages/core/src/format/number.js",function($,J){"use strict";Object.defineProperty($,"compileNumber",{enumerable:!0,get:function(){return O}});const R=J("packages/core/src/internal/predicates.js").isNil,re=J("packages/core/src/internal/warn.js").warnOnce,P=J("packages/core/src/format/pattern.js").parseNumberPattern;function O(y,C){const E=typeof y=="string"?{pattern:y}:y||{};let g=E;if(typeof E.pattern=="string"){const M=P(E.pattern);if(M){const{pattern:D,...Q}=E;g={...M,...Q}}else re(`format:pattern:${E.pattern}`,`invalid number format pattern "${E.pattern}"; the value will use the default number format`)}const o=g.locale||C||void 0,a=g.style||"decimal",d=typeof g.scale=="number"?g.scale:1,h=g.nullDisplay??"",t=g.zeroDisplay,r=g.prefix||"",n=g.suffix||"",p=g.negative||"minus",v=g.signed===!0,b={style:a,notation:g.notation||"standard"};a==="currency"&&(b.currency=g.currency||"USD",g.currencyDisplay&&(b.currencyDisplay=g.currencyDisplay)),typeof g.decimals=="number"?(b.minimumFractionDigits=g.decimals,b.maximumFractionDigits=g.decimals):(typeof g.minDecimals=="number"&&(b.minimumFractionDigits=g.minDecimals),typeof g.maxDecimals=="number"&&(b.maximumFractionDigits=g.maxDecimals),b.minimumFractionDigits>(b.maximumFractionDigits??20)&&(b.maximumFractionDigits=b.minimumFractionDigits)),g.thousandsSeparator===!1&&(b.useGrouping=!1),b.notation==="compact"&&(b.compactDisplay=g.compactDisplay||"short");const m=new Intl.NumberFormat(o,b),V=typeof g.thousandsSeparator=="string"?g.thousandsSeparator:null,l=typeof g.decimalSeparator=="string"?g.decimalSeparator:null;let f=",",c=".";if(V||l)for(const M of m.formatToParts(12345.6))M.type==="group"?f=M.value:M.type==="decimal"&&(c=M.value);const s=M=>{let D=M;return V&&(D=D.split(f).join("")),l&&(D=D.split(c).join("")),V&&(D=D.split("").join(V)),l&&(D=D.split("").join(l)),D},i=!!(V||l),u=r!==""&&a==="currency",j=M=>{let D;if(u){const Q=m.formatToParts(M);let Z=!1;D="";for(const ae of Q)D+=ae.value,!Z&&ae.type==="currency"&&(D+=r,Z=!0);Z||(D=r+D)}else D=r+m.format(M);return i&&(D=s(D)),D+n},F=M=>{if(R(M)||M==="")return h;const D=typeof M=="number"?M:Number(M);if(Number.isNaN(D))return h;const Q=d===1?D:D*d;return Q===0&&t!==void 0?t:Q<0?p==="parentheses"?`(${j(-Q)})`:p==="suffix"?`${j(-Q)}-`:j(Q):v&&Q>0?`+${j(Q)}`:j(Q)};return F.negativeClass=g.negativeClass||null,F.spec=g,F}}),Te("packages/core/src/columns/types/unit.js",function($,J){"use strict";Object.defineProperty($,"defineUnit",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"registerUnitSystem",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"unitSystemNames",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"unitsOf",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"localeSeparators",{enumerable:!0,get:function(){return V}}),Object.defineProperty($,"parseUnit",{enumerable:!0,get:function(){return F}}),Object.defineProperty($,"formatUnit",{enumerable:!0,get:function(){return ze}}),Object.defineProperty($,"createUnitType",{enumerable:!0,get:function(){return S}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return I}});const R=J("packages/core/src/internal/predicates.js").isNil,re=J("packages/core/src/internal/warn.js").warnOnce;function _(U,w,B,W){return Object.freeze({symbol:U,factor:w,aliases:Object.freeze(B||[]),binary:!!(W&&W.binary),prefix:W&&W.prefix||null,auto:!(W&&W.auto===!1)})}function P(U,w,B,W){return _(U,w,B,W)}const O=Object.freeze({data:Object.freeze([_("B",1,["byte","bytes"]),_("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),_("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),_("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),_("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),_("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),_("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),_("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),_("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),_("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([_("bps",1,["bit","bits","bit/s","b/s"]),_("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),_("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),_("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),_("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([_("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),_("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),_("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),_("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),_("in",.0254,["inch","inches"],{auto:!1}),_("ft",.3048,["foot","feet"],{auto:!1}),_("yd",.9144,["yard","yards"],{auto:!1}),_("m",1,["metre","metres","meter","meters"]),_("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),_("mi",1609.344,["mile","miles"],{auto:!1}),_("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([_("mg",.001,["milligram","milligrams"]),_("g",1,["gram","grams"]),_("oz",28.349523125,["ounce","ounces"],{auto:!1}),_("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),_("kg",1e3,["kilogram","kilograms"]),_("st",6350.29318,["stone"],{auto:!1}),_("t",1e6,["tonne","tonnes","ton"],{auto:!1}),_("ton (US)",907184.74,["ton","shortton"],{auto:!1}),_("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([_("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),_("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),_("ms",.001,["msec","msecs","millisecond","milliseconds"]),_("s",1,["sec","secs","second","seconds"]),_("m",60,["min","mins","minute","minutes"]),_("h",3600,["hr","hrs","hour","hours"]),_("d",86400,["day","days"])]),speed:Object.freeze([_("mm/s",.001,["millimetre/s","millimeter/s"]),_("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),_("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),_("mph",.44704,["mile/h","miles/h"],{auto:!1}),_("kn",1852/3600,["knot","knots"],{auto:!1}),_("m/s",1,["metre/s","meter/s","mps"]),_("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([_("mm/s²",.001,["mm/s2"]),_("ft/s²",.3048,["ft/s2"],{auto:!1}),_("m/s²",1,["m/s2","metre/s2","meter/s2"]),_("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([_("mm²",1e-6,["mm2"]),_("cm²",1e-4,["cm2"]),_("in²",64516e-8,["in2","sqin"],{auto:!1}),_("ft²",.09290304,["ft2","sqft"],{auto:!1}),_("yd²",.83612736,["yd2","sqyd"],{auto:!1}),_("m²",1,["m2","sqm"]),_("ha",1e4,["hectare","hectares"],{auto:!1}),_("ac",4046.8564224,["acre","acres"],{auto:!1}),_("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([_("µL",1e-6,["ul","microlitre","microliter"]),_("mL",.001,["millilitre","milliliter"]),_("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),_("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),_("L",1,["litre","litres","liter","liters"]),_("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),_("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),_("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),_("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([_("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),_("J",1,["joule","joules"]),_("cal",4.184,["calorie","calories"],{auto:!1}),_("kJ",1e3,["kilojoule","kilojoules"]),_("BTU",1055.05585262,["btu"],{auto:!1}),_("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),_("MJ",1e6,["megajoule","megajoules"]),_("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),_("GJ",1e9,["gigajoule","gigajoules"]),_("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([_("mW",.001,["milliwatt","milliwatts"]),_("W",1,["watt","watts"]),_("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),_("kW",1e3,["kilowatt","kilowatts"]),_("hp",745.6998715822702,["horsepower"],{auto:!1}),_("MW",1e6,["megawatt","megawatts"]),_("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([_("mN",.001,["millinewton","millinewtons"]),_("N",1,["newton","newtons"]),_("lbf",4.4482216152605,["poundforce"],{auto:!1}),_("kgf",9.80665,["kilogramforce"],{auto:!1}),_("kN",1e3,["kilonewton","kilonewtons"]),_("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([_("Pa",1,["pascal","pascals"]),_("mbar",100,["millibar"],{auto:!1}),_("inH₂O",249.0889,["inh2o"],{auto:!1}),_("mmHg",133.322387415,["torr"],{auto:!1}),_("kPa",1e3,["kilopascal","kilopascals"]),_("inHg",3386.388640341,["inhg"],{auto:!1}),_("psi",6894.757293168361,["lbf/in2"],{auto:!1}),_("bar",1e5,[],{auto:!1}),_("atm",101325,["atmosphere","atmospheres"],{auto:!1}),_("MPa",1e6,["megapascal","megapascals"]),_("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([_("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),_("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),_("kN·m",1e3,["knm","kn.m"],{auto:!1}),_("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([_("kg/m³",1,["kg/m3"]),_("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),_("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),_("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([_("L/min",1/6e4,["lpm","l/min"],{auto:!1}),_("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),_("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),_("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),_("cfm",.0004719474432,["ft3/min"],{auto:!1}),_("L/s",.001,["lps","l/s"],{auto:!1}),_("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([_("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),_("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),_("mrad",.001,["milliradian","milliradians"],{auto:!1}),_("mil",Math.PI/3200,["nato-mil"],{auto:!1}),_("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),_("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),_("rad",1,["radian","radians"]),_("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([_("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),_("rad/s",1,["radps","radians/s"]),_("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),_("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([_("ppt",1e-12,["partspertrillion"],{auto:!1}),_("ppb",1e-9,["partsperbillion"]),_("ppm",1e-6,["partspermillion"]),_("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),_("‰",.001,["permille","permil"],{auto:!1}),_("%",.01,["pct","percent"]),_("×",1,["x","ratio","times"])]),molarity:Object.freeze([_("pM",1e-12,["picomolar","picomolarity"]),_("nM",1e-9,["nanomolar","nanomolarity"]),_("µM",1e-6,["um-molar","micromolar","micromolarity"]),_("mM",.001,["millimolar","millimolarity"]),_("M",1,["molar","mol/l","mol/L","molarity"]),_("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([_("mg/s",1e-6,["milligrams/s"]),_("g/s",.001,["grams/s"]),_("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),_("kg/s",1,["kilograms/s","kgps"]),_("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),_("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),_("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([_("µPa·s",1e-6,["upas","micropascalsecond"]),_("cP",.001,["centipoise"],{auto:!1}),_("mPa·s",.001,["mpas","millipascalsecond"]),_("P",.1,["poise"],{auto:!1}),_("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([_("cSt",1e-6,["centistokes","centistoke"]),_("mm²/s",1e-6,["mm2/s"],{auto:!1}),_("St",1e-4,["stokes","stoke"],{auto:!1}),_("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([_("mW/(m·K)",.001,["mw/mk"]),_("W/(m·K)",1,["w/mk","wmk"]),_("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),_("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([_("J/(kg·K)",1,["j/kgk","jkgk"]),_("kJ/(kg·K)",1e3,["kj/kgk"]),_("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([_("nSv/h",1e-9,["nsvh"]),_("µSv/h",1e-6,["usv/h","usvh"]),_("mSv/h",.001,["msvh"]),_("Sv/h",1,["svh"]),_("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),y=Symbol("ambiguous"),C=new Map,E=new Map;function g(U,w){const B=String(U||"").trim();if(!B)throw new Error("[lattice] a unit system needs a name");if(O[B]||E.has(B))throw new Error(`[lattice] unit system "${B}" already exists`);const W=[...w||[]];if(!W.length)throw new Error(`[lattice] unit system "${B}" has no units`);if(!W.some(ne=>ne.factor===1))throw new Error(`[lattice] unit system "${B}" has no base unit (none with factor 1)`);const q=new Set;for(const ne of W){if(q.has(ne.symbol))throw new Error(`[lattice] unit system "${B}" declares "${ne.symbol}" twice`);q.add(ne.symbol)}return E.set(B,Object.freeze(W)),C.delete(B),B}function o(){return[...Object.keys(O),...E.keys()]}function a(U){const w=d(U);return w?w.units:[]}function d(U){const w=String(U||""),B=C.get(w);if(B!==void 0)return B;const W=O[w]||E.get(w);if(!W)return C.set(w,null),null;const q=Object.freeze([...W].sort((oe,z)=>oe.factor-z.factor)),ne=new Map,se=new Map,N=(oe,z)=>{const T=ne.get(oe);T===void 0?ne.set(oe,z):T!==z&&ne.set(oe,y)};for(const oe of q){N(oe.symbol.toLowerCase(),oe);for(const z of oe.aliases)N(z.toLowerCase(),oe);if(oe.prefix){const z=se.get(oe.prefix)||[];z.push(oe),se.set(oe.prefix,z)}}const K={units:q,byToken:ne,byPrefix:se,decimal:q.filter(oe=>!oe.binary&&oe.auto),binary:q.some(oe=>oe.binary)?q.filter(oe=>(oe.binary||oe.factor===1)&&oe.auto):null};return C.set(w,K),K}function h(U,w){return w&&U.binary||U.decimal}function t(U,w){const B=d(U);if(!B||R(w))return null;const W=B.units.find(ne=>ne.symbol===String(w));if(W)return W;const q=B.byToken.get(String(w).trim().toLowerCase());return q&&q!==y?q:null}const r=new WeakMap;function n(U){const w=U||{};if(typeof w=="object"&&w!==null){const ne=r.get(w);if(ne!==void 0)return ne}const B=w.system||"data",W=d(B);let q=null;if(!W)re(`unit:system:${B}`,`unknown unit system "${B}"; known systems are ${o().join(", ")}`);else{let ne=w.unit?t(B,w.unit):null;ne||(w.unit&&re(`unit:unit:${B}:${w.unit}`,`unknown unit "${w.unit}" in system "${B}"; falling back to ${W.units[0].symbol}`),ne=W.units.find(se=>se.factor===1)||W.units[0]),q={index:W,base:ne,binary:w.binary===!0}}return typeof w=="object"&&w!==null&&r.set(w,q),q}const p=new WeakMap;function v(U,w){if(!U||!w||!Array.isArray(U.compound)||U.compound.length===0)return null;const B=p.get(U);if(B!==void 0)return B;const W=new Set,q=[];for(const se of U.compound){const N=t(U.system||"data",se);if(!N){re(`unit:compound:${U.system}:${se}`,`unknown compound unit "${se}" in system "${U.system||"data"}"; ignoring it`);continue}W.has(N.symbol)||(W.add(N.symbol),q.push(N))}q.sort((se,N)=>N.factor-se.factor);const ne=q.length>=2?q:null;return p.set(U,ne),ne}function b(U,w,B){return w===B||w.factor===B.factor?U:U*w.factor/B.factor}const m=new Map;function V(U){const w=U||"",B=m.get(w);if(B)return B;const W={group:",",decimal:"."};try{for(const q of new Intl.NumberFormat(U||void 0).formatToParts(12345.6))q.type==="group"?W.group=q.value:q.type==="decimal"&&(W.decimal=q.value)}catch{}return m.set(w,W),W}const l=/[\s   ]/g,f=/^[+-]?[\d   '’ .,]*(?:[eE][+-]?\d+)?/,c=/^[^\d+\-(.,\s]+\s*/,s=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function i(U,w){const{group:B,decimal:W}=V(w);let q=String(U).replace(l,"");if(q==="")return null;const ne=W?q.indexOf(W):-1;if(B&&B!==W){if(ne>=0&&q.indexOf(B,ne+W.length)>=0)return null;q=q.split(B).join("")}if(W&&W!=="."&&(q=q.split(W).join(".")),!s.test(q))return null;const se=Number(q);return Number.isFinite(se)?se:null}function u(U,w,B){const W=String(U).trim().replace(/\.$/,"");if(W==="")return null;const q=w.units.find(z=>z.symbol===W);if(q)return q;const ne=W.toLowerCase(),se=w.byToken.get(ne);if(se===y)return null;if(se)return se;const N=w.byPrefix.get(ne);if(!N||!N.length)return null;const K=h(w,B),oe=N.filter(z=>K.includes(z));return oe.length===1?oe[0]:null}function j(U,w,B,W){let q=U,ne=0,se=!1,N=!1;for(;q!=="";){const K=f.exec(q)[0];if(K==="")return null;const oe=i(K,W&&W.locale);if(oe===null)return null;q=q.slice(K.length).trim();const z=q.search(/[+-]?[\d]/),T=(z>=0?q.slice(0,z):q).trim();if(q=z>=0?q.slice(z).trim():"",T===""){if(se)return null;N=!0,ne+=b(oe,B[0],w.base)}else{const L=u(T,w.index,w.binary);if(!L)return null;ne+=b(oe,L,w.base)}if(se=!0,N&&q!=="")return null}return se?ne:null}function F(U,w){if(R(U))return null;if(typeof U=="number")return Number.isFinite(U)?U:null;const B=n(w);if(!B)return null;let W=String(U).trim();if(W==="")return null;let q=!1;W.startsWith("(")&&W.endsWith(")")&&(q=!0,W=W.slice(1,-1).trim());const ne=v(w,B);if(ne){W.startsWith("-")&&(q=!0,W=W.slice(1).trim());const A=j(W,B,ne,w);return A===null?null:q?-A:A}let se=null;const N=c.exec(W);if(N&&N[0]){const A=u(N[0].trim(),B.index,B.binary);A&&(se=A,W=W.slice(N[0].length).trim())}const K=f.exec(W)[0],oe=i(K,w&&w.locale);if(oe===null)return null;const z=W.slice(K.length).trim();if(se&&z!=="")return null;const T=se||(z===""?B.base:u(z,B.index,B.binary));if(!T)return null;const L=b(oe,T,B.base);return q?-L:L}const M=new Map;function D(U,w,B,W){const q=`${U||""}|${w}|${B}|${W?1:0}`;let ne=M.get(q);return ne||(ne=new Intl.NumberFormat(U||void 0,{minimumFractionDigits:w,maximumFractionDigits:B,useGrouping:W}),M.set(q,ne)),ne}function Q(U,w){if(!Number.isFinite(U)||U===0)return Math.max(0,w-1);const B=Math.floor(Math.log10(Math.abs(U)));return Math.min(20,Math.max(0,w-1-B))}function Z(U,w){if(!Number.isFinite(U)||U===0)return U;const B=Math.ceil(Math.log10(Math.abs(U))),W=10**(w-B);return Math.round(U*W)/W}function ae(U,w,B){if(!B||B===w.base.symbol)return w.base;if(B!=="auto")return Y(w,B);if(U===0||!Number.isFinite(U))return w.base;const W=Math.abs(U)*w.base.factor,q=h(w.index,w.binary);let ne=q[0];for(const K of q)W>=K.factor&&(ne=K);if(W>=ne.factor)return ne;let se=ne;for(const K of w.index.units)K.binary!==w.binary&&K.factor!==1||K.factor<=W&&K.factor>(se===ne?0:se.factor)&&(se=K);if(se!==ne)return se;let N=ne;for(const K of w.index.units)K.binary!==w.binary&&K.factor!==1||K.factor<N.factor&&(N=K);return N.factor<w.base.factor?N:w.base}function Y(U,w){const B=U.index.units.find(q=>q.symbol===w);if(B)return B;const W=U.index.byToken.get(String(w).toLowerCase());return W&&W!==y?W:(re(`unit:display:${w}`,`unknown display unit "${w}"; rendering in ${U.base.symbol}`),U.base)}function ee(U,w,B,W){const q=U<0;let ne=Math.abs(U)*w.base.factor;const se=typeof W.decimals=="number"?W.decimals:W.minDecimals??0,N=typeof W.decimals=="number"?W.decimals:W.maxDecimals??Math.max(se,2),K=W.space??" ",oe=[];for(let T=0;T<B.length;T++){const L=B[T],A=T===B.length-1;let H=A?ne/L.factor:Math.floor(ne/L.factor);if(ne-=H*L.factor,A){const ie=10**N;H=Math.round(H*ie)/ie+0}const X=A?D(W.locale,se,N,W.group!==!1):D(W.locale,0,0,W.group!==!1);oe.push(`${X.format(H)}${K}${L.symbol}`)}const z=oe.join(" ");return q?`-${z}`:z}function ze(U,w){const B=w||{},W=B.nullDisplay??"";if(R(U)||U==="")return W;const q=typeof U=="number"?U:Number(U);if(!Number.isFinite(q))return W;const ne=n(B);if(!ne)return String(q);const se=v(B,ne);if(se)return ee(q,ne,se,B);const N=typeof B.significantFigures=="number"&&B.significantFigures>0?B.significantFigures:0,K=N?Z(q,N):q,oe=ae(K,ne,B.display),z=b(K,ne.base,oe);let T=typeof B.decimals=="number"?B.decimals:B.minDecimals??0,L=typeof B.decimals=="number"?B.decimals:B.maxDecimals??Math.max(T,2);N&&(T=Q(z,N),L=T);const A=D(B.locale,T,L,B.group!==!1).format(z),H=B.space??" ";return B.placement==="prefix"?`${oe.symbol}${B.space??""}${A}`:`${A}${H}${oe.symbol}`}function Ce(U,w){const B=R(U)||Number.isNaN(U)?null:Number(U),W=R(w)||Number.isNaN(w)?null:Number(w);return B===null||Number.isNaN(B)?W===null||Number.isNaN(W)?0:1:W===null||Number.isNaN(W)||B<W?-1:B>W?1:0}function me(U){const w=typeof U.decimals=="number"&&U.decimals>0?`.${"0".repeat(U.decimals)}`:"";return`${typeof U.decimals=="number"?`#,##0${w}`:"#,##0.##"}" ${U.symbol}"`}function S(U){const w={system:"data",...U||{}},B=n(w),W=B?B.base.symbol:String(w.unit||""),q=Object.freeze({...w,unit:W}),ne=Object.freeze({...q,display:W,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),se=new Map([[q.locale||"",q]]),N=K=>{const oe=K||"";let z=se.get(oe);return z||(z=Object.freeze({...q,locale:K||void 0}),se.set(oe,z)),z};return{base:"number",extends:"number",storage:"float64",unitConfig:q,format:K=>ze(K.value,K.locale?N(K.locale):q),parse:K=>F(K.text,K.locale?N(K.locale):q),compare:Ce,defaults:{filter:"number",editor:"unit",align:"end",total:w.total||"sum"},...w.totals?{totals:w.totals}:{},excel:w.excel||me({decimals:w.decimals,symbol:W}),toStorage:K=>typeof K=="number"?Number.isFinite(K)?K:null:typeof K=="string"?F(K,q):R(K)?null:F(String(K),q),toClipboard:K=>ze(K,ne),fromClipboard:K=>F(K,q)}}const I=S}),Te("packages/core/src/columns/types/temperature.js",function($,J){"use strict";Object.defineProperty($,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"findScale",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"convertTemperature",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"formatTemperature",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"parseTemperature",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"createTemperatureType",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return d}});const R=J("packages/core/src/internal/predicates.js").isNil,k=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:h=>h+273.15,fromKelvin:h=>h-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:h=>(h+459.67)*(5/9),fromKelvin:h=>h*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:h=>h,fromKelvin:h=>h}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:h=>h*(5/9),fromKelvin:h=>h*(9/5)})});function re(h){if(R(h))return null;const t=String(h).trim();if(t==="")return null;for(const[n,p]of Object.entries(k))if(t===n||t===p.symbol)return{key:n,scale:p};const r=t.toLowerCase();for(const[n,p]of Object.entries(k))if(p.aliases.includes(r))return{key:n,scale:p};return null}function _(h,t,r){const n=re(t),p=re(r);return!n||!p||!Number.isFinite(Number(h))?null:n.key===p.key?Number(h):p.scale.fromKelvin(n.scale.toKelvin(Number(h)))}const P=new Map;function O(h,t,r){const n=`${h||""}|${t}|${r}`;let p=P.get(n);return p||(p=new Intl.NumberFormat(h||void 0,{minimumFractionDigits:t,maximumFractionDigits:r}),P.set(n,p)),p}function y(h,t){const r=t||{},n=r.nullDisplay??"";if(R(h)||h==="")return n;const p=Number(h);if(!Number.isFinite(p))return n;const v=re(r.scale||"C");if(!v)return String(p);const b=re(r.display||r.scale||"C")||v,m=b.key===v.key?p:b.scale.fromKelvin(v.scale.toKelvin(p)),V=typeof r.decimals=="number"?r.decimals:null,l=V??r.minDecimals??0,f=V??r.maxDecimals??1;return`${O(r.locale,l,f).format(m)}${r.space??" "}${b.scale.symbol}`}const C=/^[+-]?[\d\s.,  ]*\d/;function E(h,t){const r=String(h).trim();if(r==="")return null;const n=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(m=>m.type==="decimal")?.value||".",p=n===","?".":",",v=r.split(p).join("").split(/[\s  ]/).join("").replace(n,"."),b=Number(v);return Number.isFinite(b)?b:null}function g(h,t){if(R(h))return null;const r=t||{},n=re(r.scale||"C");if(!n)return null;if(typeof h=="number")return Number.isFinite(h)?h:null;let p=String(h).trim();if(p==="")return null;let v=!1;p.startsWith("(")&&p.endsWith(")")&&(v=!0,p=p.slice(1,-1).trim());const b=C.exec(p);if(!b)return null;const m=E(b[0],r.locale);if(m===null)return null;const V=p.slice(b[0].length).trim();if(V==="")return v?-m:m;const l=re(V);if(!l)return null;const f=l.key===n.key?m:n.scale.fromKelvin(l.scale.toKelvin(m));return v?-f:f}function o(h){const t=Object.freeze({scale:"C",...h||{}}),n=(re(t.scale)||re("C")).scale.symbol,p=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),v=new Map([[t.locale||"",t]]),b=m=>{const V=m||"";let l=v.get(V);return l||(l=Object.freeze({...t,locale:m||void 0}),v.set(V,l)),l};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:m=>y(m.value,m.locale?b(m.locale):t),parse:m=>g(m.text,m.locale?b(m.locale):t),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:t.excel||`#,##0${typeof t.decimals=="number"&&t.decimals>0?`.${"0".repeat(t.decimals)}`:".#"}" ${n}"`,toStorage:m=>typeof m=="number"?Number.isFinite(m)?m:null:typeof m=="string"?g(m,t):R(m)?null:g(String(m),t),toClipboard:m=>y(m,p),fromClipboard:m=>g(m,t)}}const a=Object.freeze({celsius:o({scale:"C"}),fahrenheit:o({scale:"F"}),kelvin:o({scale:"K"})}),d=o}),Te("packages/modules/form/controls/number.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,re=J("packages/modules/form/messages.js").t,P=J("packages/core/src/format/number.js").compileNumber,O=J("packages/core/src/columns/types/unit.js"),y=O.parseUnit,C=O.formatUnit,E=O.findUnit,g=O.unitsOf,o=J("packages/core/src/columns/types/temperature.js"),a=o.parseTemperature,d=o.formatTemperature,h=o.findScale,t="data-lattice-form-number-styles";function r(){return`
1331
1351
  .lat-form__control .lat-form__number{
1332
1352
  text-align:right; font-variant-numeric:tabular-nums;
1333
1353
  }
@@ -1368,7 +1388,7 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1368
1388
  font:inherit; line-height:inherit; cursor:pointer;
1369
1389
  }
1370
1390
  .lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
1371
- `.trim()}function n(f){const c=f&&f.documentElement;if(!c||c.getAttribute(t))return;c.setAttribute(t,"1");const s=f.createElement("style");s.textContent=r(),(f.head||f.body||c).appendChild(s)}function p(f){let c="",s=".";try{for(const i of new Intl.NumberFormat(f||void 0).formatToParts(12345.6))i.type==="group"?c=i.value:i.type==="decimal"&&(s=i.value)}catch{}return{group:c,decimal:s}}function y(f,c){if(f==null)return null;let s=String(f).trim();if(s==="")return null;const{group:i,decimal:u}=p(c);let j=!1;if(/^\(.*\)$/.test(s)&&(j=!0,s=s.slice(1,-1)),s=s.replace(/[\s   ]/g,""),i&&i!=="."&&(s=s.split(i).join("")),s=s.replace(/[^0-9eE+\-.,]/g,""),u===","?(s=s.split(".").join(""),s=s.replace(",",".")):s=s.split(",").join(""),s===""||s==="-"||s==="+")return NaN;s.startsWith("-")&&(j=!j,s=s.slice(1));const H=Number(s);return Number.isFinite(H)?j?-H:H:NaN}function b(f){if(f==null||f==="")return"";const c=typeof f=="number"?f:Number(f);return Number.isFinite(c)?String(c):""}function m(f){return f&&f.__latNumber?f.__latNumber.input:f}function V(f){if(typeof f=="number")return Number.isFinite(f)?f:null;if(f==null||f==="")return null;const c=Number(f);return Number.isFinite(c)?c:null}function l(f){const c=f&&f.props||{};return typeof c.system=="string"&&c.system!==""?{kind:"unit",opts:{system:c.system,unit:c.unit,binary:c.binary===!0,decimals:c.decimals,minDecimals:c.minDecimals,maxDecimals:c.maxDecimals,display:c.display,locale:f.locale||c.locale,group:c.group,space:c.space,placement:c.placement,compound:c.compound,significantFigures:c.significantFigures,nullDisplay:c.nullDisplay}}:typeof c.scale=="string"&&c.scale!==""?{kind:"temperature",opts:{scale:c.scale,display:c.display,decimals:c.decimals,minDecimals:c.minDecimals,maxDecimals:c.maxDecimals,space:c.space,locale:f.locale||c.locale,nullDisplay:c.nullDisplay}}:null}I("number",{kind:"field",build(f,c){const s=c.doc;n(s);const i=f.props&&f.props.format&&(typeof f.props.format=="object"||typeof f.props.format=="string")?f.props.format:null,u=f.locale||void 0,j=i?T(i,u):null,H=typeof c.t=="function"?c.t:te,M=l(f),D=V(f.step),Q=V(f.min),Z=V(f.max);let ae="";if(M&&M.kind==="unit"){const re=E(M.opts.system,M.opts.unit);ae=re?re.symbol:String(M.opts.unit||"")}else if(M&&M.kind==="temperature"){const re=h(M.opts.scale);ae=re?re.scale.symbol:""}const Y=s.createElement("input");Y.type="text",Y.inputMode="decimal",Y.className="lat-form__number",f.name&&(Y.name=f.name),f.placeholder!=null&&(Y.placeholder=String(f.placeholder));const q={input:Y,format:j,t:H,locale:u,step:D,min:Q,max:Z,unit:M,unitSymbol:ae,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},Re=()=>q.displayUnit!=null?{...M.opts,display:q.displayUnit}:M.opts,ke=re=>q.unit&&q.unit.kind==="unit"?k(re,Re()):q.unit&&q.unit.kind==="temperature"?d(re,q.unit.opts):q.format&&Number.isFinite(re)?q.format(re):b(re),me=re=>{if(!q.unit)return y(re,q.locale);const ce=re==null?"":String(re);if(ce.trim()==="")return null;const N=q.unit.kind==="temperature"?a(ce,q.unit.opts):w(ce,q.unit.opts);return N===null?Number.NaN:N},S=()=>q.unit&&typeof q.unit.opts.nullDisplay=="string"?q.unit.opts.nullDisplay:"",z=re=>{if(re==null||re===""){q.value=null,q.invalid=!1,Y.value=S();return}const ce=typeof re=="number"?re:Number(re);if(!Number.isFinite(ce)){q.value=null,q.invalid=!1,Y.value=S();return}q.value=ce,q.invalid=!1,Y.value=q.focused?b(ce):ke(ce)},F=()=>{const re=Y.value;re===""?Y.removeAttribute("aria-valuetext"):Y.setAttribute("aria-valuetext",re)},v=re=>{const ce=me(Y.value);let K=(ce==null||Number.isNaN(ce)?0:ce)+re;typeof Q=="number"&&K<Q&&(K=Q),typeof Z=="number"&&K>Z&&(K=Z),Y.value=q.unit&&!q.focused?ke(K):b(K)},B=()=>{q.focused=!0,q.value!=null&&(Y.value=b(q.value)),F()},W=()=>{q.focused=!1;const re=me(Y.value);re==null?(q.value=null,q.invalid=!1,Y.value=S()):Number.isNaN(re)?(q.invalid=!0,q.value!=null?Y.value=ke(q.value):Y.value=""):(q.invalid=!1,q.value=re,Y.value=ke(re)),F()},ne=re=>{if(re.key!=="ArrowUp"&&re.key!=="ArrowDown")return;typeof re.preventDefault=="function"&&re.preventDefault();const ce=typeof D=="number"&&D>0?D:1;v(re.key==="ArrowUp"?ce:-ce)};if(Y.addEventListener("focus",B),Y.addEventListener("blur",W),Y.addEventListener("keydown",ne),q.disposers.push(()=>Y.removeEventListener("focus",B),()=>Y.removeEventListener("blur",W),()=>Y.removeEventListener("keydown",ne)),z(f.value),typeof Q=="number"&&Y.setAttribute("aria-valuemin",String(Q)),typeof Z=="number"&&Y.setAttribute("aria-valuemax",String(Z)),F(),Y.__latNumber=q,M&&M.kind==="unit"&&f.props&&f.props.unitPicker===!0){const re=s.createElement("div");re.className="lat-form__number-unit";const ce=s.createElement("select");ce.className="lat-form__number-unitpick",ce.setAttribute("aria-label",H("form.number.unitPicker"));const N=g(M.opts.system);for(const P of N){const L=s.createElement("option");L.value=P.symbol,L.textContent=P.symbol,ce.appendChild(L)}const K=M.opts.display&&M.opts.display!=="auto"?M.opts.display:ae,oe=N.some(P=>P.symbol===K)?K:ae;ce.value=oe,q.displayUnit=oe;const R=()=>{q.displayUnit=ce.value,!q.focused&&q.value!=null&&(Y.value=ke(q.value)),F()};return ce.addEventListener("change",R),q.disposers.push(()=>ce.removeEventListener("change",R)),q.picker=ce,re.appendChild(Y),re.appendChild(ce),re.__latNumber=q,re}if(f.props&&f.props.spinner===!0){const re=s.createElement("div");re.className="lat-form__number-spinner";const ce=(oe,R)=>{const P=s.createElement("button");return P.type="button",P.tabIndex=-1,P.className="lat-form__number-step",P.textContent=oe,P.addEventListener("mousedown",L=>{typeof L.preventDefault=="function"&&L.preventDefault();const C=typeof D=="number"&&D>0?D:1;v(R*C)}),P},N=ce("−",-1),K=ce("+",1);return q.buttons=[N,K],re.appendChild(N),re.appendChild(Y),re.appendChild(K),re.__latNumber=q,re}return Y},read(f){const c=f&&f.__latNumber,s=c?c.input:f;if(c&&!c.focused)return c.unit&&c.invalid?Number.NaN:c.value;if(c&&c.unit){const i=s.value;if(String(i).trim()==="")return null;const u=c.unit.kind==="temperature"?a(i,c.unit.opts):w(i,c.unit.opts);return u===null?Number.NaN:u}return y(s.value,c?c.locale:void 0)},write(f,c){const s=f&&f.__latNumber,i=s?s.input:f,u=s&&s.unit&&typeof s.unit.opts.nullDisplay=="string"?s.unit.opts.nullDisplay:"";if(c==null||c===""){s&&(s.value=null,s.invalid=!1),i.value=u;return}const j=typeof c=="number"?c:Number(c);if(!Number.isFinite(j)){s&&(s.value=null,s.invalid=!1),i.value=u;return}s&&(s.value=j,s.invalid=!1),s&&s.focused?i.value=b(j):s&&s.unit?i.value=s.unit.kind==="unit"?k(j,s.displayUnit!=null?{...s.unit.opts,display:s.displayUnit}:s.unit.opts):d(j,s.unit.opts):s&&s.format?i.value=s.format(j):i.value=b(j),i.value===""?i.removeAttribute("aria-valuetext"):i.setAttribute("aria-valuetext",i.value)},state(f,c){const s=f&&f.__latNumber,i=s?s.input:f;i.disabled=c.disabled===!0,i.readOnly=c.readOnly===!0;const u=c.disabled===!0||c.readOnly===!0;for(const j of s?s.buttons:[])j.disabled=u;s&&s.picker&&(s.picker.disabled=u)},validate(f,c,s){const i=f&&f.__latNumber,u=i&&i.t?i.t:te;if(s==null||s==="")return null;if(typeof s!="number"||Number.isNaN(s))return i&&i.unit?u("form.validation.unit",{unit:i.unitSymbol}):u("form.validation.number");const j=H=>i&&i.unit&&i.unit.kind==="unit"?k(H,{...i.unit.opts,display:i.unit.opts.unit,group:!0}):i&&i.unit&&i.unit.kind==="temperature"?d(H,i.unit.opts):String(H);if(i&&typeof i.min=="number"&&s<i.min)return u("form.validation.min",{min:j(i.min)});if(i&&typeof i.max=="number"&&s>i.max)return u("form.validation.max",{max:j(i.max)});if(i&&typeof i.step=="number"&&i.step>0){const H=typeof i.min=="number"?i.min:0,M=(s-H)/i.step;if(Math.abs(M-Math.round(M))>1e-9)return u("form.validation.step",{step:String(i.step)})}return null},focus(f){const c=m(f);typeof c.focus=="function"&&c.focus()},blur(f){const c=m(f);typeof c.blur=="function"&&c.blur()},destroy(f){const c=f&&f.__latNumber;if(c)for(const s of c.disposers.splice(0))s()}})}),Te("packages/modules/form/controls/textarea.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl;I("textarea",{kind:"field",build(x,te){const _=te.doc.createElement("textarea");return x.name&&(_.name=x.name),x.placeholder!=null&&(_.placeholder=String(x.placeholder)),x.rows!=null&&(_.rows=Number(x.rows)||2),_.value=x.value==null?"":String(x.value),_},read(x){return x.value},write(x,te){x.value=te==null?"":String(te)},state(x,te){x.disabled=te.disabled===!0,x.readOnly=te.readOnly===!0}})}),Te("packages/modules/form/controls/checkbox.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/state.js"),te=x.applyBooleanInputState,_=x.guardBooleanInput;I("checkbox",{kind:"toggle",build(T,O){const w=O.doc.createElement("input");return w.type="checkbox",T.name&&(w.name=T.name),w.checked=T.value===!0,_(w),w},read(T){return T.checked},write(T,O){T.checked=O===!0},state(T,O){te(T,O.disabled===!0,O.readOnly===!0)}})}),Te("packages/modules/form/controls/button.js",function($,X){"use strict";Object.defineProperty($,"injectButtonStyles",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"buttonItemFrom",{enumerable:!0,get:function(){return l}}),Object.defineProperty($,"buildButton",{enumerable:!0,get:function(){return f}});const I=X("packages/modules/form/controls/registry.js").registerControl,x="lat-button",te="data-lattice-button-styles",_="http://www.w3.org/2000/svg",T=Object.freeze({chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"}}),O=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),w=Object.freeze(["sm","md","lg"]),k=Object.freeze(["button","submit","reset"]);function E(){const c=`
1391
+ `.trim()}function n(f){const c=f&&f.documentElement;if(!c||c.getAttribute(t))return;c.setAttribute(t,"1");const s=f.createElement("style");s.textContent=r(),(f.head||f.body||c).appendChild(s)}function p(f){let c="",s=".";try{for(const i of new Intl.NumberFormat(f||void 0).formatToParts(12345.6))i.type==="group"?c=i.value:i.type==="decimal"&&(s=i.value)}catch{}return{group:c,decimal:s}}function v(f,c){if(f==null)return null;let s=String(f).trim();if(s==="")return null;const{group:i,decimal:u}=p(c);let j=!1;if(/^\(.*\)$/.test(s)&&(j=!0,s=s.slice(1,-1)),s=s.replace(/[\s   ]/g,""),i&&i!=="."&&(s=s.split(i).join("")),s=s.replace(/[^0-9eE+\-.,]/g,""),u===","?(s=s.split(".").join(""),s=s.replace(",",".")):s=s.split(",").join(""),s===""||s==="-"||s==="+")return NaN;s.startsWith("-")&&(j=!j,s=s.slice(1));const F=Number(s);return Number.isFinite(F)?j?-F:F:NaN}function b(f){if(f==null||f==="")return"";const c=typeof f=="number"?f:Number(f);return Number.isFinite(c)?String(c):""}function m(f){return f&&f.__latNumber?f.__latNumber.input:f}function V(f){if(typeof f=="number")return Number.isFinite(f)?f:null;if(f==null||f==="")return null;const c=Number(f);return Number.isFinite(c)?c:null}function l(f){const c=f&&f.props||{};return typeof c.system=="string"&&c.system!==""?{kind:"unit",opts:{system:c.system,unit:c.unit,binary:c.binary===!0,decimals:c.decimals,minDecimals:c.minDecimals,maxDecimals:c.maxDecimals,display:c.display,locale:f.locale||c.locale,group:c.group,space:c.space,placement:c.placement,compound:c.compound,significantFigures:c.significantFigures,nullDisplay:c.nullDisplay}}:typeof c.scale=="string"&&c.scale!==""?{kind:"temperature",opts:{scale:c.scale,display:c.display,decimals:c.decimals,minDecimals:c.minDecimals,maxDecimals:c.maxDecimals,space:c.space,locale:f.locale||c.locale,nullDisplay:c.nullDisplay}}:null}R("number",{kind:"field",build(f,c){const s=c.doc;n(s);const i=f.props&&f.props.format&&(typeof f.props.format=="object"||typeof f.props.format=="string")?f.props.format:null,u=f.locale||void 0,j=i?P(i,u):null,F=typeof c.t=="function"?c.t:re,M=l(f),D=V(f.step),Q=V(f.min),Z=V(f.max);let ae="";if(M&&M.kind==="unit"){const ne=E(M.opts.system,M.opts.unit);ae=ne?ne.symbol:String(M.opts.unit||"")}else if(M&&M.kind==="temperature"){const ne=h(M.opts.scale);ae=ne?ne.scale.symbol:""}const Y=s.createElement("input");Y.type="text",Y.inputMode="decimal",Y.className="lat-form__number",f.name&&(Y.name=f.name),f.placeholder!=null&&(Y.placeholder=String(f.placeholder));const ee={input:Y,format:j,t:F,locale:u,step:D,min:Q,max:Z,unit:M,unitSymbol:ae,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},ze=()=>ee.displayUnit!=null?{...M.opts,display:ee.displayUnit}:M.opts,Ce=ne=>ee.unit&&ee.unit.kind==="unit"?C(ne,ze()):ee.unit&&ee.unit.kind==="temperature"?d(ne,ee.unit.opts):ee.format&&Number.isFinite(ne)?ee.format(ne):b(ne),me=ne=>{if(!ee.unit)return v(ne,ee.locale);const se=ne==null?"":String(ne);if(se.trim()==="")return null;const N=ee.unit.kind==="temperature"?a(se,ee.unit.opts):y(se,ee.unit.opts);return N===null?Number.NaN:N},S=()=>ee.unit&&typeof ee.unit.opts.nullDisplay=="string"?ee.unit.opts.nullDisplay:"",I=ne=>{if(ne==null||ne===""){ee.value=null,ee.invalid=!1,Y.value=S();return}const se=typeof ne=="number"?ne:Number(ne);if(!Number.isFinite(se)){ee.value=null,ee.invalid=!1,Y.value=S();return}ee.value=se,ee.invalid=!1,Y.value=ee.focused?b(se):Ce(se)},U=()=>{const ne=Y.value;ne===""?Y.removeAttribute("aria-valuetext"):Y.setAttribute("aria-valuetext",ne)},w=ne=>{const se=me(Y.value);let K=(se==null||Number.isNaN(se)?0:se)+ne;typeof Q=="number"&&K<Q&&(K=Q),typeof Z=="number"&&K>Z&&(K=Z),Y.value=ee.unit&&!ee.focused?Ce(K):b(K)},B=()=>{ee.focused=!0,ee.value!=null&&(Y.value=b(ee.value)),U()},W=()=>{ee.focused=!1;const ne=me(Y.value);ne==null?(ee.value=null,ee.invalid=!1,Y.value=S()):Number.isNaN(ne)?(ee.invalid=!0,ee.value!=null?Y.value=Ce(ee.value):Y.value=""):(ee.invalid=!1,ee.value=ne,Y.value=Ce(ne)),U()},q=ne=>{if(ne.key!=="ArrowUp"&&ne.key!=="ArrowDown")return;typeof ne.preventDefault=="function"&&ne.preventDefault();const se=typeof D=="number"&&D>0?D:1;w(ne.key==="ArrowUp"?se:-se)};if(Y.addEventListener("focus",B),Y.addEventListener("blur",W),Y.addEventListener("keydown",q),ee.disposers.push(()=>Y.removeEventListener("focus",B),()=>Y.removeEventListener("blur",W),()=>Y.removeEventListener("keydown",q)),I(f.value),typeof Q=="number"&&Y.setAttribute("aria-valuemin",String(Q)),typeof Z=="number"&&Y.setAttribute("aria-valuemax",String(Z)),U(),Y.__latNumber=ee,M&&M.kind==="unit"&&f.props&&f.props.unitPicker===!0){const ne=s.createElement("div");ne.className="lat-form__number-unit";const se=s.createElement("select");se.className="lat-form__number-unitpick",se.setAttribute("aria-label",F("form.number.unitPicker"));const N=g(M.opts.system);for(const T of N){const L=s.createElement("option");L.value=T.symbol,L.textContent=T.symbol,se.appendChild(L)}const K=M.opts.display&&M.opts.display!=="auto"?M.opts.display:ae,oe=N.some(T=>T.symbol===K)?K:ae;se.value=oe,ee.displayUnit=oe;const z=()=>{ee.displayUnit=se.value,!ee.focused&&ee.value!=null&&(Y.value=Ce(ee.value)),U()};return se.addEventListener("change",z),ee.disposers.push(()=>se.removeEventListener("change",z)),ee.picker=se,ne.appendChild(Y),ne.appendChild(se),ne.__latNumber=ee,ne}if(f.props&&f.props.spinner===!0){const ne=s.createElement("div");ne.className="lat-form__number-spinner";const se=(oe,z)=>{const T=s.createElement("button");return T.type="button",T.tabIndex=-1,T.className="lat-form__number-step",T.textContent=oe,T.addEventListener("mousedown",L=>{typeof L.preventDefault=="function"&&L.preventDefault();const A=typeof D=="number"&&D>0?D:1;w(z*A)}),T},N=se("−",-1),K=se("+",1);return ee.buttons=[N,K],ne.appendChild(N),ne.appendChild(Y),ne.appendChild(K),ne.__latNumber=ee,ne}return Y},read(f){const c=f&&f.__latNumber,s=c?c.input:f;if(c&&!c.focused)return c.unit&&c.invalid?Number.NaN:c.value;if(c&&c.unit){const i=s.value;if(String(i).trim()==="")return null;const u=c.unit.kind==="temperature"?a(i,c.unit.opts):y(i,c.unit.opts);return u===null?Number.NaN:u}return v(s.value,c?c.locale:void 0)},write(f,c){const s=f&&f.__latNumber,i=s?s.input:f,u=s&&s.unit&&typeof s.unit.opts.nullDisplay=="string"?s.unit.opts.nullDisplay:"";if(c==null||c===""){s&&(s.value=null,s.invalid=!1),i.value=u;return}const j=typeof c=="number"?c:Number(c);if(!Number.isFinite(j)){s&&(s.value=null,s.invalid=!1),i.value=u;return}s&&(s.value=j,s.invalid=!1),s&&s.focused?i.value=b(j):s&&s.unit?i.value=s.unit.kind==="unit"?C(j,s.displayUnit!=null?{...s.unit.opts,display:s.displayUnit}:s.unit.opts):d(j,s.unit.opts):s&&s.format?i.value=s.format(j):i.value=b(j),i.value===""?i.removeAttribute("aria-valuetext"):i.setAttribute("aria-valuetext",i.value)},state(f,c){const s=f&&f.__latNumber,i=s?s.input:f;i.disabled=c.disabled===!0,i.readOnly=c.readOnly===!0;const u=c.disabled===!0||c.readOnly===!0;for(const j of s?s.buttons:[])j.disabled=u;s&&s.picker&&(s.picker.disabled=u)},validate(f,c,s){const i=f&&f.__latNumber,u=i&&i.t?i.t:re;if(s==null||s==="")return null;if(typeof s!="number"||Number.isNaN(s))return i&&i.unit?u("form.validation.unit",{unit:i.unitSymbol}):u("form.validation.number");const j=F=>i&&i.unit&&i.unit.kind==="unit"?C(F,{...i.unit.opts,display:i.unit.opts.unit,group:!0}):i&&i.unit&&i.unit.kind==="temperature"?d(F,i.unit.opts):String(F);if(i&&typeof i.min=="number"&&s<i.min)return u("form.validation.min",{min:j(i.min)});if(i&&typeof i.max=="number"&&s>i.max)return u("form.validation.max",{max:j(i.max)});if(i&&typeof i.step=="number"&&i.step>0){const F=typeof i.min=="number"?i.min:0,M=(s-F)/i.step;if(Math.abs(M-Math.round(M))>1e-9)return u("form.validation.step",{step:String(i.step)})}return null},focus(f){const c=m(f);typeof c.focus=="function"&&c.focus()},blur(f){const c=m(f);typeof c.blur=="function"&&c.blur()},destroy(f){const c=f&&f.__latNumber;if(c)for(const s of c.disposers.splice(0))s()}})}),Te("packages/modules/form/controls/textarea.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl;R("textarea",{kind:"field",build(k,re){const _=re.doc.createElement("textarea");return k.name&&(_.name=k.name),k.placeholder!=null&&(_.placeholder=String(k.placeholder)),k.rows!=null&&(_.rows=Number(k.rows)||2),_.value=k.value==null?"":String(k.value),_},read(k){return k.value},write(k,re){k.value=re==null?"":String(re)},state(k,re){k.disabled=re.disabled===!0,k.readOnly=re.readOnly===!0}})}),Te("packages/modules/form/controls/checkbox.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/state.js"),re=k.applyBooleanInputState,_=k.guardBooleanInput;R("checkbox",{kind:"toggle",build(P,O){const y=O.doc.createElement("input");return y.type="checkbox",P.name&&(y.name=P.name),y.checked=P.value===!0,_(y),y},read(P){return P.checked},write(P,O){P.checked=O===!0},state(P,O){re(P,O.disabled===!0,O.readOnly===!0)}})}),Te("packages/modules/form/controls/button.js",function($,J){"use strict";Object.defineProperty($,"injectButtonStyles",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"buttonItemFrom",{enumerable:!0,get:function(){return l}}),Object.defineProperty($,"buildButton",{enumerable:!0,get:function(){return f}});const R=J("packages/modules/form/controls/registry.js").registerControl,k="lat-button",re="data-lattice-button-styles",_="http://www.w3.org/2000/svg",P=Object.freeze({chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"}}),O=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),y=Object.freeze(["sm","md","lg"]),C=Object.freeze(["button","submit","reset"]);function E(){const c=`
1372
1392
  .lat-form{
1373
1393
  --lattice-button-primary-bg:var(--lattice-accent);
1374
1394
  --lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
@@ -1430,17 +1450,17 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1430
1450
  --lattice-button-danger-text:var(--lattice-background);
1431
1451
  --lattice-button-danger-text-disabled:var(--lattice-foreground-muted);
1432
1452
  }`,s=O.map(i=>`
1433
- .lat-form__control .${x}[data-variant='${i}']{ background:var(--lattice-button-${i}-bg); border-color:var(--lattice-button-${i}-border); color:var(--lattice-button-${i}-text); }
1434
- .lat-form__control .${x}[data-variant='${i}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${i}-bg-hover); }
1435
- .lat-form__control .${x}[data-variant='${i}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${i}-bg-active); }
1436
- .lat-form__control .${x}[data-variant='${i}'][aria-pressed='true']{ background:var(--lattice-button-${i}-bg-toggled); }
1437
- .lat-form__control .${x}[data-variant='${i}']:disabled:not([aria-busy='true']),
1438
- .lat-form__control .${x}[data-variant='${i}'][aria-disabled='true']:not([aria-busy='true']){
1453
+ .lat-form__control .${k}[data-variant='${i}']{ background:var(--lattice-button-${i}-bg); border-color:var(--lattice-button-${i}-border); color:var(--lattice-button-${i}-text); }
1454
+ .lat-form__control .${k}[data-variant='${i}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${i}-bg-hover); }
1455
+ .lat-form__control .${k}[data-variant='${i}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${i}-bg-active); }
1456
+ .lat-form__control .${k}[data-variant='${i}'][aria-pressed='true']{ background:var(--lattice-button-${i}-bg-toggled); }
1457
+ .lat-form__control .${k}[data-variant='${i}']:disabled:not([aria-busy='true']),
1458
+ .lat-form__control .${k}[data-variant='${i}'][aria-disabled='true']:not([aria-busy='true']){
1439
1459
  background:var(--lattice-button-${i}-bg-disabled); border-color:var(--lattice-button-${i}-border-disabled); color:var(--lattice-button-${i}-text-disabled); cursor:not-allowed; opacity:1;
1440
1460
  }`).join(`
1441
1461
  `);return`
1442
- .lat-form__control .${x},
1443
- .lat-form__control a.${x}{
1462
+ .lat-form__control .${k},
1463
+ .lat-form__control a.${k}{
1444
1464
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
1445
1465
  /* The icon-text gap: about 0.5em at standard density (about 6.5px), and it
1446
1466
  follows the density-scaled font size up and down. An icon-only button has a
@@ -1454,26 +1474,26 @@ var Zt=Object.create(null),Yt=Object.create(null);function Te($,X){Zt[$]=X}funct
1454
1474
  background:transparent;color:var(--lattice-foreground);
1455
1475
  font:inherit;line-height:1.2;text-decoration:none;cursor:pointer;
1456
1476
  }
1457
- .lat-form__control .${x}[data-size='sm']{ --lat-btn-h:calc(var(--lattice-row-height) * 0.8); font-size:calc(var(--lattice-font-size) - 1px); }
1458
- .lat-form__control .${x}[data-size='lg']{ --lat-btn-h:calc(var(--lattice-row-height) * 1.3); }
1459
- .lat-form__control .${x}[data-full='true']{ width:100%; }
1460
- .lat-form__control .${x}[data-icon-only='true']{ width:var(--lat-btn-h); padding:0; }
1461
- .lat-form__control .${x}[data-text-transform='uppercase']{ text-transform:uppercase; }
1462
- .lat-form__control .${x} svg,
1463
- .lat-form__control .${x} img{
1477
+ .lat-form__control .${k}[data-size='sm']{ --lat-btn-h:calc(var(--lattice-row-height) * 0.8); font-size:calc(var(--lattice-font-size) - 1px); }
1478
+ .lat-form__control .${k}[data-size='lg']{ --lat-btn-h:calc(var(--lattice-row-height) * 1.3); }
1479
+ .lat-form__control .${k}[data-full='true']{ width:100%; }
1480
+ .lat-form__control .${k}[data-icon-only='true']{ width:var(--lat-btn-h); padding:0; }
1481
+ .lat-form__control .${k}[data-text-transform='uppercase']{ text-transform:uppercase; }
1482
+ .lat-form__control .${k} svg,
1483
+ .lat-form__control .${k} img{
1464
1484
  width:var(--lattice-control-size);height:var(--lattice-control-size);flex:0 0 auto;display:block;
1465
1485
  }
1466
- .lat-form__control .${x} img{ object-fit:contain; }
1467
- .lat-form__control .${x} .${x}__spinner{ animation:${x}-spin .8s linear infinite; }
1468
- @keyframes ${x}-spin{ to{ transform:rotate(360deg); } }
1469
- @media (prefers-reduced-motion: reduce){ .lat-form__control .${x} .${x}__spinner{ animation:none; } }
1486
+ .lat-form__control .${k} img{ object-fit:contain; }
1487
+ .lat-form__control .${k} .${k}__spinner{ animation:${k}-spin .8s linear infinite; }
1488
+ @keyframes ${k}-spin{ to{ transform:rotate(360deg); } }
1489
+ @media (prefers-reduced-motion: reduce){ .lat-form__control .${k} .${k}__spinner{ animation:none; } }
1470
1490
 
1471
1491
  ${c}
1472
1492
  ${s}
1473
1493
 
1474
- .lat-form__control .${x}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1475
- .lat-form__control .${x}[aria-busy='true']{ cursor:default; pointer-events:none; }
1476
- `.trim()}function g(c){const s=c&&c.documentElement;if(!s||s.getAttribute(te))return;s.setAttribute(te,"1");const i=c.createElement("style");i.textContent=E(),(c.head||c.body||s).appendChild(i)}function o(c){return O.includes(c)?c:"secondary"}function a(c){return w.includes(c)?c:"md"}function d(c){return k.includes(c)?c:"button"}function h(c){return c==="end"?"end":"start"}function t(c){return c==="uppercase"?"uppercase":"none"}function r(c){const s=c.props&&c.props.href;return typeof s=="string"&&s!==""}function n(c,s){const i=c.createElementNS(_,"svg");i.setAttribute("viewBox",s.viewBox),i.setAttribute("focusable","false"),i.setAttribute("aria-hidden","true"),s.paint==="stroke"?(i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","1.5"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round")):i.setAttribute("fill","currentColor");for(const u of s.paths){const j=c.createElementNS(_,"path");j.setAttribute("d",u),i.appendChild(j)}return i}function p(c,s){if(c==null)return null;if(typeof c=="object"&&c.nodeType)return c;if(typeof c!="string"||c==="")return null;const i=c;if(/^(https?:)?\/\//i.test(i)||/^data:/i.test(i)){const j=s.createElement("img");return j.src=i,j.alt="",j}const u=T[i];return u?n(s,u):null}function y(c){const s=c.createElementNS(_,"svg");s.setAttribute("viewBox","0 0 16 16"),s.setAttribute("focusable","false"),s.setAttribute("aria-hidden","true"),s.setAttribute("class",`${x}__spinner`);const i=c.createElementNS(_,"circle");return i.setAttribute("cx","8"),i.setAttribute("cy","8"),i.setAttribute("r","6"),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","2"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-dasharray","28"),i.setAttribute("stroke-dashoffset","10"),s.appendChild(i),s}function b(c,s,i){const u=s&&s.defaultView,j=u&&u.CustomEvent,H=j?new j("submit",{bubbles:!0,detail:{values:i}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:i},preventDefault(){this.defaultPrevented=!0}};c.dispatchEvent(H)}function m(c){const s=c.loading===!0,i=c.disabled===!0&&c.focusableWhenDisabled!==!0||s;c.el.disabled=i,c.el.setAttribute("aria-disabled",c.disabled===!0||s?"true":"false")}function V(c,s){c.loading=s===!0,c.el.setAttribute("aria-busy",c.loading?"true":"false"),m(c);const i=c.iconSlot;if(!i)return;for(;i.firstChild;)i.removeChild(i.firstChild);const u=c.loading?y(c.doc):c.iconEl;u?(i.appendChild(u),i.parentNode||(c.position==="end"?c.el.appendChild(i):c.el.insertBefore(i,c.el.firstChild))):i.parentNode&&i.parentNode.removeChild(i)}function l(c){return{kind:"item",type:"button",name:c.name!=null&&c.name!==""?String(c.name):null,label:c.label,disabled:c.disabled===!0,props:{icon:c.icon,iconPosition:c.iconPosition,variant:c.variant,fullWidth:c.fullWidth,size:c.size,textTransform:c.textTransform,buttonType:c.buttonType,loading:c.loading,href:c.href,ariaLabel:c.ariaLabel,toggle:c.toggle,focusableWhenDisabled:c.focusableWhenDisabled}}}function f(c,s){const i=s.doc,u=c.props||{},j=c.label!=null?String(c.label):"",H=p(u.icon,i),M=H!=null&&j==="",D=r(c)?i.createElement("a"):i.createElement("button");D.className=x,D.setAttribute("data-variant",o(u.variant)),D.setAttribute("data-size",a(u.size)),D.setAttribute("data-text-transform",t(u.textTransform)),u.fullWidth===!0&&D.setAttribute("data-full","true"),M&&D.setAttribute("data-icon-only","true"),c.name&&!r(c)&&(D.name=c.name),r(c)?D.setAttribute("href",u.href):D.type="button";const Q=u.ariaLabel!=null?String(u.ariaLabel):M?String(c.name||""):"";Q&&D.setAttribute("aria-label",Q);const Z=i.createElement("span");Z.className=`${x}__icon`,Z.setAttribute("aria-hidden","true"),H&&Z.appendChild(H);let ae=null;M||(ae=i.createElement("span"),ae.className=`${x}__label`,ae.textContent=j!==""?j:String(c.name||""));const Y=h(u.iconPosition);Y==="end"?(ae&&D.appendChild(ae),Z.firstChild&&D.appendChild(Z)):(Z.firstChild&&D.appendChild(Z),ae&&D.appendChild(ae));const q={el:D,doc:i,iconSlot:Z,iconEl:H,label:ae,position:Y,buttonType:d(u.buttonType),loading:!1,disabled:c.disabled===!0,toggle:u.toggle===!0,pressed:u.toggle===!0&&c.value===!0,focusableWhenDisabled:u.focusableWhenDisabled===!0};D.__latButton=q,q.toggle&&D.setAttribute("aria-pressed",q.pressed?"true":"false");const Re=()=>{if(q.loading||q.disabled)return;if(q.toggle){const me=q.pressed;q.pressed=!q.pressed,D.setAttribute("aria-pressed",q.pressed?"true":"false"),s.emitter.emit("change",{name:c.name,value:q.pressed,previousValue:me,item:c})}const ke=q.buttonType;ke==="submit"?(typeof s.form.validate!="function"||s.form.validate())&&b(s.el,i,typeof s.form.getValue=="function"?s.form.getValue():{}):ke==="reset"&&typeof s.form.clear=="function"&&s.form.clear()};return D.addEventListener("click",Re),s.disposers.push(()=>D.removeEventListener("click",Re)),V(q,u.loading===!0),D}I("button",{kind:"button",action:!0,build(c,s){return g(s.doc),f(c,s)},read(c){const s=c&&c.__latButton;return s&&s.toggle?s.pressed:null},write(){},state(c,s){const i=c.__latButton;i&&(i.disabled=s.disabled===!0,m(i))},setLoading(c,s){const i=c.__latButton;i&&V(i,s)}})}),Te("packages/modules/form/controls/buttons.js",function($,X){"use strict";Object.defineProperty($,"injectButtonsStyles",{enumerable:!0,get:function(){return g}});const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/controls/button.js"),te=x.buildButton,_=x.buttonItemFrom,T=x.injectButtonStyles,O="lat-button-row",w="data-lattice-button-row-styles",k=Object.freeze(["start","end","center","stretch","space-between"]);function E(){return`
1494
+ .lat-form__control .${k}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1495
+ .lat-form__control .${k}[aria-busy='true']{ cursor:default; pointer-events:none; }
1496
+ `.trim()}function g(c){const s=c&&c.documentElement;if(!s||s.getAttribute(re))return;s.setAttribute(re,"1");const i=c.createElement("style");i.textContent=E(),(c.head||c.body||s).appendChild(i)}function o(c){return O.includes(c)?c:"secondary"}function a(c){return y.includes(c)?c:"md"}function d(c){return C.includes(c)?c:"button"}function h(c){return c==="end"?"end":"start"}function t(c){return c==="uppercase"?"uppercase":"none"}function r(c){const s=c.props&&c.props.href;return typeof s=="string"&&s!==""}function n(c,s){const i=c.createElementNS(_,"svg");i.setAttribute("viewBox",s.viewBox),i.setAttribute("focusable","false"),i.setAttribute("aria-hidden","true"),s.paint==="stroke"?(i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","1.5"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round")):i.setAttribute("fill","currentColor");for(const u of s.paths){const j=c.createElementNS(_,"path");j.setAttribute("d",u),i.appendChild(j)}return i}function p(c,s){if(c==null)return null;if(typeof c=="object"&&c.nodeType)return c;if(typeof c!="string"||c==="")return null;const i=c;if(/^(https?:)?\/\//i.test(i)||/^data:/i.test(i)){const j=s.createElement("img");return j.src=i,j.alt="",j}const u=P[i];return u?n(s,u):null}function v(c){const s=c.createElementNS(_,"svg");s.setAttribute("viewBox","0 0 16 16"),s.setAttribute("focusable","false"),s.setAttribute("aria-hidden","true"),s.setAttribute("class",`${k}__spinner`);const i=c.createElementNS(_,"circle");return i.setAttribute("cx","8"),i.setAttribute("cy","8"),i.setAttribute("r","6"),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","2"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-dasharray","28"),i.setAttribute("stroke-dashoffset","10"),s.appendChild(i),s}function b(c,s,i){const u=s&&s.defaultView,j=u&&u.CustomEvent,F=j?new j("submit",{bubbles:!0,detail:{values:i}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:i},preventDefault(){this.defaultPrevented=!0}};c.dispatchEvent(F)}function m(c){const s=c.loading===!0,i=c.disabled===!0&&c.focusableWhenDisabled!==!0||s;c.el.disabled=i,c.el.setAttribute("aria-disabled",c.disabled===!0||s?"true":"false")}function V(c,s){c.loading=s===!0,c.el.setAttribute("aria-busy",c.loading?"true":"false"),m(c);const i=c.iconSlot;if(!i)return;for(;i.firstChild;)i.removeChild(i.firstChild);const u=c.loading?v(c.doc):c.iconEl;u?(i.appendChild(u),i.parentNode||(c.position==="end"?c.el.appendChild(i):c.el.insertBefore(i,c.el.firstChild))):i.parentNode&&i.parentNode.removeChild(i)}function l(c){return{kind:"item",type:"button",name:c.name!=null&&c.name!==""?String(c.name):null,label:c.label,disabled:c.disabled===!0,props:{icon:c.icon,iconPosition:c.iconPosition,variant:c.variant,fullWidth:c.fullWidth,size:c.size,textTransform:c.textTransform,buttonType:c.buttonType,loading:c.loading,href:c.href,ariaLabel:c.ariaLabel,toggle:c.toggle,focusableWhenDisabled:c.focusableWhenDisabled}}}function f(c,s){const i=s.doc,u=c.props||{},j=c.label!=null?String(c.label):"",F=p(u.icon,i),M=F!=null&&j==="",D=r(c)?i.createElement("a"):i.createElement("button");D.className=k,D.setAttribute("data-variant",o(u.variant)),D.setAttribute("data-size",a(u.size)),D.setAttribute("data-text-transform",t(u.textTransform)),u.fullWidth===!0&&D.setAttribute("data-full","true"),M&&D.setAttribute("data-icon-only","true"),c.name&&!r(c)&&(D.name=c.name),r(c)?D.setAttribute("href",u.href):D.type="button";const Q=u.ariaLabel!=null?String(u.ariaLabel):M?String(c.name||""):"";Q&&D.setAttribute("aria-label",Q);const Z=i.createElement("span");Z.className=`${k}__icon`,Z.setAttribute("aria-hidden","true"),F&&Z.appendChild(F);let ae=null;M||(ae=i.createElement("span"),ae.className=`${k}__label`,ae.textContent=j!==""?j:String(c.name||""));const Y=h(u.iconPosition);Y==="end"?(ae&&D.appendChild(ae),Z.firstChild&&D.appendChild(Z)):(Z.firstChild&&D.appendChild(Z),ae&&D.appendChild(ae));const ee={el:D,doc:i,iconSlot:Z,iconEl:F,label:ae,position:Y,buttonType:d(u.buttonType),loading:!1,disabled:c.disabled===!0,toggle:u.toggle===!0,pressed:u.toggle===!0&&c.value===!0,focusableWhenDisabled:u.focusableWhenDisabled===!0};D.__latButton=ee,ee.toggle&&D.setAttribute("aria-pressed",ee.pressed?"true":"false");const ze=()=>{if(ee.loading||ee.disabled)return;if(ee.toggle){const me=ee.pressed;ee.pressed=!ee.pressed,D.setAttribute("aria-pressed",ee.pressed?"true":"false"),s.emitter.emit("change",{name:c.name,value:ee.pressed,previousValue:me,item:c})}const Ce=ee.buttonType;Ce==="submit"?(typeof s.form.validate!="function"||s.form.validate())&&b(s.el,i,typeof s.form.getValue=="function"?s.form.getValue():{}):Ce==="reset"&&typeof s.form.clear=="function"&&s.form.clear()};return D.addEventListener("click",ze),s.disposers.push(()=>D.removeEventListener("click",ze)),V(ee,u.loading===!0),D}R("button",{kind:"button",action:!0,build(c,s){return g(s.doc),f(c,s)},read(c){const s=c&&c.__latButton;return s&&s.toggle?s.pressed:null},write(){},state(c,s){const i=c.__latButton;i&&(i.disabled=s.disabled===!0,m(i))},setLoading(c,s){const i=c.__latButton;i&&V(i,s)}})}),Te("packages/modules/form/controls/buttons.js",function($,J){"use strict";Object.defineProperty($,"injectButtonsStyles",{enumerable:!0,get:function(){return g}});const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/controls/button.js"),re=k.buildButton,_=k.buttonItemFrom,P=k.injectButtonStyles,O="lat-button-row",y="data-lattice-button-row-styles",C=Object.freeze(["start","end","center","stretch","space-between"]);function E(){return`
1477
1497
  .lat-form__control .${O}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
1478
1498
  .lat-form__control .${O}[data-align='start']{ justify-content:flex-start; }
1479
1499
  .lat-form__control .${O}[data-align='end']{ justify-content:flex-end; }
@@ -1481,7 +1501,7 @@ ${s}
1481
1501
  .lat-form__control .${O}[data-align='space-between']{ justify-content:space-between; }
1482
1502
  .lat-form__control .${O}[data-align='stretch']{ justify-content:flex-start; }
1483
1503
  .lat-form__control .${O}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
1484
- `.trim()}function g(a){const d=a&&a.documentElement;if(!d||d.getAttribute(w))return;d.setAttribute(w,"1");const h=a.createElement("style");h.textContent=E(),(a.head||a.body||d).appendChild(h)}function o(a){return k.includes(a)?a:"start"}I("buttons",{kind:"display",action:!0,build(a,d){T(d.doc),g(d.doc);const h=a.props||{},t=Array.isArray(h.buttons)?h.buttons:Array.isArray(h.items)?h.items:[],r=d.doc.createElement("div");r.className=O,r.setAttribute("data-align",o(h.align));const n=[];return t.forEach((p,y)=>{if(p==null||typeof p!="object")return;const b=_(p),m=te(b,d),V=()=>{m.disabled||m.getAttribute("aria-disabled")==="true"||d.emitter.emit("click",{name:b.name,item:b,value:null})};m.addEventListener("click",V),n.push(()=>m.removeEventListener("click",V)),r.appendChild(m)}),d.disposers.push(()=>{for(const p of n)p()}),r},read(){return null},write(){},state(){}})}),Te("packages/modules/form/controls/text.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl;I("text",{kind:"display",build(x,te){const _=te.doc.createElement("span");return _.className="lat-form__text",_.textContent=x.value==null?"":String(x.value),_},read(x){return x.textContent},write(x,te){x.textContent=te==null?"":String(te)},state(){}})}),Te("packages/modules/form/controls/select.js",function($,X){"use strict";Object.defineProperty($,"createSelect",{enumerable:!0,get:function(){return f}});const I=X("packages/modules/form/controls/registry.js").registerControl,te=X("packages/modules/form/messages.js").t,T=X("packages/modules/form/ids.js").nextId,O=X("packages/modules/form/controls/combo.js"),w=O.renderAdornment,k=O.renderTemplateContent,E=O.injectAdornmentStyles,g=X("packages/modules/form/controls/field-icon.js"),o=g.makeFieldIcon,a=g.injectFieldIconStyles,h=X("packages/modules/form/controls/popup-layer.js").openInLayer,t="lat-select__popup--above",r=700;function n(s,i){const u=s&&s.defaultView;return u&&u.Event?new u.Event(i,{bubbles:!0}):{type:i,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function p(s){return s!=null&&typeof s=="object"?"value"in s?s.value:"":s??""}function y(s){return s==null?"":typeof s!="object"?String(s):s.label!=null?String(s.label):s.text!=null?String(s.text):s.value==null?"":String(s.value)}function b(s){return s!=null&&typeof s=="object"&&Array.isArray(s.options)}function m(s){const i=[];if(!Array.isArray(s))return i;for(const u of s)if(b(u)){const j=y(u);i.push({group:!0,label:j});for(const H of u.options)if(b(H)){i.push({group:!0,label:y(H)});for(const M of H.options)i.push(V(M))}else i.push(V(H))}else i.push(V(u));return i}function V(s){const i=s!=null&&typeof s=="object"?s:{},u=i.description!=null?String(i.description):i.subtitle!=null?String(i.subtitle):null;return{group:!1,value:p(s),label:y(s),icon:i.icon,avatar:i.avatar,color:i.color,dot:i.dot,description:u,disabled:i.disabled===!0}}function l(s,i){return s===i?!0:s!=null&&i!=null&&String(s)===String(i)}function f(s,i={}){const u=i.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;u&&(E(u),a(u));const j=typeof i.t=="function"?i.t:te,H=i.multiple===!0;let M=m(i.options),D=M.filter(le=>!le.group),Q=[];const Z=u.createElement("div");Z.className="lat-combo lat-select",H&&Z.setAttribute("data-multiple","true");const ae=u.createElement("button");ae.type="button",ae.className="lat-select__trigger",ae.setAttribute("role","combobox"),ae.setAttribute("aria-haspopup","listbox"),ae.setAttribute("aria-expanded","false"),H&&ae.setAttribute("aria-multiselectable","true"),ae.setAttribute("aria-label",i.ariaLabel||j("form.select.toggle"));const Y=u.createElement("span");Y.className="lat-select__value";const q=u.createElement("span");q.className="lat-select__arrow",q.setAttribute("aria-hidden","true");const Re=o(u,"chevronDown");Re&&q.appendChild(Re),ae.appendChild(Y),ae.appendChild(q);const ke=u.createElement("div");ke.className="lat-combo__popup lat-select__popup",ke.hidden=!0;const me=u.createElement("div");me.className="lat-combo__list lat-select__list",me.setAttribute("role","listbox"),ke.appendChild(me),Z.appendChild(ae),Z.appendChild(ke);const S=T("lat-select-lb");me.id=S,ae.setAttribute("aria-controls",S);const z=[];let F=-1,v=!1,B="",W=null;const ne=[];let re=!1,ce=null;function N(le,Oe,je){le.addEventListener(Oe,je),ne.push(()=>le.removeEventListener(Oe,je))}function K(le){return D.find(Oe=>l(Oe.value,le))||null}function oe(){s.dispatchEvent(n(u,"change"))}function R(){return H?Q.slice():Q.length?Q[0]:""}function P(){if(!H){for(;Y.firstChild;)Y.removeChild(Y.firstChild);if(Q.length){const le=K(Q[0]),Oe=k(u,le,i.selectedTemplate);if(Oe)Y.appendChild(Oe);else{const je=w(u,le);je&&Y.appendChild(je);const Ae=u.createElement("span");Ae.className="lat-select__label",Ae.textContent=le?le.label:Q[0],Y.appendChild(Ae)}Y.removeAttribute("data-placeholder")}else Y.textContent=i.placeholder!=null?String(i.placeholder):"",Y.setAttribute("data-placeholder","true");return}Q.length===0?(Y.textContent=i.placeholder!=null?String(i.placeholder):"",Y.setAttribute("data-placeholder","true")):(Y.textContent=Q.map(le=>{const Oe=K(le);return Oe?Oe.label:le}).join(", "),Y.removeAttribute("data-placeholder"))}function L(le){let Oe;const je=D.some(Ae=>Ae.value==="");if(H)Oe=Array.isArray(le)?le:le==null||le===""&&!je?[]:[le];else{const Ae=Array.isArray(le)?le.length?le[0]:null:le;Oe=Ae==null||Ae===""&&!je?[]:[Ae]}Q=[];for(const Ae of Oe){const Ee=D.find(Ge=>l(Ge.value,Ae));Ee&&Q.push(Ee.value)}P(),C()}function C(){for(let le=0;le<z.length;le++){const Oe=z[le],je=D[le],Ae=!!je&&Q.some(Ge=>l(Ge,je.value));Oe.setAttribute("aria-selected",Ae?"true":"false");const Ee=Oe.querySelector(".lat-select__check");Ee&&(Ee.textContent=Ae?"✓":"")}}function U(le){for(let Oe=Math.max(0,le);Oe<D.length;Oe++)if(!D[Oe].disabled)return Oe;return-1}function J(le){for(let Oe=Math.min(D.length-1,le);Oe>=0;Oe--)if(!D[Oe].disabled)return Oe;return-1}function ie(le){F=le;for(const Oe of z)Oe.classList.remove("lat-select__option--active");le>=0&&le<z.length?(z[le].classList.add("lat-select__option--active"),ae.setAttribute("aria-activedescendant",z[le].id)):ae.removeAttribute("aria-activedescendant")}function fe(){if(F<0||F>=z.length)return;const le=z[F];le.offsetTop<me.scrollTop?me.scrollTop=le.offsetTop:le.offsetTop+le.offsetHeight>me.scrollTop+me.clientHeight&&(me.scrollTop=le.offsetTop+le.offsetHeight-me.clientHeight)}function xe(le){const Oe=F<0?le>0?-1:D.length:F,je=le>0?U(Oe+1):J(Oe-1);je!==-1&&ie(je),fe()}function _e(){if(!(v||re||i.disabled)&&(v=!0,ke.hidden=!1,ae.setAttribute("aria-expanded","true"),ce=h(ke,ae,{aboveClass:t,onOffscreen:Le}),F<0&&D.length)){const le=H?-1:Q.length?D.findIndex(Oe=>l(Oe.value,Q[0])):-1;ie(U(le>=0?le:0))}}function Le(){v&&(v=!1,ke.hidden=!0,ke.classList.remove(t),ce&&(ce.close(),ce=null),ae.setAttribute("aria-expanded","false"),ie(-1),B="")}function Se(){v?Le():_e()}function Pe(le){if(i.readOnly)return;if(!H){const je=Q.length===0||Q[0]!==le;Q=[le],P(),C(),Le(),je&&oe();return}Q=Q.some(je=>je===le)?Q.filter(je=>je!==le):[...Q,le],P(),C(),ae.focus(),oe()}function A(){F<0||F>=D.length||D[F].disabled||Pe(D[F].value)}function ee(le){W&&clearTimeout(W),B+=le.toLowerCase(),W=setTimeout(()=>{B="",W=null},r),v||_e();const Oe=F>-1?F+1:0;let je=-1;for(let Ae=Oe;Ae<D.length;Ae++)if(!D[Ae].disabled&&D[Ae].label.toLowerCase().startsWith(B)){je=Ae;break}if(je===-1){for(let Ae=0;Ae<Oe;Ae++)if(!D[Ae].disabled&&D[Ae].label.toLowerCase().startsWith(B)){je=Ae;break}}je!==-1&&(ie(je),fe())}function pe(le){const Oe=le.altKey===!0;if(le.key==="ArrowDown"||Oe&&le.key==="ArrowDown")le.preventDefault(),v?xe(1):(_e(),F===-1&&D.length&&ie(U(0)));else if(le.key==="ArrowUp")le.preventDefault(),v?xe(-1):(_e(),D.length&&ie(J(D.length-1)));else if(le.key==="Home"){if(!v)return;le.preventDefault();const je=U(0);je!==-1&&ie(je),fe()}else if(le.key==="End"){if(!v)return;le.preventDefault();const je=J(D.length-1);je!==-1&&ie(je),fe()}else le.key==="Enter"||le.key===" "?(le.preventDefault(),v?A():_e()):le.key==="Escape"?v&&(le.preventDefault(),Le()):le.key==="Tab"?v&&A():le.key.length===1&&!le.ctrlKey&&!le.metaKey&&!Oe&&(le.preventDefault(),ee(le.key))}function G(le){le<0||le>=D.length||D[le].disabled||Pe(D[le].value)}function de(le,Oe){const je=u.createElement("div");if(je.className="lat-combo__option",je.setAttribute("role","option"),je.id=`${S}-opt-${Oe}`,je.setAttribute("data-value",le.value),je.setAttribute("aria-selected","false"),le.disabled&&(je.setAttribute("aria-disabled","true"),je.classList.add("lat-select__option--disabled")),H){const Ge=u.createElement("span");Ge.className="lat-select__check",Ge.setAttribute("aria-hidden","true"),je.appendChild(Ge)}const Ae=k(u,le,i.optionTemplate);if(Ae)je.appendChild(Ae);else{const Ge=w(u,le);Ge&&je.appendChild(Ge);const He=u.createElement("span");He.className="lat-combo__text";const ot=u.createElement("span");if(ot.className="lat-combo__title",ot.textContent=le.label,He.appendChild(ot),le.description!=null){const lt=u.createElement("span");lt.className="lat-combo__subtitle",lt.textContent=le.description,He.appendChild(lt)}je.appendChild(He)}return N(je,"click",Ge=>{Ge.stopPropagation(),G(Oe)}),z.push(je),je}function ye(){let le=0,Oe=0,je=null,Ae=null;for(const Ee of M)if(Ee.group)je=u.createElement("div"),je.setAttribute("role","group"),Ae=u.createElement("div"),Ae.id=`${S}-grp-${Oe}`,Ae.className="lat-select__group",Ae.textContent=Ee.label||"",je.setAttribute("aria-labelledby",Ae.id),je.appendChild(Ae),me.appendChild(je),Oe+=1;else{const Ge=de(Ee,le);le+=1,je?je.appendChild(Ge):me.appendChild(Ge)}}function be(){for(;me.firstChild;)me.removeChild(me.firstChild);z.length=0,ie(-1),ye()}function we(le){if(re)return;M=m(le),D=M.filter(je=>!je.group),be();const Oe=Q.length;Q=Q.filter(je=>D.some(Ae=>l(Ae.value,je))),P(),C(),Q.length!==Oe&&oe()}function Be(){re||(be(),P(),C())}const ze=()=>{i.disabled||Se()},Ce=()=>{s.dispatchEvent(n(u,"focus"))},Me=()=>{s.dispatchEvent(n(u,"blur")),Le()},ge=le=>{Z.contains(le.target)||ke.contains(le.target)||Le()};N(ae,"click",ze),N(ae,"keydown",pe),N(ae,"focus",Ce),N(ae,"blur",Me),N(me,"mousedown",le=>le.preventDefault()),u&&N(u,"mousedown",ge),ye(),L(i.value);const De={el:s,root:Z,trigger:ae,getValue:R,setValue(le){return L(le),De},setOptions(le){return we(le),De},reload(){return Be(),De},open(){return _e(),De},close(){return Le(),De},focus(){return ae.focus(),De},blur(){return ae.blur(),De},setDisabled(le){i.disabled=le,ae.disabled=le,le&&Le()},setReadOnly(le){i.readOnly=le,le?ae.setAttribute("aria-readonly","true"):ae.removeAttribute("aria-readonly")},destroy(){Le(),re=!0,W&&clearTimeout(W);for(const le of ne.splice(0))le();for(;Z.firstChild;)Z.removeChild(Z.firstChild)}};return s.appendChild(Z),s.__select=De,De}function c(s,i){const u=i.doc.createElement("select");s.name&&(u.name=s.name);const j=s.props&&s.props.multiple===!0;j&&(u.multiple=!0),u.__multiple=j;const H=m(s.options),M=H.filter(ae=>!ae.group),D=M.some(ae=>ae.value===""),Q=i.doc.createElement("option");Q.value="",Q.textContent=s.placeholder!=null?String(s.placeholder):"",!j&&!D&&u.appendChild(Q);let Z=null;for(const ae of H)if(ae.group)Z=i.doc.createElement("optgroup"),Z.label=ae.label||"",u.appendChild(Z);else{const Y=i.doc.createElement("option");Y.value=String(ae.value),Y.textContent=ae.label,ae.disabled&&(Y.disabled=!0),Y.__value=ae.value,Y.__typed=!0,(Z||u).appendChild(Y)}if(j){const ae=(Array.isArray(s.value)?s.value:[]).filter(Y=>Y!=null&&Y!=="");for(const Y of u.options)Y.__typed&&(Y.selected=ae.some(q=>l(q,Y.__value)))}else{const ae=s.value==null||s.value===""&&!D?null:s.value,Y=ae==null?null:M.find(q=>l(q.value,ae));u.value=Y?String(Y.value):""}return u.__select={getValue(){if(!j){if(u.selectedOptions&&u.selectedOptions.length){const Y=u.selectedOptions[0];if(Y&&Y.__typed)return Y.__value}const ae=M.find(Y=>l(Y.value,u.value));return ae?ae.value:u.value}return[...u.selectedOptions].map(ae=>ae.__typed?ae.__value:ae.value)},setValue(ae){if(!j){const q=ae==null||ae===""&&!D?null:ae,Re=q==null?null:M.find(ke=>l(ke.value,q));u.value=Re?String(Re.value):"";return}const Y=(Array.isArray(ae)?ae:[]).filter(q=>q!=null&&q!=="");for(const q of u.options)q.__typed&&(q.selected=Y.some(Re=>l(Re,q.__value)))},setDisabled(ae){u.disabled=ae},setReadOnly(ae){ae&&(u.disabled=!0)},focus(){u.focus()},blur(){u.blur()},destroy(){}},u}I("select",{kind:"field",build(s,i){const u=s.props||{};if(u.native===!0)return c(s,i);const j=i.doc.createElement("div");return f(j,{options:s.options,multiple:u.multiple===!0,value:s.value,placeholder:s.placeholder,ariaLabel:s.label,optionTemplate:u.optionTemplate,selectedTemplate:u.selectedTemplate,t:i.t,doc:i.doc}),i.disposers.push(()=>{j.__select&&j.__select.destroy()}),j},read(s){return s.__select?s.__select.getValue():""},write(s,i){s.__select&&s.__select.setValue(i)},state(s,i){s.__select&&(s.__select.setDisabled(i.disabled===!0),s.__select.setReadOnly(i.readOnly===!0))},focus(s){s.__select&&s.__select.focus()},blur(s){s.__select&&s.__select.blur()}})}),Te("packages/modules/form/controls/listbox.js",function($,X){"use strict";Object.defineProperty($,"createListBox",{enumerable:!0,get:function(){return c}});const I=X("packages/modules/form/controls/registry.js").registerControl,te=X("packages/modules/form/messages.js").t,T=X("packages/modules/form/ids.js").nextId,O=X("packages/modules/form/controls/combo.js"),w=O.renderAdornment,k=O.renderTemplateContent,E=O.injectAdornmentStyles,g="data-lattice-form-listbox-styles",o=30,a=46,d=48,h=250,t=700;function r(){return`
1504
+ `.trim()}function g(a){const d=a&&a.documentElement;if(!d||d.getAttribute(y))return;d.setAttribute(y,"1");const h=a.createElement("style");h.textContent=E(),(a.head||a.body||d).appendChild(h)}function o(a){return C.includes(a)?a:"start"}R("buttons",{kind:"display",action:!0,build(a,d){P(d.doc),g(d.doc);const h=a.props||{},t=Array.isArray(h.buttons)?h.buttons:Array.isArray(h.items)?h.items:[],r=d.doc.createElement("div");r.className=O,r.setAttribute("data-align",o(h.align));const n=[];return t.forEach((p,v)=>{if(p==null||typeof p!="object")return;const b=_(p),m=re(b,d),V=()=>{m.disabled||m.getAttribute("aria-disabled")==="true"||d.emitter.emit("click",{name:b.name,item:b,value:null})};m.addEventListener("click",V),n.push(()=>m.removeEventListener("click",V)),r.appendChild(m)}),d.disposers.push(()=>{for(const p of n)p()}),r},read(){return null},write(){},state(){}})}),Te("packages/modules/form/controls/text.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl;R("text",{kind:"display",build(k,re){const _=re.doc.createElement("span");return _.className="lat-form__text",_.textContent=k.value==null?"":String(k.value),_},read(k){return k.textContent},write(k,re){k.textContent=re==null?"":String(re)},state(){}})}),Te("packages/modules/form/controls/select.js",function($,J){"use strict";Object.defineProperty($,"createSelect",{enumerable:!0,get:function(){return f}});const R=J("packages/modules/form/controls/registry.js").registerControl,re=J("packages/modules/form/messages.js").t,P=J("packages/modules/form/ids.js").nextId,O=J("packages/modules/form/controls/combo.js"),y=O.renderAdornment,C=O.renderTemplateContent,E=O.injectAdornmentStyles,g=J("packages/modules/form/controls/field-icon.js"),o=g.makeFieldIcon,a=g.injectFieldIconStyles,h=J("packages/modules/form/controls/popup-layer.js").openInLayer,t="lat-select__popup--above",r=700;function n(s,i){const u=s&&s.defaultView;return u&&u.Event?new u.Event(i,{bubbles:!0}):{type:i,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function p(s){return s!=null&&typeof s=="object"?"value"in s?s.value:"":s??""}function v(s){return s==null?"":typeof s!="object"?String(s):s.label!=null?String(s.label):s.text!=null?String(s.text):s.value==null?"":String(s.value)}function b(s){return s!=null&&typeof s=="object"&&Array.isArray(s.options)}function m(s){const i=[];if(!Array.isArray(s))return i;for(const u of s)if(b(u)){const j=v(u);i.push({group:!0,label:j});for(const F of u.options)if(b(F)){i.push({group:!0,label:v(F)});for(const M of F.options)i.push(V(M))}else i.push(V(F))}else i.push(V(u));return i}function V(s){const i=s!=null&&typeof s=="object"?s:{},u=i.description!=null?String(i.description):i.subtitle!=null?String(i.subtitle):null;return{group:!1,value:p(s),label:v(s),icon:i.icon,avatar:i.avatar,color:i.color,dot:i.dot,description:u,disabled:i.disabled===!0}}function l(s,i){return s===i?!0:s!=null&&i!=null&&String(s)===String(i)}function f(s,i={}){const u=i.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;u&&(E(u),a(u));const j=typeof i.t=="function"?i.t:re,F=i.multiple===!0;let M=m(i.options),D=M.filter(pe=>!pe.group),Q=[];const Z=u.createElement("div");Z.className="lat-combo lat-select",F&&Z.setAttribute("data-multiple","true");const ae=u.createElement("button");ae.type="button",ae.className="lat-select__trigger",ae.setAttribute("role","combobox"),ae.setAttribute("aria-haspopup","listbox"),ae.setAttribute("aria-expanded","false"),F&&ae.setAttribute("aria-multiselectable","true"),ae.setAttribute("aria-label",i.ariaLabel||j("form.select.toggle"));const Y=u.createElement("span");Y.className="lat-select__value";const ee=u.createElement("span");ee.className="lat-select__arrow",ee.setAttribute("aria-hidden","true");const ze=o(u,"chevronDown");ze&&ee.appendChild(ze),ae.appendChild(Y),ae.appendChild(ee);const Ce=u.createElement("div");Ce.className="lat-combo__popup lat-select__popup",Ce.hidden=!0;const me=u.createElement("div");me.className="lat-combo__list lat-select__list",me.setAttribute("role","listbox"),Ce.appendChild(me),Z.appendChild(ae);const S=i.clearable===!0,I=u.createElement("button");I.type="button",I.className="lat-select__clear",I.setAttribute("aria-label",j("form.select.clear")),I.hidden=!0;const U=o(u,"close");U&&I.appendChild(U),S&&Z.appendChild(I),Z.appendChild(Ce);const w=P("lat-select-lb");me.id=w,ae.setAttribute("aria-controls",w);const B=[];let W=-1,q=!1,ne="",se=null;const N=[];let K=!1,oe=null;function z(pe,Pe,be){pe.addEventListener(Pe,be),N.push(()=>pe.removeEventListener(Pe,be))}function T(pe){return D.find(Pe=>l(Pe.value,pe))||null}function L(){s.dispatchEvent(n(u,"change"))}function A(){return F?Q.slice():Q.length?Q[0]:""}function H(){if(S&&(I.hidden=Q.length===0||i.readOnly===!0),!F){for(;Y.firstChild;)Y.removeChild(Y.firstChild);if(Q.length){const pe=T(Q[0]),Pe=C(u,pe,i.selectedTemplate);if(Pe)Y.appendChild(Pe);else{const be=y(u,pe);be&&Y.appendChild(be);const Ae=u.createElement("span");Ae.className="lat-select__label",Ae.textContent=pe?pe.label:Q[0],Y.appendChild(Ae)}Y.removeAttribute("data-placeholder")}else Y.textContent=i.placeholder!=null?String(i.placeholder):"",Y.setAttribute("data-placeholder","true");return}Q.length===0?(Y.textContent=i.placeholder!=null?String(i.placeholder):"",Y.setAttribute("data-placeholder","true")):(Y.textContent=Q.map(pe=>{const Pe=T(pe);return Pe?Pe.label:pe}).join(", "),Y.removeAttribute("data-placeholder"))}function X(pe){let Pe;const be=D.some(Ae=>Ae.value==="");if(F)Pe=Array.isArray(pe)?pe:pe==null||pe===""&&!be?[]:[pe];else{const Ae=Array.isArray(pe)?pe.length?pe[0]:null:pe;Pe=Ae==null||Ae===""&&!be?[]:[Ae]}Q=[];for(const Ae of Pe){const at=D.find(Ye=>l(Ye.value,Ae));at&&Q.push(at.value)}H(),ie()}function ie(){for(let pe=0;pe<B.length;pe++){const Pe=B[pe],be=D[pe],Ae=!!be&&Q.some(Ye=>l(Ye,be.value));Pe.setAttribute("aria-selected",Ae?"true":"false");const at=Pe.querySelector(".lat-select__check");at&&(at.textContent=Ae?"✓":"")}}function de(pe){for(let Pe=Math.max(0,pe);Pe<D.length;Pe++)if(!D[Pe].disabled)return Pe;return-1}function ke(pe){for(let Pe=Math.min(D.length-1,pe);Pe>=0;Pe--)if(!D[Pe].disabled)return Pe;return-1}function _e(pe){W=pe;for(const Pe of B)Pe.classList.remove("lat-select__option--active");pe>=0&&pe<B.length?(B[pe].classList.add("lat-select__option--active"),ae.setAttribute("aria-activedescendant",B[pe].id)):ae.removeAttribute("aria-activedescendant")}function Me(){if(W<0||W>=B.length)return;const pe=B[W];pe.offsetTop<me.scrollTop?me.scrollTop=pe.offsetTop:pe.offsetTop+pe.offsetHeight>me.scrollTop+me.clientHeight&&(me.scrollTop=pe.offsetTop+pe.offsetHeight-me.clientHeight)}function Se(pe){const Pe=W<0?pe>0?-1:D.length:W,be=pe>0?de(Pe+1):ke(Pe-1);be!==-1&&_e(be),Me()}function Oe(){if(!(q||K||i.disabled)&&(q=!0,Ce.hidden=!1,ae.setAttribute("aria-expanded","true"),oe=h(Ce,ae,{aboveClass:t,onOffscreen:x}),W<0&&D.length)){const pe=F?-1:Q.length?D.findIndex(Pe=>l(Pe.value,Q[0])):-1;_e(de(pe>=0?pe:0))}}function x(){q&&(q=!1,Ce.hidden=!0,Ce.classList.remove(t),oe&&(oe.close(),oe=null),ae.setAttribute("aria-expanded","false"),_e(-1),ne="")}function te(){q?x():Oe()}function fe(){i.readOnly||Q.length===0||(Q=[],H(),ie(),x(),L(),ae.focus())}function G(pe){if(i.readOnly)return;if(!F){const be=Q.length===0||Q[0]!==pe;Q=[pe],H(),ie(),x(),be&&L();return}Q=Q.some(be=>be===pe)?Q.filter(be=>be!==pe):[...Q,pe],H(),ie(),ae.focus(),L()}function ue(){W<0||W>=D.length||D[W].disabled||G(D[W].value)}function we(pe){se&&clearTimeout(se),ne+=pe.toLowerCase(),se=setTimeout(()=>{ne="",se=null},r),q||Oe();const Pe=W>-1?W+1:0;let be=-1;for(let Ae=Pe;Ae<D.length;Ae++)if(!D[Ae].disabled&&D[Ae].label.toLowerCase().startsWith(ne)){be=Ae;break}if(be===-1){for(let Ae=0;Ae<Pe;Ae++)if(!D[Ae].disabled&&D[Ae].label.toLowerCase().startsWith(ne)){be=Ae;break}}be!==-1&&(_e(be),Me())}function ge(pe){const Pe=pe.altKey===!0;if(pe.key==="ArrowDown"||Pe&&pe.key==="ArrowDown")pe.preventDefault(),q?Se(1):(Oe(),W===-1&&D.length&&_e(de(0)));else if(pe.key==="ArrowUp")pe.preventDefault(),q?Se(-1):(Oe(),D.length&&_e(ke(D.length-1)));else if(pe.key==="Home"){if(!q)return;pe.preventDefault();const be=de(0);be!==-1&&_e(be),Me()}else if(pe.key==="End"){if(!q)return;pe.preventDefault();const be=ke(D.length-1);be!==-1&&_e(be),Me()}else pe.key==="Enter"||pe.key===" "?(pe.preventDefault(),q?ue():Oe()):pe.key==="Escape"?q&&(pe.preventDefault(),x()):pe.key==="Tab"?q&&ue():pe.key.length===1&&!pe.ctrlKey&&!pe.metaKey&&!Pe&&(pe.preventDefault(),we(pe.key))}function xe(pe){pe<0||pe>=D.length||D[pe].disabled||G(D[pe].value)}function Ie(pe,Pe){const be=u.createElement("div");if(be.className="lat-combo__option",be.setAttribute("role","option"),be.id=`${w}-opt-${Pe}`,be.setAttribute("data-value",pe.value),be.setAttribute("aria-selected","false"),pe.disabled&&(be.setAttribute("aria-disabled","true"),be.classList.add("lat-select__option--disabled")),F){const Ye=u.createElement("span");Ye.className="lat-select__check",Ye.setAttribute("aria-hidden","true"),be.appendChild(Ye)}const Ae=C(u,pe,i.optionTemplate);if(Ae)be.appendChild(Ae);else{const Ye=y(u,pe);Ye&&be.appendChild(Ye);const qe=u.createElement("span");qe.className="lat-combo__text";const pt=u.createElement("span");if(pt.className="lat-combo__title",pt.textContent=pe.label,qe.appendChild(pt),pe.description!=null){const rt=u.createElement("span");rt.className="lat-combo__subtitle",rt.textContent=pe.description,qe.appendChild(rt)}be.appendChild(qe)}return z(be,"click",Ye=>{Ye.stopPropagation(),xe(Pe)}),B.push(be),be}function Le(){let pe=0,Pe=0,be=null,Ae=null;for(const at of M)if(at.group)be=u.createElement("div"),be.setAttribute("role","group"),Ae=u.createElement("div"),Ae.id=`${w}-grp-${Pe}`,Ae.className="lat-select__group",Ae.textContent=at.label||"",be.setAttribute("aria-labelledby",Ae.id),be.appendChild(Ae),me.appendChild(be),Pe+=1;else{const Ye=Ie(at,pe);pe+=1,be?be.appendChild(Ye):me.appendChild(Ye)}}function $e(){for(;me.firstChild;)me.removeChild(me.firstChild);B.length=0,_e(-1),Le()}function Be(pe){if(K)return;M=m(pe),D=M.filter(be=>!be.group),$e();const Pe=Q.length;Q=Q.filter(be=>D.some(Ae=>l(Ae.value,be))),H(),ie(),Q.length!==Pe&&L()}function ye(){K||($e(),H(),ie())}const Re=()=>{i.disabled||te()},je=()=>{s.dispatchEvent(n(u,"focus"))},We=()=>{s.dispatchEvent(n(u,"blur")),x()},Ke=pe=>{Z.contains(pe.target)||Ce.contains(pe.target)||x()};z(ae,"click",Re),S&&z(I,"click",fe),z(ae,"keydown",ge),z(ae,"focus",je),z(ae,"blur",We),z(me,"mousedown",pe=>pe.preventDefault()),u&&z(u,"mousedown",Ke),Le(),X(i.value);const Ge={el:s,root:Z,trigger:ae,getValue:A,setValue(pe){return X(pe),Ge},setOptions(pe){return Be(pe),Ge},reload(){return ye(),Ge},open(){return Oe(),Ge},close(){return x(),Ge},focus(){return ae.focus(),Ge},blur(){return ae.blur(),Ge},setDisabled(pe){i.disabled=pe,ae.disabled=pe,pe&&x()},setReadOnly(pe){i.readOnly=pe,pe?ae.setAttribute("aria-readonly","true"):ae.removeAttribute("aria-readonly")},destroy(){x(),K=!0,se&&clearTimeout(se);for(const pe of N.splice(0))pe();for(;Z.firstChild;)Z.removeChild(Z.firstChild)}};return s.appendChild(Z),s.__select=Ge,Ge}function c(s,i){const u=i.doc.createElement("select");s.name&&(u.name=s.name);const j=s.props&&s.props.multiple===!0;j&&(u.multiple=!0),u.__multiple=j;const F=m(s.options),M=F.filter(ae=>!ae.group),D=M.some(ae=>ae.value===""),Q=i.doc.createElement("option");Q.value="",Q.textContent=s.placeholder!=null?String(s.placeholder):"",!j&&!D&&u.appendChild(Q);let Z=null;for(const ae of F)if(ae.group)Z=i.doc.createElement("optgroup"),Z.label=ae.label||"",u.appendChild(Z);else{const Y=i.doc.createElement("option");Y.value=String(ae.value),Y.textContent=ae.label,ae.disabled&&(Y.disabled=!0),Y.__value=ae.value,Y.__typed=!0,(Z||u).appendChild(Y)}if(j){const ae=(Array.isArray(s.value)?s.value:[]).filter(Y=>Y!=null&&Y!=="");for(const Y of u.options)Y.__typed&&(Y.selected=ae.some(ee=>l(ee,Y.__value)))}else{const ae=s.value==null||s.value===""&&!D?null:s.value,Y=ae==null?null:M.find(ee=>l(ee.value,ae));u.value=Y?String(Y.value):""}return u.__select={getValue(){if(!j){if(u.selectedOptions&&u.selectedOptions.length){const Y=u.selectedOptions[0];if(Y&&Y.__typed)return Y.__value}const ae=M.find(Y=>l(Y.value,u.value));return ae?ae.value:u.value}return[...u.selectedOptions].map(ae=>ae.__typed?ae.__value:ae.value)},setValue(ae){if(!j){const ee=ae==null||ae===""&&!D?null:ae,ze=ee==null?null:M.find(Ce=>l(Ce.value,ee));u.value=ze?String(ze.value):"";return}const Y=(Array.isArray(ae)?ae:[]).filter(ee=>ee!=null&&ee!=="");for(const ee of u.options)ee.__typed&&(ee.selected=Y.some(ze=>l(ze,ee.__value)))},setDisabled(ae){u.disabled=ae},setReadOnly(ae){ae&&(u.disabled=!0)},focus(){u.focus()},blur(){u.blur()},destroy(){}},u}R("select",{kind:"field",build(s,i){const u=s.props||{};if(u.native===!0)return c(s,i);const j=i.doc.createElement("div");return f(j,{options:s.options,multiple:u.multiple===!0,value:s.value,placeholder:s.placeholder,ariaLabel:s.label,optionTemplate:u.optionTemplate,selectedTemplate:u.selectedTemplate,clearable:u.clearable===!0,t:i.t,doc:i.doc}),i.disposers.push(()=>{j.__select&&j.__select.destroy()}),j},read(s){return s.__select?s.__select.getValue():""},write(s,i){s.__select&&s.__select.setValue(i)},state(s,i){s.__select&&(s.__select.setDisabled(i.disabled===!0),s.__select.setReadOnly(i.readOnly===!0))},focus(s){s.__select&&s.__select.focus()},blur(s){s.__select&&s.__select.blur()}})}),Te("packages/modules/form/controls/listbox.js",function($,J){"use strict";Object.defineProperty($,"createListBox",{enumerable:!0,get:function(){return c}});const R=J("packages/modules/form/controls/registry.js").registerControl,re=J("packages/modules/form/messages.js").t,P=J("packages/modules/form/ids.js").nextId,O=J("packages/modules/form/controls/combo.js"),y=O.renderAdornment,C=O.renderTemplateContent,E=O.injectAdornmentStyles,g="data-lattice-form-listbox-styles",o=30,a=46,d=48,h=250,t=700;function r(){return`
1485
1505
  .lat-listbox{
1486
1506
  display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 2); min-width:0; box-sizing:border-box;
1487
1507
  font-size:var(--lattice-font-size); color:var(--lattice-foreground);
@@ -1554,34 +1574,34 @@ ${s}
1554
1574
  }
1555
1575
  .lat-listbox__status{ padding:calc(var(--lattice-space) / 2) var(--lattice-space); color:var(--lattice-foreground-muted); }
1556
1576
  .lat-listbox__status[hidden]{ display:none; }
1557
- `.trim()}function n(s){const i=s&&s.documentElement;if(!i||i.getAttribute(g))return;i.setAttribute(g,"1");const u=s.createElement("style");u.textContent=r(),(s.head||s.body||i).appendChild(u)}function p(s){return s==null||typeof s!="object"?{value:s,label:s==null?"":String(s),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:s.value,label:s.label!=null?String(s.label):s.title!=null?String(s.title):s.value==null?"":String(s.value),description:s.description!=null?String(s.description):s.subtitle!=null?String(s.subtitle):null,icon:s.icon,avatar:s.avatar,color:s.color,dot:s.dot,disabled:s.disabled===!0,group:s.group!=null?String(s.group):null}}function y(s){if(Array.isArray(s))return{items:s,total:s.length,hasMore:!1};if(s&&typeof s=="object"){const i=Array.isArray(s.items)?s.items:[];return{items:i,total:typeof s.total=="number"?s.total:i.length,hasMore:s.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function b(s,i){return s===i?!0:s!=null&&i!=null&&String(s)===String(i)}function m(s){return String(s)}function V(s,i){const u=s&&s.defaultView;return u&&u.Event?new u.Event(i,{bubbles:!0}):{type:i,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function l(s){return s.__latListboxRegistry||(s.__latListboxRegistry=new Map),s.__latListboxRegistry}let f=null;function c(s,i={}){const u=i.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;u&&(n(u),E(u));const j=typeof i.t=="function"?i.t:te,H=["single","multiple","checkbox"].includes(i.selection)?i.selection:"single",M=H!=="single",D=i.reorder===!0,Q=typeof i.connect=="string"&&i.connect!==""?i.connect:null,Z=typeof i.name=="string"&&i.name!==""?i.name:null,ae=i.sort==="asc"||i.sort==="desc"?i.sort:!1,Y=i.groupBy===!0,q=i.filter===!0,Re=T("lat-listbox"),ke=u.createElement("div");ke.className="lat-listbox",i.inForm||(ke.setAttribute("data-lattice-standalone","true"),ke.setAttribute("data-density",["compact","standard","comfortable"].includes(i.density)?i.density:"standard"));let me=null;q&&(me=u.createElement("input"),me.type="text",me.className="lat-listbox__filter",me.placeholder=j("form.listbox.filterPlaceholder"),me.setAttribute("aria-label",j("form.listbox.filterPlaceholder")),ke.appendChild(me));let S=null,z=null,F=null,v=null,B=null;(D||Q)&&(S=u.createElement("div"),S.className="lat-listbox__toolbar",S.setAttribute("role","group"),S.setAttribute("aria-label",j("form.listbox.toolbar")),D&&(z=u.createElement("button"),z.type="button",z.className="lat-listbox__toolbar-btn",z.textContent=j("form.listbox.moveUp"),F=u.createElement("button"),F.type="button",F.className="lat-listbox__toolbar-btn",F.textContent=j("form.listbox.moveDown"),S.appendChild(z),S.appendChild(F)),Q&&(v=u.createElement("button"),v.type="button",v.className="lat-listbox__toolbar-btn",v.textContent=j("form.listbox.moveSelected"),B=u.createElement("button"),B.type="button",B.className="lat-listbox__toolbar-btn",B.textContent=j("form.listbox.moveAll"),S.appendChild(v),S.appendChild(B)),ke.appendChild(S));const W=u.createElement("div");W.className="lat-listbox__viewport",W.id=`${Re}-lb`,W.setAttribute("role","listbox"),W.setAttribute("tabindex","0"),M&&W.setAttribute("aria-multiselectable","true"),W.setAttribute("aria-label",i.ariaLabel!=null?String(i.ariaLabel):"");const ne=typeof i.rows=="number"&&i.rows>0?i.rows:8;typeof i.height=="number"&&i.height>0?W.style.height=`${i.height}px`:W.style.height=`calc(var(--lattice-row-height) * ${ne})`;let re=null;if(H==="checkbox"){const se=u.createElement("div");se.className="lat-listbox__option lat-listbox__select-all",re=u.createElement("input"),re.type="checkbox",re.className="lat-listbox__checkbox",re.id=`${Re}-select-all`,se.appendChild(re);const he=u.createElement("label");he.className="lat-listbox__title",he.textContent=j("form.listbox.selectAll"),he.setAttribute("for",re.id),se.appendChild(he),W.appendChild(se)}const ce=u.createElement("div");ce.className="lat-listbox__spacer",W.appendChild(ce);const N=u.createElement("div");N.className="lat-listbox__status",N.setAttribute("role","status"),N.setAttribute("aria-live","polite"),N.hidden=!0,W.appendChild(N),ke.appendChild(W);let K=[];const oe=new Set;let R=[],P=-1,L=null,C="";const U=[],J=[];let ie=0,fe="",xe=null,_e=null,Le=null,Se=0,Pe=!1,A=0,ee=!1;const pe=[];let G=!1;function de(se,he,ve){se.addEventListener(he,ve),pe.push(()=>se.removeEventListener(he,ve))}function ye(){return i.readOnly===!0||i.disabled===!0}function be(){s.dispatchEvent(V(u,"change"))}function we(){if(H==="single"){const se=K.find(he=>oe.has(m(he.value)));return se?se.value:null}return D||Q?K.map(se=>se.value):K.filter(se=>oe.has(m(se.value))).map(se=>se.value)}function Be(){const se=R.filter(he=>!he.disabled);return se.length>0&&se.every(he=>oe.has(m(he.value)))}function ze(){const se=C.trim().toLowerCase();let he=se===""?K.slice():K.filter(ve=>ve.label.toLowerCase().includes(se)||(ve.description||"").toLowerCase().includes(se));ae&&(he=he.slice().sort((ve,Ne)=>ve.label.localeCompare(Ne.label)*(ae==="desc"?-1:1))),R=he,U.length=0,J.length=0,P>=R.length&&(P=R.length-1)}function Ce(se){const he=[],ve=new Map;for(const Ne of se){const Ke=Ne.group||"";let Ue=ve.get(Ke);Ue||(Ue={group:Ne.group||null,items:[]},ve.set(Ke,Ue),he.push(Ue)),Ue.items.push(Ne)}return he}function Me(se){return`${Re}-opt-${se}`}function ge(se){return se.description!=null||se.icon!=null||se.avatar!=null?a:o}function De(se){const he=R[se];return!!he&&oe.has(m(he.value))}function le(se,he){const ve=u.createElement("div");if(ve.className="lat-listbox__option",ve.setAttribute("role","option"),ve.id=Me(he),ve.setAttribute("aria-selected",De(he)?"true":"false"),se.disabled&&ve.setAttribute("aria-disabled","true"),H==="checkbox"){const Ue=u.createElement("input");Ue.type="checkbox",Ue.className="lat-listbox__checkbox",Ue.tabIndex=-1,Ue.checked=De(he),Ue.disabled=se.disabled||ye(),ve.appendChild(Ue)}const Ne=k(u,se,i.render);if(Ne)ve.appendChild(Ne);else{const Ue=w(u,se);Ue&&ve.appendChild(Ue);const We=u.createElement("span");We.className="lat-listbox__text";const et=u.createElement("span");if(et.className="lat-listbox__title",et.textContent=se.label,We.appendChild(et),se.description!=null){const wt=u.createElement("span");wt.className="lat-listbox__subtitle",wt.textContent=se.description,We.appendChild(wt)}ve.appendChild(We)}return(D||Q)&&!se.disabled&&!ye()&&(ve.draggable=!0,de(ve,"dragstart",()=>Oe(se)),de(ve,"dragover",Ue=>{Ue.preventDefault()}),de(ve,"drop",Ue=>{Ue.preventDefault(),je(se)})),de(ve,"click",Ue=>{se.disabled||ye()||(W.focus(),it(he,{shift:Ue.shiftKey,ctrl:Ue.ctrlKey||Ue.metaKey,touch:Ue.pointerType==="touch"}))}),ve}function Oe(se){const he=oe.has(m(se.value))?K.filter(ve=>oe.has(m(ve.value))).map(ve=>ve.value):[se.value];f={source:ft,values:he}}function je(se){if(!f||ye())return;const{source:he,values:ve}=f;f=null;const Ne=K.findIndex(Ke=>b(Ke.value,se.value));if(Ne!==-1){if(he===ft){if(!D)return;Ae(ve,Ne),Xe(),be();return}if(Q){const Ke=he.__removeValues(ve);if(Ke.length===0)return;K.splice(Ne,0,...Ke);for(const Ue of Ke)oe.add(m(Ue.value));ze(),Xe(),be()}}}function Ae(se,he){const ve=new Set(se.map(m)),Ne=K.filter(et=>ve.has(m(et.value)));if(Ne.length===0)return;const Ke=K[he]?m(K[he].value):null,Ue=K.filter(et=>!ve.has(m(et.value)));let We=Ke==null?Ue.length:Ue.findIndex(et=>m(et.value)===Ke);We===-1&&(We=Ue.length),Ue.splice(We,0,...Ne),K=Ue}function Ee(se){const he=new Set(se.map(m)),ve=K.filter(Ne=>he.has(m(Ne.value)));if(ve.length===0)return ve;K=K.filter(Ne=>!he.has(m(Ne.value)));for(const Ne of ve)oe.delete(m(Ne.value));return ze(),Xe(),be(),ve}function Ge(se){se.length!==0&&(K=K.concat(se),ze(),Xe(),be())}function He(){return!Q||!u?null:l(u).get(Q)||null}function ot(){const se=He();if(!se||ye())return;const he=K.filter(Ne=>oe.has(m(Ne.value))).map(Ne=>Ne.value);if(he.length===0)return;const ve=Ee(he);se.__receiveItems(ve)}function lt(){const se=He();if(!se||ye()||K.length===0)return;const he=Ee(K.map(ve=>ve.value));se.__receiveItems(he)}function rt(se){if(ye())return;const he=[];for(let ve=0;ve<K.length;ve++)oe.has(m(K[ve].value))&&he.push(ve);if(he.length!==0){if(se<0)for(const ve of he)ve===0||oe.has(m(K[ve-1].value))||([K[ve-1],K[ve]]=[K[ve],K[ve-1]]);else for(let ve=he.length-1;ve>=0;ve--){const Ne=he[ve];Ne===K.length-1||oe.has(m(K[Ne+1].value))||([K[Ne+1],K[Ne]]=[K[Ne],K[Ne+1]])}ze(),Xe(),be()}}function Xe(){for(;ce.firstChild;)ce.removeChild(ce.firstChild);ce.style.height="",ce.style.position="",Y?at():tt(),ut(),qe(),S&&kt()}function at(){let se=0;for(const he of Ce(R))if(he.group!=null){const ve=u.createElement("div");ve.setAttribute("role","group");const Ne=u.createElement("div");Ne.className="lat-listbox__group-header",Ne.id=`${Re}-grp-${se}`,Ne.textContent=he.group,ve.setAttribute("aria-labelledby",Ne.id),ve.appendChild(Ne);for(const Ke of he.items)ve.appendChild(le(Ke,se)),se+=1;ce.appendChild(ve)}else for(const ve of he.items)ce.appendChild(le(ve,se)),se+=1}function tt(){if(ce.style.position="relative",ie=W.clientHeight||ie||240,R.length===0){ce.style.height="0px";return}for(let We=0;We<R.length;We++)U[We]==null&&(U[We]=ge(R[We]));J.length=0,J[0]=0;for(let We=1;We<=R.length;We++)J[We]=J[We-1]+U[We-1];ce.style.height=`${J[R.length]}px`;const se=W.scrollTop,he=se,ve=se+ie;let Ne=0;for(;Ne<R.length-1&&J[Ne+1]<he;)Ne+=1;let Ke=Ne;for(;Ke<R.length&&J[Ke]<ve;)Ke+=1;for(Ke=Math.min(R.length,Ke+2);ce.firstChild;)ce.removeChild(ce.firstChild);for(let We=Ne;We<Ke;We++){const et=le(R[We],We);et.style.position="absolute",et.style.insetInlineStart="0",et.style.insetInlineEnd="0",et.style.top="0",et.style.transform=`translateY(${J[We]}px)`,ce.appendChild(et)}let Ue=!1;for(let We=Ne;We<Ke;We++){const et=u.getElementById(Me(We));if(!et)continue;const wt=et.getBoundingClientRect().height;wt>0&&Math.abs(wt-U[We])>.5&&(U[We]=wt,Ue=!0)}Ue&&tt()}function Je(){if(P<0||Y)return;const se=J[P]||0,he=se+(U[P]||ge(R[P]));se<W.scrollTop?W.scrollTop=se:he>W.scrollTop+ie&&(W.scrollTop=he-ie),Xe()}function ut(){R.length===0?(N.hidden=!1,N.textContent=j("form.listbox.empty")):(N.hidden=!0,N.textContent="")}function mt(){for(const se of ce.querySelectorAll('.lat-listbox__option[role="option"]')){const he=se.id||"",ve=Number(he.slice(`${Re}-opt-`.length));if(Number.isNaN(ve))continue;const Ne=R[ve];if(!Ne)continue;const Ke=oe.has(m(Ne.value));se.setAttribute("aria-selected",Ke?"true":"false");const Ue=se.querySelector(".lat-listbox__checkbox");Ue&&(Ue.checked=Ke)}qe(),S&&kt()}function qe(){if(!re)return;const se=R.filter(ve=>!ve.disabled),he=se.filter(ve=>oe.has(m(ve.value))).length;re.checked=se.length>0&&he===se.length,re.indeterminate=he>0&&he<se.length,re.disabled=ye()||se.length===0}function kt(){const se=oe.size>0,he=ye();z&&(z.disabled=he||!se),F&&(F.disabled=he||!se),v&&(v.disabled=he||!se),B&&(B.disabled=he||K.length===0)}function pt(se){P=se,se>=0&&se<R.length?W.setAttribute("aria-activedescendant",Me(se)):W.removeAttribute("aria-activedescendant")}function st(se){for(let he=Math.max(0,se);he<R.length;he++)if(!R[he].disabled)return he;return-1}function nt(se){for(let he=Math.min(R.length-1,se);he>=0;he--)if(!R[he].disabled)return he;return-1}function it(se,he={}){const ve=R[se];if(!ve||ve.disabled||ye())return;pt(se);const Ne=new Set(oe);if(H==="single")oe.clear(),oe.add(m(ve.value)),L=se;else if(H==="checkbox")oe.has(m(ve.value))?oe.delete(m(ve.value)):oe.add(m(ve.value)),L=se;else if(he.shift&&L!=null){const Ke=Math.min(L,se),Ue=Math.max(L,se);oe.clear();for(let We=Ke;We<=Ue;We++)R[We].disabled||oe.add(m(R[We].value))}else he.ctrl||he.touch?(oe.has(m(ve.value))?oe.delete(m(ve.value)):oe.add(m(ve.value)),L=se):(oe.clear(),oe.add(m(ve.value)),L=se);Je(),mt(),Ct(Ne,oe)||be()}function Ct(se,he){if(se.size!==he.size)return!1;for(const ve of se)if(!he.has(ve))return!1;return!0}function Lt(){if(ye())return;const se=!Be();for(const he of R)he.disabled||(se?oe.add(m(he.value)):oe.delete(m(he.value)));mt(),be()}function dt(se,he){if(R.length===0)return;const ve=P<0?se>0?-1:R.length:P,Ne=se>0?st(ve+1):nt(ve-1);if(Ne!==-1){if(pt(Ne),Je(),H==="single"){it(Ne,{});return}he&&M&&(L==null&&(L=Ne),it(Ne,{shift:!0}))}}function bt(se){xe&&clearTimeout(xe),fe+=se.toLowerCase(),xe=setTimeout(()=>{fe="",xe=null},t);const he=P>-1?P+1:0;let ve=-1;for(let Ne=he;Ne<R.length;Ne++)if(!R[Ne].disabled&&R[Ne].label.toLowerCase().startsWith(fe)){ve=Ne;break}if(ve===-1){for(let Ne=0;Ne<he;Ne++)if(!R[Ne].disabled&&R[Ne].label.toLowerCase().startsWith(fe)){ve=Ne;break}}ve!==-1&&(pt(ve),Je())}function ct(se){if(se.altKey&&se.key==="ArrowUp"&&D)se.preventDefault(),rt(-1);else if(se.altKey&&se.key==="ArrowDown"&&D)se.preventDefault(),rt(1);else if(se.key==="ArrowDown")se.preventDefault(),dt(1,se.shiftKey);else if(se.key==="ArrowUp")se.preventDefault(),dt(-1,se.shiftKey);else if(se.key==="Home"){se.preventDefault();const he=st(0);he!==-1&&(pt(he),Je(),H==="single"&&it(he,{}))}else if(se.key==="End"){se.preventDefault();const he=nt(R.length-1);he!==-1&&(pt(he),Je(),H==="single"&&it(he,{}))}else if(se.key===" ")se.preventDefault(),P>=0&&it(P,{ctrl:M});else if((se.ctrlKey||se.metaKey)&&(se.key==="a"||se.key==="A")&&M){if(se.preventDefault(),ye())return;for(const he of R)he.disabled||oe.add(m(he.value));mt(),be()}else se.key.length===1&&!se.ctrlKey&&!se.metaKey&&!se.altKey&&bt(se.key)}function yt(){if(C=me.value||"",typeof i.load!="function"){ze(),Xe();return}_e&&clearTimeout(_e),_e=setTimeout(()=>At(),h)}function At(){if(G||typeof i.load!="function")return;Pe=!0,Se+=1;const se=Se;Le&&Le.abort(),Le=typeof AbortController<"u"?new AbortController:null;let he;try{he=i.load({search:C,page:0,signal:Le?Le.signal:void 0})}catch{Pe=!1;return}const ve=Ne=>{if(G||se!==Se)return;Pe=!1;const Ke=y(Ne);K=Ke.items.map(p),ee=Ke.hasMore,A=1,ze(),Xe()};he&&typeof he.then=="function"?he.then(ve,()=>{Pe=!1}):ve(he)}de(W,"keydown",ct),de(W,"scroll",()=>{Y||tt()}),me&&de(me,"input",yt),z&&de(z,"click",()=>rt(-1)),F&&de(F,"click",()=>rt(1)),v&&de(v,"click",()=>ot()),B&&de(B,"click",()=>lt()),re&&de(re,"change",()=>Lt()),de(W,"dragover",se=>{f&&se.preventDefault()}),de(W,"drop",se=>{if(se.preventDefault(),!f||f.source===ft||!Q)return;const he=f.source.__removeValues(f.values);f=null,Ge(he)});function gt(se){if(oe.clear(),H==="single")se!=null&&oe.add(m(se));else if((D||Q)&&Array.isArray(se)){const he=new Map(K.map(ve=>[m(ve.value),ve]));K=se.map(ve=>he.get(m(ve))||p(ve));for(const ve of K)oe.add(m(ve.value))}else{const he=Array.isArray(se)?se:se==null?[]:[se];for(const ve of he)oe.add(m(ve))}ze(),Xe()}typeof i.load!="function"&&(K=(Array.isArray(i.options)?i.options:[]).map(p)),ze(),gt(i.value),typeof i.load=="function"&&At();const ft={el:s,root:ke,viewport:W,getValue:we,setValue(se){return gt(se),ft},focus(){return W.focus(),ft},blur(){return W.blur(),ft},setDisabled(se){i.disabled=se,W.setAttribute("aria-disabled",se?"true":"false"),me&&(me.disabled=se),qe(),kt()},setReadOnly(se){i.readOnly=se,se?W.setAttribute("aria-readonly","true"):W.removeAttribute("aria-readonly"),qe(),kt()},__removeValues:Ee,__receiveItems:Ge,destroy(){G=!0,xe&&clearTimeout(xe),_e&&clearTimeout(_e),Le&&Le.abort();for(const se of pe.splice(0))se();if(u&&Z){const se=l(u);se.get(Z)===ft&&se.delete(Z)}for(;ke.firstChild;)ke.removeChild(ke.firstChild)}};return u&&Z&&l(u).set(Z,ft),Xe(),s.appendChild(ke),s.__listbox=ft,ft}I("listbox",{kind:"field",build(s,i){const u=s.props||{},j=i.doc.createElement("div");return c(j,{options:s.options,load:u.load,selection:u.selection,value:s.value,filter:u.filter===!0,groupBy:u.groupBy===!0,sort:u.sort,render:u.render,reorder:u.reorder===!0,connect:u.connect,name:s.name,min:s.min,max:s.max,height:u.height,rows:s.rows,disabled:s.disabled===!0,readOnly:s.readOnly===!0,ariaLabel:s.label,t:i.t,doc:i.doc,inForm:!0}),j.__listboxT=i.t,i.disposers.push(()=>{j.__listbox&&j.__listbox.destroy()}),j},read(s){return s.__listbox?s.__listbox.getValue():null},write(s,i){s.__listbox&&s.__listbox.setValue(i)},validate(s,i,u){if(!s.__listbox)return null;const H=s.__listboxT||te,M=Array.isArray(u)?u.length:u==null?0:1,D=i.min!=null&&Number.isFinite(Number(i.min))?Number(i.min):null,Q=i.max!=null&&Number.isFinite(Number(i.max))?Number(i.max):null;return D!=null&&M<D?{code:"min",message:H("form.listbox.min",{min:String(D)})}:Q!=null&&M>Q?{code:"max",message:H("form.listbox.max",{max:String(Q)})}:null},state(s,i){s.__listbox&&(s.__listbox.setDisabled(i.disabled===!0),s.__listbox.setReadOnly(i.readOnly===!0))},focus(s){s.__listbox&&s.__listbox.focus()},blur(s){s.__listbox&&s.__listbox.blur()}})}),Te("packages/modules/form/controls/options.js",function($,X){"use strict";Object.defineProperty($,"normalizeOptions",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"resolveChoiceLayout",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"choiceLayoutCss",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return O}});const I=X("packages/modules/form/styles.js").NS;function x(w){return Array.isArray(w)?w.map(k=>{if(typeof k=="string")return{value:k,label:k};if(k&&typeof k=="object"){const E=k.value==null?"":String(k.value),g=k.label!=null?String(k.label):k.text!=null?String(k.text):E;return{value:E,label:g}}return{value:"",label:""}}):[]}function te(w){const k=w&&w.props?w.props:{},E=w&&w.orientation!=null?w.orientation:k.orientation;let g=w&&w.columns!=null?w.columns:k.columns;return g=typeof g=="number"&&Number.isFinite(g)&&g>=1?Math.floor(g):0,g>0?{orientation:"vertical",columns:g}:{orientation:E==="horizontal"?"horizontal":"vertical",columns:0}}function _(){return`
1558
- .${I}__radiogroup--horizontal,
1559
- .${I}__checkboxgroup--horizontal{
1577
+ `.trim()}function n(s){const i=s&&s.documentElement;if(!i||i.getAttribute(g))return;i.setAttribute(g,"1");const u=s.createElement("style");u.textContent=r(),(s.head||s.body||i).appendChild(u)}function p(s){return s==null||typeof s!="object"?{value:s,label:s==null?"":String(s),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:s.value,label:s.label!=null?String(s.label):s.title!=null?String(s.title):s.value==null?"":String(s.value),description:s.description!=null?String(s.description):s.subtitle!=null?String(s.subtitle):null,icon:s.icon,avatar:s.avatar,color:s.color,dot:s.dot,disabled:s.disabled===!0,group:s.group!=null?String(s.group):null}}function v(s){if(Array.isArray(s))return{items:s,total:s.length,hasMore:!1};if(s&&typeof s=="object"){const i=Array.isArray(s.items)?s.items:[];return{items:i,total:typeof s.total=="number"?s.total:i.length,hasMore:s.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function b(s,i){return s===i?!0:s!=null&&i!=null&&String(s)===String(i)}function m(s){return String(s)}function V(s,i){const u=s&&s.defaultView;return u&&u.Event?new u.Event(i,{bubbles:!0}):{type:i,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function l(s){return s.__latListboxRegistry||(s.__latListboxRegistry=new Map),s.__latListboxRegistry}let f=null;function c(s,i={}){const u=i.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;u&&(n(u),E(u));const j=typeof i.t=="function"?i.t:re,F=["single","multiple","checkbox"].includes(i.selection)?i.selection:"single",M=F!=="single",D=i.reorder===!0,Q=typeof i.connect=="string"&&i.connect!==""?i.connect:null,Z=typeof i.name=="string"&&i.name!==""?i.name:null,ae=i.sort==="asc"||i.sort==="desc"?i.sort:!1,Y=i.groupBy===!0,ee=i.filter===!0,ze=P("lat-listbox"),Ce=u.createElement("div");Ce.className="lat-listbox",i.inForm||(Ce.setAttribute("data-lattice-standalone","true"),Ce.setAttribute("data-density",["compact","standard","comfortable"].includes(i.density)?i.density:"standard"));let me=null;ee&&(me=u.createElement("input"),me.type="text",me.className="lat-listbox__filter",me.placeholder=j("form.listbox.filterPlaceholder"),me.setAttribute("aria-label",j("form.listbox.filterPlaceholder")),Ce.appendChild(me));let S=null,I=null,U=null,w=null,B=null;(D||Q)&&(S=u.createElement("div"),S.className="lat-listbox__toolbar",S.setAttribute("role","group"),S.setAttribute("aria-label",j("form.listbox.toolbar")),D&&(I=u.createElement("button"),I.type="button",I.className="lat-listbox__toolbar-btn",I.textContent=j("form.listbox.moveUp"),U=u.createElement("button"),U.type="button",U.className="lat-listbox__toolbar-btn",U.textContent=j("form.listbox.moveDown"),S.appendChild(I),S.appendChild(U)),Q&&(w=u.createElement("button"),w.type="button",w.className="lat-listbox__toolbar-btn",w.textContent=j("form.listbox.moveSelected"),B=u.createElement("button"),B.type="button",B.className="lat-listbox__toolbar-btn",B.textContent=j("form.listbox.moveAll"),S.appendChild(w),S.appendChild(B)),Ce.appendChild(S));const W=u.createElement("div");W.className="lat-listbox__viewport",W.id=`${ze}-lb`,W.setAttribute("role","listbox"),W.setAttribute("tabindex","0"),M&&W.setAttribute("aria-multiselectable","true"),W.setAttribute("aria-label",i.ariaLabel!=null?String(i.ariaLabel):"");const q=typeof i.rows=="number"&&i.rows>0?i.rows:8;typeof i.height=="number"&&i.height>0?W.style.height=`${i.height}px`:W.style.height=`calc(var(--lattice-row-height) * ${q})`;let ne=null;if(F==="checkbox"){const le=u.createElement("div");le.className="lat-listbox__option lat-listbox__select-all",ne=u.createElement("input"),ne.type="checkbox",ne.className="lat-listbox__checkbox",ne.id=`${ze}-select-all`,le.appendChild(ne);const he=u.createElement("label");he.className="lat-listbox__title",he.textContent=j("form.listbox.selectAll"),he.setAttribute("for",ne.id),le.appendChild(he),W.appendChild(le)}const se=u.createElement("div");se.className="lat-listbox__spacer",W.appendChild(se);const N=u.createElement("div");N.className="lat-listbox__status",N.setAttribute("role","status"),N.setAttribute("aria-live","polite"),N.hidden=!0,W.appendChild(N),Ce.appendChild(W);let K=[];const oe=new Set;let z=[],T=-1,L=null,A="";const H=[],X=[];let ie=0,de="",ke=null,_e=null,Me=null,Se=0,Oe=!1,x=0,te=!1;const fe=[];let G=!1;function ue(le,he,ve){le.addEventListener(he,ve),fe.push(()=>le.removeEventListener(he,ve))}function we(){return i.readOnly===!0||i.disabled===!0}function ge(){s.dispatchEvent(V(u,"change"))}function xe(){if(F==="single"){const le=K.find(he=>oe.has(m(he.value)));return le?le.value:null}return D||Q?K.map(le=>le.value):K.filter(le=>oe.has(m(le.value))).map(le=>le.value)}function Ie(){const le=z.filter(he=>!he.disabled);return le.length>0&&le.every(he=>oe.has(m(he.value)))}function Le(){const le=A.trim().toLowerCase();let he=le===""?K.slice():K.filter(ve=>ve.label.toLowerCase().includes(le)||(ve.description||"").toLowerCase().includes(le));ae&&(he=he.slice().sort((ve,Ne)=>ve.label.localeCompare(Ne.label)*(ae==="desc"?-1:1))),z=he,H.length=0,X.length=0,T>=z.length&&(T=z.length-1)}function $e(le){const he=[],ve=new Map;for(const Ne of le){const Ze=Ne.group||"";let Ve=ve.get(Ze);Ve||(Ve={group:Ne.group||null,items:[]},ve.set(Ze,Ve),he.push(Ve)),Ve.items.push(Ne)}return he}function Be(le){return`${ze}-opt-${le}`}function ye(le){return le.description!=null||le.icon!=null||le.avatar!=null?a:o}function Re(le){const he=z[le];return!!he&&oe.has(m(he.value))}function je(le,he){const ve=u.createElement("div");if(ve.className="lat-listbox__option",ve.setAttribute("role","option"),ve.id=Be(he),ve.setAttribute("aria-selected",Re(he)?"true":"false"),le.disabled&&ve.setAttribute("aria-disabled","true"),F==="checkbox"){const Ve=u.createElement("input");Ve.type="checkbox",Ve.className="lat-listbox__checkbox",Ve.tabIndex=-1,Ve.checked=Re(he),Ve.disabled=le.disabled||we(),ve.appendChild(Ve)}const Ne=C(u,le,i.render);if(Ne)ve.appendChild(Ne);else{const Ve=y(u,le);Ve&&ve.appendChild(Ve);const Fe=u.createElement("span");Fe.className="lat-listbox__text";const Qe=u.createElement("span");if(Qe.className="lat-listbox__title",Qe.textContent=le.label,Fe.appendChild(Qe),le.description!=null){const xt=u.createElement("span");xt.className="lat-listbox__subtitle",xt.textContent=le.description,Fe.appendChild(xt)}ve.appendChild(Fe)}return(D||Q)&&!le.disabled&&!we()&&(ve.draggable=!0,ue(ve,"dragstart",()=>We(le)),ue(ve,"dragover",Ve=>{Ve.preventDefault()}),ue(ve,"drop",Ve=>{Ve.preventDefault(),Ke(le)})),ue(ve,"click",Ve=>{le.disabled||we()||(W.focus(),bt(he,{shift:Ve.shiftKey,ctrl:Ve.ctrlKey||Ve.metaKey,touch:Ve.pointerType==="touch"}))}),ve}function We(le){const he=oe.has(m(le.value))?K.filter(ve=>oe.has(m(ve.value))).map(ve=>ve.value):[le.value];f={source:it,values:he}}function Ke(le){if(!f||we())return;const{source:he,values:ve}=f;f=null;const Ne=K.findIndex(Ze=>b(Ze.value,le.value));if(Ne!==-1){if(he===it){if(!D)return;Ge(ve,Ne),qe(),ge();return}if(Q){const Ze=he.__removeValues(ve);if(Ze.length===0)return;K.splice(Ne,0,...Ze);for(const Ve of Ze)oe.add(m(Ve.value));Le(),qe(),ge()}}}function Ge(le,he){const ve=new Set(le.map(m)),Ne=K.filter(Qe=>ve.has(m(Qe.value)));if(Ne.length===0)return;const Ze=K[he]?m(K[he].value):null,Ve=K.filter(Qe=>!ve.has(m(Qe.value)));let Fe=Ze==null?Ve.length:Ve.findIndex(Qe=>m(Qe.value)===Ze);Fe===-1&&(Fe=Ve.length),Ve.splice(Fe,0,...Ne),K=Ve}function pe(le){const he=new Set(le.map(m)),ve=K.filter(Ne=>he.has(m(Ne.value)));if(ve.length===0)return ve;K=K.filter(Ne=>!he.has(m(Ne.value)));for(const Ne of ve)oe.delete(m(Ne.value));return Le(),qe(),ge(),ve}function Pe(le){le.length!==0&&(K=K.concat(le),Le(),qe(),ge())}function be(){return!Q||!u?null:l(u).get(Q)||null}function Ae(){const le=be();if(!le||we())return;const he=K.filter(Ne=>oe.has(m(Ne.value))).map(Ne=>Ne.value);if(he.length===0)return;const ve=pe(he);le.__receiveItems(ve)}function at(){const le=be();if(!le||we()||K.length===0)return;const he=pe(K.map(ve=>ve.value));le.__receiveItems(he)}function Ye(le){if(we())return;const he=[];for(let ve=0;ve<K.length;ve++)oe.has(m(K[ve].value))&&he.push(ve);if(he.length!==0){if(le<0)for(const ve of he)ve===0||oe.has(m(K[ve-1].value))||([K[ve-1],K[ve]]=[K[ve],K[ve-1]]);else for(let ve=he.length-1;ve>=0;ve--){const Ne=he[ve];Ne===K.length-1||oe.has(m(K[Ne+1].value))||([K[Ne+1],K[Ne]]=[K[Ne],K[Ne+1]])}Le(),qe(),ge()}}function qe(){for(;se.firstChild;)se.removeChild(se.firstChild);se.style.height="",se.style.position="",Y?pt():rt(),ct(),tt(),S&&dt()}function pt(){let le=0;for(const he of $e(z))if(he.group!=null){const ve=u.createElement("div");ve.setAttribute("role","group");const Ne=u.createElement("div");Ne.className="lat-listbox__group-header",Ne.id=`${ze}-grp-${le}`,Ne.textContent=he.group,ve.setAttribute("aria-labelledby",Ne.id),ve.appendChild(Ne);for(const Ze of he.items)ve.appendChild(je(Ze,le)),le+=1;se.appendChild(ve)}else for(const ve of he.items)se.appendChild(je(ve,le)),le+=1}function rt(){if(se.style.position="relative",ie=W.clientHeight||ie||240,z.length===0){se.style.height="0px";return}for(let Fe=0;Fe<z.length;Fe++)H[Fe]==null&&(H[Fe]=ye(z[Fe]));X.length=0,X[0]=0;for(let Fe=1;Fe<=z.length;Fe++)X[Fe]=X[Fe-1]+H[Fe-1];se.style.height=`${X[z.length]}px`;const le=W.scrollTop,he=le,ve=le+ie;let Ne=0;for(;Ne<z.length-1&&X[Ne+1]<he;)Ne+=1;let Ze=Ne;for(;Ze<z.length&&X[Ze]<ve;)Ze+=1;for(Ze=Math.min(z.length,Ze+2);se.firstChild;)se.removeChild(se.firstChild);for(let Fe=Ne;Fe<Ze;Fe++){const Qe=je(z[Fe],Fe);Qe.style.position="absolute",Qe.style.insetInlineStart="0",Qe.style.insetInlineEnd="0",Qe.style.top="0",Qe.style.transform=`translateY(${X[Fe]}px)`,se.appendChild(Qe)}let Ve=!1;for(let Fe=Ne;Fe<Ze;Fe++){const Qe=u.getElementById(Be(Fe));if(!Qe)continue;const xt=Qe.getBoundingClientRect().height;xt>0&&Math.abs(xt-H[Fe])>.5&&(H[Fe]=xt,Ve=!0)}Ve&&rt()}function ut(){if(T<0||Y)return;const le=X[T]||0,he=le+(H[T]||ye(z[T]));le<W.scrollTop?W.scrollTop=le:he>W.scrollTop+ie&&(W.scrollTop=he-ie),qe()}function ct(){z.length===0?(N.hidden=!1,N.textContent=j("form.listbox.empty")):(N.hidden=!0,N.textContent="")}function ot(){for(const le of se.querySelectorAll('.lat-listbox__option[role="option"]')){const he=le.id||"",ve=Number(he.slice(`${ze}-opt-`.length));if(Number.isNaN(ve))continue;const Ne=z[ve];if(!Ne)continue;const Ze=oe.has(m(Ne.value));le.setAttribute("aria-selected",Ze?"true":"false");const Ve=le.querySelector(".lat-listbox__checkbox");Ve&&(Ve.checked=Ze)}tt(),S&&dt()}function tt(){if(!ne)return;const le=z.filter(ve=>!ve.disabled),he=le.filter(ve=>oe.has(m(ve.value))).length;ne.checked=le.length>0&&he===le.length,ne.indeterminate=he>0&&he<le.length,ne.disabled=we()||le.length===0}function dt(){const le=oe.size>0,he=we();I&&(I.disabled=he||!le),U&&(U.disabled=he||!le),w&&(w.disabled=he||!le),B&&(B.disabled=he||K.length===0)}function mt(le){T=le,le>=0&&le<z.length?W.setAttribute("aria-activedescendant",Be(le)):W.removeAttribute("aria-activedescendant")}function nt(le){for(let he=Math.max(0,le);he<z.length;he++)if(!z[he].disabled)return he;return-1}function Nt(le){for(let he=Math.min(z.length-1,le);he>=0;he--)if(!z[he].disabled)return he;return-1}function bt(le,he={}){const ve=z[le];if(!ve||ve.disabled||we())return;mt(le);const Ne=new Set(oe);if(F==="single")oe.clear(),oe.add(m(ve.value)),L=le;else if(F==="checkbox")oe.has(m(ve.value))?oe.delete(m(ve.value)):oe.add(m(ve.value)),L=le;else if(he.shift&&L!=null){const Ze=Math.min(L,le),Ve=Math.max(L,le);oe.clear();for(let Fe=Ze;Fe<=Ve;Fe++)z[Fe].disabled||oe.add(m(z[Fe].value))}else he.ctrl||he.touch?(oe.has(m(ve.value))?oe.delete(m(ve.value)):oe.add(m(ve.value)),L=le):(oe.clear(),oe.add(m(ve.value)),L=le);ut(),ot(),ft(Ne,oe)||ge()}function ft(le,he){if(le.size!==he.size)return!1;for(const ve of le)if(!he.has(ve))return!1;return!0}function lt(){if(we())return;const le=!Ie();for(const he of z)he.disabled||(le?oe.add(m(he.value)):oe.delete(m(he.value)));ot(),ge()}function gt(le,he){if(z.length===0)return;const ve=T<0?le>0?-1:z.length:T,Ne=le>0?nt(ve+1):Nt(ve-1);if(Ne!==-1){if(mt(Ne),ut(),F==="single"){bt(Ne,{});return}he&&M&&(L==null&&(L=Ne),bt(Ne,{shift:!0}))}}function Ct(le){ke&&clearTimeout(ke),de+=le.toLowerCase(),ke=setTimeout(()=>{de="",ke=null},t);const he=T>-1?T+1:0;let ve=-1;for(let Ne=he;Ne<z.length;Ne++)if(!z[Ne].disabled&&z[Ne].label.toLowerCase().startsWith(de)){ve=Ne;break}if(ve===-1){for(let Ne=0;Ne<he;Ne++)if(!z[Ne].disabled&&z[Ne].label.toLowerCase().startsWith(de)){ve=Ne;break}}ve!==-1&&(mt(ve),ut())}function Lt(le){if(le.altKey&&le.key==="ArrowUp"&&D)le.preventDefault(),Ye(-1);else if(le.altKey&&le.key==="ArrowDown"&&D)le.preventDefault(),Ye(1);else if(le.key==="ArrowDown")le.preventDefault(),gt(1,le.shiftKey);else if(le.key==="ArrowUp")le.preventDefault(),gt(-1,le.shiftKey);else if(le.key==="Home"){le.preventDefault();const he=nt(0);he!==-1&&(mt(he),ut(),F==="single"&&bt(he,{}))}else if(le.key==="End"){le.preventDefault();const he=Nt(z.length-1);he!==-1&&(mt(he),ut(),F==="single"&&bt(he,{}))}else if(le.key===" ")le.preventDefault(),T>=0&&bt(T,{ctrl:M});else if((le.ctrlKey||le.metaKey)&&(le.key==="a"||le.key==="A")&&M){if(le.preventDefault(),we())return;for(const he of z)he.disabled||oe.add(m(he.value));ot(),ge()}else le.key.length===1&&!le.ctrlKey&&!le.metaKey&&!le.altKey&&Ct(le.key)}function ht(){if(A=me.value||"",typeof i.load!="function"){Le(),qe();return}_e&&clearTimeout(_e),_e=setTimeout(()=>_t(),h)}function _t(){if(G||typeof i.load!="function")return;Oe=!0,Se+=1;const le=Se;Me&&Me.abort(),Me=typeof AbortController<"u"?new AbortController:null;let he;try{he=i.load({search:A,page:0,signal:Me?Me.signal:void 0})}catch{Oe=!1;return}const ve=Ne=>{if(G||le!==Se)return;Oe=!1;const Ze=v(Ne);K=Ze.items.map(p),te=Ze.hasMore,x=1,Le(),qe()};he&&typeof he.then=="function"?he.then(ve,()=>{Oe=!1}):ve(he)}ue(W,"keydown",Lt),ue(W,"scroll",()=>{Y||rt()}),me&&ue(me,"input",ht),I&&ue(I,"click",()=>Ye(-1)),U&&ue(U,"click",()=>Ye(1)),w&&ue(w,"click",()=>Ae()),B&&ue(B,"click",()=>at()),ne&&ue(ne,"change",()=>lt()),ue(W,"dragover",le=>{f&&le.preventDefault()}),ue(W,"drop",le=>{if(le.preventDefault(),!f||f.source===it||!Q)return;const he=f.source.__removeValues(f.values);f=null,Pe(he)});function st(le){if(oe.clear(),F==="single")le!=null&&oe.add(m(le));else if((D||Q)&&Array.isArray(le)){const he=new Map(K.map(ve=>[m(ve.value),ve]));K=le.map(ve=>he.get(m(ve))||p(ve));for(const ve of K)oe.add(m(ve.value))}else{const he=Array.isArray(le)?le:le==null?[]:[le];for(const ve of he)oe.add(m(ve))}Le(),qe()}typeof i.load!="function"&&(K=(Array.isArray(i.options)?i.options:[]).map(p)),Le(),st(i.value),typeof i.load=="function"&&_t();const it={el:s,root:Ce,viewport:W,getValue:xe,setValue(le){return st(le),it},focus(){return W.focus(),it},blur(){return W.blur(),it},setDisabled(le){i.disabled=le,W.setAttribute("aria-disabled",le?"true":"false"),me&&(me.disabled=le),tt(),dt()},setReadOnly(le){i.readOnly=le,le?W.setAttribute("aria-readonly","true"):W.removeAttribute("aria-readonly"),tt(),dt()},__removeValues:pe,__receiveItems:Pe,destroy(){G=!0,ke&&clearTimeout(ke),_e&&clearTimeout(_e),Me&&Me.abort();for(const le of fe.splice(0))le();if(u&&Z){const le=l(u);le.get(Z)===it&&le.delete(Z)}for(;Ce.firstChild;)Ce.removeChild(Ce.firstChild)}};return u&&Z&&l(u).set(Z,it),qe(),s.appendChild(Ce),s.__listbox=it,it}R("listbox",{kind:"field",build(s,i){const u=s.props||{},j=i.doc.createElement("div");return c(j,{options:s.options,load:u.load,selection:u.selection,value:s.value,filter:u.filter===!0,groupBy:u.groupBy===!0,sort:u.sort,render:u.render,reorder:u.reorder===!0,connect:u.connect,name:s.name,min:s.min,max:s.max,height:u.height,rows:s.rows,disabled:s.disabled===!0,readOnly:s.readOnly===!0,ariaLabel:s.label,t:i.t,doc:i.doc,inForm:!0}),j.__listboxT=i.t,i.disposers.push(()=>{j.__listbox&&j.__listbox.destroy()}),j},read(s){return s.__listbox?s.__listbox.getValue():null},write(s,i){s.__listbox&&s.__listbox.setValue(i)},validate(s,i,u){if(!s.__listbox)return null;const F=s.__listboxT||re,M=Array.isArray(u)?u.length:u==null?0:1,D=i.min!=null&&Number.isFinite(Number(i.min))?Number(i.min):null,Q=i.max!=null&&Number.isFinite(Number(i.max))?Number(i.max):null;return D!=null&&M<D?{code:"min",message:F("form.listbox.min",{min:String(D)})}:Q!=null&&M>Q?{code:"max",message:F("form.listbox.max",{max:String(Q)})}:null},state(s,i){s.__listbox&&(s.__listbox.setDisabled(i.disabled===!0),s.__listbox.setReadOnly(i.readOnly===!0))},focus(s){s.__listbox&&s.__listbox.focus()},blur(s){s.__listbox&&s.__listbox.blur()}})}),Te("packages/modules/form/controls/options.js",function($,J){"use strict";Object.defineProperty($,"normalizeOptions",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"resolveChoiceLayout",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"choiceLayoutCss",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return O}});const R=J("packages/modules/form/styles.js").NS;function k(y){return Array.isArray(y)?y.map(C=>{if(typeof C=="string")return{value:C,label:C};if(C&&typeof C=="object"){const E=C.value==null?"":String(C.value),g=C.label!=null?String(C.label):C.text!=null?String(C.text):E;return{value:E,label:g}}return{value:"",label:""}}):[]}function re(y){const C=y&&y.props?y.props:{},E=y&&y.orientation!=null?y.orientation:C.orientation;let g=y&&y.columns!=null?y.columns:C.columns;return g=typeof g=="number"&&Number.isFinite(g)&&g>=1?Math.floor(g):0,g>0?{orientation:"vertical",columns:g}:{orientation:E==="horizontal"?"horizontal":"vertical",columns:0}}function _(){return`
1578
+ .${R}__radiogroup--horizontal,
1579
+ .${R}__checkboxgroup--horizontal{
1560
1580
  flex-direction:row; flex-wrap:wrap; align-items:center;
1561
1581
  gap:calc(var(--lattice-space) * 1.5);
1562
1582
  }
1563
- .${I}__radiogroup--columns,
1564
- .${I}__checkboxgroup--columns{
1583
+ .${R}__radiogroup--columns,
1584
+ .${R}__checkboxgroup--columns{
1565
1585
  display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
1566
1586
  gap:var(--lattice-space);
1567
1587
  }
1568
- `.trim()}const T="data-lattice-form-choice-styles";function O(w){const k=w&&w.documentElement;if(!k||k.getAttribute(T))return;k.setAttribute(T,"1");const E=w.createElement("style");E.textContent=_(),(w.head||w.body||k).appendChild(E)}}),Te("packages/modules/form/controls/radiogroup.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/controls/options.js"),te=x.normalizeOptions,_=x.resolveChoiceLayout,T=x.injectChoiceLayoutStyles,O=X("packages/modules/form/state.js"),w=O.applyBooleanInputState,k=O.guardBooleanInput;I("radiogroup",{kind:"field",build(E,g){const o=g.doc.createElement("div");o.className="lat-form__radiogroup",o.setAttribute("role","radiogroup"),E.label!=null&&E.label!==""&&o.setAttribute("aria-label",String(E.label));const a=_(E);a.columns>0?(T(g.doc),o.classList.add("lat-form__radiogroup--columns"),o.style.setProperty("--lat-form-columns",String(a.columns))):a.orientation==="horizontal"&&(T(g.doc),o.classList.add("lat-form__radiogroup--horizontal")),o.setAttribute("aria-orientation",a.orientation);const d=[];for(const h of te(E.options)){const t=g.doc.createElement("label");t.className="lat-form__choice";const r=g.doc.createElement("input");r.type="radio",E.name&&(r.name=E.name),r.value=h.value,r.checked=E.value!=null&&String(E.value)===h.value,k(r),t.appendChild(r);const n=g.doc.createElement("span");n.textContent=h.label,t.appendChild(n),o.appendChild(t),d.push(r)}return o.__radios=d,o},read(E){const g=E.__radios.find(o=>o.checked);return g?g.value:null},write(E,g){const o=g==null?null:String(g);for(const a of E.__radios)a.checked=o!==null&&a.value===o},state(E,g){const o=g.readOnly===!0;for(const a of E.__radios)w(a,g.disabled===!0,o);o?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const g=E.__radios.find(o=>!o.disabled);g&&g.focus()}})}),Te("packages/modules/form/controls/checkboxgroup.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/controls/options.js"),te=x.normalizeOptions,_=x.resolveChoiceLayout,T=x.injectChoiceLayoutStyles,O=X("packages/modules/form/state.js"),w=O.applyBooleanInputState,k=O.guardBooleanInput;I("checkboxgroup",{kind:"field",build(E,g){const o=g.doc.createElement("div");o.className="lat-form__checkboxgroup",o.setAttribute("role","group"),E.label!=null&&E.label!==""&&o.setAttribute("aria-label",String(E.label));const a=_(E);a.columns>0?(T(g.doc),o.classList.add("lat-form__checkboxgroup--columns"),o.style.setProperty("--lat-form-columns",String(a.columns))):a.orientation==="horizontal"&&(T(g.doc),o.classList.add("lat-form__checkboxgroup--horizontal"));const d=[],h=Array.isArray(E.value)?E.value.map(String):[];for(const t of te(E.options)){const r=g.doc.createElement("label");r.className="lat-form__choice";const n=g.doc.createElement("input");n.type="checkbox",E.name&&(n.name=E.name),n.value=t.value,n.checked=h.includes(t.value),k(n),r.appendChild(n);const p=g.doc.createElement("span");p.textContent=t.label,r.appendChild(p),o.appendChild(r),d.push(n)}return o.__boxes=d,o},read(E){return E.__boxes.filter(g=>g.checked).map(g=>g.value)},write(E,g){const o=Array.isArray(g)?g.map(String):[];for(const a of E.__boxes)a.checked=o.includes(a.value)},state(E,g){const o=g.readOnly===!0;for(const a of E.__boxes)w(a,g.disabled===!0,o);o?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const g=E.__boxes.find(o=>!o.disabled);g&&g.focus()}})}),Te("packages/modules/form/controls/toggle.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/state.js"),te=x.applyBooleanInputState,_=x.guardBooleanInput,T=Object.freeze(["small","default","large"]),O=Object.freeze(["round","square","slim"]),w=Object.freeze(["inside","before","after"]);function k(t){return T.includes(t)?t:"default"}function E(t){return O.includes(t)?t:"round"}function g(t){return w.includes(t)?t:"inside"}function o(t){return t==null?"":String(t)}function a(t){return t.__latToggle?t.__latToggle.input:t}function d(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function h(t,r,n){const p=r&&r.defaultView,y=p&&p.Event,b=y?new y(n,{bubbles:!0}):{type:n,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(b)}I("toggle",{kind:"toggle",build(t,r){const n=t.props||{},p=r.doc.createElement("input");p.type="checkbox",p.className="lat-form__toggle",p.setAttribute("role","switch"),t.name&&(p.name=t.name),p.checked=t.value===!0,_(p),n.size!=null&&p.setAttribute("data-size",k(n.size)),n.variant!=null&&p.setAttribute("data-variant",E(n.variant));const y=o(n.onLabel),b=o(n.offLabel);if(y===""&&b==="")return p;const m=r.doc.createElement("span");m.className="lat-form__toggle-field",m.setAttribute("data-label-position",g(n.labelPosition)),m.appendChild(p);const V=r.doc.createElement("span");V.className="lat-form__toggle-label",m.appendChild(V);const l={input:p,label:V,onLabel:y,offLabel:b};m.__latToggle=l,d(l),p.addEventListener("change",()=>d(l));let f=!1;return m.addEventListener("focusin",()=>{f||(f=!0,h(m,r.doc,"focus"))}),m.addEventListener("focusout",c=>{m.contains(c.relatedTarget)||(f=!1,h(m,r.doc,"blur"))}),m},read(t){return a(t).checked},write(t,r){const n=a(t);n.checked=r===!0,d(t.__latToggle)},state(t,r){te(a(t),r.disabled===!0,r.readOnly===!0)},focus(t){const r=a(t);typeof r.focus=="function"&&r.focus()},blur(t){const r=a(t);typeof r.blur=="function"&&r.blur()}})}),Te("packages/modules/form/controls/date-parse.js",function($,X){"use strict";Object.defineProperty($,"parseTypedDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"splitTypedTime",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function I(o){return o.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function x(o,a,d){if(!Number.isInteger(o)||!Number.isInteger(a)||!Number.isInteger(d)||o<1||o>9999||a<1||a>12||d<1)return null;const h=a===2?te(o)?29:28:[4,6,9,11].includes(a)?30:31;return d>h?null:`${String(o).padStart(4,"0")}-${String(a).padStart(2,"0")}-${String(d).padStart(2,"0")}`}function te(o){return o%4===0&&o%100!==0||o%400===0}function _(o){const a=Number(o);return o.length<=2?2e3+a:a}function T(o){const a=new Map;for(let d=1;d<=12;d++){const h=new Date(2001,d-1,15);for(const t of["long","short"]){const r=new Intl.DateTimeFormat(o,{month:t}).format(h),n=new Intl.DateTimeFormat(o,{day:"numeric",month:t}).formatToParts(h).find(p=>p.type==="month");for(const p of[r,n&&n.value]){if(!p)continue;const y=p.toLowerCase();a.set(y,d),y.endsWith(".")&&a.set(y.slice(0,-1),d)}}}return a}function O(o,a,d){const h=new Intl.DateTimeFormat(a,d).formatToParts(new Date(2001,10,22)),t=T(a),r=[];let n="^";for(const m of h)if(m.type==="day")r.push("d"),n+="(\\d{1,2})";else if(m.type==="year"||m.type==="relatedYear")r.push("y"),n+="(\\d{4}|\\d{2})";else if(m.type==="month")if(r.push("m"),/^\d+$/.test(m.value))n+="(\\d{1,2})";else{const V=[...t.keys()].sort((l,f)=>f.length-l.length).map(I);n+=`(${V.join("|")})`}else if(m.type==="literal")n+=m.value.trim()===""?"\\s+":`\\s*${I(m.value.trim())}\\s*`;else if(m.type==="weekday")n+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const p=new RegExp(`${n}$`,"iu").exec(o);if(!p||r.length!==3)return null;const y={};r.forEach((m,V)=>{y[m]=p[V+1]});const b=/^\d+$/.test(y.m)?Number(y.m):t.get(y.m.toLowerCase());return x(_(y.y),b,Number(y.d))}function w(o,a){const h=new Intl.DateTimeFormat(a,{day:"numeric",month:"numeric",year:"numeric"}).formatToParts(new Date(2001,10,22)).filter(p=>p.type==="day"||p.type==="month"||p.type==="year"||p.type==="relatedYear").map(p=>p.type==="day"?"d":p.type==="month"?"m":"y");if(h.length!==3)return null;const t=h.map(p=>p==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),r=new RegExp(`^${t}\\.?$`).exec(o);if(!r)return null;const n={};return h.forEach((p,y)=>{n[p]=r[y+1]}),x(_(n.y),Number(n.m),Number(n.d))}function k(o){const a=h=>{const t=h.toLowerCase().replace(/\.$/,"");return e.findIndex(n=>n===t||n.slice(0,3)===t||t==="sept"&&n==="september")+1};let d=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(o);return d?a(d[2])?x(Number(d[3]),a(d[2]),Number(d[1])):null:(d=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(o),d&&a(d[1])?x(Number(d[3]),a(d[1]),Number(d[2])):null)}function E(o,a,d){const h=String(o??"").trim().replace(/\s+/g," ");if(!h)return null;const t=d||a&&a.locale||void 0,r={dateStyle:"medium"},n=[()=>O(h,t,r),()=>w(h,t),()=>{const p=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(h);return p?x(Number(p[1]),Number(p[2]),Number(p[3])):null},()=>k(h)];for(const p of n)try{const y=p();if(y)return y}catch{}return null}function g(o){const a=String(o??"").trim(),d=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(a);if(!d)return{date:a,time:null};let h=Number(d[1]);const t=Number(d[2]);if(d[3]){const r=d[3].toLowerCase()==="p";if(h<1||h>12)return{date:a,time:null};h=h%12+(r?12:0)}return h>23||t>59?{date:a,time:null}:{date:a.slice(0,d.index).replace(/[,\s]+$/,""),time:{h,mi:t}}}}),Te("packages/modules/form/controls/date-shared.js",function($,X){"use strict";Object.defineProperty($,"pad",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"echoKey",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"modeOf",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"daysInMonth",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"fieldsOfDate",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"parseValue",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"isoOf",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"displayOf",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"withinRange",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"weekdayName",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"monthTitle",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"yearTitle",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"dispatchChange",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"is12Hour",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"dayPeriods",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"to12Hour",{enumerable:!0,get:function(){return r}}),Object.defineProperty($,"to24Hour",{enumerable:!0,get:function(){return n}}),Object.defineProperty($,"parseDay",{enumerable:!0,get:function(){return p}}),Object.defineProperty($,"dayISO",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"dayNumber",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"dayNumberOf",{enumerable:!0,get:function(){return m}}),Object.defineProperty($,"dayOfNumber",{enumerable:!0,get:function(){return V}}),Object.defineProperty($,"parseMonth",{enumerable:!0,get:function(){return l}}),Object.defineProperty($,"monthISO",{enumerable:!0,get:function(){return f}}),Object.defineProperty($,"monthIndex",{enumerable:!0,get:function(){return c}}),Object.defineProperty($,"monthOfIndex",{enumerable:!0,get:function(){return s}}),Object.defineProperty($,"isoWeek",{enumerable:!0,get:function(){return i}}),Object.defineProperty($,"focusedNavIndex",{enumerable:!0,get:function(){return u}}),Object.defineProperty($,"restoreNavFocus",{enumerable:!0,get:function(){return j}}),Object.defineProperty($,"afterFocusSettles",{enumerable:!0,get:function(){return H}});const e=X("packages/modules/form/controls/date-parse.js");Object.defineProperty($,"parseTypedDate",{enumerable:!0,get:function(){return e.parseTypedDate}}),Object.defineProperty($,"splitTypedTime",{enumerable:!0,get:function(){return e.splitTypedTime}});function I(M){return String(M).padStart(2,"0")}function x(M){return M}function te(M){return M.mode==="date-time"||M.mode==="time"?M.mode:"date"}function _(M,D){return new Date(M,D,0).getDate()}function T(M,D){if(!(D instanceof Date)||Number.isNaN(D.getTime()))return null;const Q={y:D.getFullYear(),mo:D.getMonth()+1,d:D.getDate(),h:D.getHours(),mi:D.getMinutes()},Z=M.timeZone;if(!Z)return Q;try{const ae=new Intl.DateTimeFormat("en-US",{timeZone:Z,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(D),Y={y:0,mo:1,d:1,h:0,mi:0};for(const q of ae)q.type==="year"?Y.y=Number(q.value):q.type==="month"?Y.mo=Number(q.value):q.type==="day"?Y.d=Number(q.value):q.type==="hour"?Y.h=Number(q.value)%24:q.type==="minute"&&(Y.mi=Number(q.value));return Y}catch{return Q}}function O(M,D){if(D==null||D==="")return null;if(typeof D=="number")return T(M,new Date(D));if(D instanceof Date)return T(M,D);if(typeof D=="string"){const Q=D.trim();if(te(M)==="time"){const ae=/^(\d{1,2}):(\d{2})/.exec(Q);return ae?{y:null,mo:null,d:null,h:Number(ae[1]),mi:Number(ae[2])}:null}const Z=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(Q);return Z?{y:Number(Z[1]),mo:Number(Z[2]),d:Number(Z[3]),h:Z[4]!=null?Number(Z[4]):0,mi:Z[5]!=null?Number(Z[5]):0}:null}return null}function w(M,D){if(!D)return null;if(te(M)==="time")return`${I(D.h)}:${I(D.mi)}`;const Q=`${I(D.y)}-${I(D.mo)}-${I(D.d)}`;return te(M)==="date"?Q:`${Q}T${I(D.h)}:${I(D.mi)}`}function k(M,D){if(!D)return"";const Q=te(M);if(Q==="time")return`${I(D.h)}:${I(D.mi)}`;const Z=M.locale||void 0,ae={dateStyle:"medium"};return Q==="date-time"&&(ae.timeStyle="short"),new Intl.DateTimeFormat(Z,ae).format(new Date(D.y,D.mo-1,D.d,D.h,D.mi))}function E(M,D){return D==null?!0:!(M.min!=null&&D<String(M.min)||M.max!=null&&D>String(M.max))}function g(M,D){return new Intl.DateTimeFormat(M.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+D))}function o(M,D){return new Intl.DateTimeFormat(M.locale||void 0,{month:"long",year:"numeric"}).format(new Date(D.y,D.mo-1,1))}function a(M){return String(M.y)}function d(M){const D=M.ownerDocument&&M.ownerDocument.defaultView,Q=D&&typeof D.Event=="function"?D.Event:null;M.dispatchEvent(Q?new Q("change",{bubbles:!0}):{type:"change",bubbles:!0})}function h(M){try{const D=new Intl.DateTimeFormat(M.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return D==="h11"||D==="h12"}catch{return!1}}function t(M){try{const D=new Intl.DateTimeFormat(M.locale||void 0,{hour:"numeric",hour12:!0}),Q=D.formatToParts(new Date(2021,0,1,9)).find(ae=>ae.type==="dayPeriod"),Z=D.formatToParts(new Date(2021,0,1,15)).find(ae=>ae.type==="dayPeriod");if(Q&&Z)return{am:Q.value,pm:Z.value}}catch{}return null}function r(M){const D=M%12;return D===0?12:D}function n(M,D){return D?M===12?12:M+12:M===12?0:M}function p(M){if(typeof M!="string")return null;const D=/^(\d{4})-(\d{2})-(\d{2})$/.exec(M.trim());if(!D)return null;const Q={y:Number(D[1]),mo:Number(D[2]),d:Number(D[3])};return Q.mo<1||Q.mo>12||Q.d<1||Q.d>_(Q.y,Q.mo)?null:Q}function y(M,D,Q){return`${I(M)}-${I(D)}-${I(Q)}`}function b(M,D,Q){return Date.UTC(M,D-1,Q)/864e5}function m(M){const D=p(M);return D?b(D.y,D.mo,D.d):NaN}function V(M){const D=new Date(M*864e5);return{y:D.getUTCFullYear(),mo:D.getUTCMonth()+1,d:D.getUTCDate()}}function l(M){if(typeof M!="string")return null;const D=/^(\d{4})-(\d{2})$/.exec(M.trim());if(!D)return null;const Q={y:Number(D[1]),mo:Number(D[2])};return Q.mo<1||Q.mo>12?null:Q}function f(M,D){return`${I(M)}-${I(D)}`}function c(M,D){return M*12+(D-1)}function s(M){return{y:Math.floor(M/12),mo:M%12+1}}function i(M,D,Q){const Z=new Date(Date.UTC(M,D-1,Q)),ae=Z.getUTCDay()||7;Z.setUTCDate(Z.getUTCDate()+4-ae);const Y=new Date(Date.UTC(Z.getUTCFullYear(),0,1));return Math.ceil(((Z-Y)/864e5+1)/7)}function u(M,D){const Q=M.ownerDocument,Z=Q?Q.activeElement:null;return!Z||typeof M.contains!="function"||!M.contains(Z)?-1:Array.prototype.indexOf.call(M.querySelectorAll(`.${D}`),Z)}function j(M,D,Q){if(Q<0)return;const Z=M.querySelectorAll(`.${D}`)[Q];Z&&typeof Z.focus=="function"&&Z.focus()}function H(M,D){const Q=M&&M.defaultView;(Q&&typeof Q.setTimeout=="function"?Q.setTimeout.bind(Q):setTimeout)(D,0)}}),Te("packages/modules/form/controls/date-typed.js",function($,X){"use strict";Object.defineProperty($,"setTypedError",{enumerable:!0,get:function(){return e}});function e(I,x){let te=I.__typedError;if(x==null){te&&(te.hidden=!0),I.__input&&I.__input.removeAttribute("aria-invalid");return}te||(te=I.ownerDocument.createElement("div"),te.className="lat-form__error lat-form__typed-error",te.setAttribute("role","alert"),I.__typedError=te,I.appendChild(te)),te.textContent=x,te.hidden=!1,I.__input&&I.__input.setAttribute("aria-invalid","true")}}),Te("packages/modules/form/controls/datepicker-draft.js",function($,X){"use strict";Object.defineProperty($,"isDraftMode",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"getDraft",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"readDraftClock",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"pickDraftDay",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"commitDraft",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"dropDraft",{enumerable:!0,get:function(){return g}});const e=X("packages/modules/form/controls/date-shared.js"),I=e.modeOf,x=e.displayOf,te=e.to24Hour,_=e.isoOf;function T(o){return I(o.__item)==="date-time"}function O(o){if(!o.__draft){const a=o.__fields;o.__draft=a?{y:a.y,mo:a.mo,d:a.d,h:a.h,mi:a.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return o.__draft}function w(o){const a=O(o);if(!o.__hour)return;let d=Number(o.__hour.value)||0;const h=o.__minute&&Number(o.__minute.value)||0;o.__ampm&&(d=te(d,o.__pm===!0)),a.h=d,a.mi=h}function k(o,a,d,h,t){w(o);const r=O(o);r.y=a,r.mo=d,r.d=h,o.__cursor=h,o.__input.value=x(o.__item,r),t(o)}function E(o,a){w(o);const d=O(o);if(d.d==null)return;const h={y:d.y,mo:d.mo,d:d.d,h:d.h,mi:d.mi};_(o.__item,h)!==_(o.__item,o.__fields)&&a(o,h)}function g(o){const a=o.__draft;o.__draft=null,a&&a.d!=null&&T(o)&&(o.__input.value=x(o.__item,o.__fields))}}),Te("packages/modules/form/controls/datepicker.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/controls/field-icon.js"),te=x.makeFieldIcon,_=x.injectFieldIconStyles,T=X("packages/modules/form/controls/date-shared.js"),O=T.pad,w=T.echoKey,k=T.modeOf,E=T.daysInMonth,g=T.parseValue,o=T.isoOf,a=T.displayOf,d=T.withinRange,h=T.weekdayName,t=T.monthTitle,r=T.dispatchChange,n=T.is12Hour,p=T.dayPeriods,y=T.to12Hour,b=T.to24Hour,m=T.focusedNavIndex,V=T.restoreNavFocus,l=T.afterFocusSettles,f=T.parseTypedDate,c=T.splitTypedTime,i=X("packages/modules/form/controls/date-typed.js").setTypedError,j=X("packages/modules/form/controls/popup-layer.js").openInLayer,H=X("packages/modules/form/controls/datepicker-draft.js"),M=H.isDraftMode,D=H.getDraft,Q=H.pickDraftDay,Z=H.readDraftClock,ae=H.commitDraft,Y=H.dropDraft,q=Object.freeze(["date","date-time","time"]),Re="lat-form__datepicker-popup--above";function ke(N,K){N.__fields=K,N.__input.value=a(N.__item,K),r(N)}function me(N,K){const oe=N.__item;if(k(oe)==="time")return g(oe,K);const{date:R,time:P}=c(K),L=f(R,oe);if(!L)return null;const[C,U,J]=L.split("-").map(Number),ie=N.__fields,fe=P||(k(oe)==="date-time"&&ie?{h:ie.h,mi:ie.mi}:{h:0,mi:0});return{y:C,mo:U,d:J,h:fe.h,mi:fe.mi}}function S(N,K){let{y:oe,mo:R}=N.__view,P=N.__cursor+K;for(;P<1;)R-=1,R<1&&(R=12,oe-=1),P+=E(oe,R);let L=E(oe,R);for(;P>L;)P-=L,R+=1,R>12&&(R=1,oe+=1),L=E(oe,R);N.__view={y:oe,mo:R},N.__cursor=P,z(N)}function z(N){const K=N.__item,oe=N.ownerDocument,R=N.__popup,P=N.__view,L=k(K),C=N.__fields,U=m(R,"lat-form__datepicker-nav"),J=m(R,"lat-form__datepicker-day");for(;R.firstChild;)R.removeChild(R.firstChild);if(L!=="time"){const ie=oe.createElement("div");ie.className="lat-form__datepicker-head";const fe=oe.createElement("button");fe.type="button",fe.className="lat-form__datepicker-nav",fe.setAttribute("aria-label",N.__t("form.datepicker.prev")),fe.textContent="‹",fe.addEventListener("click",()=>{F(N,-1)});const xe=oe.createElement("span");xe.className="lat-form__datepicker-title",xe.textContent=t(K,P);const _e=oe.createElement("button");_e.type="button",_e.className="lat-form__datepicker-nav",_e.setAttribute("aria-label",N.__t("form.datepicker.next")),_e.textContent="›",_e.addEventListener("click",()=>{F(N,1)}),ie.appendChild(fe),ie.appendChild(xe),ie.appendChild(_e),R.appendChild(ie);const Le=oe.createElement("div");Le.className="lat-form__datepicker-weekdays";for(let ee=0;ee<7;ee+=1){const pe=oe.createElement("span");pe.textContent=h(K,ee),Le.appendChild(pe)}R.appendChild(Le);const Se=oe.createElement("div");Se.className="lat-form__datepicker-grid",Se.setAttribute("role","grid"),Se.tabIndex=0,N.__grid=Se;const Pe=new Date(P.y,P.mo-1,1).getDay();for(let ee=0;ee<Pe;ee+=1){const pe=oe.createElement("span");pe.className="lat-form__datepicker-blank",Se.appendChild(pe)}const A=E(P.y,P.mo);for(let ee=1;ee<=A;ee+=1){const pe=oe.createElement("button");pe.type="button",pe.className="lat-form__datepicker-day",pe.setAttribute("role","gridcell"),pe.textContent=String(ee);const G=o(K,{y:P.y,mo:P.mo,d:ee,h:0,mi:0});d(K,G)||(pe.disabled=!0),C&&C.y===P.y&&C.mo===P.mo&&C.d===ee&&pe.classList.add("is-selected"),N.__cursor===ee&&pe.classList.add("is-focus"),pe.addEventListener("click",()=>{if(M(N)){Q(N,P.y,P.mo,ee,z);return}const de={y:P.y,mo:P.mo,d:ee,h:C?C.h:0,mi:C?C.mi:0};L==="date"?(N.__cursor=ee,ke(N,de),ce(N)):(N.__cursor=ee,N.__fields=de,z(N))}),Se.appendChild(pe)}R.appendChild(Se),Se.addEventListener("keydown",ee=>{ee.key==="ArrowLeft"?(ee.preventDefault(),S(N,-1)):ee.key==="ArrowRight"?(ee.preventDefault(),S(N,1)):ee.key==="ArrowUp"?(ee.preventDefault(),S(N,-7)):ee.key==="ArrowDown"?(ee.preventDefault(),S(N,7)):ee.key==="Home"?(ee.preventDefault(),N.__cursor=1,z(N)):ee.key==="End"?(ee.preventDefault(),N.__cursor=E(P.y,P.mo),z(N)):(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),ne(N))})}if(L!=="date"){const ie=n(K)?p(K):null,fe=!!ie,xe=oe.createElement("div");xe.className="lat-form__datepicker-time";const _e=oe.createElement("input");_e.type="number",_e.className="lat-form__datepicker-hour",_e.min=fe?"1":"0",_e.max=fe?"12":"23",_e.step="1",_e.setAttribute("aria-label",N.__t("form.datepicker.hour"));const Le=oe.createElement("span");Le.textContent=":";const Se=oe.createElement("input");if(Se.type="number",Se.className="lat-form__datepicker-minute",Se.min="0",Se.max="59",Se.step="1",Se.setAttribute("aria-label",N.__t("form.datepicker.minute")),xe.appendChild(_e),xe.appendChild(Le),xe.appendChild(Se),R.appendChild(xe),N.__hour=_e,N.__minute=Se,_e.addEventListener("change",()=>{v(N)}),Se.addEventListener("change",()=>{v(N)}),M(N)&&D(N),N.__periods=ie,N.__ampm=null,fe){const A=oe.createElement("button");A.type="button",A.className="lat-form__datepicker-ampm",N.__ampm=A;const ee=()=>{N.__pm=!N.__pm,A.textContent=N.__pm?N.__periods.pm:N.__periods.am,v(N)};A.addEventListener("click",ee),xe.appendChild(A)}const Pe=oe.createElement("button");Pe.type="button",Pe.className="lat-form__datepicker-done",Pe.textContent=N.__t("form.datepicker.done"),Pe.addEventListener("click",()=>{B(N)}),xe.appendChild(Pe)}W(N),V(R,"lat-form__datepicker-nav",U),V(R,"lat-form__datepicker-day",J)}function F(N,K){let{y:oe,mo:R}=N.__view;R+=K,R<1&&(R=12,oe-=1),R>12&&(R=1,oe+=1),N.__view={y:oe,mo:R},N.__cursor=Math.min(N.__cursor,E(oe,R)),z(N)}function v(N){if(M(N)){Z(N),W(N);return}const K=N.__fields;let oe=N.__hour&&Number(N.__hour.value)||0;const R=N.__minute&&Number(N.__minute.value)||0;N.__ampm&&(oe=b(oe,N.__pm===!0));const P=k(N.__item)==="time"?{y:null,mo:null,d:null,h:oe,mi:R}:{y:K?K.y:N.__view.y,mo:K?K.mo:N.__view.mo,d:K?K.d:N.__cursor,h:oe,mi:R};N.__cursor=K?K.d:N.__cursor,ke(N,P),W(N)}function B(N){N.__popup.hidden||(M(N)?ae(N,ke):k(N.__item)!=="date"&&v(N),ce(N))}function W(N){const K=M(N)?D(N):N.__fields,oe=N.__ampm&&N.__periods;if(N.__hour){const R=K?K.h:0;N.__hour.value=O(oe?y(R):R)}N.__minute&&(N.__minute.value=O(K?K.mi:0)),N.__ampm&&N.__periods&&(N.__pm=K?K.h>=12:!1,N.__ampm.textContent=N.__pm?N.__periods.pm:N.__periods.am)}function ne(N){const K=N.__view;if(M(N)){Q(N,K.y,K.mo,N.__cursor,z);return}const oe=N.__fields,R={y:K.y,mo:K.mo,d:N.__cursor,h:oe?oe.h:0,mi:oe?oe.mi:0};ke(N,R),ce(N)}function re(N){if(N.__popup.hidden===!1||N.__item.disabled===!0||N.__item.readOnly===!0)return;const K=N.__fields,oe=new Date;N.__view=K&&K.y!=null?{y:K.y,mo:K.mo}:{y:oe.getFullYear(),mo:oe.getMonth()+1},N.__cursor=K&&K.d!=null?K.d:oe.getDate(),N.__popup.hidden=!1,z(N),N.__layer=j(N.__popup,N,{aboveClass:Re,matchWidth:!1,onOffscreen:()=>ce(N)})}function ce(N){Y(N),N.__popup.hidden=!0,N.__popup.classList.remove(Re),N.__layer&&(N.__layer.close(),N.__layer=null)}I("datepicker",{kind:"field",build(N,K){const oe=K.doc;_(oe);const R=oe.createElement("div");R.className="lat-form__datepicker",R.__item=N,R.__t=K.t||w,R.__mode=k(N),R.__fields=g(N,N.value),R.__cursor=R.__fields&&R.__fields.d!=null?R.__fields.d:new Date().getDate(),R.__view=R.__fields&&R.__fields.y!=null?{y:R.__fields.y,mo:R.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const P=oe.createElement("input");P.type="text",P.className="lat-form__datepicker-input",N.name&&(P.name=N.name),N.placeholder!=null&&(P.placeholder=String(N.placeholder)),N.label!=null&&N.label!==""&&P.setAttribute("aria-label",String(N.label)),P.setAttribute("autocomplete","off"),P.value=a(N,R.__fields),R.__input=P;const L=oe.createElement("button");L.type="button",L.className="lat-form__datepicker-toggle";const C=k(N)==="date";L.setAttribute("aria-label",R.__t(C?"form.datepicker.open":"form.datepicker.openTime"));const U=te(oe,C?"calendar":"clock");U&&L.appendChild(U),R.__toggle=L;const J=oe.createElement("div");J.className="lat-form__datepicker-popup lat-form__datepicker",J.hidden=!0,R.__popup=J,R.appendChild(P),R.appendChild(L),R.appendChild(J),P.addEventListener("focus",()=>{re(R)}),L.addEventListener("click",()=>{re(R)}),P.addEventListener("change",_e=>{const Le=P.value;if(String(Le).trim()===""){P.value=a(N,R.__fields);return}const Se=o(N,R.__fields),Pe=me(R,Le);if(!Pe){_e.stopPropagation(),P.value=a(N,R.__fields),i(R,R.__t("form.datepicker.invalid"));return}i(R,null),R.__fields=Pe,R.__draft=null,P.value=a(N,Pe),R.__hour&&W(R),o(N,Pe)===Se&&_e.stopPropagation()}),P.addEventListener("keydown",_e=>{_e.key==="Escape"&&ce(R)}),R.__ampm=null,R.__periods=null,R.__pm=!1;const ie=_e=>{R.contains(_e.target)||J.contains(_e.target)||B(R)},fe=_e=>{if((R.contains(_e.target)||J.contains(_e.target))&&!(_e.relatedTarget&&(R.contains(_e.relatedTarget)||J.contains(_e.relatedTarget)))){if(!_e.relatedTarget){l(oe,()=>{if(J.hidden)return;const Se=oe.activeElement;Se&&(R.contains(Se)||J.contains(Se))||B(R)});return}B(R)}},xe=_e=>{_e.key==="Escape"&&(_e.preventDefault(),B(R),R.__toggle.focus())};return oe.addEventListener("pointerdown",ie),oe.addEventListener("focusout",fe),J.addEventListener("keydown",xe),Array.isArray(K.disposers)&&K.disposers.push(()=>{ce(R),oe.removeEventListener("pointerdown",ie),oe.removeEventListener("focusout",fe),J.removeEventListener("keydown",xe)}),R},read(N){return o(N.__item,N.__fields)},write(N,K){i(N,null),N.__fields=g(N.__item,K),N.__draft=null,N.__input.value=a(N.__item,N.__fields),N.__fields&&N.__fields.y!=null&&(N.__view={y:N.__fields.y,mo:N.__fields.mo},N.__cursor=N.__fields.d),N.__hour&&!N.__popup.hidden&&W(N)},state(N,K){N.__input.disabled=K.disabled===!0,N.__input.readOnly=K.readOnly===!0,N.__toggle.disabled=K.disabled===!0||K.readOnly===!0},validate(N,K,oe){return d(K,oe)?!0:typeof K.errorMessage=="string"&&K.errorMessage!==""?K.errorMessage:!1},focus(N){N.__input.focus()}})}),Te("packages/modules/form/controls/daterange.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/controls/field-icon.js"),te=x.makeFieldIcon,_=x.injectFieldIconStyles,T=X("packages/modules/form/controls/date-shared.js"),O=T.echoKey,w=T.daysInMonth,k=T.weekdayName,E=T.monthTitle,g=T.yearTitle,o=T.dispatchChange,a=T.parseDay,d=T.dayISO,h=T.dayNumber,t=T.dayNumberOf,r=T.dayOfNumber,n=T.parseMonth,p=T.monthISO,y=T.monthIndex,b=T.monthOfIndex,m=T.isoWeek,V=T.focusedNavIndex,l=T.restoreNavFocus,f=T.afterFocusSettles,c=T.parseTypedDate,i=X("packages/modules/form/controls/date-typed.js").setTypedError,u=" – ";function j(A){return A.props&&A.props.granularity==="month"?"month":"day"}function H(A){return A.props&&typeof A.props=="object"?A.props:{}}function M(A){return H(A).applyButton!==!1}function D(A){return H(A).weekNumbers===!0}function Q(A){return H(A).clearable===!0}function Z(A){const ee=H(A).firstDay;if(ee!=null){const pe=Number(ee);if(Number.isFinite(pe))return(pe%7+7)%7}try{const pe=new Intl.Locale(A.locale||void 0).weekInfo;if(pe&&pe.firstDay)return pe.firstDay%7}catch{}return 0}function ae(A){const ee=H(A).disabledDates;if(Array.isArray(ee)){const pe=new Set(ee.map(String));return G=>pe.has(G)}return typeof ee=="function"?pe=>ee(pe)===!0:null}function Y(A,ee){return A.min!=null&&ee<String(A.min)||A.max!=null&&ee>String(A.max)}function q(A,ee,pe){return!!(Y(A,ee)||pe&&pe(ee))}function Re(A,ee,pe){if(A==null||ee==null)return null;if(pe==="month"){const ye=n(A),be=n(ee);return!ye||!be?null:y(be.y,be.mo)-y(ye.y,ye.mo)}const G=t(A),de=t(ee);return Number.isNaN(G)||Number.isNaN(de)?null:de-G}function ke(A,ee){return j(A)==="month"?ee("form.daterange.months"):ee("form.daterange.days")}function me(A,ee){if(j(A)==="month")return[{label:ee("form.daterange.monthThisMonth"),range:G=>[p(G.getFullYear(),G.getMonth()+1),p(G.getFullYear(),G.getMonth()+1)]},{label:ee("form.daterange.monthLastMonth"),range:G=>{const de=b(y(G.getFullYear(),G.getMonth()+1)-1);return[p(de.y,de.mo),p(de.y,de.mo)]}},{label:ee("form.daterange.monthLast3"),range:G=>{const de=y(G.getFullYear(),G.getMonth()+1),ye=b(de-2),be=b(de);return[p(ye.y,ye.mo),p(be.y,be.mo)]}},{label:ee("form.daterange.monthLast6"),range:G=>{const de=y(G.getFullYear(),G.getMonth()+1),ye=b(de-5),be=b(de);return[p(ye.y,ye.mo),p(be.y,be.mo)]}},{label:ee("form.daterange.monthLast12"),range:G=>{const de=y(G.getFullYear(),G.getMonth()+1),ye=b(de-11),be=b(de);return[p(ye.y,ye.mo),p(be.y,be.mo)]}},{label:ee("form.daterange.monthThisYear"),range:G=>[p(G.getFullYear(),1),p(G.getFullYear(),12)]},{label:ee("form.daterange.monthLastYear"),range:G=>[p(G.getFullYear()-1,1),p(G.getFullYear()-1,12)]}];const pe=G=>d(G.getFullYear(),G.getMonth()+1,G.getDate());return[{label:ee("form.daterange.today"),range:G=>[pe(G),pe(G)]},{label:ee("form.daterange.yesterday"),range:G=>{const de=r(h(G.getFullYear(),G.getMonth()+1,G.getDate())-1);return[d(de.y,de.mo,de.d),d(de.y,de.mo,de.d)]}},{label:ee("form.daterange.last7"),range:G=>{const de=h(G.getFullYear(),G.getMonth()+1,G.getDate()),ye=r(de-6);return[d(ye.y,ye.mo,ye.d),pe(G)]}},{label:ee("form.daterange.last30"),range:G=>{const de=h(G.getFullYear(),G.getMonth()+1,G.getDate()),ye=r(de-29);return[d(ye.y,ye.mo,ye.d),pe(G)]}},{label:ee("form.daterange.thisMonth"),range:G=>[d(G.getFullYear(),G.getMonth()+1,1),d(G.getFullYear(),G.getMonth()+1,w(G.getFullYear(),G.getMonth()+1))]},{label:ee("form.daterange.lastMonth"),range:G=>{const de=b(y(G.getFullYear(),G.getMonth()+1)-1);return[d(de.y,de.mo,1),d(de.y,de.mo,w(de.y,de.mo))]}}]}function S(A,ee){const pe=H(A).presets;return pe===!1?null:Array.isArray(pe)&&pe.length?pe.map(G=>({label:G&&G.label!=null?String(G.label):"",range:G&&G.range!=null?G.range:["",""]})):me(A,ee)}function z(A,ee){return A==null&&ee==null?"":ee==null?`${A}${u}`:`${A}${u}${ee}`}function F(A,ee){const pe=String(ee??"").trim();if(!pe)return{start:null,end:null};if(j(A)!=="month"){const Be=pe.split(/\s+[–—-]\s+|\s+to\s+/i).map(ze=>c(ze,A));if(Be.length<=2&&Be.every(ze=>ze)){const[ze,Ce=null]=Be;return Ce&&ze>Ce?{start:Ce,end:ze}:{start:ze,end:Ce}}}const G=j(A)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,de=[];let ye;for(;(ye=G.exec(pe))!==null;)de.push(ye[1]);if(de.length===0)return null;const be=de[0],we=de.length>1?de[de.length-1]:null;if(j(A)==="month"){if(!n(be)||we&&!n(we))return null}else if(!a(be)||we&&!a(we))return null;return we&&be>we?{start:we,end:be}:{start:be,end:we}}function v(A,ee){return new Intl.DateTimeFormat(A.locale||void 0,{month:"short"}).format(new Date(2021,ee-1,1))}function B(A){const ee=A.__draftStart,pe=A.__draftEnd;return ee!=null&&pe!=null?[ee,pe]:ee!=null&&A.__hover!=null&&A.__granularity==="day"?[ee,A.__hover]:ee!=null&&A.__hover!=null&&A.__granularity==="month"?[ee,A.__hover]:null}function W(A,ee){return A>=ee[0]&&A<=ee[1]}function ne(A,ee){if(A.__granularity==="month"){const de=y(A.__cursor.y,A.__cursor.mo)+ee,ye=b(de);A.__cursor=ye,re(A),_e(A);return}const pe=h(A.__cursor.y,A.__cursor.mo,A.__cursor.d)+ee,G=r(pe);A.__cursor=G,re(A),_e(A)}function re(A){if(A.__granularity==="month"){A.__cursor.y<A.__view.y?A.__view={y:A.__cursor.y}:A.__cursor.y>A.__view.y+1&&(A.__view={y:A.__cursor.y-1});return}const pe=y(A.__cursor.y,A.__cursor.mo),G=y(A.__view.y,A.__view.mo);pe<G?A.__view={y:A.__cursor.y,mo:A.__cursor.mo}:pe>G+1&&(A.__view=b(pe-1))}function ce(A,ee){if(A.__granularity==="month"){A.__view={y:A.__view.y+ee},_e(A);return}const pe=y(A.__view.y,A.__view.mo)+ee,G=b(pe);A.__view=G,_e(A)}function N(A,ee){return A&&ee&&A.y===ee.y&&A.mo===ee.mo&&(A.d==null||A.d===ee.d)}function K(A,ee){return A.__granularity==="month"?p(ee.y,ee.mo):d(ee.y,ee.mo,ee.d)}function oe(A,ee){const pe=K(A,ee);A.__phase!=="started"?(A.__draftStart=pe,A.__draftEnd=null,A.__phase="started"):pe<A.__draftStart?(A.__draftStart=pe,A.__draftEnd=null):(A.__draftEnd=pe,A.__phase="idle",M(A.__item)||R(A,!0)),A.__cursor=ee,A.__hover=null,_e(A)}function R(A,ee){A.__start=A.__draftStart,A.__end=A.__draftEnd,A.__phase="idle",A.__input.value=z(A.__start,A.__end),o(A),ee&&Pe(A)}function P(A){A.__draftStart=A.__start,A.__draftEnd=A.__end,A.__phase="idle",A.__hover=null,Pe(A)}function L(A){A.__start=null,A.__end=null,A.__draftStart=null,A.__draftEnd=null,A.__phase="idle",A.__input.value="",o(A)}function C(A,ee,pe){for(;pe.firstChild;)pe.removeChild(pe.firstChild);const G=ae(A.__item);if(A.__granularity==="month")fe(A,ee,pe,A.__view.y,G),fe(A,ee,pe,A.__view.y+1,G);else{U(A,ee,pe,A.__view.y,A.__view.mo,G);const de=b(y(A.__view.y,A.__view.mo)+1);U(A,ee,pe,de.y,de.mo,G)}}function U(A,ee,pe,G,de,ye){const be=A.__item,we=ee.createElement("div");we.className="lat-form__daterange-panel";const Be=ee.createElement("div");Be.className="lat-form__daterange-title",Be.textContent=E(be,{y:G,mo:de}),we.appendChild(Be);const ze=Z(be),Ce=D(be),Me=ee.createElement("div");if(Me.className=Ce?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Ce){const Ee=ee.createElement("span");Ee.className="lat-form__daterange-weeknum-head",Me.appendChild(Ee)}for(let Ee=0;Ee<7;Ee+=1){const Ge=ee.createElement("span");Ge.textContent=k(be,(ze+Ee)%7),Me.appendChild(Ge)}we.appendChild(Me);const ge=ee.createElement("div");ge.className=Ce?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",ge.setAttribute("role","grid"),ge.setAttribute("aria-label",E(be,{y:G,mo:de})),ge.tabIndex=0,we.appendChild(ge);const le=(new Date(G,de-1,1).getDay()-ze+7)%7,Oe=w(G,de),je=h(G,de,1)-le,Ae=[];for(let Ee=0;Ee<le;Ee+=1){Ce&&Ee%7===0&&ge.appendChild(J(A,ee,je));const Ge=ee.createElement("span");Ge.className="lat-form__daterange-blank",ge.appendChild(Ge)}for(let Ee=1;Ee<=Oe;Ee+=1){Ce&&(le+Ee-1)%7===0&&ge.appendChild(J(A,ee,je+(le+Ee-1)));const Ge=ie(A,ee,G,de,Ee,ye);Ae.push(Ge),ge.appendChild(Ge)}xe(A,ge,Ae),pe.appendChild(we)}function J(A,ee,pe){const G=ee.createElement("span");G.className="lat-form__daterange-weeknum";const de=new Date(pe*864e5),ye=pe-(de.getUTCDay()+6)%7,be=new Date(ye*864e5);return G.textContent=String(m(be.getUTCFullYear(),be.getUTCMonth()+1,be.getUTCDate())),G}function ie(A,ee,pe,G,de,ye){const be=d(pe,G,de),we=ee.createElement("button");we.type="button",we.className="lat-form__daterange-day",we.setAttribute("role","gridcell"),we.textContent=String(de);const Be=B(A),ze=Be?W(be,Be):!1,Ce=q(A.__item,be,ye);return Ce&&(we.disabled=!0),ze&&we.classList.add("is-in-range"),A.__draftStart===be&&we.classList.add("is-start"),A.__draftEnd===be&&we.classList.add("is-end"),we.setAttribute("aria-selected",ze&&!Ce?"true":"false"),A.__cursor&&A.__cursor.y===pe&&A.__cursor.mo===G&&A.__cursor.d===de&&we.classList.add("is-focus"),we.addEventListener("click",()=>{oe(A,{y:pe,mo:G,d:de})}),we.addEventListener("mouseover",()=>{A.__draftStart!=null&&A.__draftEnd==null&&!Ce&&A.__hover!==be&&(A.__hover=be,_e(A))}),we}function fe(A,ee,pe,G,de){const ye=A.__item,be=ee.createElement("div");be.className="lat-form__daterange-panel";const we=ee.createElement("div");we.className="lat-form__daterange-title",we.textContent=g({y:G}),be.appendChild(we);const Be=ee.createElement("div");Be.className="lat-form__daterange-grid lat-form__daterange-grid--months",Be.setAttribute("role","grid"),Be.setAttribute("aria-label",g({y:G})),be.appendChild(Be);const ze=[];for(let Ce=1;Ce<=12;Ce+=1){const Me=p(G,Ce),ge=ee.createElement("button");ge.type="button",ge.className="lat-form__daterange-month",ge.setAttribute("role","gridcell"),ge.textContent=v(ye,Ce);const De=B(A),le=De?W(Me,De):!1,Oe=q(ye,Me,de);Oe&&(ge.disabled=!0),le&&ge.classList.add("is-in-range"),A.__draftStart===Me&&ge.classList.add("is-start"),A.__draftEnd===Me&&ge.classList.add("is-end"),ge.setAttribute("aria-selected",le&&!Oe?"true":"false"),A.__cursor&&A.__cursor.y===G&&A.__cursor.mo===Ce&&A.__cursor.d==null&&ge.classList.add("is-focus"),ge.addEventListener("click",()=>{oe(A,{y:G,mo:Ce})}),ze.push(ge),Be.appendChild(ge)}Be.addEventListener("keydown",Ce=>{if(Ce.key==="ArrowLeft")Ce.preventDefault(),ne(A,-1);else if(Ce.key==="ArrowRight")Ce.preventDefault(),ne(A,1);else if(Ce.key==="ArrowUp")Ce.preventDefault(),ne(A,-3);else if(Ce.key==="ArrowDown")Ce.preventDefault(),ne(A,3);else if(Ce.key==="PageUp")Ce.preventDefault(),ce(A,-1);else if(Ce.key==="PageDown")Ce.preventDefault(),ce(A,1);else if(Ce.key==="Enter"||Ce.key===" "){Ce.preventDefault();const Me=K(A,A.__cursor);q(A.__item,Me,de)||oe(A,A.__cursor)}}),pe.appendChild(be)}function xe(A,ee,pe){ee.addEventListener("keydown",G=>{const de=A.__cursor;if(G.key==="ArrowLeft")G.preventDefault(),ne(A,-1);else if(G.key==="ArrowRight")G.preventDefault(),ne(A,1);else if(G.key==="ArrowUp")G.preventDefault(),ne(A,-7);else if(G.key==="ArrowDown")G.preventDefault(),ne(A,7);else if(G.key==="PageUp")G.shiftKey?(G.preventDefault(),ce(A,-12)):(G.preventDefault(),ce(A,-1));else if(G.key==="PageDown")G.shiftKey?(G.preventDefault(),ce(A,12)):(G.preventDefault(),ce(A,1));else if((G.key==="Enter"||G.key===" ")&&(G.preventDefault(),de&&de.d!=null)){const ye=d(de.y,de.mo,de.d);q(A.__item,ye,ae(A.__item))||oe(A,de)}})}function _e(A){const ee=A.ownerDocument,pe=A.__popup,G=A.__item,de=V(pe,"lat-form__daterange-nav");for(;pe.firstChild;)pe.removeChild(pe.firstChild);const ye=ee.createElement("div");ye.className="lat-form__daterange-head";const be=ee.createElement("button");be.type="button",be.className="lat-form__daterange-nav",be.setAttribute("aria-label",A.__t("form.daterange.prev")),be.textContent="‹",be.addEventListener("click",()=>{ce(A,-1)});const we=ee.createElement("button");we.type="button",we.className="lat-form__daterange-nav",we.setAttribute("aria-label",A.__t("form.daterange.next")),we.textContent="›",we.addEventListener("click",()=>{ce(A,1)}),ye.appendChild(be);const Be=ee.createElement("div");Be.className="lat-form__daterange-body";const ze=S(G,A.__t);if(ze){const Me=ee.createElement("div");Me.className="lat-form__daterange-presets";const ge=ee.createElement("div");ge.className="lat-form__daterange-presets-title",ge.textContent=A.__t("form.daterange.presets"),Me.appendChild(ge);for(const De of ze){const le=ee.createElement("button");le.type="button",le.className="lat-form__daterange-preset",le.textContent=De.label,le.addEventListener("click",()=>{Le(A,De.range)}),Me.appendChild(le)}Be.appendChild(Me)}const Ce=ee.createElement("div");if(Ce.className="lat-form__daterange-panels",C(A,ee,Ce),Be.appendChild(Ce),ye.appendChild(Be),ye.appendChild(we),pe.appendChild(ye),M(G)){const Me=ee.createElement("div");Me.className="lat-form__daterange-footer";const ge=ee.createElement("button");ge.type="button",ge.className="lat-form__daterange-cancel",ge.textContent=A.__t("form.daterange.cancel"),ge.addEventListener("click",()=>{P(A)});const De=ee.createElement("button");De.type="button",De.className="lat-form__daterange-apply",De.textContent=A.__t("form.daterange.apply"),De.addEventListener("click",()=>{R(A,!0)}),Me.appendChild(ge),Me.appendChild(De),pe.appendChild(Me)}l(pe,"lat-form__daterange-nav",de)}function Le(A,ee){const pe=typeof ee=="function"?ee(new Date):ee;if(!(!Array.isArray(pe)||pe.length<2)){if(A.__draftStart=pe[0],A.__draftEnd=pe[1],A.__phase="idle",A.__hover=null,A.__granularity==="day"){const G=a(pe[0]);G&&(A.__view={y:G.y,mo:G.mo}),A.__cursor=G||A.__cursor}else{const G=n(pe[0]);G&&(A.__view={y:G.y}),A.__cursor=G||A.__cursor}_e(A)}}function Se(A){if(A.__popup.hidden===!1||A.__item.disabled===!0||A.__item.readOnly===!0)return;A.__draftStart=A.__start,A.__draftEnd=A.__end,A.__phase="idle",A.__hover=null;const ee=new Date;if(A.__granularity==="month"){const pe=n(A.__start)||{y:ee.getFullYear(),mo:ee.getMonth()+1};A.__view={y:pe.y},A.__cursor=pe}else{const pe=a(A.__start)||{y:ee.getFullYear(),mo:ee.getMonth()+1,d:ee.getDate()};A.__view={y:pe.y,mo:pe.mo},A.__cursor=pe}A.__popup.hidden=!1,_e(A)}function Pe(A){A.__popup.hidden=!0}I("daterange",{kind:"field",build(A,ee){const pe=ee.doc;_(pe);const G=pe.createElement("div");G.className="lat-form__daterange",G.__item=A,G.__t=ee.t||O,G.__granularity=j(A),G.__start=null,G.__end=null,G.__draftStart=null,G.__draftEnd=null,G.__hover=null,G.__phase="idle";const de=typeof A.value=="object"&&A.value!=null?A.value:{};de&&de.start!=null&&(G.__start=String(de.start)),de&&de.end!=null&&(G.__end=String(de.end));const ye=pe.createElement("input");ye.type="text",ye.className="lat-form__daterange-input",A.name&&(ye.name=A.name),A.placeholder!=null&&(ye.placeholder=String(A.placeholder)),A.label!=null&&A.label!==""&&ye.setAttribute("aria-label",String(A.label)),ye.setAttribute("autocomplete","off"),ye.value=z(G.__start,G.__end),G.__input=ye;const be=pe.createElement("button");be.type="button",be.className="lat-form__daterange-toggle",be.setAttribute("aria-label",G.__t("form.daterange.open"));const we=te(pe,"calendar");we&&be.appendChild(we),G.__toggle=be;const Be=pe.createElement("button");Be.type="button",Be.className="lat-form__daterange-clear",Be.setAttribute("aria-label",G.__t("form.daterange.clear"));const ze=te(pe,"close");ze&&Be.appendChild(ze),Be.hidden=!Q(A)||G.__start==null&&G.__end==null,G.__clear=Be;const Ce=pe.createElement("div");Ce.className="lat-form__daterange-popup",Ce.hidden=!0,G.__popup=Ce,G.appendChild(ye),G.appendChild(Be),G.appendChild(be),G.appendChild(Ce),ye.addEventListener("focus",()=>{Se(G)}),be.addEventListener("click",()=>{Se(G)}),Be.addEventListener("click",()=>{L(G)}),ye.addEventListener("change",le=>{const Oe=F(A,ye.value);Oe?(i(G,null),G.__start=Oe.start,G.__end=Oe.end,ye.value=z(Oe.start,Oe.end)):(le.stopPropagation(),ye.value=z(G.__start,G.__end),i(G,G.__t("form.datepicker.invalid")))}),ye.addEventListener("keydown",le=>{le.key==="Escape"&&(P(G),G.__toggle.focus())});const Me=le=>{G.contains(le.target)||P(G)},ge=le=>{if(!(le.relatedTarget&&G.contains(le.relatedTarget))){if(!le.relatedTarget){f(G.ownerDocument,()=>{if(G.__popup.hidden)return;const Oe=G.ownerDocument.activeElement;Oe&&G.contains(Oe)||P(G)});return}P(G)}},De=le=>{le.key==="Escape"&&(le.preventDefault(),P(G),G.__toggle.focus())};return pe.addEventListener("pointerdown",Me),G.addEventListener("focusout",ge),Ce.addEventListener("keydown",De),Array.isArray(ee.disposers)&&ee.disposers.push(()=>{pe.removeEventListener("pointerdown",Me),G.removeEventListener("focusout",ge),Ce.removeEventListener("keydown",De)}),G},read(A){return{start:A.__start,end:A.__end}},write(A,ee){i(A,null);const pe=ee&&typeof ee=="object"?ee:{};A.__start=pe.start!=null?String(pe.start):null,A.__end=pe.end!=null?String(pe.end):null,A.__input.value=z(A.__start,A.__end),A.__clear&&(A.__clear.hidden=!Q(A.__item)||A.__start==null&&A.__end==null)},state(A,ee){A.__input.disabled=ee.disabled===!0,A.__input.readOnly=ee.readOnly===!0,A.__toggle.disabled=ee.disabled===!0||ee.readOnly===!0},validate(A,ee,pe){const G=pe&&typeof pe=="object"?pe:{start:null,end:null},de=G.start!=null?String(G.start):null,ye=G.end!=null?String(G.end):null,be=A.__t;if(ee.required===!0&&de==null&&ye==null)return be("form.validation.required");if(de==null&&ye==null)return!0;if(de==null||ye==null)return be("form.daterange.invalid");if(Y(ee,de)||Y(ee,ye))return be("form.daterange.bounds");const we=Re(de,ye,A.__granularity);if(we==null)return be("form.daterange.invalid");const Be=H(ee).minSpan,ze=H(ee).maxSpan;return Be!=null&&we<Number(Be)?be("form.daterange.minSpan",{min:String(Be),unit:ke(ee,be)}):ze!=null&&we>Number(ze)?be("form.daterange.maxSpan",{max:String(ze),unit:ke(ee,be)}):!0},focus(A){A.__input.focus()}})}),Te("packages/modules/form/controls/file.js",function($,X){"use strict";Object.defineProperty($,"formatSize",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"accepts",{enumerable:!0,get:function(){return g}});const I=X("packages/modules/form/controls/registry.js").registerControl,x="lat-uploader",te="http://www.w3.org/2000/svg",_="data-lattice-uploader-styles";function T(){return`
1569
- .${x}{
1588
+ `.trim()}const P="data-lattice-form-choice-styles";function O(y){const C=y&&y.documentElement;if(!C||C.getAttribute(P))return;C.setAttribute(P,"1");const E=y.createElement("style");E.textContent=_(),(y.head||y.body||C).appendChild(E)}}),Te("packages/modules/form/controls/radiogroup.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/controls/options.js"),re=k.normalizeOptions,_=k.resolveChoiceLayout,P=k.injectChoiceLayoutStyles,O=J("packages/modules/form/state.js"),y=O.applyBooleanInputState,C=O.guardBooleanInput;R("radiogroup",{kind:"field",build(E,g){const o=g.doc.createElement("div");o.className="lat-form__radiogroup",o.setAttribute("role","radiogroup"),E.label!=null&&E.label!==""&&o.setAttribute("aria-label",String(E.label));const a=_(E);a.columns>0?(P(g.doc),o.classList.add("lat-form__radiogroup--columns"),o.style.setProperty("--lat-form-columns",String(a.columns))):a.orientation==="horizontal"&&(P(g.doc),o.classList.add("lat-form__radiogroup--horizontal")),o.setAttribute("aria-orientation",a.orientation);const d=[];for(const h of re(E.options)){const t=g.doc.createElement("label");t.className="lat-form__choice";const r=g.doc.createElement("input");r.type="radio",E.name&&(r.name=E.name),r.value=h.value,r.checked=E.value!=null&&String(E.value)===h.value,C(r),t.appendChild(r);const n=g.doc.createElement("span");n.textContent=h.label,t.appendChild(n),o.appendChild(t),d.push(r)}return o.__radios=d,o},read(E){const g=E.__radios.find(o=>o.checked);return g?g.value:null},write(E,g){const o=g==null?null:String(g);for(const a of E.__radios)a.checked=o!==null&&a.value===o},state(E,g){const o=g.readOnly===!0;for(const a of E.__radios)y(a,g.disabled===!0,o);o?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const g=E.__radios.find(o=>!o.disabled);g&&g.focus()}})}),Te("packages/modules/form/controls/checkboxgroup.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/controls/options.js"),re=k.normalizeOptions,_=k.resolveChoiceLayout,P=k.injectChoiceLayoutStyles,O=J("packages/modules/form/state.js"),y=O.applyBooleanInputState,C=O.guardBooleanInput;R("checkboxgroup",{kind:"field",build(E,g){const o=g.doc.createElement("div");o.className="lat-form__checkboxgroup",o.setAttribute("role","group"),E.label!=null&&E.label!==""&&o.setAttribute("aria-label",String(E.label));const a=_(E);a.columns>0?(P(g.doc),o.classList.add("lat-form__checkboxgroup--columns"),o.style.setProperty("--lat-form-columns",String(a.columns))):a.orientation==="horizontal"&&(P(g.doc),o.classList.add("lat-form__checkboxgroup--horizontal"));const d=[],h=Array.isArray(E.value)?E.value.map(String):[];for(const t of re(E.options)){const r=g.doc.createElement("label");r.className="lat-form__choice";const n=g.doc.createElement("input");n.type="checkbox",E.name&&(n.name=E.name),n.value=t.value,n.checked=h.includes(t.value),C(n),r.appendChild(n);const p=g.doc.createElement("span");p.textContent=t.label,r.appendChild(p),o.appendChild(r),d.push(n)}return o.__boxes=d,o},read(E){return E.__boxes.filter(g=>g.checked).map(g=>g.value)},write(E,g){const o=Array.isArray(g)?g.map(String):[];for(const a of E.__boxes)a.checked=o.includes(a.value)},state(E,g){const o=g.readOnly===!0;for(const a of E.__boxes)y(a,g.disabled===!0,o);o?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const g=E.__boxes.find(o=>!o.disabled);g&&g.focus()}})}),Te("packages/modules/form/controls/toggle.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/state.js"),re=k.applyBooleanInputState,_=k.guardBooleanInput,P=Object.freeze(["small","default","large"]),O=Object.freeze(["round","square","slim"]),y=Object.freeze(["inside","before","after"]);function C(t){return P.includes(t)?t:"default"}function E(t){return O.includes(t)?t:"round"}function g(t){return y.includes(t)?t:"inside"}function o(t){return t==null?"":String(t)}function a(t){return t.__latToggle?t.__latToggle.input:t}function d(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function h(t,r,n){const p=r&&r.defaultView,v=p&&p.Event,b=v?new v(n,{bubbles:!0}):{type:n,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(b)}R("toggle",{kind:"toggle",build(t,r){const n=t.props||{},p=r.doc.createElement("input");p.type="checkbox",p.className="lat-form__toggle",p.setAttribute("role","switch"),t.name&&(p.name=t.name),p.checked=t.value===!0,_(p),n.size!=null&&p.setAttribute("data-size",C(n.size)),n.variant!=null&&p.setAttribute("data-variant",E(n.variant));const v=o(n.onLabel),b=o(n.offLabel);if(v===""&&b==="")return p;const m=r.doc.createElement("span");m.className="lat-form__toggle-field",m.setAttribute("data-label-position",g(n.labelPosition)),m.appendChild(p);const V=r.doc.createElement("span");V.className="lat-form__toggle-label",m.appendChild(V);const l={input:p,label:V,onLabel:v,offLabel:b};m.__latToggle=l,d(l),p.addEventListener("change",()=>d(l));let f=!1;return m.addEventListener("focusin",()=>{f||(f=!0,h(m,r.doc,"focus"))}),m.addEventListener("focusout",c=>{m.contains(c.relatedTarget)||(f=!1,h(m,r.doc,"blur"))}),m},read(t){return a(t).checked},write(t,r){const n=a(t);n.checked=r===!0,d(t.__latToggle)},state(t,r){re(a(t),r.disabled===!0,r.readOnly===!0)},focus(t){const r=a(t);typeof r.focus=="function"&&r.focus()},blur(t){const r=a(t);typeof r.blur=="function"&&r.blur()}})}),Te("packages/modules/form/controls/date-parse.js",function($,J){"use strict";Object.defineProperty($,"parseTypedDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"splitTypedTime",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function R(o){return o.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function k(o,a,d){if(!Number.isInteger(o)||!Number.isInteger(a)||!Number.isInteger(d)||o<1||o>9999||a<1||a>12||d<1)return null;const h=a===2?re(o)?29:28:[4,6,9,11].includes(a)?30:31;return d>h?null:`${String(o).padStart(4,"0")}-${String(a).padStart(2,"0")}-${String(d).padStart(2,"0")}`}function re(o){return o%4===0&&o%100!==0||o%400===0}function _(o){const a=Number(o);return o.length<=2?2e3+a:a}function P(o){const a=new Map;for(let d=1;d<=12;d++){const h=new Date(2001,d-1,15);for(const t of["long","short"]){const r=new Intl.DateTimeFormat(o,{month:t}).format(h),n=new Intl.DateTimeFormat(o,{day:"numeric",month:t}).formatToParts(h).find(p=>p.type==="month");for(const p of[r,n&&n.value]){if(!p)continue;const v=p.toLowerCase();a.set(v,d),v.endsWith(".")&&a.set(v.slice(0,-1),d)}}}return a}function O(o,a,d){const h=new Intl.DateTimeFormat(a,d).formatToParts(new Date(2001,10,22)),t=P(a),r=[];let n="^";for(const m of h)if(m.type==="day")r.push("d"),n+="(\\d{1,2})";else if(m.type==="year"||m.type==="relatedYear")r.push("y"),n+="(\\d{4}|\\d{2})";else if(m.type==="month")if(r.push("m"),/^\d+$/.test(m.value))n+="(\\d{1,2})";else{const V=[...t.keys()].sort((l,f)=>f.length-l.length).map(R);n+=`(${V.join("|")})`}else if(m.type==="literal")n+=m.value.trim()===""?"\\s+":`\\s*${R(m.value.trim())}\\s*`;else if(m.type==="weekday")n+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const p=new RegExp(`${n}$`,"iu").exec(o);if(!p||r.length!==3)return null;const v={};r.forEach((m,V)=>{v[m]=p[V+1]});const b=/^\d+$/.test(v.m)?Number(v.m):t.get(v.m.toLowerCase());return k(_(v.y),b,Number(v.d))}function y(o,a){const h=new Intl.DateTimeFormat(a,{day:"numeric",month:"numeric",year:"numeric"}).formatToParts(new Date(2001,10,22)).filter(p=>p.type==="day"||p.type==="month"||p.type==="year"||p.type==="relatedYear").map(p=>p.type==="day"?"d":p.type==="month"?"m":"y");if(h.length!==3)return null;const t=h.map(p=>p==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),r=new RegExp(`^${t}\\.?$`).exec(o);if(!r)return null;const n={};return h.forEach((p,v)=>{n[p]=r[v+1]}),k(_(n.y),Number(n.m),Number(n.d))}function C(o){const a=h=>{const t=h.toLowerCase().replace(/\.$/,"");return e.findIndex(n=>n===t||n.slice(0,3)===t||t==="sept"&&n==="september")+1};let d=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(o);return d?a(d[2])?k(Number(d[3]),a(d[2]),Number(d[1])):null:(d=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(o),d&&a(d[1])?k(Number(d[3]),a(d[1]),Number(d[2])):null)}function E(o,a,d){const h=String(o??"").trim().replace(/\s+/g," ");if(!h)return null;const t=d||a&&a.locale||void 0,r={dateStyle:"medium"},n=[()=>O(h,t,r),()=>y(h,t),()=>{const p=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(h);return p?k(Number(p[1]),Number(p[2]),Number(p[3])):null},()=>C(h)];for(const p of n)try{const v=p();if(v)return v}catch{}return null}function g(o){const a=String(o??"").trim(),d=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(a);if(!d)return{date:a,time:null};let h=Number(d[1]);const t=Number(d[2]);if(d[3]){const r=d[3].toLowerCase()==="p";if(h<1||h>12)return{date:a,time:null};h=h%12+(r?12:0)}return h>23||t>59?{date:a,time:null}:{date:a.slice(0,d.index).replace(/[,\s]+$/,""),time:{h,mi:t}}}}),Te("packages/modules/form/controls/date-shared.js",function($,J){"use strict";Object.defineProperty($,"pad",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"echoKey",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"modeOf",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"daysInMonth",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"fieldsOfDate",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"parseValue",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"isoOf",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"displayOf",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"withinRange",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"weekdayName",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"monthTitle",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"yearTitle",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"dispatchChange",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"is12Hour",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"dayPeriods",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"to12Hour",{enumerable:!0,get:function(){return r}}),Object.defineProperty($,"to24Hour",{enumerable:!0,get:function(){return n}}),Object.defineProperty($,"parseDay",{enumerable:!0,get:function(){return p}}),Object.defineProperty($,"dayISO",{enumerable:!0,get:function(){return v}}),Object.defineProperty($,"dayNumber",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"dayNumberOf",{enumerable:!0,get:function(){return m}}),Object.defineProperty($,"dayOfNumber",{enumerable:!0,get:function(){return V}}),Object.defineProperty($,"parseMonth",{enumerable:!0,get:function(){return l}}),Object.defineProperty($,"monthISO",{enumerable:!0,get:function(){return f}}),Object.defineProperty($,"monthIndex",{enumerable:!0,get:function(){return c}}),Object.defineProperty($,"monthOfIndex",{enumerable:!0,get:function(){return s}}),Object.defineProperty($,"isoWeek",{enumerable:!0,get:function(){return i}}),Object.defineProperty($,"focusedNavIndex",{enumerable:!0,get:function(){return u}}),Object.defineProperty($,"restoreNavFocus",{enumerable:!0,get:function(){return j}}),Object.defineProperty($,"afterFocusSettles",{enumerable:!0,get:function(){return F}});const e=J("packages/modules/form/controls/date-parse.js");Object.defineProperty($,"parseTypedDate",{enumerable:!0,get:function(){return e.parseTypedDate}}),Object.defineProperty($,"splitTypedTime",{enumerable:!0,get:function(){return e.splitTypedTime}});function R(M){return String(M).padStart(2,"0")}function k(M){return M}function re(M){return M.mode==="date-time"||M.mode==="time"?M.mode:"date"}function _(M,D){return new Date(M,D,0).getDate()}function P(M,D){if(!(D instanceof Date)||Number.isNaN(D.getTime()))return null;const Q={y:D.getFullYear(),mo:D.getMonth()+1,d:D.getDate(),h:D.getHours(),mi:D.getMinutes()},Z=M.timeZone;if(!Z)return Q;try{const ae=new Intl.DateTimeFormat("en-US",{timeZone:Z,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(D),Y={y:0,mo:1,d:1,h:0,mi:0};for(const ee of ae)ee.type==="year"?Y.y=Number(ee.value):ee.type==="month"?Y.mo=Number(ee.value):ee.type==="day"?Y.d=Number(ee.value):ee.type==="hour"?Y.h=Number(ee.value)%24:ee.type==="minute"&&(Y.mi=Number(ee.value));return Y}catch{return Q}}function O(M,D){if(D==null||D==="")return null;if(typeof D=="number")return P(M,new Date(D));if(D instanceof Date)return P(M,D);if(typeof D=="string"){const Q=D.trim();if(re(M)==="time"){const ae=/^(\d{1,2}):(\d{2})/.exec(Q);return ae?{y:null,mo:null,d:null,h:Number(ae[1]),mi:Number(ae[2])}:null}const Z=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(Q);return Z?{y:Number(Z[1]),mo:Number(Z[2]),d:Number(Z[3]),h:Z[4]!=null?Number(Z[4]):0,mi:Z[5]!=null?Number(Z[5]):0}:null}return null}function y(M,D){if(!D)return null;if(re(M)==="time")return`${R(D.h)}:${R(D.mi)}`;const Q=`${R(D.y)}-${R(D.mo)}-${R(D.d)}`;return re(M)==="date"?Q:`${Q}T${R(D.h)}:${R(D.mi)}`}function C(M,D){if(!D)return"";const Q=re(M);if(Q==="time")return`${R(D.h)}:${R(D.mi)}`;const Z=M.locale||void 0,ae={dateStyle:"medium"};return Q==="date-time"&&(ae.timeStyle="short"),new Intl.DateTimeFormat(Z,ae).format(new Date(D.y,D.mo-1,D.d,D.h,D.mi))}function E(M,D){return D==null?!0:!(M.min!=null&&D<String(M.min)||M.max!=null&&D>String(M.max))}function g(M,D){return new Intl.DateTimeFormat(M.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+D))}function o(M,D){return new Intl.DateTimeFormat(M.locale||void 0,{month:"long",year:"numeric"}).format(new Date(D.y,D.mo-1,1))}function a(M){return String(M.y)}function d(M){const D=M.ownerDocument&&M.ownerDocument.defaultView,Q=D&&typeof D.Event=="function"?D.Event:null;M.dispatchEvent(Q?new Q("change",{bubbles:!0}):{type:"change",bubbles:!0})}function h(M){try{const D=new Intl.DateTimeFormat(M.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return D==="h11"||D==="h12"}catch{return!1}}function t(M){try{const D=new Intl.DateTimeFormat(M.locale||void 0,{hour:"numeric",hour12:!0}),Q=D.formatToParts(new Date(2021,0,1,9)).find(ae=>ae.type==="dayPeriod"),Z=D.formatToParts(new Date(2021,0,1,15)).find(ae=>ae.type==="dayPeriod");if(Q&&Z)return{am:Q.value,pm:Z.value}}catch{}return null}function r(M){const D=M%12;return D===0?12:D}function n(M,D){return D?M===12?12:M+12:M===12?0:M}function p(M){if(typeof M!="string")return null;const D=/^(\d{4})-(\d{2})-(\d{2})$/.exec(M.trim());if(!D)return null;const Q={y:Number(D[1]),mo:Number(D[2]),d:Number(D[3])};return Q.mo<1||Q.mo>12||Q.d<1||Q.d>_(Q.y,Q.mo)?null:Q}function v(M,D,Q){return`${R(M)}-${R(D)}-${R(Q)}`}function b(M,D,Q){return Date.UTC(M,D-1,Q)/864e5}function m(M){const D=p(M);return D?b(D.y,D.mo,D.d):NaN}function V(M){const D=new Date(M*864e5);return{y:D.getUTCFullYear(),mo:D.getUTCMonth()+1,d:D.getUTCDate()}}function l(M){if(typeof M!="string")return null;const D=/^(\d{4})-(\d{2})$/.exec(M.trim());if(!D)return null;const Q={y:Number(D[1]),mo:Number(D[2])};return Q.mo<1||Q.mo>12?null:Q}function f(M,D){return`${R(M)}-${R(D)}`}function c(M,D){return M*12+(D-1)}function s(M){return{y:Math.floor(M/12),mo:M%12+1}}function i(M,D,Q){const Z=new Date(Date.UTC(M,D-1,Q)),ae=Z.getUTCDay()||7;Z.setUTCDate(Z.getUTCDate()+4-ae);const Y=new Date(Date.UTC(Z.getUTCFullYear(),0,1));return Math.ceil(((Z-Y)/864e5+1)/7)}function u(M,D){const Q=M.ownerDocument,Z=Q?Q.activeElement:null;return!Z||typeof M.contains!="function"||!M.contains(Z)?-1:Array.prototype.indexOf.call(M.querySelectorAll(`.${D}`),Z)}function j(M,D,Q){if(Q<0)return;const Z=M.querySelectorAll(`.${D}`)[Q];Z&&typeof Z.focus=="function"&&Z.focus()}function F(M,D){const Q=M&&M.defaultView;(Q&&typeof Q.setTimeout=="function"?Q.setTimeout.bind(Q):setTimeout)(D,0)}}),Te("packages/modules/form/controls/date-typed.js",function($,J){"use strict";Object.defineProperty($,"setTypedError",{enumerable:!0,get:function(){return e}});function e(R,k){let re=R.__typedError;if(k==null){re&&(re.hidden=!0),R.__input&&R.__input.removeAttribute("aria-invalid");return}re||(re=R.ownerDocument.createElement("div"),re.className="lat-form__error lat-form__typed-error",re.setAttribute("role","alert"),R.__typedError=re,R.appendChild(re)),re.textContent=k,re.hidden=!1,R.__input&&R.__input.setAttribute("aria-invalid","true")}}),Te("packages/modules/form/controls/datepicker-draft.js",function($,J){"use strict";Object.defineProperty($,"isDraftMode",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"getDraft",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"readDraftClock",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"pickDraftDay",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"commitDraft",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"dropDraft",{enumerable:!0,get:function(){return g}});const e=J("packages/modules/form/controls/date-shared.js"),R=e.modeOf,k=e.displayOf,re=e.to24Hour,_=e.isoOf;function P(o){return R(o.__item)==="date-time"}function O(o){if(!o.__draft){const a=o.__fields;o.__draft=a?{y:a.y,mo:a.mo,d:a.d,h:a.h,mi:a.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return o.__draft}function y(o){const a=O(o);if(!o.__hour)return;let d=Number(o.__hour.value)||0;const h=o.__minute&&Number(o.__minute.value)||0;o.__ampm&&(d=re(d,o.__pm===!0)),a.h=d,a.mi=h}function C(o,a,d,h,t){y(o);const r=O(o);r.y=a,r.mo=d,r.d=h,o.__cursor=h,o.__input.value=k(o.__item,r),t(o)}function E(o,a){y(o);const d=O(o);if(d.d==null)return;const h={y:d.y,mo:d.mo,d:d.d,h:d.h,mi:d.mi};_(o.__item,h)!==_(o.__item,o.__fields)&&a(o,h)}function g(o){const a=o.__draft;o.__draft=null,a&&a.d!=null&&P(o)&&(o.__input.value=k(o.__item,o.__fields))}}),Te("packages/modules/form/controls/datepicker.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/controls/field-icon.js"),re=k.makeFieldIcon,_=k.injectFieldIconStyles,P=J("packages/modules/form/controls/date-shared.js"),O=P.pad,y=P.echoKey,C=P.modeOf,E=P.daysInMonth,g=P.parseValue,o=P.isoOf,a=P.displayOf,d=P.withinRange,h=P.weekdayName,t=P.monthTitle,r=P.dispatchChange,n=P.is12Hour,p=P.dayPeriods,v=P.to12Hour,b=P.to24Hour,m=P.focusedNavIndex,V=P.restoreNavFocus,l=P.afterFocusSettles,f=P.parseTypedDate,c=P.splitTypedTime,i=J("packages/modules/form/controls/date-typed.js").setTypedError,j=J("packages/modules/form/controls/popup-layer.js").openInLayer,F=J("packages/modules/form/controls/datepicker-draft.js"),M=F.isDraftMode,D=F.getDraft,Q=F.pickDraftDay,Z=F.readDraftClock,ae=F.commitDraft,Y=F.dropDraft,ee=Object.freeze(["date","date-time","time"]),ze="lat-form__datepicker-popup--above";function Ce(N,K){N.__fields=K,N.__input.value=a(N.__item,K),r(N)}function me(N,K){const oe=N.__item;if(C(oe)==="time")return g(oe,K);const{date:z,time:T}=c(K),L=f(z,oe);if(!L)return null;const[A,H,X]=L.split("-").map(Number),ie=N.__fields,de=T||(C(oe)==="date-time"&&ie?{h:ie.h,mi:ie.mi}:{h:0,mi:0});return{y:A,mo:H,d:X,h:de.h,mi:de.mi}}function S(N,K){let{y:oe,mo:z}=N.__view,T=N.__cursor+K;for(;T<1;)z-=1,z<1&&(z=12,oe-=1),T+=E(oe,z);let L=E(oe,z);for(;T>L;)T-=L,z+=1,z>12&&(z=1,oe+=1),L=E(oe,z);N.__view={y:oe,mo:z},N.__cursor=T,I(N)}function I(N){const K=N.__item,oe=N.ownerDocument,z=N.__popup,T=N.__view,L=C(K),A=N.__fields,H=m(z,"lat-form__datepicker-nav"),X=m(z,"lat-form__datepicker-day");for(;z.firstChild;)z.removeChild(z.firstChild);if(L!=="time"){const ie=oe.createElement("div");ie.className="lat-form__datepicker-head";const de=oe.createElement("button");de.type="button",de.className="lat-form__datepicker-nav",de.setAttribute("aria-label",N.__t("form.datepicker.prev")),de.textContent="‹",de.addEventListener("click",()=>{U(N,-1)});const ke=oe.createElement("span");ke.className="lat-form__datepicker-title",ke.textContent=t(K,T);const _e=oe.createElement("button");_e.type="button",_e.className="lat-form__datepicker-nav",_e.setAttribute("aria-label",N.__t("form.datepicker.next")),_e.textContent="›",_e.addEventListener("click",()=>{U(N,1)}),ie.appendChild(de),ie.appendChild(ke),ie.appendChild(_e),z.appendChild(ie);const Me=oe.createElement("div");Me.className="lat-form__datepicker-weekdays";for(let te=0;te<7;te+=1){const fe=oe.createElement("span");fe.textContent=h(K,te),Me.appendChild(fe)}z.appendChild(Me);const Se=oe.createElement("div");Se.className="lat-form__datepicker-grid",Se.setAttribute("role","grid"),Se.tabIndex=0,N.__grid=Se;const Oe=new Date(T.y,T.mo-1,1).getDay();for(let te=0;te<Oe;te+=1){const fe=oe.createElement("span");fe.className="lat-form__datepicker-blank",Se.appendChild(fe)}const x=E(T.y,T.mo);for(let te=1;te<=x;te+=1){const fe=oe.createElement("button");fe.type="button",fe.className="lat-form__datepicker-day",fe.setAttribute("role","gridcell"),fe.textContent=String(te);const G=o(K,{y:T.y,mo:T.mo,d:te,h:0,mi:0});d(K,G)||(fe.disabled=!0),A&&A.y===T.y&&A.mo===T.mo&&A.d===te&&fe.classList.add("is-selected"),N.__cursor===te&&fe.classList.add("is-focus"),fe.addEventListener("click",()=>{if(M(N)){Q(N,T.y,T.mo,te,I);return}const ue={y:T.y,mo:T.mo,d:te,h:A?A.h:0,mi:A?A.mi:0};L==="date"?(N.__cursor=te,Ce(N,ue),se(N)):(N.__cursor=te,N.__fields=ue,I(N))}),Se.appendChild(fe)}z.appendChild(Se),Se.addEventListener("keydown",te=>{te.key==="ArrowLeft"?(te.preventDefault(),S(N,-1)):te.key==="ArrowRight"?(te.preventDefault(),S(N,1)):te.key==="ArrowUp"?(te.preventDefault(),S(N,-7)):te.key==="ArrowDown"?(te.preventDefault(),S(N,7)):te.key==="Home"?(te.preventDefault(),N.__cursor=1,I(N)):te.key==="End"?(te.preventDefault(),N.__cursor=E(T.y,T.mo),I(N)):(te.key==="Enter"||te.key===" ")&&(te.preventDefault(),q(N))})}if(L!=="date"){const ie=n(K)?p(K):null,de=!!ie,ke=oe.createElement("div");ke.className="lat-form__datepicker-time";const _e=oe.createElement("input");_e.type="number",_e.className="lat-form__datepicker-hour",_e.min=de?"1":"0",_e.max=de?"12":"23",_e.step="1",_e.setAttribute("aria-label",N.__t("form.datepicker.hour"));const Me=oe.createElement("span");Me.textContent=":";const Se=oe.createElement("input");if(Se.type="number",Se.className="lat-form__datepicker-minute",Se.min="0",Se.max="59",Se.step="1",Se.setAttribute("aria-label",N.__t("form.datepicker.minute")),ke.appendChild(_e),ke.appendChild(Me),ke.appendChild(Se),z.appendChild(ke),N.__hour=_e,N.__minute=Se,_e.addEventListener("change",()=>{w(N)}),Se.addEventListener("change",()=>{w(N)}),M(N)&&D(N),N.__periods=ie,N.__ampm=null,de){const x=oe.createElement("button");x.type="button",x.className="lat-form__datepicker-ampm",N.__ampm=x;const te=()=>{N.__pm=!N.__pm,x.textContent=N.__pm?N.__periods.pm:N.__periods.am,w(N)};x.addEventListener("click",te),ke.appendChild(x)}const Oe=oe.createElement("button");Oe.type="button",Oe.className="lat-form__datepicker-done",Oe.textContent=N.__t("form.datepicker.done"),Oe.addEventListener("click",()=>{B(N)}),ke.appendChild(Oe)}W(N),V(z,"lat-form__datepicker-nav",H),V(z,"lat-form__datepicker-day",X)}function U(N,K){let{y:oe,mo:z}=N.__view;z+=K,z<1&&(z=12,oe-=1),z>12&&(z=1,oe+=1),N.__view={y:oe,mo:z},N.__cursor=Math.min(N.__cursor,E(oe,z)),I(N)}function w(N){if(M(N)){Z(N),W(N);return}const K=N.__fields;let oe=N.__hour&&Number(N.__hour.value)||0;const z=N.__minute&&Number(N.__minute.value)||0;N.__ampm&&(oe=b(oe,N.__pm===!0));const T=C(N.__item)==="time"?{y:null,mo:null,d:null,h:oe,mi:z}:{y:K?K.y:N.__view.y,mo:K?K.mo:N.__view.mo,d:K?K.d:N.__cursor,h:oe,mi:z};N.__cursor=K?K.d:N.__cursor,Ce(N,T),W(N)}function B(N){N.__popup.hidden||(M(N)?ae(N,Ce):C(N.__item)!=="date"&&w(N),se(N))}function W(N){const K=M(N)?D(N):N.__fields,oe=N.__ampm&&N.__periods;if(N.__hour){const z=K?K.h:0;N.__hour.value=O(oe?v(z):z)}N.__minute&&(N.__minute.value=O(K?K.mi:0)),N.__ampm&&N.__periods&&(N.__pm=K?K.h>=12:!1,N.__ampm.textContent=N.__pm?N.__periods.pm:N.__periods.am)}function q(N){const K=N.__view;if(M(N)){Q(N,K.y,K.mo,N.__cursor,I);return}const oe=N.__fields,z={y:K.y,mo:K.mo,d:N.__cursor,h:oe?oe.h:0,mi:oe?oe.mi:0};Ce(N,z),se(N)}function ne(N){if(N.__popup.hidden===!1||N.__item.disabled===!0||N.__item.readOnly===!0)return;const K=N.__fields,oe=new Date;N.__view=K&&K.y!=null?{y:K.y,mo:K.mo}:{y:oe.getFullYear(),mo:oe.getMonth()+1},N.__cursor=K&&K.d!=null?K.d:oe.getDate(),N.__popup.hidden=!1,I(N),N.__layer=j(N.__popup,N,{aboveClass:ze,matchWidth:!1,onOffscreen:()=>se(N)})}function se(N){Y(N),N.__popup.hidden=!0,N.__popup.classList.remove(ze),N.__layer&&(N.__layer.close(),N.__layer=null)}R("datepicker",{kind:"field",build(N,K){const oe=K.doc;_(oe);const z=oe.createElement("div");z.className="lat-form__datepicker",z.__item=N,z.__t=K.t||y,z.__mode=C(N),z.__fields=g(N,N.value),z.__cursor=z.__fields&&z.__fields.d!=null?z.__fields.d:new Date().getDate(),z.__view=z.__fields&&z.__fields.y!=null?{y:z.__fields.y,mo:z.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const T=oe.createElement("input");T.type="text",T.className="lat-form__datepicker-input",N.name&&(T.name=N.name),N.placeholder!=null&&(T.placeholder=String(N.placeholder)),N.label!=null&&N.label!==""&&T.setAttribute("aria-label",String(N.label)),T.setAttribute("autocomplete","off"),T.value=a(N,z.__fields),z.__input=T;const L=oe.createElement("button");L.type="button",L.className="lat-form__datepicker-toggle";const A=C(N)==="date";L.setAttribute("aria-label",z.__t(A?"form.datepicker.open":"form.datepicker.openTime"));const H=re(oe,A?"calendar":"clock");H&&L.appendChild(H),z.__toggle=L;const X=oe.createElement("div");X.className="lat-form__datepicker-popup lat-form__datepicker",X.hidden=!0,z.__popup=X,z.appendChild(T),z.appendChild(L),z.appendChild(X),T.addEventListener("focus",()=>{ne(z)}),L.addEventListener("click",()=>{ne(z)}),T.addEventListener("change",_e=>{const Me=T.value;if(String(Me).trim()===""){T.value=a(N,z.__fields);return}const Se=o(N,z.__fields),Oe=me(z,Me);if(!Oe){_e.stopPropagation(),T.value=a(N,z.__fields),i(z,z.__t("form.datepicker.invalid"));return}i(z,null),z.__fields=Oe,z.__draft=null,T.value=a(N,Oe),z.__hour&&W(z),o(N,Oe)===Se&&_e.stopPropagation()}),T.addEventListener("keydown",_e=>{_e.key==="Escape"&&se(z)}),z.__ampm=null,z.__periods=null,z.__pm=!1;const ie=_e=>{z.contains(_e.target)||X.contains(_e.target)||B(z)},de=_e=>{if((z.contains(_e.target)||X.contains(_e.target))&&!(_e.relatedTarget&&(z.contains(_e.relatedTarget)||X.contains(_e.relatedTarget)))){if(!_e.relatedTarget){l(oe,()=>{if(X.hidden)return;const Se=oe.activeElement;Se&&(z.contains(Se)||X.contains(Se))||B(z)});return}B(z)}},ke=_e=>{_e.key==="Escape"&&(_e.preventDefault(),B(z),z.__toggle.focus())};return oe.addEventListener("pointerdown",ie),oe.addEventListener("focusout",de),X.addEventListener("keydown",ke),Array.isArray(K.disposers)&&K.disposers.push(()=>{se(z),oe.removeEventListener("pointerdown",ie),oe.removeEventListener("focusout",de),X.removeEventListener("keydown",ke)}),z},read(N){return o(N.__item,N.__fields)},write(N,K){i(N,null),N.__fields=g(N.__item,K),N.__draft=null,N.__input.value=a(N.__item,N.__fields),N.__fields&&N.__fields.y!=null&&(N.__view={y:N.__fields.y,mo:N.__fields.mo},N.__cursor=N.__fields.d),N.__hour&&!N.__popup.hidden&&W(N)},state(N,K){N.__input.disabled=K.disabled===!0,N.__input.readOnly=K.readOnly===!0,N.__toggle.disabled=K.disabled===!0||K.readOnly===!0},validate(N,K,oe){return d(K,oe)?!0:typeof K.errorMessage=="string"&&K.errorMessage!==""?K.errorMessage:!1},focus(N){N.__input.focus()}})}),Te("packages/modules/form/controls/daterange.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/controls/field-icon.js"),re=k.makeFieldIcon,_=k.injectFieldIconStyles,P=J("packages/modules/form/controls/date-shared.js"),O=P.echoKey,y=P.daysInMonth,C=P.weekdayName,E=P.monthTitle,g=P.yearTitle,o=P.dispatchChange,a=P.parseDay,d=P.dayISO,h=P.dayNumber,t=P.dayNumberOf,r=P.dayOfNumber,n=P.parseMonth,p=P.monthISO,v=P.monthIndex,b=P.monthOfIndex,m=P.isoWeek,V=P.focusedNavIndex,l=P.restoreNavFocus,f=P.afterFocusSettles,c=P.parseTypedDate,i=J("packages/modules/form/controls/date-typed.js").setTypedError,u=" – ";function j(x){return x.props&&x.props.granularity==="month"?"month":"day"}function F(x){return x.props&&typeof x.props=="object"?x.props:{}}function M(x){return F(x).applyButton!==!1}function D(x){return F(x).weekNumbers===!0}function Q(x){return F(x).clearable===!0}function Z(x){const te=F(x).firstDay;if(te!=null){const fe=Number(te);if(Number.isFinite(fe))return(fe%7+7)%7}try{const fe=new Intl.Locale(x.locale||void 0).weekInfo;if(fe&&fe.firstDay)return fe.firstDay%7}catch{}return 0}function ae(x){const te=F(x).disabledDates;if(Array.isArray(te)){const fe=new Set(te.map(String));return G=>fe.has(G)}return typeof te=="function"?fe=>te(fe)===!0:null}function Y(x,te){return x.min!=null&&te<String(x.min)||x.max!=null&&te>String(x.max)}function ee(x,te,fe){return!!(Y(x,te)||fe&&fe(te))}function ze(x,te,fe){if(x==null||te==null)return null;if(fe==="month"){const we=n(x),ge=n(te);return!we||!ge?null:v(ge.y,ge.mo)-v(we.y,we.mo)}const G=t(x),ue=t(te);return Number.isNaN(G)||Number.isNaN(ue)?null:ue-G}function Ce(x,te){return j(x)==="month"?te("form.daterange.months"):te("form.daterange.days")}function me(x,te){if(j(x)==="month")return[{label:te("form.daterange.monthThisMonth"),range:G=>[p(G.getFullYear(),G.getMonth()+1),p(G.getFullYear(),G.getMonth()+1)]},{label:te("form.daterange.monthLastMonth"),range:G=>{const ue=b(v(G.getFullYear(),G.getMonth()+1)-1);return[p(ue.y,ue.mo),p(ue.y,ue.mo)]}},{label:te("form.daterange.monthLast3"),range:G=>{const ue=v(G.getFullYear(),G.getMonth()+1),we=b(ue-2),ge=b(ue);return[p(we.y,we.mo),p(ge.y,ge.mo)]}},{label:te("form.daterange.monthLast6"),range:G=>{const ue=v(G.getFullYear(),G.getMonth()+1),we=b(ue-5),ge=b(ue);return[p(we.y,we.mo),p(ge.y,ge.mo)]}},{label:te("form.daterange.monthLast12"),range:G=>{const ue=v(G.getFullYear(),G.getMonth()+1),we=b(ue-11),ge=b(ue);return[p(we.y,we.mo),p(ge.y,ge.mo)]}},{label:te("form.daterange.monthThisYear"),range:G=>[p(G.getFullYear(),1),p(G.getFullYear(),12)]},{label:te("form.daterange.monthLastYear"),range:G=>[p(G.getFullYear()-1,1),p(G.getFullYear()-1,12)]}];const fe=G=>d(G.getFullYear(),G.getMonth()+1,G.getDate());return[{label:te("form.daterange.today"),range:G=>[fe(G),fe(G)]},{label:te("form.daterange.yesterday"),range:G=>{const ue=r(h(G.getFullYear(),G.getMonth()+1,G.getDate())-1);return[d(ue.y,ue.mo,ue.d),d(ue.y,ue.mo,ue.d)]}},{label:te("form.daterange.last7"),range:G=>{const ue=h(G.getFullYear(),G.getMonth()+1,G.getDate()),we=r(ue-6);return[d(we.y,we.mo,we.d),fe(G)]}},{label:te("form.daterange.last30"),range:G=>{const ue=h(G.getFullYear(),G.getMonth()+1,G.getDate()),we=r(ue-29);return[d(we.y,we.mo,we.d),fe(G)]}},{label:te("form.daterange.thisMonth"),range:G=>[d(G.getFullYear(),G.getMonth()+1,1),d(G.getFullYear(),G.getMonth()+1,y(G.getFullYear(),G.getMonth()+1))]},{label:te("form.daterange.lastMonth"),range:G=>{const ue=b(v(G.getFullYear(),G.getMonth()+1)-1);return[d(ue.y,ue.mo,1),d(ue.y,ue.mo,y(ue.y,ue.mo))]}}]}function S(x,te){const fe=F(x).presets;return fe===!1?null:Array.isArray(fe)&&fe.length?fe.map(G=>({label:G&&G.label!=null?String(G.label):"",range:G&&G.range!=null?G.range:["",""]})):me(x,te)}function I(x,te){return x==null&&te==null?"":te==null?`${x}${u}`:`${x}${u}${te}`}function U(x,te){const fe=String(te??"").trim();if(!fe)return{start:null,end:null};if(j(x)!=="month"){const Ie=fe.split(/\s+[–—-]\s+|\s+to\s+/i).map(Le=>c(Le,x));if(Ie.length<=2&&Ie.every(Le=>Le)){const[Le,$e=null]=Ie;return $e&&Le>$e?{start:$e,end:Le}:{start:Le,end:$e}}}const G=j(x)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,ue=[];let we;for(;(we=G.exec(fe))!==null;)ue.push(we[1]);if(ue.length===0)return null;const ge=ue[0],xe=ue.length>1?ue[ue.length-1]:null;if(j(x)==="month"){if(!n(ge)||xe&&!n(xe))return null}else if(!a(ge)||xe&&!a(xe))return null;return xe&&ge>xe?{start:xe,end:ge}:{start:ge,end:xe}}function w(x,te){return new Intl.DateTimeFormat(x.locale||void 0,{month:"short"}).format(new Date(2021,te-1,1))}function B(x){const te=x.__draftStart,fe=x.__draftEnd;return te!=null&&fe!=null?[te,fe]:te!=null&&x.__hover!=null&&x.__granularity==="day"?[te,x.__hover]:te!=null&&x.__hover!=null&&x.__granularity==="month"?[te,x.__hover]:null}function W(x,te){return x>=te[0]&&x<=te[1]}function q(x,te){if(x.__granularity==="month"){const ue=v(x.__cursor.y,x.__cursor.mo)+te,we=b(ue);x.__cursor=we,ne(x),_e(x);return}const fe=h(x.__cursor.y,x.__cursor.mo,x.__cursor.d)+te,G=r(fe);x.__cursor=G,ne(x),_e(x)}function ne(x){if(x.__granularity==="month"){x.__cursor.y<x.__view.y?x.__view={y:x.__cursor.y}:x.__cursor.y>x.__view.y+1&&(x.__view={y:x.__cursor.y-1});return}const fe=v(x.__cursor.y,x.__cursor.mo),G=v(x.__view.y,x.__view.mo);fe<G?x.__view={y:x.__cursor.y,mo:x.__cursor.mo}:fe>G+1&&(x.__view=b(fe-1))}function se(x,te){if(x.__granularity==="month"){x.__view={y:x.__view.y+te},_e(x);return}const fe=v(x.__view.y,x.__view.mo)+te,G=b(fe);x.__view=G,_e(x)}function N(x,te){return x&&te&&x.y===te.y&&x.mo===te.mo&&(x.d==null||x.d===te.d)}function K(x,te){return x.__granularity==="month"?p(te.y,te.mo):d(te.y,te.mo,te.d)}function oe(x,te){const fe=K(x,te);x.__phase!=="started"?(x.__draftStart=fe,x.__draftEnd=null,x.__phase="started"):fe<x.__draftStart?(x.__draftStart=fe,x.__draftEnd=null):(x.__draftEnd=fe,x.__phase="idle",M(x.__item)||z(x,!0)),x.__cursor=te,x.__hover=null,_e(x)}function z(x,te){x.__start=x.__draftStart,x.__end=x.__draftEnd,x.__phase="idle",x.__input.value=I(x.__start,x.__end),o(x),te&&Oe(x)}function T(x){x.__draftStart=x.__start,x.__draftEnd=x.__end,x.__phase="idle",x.__hover=null,Oe(x)}function L(x){x.__start=null,x.__end=null,x.__draftStart=null,x.__draftEnd=null,x.__phase="idle",x.__input.value="",o(x)}function A(x,te,fe){for(;fe.firstChild;)fe.removeChild(fe.firstChild);const G=ae(x.__item);if(x.__granularity==="month")de(x,te,fe,x.__view.y,G),de(x,te,fe,x.__view.y+1,G);else{H(x,te,fe,x.__view.y,x.__view.mo,G);const ue=b(v(x.__view.y,x.__view.mo)+1);H(x,te,fe,ue.y,ue.mo,G)}}function H(x,te,fe,G,ue,we){const ge=x.__item,xe=te.createElement("div");xe.className="lat-form__daterange-panel";const Ie=te.createElement("div");Ie.className="lat-form__daterange-title",Ie.textContent=E(ge,{y:G,mo:ue}),xe.appendChild(Ie);const Le=Z(ge),$e=D(ge),Be=te.createElement("div");if(Be.className=$e?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",$e){const pe=te.createElement("span");pe.className="lat-form__daterange-weeknum-head",Be.appendChild(pe)}for(let pe=0;pe<7;pe+=1){const Pe=te.createElement("span");Pe.textContent=C(ge,(Le+pe)%7),Be.appendChild(Pe)}xe.appendChild(Be);const ye=te.createElement("div");ye.className=$e?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",ye.setAttribute("role","grid"),ye.setAttribute("aria-label",E(ge,{y:G,mo:ue})),ye.tabIndex=0,xe.appendChild(ye);const je=(new Date(G,ue-1,1).getDay()-Le+7)%7,We=y(G,ue),Ke=h(G,ue,1)-je,Ge=[];for(let pe=0;pe<je;pe+=1){$e&&pe%7===0&&ye.appendChild(X(x,te,Ke));const Pe=te.createElement("span");Pe.className="lat-form__daterange-blank",ye.appendChild(Pe)}for(let pe=1;pe<=We;pe+=1){$e&&(je+pe-1)%7===0&&ye.appendChild(X(x,te,Ke+(je+pe-1)));const Pe=ie(x,te,G,ue,pe,we);Ge.push(Pe),ye.appendChild(Pe)}ke(x,ye,Ge),fe.appendChild(xe)}function X(x,te,fe){const G=te.createElement("span");G.className="lat-form__daterange-weeknum";const ue=new Date(fe*864e5),we=fe-(ue.getUTCDay()+6)%7,ge=new Date(we*864e5);return G.textContent=String(m(ge.getUTCFullYear(),ge.getUTCMonth()+1,ge.getUTCDate())),G}function ie(x,te,fe,G,ue,we){const ge=d(fe,G,ue),xe=te.createElement("button");xe.type="button",xe.className="lat-form__daterange-day",xe.setAttribute("role","gridcell"),xe.textContent=String(ue);const Ie=B(x),Le=Ie?W(ge,Ie):!1,$e=ee(x.__item,ge,we);return $e&&(xe.disabled=!0),Le&&xe.classList.add("is-in-range"),x.__draftStart===ge&&xe.classList.add("is-start"),x.__draftEnd===ge&&xe.classList.add("is-end"),xe.setAttribute("aria-selected",Le&&!$e?"true":"false"),x.__cursor&&x.__cursor.y===fe&&x.__cursor.mo===G&&x.__cursor.d===ue&&xe.classList.add("is-focus"),xe.addEventListener("click",()=>{oe(x,{y:fe,mo:G,d:ue})}),xe.addEventListener("mouseover",()=>{x.__draftStart!=null&&x.__draftEnd==null&&!$e&&x.__hover!==ge&&(x.__hover=ge,_e(x))}),xe}function de(x,te,fe,G,ue){const we=x.__item,ge=te.createElement("div");ge.className="lat-form__daterange-panel";const xe=te.createElement("div");xe.className="lat-form__daterange-title",xe.textContent=g({y:G}),ge.appendChild(xe);const Ie=te.createElement("div");Ie.className="lat-form__daterange-grid lat-form__daterange-grid--months",Ie.setAttribute("role","grid"),Ie.setAttribute("aria-label",g({y:G})),ge.appendChild(Ie);const Le=[];for(let $e=1;$e<=12;$e+=1){const Be=p(G,$e),ye=te.createElement("button");ye.type="button",ye.className="lat-form__daterange-month",ye.setAttribute("role","gridcell"),ye.textContent=w(we,$e);const Re=B(x),je=Re?W(Be,Re):!1,We=ee(we,Be,ue);We&&(ye.disabled=!0),je&&ye.classList.add("is-in-range"),x.__draftStart===Be&&ye.classList.add("is-start"),x.__draftEnd===Be&&ye.classList.add("is-end"),ye.setAttribute("aria-selected",je&&!We?"true":"false"),x.__cursor&&x.__cursor.y===G&&x.__cursor.mo===$e&&x.__cursor.d==null&&ye.classList.add("is-focus"),ye.addEventListener("click",()=>{oe(x,{y:G,mo:$e})}),Le.push(ye),Ie.appendChild(ye)}Ie.addEventListener("keydown",$e=>{if($e.key==="ArrowLeft")$e.preventDefault(),q(x,-1);else if($e.key==="ArrowRight")$e.preventDefault(),q(x,1);else if($e.key==="ArrowUp")$e.preventDefault(),q(x,-3);else if($e.key==="ArrowDown")$e.preventDefault(),q(x,3);else if($e.key==="PageUp")$e.preventDefault(),se(x,-1);else if($e.key==="PageDown")$e.preventDefault(),se(x,1);else if($e.key==="Enter"||$e.key===" "){$e.preventDefault();const Be=K(x,x.__cursor);ee(x.__item,Be,ue)||oe(x,x.__cursor)}}),fe.appendChild(ge)}function ke(x,te,fe){te.addEventListener("keydown",G=>{const ue=x.__cursor;if(G.key==="ArrowLeft")G.preventDefault(),q(x,-1);else if(G.key==="ArrowRight")G.preventDefault(),q(x,1);else if(G.key==="ArrowUp")G.preventDefault(),q(x,-7);else if(G.key==="ArrowDown")G.preventDefault(),q(x,7);else if(G.key==="PageUp")G.shiftKey?(G.preventDefault(),se(x,-12)):(G.preventDefault(),se(x,-1));else if(G.key==="PageDown")G.shiftKey?(G.preventDefault(),se(x,12)):(G.preventDefault(),se(x,1));else if((G.key==="Enter"||G.key===" ")&&(G.preventDefault(),ue&&ue.d!=null)){const we=d(ue.y,ue.mo,ue.d);ee(x.__item,we,ae(x.__item))||oe(x,ue)}})}function _e(x){const te=x.ownerDocument,fe=x.__popup,G=x.__item,ue=V(fe,"lat-form__daterange-nav");for(;fe.firstChild;)fe.removeChild(fe.firstChild);const we=te.createElement("div");we.className="lat-form__daterange-head";const ge=te.createElement("button");ge.type="button",ge.className="lat-form__daterange-nav",ge.setAttribute("aria-label",x.__t("form.daterange.prev")),ge.textContent="‹",ge.addEventListener("click",()=>{se(x,-1)});const xe=te.createElement("button");xe.type="button",xe.className="lat-form__daterange-nav",xe.setAttribute("aria-label",x.__t("form.daterange.next")),xe.textContent="›",xe.addEventListener("click",()=>{se(x,1)}),we.appendChild(ge);const Ie=te.createElement("div");Ie.className="lat-form__daterange-body";const Le=S(G,x.__t);if(Le){const Be=te.createElement("div");Be.className="lat-form__daterange-presets";const ye=te.createElement("div");ye.className="lat-form__daterange-presets-title",ye.textContent=x.__t("form.daterange.presets"),Be.appendChild(ye);for(const Re of Le){const je=te.createElement("button");je.type="button",je.className="lat-form__daterange-preset",je.textContent=Re.label,je.addEventListener("click",()=>{Me(x,Re.range)}),Be.appendChild(je)}Ie.appendChild(Be)}const $e=te.createElement("div");if($e.className="lat-form__daterange-panels",A(x,te,$e),Ie.appendChild($e),we.appendChild(Ie),we.appendChild(xe),fe.appendChild(we),M(G)){const Be=te.createElement("div");Be.className="lat-form__daterange-footer";const ye=te.createElement("button");ye.type="button",ye.className="lat-form__daterange-cancel",ye.textContent=x.__t("form.daterange.cancel"),ye.addEventListener("click",()=>{T(x)});const Re=te.createElement("button");Re.type="button",Re.className="lat-form__daterange-apply",Re.textContent=x.__t("form.daterange.apply"),Re.addEventListener("click",()=>{z(x,!0)}),Be.appendChild(ye),Be.appendChild(Re),fe.appendChild(Be)}l(fe,"lat-form__daterange-nav",ue)}function Me(x,te){const fe=typeof te=="function"?te(new Date):te;if(!(!Array.isArray(fe)||fe.length<2)){if(x.__draftStart=fe[0],x.__draftEnd=fe[1],x.__phase="idle",x.__hover=null,x.__granularity==="day"){const G=a(fe[0]);G&&(x.__view={y:G.y,mo:G.mo}),x.__cursor=G||x.__cursor}else{const G=n(fe[0]);G&&(x.__view={y:G.y}),x.__cursor=G||x.__cursor}_e(x)}}function Se(x){if(x.__popup.hidden===!1||x.__item.disabled===!0||x.__item.readOnly===!0)return;x.__draftStart=x.__start,x.__draftEnd=x.__end,x.__phase="idle",x.__hover=null;const te=new Date;if(x.__granularity==="month"){const fe=n(x.__start)||{y:te.getFullYear(),mo:te.getMonth()+1};x.__view={y:fe.y},x.__cursor=fe}else{const fe=a(x.__start)||{y:te.getFullYear(),mo:te.getMonth()+1,d:te.getDate()};x.__view={y:fe.y,mo:fe.mo},x.__cursor=fe}x.__popup.hidden=!1,_e(x)}function Oe(x){x.__popup.hidden=!0}R("daterange",{kind:"field",build(x,te){const fe=te.doc;_(fe);const G=fe.createElement("div");G.className="lat-form__daterange",G.__item=x,G.__t=te.t||O,G.__granularity=j(x),G.__start=null,G.__end=null,G.__draftStart=null,G.__draftEnd=null,G.__hover=null,G.__phase="idle";const ue=typeof x.value=="object"&&x.value!=null?x.value:{};ue&&ue.start!=null&&(G.__start=String(ue.start)),ue&&ue.end!=null&&(G.__end=String(ue.end));const we=fe.createElement("input");we.type="text",we.className="lat-form__daterange-input",x.name&&(we.name=x.name),x.placeholder!=null&&(we.placeholder=String(x.placeholder)),x.label!=null&&x.label!==""&&we.setAttribute("aria-label",String(x.label)),we.setAttribute("autocomplete","off"),we.value=I(G.__start,G.__end),G.__input=we;const ge=fe.createElement("button");ge.type="button",ge.className="lat-form__daterange-toggle",ge.setAttribute("aria-label",G.__t("form.daterange.open"));const xe=re(fe,"calendar");xe&&ge.appendChild(xe),G.__toggle=ge;const Ie=fe.createElement("button");Ie.type="button",Ie.className="lat-form__daterange-clear",Ie.setAttribute("aria-label",G.__t("form.daterange.clear"));const Le=re(fe,"close");Le&&Ie.appendChild(Le),Ie.hidden=!Q(x)||G.__start==null&&G.__end==null,G.__clear=Ie;const $e=fe.createElement("div");$e.className="lat-form__daterange-popup",$e.hidden=!0,G.__popup=$e,G.appendChild(we),G.appendChild(Ie),G.appendChild(ge),G.appendChild($e),we.addEventListener("focus",()=>{Se(G)}),ge.addEventListener("click",()=>{Se(G)}),Ie.addEventListener("click",()=>{L(G)}),we.addEventListener("change",je=>{const We=U(x,we.value);We?(i(G,null),G.__start=We.start,G.__end=We.end,we.value=I(We.start,We.end)):(je.stopPropagation(),we.value=I(G.__start,G.__end),i(G,G.__t("form.datepicker.invalid")))}),we.addEventListener("keydown",je=>{je.key==="Escape"&&(T(G),G.__toggle.focus())});const Be=je=>{G.contains(je.target)||T(G)},ye=je=>{if(!(je.relatedTarget&&G.contains(je.relatedTarget))){if(!je.relatedTarget){f(G.ownerDocument,()=>{if(G.__popup.hidden)return;const We=G.ownerDocument.activeElement;We&&G.contains(We)||T(G)});return}T(G)}},Re=je=>{je.key==="Escape"&&(je.preventDefault(),T(G),G.__toggle.focus())};return fe.addEventListener("pointerdown",Be),G.addEventListener("focusout",ye),$e.addEventListener("keydown",Re),Array.isArray(te.disposers)&&te.disposers.push(()=>{fe.removeEventListener("pointerdown",Be),G.removeEventListener("focusout",ye),$e.removeEventListener("keydown",Re)}),G},read(x){return{start:x.__start,end:x.__end}},write(x,te){i(x,null);const fe=te&&typeof te=="object"?te:{};x.__start=fe.start!=null?String(fe.start):null,x.__end=fe.end!=null?String(fe.end):null,x.__input.value=I(x.__start,x.__end),x.__clear&&(x.__clear.hidden=!Q(x.__item)||x.__start==null&&x.__end==null)},state(x,te){x.__input.disabled=te.disabled===!0,x.__input.readOnly=te.readOnly===!0,x.__toggle.disabled=te.disabled===!0||te.readOnly===!0},validate(x,te,fe){const G=fe&&typeof fe=="object"?fe:{start:null,end:null},ue=G.start!=null?String(G.start):null,we=G.end!=null?String(G.end):null,ge=x.__t;if(te.required===!0&&ue==null&&we==null)return ge("form.validation.required");if(ue==null&&we==null)return!0;if(ue==null||we==null)return ge("form.daterange.invalid");if(Y(te,ue)||Y(te,we))return ge("form.daterange.bounds");const xe=ze(ue,we,x.__granularity);if(xe==null)return ge("form.daterange.invalid");const Ie=F(te).minSpan,Le=F(te).maxSpan;return Ie!=null&&xe<Number(Ie)?ge("form.daterange.minSpan",{min:String(Ie),unit:Ce(te,ge)}):Le!=null&&xe>Number(Le)?ge("form.daterange.maxSpan",{max:String(Le),unit:Ce(te,ge)}):!0},focus(x){x.__input.focus()}})}),Te("packages/modules/form/controls/file.js",function($,J){"use strict";Object.defineProperty($,"formatSize",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"accepts",{enumerable:!0,get:function(){return g}});const R=J("packages/modules/form/controls/registry.js").registerControl,k="lat-uploader",re="http://www.w3.org/2000/svg",_="data-lattice-uploader-styles";function P(){return`
1589
+ .${k}{
1570
1590
  --lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
1571
1591
  --lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
1572
1592
  --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #b45309));
1573
1593
  --lat-up-warning-soft:color-mix(in srgb, var(--lat-up-warning) 12%, var(--lattice-background));
1574
1594
  display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2);min-width:0;
1575
1595
  }
1576
- @scope ([data-theme="dark"]){ .${x}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } }
1577
- @media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${x}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } } }
1596
+ @scope ([data-theme="dark"]){ .${k}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } }
1597
+ @media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${k}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } } }
1578
1598
 
1579
- .${x} input.${x}__input{
1599
+ .${k} input.${k}__input{
1580
1600
  position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;
1581
1601
  margin:0;padding:0;border:0;clip:rect(0 0 0 0);
1582
1602
  }
1583
1603
 
1584
- .${x}__zone{
1604
+ .${k}__zone{
1585
1605
  display:flex;flex-direction:column;align-items:center;justify-content:center;
1586
1606
  gap:calc(var(--lattice-space)/2);box-sizing:border-box;min-width:0;
1587
1607
  min-height:calc(140px * var(--lattice-scale));
@@ -1594,106 +1614,106 @@ ${s}
1594
1614
  background-color var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease),
1595
1615
  box-shadow var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease);
1596
1616
  }
1597
- .${x}__zone:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-2px; }
1598
- .${x}__zone[hidden]{ display:none; }
1617
+ .${k}__zone:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-2px; }
1618
+ .${k}__zone[hidden]{ display:none; }
1599
1619
 
1600
- .${x}__icon{ width:calc(28px * var(--lattice-scale)); height:calc(28px * var(--lattice-scale)); flex:0 0 auto; color:var(--lattice-accent); }
1601
- .${x}__title{ display:flex; align-items:baseline; justify-content:center; gap:0.2em; flex-wrap:wrap; color:var(--lattice-foreground); font-weight:600; }
1602
- .${x} button.${x}__browse{
1620
+ .${k}__icon{ width:calc(28px * var(--lattice-scale)); height:calc(28px * var(--lattice-scale)); flex:0 0 auto; color:var(--lattice-accent); }
1621
+ .${k}__title{ display:flex; align-items:baseline; justify-content:center; gap:0.2em; flex-wrap:wrap; color:var(--lattice-foreground); font-weight:600; }
1622
+ .${k} button.${k}__browse{
1603
1623
  box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;
1604
1624
  border:0;border-radius:0;background:transparent;color:var(--lattice-accent);
1605
1625
  font:inherit;line-height:inherit;font-weight:600;cursor:pointer;
1606
1626
  text-decoration:underline;text-underline-offset:2px;
1607
1627
  }
1608
- .${x} button.${x}__browse:hover{ color:var(--lattice-focus-ring, var(--lattice-accent)); }
1609
- .${x} button.${x}__browse:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1610
- .${x}__drop{ display:none; color:var(--lattice-foreground); font-weight:600; }
1611
- .${x}__hint{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); }
1612
- .${x}__compact{ display:none; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-foreground); }
1613
- .${x}__compact svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-accent); }
1628
+ .${k} button.${k}__browse:hover{ color:var(--lattice-focus-ring, var(--lattice-accent)); }
1629
+ .${k} button.${k}__browse:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1630
+ .${k}__drop{ display:none; color:var(--lattice-foreground); font-weight:600; }
1631
+ .${k}__hint{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); }
1632
+ .${k}__compact{ display:none; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-foreground); }
1633
+ .${k}__compact svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-accent); }
1614
1634
 
1615
- .${x}__zone.is-compact{
1635
+ .${k}__zone.is-compact{
1616
1636
  flex-direction:row;justify-content:flex-start;text-align:left;min-height:0;
1617
1637
  padding:calc(var(--lattice-space) * 1.25);gap:calc(var(--lattice-space)/2);
1618
1638
  }
1619
- .${x}__zone.is-compact .${x}__icon,
1620
- .${x}__zone.is-compact .${x}__title,
1621
- .${x}__zone.is-compact .${x}__hint{ display:none; }
1622
- .${x}__zone.is-compact .${x}__compact{ display:inline-flex; }
1639
+ .${k}__zone.is-compact .${k}__icon,
1640
+ .${k}__zone.is-compact .${k}__title,
1641
+ .${k}__zone.is-compact .${k}__hint{ display:none; }
1642
+ .${k}__zone.is-compact .${k}__compact{ display:inline-flex; }
1623
1643
 
1624
- .${x}__zone.is-dragover{
1644
+ .${k}__zone.is-dragover{
1625
1645
  border-color:var(--lattice-accent);border-style:solid;
1626
1646
  background:var(--lat-up-accent-soft);
1627
1647
  box-shadow:0 0 0 3px color-mix(in srgb, var(--lattice-accent) 18%, transparent);
1628
1648
  }
1629
- .${x}__zone.is-dragover .${x}__title{ display:none; }
1630
- .${x}__zone.is-dragover .${x}__drop{ display:block; }
1631
- .${x}__zone.is-dragover .${x}__compact{ display:none; }
1632
- .${x}__zone.is-invalid{
1649
+ .${k}__zone.is-dragover .${k}__title{ display:none; }
1650
+ .${k}__zone.is-dragover .${k}__drop{ display:block; }
1651
+ .${k}__zone.is-dragover .${k}__compact{ display:none; }
1652
+ .${k}__zone.is-invalid{
1633
1653
  border-color:var(--lat-up-warning);border-style:solid;
1634
1654
  background:var(--lat-up-warning-soft);
1635
1655
  box-shadow:0 0 0 3px color-mix(in srgb, var(--lat-up-warning) 18%, transparent);
1636
1656
  }
1637
- .${x}__zone.is-invalid .${x}__icon,
1638
- .${x}__zone.is-invalid .${x}__title,
1639
- .${x}__zone.is-invalid .${x}__drop,
1640
- .${x}__zone.is-invalid .${x}__compact{ color:var(--lat-up-warning); }
1657
+ .${k}__zone.is-invalid .${k}__icon,
1658
+ .${k}__zone.is-invalid .${k}__title,
1659
+ .${k}__zone.is-invalid .${k}__drop,
1660
+ .${k}__zone.is-invalid .${k}__compact{ color:var(--lat-up-warning); }
1641
1661
 
1642
- .${x}__list{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2); }
1643
- .${x}__list[hidden]{ display:none; }
1662
+ .${k}__list{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2); }
1663
+ .${k}__list[hidden]{ display:none; }
1644
1664
 
1645
- .${x}__item{
1665
+ .${k}__item{
1646
1666
  display:flex;align-items:center;gap:calc(var(--lattice-space)/2);box-sizing:border-box;
1647
1667
  min-height:var(--lattice-row-height);padding:calc(var(--lattice-space)/2) calc(var(--lattice-space));
1648
1668
  border:var(--lattice-border-width) solid var(--lattice-border-color);
1649
1669
  border-radius:var(--lattice-radius);background:var(--lattice-background);
1650
1670
  }
1651
- .${x}__item-icon{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1652
- .${x}__item-thumb{ width:calc(var(--lattice-control-size) + 8px); height:calc(var(--lattice-control-size) + 8px); flex:0 0 auto; object-fit:cover; border-radius:calc(var(--lattice-radius)/2); }
1653
- .${x}__item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(var(--lattice-space)/4); }
1654
- .${x}__item-row{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); min-width:0; }
1655
- .${x}__item-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1656
- .${x}__item-size{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); flex:0 0 auto; }
1657
- .${x}__item-state{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space)/4); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1658
- .${x}__item-state svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1659
- .${x}__item.is-done .${x}__item-state{ color:var(--lattice-success); }
1660
- .${x}__item.is-error .${x}__item-state,
1661
- .${x}__item.is-rejected .${x}__item-state{ color:var(--lattice-danger); }
1662
- .${x}__item-pct{ font-variant-numeric:tabular-nums; }
1663
- .${x}__item-bar{ display:block; height:3px; border-radius:2px; background:color-mix(in srgb, var(--lattice-border-color) 60%, transparent); overflow:hidden; }
1664
- .${x}__item-fill{ display:block; height:100%; background:var(--lattice-accent); transition:width var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease); }
1665
- .${x}__item-message{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-danger); font-size:calc(var(--lattice-font-size) - 2px); }
1666
- .${x} button.${x}__retry{
1671
+ .${k}__item-icon{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1672
+ .${k}__item-thumb{ width:calc(var(--lattice-control-size) + 8px); height:calc(var(--lattice-control-size) + 8px); flex:0 0 auto; object-fit:cover; border-radius:calc(var(--lattice-radius)/2); }
1673
+ .${k}__item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(var(--lattice-space)/4); }
1674
+ .${k}__item-row{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); min-width:0; }
1675
+ .${k}__item-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1676
+ .${k}__item-size{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); flex:0 0 auto; }
1677
+ .${k}__item-state{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space)/4); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1678
+ .${k}__item-state svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1679
+ .${k}__item.is-done .${k}__item-state{ color:var(--lattice-success); }
1680
+ .${k}__item.is-error .${k}__item-state,
1681
+ .${k}__item.is-rejected .${k}__item-state{ color:var(--lattice-danger); }
1682
+ .${k}__item-pct{ font-variant-numeric:tabular-nums; }
1683
+ .${k}__item-bar{ display:block; height:3px; border-radius:2px; background:color-mix(in srgb, var(--lattice-border-color) 60%, transparent); overflow:hidden; }
1684
+ .${k}__item-fill{ display:block; height:100%; background:var(--lattice-accent); transition:width var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease); }
1685
+ .${k}__item-message{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-danger); font-size:calc(var(--lattice-font-size) - 2px); }
1686
+ .${k} button.${k}__retry{
1667
1687
  box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;border:0;border-radius:0;
1668
1688
  background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;
1669
1689
  text-decoration:underline;text-underline-offset:2px;
1670
1690
  }
1671
- .${x} button.${x}__retry:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1672
- .${x} button.${x}__remove{
1691
+ .${k} button.${k}__retry:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1692
+ .${k} button.${k}__remove{
1673
1693
  display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
1674
1694
  width:calc(var(--lattice-row-height) - 8px);height:calc(var(--lattice-row-height) - 8px);
1675
1695
  min-height:0;margin:0;padding:0;border:0;border-radius:var(--lattice-radius);
1676
1696
  background:none;color:var(--lattice-foreground-muted);cursor:pointer;flex:0 0 auto;
1677
1697
  }
1678
- .${x} button.${x}__remove svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1679
- .${x} button.${x}__remove:hover{ background:color-mix(in srgb, var(--lattice-foreground) 8%, transparent); color:var(--lattice-foreground); }
1680
- .${x} button.${x}__remove:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-1px; }
1698
+ .${k} button.${k}__remove svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1699
+ .${k} button.${k}__remove:hover{ background:color-mix(in srgb, var(--lattice-foreground) 8%, transparent); color:var(--lattice-foreground); }
1700
+ .${k} button.${k}__remove:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-1px; }
1681
1701
 
1682
- .${x}[aria-disabled='true']{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1683
- .${x}[aria-disabled='true'] .${x}__item{
1702
+ .${k}[aria-disabled='true']{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1703
+ .${k}[aria-disabled='true'] .${k}__item{
1684
1704
  background:var(--lattice-disabled-background); border-color:var(--lattice-disabled-border);
1685
1705
  }
1686
- .${x}[aria-readonly='true']{ cursor:default; }
1687
- .${x} button:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1688
- .${x}__live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
1706
+ .${k}[aria-readonly='true']{ cursor:default; }
1707
+ .${k} button:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1708
+ .${k}__live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
1689
1709
 
1690
1710
  @media (prefers-reduced-motion: reduce){
1691
- .${x}__zone{ transition:none; }
1692
- .${x}__zone.is-dragover, .${x}__zone.is-invalid{ box-shadow:none; }
1693
- .${x}__item-fill{ transition:none; }
1711
+ .${k}__zone{ transition:none; }
1712
+ .${k}__zone.is-dragover, .${k}__zone.is-invalid{ box-shadow:none; }
1713
+ .${k}__item-fill{ transition:none; }
1694
1714
  }
1695
- `.trim()}function O(l){const f=l&&l.documentElement;if(!f||f.getAttribute(_))return;f.setAttribute(_,"1");const c=l.createElement("style");c.textContent=T(),(l.head||l.body||f).appendChild(c)}function w(l,f){const c=f&&f.defaultView,s=c&&c.Event,i=s?new s("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};l.dispatchEvent(i)}function k(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function E(l){const f=Number(l)||0;return f<1024?`${f} B`:f<1048576?`${(f/1024).toFixed(f<10240?1:0)} KB`:f<1073741824?`${(f/1048576).toFixed(1)} MB`:`${(f/1073741824).toFixed(2)} GB`}function g(l,f){if(!f||!f.length)return!0;const c=(l.name||"").toLowerCase(),s=(l.type||"").toLowerCase();return f.some(i=>{const u=String(i).trim().toLowerCase();return u.startsWith(".")?c.endsWith(u):u.endsWith("/*")?s.startsWith(u.slice(0,-1)):s===u})}function o(l){return l.length?l.length===1?l[0]:l.length===2?`${l[0]} or ${l[1]}`:`${l.slice(0,-1).join(", ")} or ${l[l.length-1]}`:""}function a(l){const f={".pdf":"PDF",".doc":"DOC",".docx":"DOCX",".xls":"XLS",".xlsx":"XLSX",".csv":"CSV",".txt":"TXT",".png":"PNG",".jpg":"JPG",".jpeg":"JPEG",".gif":"GIF",".svg":"SVG",".webp":"WEBP",".zip":"ZIP","image/*":"images","video/*":"videos","audio/*":"audio","text/*":"text","application/pdf":"PDF"},c=String(l).trim(),s=f[c.toLowerCase()];if(s)return s;if(c.startsWith("."))return c.slice(1).toUpperCase();if(c.endsWith("/*"))return`${c.slice(0,-2)}s`;const i=c.split("/")[1];return i?i.toUpperCase():c}function d(l,f,c,s){const i=[];return f&&f.length&&i.push(o(f.map(a))),c&&i.push(l("form.file.hint.size",{size:E(c)})),s&&i.push(l(s===1?"form.file.hint.file":"form.file.hint.files",{max:String(s)})),i.join(" · ")}function h(l){return{id:l.id,name:l.name,size:l.size,type:l.type,status:l.status,progress:l.progress,message:l.message||""}}function t(l,f){const c=l.createElementNS(te,"svg");c.setAttribute("viewBox","0 0 16 16"),c.setAttribute("focusable","false"),c.setAttribute("aria-hidden","true"),c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","1.5"),c.setAttribute("stroke-linecap","round"),c.setAttribute("stroke-linejoin","round");const s=l.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d",f),c.appendChild(s),c}const r=Object.freeze({upload:"M8 11V3m0 0L4.5 6.5M8 3l3.5 3.5M3 13h10",file:"M4 2h5l3 3v9H4zM9 2v3h3",image:"M2 3h12v10H2zM5 11l3-3 2 2 1.5-1.5L14 11M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",document:"M4 2h5l3 3v9H4zM9 2v3h3M6 9h4M6 12h4",check:"M3 8.5l3 3 7-7",xmark:"M4 4l8 8M12 4l-8 8",warn:"M8 3l6 11H2zM8 7v3M8 12.2v.1",retry:"M13.5 8A5.5 5.5 0 1 1 8 2.5M8 2.5V5m0-2.5L5.5 2.5"});function n(l,f){const c=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let s;for(;s=c.exec(f);)l.setAttribute(s[1],s[3]===void 0?s[4]:s[3])}function p(l,f){const c=/<svg\b([^>]*)>/i.exec(f);if(!c)return null;const s=l.createElementNS(te,"svg");n(s,c[1]);const i=f.lastIndexOf("</svg"),u=i===-1?"":f.slice(c.index+c[0].length,i),j=/<(\w+)\b([^>]*?)(\/?)>/g;let H;for(;H=j.exec(u);){const M=l.createElementNS(te,H[1]);n(M,H[2]),s.appendChild(M)}return s.setAttribute("aria-hidden","true"),s.setAttribute("focusable","false"),s}function y(l,f){if(l===!1)return null;if(l!=null&&typeof l=="object"&&l.nodeType){const s=l;return s.classList.add(`${x}__icon`),s.setAttribute("aria-hidden","true"),s}if(typeof l!="string"||l==="")return null;const c=r[l]?t(f,r[l]):p(f,l);return c?(c.setAttribute("class",`${x}__icon`),c):null}function b(l){const f=l.type||"";return f.startsWith("image/")?"image":f==="application/pdf"||/\.pdf$/i.test(l.name)?"document":"file"}function m(l){if(l.thumb)return l.thumb;if(!l.file||!/^image\//.test(l.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{l.thumb=URL.createObjectURL(l.file)}catch{l.thumb=null}return l.thumb}function V(l){if(l.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(l.thumb)}catch{}l.thumb=null}I("file",{kind:"field",build(l,f){const c=f.doc,s=f.t,i=l.props||{},u=Array.isArray(i.accept)?i.accept.map(R=>String(R)):[],j=Number(i.maxSize)||0,H=Number(i.maxFiles)||0,M=i.multiple!==!1,D=typeof i.upload=="function"?i.upload:null,Q=i.dropzone!==!1,Z=i.dropText!=null?String(i.dropText):s("form.file.dropText"),ae=i.browseText!=null?String(i.browseText):s("form.file.browse"),Y=s("form.file.dropToUpload"),q=s("form.file.addMore"),Re=s("form.file.typeNotAccepted"),ke=i.hint!=null&&i.hint!==""?String(i.hint):d(s,u,j,H);O(c);const me=c.createElement("div");me.className=x;const S={accept:u,maxSize:j,maxFiles:H,multiple:M,upload:D,dropText:Z,browse:ae,dropToUpload:Y,addMore:q,typeNotAccepted:Re,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:Q,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};me.__latFile=S;const z=c.createElement("input");z.type="file",z.className=`${x}__input`,z.tabIndex=-1,z.setAttribute("aria-hidden","true"),M&&(z.multiple=!0),u.length&&(z.accept=u.join(",")),me.appendChild(z),S.input=z;const F=c.createElement("div");F.className=`${x}__zone`,F.setAttribute("role","button"),F.tabIndex=0,F.setAttribute("aria-label",`${Z} ${ae}`);const v=i.icon==null?t(c,r.upload):y(i.icon,c);v&&(i.icon==null&&v.setAttribute("class",`${x}__icon`),F.appendChild(v));const B=c.createElement("span");B.className=`${x}__title`;const W=c.createElement("span");W.className=`${x}__title-rest`,W.textContent=Z,B.appendChild(W);const ne=c.createElement("button");ne.type="button",ne.className=`${x}__browse`,ne.tabIndex=-1,ne.textContent=ae,B.appendChild(ne),F.appendChild(B),S.titleRest=W,S.browseEl=ne;const re=c.createElement("span");if(re.className=`${x}__drop`,re.textContent=Y,F.appendChild(re),ke){const R=c.createElement("span");R.className=`${x}__hint`,R.textContent=ke,F.appendChild(R)}const ce=c.createElement("span");ce.className=`${x}__compact`,ce.appendChild(t(c,r.upload));const N=c.createElement("span");N.className=`${x}__compact-text`,N.textContent=q,ce.appendChild(N),F.appendChild(ce),S.compactText=N,me.appendChild(F),S.zone=F;const K=c.createElement("ul");K.className=`${x}__list`,K.setAttribute("role","list"),K.hidden=!0,me.appendChild(K),S.list=K;const oe=c.createElement("div");return oe.className=`${x}__live`,oe.setAttribute("role","status"),oe.setAttribute("aria-live","polite"),me.appendChild(oe),S.live=oe,me.__latAnnounce=R=>{S.live&&(S.live.textContent="",S.live.textContent=R)},me.__latDragState=R=>{S.zone.classList.toggle("is-dragover",R==="over"),S.zone.classList.toggle("is-invalid",R==="invalid"),R==="none"?(S.titleRest.textContent=S.dropText,S.browseEl.hidden=!1,S.compactText.textContent=S.addMore):R==="over"?(S.titleRest.textContent=S.dropToUpload,S.browseEl.hidden=!0,S.compactText.textContent=S.dropToUpload):(S.titleRest.textContent=S.typeNotAccepted,S.browseEl.hidden=!0,S.compactText.textContent=S.typeNotAccepted)},me.__latPaint=()=>{const R=S.disabled||S.readOnly||!S.dropzone;S.zone.hidden=R,S.zone.tabIndex=R?-1:0,R?S.zone.setAttribute("aria-disabled","true"):S.zone.removeAttribute("aria-disabled"),S.input.disabled=R;const P=S.entries.length>0;S.zone.classList.toggle("is-compact",P),S.zone.setAttribute("aria-label",P?S.addMore:`${S.dropText} ${S.browse}`),K.hidden=!S.entries.length,K.tabIndex=S.readOnly&&!S.disabled?0:-1,S.entries.some(C=>C.status==="rejected")?me.setAttribute("aria-invalid","true"):me.removeAttribute("aria-invalid"),K.textContent="";for(const C of S.entries){const U=c.createElement("li");U.className=`${x}__item is-${C.status}`,U.setAttribute("data-id",C.id),U.setAttribute("role","listitem");const J=m(C);if(J){const Pe=c.createElement("img");Pe.className=`${x}__item-thumb`,Pe.src=J,Pe.alt="",U.appendChild(Pe)}else{const Pe=t(c,r[b(C)]);Pe.setAttribute("class",`${x}__item-icon`),U.appendChild(Pe)}const ie=c.createElement("div");ie.className=`${x}__item-main`,U.appendChild(ie);const fe=c.createElement("div");fe.className=`${x}__item-row`,ie.appendChild(fe);const xe=c.createElement("span");xe.className=`${x}__item-name`,xe.textContent=C.name,xe.title=C.name,fe.appendChild(xe);const _e=c.createElement("span");_e.className=`${x}__item-size`,_e.textContent=E(C.size),fe.appendChild(_e);const Le=c.createElement("span");if(Le.className=`${x}__item-state`,C.status==="uploading"){const Pe=c.createElement("span");Pe.className=`${x}__item-pct`,Pe.textContent=`${C.progress}%`,Le.appendChild(Pe)}else C.status==="done"?Le.appendChild(t(c,r.check)):(C.status==="error"||C.status==="rejected")&&Le.appendChild(t(c,r.warn));fe.appendChild(Le);const Se=c.createElement("button");if(Se.type="button",Se.className=`${x}__remove`,Se.setAttribute("aria-label",`${s("form.file.remove")} ${C.name}`),Se.title=s("form.file.remove"),Se.appendChild(t(c,r.xmark)),Se.setAttribute("data-remove",C.id),Se.disabled=S.disabled||S.readOnly,fe.appendChild(Se),C.status==="uploading"){const Pe=c.createElement("span");Pe.className=`${x}__item-bar`,Pe.setAttribute("role","progressbar"),Pe.setAttribute("aria-valuemin","0"),Pe.setAttribute("aria-valuemax","100"),Pe.setAttribute("aria-valuenow",String(C.progress));const A=c.createElement("span");A.className=`${x}__item-fill`,A.style.width=`${C.progress}%`,Pe.appendChild(A),ie.appendChild(Pe)}if(C.message){const Pe=c.createElement("span");if(Pe.className=`${x}__item-message`,Pe.appendChild(c.createTextNode(C.message)),C.status==="error"){Pe.appendChild(c.createTextNode(" "));const A=c.createElement("button");A.type="button",A.className=`${x}__retry`,A.textContent=s("form.file.retry"),A.setAttribute("data-retry",C.id),A.disabled=S.disabled||S.readOnly,Pe.appendChild(A)}ie.appendChild(Pe)}K.appendChild(U)}},me.__latUpload=R=>{if(!S.upload){R.status="done",R.progress=100,me.__latPaint();return}R.status="uploading",R.progress=0,R.message="";let P=null;typeof AbortController<"u"&&(P=new AbortController,S.controllers.set(R.id,P));const L=P?P.signal:void 0,C=J=>{R.progress=Math.max(0,Math.min(100,Number(J)||0)),R.status="uploading",me.__latPaint()};let U;try{U=S.upload(R.file,{onProgress:C,signal:L})}catch(J){U=Promise.reject(J)}U&&typeof U.then=="function"&&U.then(()=>{S.controllers.delete(R.id),R.status="done",R.progress=100,me.__latPaint(),me.__latAnnounce(s("form.file.uploaded",{name:R.name})),w(me,f.doc)},J=>{S.controllers.delete(R.id),R.status="error",R.message=J&&J.message?String(J.message):s("form.file.uploadFailed"),me.__latPaint(),me.__latAnnounce(s("form.file.failed",{name:R.name})),w(me,f.doc)})},me.__latTake=R=>{const P=[...R||[]];if(!P.length||S.disabled||S.readOnly)return;const L=S.multiple?P:P.slice(0,1),C=[],U=[];let J=S.maxFiles?Math.max(0,S.maxFiles-S.entries.length):1/0;for(const ie of L){if(J<=0){U.push({file:ie,reason:"count"});continue}if(S.maxSize&&ie.size>S.maxSize){U.push({file:ie,reason:"size"});continue}if(!g(ie,S.accept)){U.push({file:ie,reason:"type"});continue}C.push({id:k(),file:ie,name:ie.name,size:ie.size,type:ie.type,status:"selected",progress:0,message:""}),J-=1}if(C.length){S.multiple||(S.entries=[]),S.entries.push(...C),me.__latPaint(),w(me,f.doc),me.__latAnnounce(C.length===1?s("form.file.addedOne"):s("form.file.added",{count:String(C.length)}));for(const ie of C)me.__latUpload(ie)}for(const ie of U){const fe=ie.reason==="size"?s("form.file.rejected.size",{size:E(S.maxSize)}):ie.reason==="type"?s("form.file.rejected.type"):s("form.file.rejected.count",{max:String(S.maxFiles)});S.entries.push({id:k(),file:ie.file,name:ie.file.name,size:ie.file.size,type:ie.file.type,status:"rejected",progress:0,message:fe}),me.__latAnnounce(fe)}me.__latPaint()},me.__latRemove=R=>{const P=S.controllers.get(R);P&&(P.abort(),S.controllers.delete(R));const L=S.entries.find(C=>C.id===R);L&&V(L),S.entries=S.entries.filter(C=>C.id!==R),me.__latPaint(),w(me,f.doc)},me.__latRetry=R=>{if(S.disabled||S.readOnly)return;const P=S.entries.find(L=>L.id===R);!P||!P.file||P.status==="rejected"||(me.__latUpload(P),w(me,f.doc))},me.__latClick=R=>{if(S.disabled||S.readOnly)return;const P=R.target&&R.target.closest?R.target:null,L=P&&P.closest?P.closest("[data-remove]"):null;if(L&&me.contains(L)){me.__latRemove(L.getAttribute("data-remove"));return}const C=P&&P.closest?P.closest("[data-retry]"):null;if(C&&me.contains(C)){me.__latRetry(C.getAttribute("data-retry"));return}P&&P.closest&&P.closest(`.${x}__zone`)&&S.input.click()},me.__latKeydown=R=>{S.disabled||S.readOnly||(R.key==="Enter"||R.key===" "||R.key==="Spacebar")&&R.target===S.zone&&(R.preventDefault(),S.input.click())},me.__latChange=()=>{me.__latTake(S.input.files),S.input.value=""},me.__latDragKind=R=>{if(!S.accept.length)return"over";const P=R.dataTransfer;if(!P||!P.types||!P.types.length)return"over";const L=Array.from(P.types);return L.includes("Files")?"over":L.every(C=>!g({name:"",type:C},S.accept))?"invalid":"over"},me.__latDrag=R=>{if(!(S.disabled||S.readOnly)){if(R.type==="dragenter"||R.type==="dragover"){R.preventDefault(),me.__latDragState(me.__latDragKind(R));return}if(R.type==="dragleave"){if(R.relatedTarget&&S.zone.contains(R.relatedTarget))return;me.__latDragState("none");return}R.type==="drop"&&(R.preventDefault(),me.__latDragState("none"),me.__latTake(R.dataTransfer&&R.dataTransfer.files))}},me.__latPaste=R=>{if(S.disabled||S.readOnly||!R.clipboardData)return;const P=[...R.clipboardData.files||[]];P.length&&(R.preventDefault(),me.__latTake(P))},z.addEventListener("change",me.__latChange),me.addEventListener("click",me.__latClick),me.addEventListener("keydown",me.__latKeydown),me.addEventListener("paste",me.__latPaste),Q&&["dragenter","dragover","dragleave","drop"].forEach(R=>me.addEventListener(R,me.__latDrag)),me.__latPaint(),me},read(l){const f=l.__latFile;return f?f.entries.filter(c=>c.status!=="rejected").map(h):[]},write(l,f){const c=l.__latFile;if(!c)return;const s=Array.isArray(f)?f:[],i=c.entries.filter(u=>u.status==="rejected");for(const u of c.entries)i.includes(u)||V(u);c.entries=i;for(const u of s)c.entries.push({id:u&&u.id?String(u.id):k(),file:u&&u.file?u.file:null,name:u&&u.name!=null?String(u.name):"",size:u&&u.size!=null?Number(u.size):0,type:u&&u.type!=null?String(u.type):"",status:u&&u.status?String(u.status):"done",progress:u&&u.progress!=null?Number(u.progress):100,message:u&&u.message?String(u.message):""});l.__latPaint&&l.__latPaint()},state(l,f){const c=l.__latFile;c&&(c.disabled=f.disabled===!0,c.readOnly=f.readOnly===!0,c.disabled?l.setAttribute("aria-disabled","true"):l.removeAttribute("aria-disabled"),c.readOnly?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly"),l.__latPaint&&l.__latPaint())},validate(l,f,c){const s=l.__latFile;if(!s)return null;const i=s.entries.find(u=>u.status==="rejected");return i&&i.message&&(!Array.isArray(c)||c.length===0)?i.message:s.maxFiles&&Array.isArray(c)&&c.length>s.maxFiles?`Too many files (max ${s.maxFiles})`:null}})}),Te("packages/dom/src/editors/richtext-icons.js",function($,X){"use strict";Object.defineProperty($,"TOOL_GLYPHS",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"letterGlyph",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"toolGlyph",{enumerable:!0,get:function(){return _}});const e="http://www.w3.org/2000/svg",I=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),x=Object.freeze({color:"M8 2.5l4 5.5a4 4 0 0 1-8 0zM4.5 12.5h7",alignLeft:"M3 4h10M3 8h6M3 12h10",alignCenter:"M3 4h10M5 8h6M3 12h10",alignRight:"M3 4h10M7 8h6M3 12h10",ul:"M3 5.5h.01M3 9.5h.01M3 13.5h.01M6 5.5h7M6 9.5h7M6 13.5h7",ol:"M2.5 4.5h.01M2.5 8.5h.01M2.5 12.5h.01M5 4.5h8M5 8.5h8M5 12.5h8",outdent:"M3 4h8M3 8h5M3 12h8M8 3v2M8 11v2",indent:"M5 4h8M5 8h5M5 12h8M10 3v2M10 11v2",link:"M6.5 9.5a3 3 0 0 0 3 3l2-2a3 3 0 0 0-3-3M9.5 6.5a3 3 0 0 0-3-3l-2 2a3 3 0 0 0 3 3",image:"M2 3h12v10H2zM5.5 11l2.5-3 2 2 1.5-1.5 2 2.5M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",clear:"M5 4h9M6 4l-.5 8a2 2 0 0 1-2 1.8A2 2 0 0 1 1.5 12L1 4M4 4V2.5h8V4M6 7v3M9.5 7v3",source:"M6 4L2.5 8 6 12M10 4l3.5 4L10 12",undo:"M3 7h6a3.5 3.5 0 0 1 0 7H5M3 7l2-2M3 7l2 2",redo:"M13 7H7a3.5 3.5 0 0 0 0 7h4M13 7l-2-2M13 7l-2 2"});function te(T,O){const w=I[O],k=T.createElementNS(e,"svg");k.setAttribute("viewBox","0 0 16 16"),k.setAttribute("width","16"),k.setAttribute("height","16"),k.setAttribute("focusable","false"),k.setAttribute("aria-hidden","true");const E=T.createElementNS(e,"text");return E.setAttribute("x","8"),E.setAttribute("y","12"),E.setAttribute("text-anchor","middle"),E.style.fontSize="12px",E.style.fill="currentColor",E.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',w.weight&&(E.style.fontWeight=w.weight),w.style&&(E.style.fontStyle=w.style),w.decoration&&(E.style.textDecoration=w.decoration),E.textContent=w.char,k.appendChild(E),k}function _(T,O){const w=T.createElementNS(e,"svg");w.setAttribute("viewBox","0 0 16 16"),w.setAttribute("focusable","false"),w.setAttribute("aria-hidden","true"),w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","1.5"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round");const k=T.createElementNS(e,"path");return k.setAttribute("d",x[O]),w.appendChild(k),w}}),Te("packages/modules/form/controls/swatches.js",function($,X){"use strict";Object.defineProperty($,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"hslToHex",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"buildSwatchButton",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"buildSwatchGrid",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),I=Object.freeze([0,24,48,84,140,168,196,224,268,320]),x=Object.freeze([.82,.66,.5,.36,.22]),te=.62,_=Object.freeze([.92,.76,.56,.36,.18]);function T(o,a,d){let h=d;return h<0&&(h+=1),h>1&&(h-=1),h<1/6?o+(a-o)*6*h:h<1/2?a:h<2/3?o+(a-o)*(2/3-h)*6:o}function O(o,a,d){const h=(o%360+360)%360/360;let t,r,n;if(a===0)t=d,r=d,n=d;else{const y=d<.5?d*(1+a):d+a-d*a,b=2*d-y;t=T(b,y,h+1/3),r=T(b,y,h),n=T(b,y,h-1/3)}const p=y=>Math.round(y*255).toString(16).padStart(2,"0");return`#${p(t)}${p(r)}${p(n)}`}const w=Object.freeze(I.map(o=>Object.freeze(x.map(a=>O(o,te,a))))),k=Object.freeze(_.map(o=>O(0,0,o)));function E(o,a,d={}){const h=o.createElement("button");return h.type="button",h.className="lat-form__swatch",h.style.background=a,h.setAttribute("role","option"),h.setAttribute("data-color",a),h.setAttribute("aria-selected",d.selected?"true":"false"),d.selected&&h.classList.add("is-selected"),h.title=d.title!=null?d.title:a,h.tabIndex=-1,h}function g(o,a,d={}){const h=o.createElement("div");h.className="lat-form__swatch-grid",h.setAttribute("role","listbox");const t=[];for(const r of a){const n=o.createElement("div");n.className=d.rowClass?`lat-form__swatch-row ${d.rowClass}`:"lat-form__swatch-row";const p=[];for(const y of r){const b=E(o,y,{selected:typeof d.isSelected=="function"&&d.isSelected(y),title:typeof d.title=="function"?d.title(y):void 0});n.appendChild(b),p.push(b)}h.appendChild(n),t.push(p)}return typeof d.onPick=="function"&&h.addEventListener("click",r=>{const n=r.target&&r.target.closest?r.target.closest(".lat-form__swatch"):null;n&&h.contains(n)&&d.onPick(n.getAttribute("data-color"),n)}),{el:h,rows:t}}}),Te("packages/modules/form/controls/richtext.js",function($,X){"use strict";Object.defineProperty($,"sanitize",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"escapeHtml",{enumerable:!0,get:function(){return _}});const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/dom/src/editors/sanitize-richtext.js"),te=x.sanitizeRichText,_=x.escapeHtml,T=X("packages/dom/src/editors/richtext-icons.js"),O=T.letterGlyph,w=T.toolGlyph,k=T.TOOL_GLYPHS,E=X("packages/modules/form/controls/swatches.js"),g=E.DEFAULT_COLORS,o=E.buildSwatchGrid,a=te,d=Object.freeze({basic:["bold","italic","underline","color","lowercase","uppercase","|","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","undo","redo"],html:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","clear","source","|","undo","redo"],rich:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","image","clear","source","|","undo","redo"]}),h=Object.freeze(["bold","italic","underline","strike"]),t=Object.freeze({bold:"form.richtext.bold",italic:"form.richtext.italic",underline:"form.richtext.underline",strike:"form.richtext.strike",color:"form.richtext.color",heading:"form.richtext.heading",alignLeft:"form.richtext.alignLeft",alignCenter:"form.richtext.alignCenter",alignRight:"form.richtext.alignRight",ul:"form.richtext.ul",ol:"form.richtext.ol",outdent:"form.richtext.outdent",indent:"form.richtext.indent",link:"form.richtext.link",image:"form.richtext.image",clear:"form.richtext.clear",source:"form.richtext.source",undo:"form.richtext.undo",redo:"form.richtext.redo",lowercase:"form.richtext.lowercase",uppercase:"form.richtext.uppercase"});function r(m){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[m]||null}const n=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function p(m){return Array.isArray(m)?m.map(V=>String(V)):d[m]||d.basic}function y(m){return new Promise((V,l)=>{const f=new FileReader;f.onload=()=>V(f.result),f.onerror=()=>l(f.error||new Error("read failed")),f.readAsDataURL(m)})}I("richtext",{kind:"field",build(m,V){const l=V.doc,f=m.props||{},c=p(f.toolbar),s=Array.isArray(f.headings)?f.headings:n,i=Array.isArray(f.colors)?f.colors:g,u=f.linkTarget!=null?String(f.linkTarget):"_blank",j=Number(f.minHeight)||160,H=Number(f.maxHeight)||0,M=Number(f.maxImageSize)||0,D=typeof f.onImage=="function"?f.onImage:null,Q=f.sanitizePaste!==!1,Z=f.allowedTags,ae=f.placeholder!=null?String(f.placeholder):V.t("form.richtext.placeholder"),Y=l.createElement("div");Y.className="lat-form__richtext";const q={toolbar:c,headings:s,colors:i,linkTarget:u,minHeight:j,maxHeight:H,maxImageSize:M,onImage:D,sanitizePaste:Q,allowedTags:Z,placeholder:ae,disabled:!1,readOnly:!1,toolbarEl:null,buttons:{},editor:null,source:null,popover:null,fileInput:null,range:null,sourceMode:!1,sourceDirty:!1,history:{stack:[],index:0},lastValue:null};Y.__latRt=q;const Re=a(l,m.value==null?"":String(m.value),Z,{});q.history={stack:[Re],index:0},q.lastValue=Re;const ke=l.createElement("div");ke.className="lat-form__richtext-toolbar",ke.setAttribute("role","toolbar"),ke.setAttribute("aria-label",V.t("form.richtext.formatting")),q.toolbarEl=ke;for(const v of c){if(v==="|"){const W=l.createElement("span");W.className="lat-form__richtext-sep",W.setAttribute("role","separator"),ke.appendChild(W);continue}if(v==="heading"){const W=l.createElement("select");W.className="lat-form__richtext-select",W.title=V.t(t.heading),W.setAttribute("aria-label",V.t(t.heading)),W.setAttribute("data-item","heading");for(const[ne,re]of s){const ce=l.createElement("option");ce.value=ne,ce.textContent=String(re),W.appendChild(ce)}q.buttons.heading=W,ke.appendChild(W);continue}const B=l.createElement("button");B.type="button",B.className="lat-form__richtext-btn",B.setAttribute("data-item",v),B.title=V.t(t[v]||v),B.setAttribute("aria-label",V.t(t[v]||v)),v==="lowercase"||v==="uppercase"?(B.className+=" lat-form__richtext-btntext",B.textContent=V.t(v==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):h.includes(v)?B.appendChild(O(l,v)):k[v]?B.appendChild(w(l,v)):B.textContent=v,q.buttons[v]=B,ke.appendChild(B)}Y.appendChild(ke);const me=l.createElement("div");me.className="lat-form__richtext-popover",me.hidden=!0,Y.appendChild(me),q.popover=me;const S=l.createElement("div");S.className="lat-form__richtext-editor",S.contentEditable=m.readOnly||m.disabled?"false":"true",S.setAttribute("role","textbox"),S.setAttribute("aria-multiline","true"),S.setAttribute("aria-label",m.label!=null?String(m.label):V.t("form.richtext.richText")),S.setAttribute("data-placeholder",ae),S.style.minHeight=`${j}px`,H&&(S.style.maxHeight=`${H}px`),S.innerHTML=Re,Y.appendChild(S),q.editor=S;const z=l.createElement("textarea");z.className="lat-form__richtext-source",z.setAttribute("aria-label",V.t("form.richtext.source")),z.spellcheck=!1,z.hidden=!0,Y.appendChild(z),q.source=z;const F=l.createElement("input");return F.type="file",F.accept="image/*",F.className="lat-form__richtext-file",F.tabIndex=-1,F.setAttribute("aria-hidden","true"),Y.appendChild(F),q.fileInput=F,Y.__latSave=()=>{const v=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;v&&v.rangeCount&&S.contains(v.anchorNode)&&(q.range=v.getRangeAt(0).cloneRange())},Y.__latRestore=()=>{if(!q.range)return;const v=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(v)try{v.removeAllRanges(),v.addRange(q.range)}catch{}},Y.__latRefresh=()=>{Object.entries(q.buttons).forEach(([v,B])=>{const W=r(v);if(W&&W.state&&B.tagName==="BUTTON"){let ne=!1;try{ne=l.queryCommandState(W.state)}catch{ne=!1}B.setAttribute("aria-pressed",ne?"true":"false"),B.classList.toggle("is-active",ne)}if(v==="heading"&&B.tagName==="SELECT"){let ne="";try{ne=String(l.queryCommandValue("formatBlock")||"").toLowerCase()}catch{ne=""}const re=[...B.options].some(ce=>ce.value===ne);B.value=re?ne:"p"}})},Y.__latExec=(v,B)=>{S.focus(),Y.__latRestore();try{l.execCommand("styleWithCSS",!1,v==="foreColor")}catch{}try{l.execCommand(v,!1,B===void 0?null:B)}catch{}Y.__latAfterEdit()},Y.__latAfterEdit=()=>{const v=S.innerHTML,B=q.history;B.stack[B.index]!==v&&(B.stack=B.stack.slice(0,B.index+1),B.stack.push(v),B.stack.length>200&&B.stack.shift(),B.index=B.stack.length-1),Y.__latRefresh();const W=a(l,v,Z,{}),ne=q.lastValue==null?a(l,B.stack[0]||"",Z,{}):q.lastValue;q.lastValue=W,b(Y,l,ne,W)},Y.__latCaretEnd=()=>{const v=l.createRange();v.selectNodeContents(S),v.collapse(!1);const B=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;B&&(B.removeAllRanges(),B.addRange(v)),q.range=v.cloneRange()},Y.__latUndo=()=>{const v=q.history;if(v.index<=0)return;v.index-=1,S.innerHTML=v.stack[v.index],Y.__latCaretEnd(),Y.__latRefresh();const B=a(l,S.innerHTML,Z,{});q.lastValue=B,b(Y,l,q.lastValue,B)},Y.__latRedo=()=>{const v=q.history;if(v.index>=v.stack.length-1)return;v.index+=1,S.innerHTML=v.stack[v.index],Y.__latCaretEnd(),Y.__latRefresh();const B=a(l,S.innerHTML,Z,{});q.lastValue=B,b(Y,l,q.lastValue,B)},Y.__latClosePopover=()=>{me.hidden=!0,me.textContent=""},Y.__latOpenPopover=(v,B)=>{if(me.textContent="",me.hidden=!1,me.style.left=`${Math.max(0,B.offsetLeft)}px`,v==="color"){const{el:W}=o(l,[i],{onPick:N=>{Y.__latRestore(),Y.__latExec("foreColor",N),Y.__latClosePopover()}});me.appendChild(W);const ne=l.createElement("div");ne.className="lat-form__richtext-poprow";const re=l.createElement("input");re.type="color",re.className="lat-form__richtext-colorinput",re.setAttribute("aria-label",V.t("form.richtext.colorCustom")),re.addEventListener("input",()=>{Y.__latRestore(),Y.__latExec("foreColor",re.value)});const ce=l.createElement("button");ce.type="button",ce.className="lat-form__richtext-popbtn",ce.textContent=V.t("form.richtext.colorRemove"),ce.addEventListener("click",()=>{Y.__latRestore(),Y.__latExec("foreColor","inherit"),Y.__latClosePopover()}),ne.appendChild(re),ne.appendChild(ce),me.appendChild(ne)}else{const W=Y.__latClosestLink(),ne=l.createElement("input");ne.type="url",ne.className="lat-form__richtext-linkinput",ne.placeholder=V.t("form.richtext.linkPlaceholder"),ne.value=W&&W.getAttribute("href")||"",ne.setAttribute("aria-label",V.t("form.richtext.linkLabel"));const re=()=>{const K=ne.value.trim();if(Y.__latRestore(),!K){Y.__latExec("unlink"),Y.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(K)){ne.classList.add("is-invalid");return}if(W)W.setAttribute("href",K),Y.__latAfterEdit();else{const oe=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(oe&&oe.isCollapsed){const R=u?` target="${_(u)}" rel="noopener noreferrer"`:"";Y.__latExec("insertHTML",a(l,`<a href="${_(K)}"${R}>${_(K)}</a>`,Z,{}))}else{Y.__latExec("createLink",K);const R=Y.__latClosestLink();R&&u&&(R.setAttribute("target",u),R.setAttribute("rel","noopener noreferrer"))}}Y.__latClosePopover()};ne.addEventListener("keydown",K=>{K.key==="Enter"&&(K.preventDefault(),re()),K.key==="Escape"&&Y.__latClosePopover()});const ce=l.createElement("div");ce.className="lat-form__richtext-poprow",ce.appendChild(ne);const N=l.createElement("button");if(N.type="button",N.className="lat-form__richtext-popbtn",N.textContent=W?V.t("form.richtext.linkUpdate"):V.t("form.richtext.linkAdd"),N.addEventListener("click",re),ce.appendChild(N),W){const K=l.createElement("button");K.type="button",K.className="lat-form__richtext-popbtn",K.textContent=V.t("form.richtext.linkRemove"),K.addEventListener("click",()=>{Y.__latRestore(),Y.__latExec("unlink"),Y.__latClosePopover()}),ce.appendChild(K)}me.appendChild(ce),setTimeout(()=>ne.focus(),0)}},Y.__latClosestLink=()=>{const v=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!v||v.rangeCount===0)return null;let B=v.getRangeAt(0).commonAncestorContainer;B.nodeType===3&&(B=B.parentNode);const W=B.closest?B.closest("a"):null;return W&&S.contains(W)?W:null},Y.__latRun=v=>{if(q.disabled||q.readOnly)return;v!=="source"&&q.sourceMode&&Y.__latToggleSource(!1),Y.__latRestore();const B=r(v);if(v==="color"||v==="link"){Y.__latOpenPopover(v,q.buttons[v]);return}if(v==="undo"){Y.__latUndo();return}if(v==="redo"){Y.__latRedo();return}if(v==="source"){Y.__latToggleSource();return}if(v==="image"){q.fileInput.click();return}if(v==="lowercase"||v==="uppercase"){Y.__latCase(v==="uppercase");return}if(B){Y.__latExec(B.cmd);return}},Y.__latCase=v=>{const B=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!B||B.rangeCount===0||B.isCollapsed)return;const W=B.toString();Y.__latExec("insertText",v?W.toUpperCase():W.toLowerCase())},Y.__latToggleSource=v=>{const B=v===void 0?!q.sourceMode:!!v;if(B===q.sourceMode)return;B?(q.source.value=a(l,S.innerHTML,Z,{}).replace(/></g,`>
1696
- <`),S.hidden=!0,z.hidden=!1,z.focus()):(q.sourceDirty&&(S.innerHTML=a(l,z.value,Z,{}),q.sourceDirty=!1),z.hidden=!0,S.hidden=!1,S.focus()),q.sourceMode=B;const W=q.buttons.source;W&&(W.classList.toggle("is-active",B),W.setAttribute("aria-pressed",B?"true":"false")),Object.entries(q.buttons).forEach(([ne,re])=>{ne!=="source"&&(re.disabled=B)}),B||Y.__latAfterEdit()},Y.__latInsertImage=async v=>{if(!/^image\//.test(v.type)||M&&v.size>M)return;let B;try{B=D?await D(v):await y(v)}catch{return}B&&Y.__latExec("insertHTML",a(l,`<img src="${_(B)}" alt="${_(v.name)}" style="max-width:100%">`,Z,{}))},Y.__latToolbarClick=v=>{const B=v.target&&v.target.closest?v.target.closest("[data-item]"):null;!B||!ke.contains(B)||B.tagName==="SELECT"||(v.preventDefault(),Y.__latRun(B.getAttribute("data-item")))},Y.__latToolbarDown=v=>{v.target&&v.target.closest&&v.target.closest(".lat-form__richtext-btn")&&v.preventDefault()},Y.__latSelect=v=>{v.target&&v.target.getAttribute&&v.target.getAttribute("data-item")==="heading"&&(Y.__latRestore(),Y.__latExec("formatBlock",v.target.value))},Y.__latInput=()=>{Y.__latAfterEdit()},Y.__latKey=v=>{if(!(v.ctrlKey||v.metaKey))return;const B=v.key.toLowerCase();B==="z"&&!v.shiftKey?(v.preventDefault(),Y.__latUndo()):B==="y"||B==="z"&&v.shiftKey?(v.preventDefault(),Y.__latRedo()):B==="k"&&q.buttons.link&&(v.preventDefault(),Y.__latRun("link"))},Y.__latPaste=v=>{if(!Q||!v.clipboardData)return;const B=v.clipboardData.getData("text/html"),W=v.clipboardData.getData("text/plain");if(!B&&!W)return;v.preventDefault();const ne=B?a(l,B,Z,{stripStyles:!0}):_(W).replace(/\r?\n/g,"<br>");Y.__latExec("insertHTML",ne)},Y.__latDrop=v=>{if(!Q||!v.dataTransfer)return;const B=v.dataTransfer.files;if(B&&B.length){v.preventDefault();const ce=B[0];ce&&Y.__latInsertImage(ce);return}const W=v.dataTransfer.getData("text/html"),ne=v.dataTransfer.getData("text/plain");if(!W&&!ne)return;v.preventDefault();const re=W?a(l,W,Z,{stripStyles:!0}):_(ne).replace(/\r?\n/g,"<br>");Y.__latExec("insertHTML",re)},Y.__latBeforeInput=v=>{Q&&(v.inputType==="insertFromDrop"||v.inputType==="insertFromPaste")&&v.preventDefault()},Y.__latSelChange=()=>{l.activeElement===S&&(Y.__latSave(),Y.__latRefresh())},Y.__latFile=()=>{const v=F.files&&F.files[0];F.value="",v&&Y.__latInsertImage(v)},Y.__latSourceInput=()=>{q.sourceDirty=!0},Y.__latDocClick=v=>{me&&!me.hidden&&!me.contains(v.target)&&!ke.contains(v.target)&&Y.__latClosePopover()},ke.addEventListener("click",Y.__latToolbarClick),ke.addEventListener("mousedown",Y.__latToolbarDown),ke.addEventListener("change",Y.__latSelect),S.addEventListener("input",Y.__latInput),S.addEventListener("keydown",Y.__latKey),S.addEventListener("paste",Y.__latPaste),S.addEventListener("drop",Y.__latDrop),S.addEventListener("beforeinput",Y.__latBeforeInput),F.addEventListener("change",Y.__latFile),z.addEventListener("input",Y.__latSourceInput),l.addEventListener&&(l.addEventListener("selectionchange",Y.__latSelChange),l.addEventListener("mousedown",Y.__latDocClick,!0)),Y},read(m){const V=m.__latRt;return V?V.sourceMode?a(m.ownerDocument,V.source.value,V.allowedTags,{}):a(m.ownerDocument,V.editor.innerHTML,V.allowedTags,{}):""},write(m,V){const l=m.__latRt;if(!l)return;const f=m.ownerDocument,c=a(f,V==null?"":String(V),l.allowedTags,{});l.sourceMode&&(l.source.value=c),l.editor.innerHTML=c,l.history={stack:[c],index:0},l.lastValue=c},state(m,V){const l=m.__latRt;l&&(l.disabled=V.disabled===!0,l.readOnly=V.readOnly===!0,l.editor.contentEditable=l.disabled||l.readOnly?"false":"true",l.editor.tabIndex=l.readOnly?0:-1,l.readOnly?l.editor.setAttribute("aria-readonly","true"):l.editor.removeAttribute("aria-readonly"),l.disabled?m.setAttribute("aria-disabled","true"):m.removeAttribute("aria-disabled"),l.readOnly?m.setAttribute("aria-readonly","true"):m.removeAttribute("aria-readonly"),Object.values(l.buttons).forEach(f=>{f.disabled=l.disabled||l.readOnly}))}});function b(m,V,l,f){const c=V&&V.defaultView,s=c&&c.Event,i=s?new s("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};m.dispatchEvent(i)}}),Te("packages/modules/form/controls/rating.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=5,te=Object.freeze({star:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.2l-3.8 2 .7-4.3-3.1-3 4.3-.6z",heart:"M8 14s-5-3.2-5-6.3A2.9 2.9 0 0 1 8 5.7 2.9 2.9 0 0 1 13 7.7C13 10.8 8 14 8 14z"});function _(a){const d=String(a??"");return Object.hasOwn(te,d)?d:"star"}function T(a,d,h){return Math.min(Math.max(a,d),h)}function O(a,d){const h=d&&d.defaultView,t=h&&h.Event,r=t?new t("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};a.dispatchEvent(r)}function w(a,d,h){const t=a.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("focusable","false"),t.setAttribute("aria-hidden","true"),h?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const r=a.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",te[d]),t.appendChild(r),t}function k(a,d,h){const t=Number(a),r=Number.isFinite(t)?t:0,n=h?Math.round(r*2)/2:Math.round(r);return T(n,0,d)}function E(a,d){return Math.min(1,Math.max(0,a-(d-1)))}I("rating",{kind:"field",build(a,d){const h=d.doc,t=a.props||{},r=Math.max(1,Math.floor(Number(a.max!=null?a.max:t.max)||x)),n=t.allowHalf===!0,p=t.allowClear!==!1,y=t.showValue===!0,b=Array.isArray(t.labels)?t.labels:null,m=_(t.icons&&t.icons.filled?t.icons.filled:t.icon),V=_(t.icons&&t.icons.empty?t.icons.empty:`${m}-outline`),l=t.size==="lg"||t.size==="sm"?t.size:"md",f=h.createElement("div");f.className=`lat-form__rating lat-form__rating--${l}`,f.setAttribute("role","slider"),f.setAttribute("aria-valuemin","0"),f.setAttribute("aria-valuemax",String(r)),f.setAttribute("aria-label",a.label!=null?String(a.label):d.t("form.rating"));const c={value:k(a.value,r,n),max:r,allowHalf:n,allowClear:p,labels:b,showValue:y,filledName:m,emptyName:V,items:[],fills:[],valueEl:null};f.__latRating=c;const s=h.createElement("span");s.className="lat-form__rating-track",s.setAttribute("aria-hidden","true");for(let i=0;i<r;i++){const u=h.createElement("span");u.className="lat-form__rating-item",u.setAttribute("data-index",String(i)),b&&b[i]!=null&&b[i]!==""&&(u.title=String(b[i])),u.appendChild(w(h,V,!1));const j=h.createElement("span");j.className="lat-form__rating-fill",j.setAttribute("aria-hidden","true"),j.appendChild(w(h,m,!0)),u.appendChild(j),s.appendChild(u),c.items.push(u),c.fills.push(j)}if(f.appendChild(s),y){const i=h.createElement("span");i.className="lat-form__rating-value",i.setAttribute("aria-hidden","true"),f.appendChild(i),c.valueEl=i}return f.__latPaint=()=>{for(let i=0;i<c.items.length;i++){const u=E(c.value,i+1);c.items[i].setAttribute("data-fill",u>=1?"full":u>0?"half":"empty"),c.fills[i].style.width=`${(u*100).toFixed(2)}%`}f.setAttribute("aria-valuenow",String(c.value)),f.setAttribute("aria-valuetext",g(c)),c.valueEl&&(c.valueEl.textContent=o(c))},f.__latSet=i=>{c.value=k(i,r,n),f.__latPaint()},f.__latClear=()=>{c.value=0,f.__latPaint()},f.__latPick=(i,u)=>{let j=i+1;if(n&&u&&Number.isFinite(u.clientX)){const H=c.items[i].getBoundingClientRect();H&&H.width>0&&(j=u.clientX-H.left<H.width/2?i+.5:i+1)}p&&j===c.value&&(j=0),f.__latSet(j),O(f,d.doc)},f.addEventListener("click",i=>{if(c.disabled||c.readOnly)return;const u=i.target&&i.target.closest?i.target.closest(".lat-form__rating-item"):null;!u||!f.contains(u)||f.__latPick(Number(u.getAttribute("data-index")),i)}),f.__latKey=i=>{if(c.disabled||c.readOnly)return;const u=n?.5:1;let j=c.value;if(i.key==="ArrowRight"||i.key==="ArrowUp")j+=u;else if(i.key==="ArrowLeft"||i.key==="ArrowDown")j-=u;else if(i.key==="Home")j=0;else if(i.key==="End")j=r;else if(i.key==="Backspace"||i.key==="Delete")j=0;else return;i.preventDefault(),f.__latSet(j),O(f,d.doc)},f.addEventListener("keydown",f.__latKey),f.__latPaint(),f},read(a){return a.__latRating?a.__latRating.value:0},write(a,d){a.__latRating&&(a.__latRating.value=k(d,a.__latRating.max,a.__latRating.allowHalf),a.__latPaint())},state(a,d){const h=a.__latRating;h&&(h.disabled=d.disabled===!0,h.readOnly=d.readOnly===!0,a.tabIndex=h.disabled?-1:0,h.readOnly?a.setAttribute("aria-readonly","true"):a.removeAttribute("aria-readonly"),h.disabled?a.setAttribute("aria-disabled","true"):a.removeAttribute("aria-disabled"))}});function g(a){const d=Math.round(a.value);return a.labels&&a.labels[d-1]&&a.value===d?a.labels[d-1]:`${a.value} of ${a.max}`}function o(a){return String(a.value)}}),Te("packages/modules/form/controls/stage.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl;function x(T,O){const w=O&&O.defaultView,k=w&&w.Event,E=k?new k("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};T.dispatchEvent(E)}function te(T,O){return typeof O=="number"&&Number.isFinite(O)?Math.min(Math.max(Math.round(O),0),T.length-1):typeof O=="string"?T.indexOf(O):-1}function _(T,O,w){return`${T}, ${O+1} of ${w}`}I("stage",{kind:"field",build(T,O){const w=O.doc,k=T.props||{},E=Array.isArray(k.stages)?k.stages.map(n=>String(n)):[],g=k.clickable!==!1,o=k.showIcons!==!1,a=te(E,T.value!=null?T.value:k.current),d=te(E,k.completed),h=w.createElement("div");h.className="lat-form__stage",h.setAttribute("role","radiogroup"),h.setAttribute("aria-label",T.label!=null?String(T.label):O.t("form.stage"));const t=[],r={stages:E,value:a>=0?E[a]:null,index:a,completed:d,clickable:g,showIcons:o,disabled:!1,readOnly:!1,focus:a>=0?a:0};h.__latStage=r;for(let n=0;n<E.length;n++){const p=w.createElement(g?"button":"span");if(p.type=g?"button":void 0,p.className="lat-form__stage-step",p.setAttribute("data-index",String(n)),g&&(p.setAttribute("role","radio"),p.setAttribute("aria-label",_(E[n],n,E.length))),o){const b=w.createElementNS("http://www.w3.org/2000/svg","svg");b.setAttribute("viewBox","0 0 16 16"),b.setAttribute("aria-hidden","true"),b.setAttribute("class","lat-form__stage-check");const m=w.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d","M3 8.5l3 3 7-7"),m.setAttribute("fill","none"),m.setAttribute("stroke","currentColor"),m.setAttribute("stroke-width","2"),m.setAttribute("stroke-linecap","round"),m.setAttribute("stroke-linejoin","round"),b.appendChild(m),p.appendChild(b)}const y=w.createElement("span");y.className="lat-form__stage-label",y.textContent=E[n],p.appendChild(y),h.appendChild(p),t.push(p)}return h.__latPaint=()=>{for(let n=0;n<t.length;n++){const p=n===r.index,y=!p&&r.completed>=0&&n<=r.completed;t[n].setAttribute("data-state",p?"current":y?"done":"todo"),r.clickable&&(t[n].setAttribute("aria-checked",p?"true":"false"),t[n].tabIndex=r.disabled?-1:n===r.focus?0:-1)}},h.__latSelect=n=>{const p=n>=0&&n<E.length?E[n]:null;p!==r.value&&(r.index=n>=0&&n<E.length?n:-1,r.value=p,r.focus=r.index>=0?r.index:0,h.__latPaint(),x(h,O.doc))},h.__latKey=n=>{if(r.disabled||r.readOnly||!r.clickable||!E.length)return;let p=r.focus;if(n.key==="ArrowRight"||n.key==="ArrowDown")p+=1;else if(n.key==="ArrowLeft"||n.key==="ArrowUp")p-=1;else if(n.key==="Home")p=0;else if(n.key==="End")p=E.length-1;else return;n.preventDefault();const y=Math.min(Math.max(p,0),E.length-1);r.focus=y,t[y].focus(),h.__latSelect(y)},g&&(h.addEventListener("click",n=>{if(r.disabled||r.readOnly)return;const p=n.target&&n.target.closest?n.target.closest(".lat-form__stage-step"):null;if(!p||!h.contains(p))return;const y=Number(p.getAttribute("data-index"));r.focus=y,h.__latSelect(y)}),h.addEventListener("keydown",h.__latKey)),h.__latPaint(),h},read(T){return T.__latStage?T.__latStage.value:null},write(T,O){const w=T.__latStage;if(!w)return;const k=O==null?-1:te(w.stages,O);w.index=k,w.value=k>=0?w.stages[k]:null,w.focus=k>=0?k:0,T.__latPaint()},state(T,O){const w=T.__latStage;w&&(w.disabled=O.disabled===!0,w.readOnly=O.readOnly===!0,w.readOnly?T.setAttribute("aria-readonly","true"):T.removeAttribute("aria-readonly"),w.disabled?T.setAttribute("aria-disabled","true"):T.removeAttribute("aria-disabled"),T.__latPaint())}})}),Te("packages/modules/form/controls/chips.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x="M3 8.5l3 3 7-7";function te(O,w){const k=w&&w.defaultView,E=k&&k.Event,g=E?new E("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};O.dispatchEvent(g)}function _(O){if(typeof O=="string")return{value:O,label:O,icon:null,disabled:!1};if(O!==null&&typeof O=="object"){const w=O.value===void 0?String(O.label):O.value;return{value:w,label:O.label==null?String(w):String(O.label),icon:typeof O.icon=="string"&&O.icon!==""?O.icon:null,disabled:O.disabled===!0}}return{value:O,label:String(O),icon:null,disabled:!1}}function T(O,w,k){const E=O.createElementNS("http://www.w3.org/2000/svg","svg");E.setAttribute("viewBox","0 0 16 16"),E.setAttribute("focusable","false"),E.setAttribute("aria-hidden","true");const g=O.createElementNS("http://www.w3.org/2000/svg","path");return g.setAttribute("d",w),k?g.setAttribute("fill","currentColor"):(g.setAttribute("fill","none"),g.setAttribute("stroke","currentColor"),g.setAttribute("stroke-width","2"),g.setAttribute("stroke-linecap","round"),g.setAttribute("stroke-linejoin","round")),E.appendChild(g),E}I("chips",{kind:"field",build(O,w){const k=w.doc,E=O.props||{},g=(Array.isArray(O.options)?O.options:[]).map(_),o=E.multiple===!0,a=E.allowEmpty===!0,d=E.wrap!==!1,h=O.max!=null&&Number.isFinite(Number(O.max))?Number(O.max):null,t=k.createElement("div");t.className=`lat-form__chips${d?"":" lat-form__chips--scroll"}`,t.setAttribute("role",o?"group":"radiogroup"),t.setAttribute("aria-label",O.label!=null?String(O.label):w.t("form.chips"));const r=[],n=new Set,p={options:g,multiple:o,allowEmpty:a,wrap:d,max:h,selected:n,disabled:!1,readOnly:!1,t:w.t};t.__latChips=p;for(let b=0;b<g.length;b++){const m=g[b],V=k.createElement("button");if(V.type="button",V.className="lat-form__chip",V.setAttribute("data-index",String(b)),V.disabled=m.disabled,o||V.setAttribute("role","radio"),m.icon){const f=T(k,m.icon,!0);f.setAttribute("class","lat-form__chip-icon"),V.appendChild(f)}const l=k.createElement("span");if(l.className="lat-form__chip-label",l.textContent=m.label,V.appendChild(l),o){const f=T(k,x,!1);f.setAttribute("class","lat-form__chip-check"),V.appendChild(f)}t.appendChild(V),r.push(V)}p.buttons=r,t.__latPaint=()=>{for(let b=0;b<r.length;b++){const m=g[b],V=n.has(m.value),l=r[b];l.disabled=m.disabled||p.disabled,o?(l.setAttribute("aria-pressed",V?"true":"false"),l.tabIndex=p.disabled?-1:0):(l.setAttribute("aria-checked",V?"true":"false"),l.tabIndex=p.disabled?-1:V?0:-1)}},t.__latValue=()=>{if(o)return g.filter(b=>n.has(b.value)).map(b=>b.value);for(const b of g)if(n.has(b.value))return b.value;return null},t.__latToggle=b=>{const m=g[b];if(!(!m||m.disabled||p.disabled||p.readOnly)){if(o)if(n.has(m.value))n.delete(m.value);else{if(h!=null&&n.size>=h)return;n.add(m.value)}else if(n.has(m.value))if(p.allowEmpty)n.clear();else return;else n.clear(),n.add(m.value);t.__latPaint(),te(t,w.doc)}},t.addEventListener("click",b=>{const m=b.target&&b.target.closest?b.target.closest(".lat-form__chip"):null;!m||!t.contains(m)||t.__latToggle(Number(m.getAttribute("data-index")))}),t.__latKey=b=>{if(p.multiple||p.disabled||p.readOnly||!r.length)return;let m=-1;for(let c=0;c<r.length;c++)if(n.has(g[c].value)){m=c;break}let V=m;if(b.key==="ArrowRight"||b.key==="ArrowDown")V=m+1;else if(b.key==="ArrowLeft"||b.key==="ArrowUp")V=m-1;else if(b.key==="Home")V=0;else if(b.key==="End")V=g.length-1;else return;b.preventDefault();const l=b.key==="ArrowLeft"||b.key==="ArrowUp"?-1:1;let f=V;for(;f>=0&&f<g.length&&g[f].disabled;)f+=l;f<0||f>=g.length||(n.clear(),n.add(g[f].value),t.__latPaint(),r[f].focus(),te(t,w.doc))},t.addEventListener("keydown",t.__latKey);const y=O.value;if(o){const b=Array.isArray(y)?y:[];for(const m of b)g.some(V=>V.value===m)&&n.add(m)}else if(y!=null&&g.some(b=>b.value===y))n.add(y);else if(!a){const b=g.find(m=>!m.disabled)||g[0];b&&n.add(b.value)}return t.__latPaint(),t},read(O){return O.__latChips?O.__latValue():null},write(O,w){const k=O.__latChips;if(k){if(k.selected.clear(),k.multiple){const E=Array.isArray(w)?w:[];for(const g of E)k.options.some(o=>o.value===g)&&k.selected.add(g)}else if(w!=null&&k.options.some(E=>E.value===w))k.selected.add(w);else if(!k.allowEmpty){const E=k.options.find(g=>!g.disabled)||k.options[0];E&&k.selected.add(E.value)}O.__latPaint()}},validate(O,w,k){const E=O.__latChips;if(!E||!E.multiple)return null;const g=Array.isArray(k)?k.length:0,o=w.min!=null&&Number.isFinite(Number(w.min))?Number(w.min):null,a=w.max!=null&&Number.isFinite(Number(w.max))?Number(w.max):null;return o!=null&&g<o?{code:"min",message:E.t("form.chips.min",{min:String(o)})}:a!=null&&g>a?{code:"max",message:E.t("form.chips.max",{max:String(a)})}:null},state(O,w){const k=O.__latChips;k&&(k.disabled=w.disabled===!0,k.readOnly=w.readOnly===!0,k.readOnly?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly"),k.disabled?O.setAttribute("aria-disabled","true"):O.removeAttribute("aria-disabled"),O.__latPaint())}})}),Te("packages/modules/form/controls/otp.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=6;function te(a){const d=Math.floor(Number(a));return Number.isFinite(d)&&d>=1?d:x}function _(a){return a==="alphanumeric"?"alphanumeric":"numeric"}function T(a,d){return d==="numeric"?/^[0-9]$/.test(a):/^[A-Za-z0-9]$/.test(a)}function O(a,d){for(let h=a.length-1;h>=0;h-=1)if(T(a[h],d))return a[h];return""}function w(a,d,h){return(a==null?"":String(a)).replace(/[\s-]/g,"").split("").filter(r=>T(r,d)).slice(0,h)}function k(a,d,h){const t=d&&d.defaultView,r=t&&t.Event,n=r?new r(h,{bubbles:!0}):{type:h,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};a.dispatchEvent(n)}function E(a,d){const h=w(d,a.mode,a.length);for(let t=0;t<a.length;t+=1)a.boxes[t].value=h[t]||""}function g(a){a.complete=a.boxes.every(d=>d.value!=="")}function o(a){return a.boxes.map(d=>d.value).join("")}I("otp",{kind:"field",domEvents:["complete"],build(a,d){const h=d.doc,t=a.props||{},r=te(t.length),n=_(a.mode!=null?a.mode:t.mode),p=t.mask===!0,y=h.createElement("div");y.className="lat-form__otp",y.setAttribute("role","group"),y.setAttribute("aria-label",a.label!=null&&a.label!==""?String(a.label):d.t("form.otp.label"));const b=[],m={length:r,mode:n,mask:p,boxes:b,complete:!1,disabled:!1,readOnly:!1};y.__latOtp=m;for(let l=0;l<r;l+=1){const f=h.createElement("input");f.type="text",f.className=`lat-form__otp-input${p?" lat-form__otp-input--masked":""}`,f.setAttribute("inputmode",n==="numeric"?"numeric":"text"),f.setAttribute("pattern",n==="numeric"?"[0-9]":"[A-Za-z0-9]"),f.setAttribute("maxlength","1"),f.setAttribute("aria-label",d.t("form.otp.digit",{n:l+1,total:r})),f.autocomplete=l===0?"one-time-code":"off",b.push(f),y.appendChild(f)}const V=()=>{if(y.__latPublishing)return;y.__latPublishing=!0;try{k(y,h,"input"),k(y,h,"change")}finally{y.__latPublishing=!1}const l=b.every(f=>f.value!=="");l&&!m.complete?(m.complete=!0,k(y,h,"complete")):!l&&m.complete&&(m.complete=!1)};return y.addEventListener("input",l=>{if(y.__latPublishing)return;l.stopImmediatePropagation();const f=l.target;if(!b.includes(f))return;f.value=O(f.value,n);const c=b.indexOf(f);f.value!==""&&c<r-1&&b[c+1].focus(),V()}),y.addEventListener("change",l=>{y.__latPublishing||l.stopImmediatePropagation()}),y.addEventListener("keydown",l=>{if(m.disabled||m.readOnly)return;const f=l.target;if(!b.includes(f))return;const c=b.indexOf(f);l.key==="Backspace"?(l.preventDefault(),f.value!==""?f.value="":c>0&&(b[c-1].value="",b[c-1].focus()),V()):l.key==="ArrowLeft"&&c>0?(l.preventDefault(),b[c-1].focus()):l.key==="ArrowRight"&&c<r-1?(l.preventDefault(),b[c+1].focus()):l.key.length===1&&!T(l.key,n)&&!l.ctrlKey&&!l.metaKey&&!l.altKey&&l.preventDefault()}),y.addEventListener("paste",l=>{if(m.disabled||m.readOnly)return;l.preventDefault();const f=l.clipboardData&&typeof l.clipboardData.getData=="function"?l.clipboardData.getData("text"):"";E(m,f),(b.find(s=>s.value==="")||b[r-1]).focus(),V()}),y.focus=()=>{const l=b.find(f=>!f.disabled&&!f.readOnly&&f.value==="")||b[0];l&&l.focus()},y.blur=()=>{for(const l of b)l.blur()},E(m,a.value),g(m),y},read(a){return a.__latOtp?o(a.__latOtp):""},write(a,d){a.__latOtp&&(E(a.__latOtp,d),g(a.__latOtp))},state(a,d){const h=a.__latOtp;if(h){h.disabled=d.disabled===!0,h.readOnly=d.readOnly===!0;for(const t of h.boxes)t.disabled=h.disabled,t.readOnly=h.readOnly;h.disabled?a.setAttribute("aria-disabled","true"):a.removeAttribute("aria-disabled"),h.readOnly?a.setAttribute("aria-readonly","true"):a.removeAttribute("aria-readonly")}}})}),Te("packages/modules/form/controls/color.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,x=X("packages/modules/form/controls/field-icon.js"),te=x.makeFieldIcon,_=x.injectFieldIconStyles,T=X("packages/modules/form/controls/swatches.js"),O=T.DEFAULT_PALETTE,w=T.DEFAULT_GRAY_SHADES,k=T.buildSwatchGrid,E=T.hslToHex,g=10,o=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,a=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function d(S){return S}const h=new Set;function t(S,z){h.has(S)||(h.add(S),console.warn("[lattice]",z))}function r(S){if(typeof S!="string")return null;const z=S.trim();if(!o.test(z))return null;const F=z.replace(/^#/,"").toLowerCase();return`#${F.length===3?F.split("").map(B=>B+B).join(""):F}`}function n(S){if(typeof S!="string")return null;const z=r(S);if(z)return z;const F=a.exec(S.trim());if(!F)return null;const v=W=>Math.max(0,Math.min(255,Number(W))),B=W=>v(W).toString(16).padStart(2,"0");return`#${B(F[1])}${B(F[2])}${B(F[3])}`}function p(S){const z=r(S);return z?{r:parseInt(z.slice(1,3),16),g:parseInt(z.slice(3,5),16),b:parseInt(z.slice(5,7),16)}:null}function y(S,z,F){const v=B=>Math.max(0,Math.min(255,Math.round(B))).toString(16).padStart(2,"0");return`#${v(S)}${v(z)}${v(F)}`}function b(S,z,F){const v=S/255,B=z/255,W=F/255,ne=Math.max(v,B,W),re=Math.min(v,B,W),ce=(ne+re)/2,N=ne-re;if(N===0)return{h:0,s:0,l:ce};const K=ce>.5?N/(2-ne-re):N/(ne+re);let oe;return ne===v?oe=(B-W)/N%6:ne===B?oe=(W-v)/N+2:oe=(v-B)/N+4,oe*=60,oe<0&&(oe+=360),{h:oe,s:K,l:ce}}function m(S){return E(S.h,S.s,S.l)}function V(S,z,F){const v=S.ownerDocument,B=v&&v.defaultView,W=B&&typeof B.CustomEvent=="function"?B.CustomEvent:null,ne=W?new W(z,{bubbles:!0,detail:F}):{type:z,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:F,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};S.dispatchEvent(ne)}function l(S){const z=S.props&&S.props.palette;return Array.isArray(z)&&z.length?z:O}function f(S){return!(S.props&&S.props.editable===!1)}function c(S){return!!(S.props&&S.props.clearable===!0)}function s(S){return!!(S.props&&S.props.pickerOnly===!0)}function i(S){return!(S.props&&S.props.grayShades===!1)}function u(S){const z=S.props&&S.props.icon;return typeof z=="string"&&z!==""?z:null}function j(S){const z=S.props&&S.props.customColors;return Array.isArray(z)?[...new Set(z.map(n).filter(Boolean))].slice(0,g):[]}function H(S){const z=r(S.__input.value);S.__swatchBtn.style.background=z||"transparent",S.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!z),S.__clearBtn&&(S.__clearBtn.hidden=S.__input.value.trim()==="")}function M(S,z){S.__value=z||null,S.__input.value=z||"",S.__lastCommittedText=z||"",H(S)}function D(S){if(f(S.__item)===!1)return;const z=S.__input.value.trim();if(z===S.__lastCommittedText)return;const F=r(z);(F||z==="")&&(S.__value=F,S.__lastCommittedText=z),V(S,"change")}function Q(S,z){M(S,z),V(S,"change")}function Z(S,z){const F=S.__customColors,v=F.filter(W=>W!==z),B=[z,...v].slice(0,g);B.length===F.length&&B.every((W,ne)=>W===F[ne])||(S.__customColors=B,V(S,"customColorsChange",{colors:B}))}function ae(S){const z=S.__popover,F=S.ownerDocument,v=F&&F.defaultView,B=S.__field.getBoundingClientRect(),W=v?v.innerHeight:0,ne=z.offsetHeight||0;W-B.bottom<ne+4&&B.top>ne+4?z.classList.add("lat-form__color-popover--above"):z.classList.remove("lat-form__color-popover--above")}function Y(S,z,F,v){let B=Math.max(0,Math.min(S.length-1,z.row+F)),W=z.col+v;if(v!==0){const ne=S[B].length;W=Math.max(0,Math.min(ne-1,W))}else W=Math.max(0,Math.min(S[B].length-1,W));return{row:B,col:W}}function q(S){const z=S.__item,F=S.ownerDocument,v=S.__popover;for(;v.firstChild;)v.removeChild(v.firstChild);const B=[...l(z)];i(z)&&B.push([...w]),S.__customColors.length&&B.push([...S.__customColors]);const W=S.__value,{el:ne,rows:re}=k(F,B,{isSelected:N=>N===W,onPick:N=>{Q(S,N),me(S,{restoreFocus:!0})}});ne.classList.add("lat-form__color-grid"),v.appendChild(ne);for(const N of re)for(const K of N){if(K.getAttribute("aria-selected")!=="true")continue;const oe=F.createElementNS("http://www.w3.org/2000/svg","svg");oe.setAttribute("viewBox","0 0 16 16"),oe.setAttribute("class","lat-form__color-check"),oe.setAttribute("aria-hidden","true");const R=F.createElementNS("http://www.w3.org/2000/svg","path");R.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),R.setAttribute("fill","none"),R.setAttribute("stroke","#fff"),R.setAttribute("stroke-width","2.6"),R.setAttribute("stroke-linecap","round"),R.setAttribute("stroke-linejoin","round"),R.setAttribute("paint-order","stroke"),oe.appendChild(R);const P=F.createElementNS("http://www.w3.org/2000/svg","path");P.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),P.setAttribute("fill","none"),P.setAttribute("stroke","#000"),P.setAttribute("stroke-width","4.2"),P.setAttribute("stroke-linecap","round"),P.setAttribute("stroke-linejoin","round"),P.setAttribute("opacity","0.35"),oe.insertBefore(P,R),K.appendChild(oe)}let ce={row:0,col:0};e:for(let N=0;N<re.length;N++)for(let K=0;K<re[N].length;K++)if(re[N][K].getAttribute("aria-selected")==="true"){ce={row:N,col:K};break e}for(const N of re)for(const K of N)K.tabIndex=-1;if(re[ce.row]&&re[ce.row][ce.col]&&(re[ce.row][ce.col].tabIndex=0),ne.addEventListener("keydown",N=>{if(N.key==="Enter"||N.key===" "){N.preventDefault(),N.stopPropagation(),re[ce.row][ce.col].click();return}const oe={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[N.key];if(!oe)return;N.preventDefault();for(const P of re)for(const L of P)L.tabIndex=-1;ce=Y(re,ce,oe[0],oe[1]);const R=re[ce.row][ce.col];R.tabIndex=0,R.focus()}),!s(z)){const N=F.createElement("button");N.type="button",N.className="lat-form__color-custombtn",N.textContent=S.__t("form.color.customColor"),N.addEventListener("click",()=>{Re(S,W)}),v.appendChild(N)}ae(S)}function Re(S,z){const F=S.__item,v=S.ownerDocument,B=S.__popover;for(;B.firstChild;)B.removeChild(B.firstChild);const W=p(z)||{r:0,g:0,b:0},ne=b(W.r,W.g,W.b),re=v.createElement("div");re.className="lat-form__color-picker",B.appendChild(re);const ce=v.createElement("div");ce.className="lat-form__color-plane",ce.setAttribute("role","slider"),ce.setAttribute("aria-label",S.__t("form.color.saturationLightness")),ce.tabIndex=0;const N=v.createElement("div");N.className="lat-form__color-plane-thumb",ce.appendChild(N),re.appendChild(ce);const K=v.createElement("div");K.className="lat-form__color-hue",K.setAttribute("role","slider"),K.setAttribute("aria-label",S.__t("form.color.hue")),K.tabIndex=0;const oe=v.createElement("div");oe.className="lat-form__color-hue-thumb",K.appendChild(oe),re.appendChild(K);const R=v.createElement("div");R.className="lat-form__color-fields";const P=v.createElement("input");P.type="text",P.className="lat-form__color-hexfield",P.setAttribute("aria-label",S.__t("form.color.hexLabel"));const L=v.createElement("input");L.type="number",L.min="0",L.max="255",L.className="lat-form__color-rgbfield",L.setAttribute("aria-label",S.__t("form.color.redLabel"));const C=v.createElement("input");C.type="number",C.min="0",C.max="255",C.className="lat-form__color-rgbfield",C.setAttribute("aria-label",S.__t("form.color.greenLabel"));const U=v.createElement("input");U.type="number",U.min="0",U.max="255",U.className="lat-form__color-rgbfield",U.setAttribute("aria-label",S.__t("form.color.blueLabel")),R.appendChild(P),R.appendChild(L),R.appendChild(C),R.appendChild(U),re.appendChild(R);const J=v.createElement("div");J.className="lat-form__color-previewrow";const ie=v.createElement("span");ie.className="lat-form__color-preview",J.appendChild(ie),re.appendChild(J);const fe=v.createElement("div");if(fe.className="lat-form__color-actions",!s(F)){const G=v.createElement("button");G.type="button",G.className="lat-form__color-back",G.textContent=S.__t("form.back"),G.addEventListener("click",()=>{q(S)}),fe.appendChild(G)}const xe=v.createElement("button");xe.type="button",xe.className="lat-form__color-select",xe.textContent=S.__t("form.color.select"),fe.appendChild(xe),re.appendChild(fe);const _e=()=>{const G=m(ne),de=p(G);ce.style.setProperty("--lat-color-hue",String(ne.h)),N.style.left=`${ne.s*100}%`,N.style.top=`${(1-ne.l)*100}%`,oe.style.left=`${ne.h/360*100}%`,P.value=G,L.value=String(de.r),C.value=String(de.g),U.value=String(de.b),ie.style.background=G,ce.setAttribute("aria-valuetext",G),K.setAttribute("aria-valuenow",String(Math.round(ne.h)))};_e();const Le=(G,de,ye)=>{const be=G.getBoundingClientRect();if(!be.width||!be.height)return;const we=Math.max(0,Math.min(1,(de.clientX-be.left)/be.width)),Be=Math.max(0,Math.min(1,(de.clientY-be.top)/be.height));ye(we,Be)},Se=(G,de)=>{let ye=!1;G.addEventListener("pointerdown",be=>{ye=!0,Le(G,be,de)}),v.addEventListener("pointermove",be=>{ye&&Le(G,be,de)}),v.addEventListener("pointerup",()=>{ye=!1})};Se(ce,(G,de)=>{ne.s=G,ne.l=1-de,_e()}),Se(K,G=>{ne.h=G*360,_e()}),ce.addEventListener("keydown",G=>{if(G.key==="Enter"){G.preventDefault(),G.stopPropagation(),ee();return}const de=G.shiftKey?.1:.02;if(G.key==="ArrowLeft")ne.s=Math.max(0,ne.s-de);else if(G.key==="ArrowRight")ne.s=Math.min(1,ne.s+de);else if(G.key==="ArrowUp")ne.l=Math.min(1,ne.l+de);else if(G.key==="ArrowDown")ne.l=Math.max(0,ne.l-de);else return;G.preventDefault(),_e()}),K.addEventListener("keydown",G=>{if(G.key==="Enter"){G.preventDefault(),G.stopPropagation(),ee();return}const de=G.shiftKey?10:2;if(G.key==="ArrowLeft"||G.key==="ArrowDown")ne.h=(ne.h-de+360)%360;else if(G.key==="ArrowRight"||G.key==="ArrowUp")ne.h=(ne.h+de)%360;else return;G.preventDefault(),_e()});const Pe=()=>{const G=r(P.value);if(!G){P.value=m(ne);return}const de=p(G);Object.assign(ne,b(de.r,de.g,de.b)),_e()};P.addEventListener("change",Pe);const A=()=>{const G=de=>Math.max(0,Math.min(255,Number(de)||0));Object.assign(ne,b(G(L.value),G(C.value),G(U.value))),_e()};L.addEventListener("change",A),C.addEventListener("change",A),U.addEventListener("change",A);const ee=()=>{const G=m(ne);Q(S,G),Z(S,G),me(S,{restoreFocus:!0})};xe.addEventListener("click",ee);const pe=G=>de=>{de.key==="Enter"&&(de.preventDefault(),de.stopPropagation(),G(),ee())};P.addEventListener("keydown",pe(Pe)),L.addEventListener("keydown",pe(A)),C.addEventListener("keydown",pe(A)),U.addEventListener("keydown",pe(A)),ae(S)}function ke(S){S.__open||S.__item.disabled===!0||S.__item.readOnly===!0||(S.__open=!0,S.__popover.hidden=!1,s(S.__item)||S.__item.mode==="picker"?Re(S,S.__value):q(S))}function me(S,z={}){if(S.__open){for(S.__open=!1,S.__popover.hidden=!0,S.__popover.classList.remove("lat-form__color-popover--above");S.__popover.firstChild;)S.__popover.removeChild(S.__popover.firstChild);z.restoreFocus&&S.__input.focus()}}I("color",{kind:"field",domEvents:["customColorsChange"],build(S,z){const F=z.doc;_(F);const v=F.createElement("div");v.className="lat-form__color",v.__item=S,v.__t=z.t||d,v.__open=!1,v.__value=n(S.value),v.__customColors=j(S);const B=F.createElement("div");B.className="lat-form__color-field",v.__field=B;const W=F.createElement("button");W.type="button",W.className="lat-form__color-swatch",W.setAttribute("aria-label",v.__t("form.color.open")),v.__swatchBtn=W;const ne=F.createElement("input");ne.type="text",ne.className="lat-form__color-input",S.name&&(ne.name=S.name),S.placeholder!=null&&(ne.placeholder=String(S.placeholder)),S.label!=null&&S.label!==""&&ne.setAttribute("aria-label",String(S.label)),ne.setAttribute("autocomplete","off"),ne.readOnly=!f(S),v.__input=ne,B.appendChild(W),B.appendChild(ne);let re=null;if(c(S)){re=F.createElement("button"),re.type="button",re.className="lat-form__color-clear",re.setAttribute("aria-label",v.__t("form.color.clear"));const C=te(F,"close");C&&re.appendChild(C),re.addEventListener("click",()=>{Q(v,null),ne.focus()}),B.appendChild(re)}v.__clearBtn=re;const ce=F.createElement("button");ce.type="button",ce.className="lat-form__color-toggle",ce.setAttribute("aria-label",v.__t("form.color.open"));const N=u(S),K=N?te(F,N):te(F,"chevronDown");K&&ce.appendChild(K),v.__toggleBtn=ce,B.appendChild(ce),v.appendChild(B);const oe=F.createElement("div");oe.className="lat-form__color-popover",oe.hidden=!0,v.__popover=oe,v.appendChild(oe),M(v,v.__value);const R=()=>{v.__open?me(v):ke(v)};W.addEventListener("click",R),ce.addEventListener("click",R),ne.addEventListener("input",()=>{H(v)}),ne.addEventListener("change",C=>{C.stopPropagation(),D(v)}),ne.addEventListener("keydown",C=>{C.key==="Enter"?(C.preventDefault(),D(v)):C.key==="Escape"&&v.__open?me(v):C.altKey&&C.key==="ArrowDown"&&(C.preventDefault(),ke(v))}),v.addEventListener("keydown",C=>{C.target!==ne&&(C.key==="Enter"&&!v.__open||C.altKey&&C.key==="ArrowDown"?(C.preventDefault(),ke(v)):C.key==="Escape"&&v.__open&&(C.preventDefault(),me(v,{restoreFocus:!0})))});const P=C=>{!v.__open||v.contains(C.target)||me(v)},L=C=>{v.__open&&(C.relatedTarget&&v.contains(C.relatedTarget)||me(v))};return F.addEventListener("pointerdown",P),v.addEventListener("focusout",L),Array.isArray(z.disposers)&&z.disposers.push(()=>{F.removeEventListener("pointerdown",P),v.removeEventListener("focusout",L)}),v},read(S){const z=S.__input.value.trim();return z===""?null:r(z)||z},write(S,z){if(z==null||z===""){S.__value=null,M(S,null);return}const F=n(z);if(!F){t("form.color.setValue",`form.color: "${String(z)}" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.`);return}S.__value=F,M(S,F)},state(S,z){const F=z.disabled===!0||z.readOnly===!0;S.__input.disabled=z.disabled===!0,S.__input.readOnly=z.readOnly===!0||!f(z),S.__swatchBtn.disabled=F,S.__toggleBtn.disabled=F,S.__clearBtn&&(S.__clearBtn.disabled=F),F&&me(S)},validate(S,z,F){return F==null||typeof F=="string"&&/^#[0-9a-f]{6}$/.test(F)?!0:typeof z.errorMessage=="string"&&z.errorMessage!==""?z.errorMessage:S.__t("form.color.invalidHex")},focus(S){S.__input.focus()}})}),Te("packages/dom/src/cell/renderers/barcode/support.js",function($,X){"use strict";Object.defineProperty($,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"joinCharacters",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"buildPattern",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"mod10Weighted",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"MOD43_ORDER",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"mod43Check",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"weightedModulo",{enumerable:!0,get:function(){return O}});function e(w){const k=[];for(let E=0;E<w.length;E++){const g=E%2===0?1:0;for(let o=0;o<w[E];o++)k.push(g)}return k}function I(w,k){const E=[];return w.forEach((g,o)=>{if(o>0&&k>0)for(let a=0;a<k;a++)E.push(0);E.push(...g)}),E}function x(w,k){return I(w.map(e),k)}function te(w,k=3){let E=0,g=k;for(let o=w.length-1;o>=0;o--)E+=Number(w[o])*g,g=g===3?1:3;return(10-E%10)%10}const _="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function T(w){let k=0;for(const E of w){const g=_.indexOf(E);if(g<0)return null;k+=g}return _[k%43]}function O(w,k,E=11){let g=0,o=1;for(let a=w.length-1;a>=0;a--)g+=w[a]*o,o=o===k?1:o+1;return g%E}}),Te("packages/dom/src/cell/renderers/barcode/code39.js",function($,X){"use strict";Object.defineProperty($,"toExtendedSymbols",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"decodeExtendedSymbols",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"encodeCode39",{enumerable:!0,get:function(){return h}});const e=X("packages/dom/src/cell/renderers/barcode/support.js"),I=e.buildPattern,x=e.mod43Check,te=e.MOD43_ORDER,_=2,T=["000110100","100100001","001100001","101100000","000110001","100110000","001110000","000100101","100100100","001100100","100001001","001001001","101001000","000011001","100011000","001011000","000001101","100001100","001001100","000011100","100000011","001000011","101000010","000010011","100010010","001010010","000000111","100000110","001000110","000010110","110000001","011000001","111000000","010010001","110010000","011010000","010000101","110000100","011000100","010101000","010100010","010001010","000101010"],O="010010100";function w(t){return t.split("").map(r=>r==="1"?_:1)}function k(t){const r=te.indexOf(t);return r<0?null:w(T[r])}function E(){const t=new Map,r=n=>String.fromCharCode(65+n);for(let n=1;n<=26;n++)t.set(n,`$${r(n-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((n,p)=>t.set(27+p,n));for(let n=33;n<=44;n++)t.set(n,`/${r(n-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let n=59;n<=63;n++)t.set(n,`%${r(n-59+5)}`);t.set(64,"%V");for(let n=91;n<=95;n++)t.set(n,`%${r(n-91+10)}`);t.set(96,"%W");for(let n=97;n<=122;n++)t.set(n,`+${r(n-97)}`);for(let n=123;n<=127;n++)t.set(n,`%${r(n-123+15)}`);return t}const g=E(),o=new Map([...g].map(([t,r])=>[r,t]));function a(t){const r=[];for(const n of t){const p=n.codePointAt(0);if(p>127)return null;if(te.includes(n)){r.push(n);continue}const y=g.get(p);if(!y)return null;r.push(y[0],y[1])}return r}function d(t){let r="";for(let n=0;n<t.length;n++){const p=t[n]+(t[n+1]??"");if(o.has(p)){r+=String.fromCharCode(o.get(p)),n++;continue}r+=t[n]}return r}function h(t,r={}){const n=t==null?"":String(t);if(n==="")return{ok:!1,reason:"empty"};const p=r.extended?a(n):n.split("");if(!p)return{ok:!1,reason:"charset"};const y=[w(O)];for(const b of p){const m=k(b);if(!m)return{ok:!1,reason:"charset"};y.push(m)}if(r.checkDigit){const b=x(p.join(""));return b==null?{ok:!1,reason:"charset"}:(y.push(k(b)),y.push(w(O)),{ok:!0,modules:I(y,1),text:`${n}${b}`})}return y.push(w(O)),{ok:!0,modules:I(y,1),text:n}}}),Te("packages/dom/src/cell/renderers/barcode/ean.js",function($,X){"use strict";Object.defineProperty($,"L_PATTERNS",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"G_PATTERNS",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"R_PATTERNS",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"EAN13_PARITY",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"encodeEan13",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"encodeEan8",{enumerable:!0,get:function(){return E}});const I=X("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,x=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],te=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],_=x.map(g=>g.split("").map(o=>o==="1"?"0":"1").join("")),T=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function O(g){return g.split("").map(Number)}function w(g,o){const a=g==null?"":String(g);if(!/^\d+$/.test(a))return null;if(a.length===o)return{digits:a,check:I(a)};if(a.length===o+1){const d=a.slice(0,o),h=Number(a[o]),t=I(d);return h!==t?null:{digits:d,check:t}}return null}function k(g){const o=w(g,12);if(!o)return{ok:!1,reason:"checkDigit"};const a=o.digits+o.check,d=T[Number(a[0])],h=a.slice(1,7).split("").map((n,p)=>(d[p]==="L"?x:te)[Number(n)]),t=a.slice(7).split("").map(n=>_[Number(n)]);return{ok:!0,modules:[...O("101"),...h.flatMap(O),...O("01010"),...t.flatMap(O),...O("101")],text:a}}function E(g){const o=w(g,7);if(!o)return{ok:!1,reason:"checkDigit"};const a=o.digits+o.check,d=a.slice(0,4).split("").map(r=>x[Number(r)]),h=a.slice(4).split("").map(r=>_[Number(r)]);return{ok:!0,modules:[...O("101"),...d.flatMap(O),...O("01010"),...h.flatMap(O),...O("101")],text:a}}}),Te("packages/dom/src/cell/renderers/barcode/upc.js",function($,X){"use strict";Object.defineProperty($,"encodeUpcA",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"encodeUpcE",{enumerable:!0,get:function(){return g}});const e=X("packages/dom/src/cell/renderers/barcode/ean.js"),I=e.L_PATTERNS,x=e.G_PATTERNS,te=e.encodeEan13,T=X("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function O(o){return o.split("").map(Number)}function w(o){const a=o==null?"":String(o);if(!/^\d{11,12}$/.test(a))return{ok:!1,reason:"checkDigit"};const d=te(`0${a}`);return d.ok?{ok:!0,modules:d.modules,text:d.text.slice(1)}:d}function k(o,a){const d=o.split(""),h=d[5];return h<="2"?`${d[0]}${d[1]}${h}0000${d[2]}${d[3]}${d[4]}`:h==="3"?`${d[0]}${d[1]}${d[2]}00000${d[3]}${d[4]}`:h==="4"?`${d[0]}${d[1]}${d[2]}${d[3]}00000${d[4]}`:`${d[0]}${d[1]}${d[2]}${d[3]}${d[4]}0000${h}`}const E={0:["EEEOOO","OOOEEE"],1:["EEOEOO","OOEOEE"],2:["EEOOEO","OOEEOE"],3:["EEOOOE","OOEEEO"],4:["EOEEOO","OEOOEE"],5:["EOOEEO","OEEOOE"],6:["EOOOEE","OEEEOO"],7:["EOEOEO","OEOEOE"],8:["EOEOOE","OEOEEO"],9:["EOOEOE","OEEOEO"]};function g(o){const a=o==null?"":String(o);if(!/^\d{6,8}$/.test(a))return{ok:!1,reason:"checkDigit"};let d,h,t=null;if(a.length===6?(d="0",h=a):a.length===7?(d=a[0],h=a.slice(1)):(d=a[0],h=a.slice(1,7),t=a[7]),d!=="0"&&d!=="1")return{ok:!1,reason:"checkDigit"};const r=k(h,d),n=T(d+r);if(t!=null&&Number(t)!==n)return{ok:!1,reason:"checkDigit"};const y=E[n][Number(d)].split("").map((m,V)=>(m==="O"?I:x)[Number(h[V])]);return{ok:!0,modules:[...O("101"),...y.flatMap(O),...O("010101")],text:`${d}${h}${n}`}}}),Te("packages/dom/src/cell/renderers/barcode/code93.js",function($,X){"use strict";Object.defineProperty($,"toExtendedSymbols",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"decodeExtendedSymbols",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"encodeCode93",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"PATTERNS",{enumerable:!0,get:function(){return x}}),Object.defineProperty($,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"SHIFT_ORDER",{enumerable:!0,get:function(){return I}}),Object.defineProperty($,"START_STOP",{enumerable:!0,get:function(){return te}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",I=["($)","(%)","(/)","(+)"],x=[[1,3,1,1,1,2],[1,1,1,2,1,3],[1,1,1,3,1,2],[1,1,1,4,1,1],[1,2,1,1,1,3],[1,2,1,2,1,2],[1,2,1,3,1,1],[1,1,1,1,1,4],[1,3,1,2,1,1],[1,4,1,1,1,1],[2,1,1,1,1,3],[2,1,1,2,1,2],[2,1,1,3,1,1],[2,2,1,1,1,2],[2,2,1,2,1,1],[2,3,1,1,1,1],[1,1,2,1,1,3],[1,1,2,2,1,2],[1,1,2,3,1,1],[1,2,2,1,1,2],[1,3,2,1,1,1],[1,1,1,1,2,3],[1,1,1,2,2,2],[1,1,1,3,2,1],[1,2,1,1,2,2],[1,3,1,1,2,1],[2,1,2,1,1,2],[2,1,2,2,1,1],[2,1,1,1,2,2],[2,1,1,2,2,1],[2,2,1,1,2,1],[2,2,2,1,1,1],[1,1,2,1,2,2],[1,1,2,2,2,1],[1,2,2,1,2,1],[1,2,3,1,1,1],[1,2,1,1,3,1],[3,1,1,1,1,2],[3,1,1,2,1,1],[3,2,1,1,1,1],[1,1,2,1,3,1],[1,1,3,1,2,1],[2,1,1,1,3,1],[1,2,1,2,2,1],[3,1,2,1,1,1],[3,1,1,1,2,1],[1,2,2,2,1,1]],te=[1,1,1,1,4,1];function _(t){const r=[];for(let n=0;n<t.length;n++){const p=n%2===0?1:0;for(let y=0;y<t[n];y++)r.push(p)}return r}function T(t){return x[t]}function O(t){return e.indexOf(t)}function w(){const t=new Map,r=43,n=44,p=45,y=46,b=m=>10+m;for(let m=1;m<=26;m++)t.set(m,[r,b(m-1)]);t.set(0,[n,b(20)]);for(let m=27;m<=31;m++)t.set(m,[n,b(m-27)]);for(let m=33;m<=44;m++)t.set(m,[p,b(m-33)]);t.set(47,[p,b(14)]),t.set(58,[p,b(25)]);for(let m=59;m<=63;m++)t.set(m,[n,b(m-59+5)]);t.set(64,[n,b(21)]);for(let m=91;m<=95;m++)t.set(m,[n,b(m-91+10)]);t.set(96,[n,b(22)]);for(let m=97;m<=122;m++)t.set(m,[y,b(m-97)]);for(let m=123;m<=127;m++)t.set(m,[n,b(m-123+15)]);return t}const k=w(),E=new Map([...k].map(([t,r])=>[r.join(","),t]));function g(t){const r=[];for(const n of t){const p=n.codePointAt(0);if(p>127)return null;const y=O(n);if(y>=0){r.push(y);continue}const b=k.get(p);if(!b)return null;r.push(b[0],b[1])}return r}function o(t){let r="";for(let n=0;n<t.length;n++){const p=`${t[n]},${t[n+1]??""}`;if(E.has(p)){r+=String.fromCharCode(E.get(p)),n++;continue}r+=e[t[n]]}return r}function a(t){let r=0,n=1;for(let p=t.length-1;p>=0;p--)r+=t[p]*n,n=n===20?1:n+1;return r%47}function d(t){const r=a(t),n=a([...t,r]);return{c:r,k:n}}function h(t,r={}){const n=t==null?"":String(t);if(n==="")return{ok:!1,reason:"empty"};const p=r.extended?g(n):(()=>{const l=[];for(const f of n){const c=O(f);if(c<0)return null;l.push(c)}return l})();if(!p)return{ok:!1,reason:"charset"};const{c:y,k:b}=d(p),m=[te];for(const l of p)m.push(T(l));return m.push(T(y)),m.push(T(b)),m.push(te),{ok:!0,modules:m.flatMap(_),text:n}}}),Te("packages/dom/src/cell/renderers/barcode/code128.js",function($,X){"use strict";Object.defineProperty($,"encodeCode128",{enumerable:!0,get:function(){return t}});const I=X("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,x=["212222","222122","222221","121223","121322","131222","122213","122312","132212","221213","221312","231212","112232","122132","122231","113222","123122","123221","223211","221132","221231","213212","223112","312131","311222","321122","321221","312212","322112","322211","212123","212321","232121","111323","131123","131321","112313","132113","132311","211313","231113","231311","112133","112331","132131","113123","113321","133121","313121","211331","231131","213113","213311","213131","311123","311321","331121","312113","312311","332111","314111","221411","431111","111224","111422","121124","121421","141122","141221","112214","112412","122114","122411","142112","142211","241211","221114","413111","241112","134111","111242","121142","121241","114212","124112","124211","411212","421112","421211","212141","214121","412121","111143","111341","131141","114113","114311","411113","411311","113141","114131","311141","411131","211412","211214","211232","2331112"],te=103,_=104,T=105,O=106,w={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},k={A:te,B:_,C:T};function E(r){return r>=32&&r<=95?r-32:r>=0&&r<=31?r+64:null}function g(r){return r>=32&&r<=127?r-32:null}function o(r,n){const p=r.charCodeAt(n),y=r.charCodeAt(n+1);return p>=48&&p<=57&&y>=48&&y<=57}function a(r,n,p){const y=[],b=r.charCodeAt(n),m=E(b);if(m!=null){const l=p==="A"||p===null?[m]:[w[p].A,m];y.push({to:"A",symbols:l,advance:1})}const V=g(b);if(V!=null){const l=p==="B"||p===null?[V]:[w[p].B,V];y.push({to:"B",symbols:l,advance:1})}if(o(r,n)){const l=Number(r.slice(n,n+2)),f=p==="C"||p===null?[l]:[w[p].C,l];y.push({to:"C",symbols:f,advance:2})}return y}function d(r){const n=r.length,p=Array.from({length:n+1},()=>({}));p[0].start={cost:0,prev:null,symbols:[]};for(let c=0;c<=n;c++)for(const s of Object.keys(p[c])){const i=p[c][s];if(c===n)continue;const u=s==="start"?null:s;for(const j of a(r,c,u)){const H=c+j.advance,M=i.cost+j.symbols.length,D=p[H][j.to];(!D||M<D.cost)&&(p[H][j.to]={cost:M,prev:s,symbols:j.symbols,backI:c})}}const y=Object.entries(p[n]);if(y.length===0)return null;y.sort((c,s)=>c[1].cost-s[1].cost);const[,b]=y[0],m=[];let V=n,l=y[0][0],f=l;for(;V>0;){const c=p[V][l];m.push(c.symbols),f=l,V=c.backI,l=c.prev}return m.reverse(),{symbols:m.flat(),startSubset:f}}function h(r,n){let p=r;for(let y=0;y<n.length;y++)p+=n[y]*(y+1);return p%103}function t(r,n={}){const p=r==null?"":String(r);if(p==="")return{ok:!1,reason:"empty"};for(let c=0;c<p.length;c++)if(p.charCodeAt(c)>127)return{ok:!1,reason:"charset"};const y=d(p);if(!y)return{ok:!1,reason:"charset"};const b=k[y.startSubset],m=h(b,y.symbols);return{ok:!0,modules:[b,...y.symbols,m,O].map(c=>x[c].split("").map(Number)).flatMap(c=>I(c)),text:p}}}),Te("packages/dom/src/cell/renderers/barcode/code11.js",function($,X){"use strict";Object.defineProperty($,"encodeCode11",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"ALPHABET",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"PATTERNS",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"START_STOP",{enumerable:!0,get:function(){return T}});const e=X("packages/dom/src/cell/renderers/barcode/support.js"),I=e.buildPattern,x=e.weightedModulo,te="0123456789-",_=[[1,1,1,1,1],[1,1,1,1,2],[1,1,1,2,1],[1,1,2,1,1],[1,2,1,1,1],[2,1,1,1,1],[1,1,1,2,2],[1,1,2,1,2],[1,1,2,2,1],[1,2,1,1,2],[1,2,1,2,1]],T=[2,1,1,1,2,1],O=o=>te.indexOf(o);function w(o){const a=O(o);return a<0?null:_[a]}function k(o){return te[x(o,10)]}function E(o){return te[x(o,9)]}function g(o,a={}){const d=o==null?"":String(o);if(d==="")return{ok:!1,reason:"empty"};const h=[];for(const b of d){const m=O(b);if(m<0)return{ok:!1,reason:"charset"};h.push(m)}const t=k(h),r=O(t),p=d.length>=10?`${t}${E([...h,r])}`:t,y=[T];for(const b of d)y.push(w(b));for(const b of p)y.push(w(b));return y.push(T),{ok:!0,modules:I(y,1),text:`${d}${p}`}}}),Te("packages/dom/src/cell/renderers/barcode/codabar.js",function($,X){"use strict";Object.defineProperty($,"MOD16_ORDER",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"encodeCodabar",{enumerable:!0,get:function(){return g}});const I=X("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,x=2,te={0:"nnnnnww",1:"nnnnwnw",2:"nnwnnnw",3:"wwnnnnn",4:"nnnwnwn",5:"wnnnnwn",6:"nwnnnnw",7:"nwnnwnn",8:"nwwnnnn",9:"wnnwnnn","-":"nnnwwnn",$:"nnwwnnn",":":"wnnnwnw","/":"wnwnwnn",".":"wnwwnnn","+":"nnwnwnw",A:"nnwwnwn",B:"nwnwnnw",C:"nnnwnww",D:"nnnwwwn"},_="0123456789-$:/.+",T="ABCD",O="0123456789-$:/.+ABCD";function w(o){return o.split("").map(a=>a==="w"?x:1)}function k(o){const a=te[o];return a?w(a):null}function E(o){let a=0;for(const h of o){const t=O.indexOf(h);if(t<0)return null;a+=t}const d=a%16;return d<10?String(d):null}function g(o,a={}){const d=o==null?"":String(o);if(d==="")return{ok:!1,reason:"empty"};const h=d.toUpperCase();if(h.length<2)return{ok:!1,reason:"charset"};const t=h[0],r=h[h.length-1];if(!T.includes(t)||!T.includes(r))return{ok:!1,reason:"charset"};const n=h.slice(1,-1);for(const b of n)if(!_.includes(b))return{ok:!1,reason:"charset"};const p=[t,...n.split(""),r];if(a.checkDigit){const b=E(p);if(b==null)return{ok:!1,reason:"checkDigit"};p.splice(p.length-1,0,b);const m=p.map(k),V=`${h.slice(0,-1)}${b}${r}`;return{ok:!0,modules:I(m,1),text:V}}const y=p.map(k);return{ok:!0,modules:I(y,1),text:h}}}),Te("packages/dom/src/cell/renderers/barcode/code32.js",function($,X){"use strict";Object.defineProperty($,"ALPHABET",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"decodeCode32Modules",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"encodeCode32",{enumerable:!0,get:function(){return a}});const I=X("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,x=2,te="010010100",_={0:"000110100",1:"100100001",2:"001100001",3:"101100000",4:"000110001",5:"100110000",6:"001110000",7:"000100101",8:"100100100",9:"001100100",A:"100001001",B:"001001001",C:"101001000",D:"000011001",F:"001011000",G:"000001101",H:"100001100",J:"000011100",K:"100000011",L:"001000011",M:"101000010",N:"000010011",P:"001010010",Q:"000000111",R:"100000110",S:"001000110",T:"000010110",U:"110000001",V:"011000001",W:"111000000",X:"010010001",Y:"110010000",Z:"011010000"},T="0123456789BCDFGHJKLMNPQRSTUVWXYZ",O=d=>d.split("").map(h=>h==="1"?x:1),w=d=>_[d]?O(_[d]):null,k=()=>O(te);function E(d){let h=0;for(let t=0;t<8;t++){const r=t+1;let n=Number(d[t]);r%2===0&&(n*=2,n>=10&&(n-=9)),h+=n}return h%10}function g(d,h){let t="",r=d;for(let n=0;n<h;n++)t=T[r%32]+t,r=Math.floor(r/32);return t}function o(d){const h=[];for(let y=0;y<d.length;y++)y===0||d[y]!==d[y-1]?h.push(1):h[h.length-1]++;const t=1,r=y=>y>t?"1":"0",n=[];let p=9;for(;p<h.length;){p+=1;const y=h.slice(p,p+9);if(y.length<9)break;const b=y.map(r).join(""),m=Object.keys(_).find(V=>_[V]===b);n.push(m??"?"),p+=9}return n.pop(),n}function a(d,h={}){const t=d==null?"":String(d);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const r=t.slice(0,8),n=E(r);let p;if(t.length===9){const f=Number(t[8]);if(f!==n)return{ok:!1,reason:"checkDigit"};p=f}else p=n;const y=`${r}${p}`,b=Number(y),V=`A${g(b,6)}`.split(""),l=[k()];for(const f of V){const c=w(f);if(!c)return{ok:!1,reason:"charset"};l.push(c)}return l.push(k()),{ok:!0,modules:I(l,1),text:y}}}),Te("packages/dom/src/cell/renderers/barcode/datamatrix.js",function($,X){"use strict";Object.defineProperty($,"gfMul",{enumerable:!0,get:function(){return te}}),Object.defineProperty($,"gfExp",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"generatorPoly",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"reedSolomon",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"SIZES",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"dataCodewords",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"errorCodewords",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"dataRegionSize",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"base256Mask",{enumerable:!0,get:function(){return r}}),Object.defineProperty($,"encodeBase256",{enumerable:!0,get:function(){return n}}),Object.defineProperty($,"padCodewords",{enumerable:!0,get:function(){return p}}),Object.defineProperty($,"utahPlacementOrder",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"diagonalWalkCoverage",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"placeCodewords",{enumerable:!0,get:function(){return m}}),Object.defineProperty($,"buildSymbol",{enumerable:!0,get:function(){return V}}),Object.defineProperty($,"encodeDataMatrix",{enumerable:!0,get:function(){return s}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return i}});const e=301,I=new Uint8Array(512),x=new Uint8Array(256);{let u=1;for(let j=0;j<255;j++)I[j]=u,x[u]=j,u<<=1,u&256&&(u^=e);for(let j=255;j<512;j++)I[j]=I[j-255]}function te(u,j){return u===0||j===0?0:I[x[u]+x[j]]}function _(u){return I[(u%255+255)%255]}function T(u){let j=new Uint8Array([1]);for(let H=0;H<u;H++){const M=new Uint8Array(j.length+1);for(let D=0;D<j.length;D++)M[D]^=j[D],M[D+1]^=te(j[D],_(H));j=M}return j.subarray(1)}function O(u,j){const H=T(j),M=new Uint8Array(j);for(let D=0;D<u.length;D++){const Q=u[D]^M[0];if(M.copyWithin(0,1),M[j-1]=0,Q!==0)for(let Z=0;Z<j;Z++)M[Z]^=te(H[Z],Q)}return M}const w={10:[3,5],12:[5,7],14:[8,10],16:[12,12],18:[18,14],20:[22,18],22:[30,20],24:[36,24],26:[44,28]},k=Object.keys(w).map(Number).sort((u,j)=>u-j);function E(u){const j=w[u];if(!j)throw new RangeError(`unsupported Data Matrix size ${u}`);return j[0]}function g(u){const j=w[u];if(!j)throw new RangeError(`unsupported Data Matrix size ${u}`);return j[1]}function o(u){return u-2}const a=129,d=231,h=u=>u>=48&&u<=57;function t(u){const j=[];let H=0;for(;H<u.length;){const M=u[H],D=H+1<u.length?u[H+1]:-1;if(h(M)&&h(D)){const Q=M-48,Z=D-48;j.push(Q*10+Z+130),H+=2}else j.push(M+1),H+=1}return j}function r(u,j){const H=149*j%255+1;return(u+H)%256}function n(u,j){if(u.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const H=[d,u.length];for(let M=0;M<u.length;M++)H.push(r(u[M],j+2+M));return H}function p(u,j){if(u.length>j)throw new RangeError(`encoded stream (${u.length} codewords) exceeds capacity (${j})`);const H=u.slice();for(;H.length<j;)H.push(a);return H}function y(u){const j=new Array(u*u).fill(null),H=[],M=(ke,me)=>ke>=0&&ke<u&&me>=0&&me<u,D=(ke,me)=>{if(!M(ke,me))return;const S=ke*u+me;if(j[S]===null){const z={row:ke,col:me};j[S]=z,H.push(z)}},Q=(ke,me)=>{const S=F=>(F%u+u)%u,z=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[F,v]of z)D(S(ke+F),S(me+v))};let Z=4,ae=0,Y=0;const q=u*u+64;do{for(;Z>=0&&ae<u;)Q(Z,ae),Z-=2,ae+=2;for(Z+=1,ae+=3;Z<u&&ae>=0;)Q(Z,ae),Z+=2,ae-=2;Z+=3,ae+=1}while((Z<u||ae<u)&&Y++<q);const Re=H.length;for(let ke=0;ke<u;ke++)for(let me=0;me<u;me++)D(ke,me);return Object.defineProperty(H,"sweptCount",{value:H.length-Re,enumerable:!1}),H}function b(u){return y(u).sweptCount}function m(u,j){const H=y(j),M=new Uint8Array(j*j);for(let D=0;D<H.length;D++){const Q=Math.floor(D/8);if(Q>=u.length)break;const Z=7-D%8,ae=u[Q]>>>Z&1,{row:Y,col:q}=H[D];M[Y*j+q]=ae}return M}function V(u,j){const H=j+2,M=new Uint8Array(H*H),D=(Z,ae,Y)=>{M[Z*H+ae]=Y},Q=H-1;for(let Z=0;Z<H;Z++)D(Q,Z,1);for(let Z=0;Z<H;Z++)D(Z,0,1);for(let Z=0;Z<H;Z++)D(0,Z,Z%2===0?1:0);for(let Z=0;Z<H;Z++)D(Z,H-1,Z%2===0?1:0);for(let Z=0;Z<j;Z++)for(let ae=0;ae<j;ae++)M[(Z+1)*H+(ae+1)]=u[Z*j+ae];return{size:H,modules:M}}function l(u){const j=new Uint8Array(u.length);for(let H=0;H<u.length;H++)j[H]=u.charCodeAt(H)&255;return j}function f(u){for(let j=0;j<u.length;j++)if(u[j]>127)return!1;return!0}function c(u){for(const j of k)if(E(j)>=u)return j;return 0}function s(u,j={}){if(u==null||u==="")return{ok:!1,reason:"empty"};const H=String(u),M=l(H),D=j&&j.encodation==="base256";if(!D&&!f(M))return{ok:!1,reason:"charset"};let Q;if(D){if(M.length>249)return{ok:!1,reason:"capacity"};Q=n(M,1)}else Q=t(M);const Z=j&&j.size;let ae;if(Z!=null){if(!w[Z])return{ok:!1,reason:"capacity"};if(Q.length>E(Z))return{ok:!1,reason:"capacity"};ae=Z}else if(ae=c(Q.length),ae===0)return{ok:!1,reason:"capacity"};const Y=E(ae),q=p(Q,Y),Re=O(q,g(ae)),ke=new Uint8Array(Y+Re.length);ke.set(q,0),ke.set(Re,Y);const me=o(ae),S=m(ke,me),{modules:z}=V(S,me);return{ok:!0,matrix:{size:ae,modules:z},text:H}}const i=s}),Te("packages/dom/src/cell/renderers/barcode/index.js",function($,X){"use strict";Object.defineProperty($,"BARCODE_TYPES",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"encodeBarcode",{enumerable:!0,get:function(){return m}});const e=X("packages/dom/src/cell/renderers/barcode/code39.js"),I=e.encodeCode39,x=X("packages/dom/src/cell/renderers/barcode/ean.js"),te=x.encodeEan13,_=x.encodeEan8,T=X("packages/dom/src/cell/renderers/barcode/upc.js"),O=T.encodeUpcA,w=T.encodeUpcE,k=X("packages/dom/src/cell/renderers/barcode/code93.js"),E=k.encodeCode93,g=X("packages/dom/src/cell/renderers/barcode/code128.js"),o=g.encodeCode128,a=X("packages/dom/src/cell/renderers/barcode/code11.js"),d=a.encodeCode11,h=X("packages/dom/src/cell/renderers/barcode/codabar.js"),t=h.encodeCodabar,r=X("packages/dom/src/cell/renderers/barcode/code32.js"),n=r.encodeCode32,p=X("packages/dom/src/cell/renderers/barcode/datamatrix.js"),y=p.encodeDataMatrix;Object.defineProperty($,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty($,"encodeEan13",{enumerable:!0,get:function(){return x.encodeEan13}}),Object.defineProperty($,"encodeEan8",{enumerable:!0,get:function(){return x.encodeEan8}}),Object.defineProperty($,"encodeUpcA",{enumerable:!0,get:function(){return T.encodeUpcA}}),Object.defineProperty($,"encodeUpcE",{enumerable:!0,get:function(){return T.encodeUpcE}}),Object.defineProperty($,"encodeCode93",{enumerable:!0,get:function(){return k.encodeCode93}}),Object.defineProperty($,"encodeCode128",{enumerable:!0,get:function(){return g.encodeCode128}}),Object.defineProperty($,"encodeCode11",{enumerable:!0,get:function(){return a.encodeCode11}}),Object.defineProperty($,"encodeCodabar",{enumerable:!0,get:function(){return h.encodeCodabar}}),Object.defineProperty($,"encodeCode32",{enumerable:!0,get:function(){return r.encodeCode32}}),Object.defineProperty($,"encodeDataMatrix",{enumerable:!0,get:function(){return p.encodeDataMatrix}});const b=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function m(V,l,f={}){switch(V){case"code39":return I(l,{checkDigit:f.checkDigit});case"code39ext":return I(l,{extended:!0,checkDigit:f.checkDigit});case"ean13":return te(l);case"ean8":return _(l);case"upca":return O(l);case"upce":return w(l);case"code93":return E(l);case"code93ext":return E(l,{extended:!0});case"code128":return o(l);case"code11":return d(l);case"codabar":return t(l,{checkDigit:f.checkDigit});case"code32":return n(l);case"datamatrix":return y(l,{size:f.size,encodation:f.encodation});default:return{ok:!1,reason:"type"}}}}),Te("packages/dom/src/cell/renderers/barcode/render.js",function($,X){"use strict";Object.defineProperty($,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"barsPathData",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"matrixPathData",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"paint",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"buildSvg",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"renderBarcode",{enumerable:!0,get:function(){return t}});const I=X("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,x="http://www.w3.org/2000/svg",te=60,_=16,T=4;function O(r,n,p){p==null||p===!1?r.removeAttribute(n):r.setAttribute(n,String(p))}const w=new Set;function k(r,n){w.has(r)||(w.add(r),console.warn("[lattice]",n))}function E(r,n,p){const y=[];let b=0;for(;b<r.length;){if(!r[b]){b++;continue}let m=1;for(;b+m<r.length&&r[b+m];)m++;y.push(`M${b+n} 0h${m}v${p}h-${m}z`),b+=m}return y.join("")}function g(r,n){const{size:p,modules:y}=r,b=[];for(let m=0;m<p;m++){let V=0;for(;V<p;){if(!y[m*p+V]){V++;continue}let l=1;for(;V+l<p&&y[m*p+V+l];)l++;b.push(`M${V+n} ${m+n}h${l}v1h-${l}z`),V+=l}}return b.join("")}function o(r){const n=r&&typeof r=="object"?r:{};return{show:n.show!==!1,position:n.position==="top"?"top":"bottom",align:n.align==="left"||n.align==="right"?n.align:"center",margin:Number.isFinite(Number(n.margin))?Number(n.margin):2,font:typeof n.font=="string"&&n.font?n.font:"10px sans-serif"}}function a(r){const n=Math.floor(Number(r));return!Number.isFinite(n)||n<0?10:Math.min(40,n)}function d(r,n,p){const y=a(p.quietZone),b=o(p.text),m=b.show,V=!!n.matrix,l=V?n.matrix.size:n.modules.length,f=V?l+y*2:te,c=m&&b.position==="top"?_+T:0,s=f+(m?_+T:0),i=l+y*2,u=Number(p.moduleWidth)||0,j=u>0?i*u:Number(p.width)||200,H=Number(p.height)||Math.round(j/i*s)||60;O(r.svg,"viewBox",`0 0 ${i} ${s}`),O(r.svg,"width",j),O(r.svg,"height",H);const M=p.print?"#000000":p.foreground||"currentColor",D=p.print?"#ffffff":p.background;if(D?(O(r.background,"x",0),O(r.background,"y",0),O(r.background,"width",i),O(r.background,"height",s),r.background.setAttribute("fill",D),r.background.style.display=""):r.background.style.display="none",r.path.setAttribute("fill",M),r.path.setAttribute("transform",`translate(0 ${c})`),r.path.setAttribute("d",V?g(n.matrix,y):E(n.modules,y,te)),!m){r.text.style.display="none";return}r.text.style.display="",r.text.style.font=b.font,r.text.setAttribute("fill",M),r.text.setAttribute("text-anchor",b.align==="left"?"start":b.align==="right"?"end":"middle");const Q=b.align==="left"?y:b.align==="right"?i-y:i/2,Z=b.position==="top"?_-b.margin:s-b.margin;O(r.text,"x",Q),O(r.text,"y",Z),r.text.textContent=n.text}function h(r){const n=r.createElementNS(x,"svg");n.setAttribute("class","lat-barcode__svg"),n.setAttribute("focusable","false"),n.setAttribute("preserveAspectRatio","none");const p=r.createElementNS(x,"rect");p.style.display="none";const y=r.createElementNS(x,"path"),b=r.createElementNS(x,"text");return n.appendChild(p),n.appendChild(y),n.appendChild(b),{svg:n,background:p,path:y,text:b}}function t(r,n){const p=r.ownerDocument,y=h(p);r.textContent="",r.appendChild(y.svg);const b=V=>{const l=V||{},f=String(l.type||"code39"),c=I(f,l.value,{checkDigit:l.checkDigit,size:l.size,encodation:l.encodation});if(!c.ok){k(`barcode:invalid:${f}`,`column "standalone" has a value that is not valid for the "${f}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),y.path.setAttribute("d","");return}d(y,c,l)};return b(n),{update:b,destroy:()=>{r.textContent=""}}}}),Te("packages/modules/form/controls/barcode.js",function($,X){"use strict";const I=X("packages/modules/form/controls/registry.js").registerControl,te=X("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function _(T,O){const w=T.props&&T.props.source;if(!w)return T.value;const k=typeof O.form.getItem=="function"?O.form.getItem(w):null;return k&&typeof k.getValue=="function"?k.getValue():void 0}I("barcode",{kind:"display",build(T,O){const w=O.doc.createElement("span");w.className="lat-form__barcode";const k=te(w,{...T.props,value:_(T,O)}),E=T.props&&T.props.source;if(E){const g=O.emitter.on("change",o=>{o&&o.name===E&&k.update({...T.props,value:o.value})});O.disposers.push(g)}return O.disposers.push(()=>k.destroy()),w._barcodeHandle=k,w},read(T,O,w){return _(O,w)},write(T,O,w){T._barcodeHandle&&T._barcodeHandle.update({...O.props,value:w})},state(){}})}),Te("packages/modules/form/controls/speeddial.js",function($,X){"use strict";Object.defineProperty($,"injectSpeedDialStyles",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"createSpeedDial",{enumerable:!0,get:function(){return s}});const I=X("packages/modules/form/controls/registry.js").registerControl,te=X("packages/modules/form/messages.js").t,T=X("packages/modules/form/ids.js").nextId,w=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,k="lat-speeddial",E="data-lattice-speeddial-styles",g="http://www.w3.org/2000/svg",o=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),a=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),d=Object.freeze(["up","down","left","right"]);function h(){const i=`
1715
+ `.trim()}function O(l){const f=l&&l.documentElement;if(!f||f.getAttribute(_))return;f.setAttribute(_,"1");const c=l.createElement("style");c.textContent=P(),(l.head||l.body||f).appendChild(c)}function y(l,f){const c=f&&f.defaultView,s=c&&c.Event,i=s?new s("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};l.dispatchEvent(i)}function C(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function E(l){const f=Number(l)||0;return f<1024?`${f} B`:f<1048576?`${(f/1024).toFixed(f<10240?1:0)} KB`:f<1073741824?`${(f/1048576).toFixed(1)} MB`:`${(f/1073741824).toFixed(2)} GB`}function g(l,f){if(!f||!f.length)return!0;const c=(l.name||"").toLowerCase(),s=(l.type||"").toLowerCase();return f.some(i=>{const u=String(i).trim().toLowerCase();return u.startsWith(".")?c.endsWith(u):u.endsWith("/*")?s.startsWith(u.slice(0,-1)):s===u})}function o(l){return l.length?l.length===1?l[0]:l.length===2?`${l[0]} or ${l[1]}`:`${l.slice(0,-1).join(", ")} or ${l[l.length-1]}`:""}function a(l){const f={".pdf":"PDF",".doc":"DOC",".docx":"DOCX",".xls":"XLS",".xlsx":"XLSX",".csv":"CSV",".txt":"TXT",".png":"PNG",".jpg":"JPG",".jpeg":"JPEG",".gif":"GIF",".svg":"SVG",".webp":"WEBP",".zip":"ZIP","image/*":"images","video/*":"videos","audio/*":"audio","text/*":"text","application/pdf":"PDF"},c=String(l).trim(),s=f[c.toLowerCase()];if(s)return s;if(c.startsWith("."))return c.slice(1).toUpperCase();if(c.endsWith("/*"))return`${c.slice(0,-2)}s`;const i=c.split("/")[1];return i?i.toUpperCase():c}function d(l,f,c,s){const i=[];return f&&f.length&&i.push(o(f.map(a))),c&&i.push(l("form.file.hint.size",{size:E(c)})),s&&i.push(l(s===1?"form.file.hint.file":"form.file.hint.files",{max:String(s)})),i.join(" · ")}function h(l){return{id:l.id,name:l.name,size:l.size,type:l.type,status:l.status,progress:l.progress,message:l.message||""}}function t(l,f){const c=l.createElementNS(re,"svg");c.setAttribute("viewBox","0 0 16 16"),c.setAttribute("focusable","false"),c.setAttribute("aria-hidden","true"),c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","1.5"),c.setAttribute("stroke-linecap","round"),c.setAttribute("stroke-linejoin","round");const s=l.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d",f),c.appendChild(s),c}const r=Object.freeze({upload:"M8 11V3m0 0L4.5 6.5M8 3l3.5 3.5M3 13h10",file:"M4 2h5l3 3v9H4zM9 2v3h3",image:"M2 3h12v10H2zM5 11l3-3 2 2 1.5-1.5L14 11M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",document:"M4 2h5l3 3v9H4zM9 2v3h3M6 9h4M6 12h4",check:"M3 8.5l3 3 7-7",xmark:"M4 4l8 8M12 4l-8 8",warn:"M8 3l6 11H2zM8 7v3M8 12.2v.1",retry:"M13.5 8A5.5 5.5 0 1 1 8 2.5M8 2.5V5m0-2.5L5.5 2.5"});function n(l,f){const c=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let s;for(;s=c.exec(f);)l.setAttribute(s[1],s[3]===void 0?s[4]:s[3])}function p(l,f){const c=/<svg\b([^>]*)>/i.exec(f);if(!c)return null;const s=l.createElementNS(re,"svg");n(s,c[1]);const i=f.lastIndexOf("</svg"),u=i===-1?"":f.slice(c.index+c[0].length,i),j=/<(\w+)\b([^>]*?)(\/?)>/g;let F;for(;F=j.exec(u);){const M=l.createElementNS(re,F[1]);n(M,F[2]),s.appendChild(M)}return s.setAttribute("aria-hidden","true"),s.setAttribute("focusable","false"),s}function v(l,f){if(l===!1)return null;if(l!=null&&typeof l=="object"&&l.nodeType){const s=l;return s.classList.add(`${k}__icon`),s.setAttribute("aria-hidden","true"),s}if(typeof l!="string"||l==="")return null;const c=r[l]?t(f,r[l]):p(f,l);return c?(c.setAttribute("class",`${k}__icon`),c):null}function b(l){const f=l.type||"";return f.startsWith("image/")?"image":f==="application/pdf"||/\.pdf$/i.test(l.name)?"document":"file"}function m(l){if(l.thumb)return l.thumb;if(!l.file||!/^image\//.test(l.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{l.thumb=URL.createObjectURL(l.file)}catch{l.thumb=null}return l.thumb}function V(l){if(l.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(l.thumb)}catch{}l.thumb=null}R("file",{kind:"field",build(l,f){const c=f.doc,s=f.t,i=l.props||{},u=Array.isArray(i.accept)?i.accept.map(z=>String(z)):[],j=Number(i.maxSize)||0,F=Number(i.maxFiles)||0,M=i.multiple!==!1,D=typeof i.upload=="function"?i.upload:null,Q=i.dropzone!==!1,Z=i.dropText!=null?String(i.dropText):s("form.file.dropText"),ae=i.browseText!=null?String(i.browseText):s("form.file.browse"),Y=s("form.file.dropToUpload"),ee=s("form.file.addMore"),ze=s("form.file.typeNotAccepted"),Ce=i.hint!=null&&i.hint!==""?String(i.hint):d(s,u,j,F);O(c);const me=c.createElement("div");me.className=k;const S={accept:u,maxSize:j,maxFiles:F,multiple:M,upload:D,dropText:Z,browse:ae,dropToUpload:Y,addMore:ee,typeNotAccepted:ze,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:Q,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};me.__latFile=S;const I=c.createElement("input");I.type="file",I.className=`${k}__input`,I.tabIndex=-1,I.setAttribute("aria-hidden","true"),M&&(I.multiple=!0),u.length&&(I.accept=u.join(",")),me.appendChild(I),S.input=I;const U=c.createElement("div");U.className=`${k}__zone`,U.setAttribute("role","button"),U.tabIndex=0,U.setAttribute("aria-label",`${Z} ${ae}`);const w=i.icon==null?t(c,r.upload):v(i.icon,c);w&&(i.icon==null&&w.setAttribute("class",`${k}__icon`),U.appendChild(w));const B=c.createElement("span");B.className=`${k}__title`;const W=c.createElement("span");W.className=`${k}__title-rest`,W.textContent=Z,B.appendChild(W);const q=c.createElement("button");q.type="button",q.className=`${k}__browse`,q.tabIndex=-1,q.textContent=ae,B.appendChild(q),U.appendChild(B),S.titleRest=W,S.browseEl=q;const ne=c.createElement("span");if(ne.className=`${k}__drop`,ne.textContent=Y,U.appendChild(ne),Ce){const z=c.createElement("span");z.className=`${k}__hint`,z.textContent=Ce,U.appendChild(z)}const se=c.createElement("span");se.className=`${k}__compact`,se.appendChild(t(c,r.upload));const N=c.createElement("span");N.className=`${k}__compact-text`,N.textContent=ee,se.appendChild(N),U.appendChild(se),S.compactText=N,me.appendChild(U),S.zone=U;const K=c.createElement("ul");K.className=`${k}__list`,K.setAttribute("role","list"),K.hidden=!0,me.appendChild(K),S.list=K;const oe=c.createElement("div");return oe.className=`${k}__live`,oe.setAttribute("role","status"),oe.setAttribute("aria-live","polite"),me.appendChild(oe),S.live=oe,me.__latAnnounce=z=>{S.live&&(S.live.textContent="",S.live.textContent=z)},me.__latDragState=z=>{S.zone.classList.toggle("is-dragover",z==="over"),S.zone.classList.toggle("is-invalid",z==="invalid"),z==="none"?(S.titleRest.textContent=S.dropText,S.browseEl.hidden=!1,S.compactText.textContent=S.addMore):z==="over"?(S.titleRest.textContent=S.dropToUpload,S.browseEl.hidden=!0,S.compactText.textContent=S.dropToUpload):(S.titleRest.textContent=S.typeNotAccepted,S.browseEl.hidden=!0,S.compactText.textContent=S.typeNotAccepted)},me.__latPaint=()=>{const z=S.disabled||S.readOnly||!S.dropzone;S.zone.hidden=z,S.zone.tabIndex=z?-1:0,z?S.zone.setAttribute("aria-disabled","true"):S.zone.removeAttribute("aria-disabled"),S.input.disabled=z;const T=S.entries.length>0;S.zone.classList.toggle("is-compact",T),S.zone.setAttribute("aria-label",T?S.addMore:`${S.dropText} ${S.browse}`),K.hidden=!S.entries.length,K.tabIndex=S.readOnly&&!S.disabled?0:-1,S.entries.some(A=>A.status==="rejected")?me.setAttribute("aria-invalid","true"):me.removeAttribute("aria-invalid"),K.textContent="";for(const A of S.entries){const H=c.createElement("li");H.className=`${k}__item is-${A.status}`,H.setAttribute("data-id",A.id),H.setAttribute("role","listitem");const X=m(A);if(X){const Oe=c.createElement("img");Oe.className=`${k}__item-thumb`,Oe.src=X,Oe.alt="",H.appendChild(Oe)}else{const Oe=t(c,r[b(A)]);Oe.setAttribute("class",`${k}__item-icon`),H.appendChild(Oe)}const ie=c.createElement("div");ie.className=`${k}__item-main`,H.appendChild(ie);const de=c.createElement("div");de.className=`${k}__item-row`,ie.appendChild(de);const ke=c.createElement("span");ke.className=`${k}__item-name`,ke.textContent=A.name,ke.title=A.name,de.appendChild(ke);const _e=c.createElement("span");_e.className=`${k}__item-size`,_e.textContent=E(A.size),de.appendChild(_e);const Me=c.createElement("span");if(Me.className=`${k}__item-state`,A.status==="uploading"){const Oe=c.createElement("span");Oe.className=`${k}__item-pct`,Oe.textContent=`${A.progress}%`,Me.appendChild(Oe)}else A.status==="done"?Me.appendChild(t(c,r.check)):(A.status==="error"||A.status==="rejected")&&Me.appendChild(t(c,r.warn));de.appendChild(Me);const Se=c.createElement("button");if(Se.type="button",Se.className=`${k}__remove`,Se.setAttribute("aria-label",`${s("form.file.remove")} ${A.name}`),Se.title=s("form.file.remove"),Se.appendChild(t(c,r.xmark)),Se.setAttribute("data-remove",A.id),Se.disabled=S.disabled||S.readOnly,de.appendChild(Se),A.status==="uploading"){const Oe=c.createElement("span");Oe.className=`${k}__item-bar`,Oe.setAttribute("role","progressbar"),Oe.setAttribute("aria-valuemin","0"),Oe.setAttribute("aria-valuemax","100"),Oe.setAttribute("aria-valuenow",String(A.progress));const x=c.createElement("span");x.className=`${k}__item-fill`,x.style.width=`${A.progress}%`,Oe.appendChild(x),ie.appendChild(Oe)}if(A.message){const Oe=c.createElement("span");if(Oe.className=`${k}__item-message`,Oe.appendChild(c.createTextNode(A.message)),A.status==="error"){Oe.appendChild(c.createTextNode(" "));const x=c.createElement("button");x.type="button",x.className=`${k}__retry`,x.textContent=s("form.file.retry"),x.setAttribute("data-retry",A.id),x.disabled=S.disabled||S.readOnly,Oe.appendChild(x)}ie.appendChild(Oe)}K.appendChild(H)}},me.__latUpload=z=>{if(!S.upload){z.status="done",z.progress=100,me.__latPaint();return}z.status="uploading",z.progress=0,z.message="";let T=null;typeof AbortController<"u"&&(T=new AbortController,S.controllers.set(z.id,T));const L=T?T.signal:void 0,A=X=>{z.progress=Math.max(0,Math.min(100,Number(X)||0)),z.status="uploading",me.__latPaint()};let H;try{H=S.upload(z.file,{onProgress:A,signal:L})}catch(X){H=Promise.reject(X)}H&&typeof H.then=="function"&&H.then(()=>{S.controllers.delete(z.id),z.status="done",z.progress=100,me.__latPaint(),me.__latAnnounce(s("form.file.uploaded",{name:z.name})),y(me,f.doc)},X=>{S.controllers.delete(z.id),z.status="error",z.message=X&&X.message?String(X.message):s("form.file.uploadFailed"),me.__latPaint(),me.__latAnnounce(s("form.file.failed",{name:z.name})),y(me,f.doc)})},me.__latTake=z=>{const T=[...z||[]];if(!T.length||S.disabled||S.readOnly)return;const L=S.multiple?T:T.slice(0,1),A=[],H=[];let X=S.maxFiles?Math.max(0,S.maxFiles-S.entries.length):1/0;for(const ie of L){if(X<=0){H.push({file:ie,reason:"count"});continue}if(S.maxSize&&ie.size>S.maxSize){H.push({file:ie,reason:"size"});continue}if(!g(ie,S.accept)){H.push({file:ie,reason:"type"});continue}A.push({id:C(),file:ie,name:ie.name,size:ie.size,type:ie.type,status:"selected",progress:0,message:""}),X-=1}if(A.length){S.multiple||(S.entries=[]),S.entries.push(...A),me.__latPaint(),y(me,f.doc),me.__latAnnounce(A.length===1?s("form.file.addedOne"):s("form.file.added",{count:String(A.length)}));for(const ie of A)me.__latUpload(ie)}for(const ie of H){const de=ie.reason==="size"?s("form.file.rejected.size",{size:E(S.maxSize)}):ie.reason==="type"?s("form.file.rejected.type"):s("form.file.rejected.count",{max:String(S.maxFiles)});S.entries.push({id:C(),file:ie.file,name:ie.file.name,size:ie.file.size,type:ie.file.type,status:"rejected",progress:0,message:de}),me.__latAnnounce(de)}me.__latPaint()},me.__latRemove=z=>{const T=S.controllers.get(z);T&&(T.abort(),S.controllers.delete(z));const L=S.entries.find(A=>A.id===z);L&&V(L),S.entries=S.entries.filter(A=>A.id!==z),me.__latPaint(),y(me,f.doc)},me.__latRetry=z=>{if(S.disabled||S.readOnly)return;const T=S.entries.find(L=>L.id===z);!T||!T.file||T.status==="rejected"||(me.__latUpload(T),y(me,f.doc))},me.__latClick=z=>{if(S.disabled||S.readOnly)return;const T=z.target&&z.target.closest?z.target:null,L=T&&T.closest?T.closest("[data-remove]"):null;if(L&&me.contains(L)){me.__latRemove(L.getAttribute("data-remove"));return}const A=T&&T.closest?T.closest("[data-retry]"):null;if(A&&me.contains(A)){me.__latRetry(A.getAttribute("data-retry"));return}T&&T.closest&&T.closest(`.${k}__zone`)&&S.input.click()},me.__latKeydown=z=>{S.disabled||S.readOnly||(z.key==="Enter"||z.key===" "||z.key==="Spacebar")&&z.target===S.zone&&(z.preventDefault(),S.input.click())},me.__latChange=()=>{me.__latTake(S.input.files),S.input.value=""},me.__latDragKind=z=>{if(!S.accept.length)return"over";const T=z.dataTransfer;if(!T||!T.types||!T.types.length)return"over";const L=Array.from(T.types);return L.includes("Files")?"over":L.every(A=>!g({name:"",type:A},S.accept))?"invalid":"over"},me.__latDrag=z=>{if(!(S.disabled||S.readOnly)){if(z.type==="dragenter"||z.type==="dragover"){z.preventDefault(),me.__latDragState(me.__latDragKind(z));return}if(z.type==="dragleave"){if(z.relatedTarget&&S.zone.contains(z.relatedTarget))return;me.__latDragState("none");return}z.type==="drop"&&(z.preventDefault(),me.__latDragState("none"),me.__latTake(z.dataTransfer&&z.dataTransfer.files))}},me.__latPaste=z=>{if(S.disabled||S.readOnly||!z.clipboardData)return;const T=[...z.clipboardData.files||[]];T.length&&(z.preventDefault(),me.__latTake(T))},I.addEventListener("change",me.__latChange),me.addEventListener("click",me.__latClick),me.addEventListener("keydown",me.__latKeydown),me.addEventListener("paste",me.__latPaste),Q&&["dragenter","dragover","dragleave","drop"].forEach(z=>me.addEventListener(z,me.__latDrag)),me.__latPaint(),me},read(l){const f=l.__latFile;return f?f.entries.filter(c=>c.status!=="rejected").map(h):[]},write(l,f){const c=l.__latFile;if(!c)return;const s=Array.isArray(f)?f:[],i=c.entries.filter(u=>u.status==="rejected");for(const u of c.entries)i.includes(u)||V(u);c.entries=i;for(const u of s)c.entries.push({id:u&&u.id?String(u.id):C(),file:u&&u.file?u.file:null,name:u&&u.name!=null?String(u.name):"",size:u&&u.size!=null?Number(u.size):0,type:u&&u.type!=null?String(u.type):"",status:u&&u.status?String(u.status):"done",progress:u&&u.progress!=null?Number(u.progress):100,message:u&&u.message?String(u.message):""});l.__latPaint&&l.__latPaint()},state(l,f){const c=l.__latFile;c&&(c.disabled=f.disabled===!0,c.readOnly=f.readOnly===!0,c.disabled?l.setAttribute("aria-disabled","true"):l.removeAttribute("aria-disabled"),c.readOnly?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly"),l.__latPaint&&l.__latPaint())},validate(l,f,c){const s=l.__latFile;if(!s)return null;const i=s.entries.find(u=>u.status==="rejected");return i&&i.message&&(!Array.isArray(c)||c.length===0)?i.message:s.maxFiles&&Array.isArray(c)&&c.length>s.maxFiles?`Too many files (max ${s.maxFiles})`:null}})}),Te("packages/dom/src/editors/richtext-icons.js",function($,J){"use strict";Object.defineProperty($,"TOOL_GLYPHS",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"letterGlyph",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"toolGlyph",{enumerable:!0,get:function(){return _}});const e="http://www.w3.org/2000/svg",R=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),k=Object.freeze({color:"M8 2.5l4 5.5a4 4 0 0 1-8 0zM4.5 12.5h7",alignLeft:"M3 4h10M3 8h6M3 12h10",alignCenter:"M3 4h10M5 8h6M3 12h10",alignRight:"M3 4h10M7 8h6M3 12h10",ul:"M3 5.5h.01M3 9.5h.01M3 13.5h.01M6 5.5h7M6 9.5h7M6 13.5h7",ol:"M2.5 4.5h.01M2.5 8.5h.01M2.5 12.5h.01M5 4.5h8M5 8.5h8M5 12.5h8",outdent:"M3 4h8M3 8h5M3 12h8M8 3v2M8 11v2",indent:"M5 4h8M5 8h5M5 12h8M10 3v2M10 11v2",link:"M6.5 9.5a3 3 0 0 0 3 3l2-2a3 3 0 0 0-3-3M9.5 6.5a3 3 0 0 0-3-3l-2 2a3 3 0 0 0 3 3",image:"M2 3h12v10H2zM5.5 11l2.5-3 2 2 1.5-1.5 2 2.5M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",clear:"M5 4h9M6 4l-.5 8a2 2 0 0 1-2 1.8A2 2 0 0 1 1.5 12L1 4M4 4V2.5h8V4M6 7v3M9.5 7v3",source:"M6 4L2.5 8 6 12M10 4l3.5 4L10 12",undo:"M3 7h6a3.5 3.5 0 0 1 0 7H5M3 7l2-2M3 7l2 2",redo:"M13 7H7a3.5 3.5 0 0 0 0 7h4M13 7l-2-2M13 7l-2 2"});function re(P,O){const y=R[O],C=P.createElementNS(e,"svg");C.setAttribute("viewBox","0 0 16 16"),C.setAttribute("width","16"),C.setAttribute("height","16"),C.setAttribute("focusable","false"),C.setAttribute("aria-hidden","true");const E=P.createElementNS(e,"text");return E.setAttribute("x","8"),E.setAttribute("y","12"),E.setAttribute("text-anchor","middle"),E.style.fontSize="12px",E.style.fill="currentColor",E.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',y.weight&&(E.style.fontWeight=y.weight),y.style&&(E.style.fontStyle=y.style),y.decoration&&(E.style.textDecoration=y.decoration),E.textContent=y.char,C.appendChild(E),C}function _(P,O){const y=P.createElementNS(e,"svg");y.setAttribute("viewBox","0 0 16 16"),y.setAttribute("focusable","false"),y.setAttribute("aria-hidden","true"),y.setAttribute("fill","none"),y.setAttribute("stroke","currentColor"),y.setAttribute("stroke-width","1.5"),y.setAttribute("stroke-linecap","round"),y.setAttribute("stroke-linejoin","round");const C=P.createElementNS(e,"path");return C.setAttribute("d",k[O]),y.appendChild(C),y}}),Te("packages/modules/form/controls/swatches.js",function($,J){"use strict";Object.defineProperty($,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"hslToHex",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"buildSwatchButton",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"buildSwatchGrid",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),R=Object.freeze([0,24,48,84,140,168,196,224,268,320]),k=Object.freeze([.82,.66,.5,.36,.22]),re=.62,_=Object.freeze([.92,.76,.56,.36,.18]);function P(o,a,d){let h=d;return h<0&&(h+=1),h>1&&(h-=1),h<1/6?o+(a-o)*6*h:h<1/2?a:h<2/3?o+(a-o)*(2/3-h)*6:o}function O(o,a,d){const h=(o%360+360)%360/360;let t,r,n;if(a===0)t=d,r=d,n=d;else{const v=d<.5?d*(1+a):d+a-d*a,b=2*d-v;t=P(b,v,h+1/3),r=P(b,v,h),n=P(b,v,h-1/3)}const p=v=>Math.round(v*255).toString(16).padStart(2,"0");return`#${p(t)}${p(r)}${p(n)}`}const y=Object.freeze(R.map(o=>Object.freeze(k.map(a=>O(o,re,a))))),C=Object.freeze(_.map(o=>O(0,0,o)));function E(o,a,d={}){const h=o.createElement("button");return h.type="button",h.className="lat-form__swatch",h.style.background=a,h.setAttribute("role","option"),h.setAttribute("data-color",a),h.setAttribute("aria-selected",d.selected?"true":"false"),d.selected&&h.classList.add("is-selected"),h.title=d.title!=null?d.title:a,h.tabIndex=-1,h}function g(o,a,d={}){const h=o.createElement("div");h.className="lat-form__swatch-grid",h.setAttribute("role","listbox");const t=[];for(const r of a){const n=o.createElement("div");n.className=d.rowClass?`lat-form__swatch-row ${d.rowClass}`:"lat-form__swatch-row";const p=[];for(const v of r){const b=E(o,v,{selected:typeof d.isSelected=="function"&&d.isSelected(v),title:typeof d.title=="function"?d.title(v):void 0});n.appendChild(b),p.push(b)}h.appendChild(n),t.push(p)}return typeof d.onPick=="function"&&h.addEventListener("click",r=>{const n=r.target&&r.target.closest?r.target.closest(".lat-form__swatch"):null;n&&h.contains(n)&&d.onPick(n.getAttribute("data-color"),n)}),{el:h,rows:t}}}),Te("packages/modules/form/controls/richtext.js",function($,J){"use strict";Object.defineProperty($,"sanitize",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"escapeHtml",{enumerable:!0,get:function(){return _}});const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/dom/src/editors/sanitize-richtext.js"),re=k.sanitizeRichText,_=k.escapeHtml,P=J("packages/dom/src/editors/richtext-icons.js"),O=P.letterGlyph,y=P.toolGlyph,C=P.TOOL_GLYPHS,E=J("packages/modules/form/controls/swatches.js"),g=E.DEFAULT_COLORS,o=E.buildSwatchGrid,a=re,d=Object.freeze({basic:["bold","italic","underline","color","lowercase","uppercase","|","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","undo","redo"],html:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","clear","source","|","undo","redo"],rich:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","image","clear","source","|","undo","redo"]}),h=Object.freeze(["bold","italic","underline","strike"]),t=Object.freeze({bold:"form.richtext.bold",italic:"form.richtext.italic",underline:"form.richtext.underline",strike:"form.richtext.strike",color:"form.richtext.color",heading:"form.richtext.heading",alignLeft:"form.richtext.alignLeft",alignCenter:"form.richtext.alignCenter",alignRight:"form.richtext.alignRight",ul:"form.richtext.ul",ol:"form.richtext.ol",outdent:"form.richtext.outdent",indent:"form.richtext.indent",link:"form.richtext.link",image:"form.richtext.image",clear:"form.richtext.clear",source:"form.richtext.source",undo:"form.richtext.undo",redo:"form.richtext.redo",lowercase:"form.richtext.lowercase",uppercase:"form.richtext.uppercase"});function r(m){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[m]||null}const n=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function p(m){return Array.isArray(m)?m.map(V=>String(V)):d[m]||d.basic}function v(m){return new Promise((V,l)=>{const f=new FileReader;f.onload=()=>V(f.result),f.onerror=()=>l(f.error||new Error("read failed")),f.readAsDataURL(m)})}R("richtext",{kind:"field",build(m,V){const l=V.doc,f=m.props||{},c=p(f.toolbar),s=Array.isArray(f.headings)?f.headings:n,i=Array.isArray(f.colors)?f.colors:g,u=f.linkTarget!=null?String(f.linkTarget):"_blank",j=Number(f.minHeight)||160,F=Number(f.maxHeight)||0,M=Number(f.maxImageSize)||0,D=typeof f.onImage=="function"?f.onImage:null,Q=f.sanitizePaste!==!1,Z=f.allowedTags,ae=f.placeholder!=null?String(f.placeholder):V.t("form.richtext.placeholder"),Y=l.createElement("div");Y.className="lat-form__richtext";const ee={toolbar:c,headings:s,colors:i,linkTarget:u,minHeight:j,maxHeight:F,maxImageSize:M,onImage:D,sanitizePaste:Q,allowedTags:Z,placeholder:ae,disabled:!1,readOnly:!1,toolbarEl:null,buttons:{},editor:null,source:null,popover:null,fileInput:null,range:null,sourceMode:!1,sourceDirty:!1,history:{stack:[],index:0},lastValue:null};Y.__latRt=ee;const ze=a(l,m.value==null?"":String(m.value),Z,{});ee.history={stack:[ze],index:0},ee.lastValue=ze;const Ce=l.createElement("div");Ce.className="lat-form__richtext-toolbar",Ce.setAttribute("role","toolbar"),Ce.setAttribute("aria-label",V.t("form.richtext.formatting")),ee.toolbarEl=Ce;for(const w of c){if(w==="|"){const W=l.createElement("span");W.className="lat-form__richtext-sep",W.setAttribute("role","separator"),Ce.appendChild(W);continue}if(w==="heading"){const W=l.createElement("select");W.className="lat-form__richtext-select",W.title=V.t(t.heading),W.setAttribute("aria-label",V.t(t.heading)),W.setAttribute("data-item","heading");for(const[q,ne]of s){const se=l.createElement("option");se.value=q,se.textContent=String(ne),W.appendChild(se)}ee.buttons.heading=W,Ce.appendChild(W);continue}const B=l.createElement("button");B.type="button",B.className="lat-form__richtext-btn",B.setAttribute("data-item",w),B.title=V.t(t[w]||w),B.setAttribute("aria-label",V.t(t[w]||w)),w==="lowercase"||w==="uppercase"?(B.className+=" lat-form__richtext-btntext",B.textContent=V.t(w==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):h.includes(w)?B.appendChild(O(l,w)):C[w]?B.appendChild(y(l,w)):B.textContent=w,ee.buttons[w]=B,Ce.appendChild(B)}Y.appendChild(Ce);const me=l.createElement("div");me.className="lat-form__richtext-popover",me.hidden=!0,Y.appendChild(me),ee.popover=me;const S=l.createElement("div");S.className="lat-form__richtext-editor",S.contentEditable=m.readOnly||m.disabled?"false":"true",S.setAttribute("role","textbox"),S.setAttribute("aria-multiline","true"),S.setAttribute("aria-label",m.label!=null?String(m.label):V.t("form.richtext.richText")),S.setAttribute("data-placeholder",ae),S.style.minHeight=`${j}px`,F&&(S.style.maxHeight=`${F}px`),S.innerHTML=ze,Y.appendChild(S),ee.editor=S;const I=l.createElement("textarea");I.className="lat-form__richtext-source",I.setAttribute("aria-label",V.t("form.richtext.source")),I.spellcheck=!1,I.hidden=!0,Y.appendChild(I),ee.source=I;const U=l.createElement("input");return U.type="file",U.accept="image/*",U.className="lat-form__richtext-file",U.tabIndex=-1,U.setAttribute("aria-hidden","true"),Y.appendChild(U),ee.fileInput=U,Y.__latSave=()=>{const w=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;w&&w.rangeCount&&S.contains(w.anchorNode)&&(ee.range=w.getRangeAt(0).cloneRange())},Y.__latRestore=()=>{if(!ee.range)return;const w=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(w)try{w.removeAllRanges(),w.addRange(ee.range)}catch{}},Y.__latRefresh=()=>{Object.entries(ee.buttons).forEach(([w,B])=>{const W=r(w);if(W&&W.state&&B.tagName==="BUTTON"){let q=!1;try{q=l.queryCommandState(W.state)}catch{q=!1}B.setAttribute("aria-pressed",q?"true":"false"),B.classList.toggle("is-active",q)}if(w==="heading"&&B.tagName==="SELECT"){let q="";try{q=String(l.queryCommandValue("formatBlock")||"").toLowerCase()}catch{q=""}const ne=[...B.options].some(se=>se.value===q);B.value=ne?q:"p"}})},Y.__latExec=(w,B)=>{S.focus(),Y.__latRestore();try{l.execCommand("styleWithCSS",!1,w==="foreColor")}catch{}try{l.execCommand(w,!1,B===void 0?null:B)}catch{}Y.__latAfterEdit()},Y.__latAfterEdit=()=>{const w=S.innerHTML,B=ee.history;B.stack[B.index]!==w&&(B.stack=B.stack.slice(0,B.index+1),B.stack.push(w),B.stack.length>200&&B.stack.shift(),B.index=B.stack.length-1),Y.__latRefresh();const W=a(l,w,Z,{}),q=ee.lastValue==null?a(l,B.stack[0]||"",Z,{}):ee.lastValue;ee.lastValue=W,b(Y,l,q,W)},Y.__latCaretEnd=()=>{const w=l.createRange();w.selectNodeContents(S),w.collapse(!1);const B=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;B&&(B.removeAllRanges(),B.addRange(w)),ee.range=w.cloneRange()},Y.__latUndo=()=>{const w=ee.history;if(w.index<=0)return;w.index-=1,S.innerHTML=w.stack[w.index],Y.__latCaretEnd(),Y.__latRefresh();const B=a(l,S.innerHTML,Z,{});ee.lastValue=B,b(Y,l,ee.lastValue,B)},Y.__latRedo=()=>{const w=ee.history;if(w.index>=w.stack.length-1)return;w.index+=1,S.innerHTML=w.stack[w.index],Y.__latCaretEnd(),Y.__latRefresh();const B=a(l,S.innerHTML,Z,{});ee.lastValue=B,b(Y,l,ee.lastValue,B)},Y.__latClosePopover=()=>{me.hidden=!0,me.textContent=""},Y.__latOpenPopover=(w,B)=>{if(me.textContent="",me.hidden=!1,me.style.left=`${Math.max(0,B.offsetLeft)}px`,w==="color"){const{el:W}=o(l,[i],{onPick:N=>{Y.__latRestore(),Y.__latExec("foreColor",N),Y.__latClosePopover()}});me.appendChild(W);const q=l.createElement("div");q.className="lat-form__richtext-poprow";const ne=l.createElement("input");ne.type="color",ne.className="lat-form__richtext-colorinput",ne.setAttribute("aria-label",V.t("form.richtext.colorCustom")),ne.addEventListener("input",()=>{Y.__latRestore(),Y.__latExec("foreColor",ne.value)});const se=l.createElement("button");se.type="button",se.className="lat-form__richtext-popbtn",se.textContent=V.t("form.richtext.colorRemove"),se.addEventListener("click",()=>{Y.__latRestore(),Y.__latExec("foreColor","inherit"),Y.__latClosePopover()}),q.appendChild(ne),q.appendChild(se),me.appendChild(q)}else{const W=Y.__latClosestLink(),q=l.createElement("input");q.type="url",q.className="lat-form__richtext-linkinput",q.placeholder=V.t("form.richtext.linkPlaceholder"),q.value=W&&W.getAttribute("href")||"",q.setAttribute("aria-label",V.t("form.richtext.linkLabel"));const ne=()=>{const K=q.value.trim();if(Y.__latRestore(),!K){Y.__latExec("unlink"),Y.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(K)){q.classList.add("is-invalid");return}if(W)W.setAttribute("href",K),Y.__latAfterEdit();else{const oe=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(oe&&oe.isCollapsed){const z=u?` target="${_(u)}" rel="noopener noreferrer"`:"";Y.__latExec("insertHTML",a(l,`<a href="${_(K)}"${z}>${_(K)}</a>`,Z,{}))}else{Y.__latExec("createLink",K);const z=Y.__latClosestLink();z&&u&&(z.setAttribute("target",u),z.setAttribute("rel","noopener noreferrer"))}}Y.__latClosePopover()};q.addEventListener("keydown",K=>{K.key==="Enter"&&(K.preventDefault(),ne()),K.key==="Escape"&&Y.__latClosePopover()});const se=l.createElement("div");se.className="lat-form__richtext-poprow",se.appendChild(q);const N=l.createElement("button");if(N.type="button",N.className="lat-form__richtext-popbtn",N.textContent=W?V.t("form.richtext.linkUpdate"):V.t("form.richtext.linkAdd"),N.addEventListener("click",ne),se.appendChild(N),W){const K=l.createElement("button");K.type="button",K.className="lat-form__richtext-popbtn",K.textContent=V.t("form.richtext.linkRemove"),K.addEventListener("click",()=>{Y.__latRestore(),Y.__latExec("unlink"),Y.__latClosePopover()}),se.appendChild(K)}me.appendChild(se),setTimeout(()=>q.focus(),0)}},Y.__latClosestLink=()=>{const w=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!w||w.rangeCount===0)return null;let B=w.getRangeAt(0).commonAncestorContainer;B.nodeType===3&&(B=B.parentNode);const W=B.closest?B.closest("a"):null;return W&&S.contains(W)?W:null},Y.__latRun=w=>{if(ee.disabled||ee.readOnly)return;w!=="source"&&ee.sourceMode&&Y.__latToggleSource(!1),Y.__latRestore();const B=r(w);if(w==="color"||w==="link"){Y.__latOpenPopover(w,ee.buttons[w]);return}if(w==="undo"){Y.__latUndo();return}if(w==="redo"){Y.__latRedo();return}if(w==="source"){Y.__latToggleSource();return}if(w==="image"){ee.fileInput.click();return}if(w==="lowercase"||w==="uppercase"){Y.__latCase(w==="uppercase");return}if(B){Y.__latExec(B.cmd);return}},Y.__latCase=w=>{const B=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!B||B.rangeCount===0||B.isCollapsed)return;const W=B.toString();Y.__latExec("insertText",w?W.toUpperCase():W.toLowerCase())},Y.__latToggleSource=w=>{const B=w===void 0?!ee.sourceMode:!!w;if(B===ee.sourceMode)return;B?(ee.source.value=a(l,S.innerHTML,Z,{}).replace(/></g,`>
1716
+ <`),S.hidden=!0,I.hidden=!1,I.focus()):(ee.sourceDirty&&(S.innerHTML=a(l,I.value,Z,{}),ee.sourceDirty=!1),I.hidden=!0,S.hidden=!1,S.focus()),ee.sourceMode=B;const W=ee.buttons.source;W&&(W.classList.toggle("is-active",B),W.setAttribute("aria-pressed",B?"true":"false")),Object.entries(ee.buttons).forEach(([q,ne])=>{q!=="source"&&(ne.disabled=B)}),B||Y.__latAfterEdit()},Y.__latInsertImage=async w=>{if(!/^image\//.test(w.type)||M&&w.size>M)return;let B;try{B=D?await D(w):await v(w)}catch{return}B&&Y.__latExec("insertHTML",a(l,`<img src="${_(B)}" alt="${_(w.name)}" style="max-width:100%">`,Z,{}))},Y.__latToolbarClick=w=>{const B=w.target&&w.target.closest?w.target.closest("[data-item]"):null;!B||!Ce.contains(B)||B.tagName==="SELECT"||(w.preventDefault(),Y.__latRun(B.getAttribute("data-item")))},Y.__latToolbarDown=w=>{w.target&&w.target.closest&&w.target.closest(".lat-form__richtext-btn")&&w.preventDefault()},Y.__latSelect=w=>{w.target&&w.target.getAttribute&&w.target.getAttribute("data-item")==="heading"&&(Y.__latRestore(),Y.__latExec("formatBlock",w.target.value))},Y.__latInput=()=>{Y.__latAfterEdit()},Y.__latKey=w=>{if(!(w.ctrlKey||w.metaKey))return;const B=w.key.toLowerCase();B==="z"&&!w.shiftKey?(w.preventDefault(),Y.__latUndo()):B==="y"||B==="z"&&w.shiftKey?(w.preventDefault(),Y.__latRedo()):B==="k"&&ee.buttons.link&&(w.preventDefault(),Y.__latRun("link"))},Y.__latPaste=w=>{if(!Q||!w.clipboardData)return;const B=w.clipboardData.getData("text/html"),W=w.clipboardData.getData("text/plain");if(!B&&!W)return;w.preventDefault();const q=B?a(l,B,Z,{stripStyles:!0}):_(W).replace(/\r?\n/g,"<br>");Y.__latExec("insertHTML",q)},Y.__latDrop=w=>{if(!Q||!w.dataTransfer)return;const B=w.dataTransfer.files;if(B&&B.length){w.preventDefault();const se=B[0];se&&Y.__latInsertImage(se);return}const W=w.dataTransfer.getData("text/html"),q=w.dataTransfer.getData("text/plain");if(!W&&!q)return;w.preventDefault();const ne=W?a(l,W,Z,{stripStyles:!0}):_(q).replace(/\r?\n/g,"<br>");Y.__latExec("insertHTML",ne)},Y.__latBeforeInput=w=>{Q&&(w.inputType==="insertFromDrop"||w.inputType==="insertFromPaste")&&w.preventDefault()},Y.__latSelChange=()=>{l.activeElement===S&&(Y.__latSave(),Y.__latRefresh())},Y.__latFile=()=>{const w=U.files&&U.files[0];U.value="",w&&Y.__latInsertImage(w)},Y.__latSourceInput=()=>{ee.sourceDirty=!0},Y.__latDocClick=w=>{me&&!me.hidden&&!me.contains(w.target)&&!Ce.contains(w.target)&&Y.__latClosePopover()},Ce.addEventListener("click",Y.__latToolbarClick),Ce.addEventListener("mousedown",Y.__latToolbarDown),Ce.addEventListener("change",Y.__latSelect),S.addEventListener("input",Y.__latInput),S.addEventListener("keydown",Y.__latKey),S.addEventListener("paste",Y.__latPaste),S.addEventListener("drop",Y.__latDrop),S.addEventListener("beforeinput",Y.__latBeforeInput),U.addEventListener("change",Y.__latFile),I.addEventListener("input",Y.__latSourceInput),l.addEventListener&&(l.addEventListener("selectionchange",Y.__latSelChange),l.addEventListener("mousedown",Y.__latDocClick,!0)),Y},read(m){const V=m.__latRt;return V?V.sourceMode?a(m.ownerDocument,V.source.value,V.allowedTags,{}):a(m.ownerDocument,V.editor.innerHTML,V.allowedTags,{}):""},write(m,V){const l=m.__latRt;if(!l)return;const f=m.ownerDocument,c=a(f,V==null?"":String(V),l.allowedTags,{});l.sourceMode&&(l.source.value=c),l.editor.innerHTML=c,l.history={stack:[c],index:0},l.lastValue=c},state(m,V){const l=m.__latRt;l&&(l.disabled=V.disabled===!0,l.readOnly=V.readOnly===!0,l.editor.contentEditable=l.disabled||l.readOnly?"false":"true",l.editor.tabIndex=l.readOnly?0:-1,l.readOnly?l.editor.setAttribute("aria-readonly","true"):l.editor.removeAttribute("aria-readonly"),l.disabled?m.setAttribute("aria-disabled","true"):m.removeAttribute("aria-disabled"),l.readOnly?m.setAttribute("aria-readonly","true"):m.removeAttribute("aria-readonly"),Object.values(l.buttons).forEach(f=>{f.disabled=l.disabled||l.readOnly}))}});function b(m,V,l,f){const c=V&&V.defaultView,s=c&&c.Event,i=s?new s("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};m.dispatchEvent(i)}}),Te("packages/modules/form/controls/rating.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=5,re=Object.freeze({star:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.2l-3.8 2 .7-4.3-3.1-3 4.3-.6z",heart:"M8 14s-5-3.2-5-6.3A2.9 2.9 0 0 1 8 5.7 2.9 2.9 0 0 1 13 7.7C13 10.8 8 14 8 14z"});function _(a){const d=String(a??"");return Object.hasOwn(re,d)?d:"star"}function P(a,d,h){return Math.min(Math.max(a,d),h)}function O(a,d){const h=d&&d.defaultView,t=h&&h.Event,r=t?new t("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};a.dispatchEvent(r)}function y(a,d,h){const t=a.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("focusable","false"),t.setAttribute("aria-hidden","true"),h?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const r=a.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",re[d]),t.appendChild(r),t}function C(a,d,h){const t=Number(a),r=Number.isFinite(t)?t:0,n=h?Math.round(r*2)/2:Math.round(r);return P(n,0,d)}function E(a,d){return Math.min(1,Math.max(0,a-(d-1)))}R("rating",{kind:"field",build(a,d){const h=d.doc,t=a.props||{},r=Math.max(1,Math.floor(Number(a.max!=null?a.max:t.max)||k)),n=t.allowHalf===!0,p=t.allowClear!==!1,v=t.showValue===!0,b=Array.isArray(t.labels)?t.labels:null,m=_(t.icons&&t.icons.filled?t.icons.filled:t.icon),V=_(t.icons&&t.icons.empty?t.icons.empty:`${m}-outline`),l=t.size==="lg"||t.size==="sm"?t.size:"md",f=h.createElement("div");f.className=`lat-form__rating lat-form__rating--${l}`,f.setAttribute("role","slider"),f.setAttribute("aria-valuemin","0"),f.setAttribute("aria-valuemax",String(r)),f.setAttribute("aria-label",a.label!=null?String(a.label):d.t("form.rating"));const c={value:C(a.value,r,n),max:r,allowHalf:n,allowClear:p,labels:b,showValue:v,filledName:m,emptyName:V,items:[],fills:[],valueEl:null};f.__latRating=c;const s=h.createElement("span");s.className="lat-form__rating-track",s.setAttribute("aria-hidden","true");for(let i=0;i<r;i++){const u=h.createElement("span");u.className="lat-form__rating-item",u.setAttribute("data-index",String(i)),b&&b[i]!=null&&b[i]!==""&&(u.title=String(b[i])),u.appendChild(y(h,V,!1));const j=h.createElement("span");j.className="lat-form__rating-fill",j.setAttribute("aria-hidden","true"),j.appendChild(y(h,m,!0)),u.appendChild(j),s.appendChild(u),c.items.push(u),c.fills.push(j)}if(f.appendChild(s),v){const i=h.createElement("span");i.className="lat-form__rating-value",i.setAttribute("aria-hidden","true"),f.appendChild(i),c.valueEl=i}return f.__latPaint=()=>{for(let i=0;i<c.items.length;i++){const u=E(c.value,i+1);c.items[i].setAttribute("data-fill",u>=1?"full":u>0?"half":"empty"),c.fills[i].style.width=`${(u*100).toFixed(2)}%`}f.setAttribute("aria-valuenow",String(c.value)),f.setAttribute("aria-valuetext",g(c)),c.valueEl&&(c.valueEl.textContent=o(c))},f.__latSet=i=>{c.value=C(i,r,n),f.__latPaint()},f.__latClear=()=>{c.value=0,f.__latPaint()},f.__latPick=(i,u)=>{let j=i+1;if(n&&u&&Number.isFinite(u.clientX)){const F=c.items[i].getBoundingClientRect();F&&F.width>0&&(j=u.clientX-F.left<F.width/2?i+.5:i+1)}p&&j===c.value&&(j=0),f.__latSet(j),O(f,d.doc)},f.addEventListener("click",i=>{if(c.disabled||c.readOnly)return;const u=i.target&&i.target.closest?i.target.closest(".lat-form__rating-item"):null;!u||!f.contains(u)||f.__latPick(Number(u.getAttribute("data-index")),i)}),f.__latKey=i=>{if(c.disabled||c.readOnly)return;const u=n?.5:1;let j=c.value;if(i.key==="ArrowRight"||i.key==="ArrowUp")j+=u;else if(i.key==="ArrowLeft"||i.key==="ArrowDown")j-=u;else if(i.key==="Home")j=0;else if(i.key==="End")j=r;else if(i.key==="Backspace"||i.key==="Delete")j=0;else return;i.preventDefault(),f.__latSet(j),O(f,d.doc)},f.addEventListener("keydown",f.__latKey),f.__latPaint(),f},read(a){return a.__latRating?a.__latRating.value:0},write(a,d){a.__latRating&&(a.__latRating.value=C(d,a.__latRating.max,a.__latRating.allowHalf),a.__latPaint())},state(a,d){const h=a.__latRating;h&&(h.disabled=d.disabled===!0,h.readOnly=d.readOnly===!0,a.tabIndex=h.disabled?-1:0,h.readOnly?a.setAttribute("aria-readonly","true"):a.removeAttribute("aria-readonly"),h.disabled?a.setAttribute("aria-disabled","true"):a.removeAttribute("aria-disabled"))}});function g(a){const d=Math.round(a.value);return a.labels&&a.labels[d-1]&&a.value===d?a.labels[d-1]:`${a.value} of ${a.max}`}function o(a){return String(a.value)}}),Te("packages/modules/form/controls/stage.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl;function k(P,O){const y=O&&O.defaultView,C=y&&y.Event,E=C?new C("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};P.dispatchEvent(E)}function re(P,O){return typeof O=="number"&&Number.isFinite(O)?Math.min(Math.max(Math.round(O),0),P.length-1):typeof O=="string"?P.indexOf(O):-1}function _(P,O,y){return`${P}, ${O+1} of ${y}`}R("stage",{kind:"field",build(P,O){const y=O.doc,C=P.props||{},E=Array.isArray(C.stages)?C.stages.map(n=>String(n)):[],g=C.clickable!==!1,o=C.showIcons!==!1,a=re(E,P.value!=null?P.value:C.current),d=re(E,C.completed),h=y.createElement("div");h.className="lat-form__stage",h.setAttribute("role","radiogroup"),h.setAttribute("aria-label",P.label!=null?String(P.label):O.t("form.stage"));const t=[],r={stages:E,value:a>=0?E[a]:null,index:a,completed:d,clickable:g,showIcons:o,disabled:!1,readOnly:!1,focus:a>=0?a:0};h.__latStage=r;for(let n=0;n<E.length;n++){const p=y.createElement(g?"button":"span");if(p.type=g?"button":void 0,p.className="lat-form__stage-step",p.setAttribute("data-index",String(n)),g&&(p.setAttribute("role","radio"),p.setAttribute("aria-label",_(E[n],n,E.length))),o){const b=y.createElementNS("http://www.w3.org/2000/svg","svg");b.setAttribute("viewBox","0 0 16 16"),b.setAttribute("aria-hidden","true"),b.setAttribute("class","lat-form__stage-check");const m=y.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d","M3 8.5l3 3 7-7"),m.setAttribute("fill","none"),m.setAttribute("stroke","currentColor"),m.setAttribute("stroke-width","2"),m.setAttribute("stroke-linecap","round"),m.setAttribute("stroke-linejoin","round"),b.appendChild(m),p.appendChild(b)}const v=y.createElement("span");v.className="lat-form__stage-label",v.textContent=E[n],p.appendChild(v),h.appendChild(p),t.push(p)}return h.__latPaint=()=>{for(let n=0;n<t.length;n++){const p=n===r.index,v=!p&&r.completed>=0&&n<=r.completed;t[n].setAttribute("data-state",p?"current":v?"done":"todo"),r.clickable&&(t[n].setAttribute("aria-checked",p?"true":"false"),t[n].tabIndex=r.disabled?-1:n===r.focus?0:-1)}},h.__latSelect=n=>{const p=n>=0&&n<E.length?E[n]:null;p!==r.value&&(r.index=n>=0&&n<E.length?n:-1,r.value=p,r.focus=r.index>=0?r.index:0,h.__latPaint(),k(h,O.doc))},h.__latKey=n=>{if(r.disabled||r.readOnly||!r.clickable||!E.length)return;let p=r.focus;if(n.key==="ArrowRight"||n.key==="ArrowDown")p+=1;else if(n.key==="ArrowLeft"||n.key==="ArrowUp")p-=1;else if(n.key==="Home")p=0;else if(n.key==="End")p=E.length-1;else return;n.preventDefault();const v=Math.min(Math.max(p,0),E.length-1);r.focus=v,t[v].focus(),h.__latSelect(v)},g&&(h.addEventListener("click",n=>{if(r.disabled||r.readOnly)return;const p=n.target&&n.target.closest?n.target.closest(".lat-form__stage-step"):null;if(!p||!h.contains(p))return;const v=Number(p.getAttribute("data-index"));r.focus=v,h.__latSelect(v)}),h.addEventListener("keydown",h.__latKey)),h.__latPaint(),h},read(P){return P.__latStage?P.__latStage.value:null},write(P,O){const y=P.__latStage;if(!y)return;const C=O==null?-1:re(y.stages,O);y.index=C,y.value=C>=0?y.stages[C]:null,y.focus=C>=0?C:0,P.__latPaint()},state(P,O){const y=P.__latStage;y&&(y.disabled=O.disabled===!0,y.readOnly=O.readOnly===!0,y.readOnly?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly"),y.disabled?P.setAttribute("aria-disabled","true"):P.removeAttribute("aria-disabled"),P.__latPaint())}})}),Te("packages/modules/form/controls/chips.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k="M3 8.5l3 3 7-7";function re(O,y){const C=y&&y.defaultView,E=C&&C.Event,g=E?new E("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};O.dispatchEvent(g)}function _(O){if(typeof O=="string")return{value:O,label:O,icon:null,disabled:!1};if(O!==null&&typeof O=="object"){const y=O.value===void 0?String(O.label):O.value;return{value:y,label:O.label==null?String(y):String(O.label),icon:typeof O.icon=="string"&&O.icon!==""?O.icon:null,disabled:O.disabled===!0}}return{value:O,label:String(O),icon:null,disabled:!1}}function P(O,y,C){const E=O.createElementNS("http://www.w3.org/2000/svg","svg");E.setAttribute("viewBox","0 0 16 16"),E.setAttribute("focusable","false"),E.setAttribute("aria-hidden","true");const g=O.createElementNS("http://www.w3.org/2000/svg","path");return g.setAttribute("d",y),C?g.setAttribute("fill","currentColor"):(g.setAttribute("fill","none"),g.setAttribute("stroke","currentColor"),g.setAttribute("stroke-width","2"),g.setAttribute("stroke-linecap","round"),g.setAttribute("stroke-linejoin","round")),E.appendChild(g),E}R("chips",{kind:"field",build(O,y){const C=y.doc,E=O.props||{},g=(Array.isArray(O.options)?O.options:[]).map(_),o=E.multiple===!0,a=E.allowEmpty===!0,d=E.wrap!==!1,h=O.max!=null&&Number.isFinite(Number(O.max))?Number(O.max):null,t=C.createElement("div");t.className=`lat-form__chips${d?"":" lat-form__chips--scroll"}`,t.setAttribute("role",o?"group":"radiogroup"),t.setAttribute("aria-label",O.label!=null?String(O.label):y.t("form.chips"));const r=[],n=new Set,p={options:g,multiple:o,allowEmpty:a,wrap:d,max:h,selected:n,disabled:!1,readOnly:!1,t:y.t};t.__latChips=p;for(let b=0;b<g.length;b++){const m=g[b],V=C.createElement("button");if(V.type="button",V.className="lat-form__chip",V.setAttribute("data-index",String(b)),V.disabled=m.disabled,o||V.setAttribute("role","radio"),m.icon){const f=P(C,m.icon,!0);f.setAttribute("class","lat-form__chip-icon"),V.appendChild(f)}const l=C.createElement("span");if(l.className="lat-form__chip-label",l.textContent=m.label,V.appendChild(l),o){const f=P(C,k,!1);f.setAttribute("class","lat-form__chip-check"),V.appendChild(f)}t.appendChild(V),r.push(V)}p.buttons=r,t.__latPaint=()=>{for(let b=0;b<r.length;b++){const m=g[b],V=n.has(m.value),l=r[b];l.disabled=m.disabled||p.disabled,o?(l.setAttribute("aria-pressed",V?"true":"false"),l.tabIndex=p.disabled?-1:0):(l.setAttribute("aria-checked",V?"true":"false"),l.tabIndex=p.disabled?-1:V?0:-1)}},t.__latValue=()=>{if(o)return g.filter(b=>n.has(b.value)).map(b=>b.value);for(const b of g)if(n.has(b.value))return b.value;return null},t.__latToggle=b=>{const m=g[b];if(!(!m||m.disabled||p.disabled||p.readOnly)){if(o)if(n.has(m.value))n.delete(m.value);else{if(h!=null&&n.size>=h)return;n.add(m.value)}else if(n.has(m.value))if(p.allowEmpty)n.clear();else return;else n.clear(),n.add(m.value);t.__latPaint(),re(t,y.doc)}},t.addEventListener("click",b=>{const m=b.target&&b.target.closest?b.target.closest(".lat-form__chip"):null;!m||!t.contains(m)||t.__latToggle(Number(m.getAttribute("data-index")))}),t.__latKey=b=>{if(p.multiple||p.disabled||p.readOnly||!r.length)return;let m=-1;for(let c=0;c<r.length;c++)if(n.has(g[c].value)){m=c;break}let V=m;if(b.key==="ArrowRight"||b.key==="ArrowDown")V=m+1;else if(b.key==="ArrowLeft"||b.key==="ArrowUp")V=m-1;else if(b.key==="Home")V=0;else if(b.key==="End")V=g.length-1;else return;b.preventDefault();const l=b.key==="ArrowLeft"||b.key==="ArrowUp"?-1:1;let f=V;for(;f>=0&&f<g.length&&g[f].disabled;)f+=l;f<0||f>=g.length||(n.clear(),n.add(g[f].value),t.__latPaint(),r[f].focus(),re(t,y.doc))},t.addEventListener("keydown",t.__latKey);const v=O.value;if(o){const b=Array.isArray(v)?v:[];for(const m of b)g.some(V=>V.value===m)&&n.add(m)}else if(v!=null&&g.some(b=>b.value===v))n.add(v);else if(!a){const b=g.find(m=>!m.disabled)||g[0];b&&n.add(b.value)}return t.__latPaint(),t},read(O){return O.__latChips?O.__latValue():null},write(O,y){const C=O.__latChips;if(C){if(C.selected.clear(),C.multiple){const E=Array.isArray(y)?y:[];for(const g of E)C.options.some(o=>o.value===g)&&C.selected.add(g)}else if(y!=null&&C.options.some(E=>E.value===y))C.selected.add(y);else if(!C.allowEmpty){const E=C.options.find(g=>!g.disabled)||C.options[0];E&&C.selected.add(E.value)}O.__latPaint()}},validate(O,y,C){const E=O.__latChips;if(!E||!E.multiple)return null;const g=Array.isArray(C)?C.length:0,o=y.min!=null&&Number.isFinite(Number(y.min))?Number(y.min):null,a=y.max!=null&&Number.isFinite(Number(y.max))?Number(y.max):null;return o!=null&&g<o?{code:"min",message:E.t("form.chips.min",{min:String(o)})}:a!=null&&g>a?{code:"max",message:E.t("form.chips.max",{max:String(a)})}:null},state(O,y){const C=O.__latChips;C&&(C.disabled=y.disabled===!0,C.readOnly=y.readOnly===!0,C.readOnly?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly"),C.disabled?O.setAttribute("aria-disabled","true"):O.removeAttribute("aria-disabled"),O.__latPaint())}})}),Te("packages/modules/form/controls/otp.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=6;function re(a){const d=Math.floor(Number(a));return Number.isFinite(d)&&d>=1?d:k}function _(a){return a==="alphanumeric"?"alphanumeric":"numeric"}function P(a,d){return d==="numeric"?/^[0-9]$/.test(a):/^[A-Za-z0-9]$/.test(a)}function O(a,d){for(let h=a.length-1;h>=0;h-=1)if(P(a[h],d))return a[h];return""}function y(a,d,h){return(a==null?"":String(a)).replace(/[\s-]/g,"").split("").filter(r=>P(r,d)).slice(0,h)}function C(a,d,h){const t=d&&d.defaultView,r=t&&t.Event,n=r?new r(h,{bubbles:!0}):{type:h,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};a.dispatchEvent(n)}function E(a,d){const h=y(d,a.mode,a.length);for(let t=0;t<a.length;t+=1)a.boxes[t].value=h[t]||""}function g(a){a.complete=a.boxes.every(d=>d.value!=="")}function o(a){return a.boxes.map(d=>d.value).join("")}R("otp",{kind:"field",domEvents:["complete"],build(a,d){const h=d.doc,t=a.props||{},r=re(t.length),n=_(a.mode!=null?a.mode:t.mode),p=t.mask===!0,v=h.createElement("div");v.className="lat-form__otp",v.setAttribute("role","group"),v.setAttribute("aria-label",a.label!=null&&a.label!==""?String(a.label):d.t("form.otp.label"));const b=[],m={length:r,mode:n,mask:p,boxes:b,complete:!1,disabled:!1,readOnly:!1};v.__latOtp=m;for(let l=0;l<r;l+=1){const f=h.createElement("input");f.type="text",f.className=`lat-form__otp-input${p?" lat-form__otp-input--masked":""}`,f.setAttribute("inputmode",n==="numeric"?"numeric":"text"),f.setAttribute("pattern",n==="numeric"?"[0-9]":"[A-Za-z0-9]"),f.setAttribute("maxlength","1"),f.setAttribute("aria-label",d.t("form.otp.digit",{n:l+1,total:r})),f.autocomplete=l===0?"one-time-code":"off",b.push(f),v.appendChild(f)}const V=()=>{if(v.__latPublishing)return;v.__latPublishing=!0;try{C(v,h,"input"),C(v,h,"change")}finally{v.__latPublishing=!1}const l=b.every(f=>f.value!=="");l&&!m.complete?(m.complete=!0,C(v,h,"complete")):!l&&m.complete&&(m.complete=!1)};return v.addEventListener("input",l=>{if(v.__latPublishing)return;l.stopImmediatePropagation();const f=l.target;if(!b.includes(f))return;f.value=O(f.value,n);const c=b.indexOf(f);f.value!==""&&c<r-1&&b[c+1].focus(),V()}),v.addEventListener("change",l=>{v.__latPublishing||l.stopImmediatePropagation()}),v.addEventListener("keydown",l=>{if(m.disabled||m.readOnly)return;const f=l.target;if(!b.includes(f))return;const c=b.indexOf(f);l.key==="Backspace"?(l.preventDefault(),f.value!==""?f.value="":c>0&&(b[c-1].value="",b[c-1].focus()),V()):l.key==="ArrowLeft"&&c>0?(l.preventDefault(),b[c-1].focus()):l.key==="ArrowRight"&&c<r-1?(l.preventDefault(),b[c+1].focus()):l.key.length===1&&!P(l.key,n)&&!l.ctrlKey&&!l.metaKey&&!l.altKey&&l.preventDefault()}),v.addEventListener("paste",l=>{if(m.disabled||m.readOnly)return;l.preventDefault();const f=l.clipboardData&&typeof l.clipboardData.getData=="function"?l.clipboardData.getData("text"):"";E(m,f),(b.find(s=>s.value==="")||b[r-1]).focus(),V()}),v.focus=()=>{const l=b.find(f=>!f.disabled&&!f.readOnly&&f.value==="")||b[0];l&&l.focus()},v.blur=()=>{for(const l of b)l.blur()},E(m,a.value),g(m),v},read(a){return a.__latOtp?o(a.__latOtp):""},write(a,d){a.__latOtp&&(E(a.__latOtp,d),g(a.__latOtp))},state(a,d){const h=a.__latOtp;if(h){h.disabled=d.disabled===!0,h.readOnly=d.readOnly===!0;for(const t of h.boxes)t.disabled=h.disabled,t.readOnly=h.readOnly;h.disabled?a.setAttribute("aria-disabled","true"):a.removeAttribute("aria-disabled"),h.readOnly?a.setAttribute("aria-readonly","true"):a.removeAttribute("aria-readonly")}}})}),Te("packages/modules/form/controls/color.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,k=J("packages/modules/form/controls/field-icon.js"),re=k.makeFieldIcon,_=k.injectFieldIconStyles,P=J("packages/modules/form/controls/swatches.js"),O=P.DEFAULT_PALETTE,y=P.DEFAULT_GRAY_SHADES,C=P.buildSwatchGrid,E=P.hslToHex,g=10,o=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,a=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function d(S){return S}const h=new Set;function t(S,I){h.has(S)||(h.add(S),console.warn("[lattice]",I))}function r(S){if(typeof S!="string")return null;const I=S.trim();if(!o.test(I))return null;const U=I.replace(/^#/,"").toLowerCase();return`#${U.length===3?U.split("").map(B=>B+B).join(""):U}`}function n(S){if(typeof S!="string")return null;const I=r(S);if(I)return I;const U=a.exec(S.trim());if(!U)return null;const w=W=>Math.max(0,Math.min(255,Number(W))),B=W=>w(W).toString(16).padStart(2,"0");return`#${B(U[1])}${B(U[2])}${B(U[3])}`}function p(S){const I=r(S);return I?{r:parseInt(I.slice(1,3),16),g:parseInt(I.slice(3,5),16),b:parseInt(I.slice(5,7),16)}:null}function v(S,I,U){const w=B=>Math.max(0,Math.min(255,Math.round(B))).toString(16).padStart(2,"0");return`#${w(S)}${w(I)}${w(U)}`}function b(S,I,U){const w=S/255,B=I/255,W=U/255,q=Math.max(w,B,W),ne=Math.min(w,B,W),se=(q+ne)/2,N=q-ne;if(N===0)return{h:0,s:0,l:se};const K=se>.5?N/(2-q-ne):N/(q+ne);let oe;return q===w?oe=(B-W)/N%6:q===B?oe=(W-w)/N+2:oe=(w-B)/N+4,oe*=60,oe<0&&(oe+=360),{h:oe,s:K,l:se}}function m(S){return E(S.h,S.s,S.l)}function V(S,I,U){const w=S.ownerDocument,B=w&&w.defaultView,W=B&&typeof B.CustomEvent=="function"?B.CustomEvent:null,q=W?new W(I,{bubbles:!0,detail:U}):{type:I,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:U,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};S.dispatchEvent(q)}function l(S){const I=S.props&&S.props.palette;return Array.isArray(I)&&I.length?I:O}function f(S){return!(S.props&&S.props.editable===!1)}function c(S){return!!(S.props&&S.props.clearable===!0)}function s(S){return!!(S.props&&S.props.pickerOnly===!0)}function i(S){return!(S.props&&S.props.grayShades===!1)}function u(S){const I=S.props&&S.props.icon;return typeof I=="string"&&I!==""?I:null}function j(S){const I=S.props&&S.props.customColors;return Array.isArray(I)?[...new Set(I.map(n).filter(Boolean))].slice(0,g):[]}function F(S){const I=r(S.__input.value);S.__swatchBtn.style.background=I||"transparent",S.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!I),S.__clearBtn&&(S.__clearBtn.hidden=S.__input.value.trim()==="")}function M(S,I){S.__value=I||null,S.__input.value=I||"",S.__lastCommittedText=I||"",F(S)}function D(S){if(f(S.__item)===!1)return;const I=S.__input.value.trim();if(I===S.__lastCommittedText)return;const U=r(I);(U||I==="")&&(S.__value=U,S.__lastCommittedText=I),V(S,"change")}function Q(S,I){M(S,I),V(S,"change")}function Z(S,I){const U=S.__customColors,w=U.filter(W=>W!==I),B=[I,...w].slice(0,g);B.length===U.length&&B.every((W,q)=>W===U[q])||(S.__customColors=B,V(S,"customColorsChange",{colors:B}))}function ae(S){const I=S.__popover,U=S.ownerDocument,w=U&&U.defaultView,B=S.__field.getBoundingClientRect(),W=w?w.innerHeight:0,q=I.offsetHeight||0;W-B.bottom<q+4&&B.top>q+4?I.classList.add("lat-form__color-popover--above"):I.classList.remove("lat-form__color-popover--above")}function Y(S,I,U,w){let B=Math.max(0,Math.min(S.length-1,I.row+U)),W=I.col+w;if(w!==0){const q=S[B].length;W=Math.max(0,Math.min(q-1,W))}else W=Math.max(0,Math.min(S[B].length-1,W));return{row:B,col:W}}function ee(S){const I=S.__item,U=S.ownerDocument,w=S.__popover;for(;w.firstChild;)w.removeChild(w.firstChild);const B=[...l(I)];i(I)&&B.push([...y]),S.__customColors.length&&B.push([...S.__customColors]);const W=S.__value,{el:q,rows:ne}=C(U,B,{isSelected:N=>N===W,onPick:N=>{Q(S,N),me(S,{restoreFocus:!0})}});q.classList.add("lat-form__color-grid"),w.appendChild(q);for(const N of ne)for(const K of N){if(K.getAttribute("aria-selected")!=="true")continue;const oe=U.createElementNS("http://www.w3.org/2000/svg","svg");oe.setAttribute("viewBox","0 0 16 16"),oe.setAttribute("class","lat-form__color-check"),oe.setAttribute("aria-hidden","true");const z=U.createElementNS("http://www.w3.org/2000/svg","path");z.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),z.setAttribute("fill","none"),z.setAttribute("stroke","#fff"),z.setAttribute("stroke-width","2.6"),z.setAttribute("stroke-linecap","round"),z.setAttribute("stroke-linejoin","round"),z.setAttribute("paint-order","stroke"),oe.appendChild(z);const T=U.createElementNS("http://www.w3.org/2000/svg","path");T.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),T.setAttribute("fill","none"),T.setAttribute("stroke","#000"),T.setAttribute("stroke-width","4.2"),T.setAttribute("stroke-linecap","round"),T.setAttribute("stroke-linejoin","round"),T.setAttribute("opacity","0.35"),oe.insertBefore(T,z),K.appendChild(oe)}let se={row:0,col:0};e:for(let N=0;N<ne.length;N++)for(let K=0;K<ne[N].length;K++)if(ne[N][K].getAttribute("aria-selected")==="true"){se={row:N,col:K};break e}for(const N of ne)for(const K of N)K.tabIndex=-1;if(ne[se.row]&&ne[se.row][se.col]&&(ne[se.row][se.col].tabIndex=0),q.addEventListener("keydown",N=>{if(N.key==="Enter"||N.key===" "){N.preventDefault(),N.stopPropagation(),ne[se.row][se.col].click();return}const oe={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[N.key];if(!oe)return;N.preventDefault();for(const T of ne)for(const L of T)L.tabIndex=-1;se=Y(ne,se,oe[0],oe[1]);const z=ne[se.row][se.col];z.tabIndex=0,z.focus()}),!s(I)){const N=U.createElement("button");N.type="button",N.className="lat-form__color-custombtn",N.textContent=S.__t("form.color.customColor"),N.addEventListener("click",()=>{ze(S,W)}),w.appendChild(N)}ae(S)}function ze(S,I){const U=S.__item,w=S.ownerDocument,B=S.__popover;for(;B.firstChild;)B.removeChild(B.firstChild);const W=p(I)||{r:0,g:0,b:0},q=b(W.r,W.g,W.b),ne=w.createElement("div");ne.className="lat-form__color-picker",B.appendChild(ne);const se=w.createElement("div");se.className="lat-form__color-plane",se.setAttribute("role","slider"),se.setAttribute("aria-label",S.__t("form.color.saturationLightness")),se.tabIndex=0;const N=w.createElement("div");N.className="lat-form__color-plane-thumb",se.appendChild(N),ne.appendChild(se);const K=w.createElement("div");K.className="lat-form__color-hue",K.setAttribute("role","slider"),K.setAttribute("aria-label",S.__t("form.color.hue")),K.tabIndex=0;const oe=w.createElement("div");oe.className="lat-form__color-hue-thumb",K.appendChild(oe),ne.appendChild(K);const z=w.createElement("div");z.className="lat-form__color-fields";const T=w.createElement("input");T.type="text",T.className="lat-form__color-hexfield",T.setAttribute("aria-label",S.__t("form.color.hexLabel"));const L=w.createElement("input");L.type="number",L.min="0",L.max="255",L.className="lat-form__color-rgbfield",L.setAttribute("aria-label",S.__t("form.color.redLabel"));const A=w.createElement("input");A.type="number",A.min="0",A.max="255",A.className="lat-form__color-rgbfield",A.setAttribute("aria-label",S.__t("form.color.greenLabel"));const H=w.createElement("input");H.type="number",H.min="0",H.max="255",H.className="lat-form__color-rgbfield",H.setAttribute("aria-label",S.__t("form.color.blueLabel")),z.appendChild(T),z.appendChild(L),z.appendChild(A),z.appendChild(H),ne.appendChild(z);const X=w.createElement("div");X.className="lat-form__color-previewrow";const ie=w.createElement("span");ie.className="lat-form__color-preview",X.appendChild(ie),ne.appendChild(X);const de=w.createElement("div");if(de.className="lat-form__color-actions",!s(U)){const G=w.createElement("button");G.type="button",G.className="lat-form__color-back",G.textContent=S.__t("form.back"),G.addEventListener("click",()=>{ee(S)}),de.appendChild(G)}const ke=w.createElement("button");ke.type="button",ke.className="lat-form__color-select",ke.textContent=S.__t("form.color.select"),de.appendChild(ke),ne.appendChild(de);const _e=()=>{const G=m(q),ue=p(G);se.style.setProperty("--lat-color-hue",String(q.h)),N.style.left=`${q.s*100}%`,N.style.top=`${(1-q.l)*100}%`,oe.style.left=`${q.h/360*100}%`,T.value=G,L.value=String(ue.r),A.value=String(ue.g),H.value=String(ue.b),ie.style.background=G,se.setAttribute("aria-valuetext",G),K.setAttribute("aria-valuenow",String(Math.round(q.h)))};_e();const Me=(G,ue,we)=>{const ge=G.getBoundingClientRect();if(!ge.width||!ge.height)return;const xe=Math.max(0,Math.min(1,(ue.clientX-ge.left)/ge.width)),Ie=Math.max(0,Math.min(1,(ue.clientY-ge.top)/ge.height));we(xe,Ie)},Se=(G,ue)=>{let we=!1;G.addEventListener("pointerdown",ge=>{we=!0,Me(G,ge,ue)}),w.addEventListener("pointermove",ge=>{we&&Me(G,ge,ue)}),w.addEventListener("pointerup",()=>{we=!1})};Se(se,(G,ue)=>{q.s=G,q.l=1-ue,_e()}),Se(K,G=>{q.h=G*360,_e()}),se.addEventListener("keydown",G=>{if(G.key==="Enter"){G.preventDefault(),G.stopPropagation(),te();return}const ue=G.shiftKey?.1:.02;if(G.key==="ArrowLeft")q.s=Math.max(0,q.s-ue);else if(G.key==="ArrowRight")q.s=Math.min(1,q.s+ue);else if(G.key==="ArrowUp")q.l=Math.min(1,q.l+ue);else if(G.key==="ArrowDown")q.l=Math.max(0,q.l-ue);else return;G.preventDefault(),_e()}),K.addEventListener("keydown",G=>{if(G.key==="Enter"){G.preventDefault(),G.stopPropagation(),te();return}const ue=G.shiftKey?10:2;if(G.key==="ArrowLeft"||G.key==="ArrowDown")q.h=(q.h-ue+360)%360;else if(G.key==="ArrowRight"||G.key==="ArrowUp")q.h=(q.h+ue)%360;else return;G.preventDefault(),_e()});const Oe=()=>{const G=r(T.value);if(!G){T.value=m(q);return}const ue=p(G);Object.assign(q,b(ue.r,ue.g,ue.b)),_e()};T.addEventListener("change",Oe);const x=()=>{const G=ue=>Math.max(0,Math.min(255,Number(ue)||0));Object.assign(q,b(G(L.value),G(A.value),G(H.value))),_e()};L.addEventListener("change",x),A.addEventListener("change",x),H.addEventListener("change",x);const te=()=>{const G=m(q);Q(S,G),Z(S,G),me(S,{restoreFocus:!0})};ke.addEventListener("click",te);const fe=G=>ue=>{ue.key==="Enter"&&(ue.preventDefault(),ue.stopPropagation(),G(),te())};T.addEventListener("keydown",fe(Oe)),L.addEventListener("keydown",fe(x)),A.addEventListener("keydown",fe(x)),H.addEventListener("keydown",fe(x)),ae(S)}function Ce(S){S.__open||S.__item.disabled===!0||S.__item.readOnly===!0||(S.__open=!0,S.__popover.hidden=!1,s(S.__item)||S.__item.mode==="picker"?ze(S,S.__value):ee(S))}function me(S,I={}){if(S.__open){for(S.__open=!1,S.__popover.hidden=!0,S.__popover.classList.remove("lat-form__color-popover--above");S.__popover.firstChild;)S.__popover.removeChild(S.__popover.firstChild);I.restoreFocus&&S.__input.focus()}}R("color",{kind:"field",domEvents:["customColorsChange"],build(S,I){const U=I.doc;_(U);const w=U.createElement("div");w.className="lat-form__color",w.__item=S,w.__t=I.t||d,w.__open=!1,w.__value=n(S.value),w.__customColors=j(S);const B=U.createElement("div");B.className="lat-form__color-field",w.__field=B;const W=U.createElement("button");W.type="button",W.className="lat-form__color-swatch",W.setAttribute("aria-label",w.__t("form.color.open")),w.__swatchBtn=W;const q=U.createElement("input");q.type="text",q.className="lat-form__color-input",S.name&&(q.name=S.name),S.placeholder!=null&&(q.placeholder=String(S.placeholder)),S.label!=null&&S.label!==""&&q.setAttribute("aria-label",String(S.label)),q.setAttribute("autocomplete","off"),q.readOnly=!f(S),w.__input=q,B.appendChild(W),B.appendChild(q);let ne=null;if(c(S)){ne=U.createElement("button"),ne.type="button",ne.className="lat-form__color-clear",ne.setAttribute("aria-label",w.__t("form.color.clear"));const A=re(U,"close");A&&ne.appendChild(A),ne.addEventListener("click",()=>{Q(w,null),q.focus()}),B.appendChild(ne)}w.__clearBtn=ne;const se=U.createElement("button");se.type="button",se.className="lat-form__color-toggle",se.setAttribute("aria-label",w.__t("form.color.open"));const N=u(S),K=N?re(U,N):re(U,"chevronDown");K&&se.appendChild(K),w.__toggleBtn=se,B.appendChild(se),w.appendChild(B);const oe=U.createElement("div");oe.className="lat-form__color-popover",oe.hidden=!0,w.__popover=oe,w.appendChild(oe),M(w,w.__value);const z=()=>{w.__open?me(w):Ce(w)};W.addEventListener("click",z),se.addEventListener("click",z),q.addEventListener("input",()=>{F(w)}),q.addEventListener("change",A=>{A.stopPropagation(),D(w)}),q.addEventListener("keydown",A=>{A.key==="Enter"?(A.preventDefault(),D(w)):A.key==="Escape"&&w.__open?me(w):A.altKey&&A.key==="ArrowDown"&&(A.preventDefault(),Ce(w))}),w.addEventListener("keydown",A=>{A.target!==q&&(A.key==="Enter"&&!w.__open||A.altKey&&A.key==="ArrowDown"?(A.preventDefault(),Ce(w)):A.key==="Escape"&&w.__open&&(A.preventDefault(),me(w,{restoreFocus:!0})))});const T=A=>{!w.__open||w.contains(A.target)||me(w)},L=A=>{w.__open&&(A.relatedTarget&&w.contains(A.relatedTarget)||me(w))};return U.addEventListener("pointerdown",T),w.addEventListener("focusout",L),Array.isArray(I.disposers)&&I.disposers.push(()=>{U.removeEventListener("pointerdown",T),w.removeEventListener("focusout",L)}),w},read(S){const I=S.__input.value.trim();return I===""?null:r(I)||I},write(S,I){if(I==null||I===""){S.__value=null,M(S,null);return}const U=n(I);if(!U){t("form.color.setValue",`form.color: "${String(I)}" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.`);return}S.__value=U,M(S,U)},state(S,I){const U=I.disabled===!0||I.readOnly===!0;S.__input.disabled=I.disabled===!0,S.__input.readOnly=I.readOnly===!0||!f(I),S.__swatchBtn.disabled=U,S.__toggleBtn.disabled=U,S.__clearBtn&&(S.__clearBtn.disabled=U),U&&me(S)},validate(S,I,U){return U==null||typeof U=="string"&&/^#[0-9a-f]{6}$/.test(U)?!0:typeof I.errorMessage=="string"&&I.errorMessage!==""?I.errorMessage:S.__t("form.color.invalidHex")},focus(S){S.__input.focus()}})}),Te("packages/dom/src/cell/renderers/barcode/support.js",function($,J){"use strict";Object.defineProperty($,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"joinCharacters",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"buildPattern",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"mod10Weighted",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"MOD43_ORDER",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"mod43Check",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"weightedModulo",{enumerable:!0,get:function(){return O}});function e(y){const C=[];for(let E=0;E<y.length;E++){const g=E%2===0?1:0;for(let o=0;o<y[E];o++)C.push(g)}return C}function R(y,C){const E=[];return y.forEach((g,o)=>{if(o>0&&C>0)for(let a=0;a<C;a++)E.push(0);E.push(...g)}),E}function k(y,C){return R(y.map(e),C)}function re(y,C=3){let E=0,g=C;for(let o=y.length-1;o>=0;o--)E+=Number(y[o])*g,g=g===3?1:3;return(10-E%10)%10}const _="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function P(y){let C=0;for(const E of y){const g=_.indexOf(E);if(g<0)return null;C+=g}return _[C%43]}function O(y,C,E=11){let g=0,o=1;for(let a=y.length-1;a>=0;a--)g+=y[a]*o,o=o===C?1:o+1;return g%E}}),Te("packages/dom/src/cell/renderers/barcode/code39.js",function($,J){"use strict";Object.defineProperty($,"toExtendedSymbols",{enumerable:!0,get:function(){return a}}),Object.defineProperty($,"decodeExtendedSymbols",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"encodeCode39",{enumerable:!0,get:function(){return h}});const e=J("packages/dom/src/cell/renderers/barcode/support.js"),R=e.buildPattern,k=e.mod43Check,re=e.MOD43_ORDER,_=2,P=["000110100","100100001","001100001","101100000","000110001","100110000","001110000","000100101","100100100","001100100","100001001","001001001","101001000","000011001","100011000","001011000","000001101","100001100","001001100","000011100","100000011","001000011","101000010","000010011","100010010","001010010","000000111","100000110","001000110","000010110","110000001","011000001","111000000","010010001","110010000","011010000","010000101","110000100","011000100","010101000","010100010","010001010","000101010"],O="010010100";function y(t){return t.split("").map(r=>r==="1"?_:1)}function C(t){const r=re.indexOf(t);return r<0?null:y(P[r])}function E(){const t=new Map,r=n=>String.fromCharCode(65+n);for(let n=1;n<=26;n++)t.set(n,`$${r(n-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((n,p)=>t.set(27+p,n));for(let n=33;n<=44;n++)t.set(n,`/${r(n-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let n=59;n<=63;n++)t.set(n,`%${r(n-59+5)}`);t.set(64,"%V");for(let n=91;n<=95;n++)t.set(n,`%${r(n-91+10)}`);t.set(96,"%W");for(let n=97;n<=122;n++)t.set(n,`+${r(n-97)}`);for(let n=123;n<=127;n++)t.set(n,`%${r(n-123+15)}`);return t}const g=E(),o=new Map([...g].map(([t,r])=>[r,t]));function a(t){const r=[];for(const n of t){const p=n.codePointAt(0);if(p>127)return null;if(re.includes(n)){r.push(n);continue}const v=g.get(p);if(!v)return null;r.push(v[0],v[1])}return r}function d(t){let r="";for(let n=0;n<t.length;n++){const p=t[n]+(t[n+1]??"");if(o.has(p)){r+=String.fromCharCode(o.get(p)),n++;continue}r+=t[n]}return r}function h(t,r={}){const n=t==null?"":String(t);if(n==="")return{ok:!1,reason:"empty"};const p=r.extended?a(n):n.split("");if(!p)return{ok:!1,reason:"charset"};const v=[y(O)];for(const b of p){const m=C(b);if(!m)return{ok:!1,reason:"charset"};v.push(m)}if(r.checkDigit){const b=k(p.join(""));return b==null?{ok:!1,reason:"charset"}:(v.push(C(b)),v.push(y(O)),{ok:!0,modules:R(v,1),text:`${n}${b}`})}return v.push(y(O)),{ok:!0,modules:R(v,1),text:n}}}),Te("packages/dom/src/cell/renderers/barcode/ean.js",function($,J){"use strict";Object.defineProperty($,"L_PATTERNS",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"G_PATTERNS",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"R_PATTERNS",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"EAN13_PARITY",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"encodeEan13",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"encodeEan8",{enumerable:!0,get:function(){return E}});const R=J("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,k=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],re=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],_=k.map(g=>g.split("").map(o=>o==="1"?"0":"1").join("")),P=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function O(g){return g.split("").map(Number)}function y(g,o){const a=g==null?"":String(g);if(!/^\d+$/.test(a))return null;if(a.length===o)return{digits:a,check:R(a)};if(a.length===o+1){const d=a.slice(0,o),h=Number(a[o]),t=R(d);return h!==t?null:{digits:d,check:t}}return null}function C(g){const o=y(g,12);if(!o)return{ok:!1,reason:"checkDigit"};const a=o.digits+o.check,d=P[Number(a[0])],h=a.slice(1,7).split("").map((n,p)=>(d[p]==="L"?k:re)[Number(n)]),t=a.slice(7).split("").map(n=>_[Number(n)]);return{ok:!0,modules:[...O("101"),...h.flatMap(O),...O("01010"),...t.flatMap(O),...O("101")],text:a}}function E(g){const o=y(g,7);if(!o)return{ok:!1,reason:"checkDigit"};const a=o.digits+o.check,d=a.slice(0,4).split("").map(r=>k[Number(r)]),h=a.slice(4).split("").map(r=>_[Number(r)]);return{ok:!0,modules:[...O("101"),...d.flatMap(O),...O("01010"),...h.flatMap(O),...O("101")],text:a}}}),Te("packages/dom/src/cell/renderers/barcode/upc.js",function($,J){"use strict";Object.defineProperty($,"encodeUpcA",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"encodeUpcE",{enumerable:!0,get:function(){return g}});const e=J("packages/dom/src/cell/renderers/barcode/ean.js"),R=e.L_PATTERNS,k=e.G_PATTERNS,re=e.encodeEan13,P=J("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function O(o){return o.split("").map(Number)}function y(o){const a=o==null?"":String(o);if(!/^\d{11,12}$/.test(a))return{ok:!1,reason:"checkDigit"};const d=re(`0${a}`);return d.ok?{ok:!0,modules:d.modules,text:d.text.slice(1)}:d}function C(o,a){const d=o.split(""),h=d[5];return h<="2"?`${d[0]}${d[1]}${h}0000${d[2]}${d[3]}${d[4]}`:h==="3"?`${d[0]}${d[1]}${d[2]}00000${d[3]}${d[4]}`:h==="4"?`${d[0]}${d[1]}${d[2]}${d[3]}00000${d[4]}`:`${d[0]}${d[1]}${d[2]}${d[3]}${d[4]}0000${h}`}const E={0:["EEEOOO","OOOEEE"],1:["EEOEOO","OOEOEE"],2:["EEOOEO","OOEEOE"],3:["EEOOOE","OOEEEO"],4:["EOEEOO","OEOOEE"],5:["EOOEEO","OEEOOE"],6:["EOOOEE","OEEEOO"],7:["EOEOEO","OEOEOE"],8:["EOEOOE","OEOEEO"],9:["EOOEOE","OEEOEO"]};function g(o){const a=o==null?"":String(o);if(!/^\d{6,8}$/.test(a))return{ok:!1,reason:"checkDigit"};let d,h,t=null;if(a.length===6?(d="0",h=a):a.length===7?(d=a[0],h=a.slice(1)):(d=a[0],h=a.slice(1,7),t=a[7]),d!=="0"&&d!=="1")return{ok:!1,reason:"checkDigit"};const r=C(h,d),n=P(d+r);if(t!=null&&Number(t)!==n)return{ok:!1,reason:"checkDigit"};const v=E[n][Number(d)].split("").map((m,V)=>(m==="O"?R:k)[Number(h[V])]);return{ok:!0,modules:[...O("101"),...v.flatMap(O),...O("010101")],text:`${d}${h}${n}`}}}),Te("packages/dom/src/cell/renderers/barcode/code93.js",function($,J){"use strict";Object.defineProperty($,"toExtendedSymbols",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"decodeExtendedSymbols",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"encodeCode93",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"PATTERNS",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty($,"SHIFT_ORDER",{enumerable:!0,get:function(){return R}}),Object.defineProperty($,"START_STOP",{enumerable:!0,get:function(){return re}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",R=["($)","(%)","(/)","(+)"],k=[[1,3,1,1,1,2],[1,1,1,2,1,3],[1,1,1,3,1,2],[1,1,1,4,1,1],[1,2,1,1,1,3],[1,2,1,2,1,2],[1,2,1,3,1,1],[1,1,1,1,1,4],[1,3,1,2,1,1],[1,4,1,1,1,1],[2,1,1,1,1,3],[2,1,1,2,1,2],[2,1,1,3,1,1],[2,2,1,1,1,2],[2,2,1,2,1,1],[2,3,1,1,1,1],[1,1,2,1,1,3],[1,1,2,2,1,2],[1,1,2,3,1,1],[1,2,2,1,1,2],[1,3,2,1,1,1],[1,1,1,1,2,3],[1,1,1,2,2,2],[1,1,1,3,2,1],[1,2,1,1,2,2],[1,3,1,1,2,1],[2,1,2,1,1,2],[2,1,2,2,1,1],[2,1,1,1,2,2],[2,1,1,2,2,1],[2,2,1,1,2,1],[2,2,2,1,1,1],[1,1,2,1,2,2],[1,1,2,2,2,1],[1,2,2,1,2,1],[1,2,3,1,1,1],[1,2,1,1,3,1],[3,1,1,1,1,2],[3,1,1,2,1,1],[3,2,1,1,1,1],[1,1,2,1,3,1],[1,1,3,1,2,1],[2,1,1,1,3,1],[1,2,1,2,2,1],[3,1,2,1,1,1],[3,1,1,1,2,1],[1,2,2,2,1,1]],re=[1,1,1,1,4,1];function _(t){const r=[];for(let n=0;n<t.length;n++){const p=n%2===0?1:0;for(let v=0;v<t[n];v++)r.push(p)}return r}function P(t){return k[t]}function O(t){return e.indexOf(t)}function y(){const t=new Map,r=43,n=44,p=45,v=46,b=m=>10+m;for(let m=1;m<=26;m++)t.set(m,[r,b(m-1)]);t.set(0,[n,b(20)]);for(let m=27;m<=31;m++)t.set(m,[n,b(m-27)]);for(let m=33;m<=44;m++)t.set(m,[p,b(m-33)]);t.set(47,[p,b(14)]),t.set(58,[p,b(25)]);for(let m=59;m<=63;m++)t.set(m,[n,b(m-59+5)]);t.set(64,[n,b(21)]);for(let m=91;m<=95;m++)t.set(m,[n,b(m-91+10)]);t.set(96,[n,b(22)]);for(let m=97;m<=122;m++)t.set(m,[v,b(m-97)]);for(let m=123;m<=127;m++)t.set(m,[n,b(m-123+15)]);return t}const C=y(),E=new Map([...C].map(([t,r])=>[r.join(","),t]));function g(t){const r=[];for(const n of t){const p=n.codePointAt(0);if(p>127)return null;const v=O(n);if(v>=0){r.push(v);continue}const b=C.get(p);if(!b)return null;r.push(b[0],b[1])}return r}function o(t){let r="";for(let n=0;n<t.length;n++){const p=`${t[n]},${t[n+1]??""}`;if(E.has(p)){r+=String.fromCharCode(E.get(p)),n++;continue}r+=e[t[n]]}return r}function a(t){let r=0,n=1;for(let p=t.length-1;p>=0;p--)r+=t[p]*n,n=n===20?1:n+1;return r%47}function d(t){const r=a(t),n=a([...t,r]);return{c:r,k:n}}function h(t,r={}){const n=t==null?"":String(t);if(n==="")return{ok:!1,reason:"empty"};const p=r.extended?g(n):(()=>{const l=[];for(const f of n){const c=O(f);if(c<0)return null;l.push(c)}return l})();if(!p)return{ok:!1,reason:"charset"};const{c:v,k:b}=d(p),m=[re];for(const l of p)m.push(P(l));return m.push(P(v)),m.push(P(b)),m.push(re),{ok:!0,modules:m.flatMap(_),text:n}}}),Te("packages/dom/src/cell/renderers/barcode/code128.js",function($,J){"use strict";Object.defineProperty($,"encodeCode128",{enumerable:!0,get:function(){return t}});const R=J("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,k=["212222","222122","222221","121223","121322","131222","122213","122312","132212","221213","221312","231212","112232","122132","122231","113222","123122","123221","223211","221132","221231","213212","223112","312131","311222","321122","321221","312212","322112","322211","212123","212321","232121","111323","131123","131321","112313","132113","132311","211313","231113","231311","112133","112331","132131","113123","113321","133121","313121","211331","231131","213113","213311","213131","311123","311321","331121","312113","312311","332111","314111","221411","431111","111224","111422","121124","121421","141122","141221","112214","112412","122114","122411","142112","142211","241211","221114","413111","241112","134111","111242","121142","121241","114212","124112","124211","411212","421112","421211","212141","214121","412121","111143","111341","131141","114113","114311","411113","411311","113141","114131","311141","411131","211412","211214","211232","2331112"],re=103,_=104,P=105,O=106,y={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},C={A:re,B:_,C:P};function E(r){return r>=32&&r<=95?r-32:r>=0&&r<=31?r+64:null}function g(r){return r>=32&&r<=127?r-32:null}function o(r,n){const p=r.charCodeAt(n),v=r.charCodeAt(n+1);return p>=48&&p<=57&&v>=48&&v<=57}function a(r,n,p){const v=[],b=r.charCodeAt(n),m=E(b);if(m!=null){const l=p==="A"||p===null?[m]:[y[p].A,m];v.push({to:"A",symbols:l,advance:1})}const V=g(b);if(V!=null){const l=p==="B"||p===null?[V]:[y[p].B,V];v.push({to:"B",symbols:l,advance:1})}if(o(r,n)){const l=Number(r.slice(n,n+2)),f=p==="C"||p===null?[l]:[y[p].C,l];v.push({to:"C",symbols:f,advance:2})}return v}function d(r){const n=r.length,p=Array.from({length:n+1},()=>({}));p[0].start={cost:0,prev:null,symbols:[]};for(let c=0;c<=n;c++)for(const s of Object.keys(p[c])){const i=p[c][s];if(c===n)continue;const u=s==="start"?null:s;for(const j of a(r,c,u)){const F=c+j.advance,M=i.cost+j.symbols.length,D=p[F][j.to];(!D||M<D.cost)&&(p[F][j.to]={cost:M,prev:s,symbols:j.symbols,backI:c})}}const v=Object.entries(p[n]);if(v.length===0)return null;v.sort((c,s)=>c[1].cost-s[1].cost);const[,b]=v[0],m=[];let V=n,l=v[0][0],f=l;for(;V>0;){const c=p[V][l];m.push(c.symbols),f=l,V=c.backI,l=c.prev}return m.reverse(),{symbols:m.flat(),startSubset:f}}function h(r,n){let p=r;for(let v=0;v<n.length;v++)p+=n[v]*(v+1);return p%103}function t(r,n={}){const p=r==null?"":String(r);if(p==="")return{ok:!1,reason:"empty"};for(let c=0;c<p.length;c++)if(p.charCodeAt(c)>127)return{ok:!1,reason:"charset"};const v=d(p);if(!v)return{ok:!1,reason:"charset"};const b=C[v.startSubset],m=h(b,v.symbols);return{ok:!0,modules:[b,...v.symbols,m,O].map(c=>k[c].split("").map(Number)).flatMap(c=>R(c)),text:p}}}),Te("packages/dom/src/cell/renderers/barcode/code11.js",function($,J){"use strict";Object.defineProperty($,"encodeCode11",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"ALPHABET",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"PATTERNS",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"START_STOP",{enumerable:!0,get:function(){return P}});const e=J("packages/dom/src/cell/renderers/barcode/support.js"),R=e.buildPattern,k=e.weightedModulo,re="0123456789-",_=[[1,1,1,1,1],[1,1,1,1,2],[1,1,1,2,1],[1,1,2,1,1],[1,2,1,1,1],[2,1,1,1,1],[1,1,1,2,2],[1,1,2,1,2],[1,1,2,2,1],[1,2,1,1,2],[1,2,1,2,1]],P=[2,1,1,1,2,1],O=o=>re.indexOf(o);function y(o){const a=O(o);return a<0?null:_[a]}function C(o){return re[k(o,10)]}function E(o){return re[k(o,9)]}function g(o,a={}){const d=o==null?"":String(o);if(d==="")return{ok:!1,reason:"empty"};const h=[];for(const b of d){const m=O(b);if(m<0)return{ok:!1,reason:"charset"};h.push(m)}const t=C(h),r=O(t),p=d.length>=10?`${t}${E([...h,r])}`:t,v=[P];for(const b of d)v.push(y(b));for(const b of p)v.push(y(b));return v.push(P),{ok:!0,modules:R(v,1),text:`${d}${p}`}}}),Te("packages/dom/src/cell/renderers/barcode/codabar.js",function($,J){"use strict";Object.defineProperty($,"MOD16_ORDER",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"encodeCodabar",{enumerable:!0,get:function(){return g}});const R=J("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,k=2,re={0:"nnnnnww",1:"nnnnwnw",2:"nnwnnnw",3:"wwnnnnn",4:"nnnwnwn",5:"wnnnnwn",6:"nwnnnnw",7:"nwnnwnn",8:"nwwnnnn",9:"wnnwnnn","-":"nnnwwnn",$:"nnwwnnn",":":"wnnnwnw","/":"wnwnwnn",".":"wnwwnnn","+":"nnwnwnw",A:"nnwwnwn",B:"nwnwnnw",C:"nnnwnww",D:"nnnwwwn"},_="0123456789-$:/.+",P="ABCD",O="0123456789-$:/.+ABCD";function y(o){return o.split("").map(a=>a==="w"?k:1)}function C(o){const a=re[o];return a?y(a):null}function E(o){let a=0;for(const h of o){const t=O.indexOf(h);if(t<0)return null;a+=t}const d=a%16;return d<10?String(d):null}function g(o,a={}){const d=o==null?"":String(o);if(d==="")return{ok:!1,reason:"empty"};const h=d.toUpperCase();if(h.length<2)return{ok:!1,reason:"charset"};const t=h[0],r=h[h.length-1];if(!P.includes(t)||!P.includes(r))return{ok:!1,reason:"charset"};const n=h.slice(1,-1);for(const b of n)if(!_.includes(b))return{ok:!1,reason:"charset"};const p=[t,...n.split(""),r];if(a.checkDigit){const b=E(p);if(b==null)return{ok:!1,reason:"checkDigit"};p.splice(p.length-1,0,b);const m=p.map(C),V=`${h.slice(0,-1)}${b}${r}`;return{ok:!0,modules:R(m,1),text:V}}const v=p.map(C);return{ok:!0,modules:R(v,1),text:h}}}),Te("packages/dom/src/cell/renderers/barcode/code32.js",function($,J){"use strict";Object.defineProperty($,"ALPHABET",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"decodeCode32Modules",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"encodeCode32",{enumerable:!0,get:function(){return a}});const R=J("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,k=2,re="010010100",_={0:"000110100",1:"100100001",2:"001100001",3:"101100000",4:"000110001",5:"100110000",6:"001110000",7:"000100101",8:"100100100",9:"001100100",A:"100001001",B:"001001001",C:"101001000",D:"000011001",F:"001011000",G:"000001101",H:"100001100",J:"000011100",K:"100000011",L:"001000011",M:"101000010",N:"000010011",P:"001010010",Q:"000000111",R:"100000110",S:"001000110",T:"000010110",U:"110000001",V:"011000001",W:"111000000",X:"010010001",Y:"110010000",Z:"011010000"},P="0123456789BCDFGHJKLMNPQRSTUVWXYZ",O=d=>d.split("").map(h=>h==="1"?k:1),y=d=>_[d]?O(_[d]):null,C=()=>O(re);function E(d){let h=0;for(let t=0;t<8;t++){const r=t+1;let n=Number(d[t]);r%2===0&&(n*=2,n>=10&&(n-=9)),h+=n}return h%10}function g(d,h){let t="",r=d;for(let n=0;n<h;n++)t=P[r%32]+t,r=Math.floor(r/32);return t}function o(d){const h=[];for(let v=0;v<d.length;v++)v===0||d[v]!==d[v-1]?h.push(1):h[h.length-1]++;const t=1,r=v=>v>t?"1":"0",n=[];let p=9;for(;p<h.length;){p+=1;const v=h.slice(p,p+9);if(v.length<9)break;const b=v.map(r).join(""),m=Object.keys(_).find(V=>_[V]===b);n.push(m??"?"),p+=9}return n.pop(),n}function a(d,h={}){const t=d==null?"":String(d);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const r=t.slice(0,8),n=E(r);let p;if(t.length===9){const f=Number(t[8]);if(f!==n)return{ok:!1,reason:"checkDigit"};p=f}else p=n;const v=`${r}${p}`,b=Number(v),V=`A${g(b,6)}`.split(""),l=[C()];for(const f of V){const c=y(f);if(!c)return{ok:!1,reason:"charset"};l.push(c)}return l.push(C()),{ok:!0,modules:R(l,1),text:v}}}),Te("packages/dom/src/cell/renderers/barcode/datamatrix.js",function($,J){"use strict";Object.defineProperty($,"gfMul",{enumerable:!0,get:function(){return re}}),Object.defineProperty($,"gfExp",{enumerable:!0,get:function(){return _}}),Object.defineProperty($,"generatorPoly",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"reedSolomon",{enumerable:!0,get:function(){return O}}),Object.defineProperty($,"SIZES",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"dataCodewords",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"errorCodewords",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"dataRegionSize",{enumerable:!0,get:function(){return o}}),Object.defineProperty($,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"base256Mask",{enumerable:!0,get:function(){return r}}),Object.defineProperty($,"encodeBase256",{enumerable:!0,get:function(){return n}}),Object.defineProperty($,"padCodewords",{enumerable:!0,get:function(){return p}}),Object.defineProperty($,"utahPlacementOrder",{enumerable:!0,get:function(){return v}}),Object.defineProperty($,"diagonalWalkCoverage",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"placeCodewords",{enumerable:!0,get:function(){return m}}),Object.defineProperty($,"buildSymbol",{enumerable:!0,get:function(){return V}}),Object.defineProperty($,"encodeDataMatrix",{enumerable:!0,get:function(){return s}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return i}});const e=301,R=new Uint8Array(512),k=new Uint8Array(256);{let u=1;for(let j=0;j<255;j++)R[j]=u,k[u]=j,u<<=1,u&256&&(u^=e);for(let j=255;j<512;j++)R[j]=R[j-255]}function re(u,j){return u===0||j===0?0:R[k[u]+k[j]]}function _(u){return R[(u%255+255)%255]}function P(u){let j=new Uint8Array([1]);for(let F=0;F<u;F++){const M=new Uint8Array(j.length+1);for(let D=0;D<j.length;D++)M[D]^=j[D],M[D+1]^=re(j[D],_(F));j=M}return j.subarray(1)}function O(u,j){const F=P(j),M=new Uint8Array(j);for(let D=0;D<u.length;D++){const Q=u[D]^M[0];if(M.copyWithin(0,1),M[j-1]=0,Q!==0)for(let Z=0;Z<j;Z++)M[Z]^=re(F[Z],Q)}return M}const y={10:[3,5],12:[5,7],14:[8,10],16:[12,12],18:[18,14],20:[22,18],22:[30,20],24:[36,24],26:[44,28]},C=Object.keys(y).map(Number).sort((u,j)=>u-j);function E(u){const j=y[u];if(!j)throw new RangeError(`unsupported Data Matrix size ${u}`);return j[0]}function g(u){const j=y[u];if(!j)throw new RangeError(`unsupported Data Matrix size ${u}`);return j[1]}function o(u){return u-2}const a=129,d=231,h=u=>u>=48&&u<=57;function t(u){const j=[];let F=0;for(;F<u.length;){const M=u[F],D=F+1<u.length?u[F+1]:-1;if(h(M)&&h(D)){const Q=M-48,Z=D-48;j.push(Q*10+Z+130),F+=2}else j.push(M+1),F+=1}return j}function r(u,j){const F=149*j%255+1;return(u+F)%256}function n(u,j){if(u.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const F=[d,u.length];for(let M=0;M<u.length;M++)F.push(r(u[M],j+2+M));return F}function p(u,j){if(u.length>j)throw new RangeError(`encoded stream (${u.length} codewords) exceeds capacity (${j})`);const F=u.slice();for(;F.length<j;)F.push(a);return F}function v(u){const j=new Array(u*u).fill(null),F=[],M=(Ce,me)=>Ce>=0&&Ce<u&&me>=0&&me<u,D=(Ce,me)=>{if(!M(Ce,me))return;const S=Ce*u+me;if(j[S]===null){const I={row:Ce,col:me};j[S]=I,F.push(I)}},Q=(Ce,me)=>{const S=U=>(U%u+u)%u,I=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[U,w]of I)D(S(Ce+U),S(me+w))};let Z=4,ae=0,Y=0;const ee=u*u+64;do{for(;Z>=0&&ae<u;)Q(Z,ae),Z-=2,ae+=2;for(Z+=1,ae+=3;Z<u&&ae>=0;)Q(Z,ae),Z+=2,ae-=2;Z+=3,ae+=1}while((Z<u||ae<u)&&Y++<ee);const ze=F.length;for(let Ce=0;Ce<u;Ce++)for(let me=0;me<u;me++)D(Ce,me);return Object.defineProperty(F,"sweptCount",{value:F.length-ze,enumerable:!1}),F}function b(u){return v(u).sweptCount}function m(u,j){const F=v(j),M=new Uint8Array(j*j);for(let D=0;D<F.length;D++){const Q=Math.floor(D/8);if(Q>=u.length)break;const Z=7-D%8,ae=u[Q]>>>Z&1,{row:Y,col:ee}=F[D];M[Y*j+ee]=ae}return M}function V(u,j){const F=j+2,M=new Uint8Array(F*F),D=(Z,ae,Y)=>{M[Z*F+ae]=Y},Q=F-1;for(let Z=0;Z<F;Z++)D(Q,Z,1);for(let Z=0;Z<F;Z++)D(Z,0,1);for(let Z=0;Z<F;Z++)D(0,Z,Z%2===0?1:0);for(let Z=0;Z<F;Z++)D(Z,F-1,Z%2===0?1:0);for(let Z=0;Z<j;Z++)for(let ae=0;ae<j;ae++)M[(Z+1)*F+(ae+1)]=u[Z*j+ae];return{size:F,modules:M}}function l(u){const j=new Uint8Array(u.length);for(let F=0;F<u.length;F++)j[F]=u.charCodeAt(F)&255;return j}function f(u){for(let j=0;j<u.length;j++)if(u[j]>127)return!1;return!0}function c(u){for(const j of C)if(E(j)>=u)return j;return 0}function s(u,j={}){if(u==null||u==="")return{ok:!1,reason:"empty"};const F=String(u),M=l(F),D=j&&j.encodation==="base256";if(!D&&!f(M))return{ok:!1,reason:"charset"};let Q;if(D){if(M.length>249)return{ok:!1,reason:"capacity"};Q=n(M,1)}else Q=t(M);const Z=j&&j.size;let ae;if(Z!=null){if(!y[Z])return{ok:!1,reason:"capacity"};if(Q.length>E(Z))return{ok:!1,reason:"capacity"};ae=Z}else if(ae=c(Q.length),ae===0)return{ok:!1,reason:"capacity"};const Y=E(ae),ee=p(Q,Y),ze=O(ee,g(ae)),Ce=new Uint8Array(Y+ze.length);Ce.set(ee,0),Ce.set(ze,Y);const me=o(ae),S=m(Ce,me),{modules:I}=V(S,me);return{ok:!0,matrix:{size:ae,modules:I},text:F}}const i=s}),Te("packages/dom/src/cell/renderers/barcode/index.js",function($,J){"use strict";Object.defineProperty($,"BARCODE_TYPES",{enumerable:!0,get:function(){return b}}),Object.defineProperty($,"encodeBarcode",{enumerable:!0,get:function(){return m}});const e=J("packages/dom/src/cell/renderers/barcode/code39.js"),R=e.encodeCode39,k=J("packages/dom/src/cell/renderers/barcode/ean.js"),re=k.encodeEan13,_=k.encodeEan8,P=J("packages/dom/src/cell/renderers/barcode/upc.js"),O=P.encodeUpcA,y=P.encodeUpcE,C=J("packages/dom/src/cell/renderers/barcode/code93.js"),E=C.encodeCode93,g=J("packages/dom/src/cell/renderers/barcode/code128.js"),o=g.encodeCode128,a=J("packages/dom/src/cell/renderers/barcode/code11.js"),d=a.encodeCode11,h=J("packages/dom/src/cell/renderers/barcode/codabar.js"),t=h.encodeCodabar,r=J("packages/dom/src/cell/renderers/barcode/code32.js"),n=r.encodeCode32,p=J("packages/dom/src/cell/renderers/barcode/datamatrix.js"),v=p.encodeDataMatrix;Object.defineProperty($,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty($,"encodeEan13",{enumerable:!0,get:function(){return k.encodeEan13}}),Object.defineProperty($,"encodeEan8",{enumerable:!0,get:function(){return k.encodeEan8}}),Object.defineProperty($,"encodeUpcA",{enumerable:!0,get:function(){return P.encodeUpcA}}),Object.defineProperty($,"encodeUpcE",{enumerable:!0,get:function(){return P.encodeUpcE}}),Object.defineProperty($,"encodeCode93",{enumerable:!0,get:function(){return C.encodeCode93}}),Object.defineProperty($,"encodeCode128",{enumerable:!0,get:function(){return g.encodeCode128}}),Object.defineProperty($,"encodeCode11",{enumerable:!0,get:function(){return a.encodeCode11}}),Object.defineProperty($,"encodeCodabar",{enumerable:!0,get:function(){return h.encodeCodabar}}),Object.defineProperty($,"encodeCode32",{enumerable:!0,get:function(){return r.encodeCode32}}),Object.defineProperty($,"encodeDataMatrix",{enumerable:!0,get:function(){return p.encodeDataMatrix}});const b=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function m(V,l,f={}){switch(V){case"code39":return R(l,{checkDigit:f.checkDigit});case"code39ext":return R(l,{extended:!0,checkDigit:f.checkDigit});case"ean13":return re(l);case"ean8":return _(l);case"upca":return O(l);case"upce":return y(l);case"code93":return E(l);case"code93ext":return E(l,{extended:!0});case"code128":return o(l);case"code11":return d(l);case"codabar":return t(l,{checkDigit:f.checkDigit});case"code32":return n(l);case"datamatrix":return v(l,{size:f.size,encodation:f.encodation});default:return{ok:!1,reason:"type"}}}}),Te("packages/dom/src/cell/renderers/barcode/render.js",function($,J){"use strict";Object.defineProperty($,"warnOnce",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"barsPathData",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"matrixPathData",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"paint",{enumerable:!0,get:function(){return d}}),Object.defineProperty($,"buildSvg",{enumerable:!0,get:function(){return h}}),Object.defineProperty($,"renderBarcode",{enumerable:!0,get:function(){return t}});const R=J("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,k="http://www.w3.org/2000/svg",re=60,_=16,P=4;function O(r,n,p){p==null||p===!1?r.removeAttribute(n):r.setAttribute(n,String(p))}const y=new Set;function C(r,n){y.has(r)||(y.add(r),console.warn("[lattice]",n))}function E(r,n,p){const v=[];let b=0;for(;b<r.length;){if(!r[b]){b++;continue}let m=1;for(;b+m<r.length&&r[b+m];)m++;v.push(`M${b+n} 0h${m}v${p}h-${m}z`),b+=m}return v.join("")}function g(r,n){const{size:p,modules:v}=r,b=[];for(let m=0;m<p;m++){let V=0;for(;V<p;){if(!v[m*p+V]){V++;continue}let l=1;for(;V+l<p&&v[m*p+V+l];)l++;b.push(`M${V+n} ${m+n}h${l}v1h-${l}z`),V+=l}}return b.join("")}function o(r){const n=r&&typeof r=="object"?r:{};return{show:n.show!==!1,position:n.position==="top"?"top":"bottom",align:n.align==="left"||n.align==="right"?n.align:"center",margin:Number.isFinite(Number(n.margin))?Number(n.margin):2,font:typeof n.font=="string"&&n.font?n.font:"10px sans-serif"}}function a(r){const n=Math.floor(Number(r));return!Number.isFinite(n)||n<0?10:Math.min(40,n)}function d(r,n,p){const v=a(p.quietZone),b=o(p.text),m=b.show,V=!!n.matrix,l=V?n.matrix.size:n.modules.length,f=V?l+v*2:re,c=m&&b.position==="top"?_+P:0,s=f+(m?_+P:0),i=l+v*2,u=Number(p.moduleWidth)||0,j=u>0?i*u:Number(p.width)||200,F=Number(p.height)||Math.round(j/i*s)||60;O(r.svg,"viewBox",`0 0 ${i} ${s}`),O(r.svg,"width",j),O(r.svg,"height",F);const M=p.print?"#000000":p.foreground||"currentColor",D=p.print?"#ffffff":p.background;if(D?(O(r.background,"x",0),O(r.background,"y",0),O(r.background,"width",i),O(r.background,"height",s),r.background.setAttribute("fill",D),r.background.style.display=""):r.background.style.display="none",r.path.setAttribute("fill",M),r.path.setAttribute("transform",`translate(0 ${c})`),r.path.setAttribute("d",V?g(n.matrix,v):E(n.modules,v,re)),!m){r.text.style.display="none";return}r.text.style.display="",r.text.style.font=b.font,r.text.setAttribute("fill",M),r.text.setAttribute("text-anchor",b.align==="left"?"start":b.align==="right"?"end":"middle");const Q=b.align==="left"?v:b.align==="right"?i-v:i/2,Z=b.position==="top"?_-b.margin:s-b.margin;O(r.text,"x",Q),O(r.text,"y",Z),r.text.textContent=n.text}function h(r){const n=r.createElementNS(k,"svg");n.setAttribute("class","lat-barcode__svg"),n.setAttribute("focusable","false"),n.setAttribute("preserveAspectRatio","none");const p=r.createElementNS(k,"rect");p.style.display="none";const v=r.createElementNS(k,"path"),b=r.createElementNS(k,"text");return n.appendChild(p),n.appendChild(v),n.appendChild(b),{svg:n,background:p,path:v,text:b}}function t(r,n){const p=r.ownerDocument,v=h(p);r.textContent="",r.appendChild(v.svg);const b=V=>{const l=V||{},f=String(l.type||"code39"),c=R(f,l.value,{checkDigit:l.checkDigit,size:l.size,encodation:l.encodation});if(!c.ok){C(`barcode:invalid:${f}`,`column "standalone" has a value that is not valid for the "${f}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),v.path.setAttribute("d","");return}d(v,c,l)};return b(n),{update:b,destroy:()=>{r.textContent=""}}}}),Te("packages/modules/form/controls/barcode.js",function($,J){"use strict";const R=J("packages/modules/form/controls/registry.js").registerControl,re=J("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function _(P,O){const y=P.props&&P.props.source;if(!y)return P.value;const C=typeof O.form.getItem=="function"?O.form.getItem(y):null;return C&&typeof C.getValue=="function"?C.getValue():void 0}R("barcode",{kind:"display",build(P,O){const y=O.doc.createElement("span");y.className="lat-form__barcode";const C=re(y,{...P.props,value:_(P,O)}),E=P.props&&P.props.source;if(E){const g=O.emitter.on("change",o=>{o&&o.name===E&&C.update({...P.props,value:o.value})});O.disposers.push(g)}return O.disposers.push(()=>C.destroy()),y._barcodeHandle=C,y},read(P,O,y){return _(O,y)},write(P,O,y){P._barcodeHandle&&P._barcodeHandle.update({...O.props,value:y})},state(){}})}),Te("packages/modules/form/controls/speeddial.js",function($,J){"use strict";Object.defineProperty($,"injectSpeedDialStyles",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"createSpeedDial",{enumerable:!0,get:function(){return s}});const R=J("packages/modules/form/controls/registry.js").registerControl,re=J("packages/modules/form/messages.js").t,P=J("packages/modules/form/ids.js").nextId,y=J("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,C="lat-speeddial",E="data-lattice-speeddial-styles",g="http://www.w3.org/2000/svg",o=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),a=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),d=Object.freeze(["up","down","left","right"]);function h(){const i=`
1697
1717
  .lat-form,
1698
1718
  .lat-speeddial[data-lattice-standalone]{
1699
1719
  --lattice-speeddial-primary-bg:#5a46d6;
@@ -1765,8 +1785,8 @@ ${s}
1765
1785
  --lattice-speeddial-danger-bg:#e05b5b;
1766
1786
  --lattice-speeddial-danger-fg:#1c0606;
1767
1787
  --lattice-speeddial-danger-border:#e05b5b;
1768
- }}}`,j=a.map(H=>`
1769
- .${k}[data-variant='${H}'] .${k}__fab{ background:var(--lattice-speeddial-${H}-bg); border-color:var(--lattice-speeddial-${H}-border); color:var(--lattice-speeddial-${H}-fg); }`).join(`
1788
+ }}}`,j=a.map(F=>`
1789
+ .${C}[data-variant='${F}'] .${C}__fab{ background:var(--lattice-speeddial-${F}-bg); border-color:var(--lattice-speeddial-${F}-border); color:var(--lattice-speeddial-${F}-fg); }`).join(`
1770
1790
  `);return`
1771
1791
  .lat-speeddial{
1772
1792
  position:relative; box-sizing:border-box; min-width:0;
@@ -1818,7 +1838,7 @@ ${s}
1818
1838
  /* Inside a form the control cell gives the FAB its room. */
1819
1839
  .lat-form__control .lat-speeddial{ min-height:calc(var(--lat-sd-size) + var(--lat-sd-pad) * 2); }
1820
1840
 
1821
- .${k}__fab{
1841
+ .${C}__fab{
1822
1842
  position:absolute; z-index:2; pointer-events:auto;
1823
1843
  box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
1824
1844
  gap:calc(var(--lat-sd-pad) / 2);
@@ -1828,42 +1848,42 @@ ${s}
1828
1848
  padding:0; font:inherit; line-height:1; cursor:pointer; user-select:none;
1829
1849
  box-shadow:0 2px 8px color-mix(in srgb, var(--lattice-foreground) 25%, transparent);
1830
1850
  }
1831
- .${k}__fab[data-text='true']{ width:auto; padding:0 var(--lat-sd-pad); }
1832
- .${k}__fab:disabled{ cursor:not-allowed; opacity:.55; }
1833
- .${k}__fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
1834
- .${k}__fab-icon svg,
1835
- .${k}__fab-icon img{ width:calc(var(--lattice-control-size) * 1.5); height:calc(var(--lattice-control-size) * 1.5); display:block; }
1836
- .${k}__fab-icon img{ object-fit:contain; }
1837
- .${k}__fab-text{ font-weight:600; }
1851
+ .${C}__fab[data-text='true']{ width:auto; padding:0 var(--lat-sd-pad); }
1852
+ .${C}__fab:disabled{ cursor:not-allowed; opacity:.55; }
1853
+ .${C}__fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
1854
+ .${C}__fab-icon svg,
1855
+ .${C}__fab-icon img{ width:calc(var(--lattice-control-size) * 1.5); height:calc(var(--lattice-control-size) * 1.5); display:block; }
1856
+ .${C}__fab-icon img{ object-fit:contain; }
1857
+ .${C}__fab-text{ font-weight:600; }
1838
1858
 
1839
1859
  /* The eight anchor positions, in logical properties so RTL mirrors them. */
1840
- .${k}__fab[data-position='top-left']{ inset-block-start:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1841
- .${k}__fab[data-position='top-center']{ inset-block-start:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1842
- .${k}__fab[data-position='top-right']{ inset-block-start:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1843
- .${k}__fab[data-position='middle-left']{ inset-block-start:50%; inset-inline-start:var(--lat-sd-pad); transform:translateY(-50%); }
1844
- .${k}__fab[data-position='middle-right']{ inset-block-start:50%; inset-inline-end:var(--lat-sd-pad); transform:translateY(-50%); }
1845
- .${k}__fab[data-position='bottom-left']{ inset-block-end:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1846
- .${k}__fab[data-position='bottom-center']{ inset-block-end:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1847
- .${k}__fab[data-position='bottom-right']{ inset-block-end:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1860
+ .${C}__fab[data-position='top-left']{ inset-block-start:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1861
+ .${C}__fab[data-position='top-center']{ inset-block-start:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1862
+ .${C}__fab[data-position='top-right']{ inset-block-start:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1863
+ .${C}__fab[data-position='middle-left']{ inset-block-start:50%; inset-inline-start:var(--lat-sd-pad); transform:translateY(-50%); }
1864
+ .${C}__fab[data-position='middle-right']{ inset-block-start:50%; inset-inline-end:var(--lat-sd-pad); transform:translateY(-50%); }
1865
+ .${C}__fab[data-position='bottom-left']{ inset-block-end:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1866
+ .${C}__fab[data-position='bottom-center']{ inset-block-end:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1867
+ .${C}__fab[data-position='bottom-right']{ inset-block-end:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1848
1868
 
1849
- .${k}[data-fixed='true'] .${k}__fab,
1850
- .${k}[data-fixed='true'] .${k}__menu,
1851
- .${k}[data-fixed='true'] .${k}__backdrop{ position:fixed; }
1869
+ .${C}[data-fixed='true'] .${C}__fab,
1870
+ .${C}[data-fixed='true'] .${C}__menu,
1871
+ .${C}[data-fixed='true'] .${C}__backdrop{ position:fixed; }
1852
1872
 
1853
- .${k}__backdrop{
1873
+ .${C}__backdrop{
1854
1874
  position:absolute; inset:0; z-index:1; pointer-events:auto; border:0; padding:0;
1855
1875
  background:color-mix(in srgb, var(--lattice-foreground) 12%, transparent);
1856
1876
  }
1857
- .${k}__backdrop[hidden]{ display:none; }
1877
+ .${C}__backdrop[hidden]{ display:none; }
1858
1878
 
1859
- .${k}__menu{
1879
+ .${C}__menu{
1860
1880
  position:absolute; z-index:3; display:flex; gap:var(--lat-sd-gap);
1861
1881
  pointer-events:none; box-sizing:border-box; padding:0; margin:0; list-style:none;
1862
1882
  }
1863
- .${k}__menu[hidden]{ display:none; }
1864
- .${k}__menu[data-mode='radial']{ left:0; top:0; width:0; height:0; overflow:visible; }
1883
+ .${C}__menu[hidden]{ display:none; }
1884
+ .${C}__menu[data-mode='radial']{ left:0; top:0; width:0; height:0; overflow:visible; }
1865
1885
 
1866
- .${k}__item{
1886
+ .${C}__item{
1867
1887
  position:relative; pointer-events:auto; box-sizing:border-box;
1868
1888
  display:inline-flex; align-items:center; justify-content:center; gap:calc(var(--lattice-space) / 2);
1869
1889
  height:var(--lat-sd-item-h); min-height:0; padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
@@ -1872,20 +1892,20 @@ ${s}
1872
1892
  font:inherit; line-height:1.2; cursor:pointer; user-select:none; white-space:nowrap;
1873
1893
  box-shadow:0 1px 4px color-mix(in srgb, var(--lattice-foreground) 18%, transparent);
1874
1894
  }
1875
- .${k}__item[data-icon-only='true']{ width:var(--lat-sd-item-h); padding:0; }
1876
- .${k}__item[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1877
- .${k}__item-icon{ display:inline-flex; align-items:center; justify-content:center; }
1878
- .${k}__item-icon svg,
1879
- .${k}__item-icon img{ width:var(--lattice-control-size); height:var(--lattice-control-size); display:block; }
1880
- .${k}__item-icon img{ object-fit:contain; }
1881
- .${k}__menu[data-mode='radial'] .${k}__item{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
1895
+ .${C}__item[data-icon-only='true']{ width:var(--lat-sd-item-h); padding:0; }
1896
+ .${C}__item[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1897
+ .${C}__item-icon{ display:inline-flex; align-items:center; justify-content:center; }
1898
+ .${C}__item-icon svg,
1899
+ .${C}__item-icon img{ width:var(--lattice-control-size); height:var(--lattice-control-size); display:block; }
1900
+ .${C}__item-icon img{ object-fit:contain; }
1901
+ .${C}__menu[data-mode='radial'] .${C}__item{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
1882
1902
 
1883
- .${k}__fab:focus-visible,
1884
- .${k}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1903
+ .${C}__fab:focus-visible,
1904
+ .${C}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1885
1905
 
1886
1906
  ${i}
1887
1907
  ${j}
1888
1908
  ${u}
1889
- `.trim()}function t(i){const u=i&&i.documentElement;if(!u||u.getAttribute(E))return;u.setAttribute(E,"1");const j=i.createElement("style");j.textContent=h(),(i.head||i.body||u).appendChild(j)}function r(i){return o.includes(i)?i:"bottom-right"}function n(i){return a.includes(i)?i:"primary"}function p(i,u){return d.includes(u)?u:i.startsWith("top-")?"down":i.startsWith("bottom-")?"up":i==="middle-left"?"right":"left"}function y(i){switch(i){case"top-left":return{startAngle:0,endAngle:-90};case"top-center":return{startAngle:225,endAngle:315};case"top-right":return{startAngle:180,endAngle:270};case"middle-left":return{startAngle:90,endAngle:-90};case"middle-right":return{startAngle:270,endAngle:90};case"bottom-left":return{startAngle:0,endAngle:90};case"bottom-center":return{startAngle:135,endAngle:45};case"bottom-right":return{startAngle:180,endAngle:90};default:return{startAngle:180,endAngle:90}}}function b(i,u){const j=u&&typeof u=="object"?u:{},H=y(i),M=typeof j.startAngle=="number"?j.startAngle:H.startAngle,D=typeof j.endAngle=="number"?j.endAngle:H.endAngle,Q=typeof j.offset=="number"&&j.offset>0?j.offset:0;return{startAngle:M,endAngle:D,offset:Q,defaulted:j.startAngle==null&&j.endAngle==null}}function m(i,u){const j=w[u];if(!j)return null;const H=i.createElementNS(g,"svg");H.setAttribute("viewBox",j.viewBox||"0 0 16 16"),H.setAttribute("aria-hidden","true"),H.setAttribute("focusable","false");const M=j.paint==="stroke";for(const D of j.paths||[]){const Q=i.createElementNS(g,"path");Q.setAttribute("d",D),M?(Q.setAttribute("fill","none"),Q.setAttribute("stroke","currentColor"),Q.setAttribute("stroke-width","1.5"),Q.setAttribute("stroke-linecap","round"),Q.setAttribute("stroke-linejoin","round")):Q.setAttribute("fill","currentColor"),H.appendChild(Q)}return H}function V(i,u){if(i==null)return null;if(typeof i=="object"&&i.nodeType)return i;if(typeof i!="string"||i==="")return null;const j=i;if(/^(https?:)?\/\//i.test(j)||/^data:/i.test(j)){const H=u.createElement("img");return H.src=j,H.alt="",H}return m(u,j)}function l(i,u,j){const H=i&&i.defaultView;return H&&H.CustomEvent?new H.CustomEvent(u,{bubbles:!0,detail:j}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:j,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function f(i){return Array.isArray(i)?i.map(u=>{const j=u&&typeof u=="object"?u:{};return{id:j.id,icon:j.icon,text:j.text,disabled:j.disabled===!0,render:typeof j.render=="function"?j.render:null}}):[]}function c(i,u){const j="var(--lat-sd-size)",H="var(--lat-sd-gap)",M="var(--lat-sd-pad)";if(u==="up"||u==="down"){const Z={flexDirection:"column"};return i.endsWith("-left")?(Z.insetInlineStart=M,Z.alignItems="flex-start"):i.endsWith("-right")?(Z.insetInlineEnd=M,Z.alignItems="flex-end"):(Z.left="50%",Z.transform="translateX(-50%)",Z.alignItems="center"),u==="down"?Z.top=`calc(${M} + ${j} + ${H})`:Z.bottom=`calc(${M} + ${j} + ${H})`,Z}const Q={flexDirection:"row"};return i.startsWith("top-")?(Q.top=M,Q.alignItems="flex-start"):i.startsWith("bottom-")?(Q.bottom=M,Q.alignItems="flex-end"):(Q.top="50%",Q.transform="translateY(-50%)",Q.alignItems="center"),u==="right"?Q.insetInlineStart=`calc(${M} + ${j} + ${H})`:Q.insetInlineEnd=`calc(${M} + ${j} + ${H})`,Q}function s(i,u={}){const j=u.doc||i&&i.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;j&&t(j);const H=typeof u.t=="function"?u.t:te,M=u.inForm===!0,D=u.emitter||null,Q=u.itemName!=null?String(u.itemName):"",Z=u.formItem||null,ae=r(u.position),Y=u.fixed===!0,q=u.openOnHover===!0,Re=u.mode==="radial"?"radial":"linear",ke=n(u.variant),me=p(ae,u.direction),S=u.modal===!0,z=u.text!=null?String(u.text):"",F=u.openIcon!=null?u.openIcon:"plus",v=u.closeIcon!=null?u.closeIcon:"close",B=Re==="radial"?b(ae,u.radial):null;let W=u.disabled===!0,ne=f(u.items);const re=j.createElement("div");re.className=k,re.setAttribute("data-variant",ke),re.setAttribute("data-fixed",Y?"true":"false"),M||re.setAttribute("data-lattice-standalone","true");const ce=T("lat-speeddial-menu"),N=j.createElement("button");N.type="button",N.className=`${k}__fab`,N.setAttribute("data-position",ae),N.setAttribute("aria-haspopup","menu"),N.setAttribute("aria-expanded","false"),N.setAttribute("aria-controls",ce),z&&N.setAttribute("data-text","true");const K=j.createElement("span");if(K.className=`${k}__fab-icon`,K.setAttribute("aria-hidden","true"),N.appendChild(K),z){const ge=j.createElement("span");ge.className=`${k}__fab-text`,ge.textContent=z,N.appendChild(ge)}const oe=j.createElement("div");oe.className=`${k}__backdrop`,oe.hidden=!0;const R=j.createElement("div");R.className=`${k}__menu`,R.setAttribute("role","menu"),R.setAttribute("aria-label",H("form.speeddial.menu")),R.id=ce,R.setAttribute("data-mode",Re),Re==="linear"&&R.setAttribute("data-direction",me),R.hidden=!0,re.appendChild(oe),re.appendChild(R),re.appendChild(N);let P=!1;const L=[];let C=!1;const U=(ge,De)=>{D?D.emit(ge,{name:Q,item:Z,...De}):i.dispatchEvent(l(j,ge,De))},J=()=>z||H(P?"form.speeddial.close":"form.speeddial.open"),ie=()=>{for(;K.firstChild;)K.removeChild(K.firstChild);const ge=V(P?v:F,j);ge&&K.appendChild(ge)},fe=(ge,De)=>{const le=j.createElement("button");le.type="button",le.className=`${k}__item`,le.setAttribute("role","menuitem"),le.setAttribute("tabindex","-1"),le.dataset.index=String(De);const Oe=ge.text!=null&&String(ge.text)!==""?String(ge.text):ge.id!=null?String(ge.id):"";Oe&&le.setAttribute("aria-label",Oe),ge.disabled&&le.setAttribute("aria-disabled","true");const je=V(ge.icon,j),Ae=ge.text!=null?String(ge.text):"";if(typeof ge.render=="function"){const He=ge.render(ge,De);He&&typeof He=="object"&&He.nodeType?le.appendChild(He):le.textContent=He!=null?String(He):""}else{if(je){const He=j.createElement("span");He.className=`${k}__item-icon`,He.setAttribute("aria-hidden","true"),He.appendChild(je),le.appendChild(He)}if(Ae!==""){const He=j.createElement("span");He.className=`${k}__item-text`,He.textContent=Ae,le.appendChild(He)}}le.setAttribute("data-icon-only",je!=null&&Ae===""?"true":"false"),le.setAttribute("data-text-only",je==null&&Ae!==""?"true":"false");const Ee=He=>{He.stopPropagation(),!(ge.disabled||W)&&(U("itemClick",{item:ge,index:De}),Se(!1),N.focus())};le.addEventListener("click",Ee),L.push(()=>le.removeEventListener("click",Ee));const Ge=He=>{He.key==="Escape"?(He.preventDefault(),He.stopPropagation(),Se(!1),N.focus()):He.key==="ArrowDown"||He.key==="ArrowRight"?(He.preventDefault(),Pe(De,1)):(He.key==="ArrowUp"||He.key==="ArrowLeft")&&(He.preventDefault(),Pe(De,-1))};return le.addEventListener("keydown",Ge),L.push(()=>le.removeEventListener("keydown",Ge)),le};let xe=[];const _e=()=>{for(;R.firstChild;)R.removeChild(R.firstChild);xe=ne.map((ge,De)=>fe(ge,De));for(const ge of xe)R.appendChild(ge);ie()},Le=()=>{if(Re!=="radial"||!B)return;const ge=N.getBoundingClientRect(),De=Y?0:re.getBoundingClientRect().left,le=Y?0:re.getBoundingClientRect().top,Oe=ge.left+ge.width/2-De,je=ge.top+ge.height/2-le,Ae=B.offset||Math.round(ge.width/2+28);let Ee=B.startAngle,Ge=B.endAngle;if(B.defaulted&&getComputedStyle(re).direction==="rtl"){const ot=180-Ge;Ge=180-Ee,Ee=ot}const He=xe.length;xe.forEach((ot,lt)=>{const Xe=(He<=1?(Ee+Ge)/2:Ee+(Ge-Ee)*(lt/(He-1)))*Math.PI/180;ot.style.left=`${Math.round(Oe+Ae*Math.cos(Xe))}px`,ot.style.top=`${Math.round(je-Ae*Math.sin(Xe))}px`})},Se=(ge,De={})=>{C||W||P===ge||(P=ge,N.setAttribute("aria-expanded",P?"true":"false"),N.setAttribute("aria-label",J()),R.hidden=!P,S&&(oe.hidden=!P),ie(),P?(U("open",{}),Le(),De.focusItems!==!1&&Pe(-1,1)):U("close",{}))},Pe=(ge,De)=>{const le=xe.length;if(le===0)return;let Oe=ge===-1?De>0?0:le-1:(ge+De+le)%le;for(let je=0;je<le;je+=1){if(!ne[Oe].disabled){xe[Oe].focus();return}Oe=(Oe+De+le)%le}},A=()=>{Se(!0,{focusItems:!1})},ee=()=>{P&&(Se(!1),N.focus())},pe=()=>{Se(!P,{focusItems:!1})};if(Re==="linear"){const ge=c(ae,me);for(const De of Object.keys(ge))R.style[De]=ge[De]}const G=()=>{W||pe()};N.addEventListener("click",G),L.push(()=>N.removeEventListener("click",G));const de=()=>{q&&!W&&Se(!0,{focusItems:!1})};N.addEventListener("pointerenter",de),L.push(()=>N.removeEventListener("pointerenter",de));const ye=()=>{q&&P&&Se(!1)};re.addEventListener("pointerleave",ye),L.push(()=>re.removeEventListener("pointerleave",ye));const be=ge=>{ge.stopPropagation(),ee()};oe.addEventListener("click",be),L.push(()=>oe.removeEventListener("click",be));const we=ge=>{if(!P)return;const De=ge.target;De&&re.contains(De)||ee()};j.addEventListener("pointerdown",we,!0),L.push(()=>j.removeEventListener("pointerdown",we,!0));const Be=ge=>{!P||ge.key!=="Escape"||(ge.preventDefault(),ee())};j.addEventListener("keydown",Be,!0),L.push(()=>j.removeEventListener("keydown",Be,!0));const ze=ge=>{ge.key==="Escape"?P&&(ge.preventDefault(),ge.stopPropagation(),ee()):ge.key==="ArrowDown"||ge.key==="ArrowRight"?(ge.preventDefault(),Se(!0),Pe(-1,1)):(ge.key==="ArrowUp"||ge.key==="ArrowLeft")&&(ge.preventDefault(),Se(!0),Pe(-1,-1))};N.addEventListener("keydown",ze),L.push(()=>N.removeEventListener("keydown",ze));const Ce=ge=>{W=ge===!0,N.disabled=W,N.setAttribute("aria-disabled",W?"true":"false"),W&&P&&Se(!1)},Me={el:re,fab:N,menu:R,open:A,close:ee,toggle:pe,setItems(ge){ne=f(ge),_e()},setDisabled:Ce,destroy(){C=!0;for(const ge of L.splice(0))ge();for(;re.firstChild;)re.removeChild(re.firstChild);re.parentNode&&re.parentNode.removeChild(re)}};return Ce(W),_e(),i.appendChild(re),i.__latSpeedDial=Me,Me}I("speeddial",{kind:"button",action:!0,build(i,u){const j=i.props||{},H=u.doc.createElement("div"),M=s(H,{items:j.speedDialItems||j.items,position:j.position,fixed:j.fixed,openOnHover:j.openOnHover,direction:j.direction,mode:i.mode,radial:j.radial,modal:j.modal,openIcon:j.openIcon,closeIcon:j.closeIcon,text:j.text!=null?j.text:i.label,variant:j.variant,disabled:i.disabled,t:u.t,doc:u.doc,inForm:!0,emitter:u.emitter,itemName:i.name,formItem:i});return u.disposers.push(()=>M.destroy()),H},read(){return null},write(){},state(i,u){const j=i&&i.__latSpeedDial;j&&j.setDisabled(u.disabled===!0)}})}),Te("packages/modules/form/controls/index.js",function($,X){"use strict";const e=X("packages/modules/form/controls/input.js"),I=X("packages/modules/form/controls/number.js"),x=X("packages/modules/form/controls/textarea.js"),te=X("packages/modules/form/controls/checkbox.js"),_=X("packages/modules/form/controls/button.js"),T=X("packages/modules/form/controls/buttons.js"),O=X("packages/modules/form/controls/text.js"),w=X("packages/modules/form/controls/combo.js"),k=X("packages/modules/form/controls/select.js"),E=X("packages/modules/form/controls/listbox.js"),g=X("packages/modules/form/controls/radiogroup.js"),o=X("packages/modules/form/controls/checkboxgroup.js"),a=X("packages/modules/form/controls/toggle.js"),d=X("packages/modules/form/controls/datepicker.js"),h=X("packages/modules/form/controls/daterange.js"),t=X("packages/modules/form/controls/file.js"),r=X("packages/modules/form/controls/richtext.js"),n=X("packages/modules/form/controls/rating.js"),p=X("packages/modules/form/controls/stage.js"),y=X("packages/modules/form/controls/chips.js"),b=X("packages/modules/form/controls/otp.js"),m=X("packages/modules/form/controls/color.js"),V=X("packages/modules/form/controls/barcode.js"),l=X("packages/modules/form/controls/speeddial.js")}),Te("packages/modules/form/create.js",function($,X){"use strict";Object.defineProperty($,"createForm",{enumerable:!0,get:function(){return j}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return H}});const e=X("packages/modules/form/styles.js"),I=e.NS,x=e.injectStyles,te=X("packages/modules/form/model.js"),_=te.resolveConfig,T=te.DENSITIES,O=te.cssSize,w=X("packages/modules/form/view.js"),k=w.markValidation,E=w.mount,g=w.runValidation,o=w.validateItem,a=w.wizardBack,d=w.wizardGoTo,h=w.wizardNext,t=X("packages/modules/form/emitter.js"),r=t.Emitter,n=t.FORM_EVENTS,y=X("packages/modules/form/messages.js").createTranslator,b=X("packages/modules/form/bind.js"),m=b.resolveBind,V=b.applyBinding,f=X("packages/modules/form/rules.js").applyRules,s=X("packages/modules/form/state.js").syncRecordState,i=X("packages/modules/form/controls/index.js");function u(M){if(Array.isArray(M))return M.map(u);if(M==null||typeof M!="object"||typeof M.nodeType=="number"||Object.getPrototypeOf(M)!==Object.prototype)return M;const D=M.type==="buttons"?"buttons":M.type==="speeddial"?"speedDialItems":null,Q=D!=null&&Array.isArray(M.items),Z={};for(const ae of Object.keys(M))Q&&ae==="items"||(Z[ae]=u(M[ae]));return Q&&(Z[D]=M.items.map(u)),Z}function j(M,D={}){const Q=M&&M.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,Z=m(D);let ae=D;if(Z){if(ae={...D},ae.density===void 0){const F=Z.density();F!=null&&(ae.density=F)}if(!(Array.isArray(ae.rows)&&ae.rows.length||Array.isArray(ae.cols)&&ae.cols.length)){const F=Z.items();F.length&&(ae.rows=[{items:F}])}}const Y=_(u(ae)),q={el:M||null,doc:Q,model:Y,config:Y,items:new Map,order:[],emitter:new r,t:y(Y.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},Re=z=>(z.facade||(z.facade={el:z.el,item:z.item,name:z.item.name,getValue(){return z.value},setValue(F){return z.def.write(z.control,F),z.value=z.def.read(z.control),z.item.value=z.value,f(q),z.facade},show(){return z.hidden=!1,z.el.hidden=!1,z.facade},hide(){return z.hidden=!0,z.el.hidden=!0,z.facade},isVisible(){return!(z.hidden||z.ruleHidden)},disable(){return z.item.disabled=!0,s(z),z.facade},enable(){return z.item.disabled=!1,s(z),z.facade},focus(){return typeof z.def.focus=="function"?z.def.focus(z.control):typeof z.control.focus=="function"&&z.control.focus(),z.facade},blur(){return typeof z.def.blur=="function"?z.def.blur(z.control):typeof z.control.blur=="function"&&z.control.blur(),z.facade},validate(){return o(q,z)},setLoading(F){return typeof z.def.setLoading=="function"&&z.def.setLoading(z.control,F===!0),z.facade},setOptions(F){const v=z.control&&(z.control.__combo||z.control.__select);return v&&typeof v.setOptions=="function"&&(v.setOptions(F),z.item.options=F),z.facade},reload(){const F=z.control&&(z.control.__combo||z.control.__select);return F&&typeof F.reload=="function"&&F.reload(),z.facade}}),z.facade);M&&Q&&x(Q);const ke=M&&typeof M.style.cssText=="string"?M.style.cssText:"",me=new Set(["field","toggle","display"]),S={el:M||null,config:Y,getItem(z){const F=q.items.get(String(z));return F?Re(F):void 0},getValue(){const z={};for(const F of q.order)F.item.name!=null&&me.has(F.def.kind)&&(z[F.item.name]=F.value);return z},setValue(z){if(z==null||typeof z!="object")return S;for(const F of Object.keys(z)){const v=q.items.get(F);v&&Re(v).setValue(z[F])}return S},clear(){for(const z of q.order)if(z.item.name!=null)if(z.def.kind==="field"){const F=z.item.props&&z.item.props.multiple===!0,v=z.item.type==="chips"?F?[]:null:z.item.type==="number"||z.item.type==="radiogroup"||z.item.type==="datepicker"||z.item.type==="stage"||z.item.type==="combo"&&!F?null:z.item.type==="rating"?0:z.item.type==="file"||z.item.type==="checkboxgroup"||(z.item.type==="select"||z.item.type==="combo")&&F?[]:"";z.value=v,z.item.value=v,z.def.write(z.control,v)}else z.def.kind==="toggle"&&(z.value=!1,z.item.value=!1,z.def.write(z.control,!1));return f(q),S},validate(){const z=[];let F=!0;for(const v of q.order){if(v.item.name==null||v.def.kind!=="field"&&v.def.kind!=="toggle"||v.item.disabled===!0||v.ruleHidden===!0||v.hidden===!0||(typeof v.def.reset=="function"&&v.def.reset(v.control,v.item),v.item.required!==!0&&v.item.validation==null&&typeof v.def.validate!="function"&&v.ruleRequired!==!0))continue;const B=g(q,v);k(q,v,B),B&&(F=!1,z.push({name:v.item.name,rule:B.code,message:B.message}))}return q.emitter.emit("validated",{name:null,item:null,value:void 0,valid:F,failures:z}),F},forEach(z){for(const F of q.order)z(Re(F))},on(z,F){return z!=="*"&&!n.includes(z)?(console.warn(`lattice-form: "${z}" is not a form event and will never fire.`),()=>{}):q.emitter.on(z,F)},off(z,F){q.emitter.off(z,F)},setDensity(z){return T.includes(z)&&(Y.density=z,M&&M.setAttribute("data-density",z)),S},setReadOnly(z){for(const F of q.order)F.item.readOnly=z===!0,s(F);return S},setDisabled(z){for(const F of q.order)F.item.disabled=z===!0,s(F);return S},setSpacing(z){const F=z==null?null:O(z);return Y.spacing=F,M&&(F==null?M.style.removeProperty("--lattice-form-item-gap"):M.style.setProperty("--lattice-form-item-gap",F)),S},isDirty(z){return z==null?q.dirty.size>0:q.dirty.has(String(z))},isConflicted(z){return z==null?q.conflicts.size>0:q.conflicts.has(String(z))},save(){const z=q.bound;if(!z)return!1;if(q.dirty.size===0)return!0;const F={};for(const W of q.dirty){const ne=S.getItem(W);ne&&(F[W]=ne.getValue())}const v=z.save(F),B=W=>{if(!W)return!1;for(const ne of Object.keys(F))q.baseline[ne]=F[ne],q.dirty.delete(ne),q.conflicts.delete(ne);return!0};return v&&typeof v.then=="function"?v.then(B):B(v)},revert(){for(const z of q.dirty){if(!Object.hasOwn(q.baseline,z))continue;const F=q.items.get(z);F&&Re(F).setValue(q.baseline[z])}return q.dirty.clear(),q.conflicts.clear(),S},_bind(z){return V(q,S,z),S},_commit(z){for(const F of Object.keys(z||{}))q.baseline[F]=z[F],q.dirty.delete(F),q.conflicts.delete(F)},get steps(){return q.model.steps||[]},get activeStep(){return q.wizard?q.wizard.active:0},next(){return h(q)},back(){return a(q)},goToStep(z){return d(q,z)},__reapplyRules(){return f(q),S},destroy(){for(const F of q.disposers.splice(0))F();q.emitter.clear();const z=q.el;if(z){for(;z.firstChild;)z.removeChild(z.firstChild);z.classList.remove(I),z.removeAttribute("data-density"),z.style.cssText=ke,z.__latticeForm===S&&(z.__latticeForm=null)}q.items.clear(),q.order.length=0,q.dirty.clear(),q.conflicts.clear(),q.baseline={},q.bound=null}};return M&&(M.__latticeForm=S),q.form=S,M&&Q&&E(q),Z&&V(q,S,Z),S}const H=j}),Te("packages/modules/form/group.js",function($,X){"use strict";Object.defineProperty($,"GROUP_EVENTS",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return r}});const I=X("packages/modules/form/emitter.js").Emitter,te=X("packages/modules/form/bind-router.js").routerBinding,_=X("packages/modules/form/group-rules.js"),T=_.attachRuleResolver,O=_.detachRuleResolver,w=_.makeRuleResolver,k=_.reapplyMembers,E=Object.freeze(["change","validated"]),g=new Set;function o(n){const p={},y=n.getValue();for(const b of Object.keys(y))n.isDirty(b)===!0&&(p[b]=y[b]);return p}function a(n,p){g.has(n)||(g.add(n),console.warn("[lattice]",p))}const d=new WeakMap;function h(n,p){let y=d.get(n);if(!y){const b=n.destroy;y={original:b,watchers:new Set},d.set(n,y),n.destroy=function(){const V=d.get(n)||y;for(const l of[...V.watchers])l.detach(n);return b.call(n)}}y.watchers.add(p)}function t(n,p={}){const y=[],b=new Map,m=new Map,V=new I,l=p&&typeof p.bind=="object"&&p.bind.router!=null?p.bind:null,f=l?te(l):null,c=()=>{b.clear(),m.clear();for(const H of y){const M=Object.keys(H.form.getValue());for(const D of M)b.has(D)?a(`form.group.duplicate-field:${D}`,`form group: the field "${D}" is owned by more than one form; the first one added wins.`):b.set(D,H);H.id!=null&&!m.has(H.id)&&m.set(H.id,H)}},s=w({owners:b,byId:m,warnOnce:a}),i=H=>{const M=y.findIndex(Z=>Z.form===H);if(M===-1)return!1;const[D]=y.splice(M,1);for(const Z of D.unsubs)Z();c();const Q=d.get(H);return Q&&(Q.watchers.delete(u),Q.watchers.size===0&&(d.delete(H),H.destroy=Q.original)),O(H),typeof H.__reapplyRules=="function"&&H.__reapplyRules(),k(y),!0},u={detach:i},j={get forms(){return y.map(H=>H.form)},add(H,M){if(!H||typeof H!="object"||typeof H.getValue!="function"||y.some(ae=>ae.form===H))return j;const D={form:H,id:M&&M.id,unsubs:[],lastFailures:[]};y.push(D),f&&typeof H._bind=="function"&&H._bind(f);const Q=ae=>{V.emit("change",{form:H,name:ae.name,value:ae.value}),k(y)},Z=ae=>{D.lastFailures=ae.failures||[],V.emit("validated",{form:H,valid:ae.valid})};return D.unsubs.push(H.on("change",Q)),D.unsubs.push(H.on("validated",Z)),h(H,u),c(),T(H,s),k(y),j},remove(H){return i(H),j},getValue(){const H={};for(const M of y)Object.assign(H,M.form.getValue());return p.transform&&typeof p.transform.get=="function"?p.transform.get(H):H},setValue(H){if(p.transform&&typeof p.transform.set=="function")p.transform.set(H);else if(H!=null&&typeof H=="object")for(const M of Object.keys(H)){const D=b.get(M);D&&D.form.setValue({[M]:H[M]})}return k(y),j},getItem(H){const M=b.get(String(H));return M?M.form.getItem(H):void 0},validate(){let H=!0;const M=[];for(const D of y){D.form.validate()===!1&&(H=!1);for(const Z of D.lastFailures||[])M.push({form:D.form,name:Z.name})}if(!H){const D=M.find(Q=>Q.name!=null);if(D){const Q=D.form.getItem(D.name);Q&&(Q.focus(),Q.el&&typeof Q.el.scrollIntoView=="function"&&Q.el.scrollIntoView({block:"nearest"}))}}return H},setReadOnly(H){for(const M of y)M.form.setReadOnly(H===!0);return j},setDisabled(H){for(const M of y)M.form.setDisabled(H===!0);return j},clear(){for(const H of y)H.form.clear();return j},reset(){for(const H of y)typeof H.form.revert=="function"&&H.form.revert();return j},save(){if(!f)return!1;const H=y.map(Z=>({member:Z,changes:o(Z.form)})),M={};for(const Z of H)Object.assign(M,Z.changes);if(!Object.keys(M).length)return!0;const D=f.save(M),Q=Z=>{if(!Z)return!1;for(const ae of H)ae.member.form&&typeof ae.member.form._commit=="function"&&ae.member.form._commit(ae.changes);return!0};return D&&typeof D.then=="function"?D.then(Q):Q(D)},isDirty(){return y.some(H=>H.form.isDirty()===!0)},on(H,M){return H!=="*"&&!E.includes(H)?(console.warn(`lattice-form: "${H}" is not a form group event and will never fire.`),()=>{}):V.on(H,M)},off(H,M){V.off(H,M)},destroy(){for(;y.length;){const H=y[y.length-1].form;i(H)}V.clear()}};if(Array.isArray(n))for(const H of n)j.add(H);else n&&typeof n=="object"&&typeof n.getValue=="function"&&j.add(n);return j}const r=t}),Te("packages/modules/form/enhance.js",function($,X){"use strict";Object.defineProperty($,"itemForField",{enumerable:!0,get:function(){return w}}),Object.defineProperty($,"configForForm",{enumerable:!0,get:function(){return k}}),Object.defineProperty($,"enhanceForm",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return g}});const I=X("packages/modules/form/create.js").createForm,x=Object.freeze(["text","email","password","url"]);function te(o){const a=o&&o.type?String(o.type).toLowerCase():"";return a==="submit"||a==="image"||o&&o.tagName==="BUTTON"&&a!=="button"}function _(o){if(!o||!o.name)return!1;const a=o&&o.type?String(o.type).toLowerCase():"";return!(a==="submit"||a==="button"||a==="reset"||a==="image"||a==="hidden"||a==="file"||o.tagName==="BUTTON")}function T(o,a){if(typeof o.getAttribute=="function"){const d=o.getAttribute("data-label");if(d!=null&&d!=="")return d;const h=o.getAttribute("aria-label");if(h!=null&&h!=="")return h}if(o.id&&typeof a.querySelector=="function"){const d=a.querySelector(`label[for="${o.id}"]`);if(d&&d.textContent!=null){const h=String(d.textContent).trim();if(h)return h}}return String(o.name||"")}function O(o){return o.type==="checkbox"?o.checked===!0:o.value==null?"":o.value}function w(o,a){if(te(o)||!_(o))return null;const d=o.type?String(o.type).toLowerCase():"text",h={type:"input",name:o.name,label:T(o,a),value:O(o)};if(d==="number")h.type="number",o.min!=null&&o.min!==""&&(h.min=Number(o.min)),o.max!=null&&o.max!==""&&(h.max=Number(o.max)),o.step!=null&&o.step!==""&&(h.step=Number(o.step));else if(d==="checkbox")h.type="checkbox";else if(o.tagName==="TEXTAREA")h.type="textarea";else if(x.includes(d))h.subtype=d,(d==="email"||d==="url")&&(h.validation=d);else return null;if(o.placeholder!=null&&o.placeholder!==""&&(h.placeholder=o.placeholder),o.required===!0&&(h.required=!0),o.disabled===!0&&(h.disabled=!0),o.readOnly===!0&&(h.readOnly=!0),typeof o.getAttribute=="function"){const t=o.getAttribute("data-validation")||o.getAttribute("data-rule");t&&(h.validation=t);const r=o.getAttribute("data-error-message");r&&(h.errorMessage=r);const n=o.getAttribute("data-help");n&&(h.helpMessage=n)}return h}function k(o,a){const d=o&&o.ownerDocument||(typeof document<"u"?document:null),h=[],t=o&&o.elements?o.elements:[];for(const r of t){const n=w(r,d);n&&h.push(n)}return{...a||{},rows:h}}function E(o,a){if(!o)return null;if(o.__latticeForm)return o.__latticeForm;const d=o.ownerDocument||(typeof document<"u"?document:null),h=[],t=o.elements?o.elements:[];for(const n of t)te(n)&&h.push(n);const r=I(o,k(o,a));o.__latticeForm=r;for(const n of h)n.parentNode!==o&&o.appendChild(n);return typeof o.addEventListener=="function"&&d&&o.addEventListener("submit",n=>{r.validate()||(n.preventDefault(),n.stopImmediatePropagation())},!0),r}const g=E}),Te("packages/modules/form/index.js",function($,X){"use strict";Object.defineProperty($,"registerControl",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"createForm",{enumerable:!0,get:function(){return T}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return o}});const I=X("packages/modules/form/styles.js").NS,te=X("packages/modules/form/controls/registry.js").registerControl,T=X("packages/modules/form/create.js").createForm,O=X("packages/modules/form/controls/combo.js");Object.defineProperty($,"createCombo",{enumerable:!0,get:function(){return O.createCombo}});const w=X("packages/modules/form/controls/speeddial.js");Object.defineProperty($,"createSpeedDial",{enumerable:!0,get:function(){return w.createSpeedDial}});const k=X("packages/modules/form/group.js");Object.defineProperty($,"createFormGroup",{enumerable:!0,get:function(){return k.createFormGroup}});const E=X("packages/modules/form/enhance.js");Object.defineProperty($,"enhanceForm",{enumerable:!0,get:function(){return E.enhanceForm}});function g(a,d){if(d===null||typeof d!="object"||typeof d.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const h=typeof d.getValue=="function"?d.getValue:()=>null,t=typeof d.setValue=="function"?d.setValue:()=>{};te(String(a),{kind:"field",custom:!0,validate:typeof d.validate=="function"?(r,n,p)=>d.validate(p,n,r):void 0,destroy:typeof d.destroy=="function"?r=>d.destroy(r):void 0,build(r,n){const p=n.doc.createElement("div");p.className=`${I}__custom`;const y={name:r.name,item:r,getValue(){return y._read?y._read():void 0},setValue(b){y._write&&y._write(b)},onChange(b){y._commit&&y._commit(b===void 0?h():b)},onInput(b){y._input&&y._input(b===void 0?h():b)}};return p.__latticeFormApi=y,d.create(p,r,y),t(p,r.value),p},read(r){return h(r)},write(r,n){t(r,n)},state(r,n){r.setAttribute("data-disabled",n.disabled===!0?"true":"false"),r.setAttribute("data-readonly",n.readOnly===!0?"true":"false")}})}const o=T});const Nt=Xt("packages/modules/form/index.js"),_r=Nt.createCombo,vr=Nt.createSpeedDial,yr=Nt.registerControl,wr=Nt.createForm,xr=Nt.createFormGroup,kr=Nt.enhanceForm;var Cr=Nt.default;export{_r as createCombo,wr as createForm,xr as createFormGroup,vr as createSpeedDial,Cr as default,kr as enhanceForm,yr as registerControl};
1909
+ `.trim()}function t(i){const u=i&&i.documentElement;if(!u||u.getAttribute(E))return;u.setAttribute(E,"1");const j=i.createElement("style");j.textContent=h(),(i.head||i.body||u).appendChild(j)}function r(i){return o.includes(i)?i:"bottom-right"}function n(i){return a.includes(i)?i:"primary"}function p(i,u){return d.includes(u)?u:i.startsWith("top-")?"down":i.startsWith("bottom-")?"up":i==="middle-left"?"right":"left"}function v(i){switch(i){case"top-left":return{startAngle:0,endAngle:-90};case"top-center":return{startAngle:225,endAngle:315};case"top-right":return{startAngle:180,endAngle:270};case"middle-left":return{startAngle:90,endAngle:-90};case"middle-right":return{startAngle:270,endAngle:90};case"bottom-left":return{startAngle:0,endAngle:90};case"bottom-center":return{startAngle:135,endAngle:45};case"bottom-right":return{startAngle:180,endAngle:90};default:return{startAngle:180,endAngle:90}}}function b(i,u){const j=u&&typeof u=="object"?u:{},F=v(i),M=typeof j.startAngle=="number"?j.startAngle:F.startAngle,D=typeof j.endAngle=="number"?j.endAngle:F.endAngle,Q=typeof j.offset=="number"&&j.offset>0?j.offset:0;return{startAngle:M,endAngle:D,offset:Q,defaulted:j.startAngle==null&&j.endAngle==null}}function m(i,u){const j=y[u];if(!j)return null;const F=i.createElementNS(g,"svg");F.setAttribute("viewBox",j.viewBox||"0 0 16 16"),F.setAttribute("aria-hidden","true"),F.setAttribute("focusable","false");const M=j.paint==="stroke";for(const D of j.paths||[]){const Q=i.createElementNS(g,"path");Q.setAttribute("d",D),M?(Q.setAttribute("fill","none"),Q.setAttribute("stroke","currentColor"),Q.setAttribute("stroke-width","1.5"),Q.setAttribute("stroke-linecap","round"),Q.setAttribute("stroke-linejoin","round")):Q.setAttribute("fill","currentColor"),F.appendChild(Q)}return F}function V(i,u){if(i==null)return null;if(typeof i=="object"&&i.nodeType)return i;if(typeof i!="string"||i==="")return null;const j=i;if(/^(https?:)?\/\//i.test(j)||/^data:/i.test(j)){const F=u.createElement("img");return F.src=j,F.alt="",F}return m(u,j)}function l(i,u,j){const F=i&&i.defaultView;return F&&F.CustomEvent?new F.CustomEvent(u,{bubbles:!0,detail:j}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:j,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function f(i){return Array.isArray(i)?i.map(u=>{const j=u&&typeof u=="object"?u:{};return{id:j.id,icon:j.icon,text:j.text,disabled:j.disabled===!0,render:typeof j.render=="function"?j.render:null}}):[]}function c(i,u){const j="var(--lat-sd-size)",F="var(--lat-sd-gap)",M="var(--lat-sd-pad)";if(u==="up"||u==="down"){const Z={flexDirection:"column"};return i.endsWith("-left")?(Z.insetInlineStart=M,Z.alignItems="flex-start"):i.endsWith("-right")?(Z.insetInlineEnd=M,Z.alignItems="flex-end"):(Z.left="50%",Z.transform="translateX(-50%)",Z.alignItems="center"),u==="down"?Z.top=`calc(${M} + ${j} + ${F})`:Z.bottom=`calc(${M} + ${j} + ${F})`,Z}const Q={flexDirection:"row"};return i.startsWith("top-")?(Q.top=M,Q.alignItems="flex-start"):i.startsWith("bottom-")?(Q.bottom=M,Q.alignItems="flex-end"):(Q.top="50%",Q.transform="translateY(-50%)",Q.alignItems="center"),u==="right"?Q.insetInlineStart=`calc(${M} + ${j} + ${F})`:Q.insetInlineEnd=`calc(${M} + ${j} + ${F})`,Q}function s(i,u={}){const j=u.doc||i&&i.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;j&&t(j);const F=typeof u.t=="function"?u.t:re,M=u.inForm===!0,D=u.emitter||null,Q=u.itemName!=null?String(u.itemName):"",Z=u.formItem||null,ae=r(u.position),Y=u.fixed===!0,ee=u.openOnHover===!0,ze=u.mode==="radial"?"radial":"linear",Ce=n(u.variant),me=p(ae,u.direction),S=u.modal===!0,I=u.text!=null?String(u.text):"",U=u.openIcon!=null?u.openIcon:"plus",w=u.closeIcon!=null?u.closeIcon:"close",B=ze==="radial"?b(ae,u.radial):null;let W=u.disabled===!0,q=f(u.items);const ne=j.createElement("div");ne.className=C,ne.setAttribute("data-variant",Ce),ne.setAttribute("data-fixed",Y?"true":"false"),M||ne.setAttribute("data-lattice-standalone","true");const se=P("lat-speeddial-menu"),N=j.createElement("button");N.type="button",N.className=`${C}__fab`,N.setAttribute("data-position",ae),N.setAttribute("aria-haspopup","menu"),N.setAttribute("aria-expanded","false"),N.setAttribute("aria-controls",se),I&&N.setAttribute("data-text","true");const K=j.createElement("span");if(K.className=`${C}__fab-icon`,K.setAttribute("aria-hidden","true"),N.appendChild(K),I){const ye=j.createElement("span");ye.className=`${C}__fab-text`,ye.textContent=I,N.appendChild(ye)}const oe=j.createElement("div");oe.className=`${C}__backdrop`,oe.hidden=!0;const z=j.createElement("div");z.className=`${C}__menu`,z.setAttribute("role","menu"),z.setAttribute("aria-label",F("form.speeddial.menu")),z.id=se,z.setAttribute("data-mode",ze),ze==="linear"&&z.setAttribute("data-direction",me),z.hidden=!0,ne.appendChild(oe),ne.appendChild(z),ne.appendChild(N);let T=!1;const L=[];let A=!1;const H=(ye,Re)=>{D?D.emit(ye,{name:Q,item:Z,...Re}):i.dispatchEvent(l(j,ye,Re))},X=()=>I||F(T?"form.speeddial.close":"form.speeddial.open"),ie=()=>{for(;K.firstChild;)K.removeChild(K.firstChild);const ye=V(T?w:U,j);ye&&K.appendChild(ye)},de=(ye,Re)=>{const je=j.createElement("button");je.type="button",je.className=`${C}__item`,je.setAttribute("role","menuitem"),je.setAttribute("tabindex","-1"),je.dataset.index=String(Re);const We=ye.text!=null&&String(ye.text)!==""?String(ye.text):ye.id!=null?String(ye.id):"";We&&je.setAttribute("aria-label",We),ye.disabled&&je.setAttribute("aria-disabled","true");const Ke=V(ye.icon,j),Ge=ye.text!=null?String(ye.text):"";if(typeof ye.render=="function"){const be=ye.render(ye,Re);be&&typeof be=="object"&&be.nodeType?je.appendChild(be):je.textContent=be!=null?String(be):""}else{if(Ke){const be=j.createElement("span");be.className=`${C}__item-icon`,be.setAttribute("aria-hidden","true"),be.appendChild(Ke),je.appendChild(be)}if(Ge!==""){const be=j.createElement("span");be.className=`${C}__item-text`,be.textContent=Ge,je.appendChild(be)}}je.setAttribute("data-icon-only",Ke!=null&&Ge===""?"true":"false"),je.setAttribute("data-text-only",Ke==null&&Ge!==""?"true":"false");const pe=be=>{be.stopPropagation(),!(ye.disabled||W)&&(H("itemClick",{item:ye,index:Re}),Se(!1),N.focus())};je.addEventListener("click",pe),L.push(()=>je.removeEventListener("click",pe));const Pe=be=>{be.key==="Escape"?(be.preventDefault(),be.stopPropagation(),Se(!1),N.focus()):be.key==="ArrowDown"||be.key==="ArrowRight"?(be.preventDefault(),Oe(Re,1)):(be.key==="ArrowUp"||be.key==="ArrowLeft")&&(be.preventDefault(),Oe(Re,-1))};return je.addEventListener("keydown",Pe),L.push(()=>je.removeEventListener("keydown",Pe)),je};let ke=[];const _e=()=>{for(;z.firstChild;)z.removeChild(z.firstChild);ke=q.map((ye,Re)=>de(ye,Re));for(const ye of ke)z.appendChild(ye);ie()},Me=()=>{if(ze!=="radial"||!B)return;const ye=N.getBoundingClientRect(),Re=Y?0:ne.getBoundingClientRect().left,je=Y?0:ne.getBoundingClientRect().top,We=ye.left+ye.width/2-Re,Ke=ye.top+ye.height/2-je,Ge=B.offset||Math.round(ye.width/2+28);let pe=B.startAngle,Pe=B.endAngle;if(B.defaulted&&getComputedStyle(ne).direction==="rtl"){const Ae=180-Pe;Pe=180-pe,pe=Ae}const be=ke.length;ke.forEach((Ae,at)=>{const qe=(be<=1?(pe+Pe)/2:pe+(Pe-pe)*(at/(be-1)))*Math.PI/180;Ae.style.left=`${Math.round(We+Ge*Math.cos(qe))}px`,Ae.style.top=`${Math.round(Ke-Ge*Math.sin(qe))}px`})},Se=(ye,Re={})=>{A||W||T===ye||(T=ye,N.setAttribute("aria-expanded",T?"true":"false"),N.setAttribute("aria-label",X()),z.hidden=!T,S&&(oe.hidden=!T),ie(),T?(H("open",{}),Me(),Re.focusItems!==!1&&Oe(-1,1)):H("close",{}))},Oe=(ye,Re)=>{const je=ke.length;if(je===0)return;let We=ye===-1?Re>0?0:je-1:(ye+Re+je)%je;for(let Ke=0;Ke<je;Ke+=1){if(!q[We].disabled){ke[We].focus();return}We=(We+Re+je)%je}},x=()=>{Se(!0,{focusItems:!1})},te=()=>{T&&(Se(!1),N.focus())},fe=()=>{Se(!T,{focusItems:!1})};if(ze==="linear"){const ye=c(ae,me);for(const Re of Object.keys(ye))z.style[Re]=ye[Re]}const G=()=>{W||fe()};N.addEventListener("click",G),L.push(()=>N.removeEventListener("click",G));const ue=()=>{ee&&!W&&Se(!0,{focusItems:!1})};N.addEventListener("pointerenter",ue),L.push(()=>N.removeEventListener("pointerenter",ue));const we=()=>{ee&&T&&Se(!1)};ne.addEventListener("pointerleave",we),L.push(()=>ne.removeEventListener("pointerleave",we));const ge=ye=>{ye.stopPropagation(),te()};oe.addEventListener("click",ge),L.push(()=>oe.removeEventListener("click",ge));const xe=ye=>{if(!T)return;const Re=ye.target;Re&&ne.contains(Re)||te()};j.addEventListener("pointerdown",xe,!0),L.push(()=>j.removeEventListener("pointerdown",xe,!0));const Ie=ye=>{!T||ye.key!=="Escape"||(ye.preventDefault(),te())};j.addEventListener("keydown",Ie,!0),L.push(()=>j.removeEventListener("keydown",Ie,!0));const Le=ye=>{ye.key==="Escape"?T&&(ye.preventDefault(),ye.stopPropagation(),te()):ye.key==="ArrowDown"||ye.key==="ArrowRight"?(ye.preventDefault(),Se(!0),Oe(-1,1)):(ye.key==="ArrowUp"||ye.key==="ArrowLeft")&&(ye.preventDefault(),Se(!0),Oe(-1,-1))};N.addEventListener("keydown",Le),L.push(()=>N.removeEventListener("keydown",Le));const $e=ye=>{W=ye===!0,N.disabled=W,N.setAttribute("aria-disabled",W?"true":"false"),W&&T&&Se(!1)},Be={el:ne,fab:N,menu:z,open:x,close:te,toggle:fe,setItems(ye){q=f(ye),_e()},setDisabled:$e,destroy(){A=!0;for(const ye of L.splice(0))ye();for(;ne.firstChild;)ne.removeChild(ne.firstChild);ne.parentNode&&ne.parentNode.removeChild(ne)}};return $e(W),_e(),i.appendChild(ne),i.__latSpeedDial=Be,Be}R("speeddial",{kind:"button",action:!0,build(i,u){const j=i.props||{},F=u.doc.createElement("div"),M=s(F,{items:j.speedDialItems||j.items,position:j.position,fixed:j.fixed,openOnHover:j.openOnHover,direction:j.direction,mode:i.mode,radial:j.radial,modal:j.modal,openIcon:j.openIcon,closeIcon:j.closeIcon,text:j.text!=null?j.text:i.label,variant:j.variant,disabled:i.disabled,t:u.t,doc:u.doc,inForm:!0,emitter:u.emitter,itemName:i.name,formItem:i});return u.disposers.push(()=>M.destroy()),F},read(){return null},write(){},state(i,u){const j=i&&i.__latSpeedDial;j&&j.setDisabled(u.disabled===!0)}})}),Te("packages/modules/form/controls/index.js",function($,J){"use strict";const e=J("packages/modules/form/controls/input.js"),R=J("packages/modules/form/controls/number.js"),k=J("packages/modules/form/controls/textarea.js"),re=J("packages/modules/form/controls/checkbox.js"),_=J("packages/modules/form/controls/button.js"),P=J("packages/modules/form/controls/buttons.js"),O=J("packages/modules/form/controls/text.js"),y=J("packages/modules/form/controls/combo.js"),C=J("packages/modules/form/controls/select.js"),E=J("packages/modules/form/controls/listbox.js"),g=J("packages/modules/form/controls/radiogroup.js"),o=J("packages/modules/form/controls/checkboxgroup.js"),a=J("packages/modules/form/controls/toggle.js"),d=J("packages/modules/form/controls/datepicker.js"),h=J("packages/modules/form/controls/daterange.js"),t=J("packages/modules/form/controls/file.js"),r=J("packages/modules/form/controls/richtext.js"),n=J("packages/modules/form/controls/rating.js"),p=J("packages/modules/form/controls/stage.js"),v=J("packages/modules/form/controls/chips.js"),b=J("packages/modules/form/controls/otp.js"),m=J("packages/modules/form/controls/color.js"),V=J("packages/modules/form/controls/barcode.js"),l=J("packages/modules/form/controls/speeddial.js")}),Te("packages/modules/form/create.js",function($,J){"use strict";Object.defineProperty($,"createForm",{enumerable:!0,get:function(){return j}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return F}});const e=J("packages/modules/form/styles.js"),R=e.NS,k=e.injectStyles,re=J("packages/modules/form/model.js"),_=re.resolveConfig,P=re.DENSITIES,O=re.cssSize,y=J("packages/modules/form/view.js"),C=y.markValidation,E=y.mount,g=y.runValidation,o=y.validateItem,a=y.wizardBack,d=y.wizardGoTo,h=y.wizardNext,t=J("packages/modules/form/emitter.js"),r=t.Emitter,n=t.FORM_EVENTS,v=J("packages/modules/form/messages.js").createTranslator,b=J("packages/modules/form/bind.js"),m=b.resolveBind,V=b.applyBinding,f=J("packages/modules/form/rules.js").applyRules,s=J("packages/modules/form/state.js").syncRecordState,i=J("packages/modules/form/controls/index.js");function u(M){if(Array.isArray(M))return M.map(u);if(M==null||typeof M!="object"||typeof M.nodeType=="number"||Object.getPrototypeOf(M)!==Object.prototype)return M;const D=M.type==="buttons"?"buttons":M.type==="speeddial"?"speedDialItems":null,Q=D!=null&&Array.isArray(M.items),Z={};for(const ae of Object.keys(M))Q&&ae==="items"||(Z[ae]=u(M[ae]));return Q&&(Z[D]=M.items.map(u)),Z}function j(M,D={}){const Q=M&&M.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,Z=m(D);let ae=D;if(Z){if(ae={...D},ae.density===void 0){const U=Z.density();U!=null&&(ae.density=U)}if(!(Array.isArray(ae.rows)&&ae.rows.length||Array.isArray(ae.cols)&&ae.cols.length)){const U=Z.items();U.length&&(ae.rows=[{items:U}])}}const Y=_(u(ae)),ee={el:M||null,doc:Q,model:Y,config:Y,items:new Map,order:[],emitter:new r,t:v(Y.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ze=I=>(I.facade||(I.facade={el:I.el,item:I.item,name:I.item.name,getValue(){return I.value},setValue(U){return I.def.write(I.control,U),I.value=I.def.read(I.control),I.item.value=I.value,f(ee),I.facade},show(){return I.hidden=!1,I.el.hidden=!1,I.facade},hide(){return I.hidden=!0,I.el.hidden=!0,I.facade},isVisible(){return!(I.hidden||I.ruleHidden)},disable(){return I.item.disabled=!0,s(I),I.facade},enable(){return I.item.disabled=!1,s(I),I.facade},focus(){return typeof I.def.focus=="function"?I.def.focus(I.control):typeof I.control.focus=="function"&&I.control.focus(),I.facade},blur(){return typeof I.def.blur=="function"?I.def.blur(I.control):typeof I.control.blur=="function"&&I.control.blur(),I.facade},validate(){return o(ee,I)},setLoading(U){return typeof I.def.setLoading=="function"&&I.def.setLoading(I.control,U===!0),I.facade},setOptions(U){const w=I.control&&(I.control.__combo||I.control.__select);return w&&typeof w.setOptions=="function"&&(w.setOptions(U),I.item.options=U),I.facade},reload(){const U=I.control&&(I.control.__combo||I.control.__select);return U&&typeof U.reload=="function"&&U.reload(),I.facade}}),I.facade);M&&Q&&k(Q);const Ce=M&&typeof M.style.cssText=="string"?M.style.cssText:"",me=new Set(["field","toggle","display"]),S={el:M||null,config:Y,getItem(I){const U=ee.items.get(String(I));return U?ze(U):void 0},getValue(){const I={};for(const U of ee.order)U.item.name!=null&&me.has(U.def.kind)&&(I[U.item.name]=U.value);return I},setValue(I){if(I==null||typeof I!="object")return S;for(const U of Object.keys(I)){const w=ee.items.get(U);w&&ze(w).setValue(I[U])}return S},clear(){for(const I of ee.order)if(I.item.name!=null)if(I.def.kind==="field"){const U=I.item.props&&I.item.props.multiple===!0,w=I.item.type==="chips"?U?[]:null:I.item.type==="number"||I.item.type==="radiogroup"||I.item.type==="datepicker"||I.item.type==="stage"||I.item.type==="combo"&&!U?null:I.item.type==="rating"?0:I.item.type==="file"||I.item.type==="checkboxgroup"||(I.item.type==="select"||I.item.type==="combo")&&U?[]:"";I.value=w,I.item.value=w,I.def.write(I.control,w)}else I.def.kind==="toggle"&&(I.value=!1,I.item.value=!1,I.def.write(I.control,!1));return f(ee),S},validate(){const I=[];let U=!0;for(const w of ee.order){if(w.item.name==null||w.def.kind!=="field"&&w.def.kind!=="toggle"||w.item.disabled===!0||w.ruleHidden===!0||w.hidden===!0||(typeof w.def.reset=="function"&&w.def.reset(w.control,w.item),w.item.required!==!0&&w.item.validation==null&&typeof w.def.validate!="function"&&w.ruleRequired!==!0))continue;const B=g(ee,w);C(ee,w,B),B&&(U=!1,I.push({name:w.item.name,rule:B.code,message:B.message}))}return ee.emitter.emit("validated",{name:null,item:null,value:void 0,valid:U,failures:I}),U},forEach(I){for(const U of ee.order)I(ze(U))},on(I,U){return I!=="*"&&!n.includes(I)?(console.warn(`lattice-form: "${I}" is not a form event and will never fire.`),()=>{}):ee.emitter.on(I,U)},off(I,U){ee.emitter.off(I,U)},setDensity(I){return P.includes(I)&&(Y.density=I,M&&M.setAttribute("data-density",I)),S},setReadOnly(I){for(const U of ee.order)U.item.readOnly=I===!0,s(U);return S},setDisabled(I){for(const U of ee.order)U.item.disabled=I===!0,s(U);return S},setSpacing(I){const U=I==null?null:O(I);return Y.spacing=U,M&&(U==null?M.style.removeProperty("--lattice-form-item-gap"):M.style.setProperty("--lattice-form-item-gap",U)),S},isDirty(I){return I==null?ee.dirty.size>0:ee.dirty.has(String(I))},isConflicted(I){return I==null?ee.conflicts.size>0:ee.conflicts.has(String(I))},save(){const I=ee.bound;if(!I)return!1;if(ee.dirty.size===0)return!0;const U={};for(const W of ee.dirty){const q=S.getItem(W);q&&(U[W]=q.getValue())}const w=I.save(U),B=W=>{if(!W)return!1;for(const q of Object.keys(U))ee.baseline[q]=U[q],ee.dirty.delete(q),ee.conflicts.delete(q);return!0};return w&&typeof w.then=="function"?w.then(B):B(w)},revert(){for(const I of ee.dirty){if(!Object.hasOwn(ee.baseline,I))continue;const U=ee.items.get(I);U&&ze(U).setValue(ee.baseline[I])}return ee.dirty.clear(),ee.conflicts.clear(),S},_bind(I){return V(ee,S,I),S},_commit(I){for(const U of Object.keys(I||{}))ee.baseline[U]=I[U],ee.dirty.delete(U),ee.conflicts.delete(U)},get steps(){return ee.model.steps||[]},get activeStep(){return ee.wizard?ee.wizard.active:0},next(){return h(ee)},back(){return a(ee)},goToStep(I){return d(ee,I)},__reapplyRules(){return f(ee),S},destroy(){for(const U of ee.disposers.splice(0))U();ee.emitter.clear();const I=ee.el;if(I){for(;I.firstChild;)I.removeChild(I.firstChild);I.classList.remove(R),I.removeAttribute("data-density"),I.style.cssText=Ce,I.__latticeForm===S&&(I.__latticeForm=null)}ee.items.clear(),ee.order.length=0,ee.dirty.clear(),ee.conflicts.clear(),ee.baseline={},ee.bound=null}};return M&&(M.__latticeForm=S),ee.form=S,M&&Q&&E(ee),Z&&V(ee,S,Z),S}const F=j}),Te("packages/modules/form/group.js",function($,J){"use strict";Object.defineProperty($,"GROUP_EVENTS",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return r}});const R=J("packages/modules/form/emitter.js").Emitter,re=J("packages/modules/form/bind-router.js").routerBinding,_=J("packages/modules/form/group-rules.js"),P=_.attachRuleResolver,O=_.detachRuleResolver,y=_.makeRuleResolver,C=_.reapplyMembers,E=Object.freeze(["change","validated"]),g=new Set;function o(n){const p={},v=n.getValue();for(const b of Object.keys(v))n.isDirty(b)===!0&&(p[b]=v[b]);return p}function a(n,p){g.has(n)||(g.add(n),console.warn("[lattice]",p))}const d=new WeakMap;function h(n,p){let v=d.get(n);if(!v){const b=n.destroy;v={original:b,watchers:new Set},d.set(n,v),n.destroy=function(){const V=d.get(n)||v;for(const l of[...V.watchers])l.detach(n);return b.call(n)}}v.watchers.add(p)}function t(n,p={}){const v=[],b=new Map,m=new Map,V=new R,l=p&&typeof p.bind=="object"&&p.bind.router!=null?p.bind:null,f=l?re(l):null,c=()=>{b.clear(),m.clear();for(const F of v){const M=Object.keys(F.form.getValue());for(const D of M)b.has(D)?a(`form.group.duplicate-field:${D}`,`form group: the field "${D}" is owned by more than one form; the first one added wins.`):b.set(D,F);F.id!=null&&!m.has(F.id)&&m.set(F.id,F)}},s=y({owners:b,byId:m,warnOnce:a}),i=F=>{const M=v.findIndex(Z=>Z.form===F);if(M===-1)return!1;const[D]=v.splice(M,1);for(const Z of D.unsubs)Z();c();const Q=d.get(F);return Q&&(Q.watchers.delete(u),Q.watchers.size===0&&(d.delete(F),F.destroy=Q.original)),O(F),typeof F.__reapplyRules=="function"&&F.__reapplyRules(),C(v),!0},u={detach:i},j={get forms(){return v.map(F=>F.form)},add(F,M){if(!F||typeof F!="object"||typeof F.getValue!="function"||v.some(ae=>ae.form===F))return j;const D={form:F,id:M&&M.id,unsubs:[],lastFailures:[]};v.push(D),f&&typeof F._bind=="function"&&F._bind(f);const Q=ae=>{V.emit("change",{form:F,name:ae.name,value:ae.value}),C(v)},Z=ae=>{D.lastFailures=ae.failures||[],V.emit("validated",{form:F,valid:ae.valid})};return D.unsubs.push(F.on("change",Q)),D.unsubs.push(F.on("validated",Z)),h(F,u),c(),P(F,s),C(v),j},remove(F){return i(F),j},getValue(){const F={};for(const M of v)Object.assign(F,M.form.getValue());return p.transform&&typeof p.transform.get=="function"?p.transform.get(F):F},setValue(F){if(p.transform&&typeof p.transform.set=="function")p.transform.set(F);else if(F!=null&&typeof F=="object")for(const M of Object.keys(F)){const D=b.get(M);D&&D.form.setValue({[M]:F[M]})}return C(v),j},getItem(F){const M=b.get(String(F));return M?M.form.getItem(F):void 0},validate(){let F=!0;const M=[];for(const D of v){D.form.validate()===!1&&(F=!1);for(const Z of D.lastFailures||[])M.push({form:D.form,name:Z.name})}if(!F){const D=M.find(Q=>Q.name!=null);if(D){const Q=D.form.getItem(D.name);Q&&(Q.focus(),Q.el&&typeof Q.el.scrollIntoView=="function"&&Q.el.scrollIntoView({block:"nearest"}))}}return F},setReadOnly(F){for(const M of v)M.form.setReadOnly(F===!0);return j},setDisabled(F){for(const M of v)M.form.setDisabled(F===!0);return j},clear(){for(const F of v)F.form.clear();return j},reset(){for(const F of v)typeof F.form.revert=="function"&&F.form.revert();return j},save(){if(!f)return!1;const F=v.map(Z=>({member:Z,changes:o(Z.form)})),M={};for(const Z of F)Object.assign(M,Z.changes);if(!Object.keys(M).length)return!0;const D=f.save(M),Q=Z=>{if(!Z)return!1;for(const ae of F)ae.member.form&&typeof ae.member.form._commit=="function"&&ae.member.form._commit(ae.changes);return!0};return D&&typeof D.then=="function"?D.then(Q):Q(D)},isDirty(){return v.some(F=>F.form.isDirty()===!0)},on(F,M){return F!=="*"&&!E.includes(F)?(console.warn(`lattice-form: "${F}" is not a form group event and will never fire.`),()=>{}):V.on(F,M)},off(F,M){V.off(F,M)},destroy(){for(;v.length;){const F=v[v.length-1].form;i(F)}V.clear()}};if(Array.isArray(n))for(const F of n)j.add(F);else n&&typeof n=="object"&&typeof n.getValue=="function"&&j.add(n);return j}const r=t}),Te("packages/modules/form/enhance.js",function($,J){"use strict";Object.defineProperty($,"itemForField",{enumerable:!0,get:function(){return y}}),Object.defineProperty($,"configForForm",{enumerable:!0,get:function(){return C}}),Object.defineProperty($,"enhanceForm",{enumerable:!0,get:function(){return E}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return g}});const R=J("packages/modules/form/create.js").createForm,k=Object.freeze(["text","email","password","url"]);function re(o){const a=o&&o.type?String(o.type).toLowerCase():"";return a==="submit"||a==="image"||o&&o.tagName==="BUTTON"&&a!=="button"}function _(o){if(!o||!o.name)return!1;const a=o&&o.type?String(o.type).toLowerCase():"";return!(a==="submit"||a==="button"||a==="reset"||a==="image"||a==="hidden"||a==="file"||o.tagName==="BUTTON")}function P(o,a){if(typeof o.getAttribute=="function"){const d=o.getAttribute("data-label");if(d!=null&&d!=="")return d;const h=o.getAttribute("aria-label");if(h!=null&&h!=="")return h}if(o.id&&typeof a.querySelector=="function"){const d=a.querySelector(`label[for="${o.id}"]`);if(d&&d.textContent!=null){const h=String(d.textContent).trim();if(h)return h}}return String(o.name||"")}function O(o){return o.type==="checkbox"?o.checked===!0:o.value==null?"":o.value}function y(o,a){if(re(o)||!_(o))return null;const d=o.type?String(o.type).toLowerCase():"text",h={type:"input",name:o.name,label:P(o,a),value:O(o)};if(d==="number")h.type="number",o.min!=null&&o.min!==""&&(h.min=Number(o.min)),o.max!=null&&o.max!==""&&(h.max=Number(o.max)),o.step!=null&&o.step!==""&&(h.step=Number(o.step));else if(d==="checkbox")h.type="checkbox";else if(o.tagName==="TEXTAREA")h.type="textarea";else if(k.includes(d))h.subtype=d,(d==="email"||d==="url")&&(h.validation=d);else return null;if(o.placeholder!=null&&o.placeholder!==""&&(h.placeholder=o.placeholder),o.required===!0&&(h.required=!0),o.disabled===!0&&(h.disabled=!0),o.readOnly===!0&&(h.readOnly=!0),typeof o.getAttribute=="function"){const t=o.getAttribute("data-validation")||o.getAttribute("data-rule");t&&(h.validation=t);const r=o.getAttribute("data-error-message");r&&(h.errorMessage=r);const n=o.getAttribute("data-help");n&&(h.helpMessage=n)}return h}function C(o,a){const d=o&&o.ownerDocument||(typeof document<"u"?document:null),h=[],t=o&&o.elements?o.elements:[];for(const r of t){const n=y(r,d);n&&h.push(n)}return{...a||{},rows:h}}function E(o,a){if(!o)return null;if(o.__latticeForm)return o.__latticeForm;const d=o.ownerDocument||(typeof document<"u"?document:null),h=[],t=o.elements?o.elements:[];for(const n of t)re(n)&&h.push(n);const r=R(o,C(o,a));o.__latticeForm=r;for(const n of h)n.parentNode!==o&&o.appendChild(n);return typeof o.addEventListener=="function"&&d&&o.addEventListener("submit",n=>{r.validate()||(n.preventDefault(),n.stopImmediatePropagation())},!0),r}const g=E}),Te("packages/modules/form/index.js",function($,J){"use strict";Object.defineProperty($,"registerControl",{enumerable:!0,get:function(){return g}}),Object.defineProperty($,"createForm",{enumerable:!0,get:function(){return P}}),Object.defineProperty($,"default",{enumerable:!0,get:function(){return o}});const R=J("packages/modules/form/styles.js").NS,re=J("packages/modules/form/controls/registry.js").registerControl,P=J("packages/modules/form/create.js").createForm,O=J("packages/modules/form/controls/combo.js");Object.defineProperty($,"createCombo",{enumerable:!0,get:function(){return O.createCombo}});const y=J("packages/modules/form/controls/speeddial.js");Object.defineProperty($,"createSpeedDial",{enumerable:!0,get:function(){return y.createSpeedDial}});const C=J("packages/modules/form/group.js");Object.defineProperty($,"createFormGroup",{enumerable:!0,get:function(){return C.createFormGroup}});const E=J("packages/modules/form/enhance.js");Object.defineProperty($,"enhanceForm",{enumerable:!0,get:function(){return E.enhanceForm}});function g(a,d){if(d===null||typeof d!="object"||typeof d.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const h=typeof d.getValue=="function"?d.getValue:()=>null,t=typeof d.setValue=="function"?d.setValue:()=>{};re(String(a),{kind:"field",custom:!0,validate:typeof d.validate=="function"?(r,n,p)=>d.validate(p,n,r):void 0,destroy:typeof d.destroy=="function"?r=>d.destroy(r):void 0,build(r,n){const p=n.doc.createElement("div");p.className=`${R}__custom`;const v={name:r.name,item:r,getValue(){return v._read?v._read():void 0},setValue(b){v._write&&v._write(b)},onChange(b){v._commit&&v._commit(b===void 0?h():b)},onInput(b){v._input&&v._input(b===void 0?h():b)}};return p.__latticeFormApi=v,d.create(p,r,v),t(p,r.value),p},read(r){return h(r)},write(r,n){t(r,n)},state(r,n){r.setAttribute("data-disabled",n.disabled===!0?"true":"false"),r.setAttribute("data-readonly",n.readOnly===!0?"true":"false")}})}const o=P});const jt=qt("packages/modules/form/index.js"),kr=jt.createCombo,Cr=jt.createSpeedDial,Ar=jt.registerControl,$r=jt.createForm,Er=jt.createFormGroup,Sr=jt.enhanceForm;var Or=jt.default;export{kr as createCombo,$r as createForm,Er as createFormGroup,Cr as createSpeedDial,Or as default,Sr as enhanceForm,Ar as registerControl};
1890
1910
 
1891
1911
  //# sourceMappingURL=form.esm.min.js.map