@toclocoinc/lattice-grid 1.103.0 → 1.103.2

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 (408) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +12 -8
  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 +9 -5
  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 +1 -1
  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.css +1 -1
  37. package/lattice-grid.min.js +2 -2
  38. package/locales/all.d.ts +1 -1
  39. package/locales/all.esm.min.js +1 -1
  40. package/locales/all.min.cjs +1 -1
  41. package/locales/all.min.js +1 -1
  42. package/locales/ar.d.ts +1 -1
  43. package/locales/ar.esm.min.js +1 -1
  44. package/locales/ar.min.cjs +1 -1
  45. package/locales/ar.min.js +1 -1
  46. package/locales/cs-CZ.d.ts +1 -1
  47. package/locales/cs-CZ.esm.min.js +1 -1
  48. package/locales/cs-CZ.min.cjs +1 -1
  49. package/locales/cs-CZ.min.js +1 -1
  50. package/locales/da-DK.d.ts +1 -1
  51. package/locales/da-DK.esm.min.js +1 -1
  52. package/locales/da-DK.min.cjs +1 -1
  53. package/locales/da-DK.min.js +1 -1
  54. package/locales/de-DE.d.ts +1 -1
  55. package/locales/de-DE.esm.min.js +1 -1
  56. package/locales/de-DE.min.cjs +1 -1
  57. package/locales/de-DE.min.js +1 -1
  58. package/locales/el-GR.d.ts +1 -1
  59. package/locales/el-GR.esm.min.js +1 -1
  60. package/locales/el-GR.min.cjs +1 -1
  61. package/locales/el-GR.min.js +1 -1
  62. package/locales/en-US.d.ts +1 -1
  63. package/locales/en-US.esm.min.js +1 -1
  64. package/locales/en-US.min.cjs +1 -1
  65. package/locales/en-US.min.js +1 -1
  66. package/locales/es-ES.d.ts +1 -1
  67. package/locales/es-ES.esm.min.js +1 -1
  68. package/locales/es-ES.min.cjs +1 -1
  69. package/locales/es-ES.min.js +1 -1
  70. package/locales/fi-FI.d.ts +1 -1
  71. package/locales/fi-FI.esm.min.js +1 -1
  72. package/locales/fi-FI.min.cjs +1 -1
  73. package/locales/fi-FI.min.js +1 -1
  74. package/locales/fr-CA.d.ts +1 -1
  75. package/locales/fr-CA.esm.min.js +1 -1
  76. package/locales/fr-CA.min.cjs +1 -1
  77. package/locales/fr-CA.min.js +1 -1
  78. package/locales/fr-FR.d.ts +1 -1
  79. package/locales/fr-FR.esm.min.js +1 -1
  80. package/locales/fr-FR.min.cjs +1 -1
  81. package/locales/fr-FR.min.js +1 -1
  82. package/locales/hu-HU.d.ts +1 -1
  83. package/locales/hu-HU.esm.min.js +1 -1
  84. package/locales/hu-HU.min.cjs +1 -1
  85. package/locales/hu-HU.min.js +1 -1
  86. package/locales/it-IT.d.ts +1 -1
  87. package/locales/it-IT.esm.min.js +1 -1
  88. package/locales/it-IT.min.cjs +1 -1
  89. package/locales/it-IT.min.js +1 -1
  90. package/locales/ja-JP.d.ts +1 -1
  91. package/locales/ja-JP.esm.min.js +1 -1
  92. package/locales/ja-JP.min.cjs +1 -1
  93. package/locales/ja-JP.min.js +1 -1
  94. package/locales/nb-NO.d.ts +1 -1
  95. package/locales/nb-NO.esm.min.js +1 -1
  96. package/locales/nb-NO.min.cjs +1 -1
  97. package/locales/nb-NO.min.js +1 -1
  98. package/locales/nl-NL.d.ts +1 -1
  99. package/locales/nl-NL.esm.min.js +1 -1
  100. package/locales/nl-NL.min.cjs +1 -1
  101. package/locales/nl-NL.min.js +1 -1
  102. package/locales/pl-PL.d.ts +1 -1
  103. package/locales/pl-PL.esm.min.js +1 -1
  104. package/locales/pl-PL.min.cjs +1 -1
  105. package/locales/pl-PL.min.js +1 -1
  106. package/locales/pt-BR.d.ts +1 -1
  107. package/locales/pt-BR.esm.min.js +1 -1
  108. package/locales/pt-BR.min.cjs +1 -1
  109. package/locales/pt-BR.min.js +1 -1
  110. package/locales/ro-RO.d.ts +1 -1
  111. package/locales/ro-RO.esm.min.js +1 -1
  112. package/locales/ro-RO.min.cjs +1 -1
  113. package/locales/ro-RO.min.js +1 -1
  114. package/locales/sv-SE.d.ts +1 -1
  115. package/locales/sv-SE.esm.min.js +1 -1
  116. package/locales/sv-SE.min.cjs +1 -1
  117. package/locales/sv-SE.min.js +1 -1
  118. package/locales/uk-UA.d.ts +1 -1
  119. package/locales/uk-UA.esm.min.js +1 -1
  120. package/locales/uk-UA.min.cjs +1 -1
  121. package/locales/uk-UA.min.js +1 -1
  122. package/modules/ai.d.ts +1 -1
  123. package/modules/ai.esm.min.js +1 -1
  124. package/modules/ai.min.cjs +1 -1
  125. package/modules/ai.min.js +1 -1
  126. package/modules/alarms.d.ts +1 -1
  127. package/modules/alarms.esm.min.js +1 -1
  128. package/modules/alarms.min.cjs +1 -1
  129. package/modules/alarms.min.js +1 -1
  130. package/modules/angular.d.ts +1 -1
  131. package/modules/angular.esm.min.js +1 -1
  132. package/modules/angular.min.cjs +1 -1
  133. package/modules/angular.min.js +1 -1
  134. package/modules/calendar.d.ts +1 -1
  135. package/modules/calendar.esm.min.js +1 -1
  136. package/modules/calendar.min.cjs +1 -1
  137. package/modules/calendar.min.js +1 -1
  138. package/modules/chart-alluvial.d.ts +1 -1
  139. package/modules/chart-alluvial.esm.min.js +1 -1
  140. package/modules/chart-alluvial.min.cjs +1 -1
  141. package/modules/chart-alluvial.min.js +1 -1
  142. package/modules/chart-arc.d.ts +1 -1
  143. package/modules/chart-arc.esm.min.js +1 -1
  144. package/modules/chart-arc.min.cjs +1 -1
  145. package/modules/chart-arc.min.js +1 -1
  146. package/modules/chart-barrace.d.ts +1 -1
  147. package/modules/chart-barrace.esm.min.js +1 -1
  148. package/modules/chart-barrace.min.cjs +1 -1
  149. package/modules/chart-barrace.min.js +1 -1
  150. package/modules/chart-bubblemap.d.ts +1 -1
  151. package/modules/chart-bubblemap.esm.min.js +1 -1
  152. package/modules/chart-bubblemap.min.cjs +1 -1
  153. package/modules/chart-bubblemap.min.js +1 -1
  154. package/modules/chart-bump.d.ts +1 -1
  155. package/modules/chart-bump.esm.min.js +1 -1
  156. package/modules/chart-bump.min.cjs +1 -1
  157. package/modules/chart-bump.min.js +1 -1
  158. package/modules/chart-calendar.d.ts +1 -1
  159. package/modules/chart-calendar.esm.min.js +1 -1
  160. package/modules/chart-calendar.min.cjs +1 -1
  161. package/modules/chart-calendar.min.js +1 -1
  162. package/modules/chart-choropleth.d.ts +1 -1
  163. package/modules/chart-choropleth.esm.min.js +1 -1
  164. package/modules/chart-choropleth.min.cjs +1 -1
  165. package/modules/chart-choropleth.min.js +1 -1
  166. package/modules/chart-decomposition.d.ts +1 -1
  167. package/modules/chart-decomposition.esm.min.js +1 -1
  168. package/modules/chart-decomposition.min.cjs +1 -1
  169. package/modules/chart-decomposition.min.js +1 -1
  170. package/modules/chart-diverging.d.ts +1 -1
  171. package/modules/chart-diverging.esm.min.js +1 -1
  172. package/modules/chart-diverging.min.cjs +1 -1
  173. package/modules/chart-diverging.min.js +1 -1
  174. package/modules/chart-dumbbell.d.ts +1 -1
  175. package/modules/chart-dumbbell.esm.min.js +1 -1
  176. package/modules/chart-dumbbell.min.cjs +1 -1
  177. package/modules/chart-dumbbell.min.js +1 -1
  178. package/modules/chart-fan.d.ts +1 -1
  179. package/modules/chart-fan.esm.min.js +1 -1
  180. package/modules/chart-fan.min.cjs +1 -1
  181. package/modules/chart-fan.min.js +1 -1
  182. package/modules/chart-forcetree.d.ts +1 -1
  183. package/modules/chart-forcetree.esm.min.js +1 -1
  184. package/modules/chart-forcetree.min.cjs +1 -1
  185. package/modules/chart-forcetree.min.js +1 -1
  186. package/modules/chart-hexbin.d.ts +1 -1
  187. package/modules/chart-hexbin.esm.min.js +1 -1
  188. package/modules/chart-hexbin.min.cjs +1 -1
  189. package/modules/chart-hexbin.min.js +1 -1
  190. package/modules/chart-hexmap.d.ts +1 -1
  191. package/modules/chart-hexmap.esm.min.js +1 -1
  192. package/modules/chart-hexmap.min.cjs +1 -1
  193. package/modules/chart-hexmap.min.js +1 -1
  194. package/modules/chart-icicle.d.ts +1 -1
  195. package/modules/chart-icicle.esm.min.js +1 -1
  196. package/modules/chart-icicle.min.cjs +1 -1
  197. package/modules/chart-icicle.min.js +1 -1
  198. package/modules/chart-markermap.d.ts +1 -1
  199. package/modules/chart-markermap.esm.min.js +1 -1
  200. package/modules/chart-markermap.min.cjs +1 -1
  201. package/modules/chart-markermap.min.js +1 -1
  202. package/modules/chart-motion.d.ts +1 -1
  203. package/modules/chart-motion.esm.min.js +1 -1
  204. package/modules/chart-motion.min.cjs +1 -1
  205. package/modules/chart-motion.min.js +1 -1
  206. package/modules/chart-pack.d.ts +1 -1
  207. package/modules/chart-pack.esm.min.js +1 -1
  208. package/modules/chart-pack.min.cjs +1 -1
  209. package/modules/chart-pack.min.js +1 -1
  210. package/modules/chart-parallel.d.ts +1 -1
  211. package/modules/chart-parallel.esm.min.js +1 -1
  212. package/modules/chart-parallel.min.cjs +1 -1
  213. package/modules/chart-parallel.min.js +1 -1
  214. package/modules/chart-pictorial.d.ts +1 -1
  215. package/modules/chart-pictorial.esm.min.js +1 -1
  216. package/modules/chart-pictorial.min.cjs +1 -1
  217. package/modules/chart-pictorial.min.js +1 -1
  218. package/modules/chart-polararea.d.ts +1 -1
  219. package/modules/chart-polararea.esm.min.js +1 -1
  220. package/modules/chart-polararea.min.cjs +1 -1
  221. package/modules/chart-polararea.min.js +1 -1
  222. package/modules/chart-polarscatter.d.ts +1 -1
  223. package/modules/chart-polarscatter.esm.min.js +1 -1
  224. package/modules/chart-polarscatter.min.cjs +1 -1
  225. package/modules/chart-polarscatter.min.js +1 -1
  226. package/modules/chart-pyramid.d.ts +1 -1
  227. package/modules/chart-pyramid.esm.min.js +1 -1
  228. package/modules/chart-pyramid.min.cjs +1 -1
  229. package/modules/chart-pyramid.min.js +1 -1
  230. package/modules/chart-radialbar.d.ts +1 -1
  231. package/modules/chart-radialbar.esm.min.js +1 -1
  232. package/modules/chart-radialbar.min.cjs +1 -1
  233. package/modules/chart-radialbar.min.js +1 -1
  234. package/modules/chart-ridgeline.d.ts +1 -1
  235. package/modules/chart-ridgeline.esm.min.js +1 -1
  236. package/modules/chart-ridgeline.min.cjs +1 -1
  237. package/modules/chart-ridgeline.min.js +1 -1
  238. package/modules/chart-roc.d.ts +1 -1
  239. package/modules/chart-roc.esm.min.js +1 -1
  240. package/modules/chart-roc.min.cjs +1 -1
  241. package/modules/chart-roc.min.js +1 -1
  242. package/modules/chart-scatter3d.d.ts +1 -1
  243. package/modules/chart-scatter3d.esm.min.js +1 -1
  244. package/modules/chart-scatter3d.min.cjs +1 -1
  245. package/modules/chart-scatter3d.min.js +1 -1
  246. package/modules/chart-serpentine.d.ts +1 -1
  247. package/modules/chart-serpentine.esm.min.js +1 -1
  248. package/modules/chart-serpentine.min.cjs +1 -1
  249. package/modules/chart-serpentine.min.js +1 -1
  250. package/modules/chart-slope.d.ts +1 -1
  251. package/modules/chart-slope.esm.min.js +1 -1
  252. package/modules/chart-slope.min.cjs +1 -1
  253. package/modules/chart-slope.min.js +1 -1
  254. package/modules/chart-spiral.d.ts +1 -1
  255. package/modules/chart-spiral.esm.min.js +1 -1
  256. package/modules/chart-spiral.min.cjs +1 -1
  257. package/modules/chart-spiral.min.js +1 -1
  258. package/modules/chart-splom.d.ts +1 -1
  259. package/modules/chart-splom.esm.min.js +1 -1
  260. package/modules/chart-splom.min.cjs +1 -1
  261. package/modules/chart-splom.min.js +1 -1
  262. package/modules/chart-tree.d.ts +1 -1
  263. package/modules/chart-tree.esm.min.js +1 -1
  264. package/modules/chart-tree.min.cjs +1 -1
  265. package/modules/chart-tree.min.js +1 -1
  266. package/modules/chart-venn.d.ts +1 -1
  267. package/modules/chart-venn.esm.min.js +1 -1
  268. package/modules/chart-venn.min.cjs +1 -1
  269. package/modules/chart-venn.min.js +1 -1
  270. package/modules/chart-voronoi.d.ts +1 -1
  271. package/modules/chart-voronoi.esm.min.js +1 -1
  272. package/modules/chart-voronoi.min.cjs +1 -1
  273. package/modules/chart-voronoi.min.js +1 -1
  274. package/modules/chart-waffle.d.ts +1 -1
  275. package/modules/chart-waffle.esm.min.js +1 -1
  276. package/modules/chart-waffle.min.cjs +1 -1
  277. package/modules/chart-waffle.min.js +1 -1
  278. package/modules/chart-wordcloud.d.ts +1 -1
  279. package/modules/chart-wordcloud.esm.min.js +1 -1
  280. package/modules/chart-wordcloud.min.cjs +1 -1
  281. package/modules/chart-wordcloud.min.js +1 -1
  282. package/modules/charts.d.ts +1 -1
  283. package/modules/charts.esm.min.js +1 -1
  284. package/modules/charts.min.cjs +1 -1
  285. package/modules/charts.min.js +1 -1
  286. package/modules/dashboard.d.ts +1 -1
  287. package/modules/dashboard.esm.min.js +1 -1
  288. package/modules/dashboard.min.cjs +1 -1
  289. package/modules/dashboard.min.js +1 -1
  290. package/modules/data-router.d.ts +1 -1
  291. package/modules/data-router.esm.min.js +1 -1
  292. package/modules/data-router.min.cjs +1 -1
  293. package/modules/data-router.min.js +1 -1
  294. package/modules/deckgl.d.ts +1 -1
  295. package/modules/deckgl.esm.min.js +1 -1
  296. package/modules/deckgl.min.cjs +1 -1
  297. package/modules/deckgl.min.js +1 -1
  298. package/modules/designer.d.ts +1 -1
  299. package/modules/designer.esm.min.js +1 -1
  300. package/modules/designer.min.cjs +1 -1
  301. package/modules/designer.min.js +1 -1
  302. package/modules/devtools.d.ts +1 -1
  303. package/modules/devtools.esm.min.js +1 -1
  304. package/modules/devtools.min.cjs +1 -1
  305. package/modules/devtools.min.js +1 -1
  306. package/modules/dhtmlx-compat.d.ts +1 -1
  307. package/modules/dhtmlx-compat.esm.min.js +1 -1
  308. package/modules/dhtmlx-compat.min.cjs +1 -1
  309. package/modules/dhtmlx-compat.min.js +1 -1
  310. package/modules/form.d.ts +2 -2
  311. package/modules/form.esm.min.js +252 -222
  312. package/modules/form.esm.min.js.map +2 -2
  313. package/modules/form.min.cjs +252 -222
  314. package/modules/form.min.js +252 -222
  315. package/modules/form.min.js.map +2 -2
  316. package/modules/gantt.d.ts +1 -1
  317. package/modules/gantt.esm.min.js +1 -1
  318. package/modules/gantt.min.cjs +1 -1
  319. package/modules/gantt.min.js +1 -1
  320. package/modules/geo-europe-nuts.d.ts +1 -1
  321. package/modules/geo-europe-nuts.esm.min.js +1 -1
  322. package/modules/geo-europe-nuts.min.cjs +1 -1
  323. package/modules/geo-europe-nuts.min.js +1 -1
  324. package/modules/geo-uk.d.ts +1 -1
  325. package/modules/geo-uk.esm.min.js +1 -1
  326. package/modules/geo-uk.min.cjs +1 -1
  327. package/modules/geo-uk.min.js +1 -1
  328. package/modules/geo-us-states.d.ts +1 -1
  329. package/modules/geo-us-states.esm.min.js +1 -1
  330. package/modules/geo-us-states.min.cjs +1 -1
  331. package/modules/geo-us-states.min.js +1 -1
  332. package/modules/geo-world-110m.d.ts +1 -1
  333. package/modules/geo-world-110m.esm.min.js +1 -1
  334. package/modules/geo-world-110m.min.cjs +1 -1
  335. package/modules/geo-world-110m.min.js +1 -1
  336. package/modules/geo-world-50m.d.ts +1 -1
  337. package/modules/geo-world-50m.esm.min.js +1 -1
  338. package/modules/geo-world-50m.min.cjs +1 -1
  339. package/modules/geo-world-50m.min.js +1 -1
  340. package/modules/geometry.d.ts +1 -1
  341. package/modules/geometry.esm.min.js +1 -1
  342. package/modules/geometry.min.cjs +1 -1
  343. package/modules/geometry.min.js +1 -1
  344. package/modules/htmx.d.ts +1 -1
  345. package/modules/htmx.esm.min.js +2 -2
  346. package/modules/htmx.min.cjs +2 -2
  347. package/modules/htmx.min.js +2 -2
  348. package/modules/kanban.d.ts +1 -1
  349. package/modules/kanban.esm.min.js +1 -1
  350. package/modules/kanban.min.cjs +1 -1
  351. package/modules/kanban.min.js +1 -1
  352. package/modules/kpi.d.ts +1 -1
  353. package/modules/kpi.esm.min.js +1 -1
  354. package/modules/kpi.min.cjs +1 -1
  355. package/modules/kpi.min.js +1 -1
  356. package/modules/layout.d.ts +1 -1
  357. package/modules/layout.esm.min.js +1 -1
  358. package/modules/layout.min.cjs +1 -1
  359. package/modules/layout.min.js +1 -1
  360. package/modules/leaflet.d.ts +1 -1
  361. package/modules/leaflet.esm.min.js +1 -1
  362. package/modules/leaflet.min.cjs +1 -1
  363. package/modules/leaflet.min.js +1 -1
  364. package/modules/list.d.ts +1 -1
  365. package/modules/list.esm.min.js +1 -1
  366. package/modules/list.min.cjs +1 -1
  367. package/modules/list.min.js +1 -1
  368. package/modules/mapview.d.ts +1 -1
  369. package/modules/mapview.esm.min.js +1 -1
  370. package/modules/mapview.min.cjs +1 -1
  371. package/modules/mapview.min.js +1 -1
  372. package/modules/mock-socket.d.ts +1 -1
  373. package/modules/mock-socket.esm.min.js +1 -1
  374. package/modules/mock-socket.min.cjs +1 -1
  375. package/modules/mock-socket.min.js +1 -1
  376. package/modules/presets.d.ts +1 -1
  377. package/modules/presets.esm.min.js +1 -1
  378. package/modules/presets.min.cjs +1 -1
  379. package/modules/presets.min.js +1 -1
  380. package/modules/react.d.ts +1 -1
  381. package/modules/react.esm.min.js +1 -1
  382. package/modules/react.min.cjs +1 -1
  383. package/modules/react.min.js +1 -1
  384. package/modules/scheduler.d.ts +1 -1
  385. package/modules/scheduler.esm.min.js +1 -1
  386. package/modules/scheduler.min.cjs +1 -1
  387. package/modules/scheduler.min.js +1 -1
  388. package/modules/shell.d.ts +1 -1
  389. package/modules/shell.esm.min.js +1 -1
  390. package/modules/shell.min.cjs +1 -1
  391. package/modules/shell.min.js +1 -1
  392. package/modules/svelte.d.ts +1 -1
  393. package/modules/svelte.esm.min.js +1 -1
  394. package/modules/svelte.min.cjs +1 -1
  395. package/modules/svelte.min.js +1 -1
  396. package/modules/tabs.d.ts +1 -1
  397. package/modules/tabs.esm.min.js +1 -1
  398. package/modules/tabs.min.cjs +1 -1
  399. package/modules/tabs.min.js +1 -1
  400. package/modules/vue.d.ts +1 -1
  401. package/modules/vue.esm.min.js +1 -1
  402. package/modules/vue.min.cjs +1 -1
  403. package/modules/vue.min.js +1 -1
  404. package/modules/webcomponent.d.ts +1 -1
  405. package/modules/webcomponent.esm.min.js +2 -2
  406. package/modules/webcomponent.min.cjs +2 -2
  407. package/modules/webcomponent.min.js +2 -2
  408. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Lattice Grid 1.103.0, form module
2
+ * Lattice Grid 1.103.2, form module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- (function(qt){"use strict";var Cr=!0,Vt=Object.create(null),Ut=Object.create(null);function Ne(N,Z){Vt[N]=Z}function Gt(N){var Z=Ut[N];if(Z)return Z;var e=Object.create(null);Ut[N]=e;var R=Vt[N];if(!R)throw new Error("[lattice] missing module: "+N);return R(e,Gt),e}Ne("packages/modules/form/styles.js",function(N,Z){"use strict";Object.defineProperty(N,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"css",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"injectStyles",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"injectColsBreakpoint",{enumerable:!0,get:function(){return P}});const e="lat-form",R="lat-cols-never",$="data-lattice-form-styles";function q(){return`
6
+ (function(er){"use strict";var Cr=!0,Vt=Object.create(null),Ut=Object.create(null);function Ne(N,Z){Vt[N]=Z}function Gt(N){var Z=Ut[N];if(Z)return Z;var e=Object.create(null);Ut[N]=e;var B=Vt[N];if(!B)throw new Error("[lattice] missing module: "+N);return B(e,Gt),e}Ne("packages/modules/form/styles.js",function(N,Z){"use strict";Object.defineProperty(N,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"css",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"injectStyles",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"injectColsBreakpoint",{enumerable:!0,get:function(){return k}});const e="lat-form",B="lat-cols-never",S="data-lattice-form-styles",X=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__control > select`,`.${e}__control > button`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`,`.${e}__layer-host input`,`.${e}__layer-host textarea`,`.${e}__layer-host select`,`.${e}__layer-host button`].join(", ")})`,C=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__control > select`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`,`.${e}__choice input`,`.${e}__layer-host input`,`.${e}__layer-host textarea`,`.${e}__layer-host select`].join(", ")})`,z=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__control > select`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`].join(", ")})`,P=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`].join(", ")})`;function A(){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
@@ -211,9 +211,7 @@
211
211
  .${e}__validation[hidden]{ display:none; }
212
212
  .${e}__validation--error{ color:var(--lattice-danger); }
213
213
  .${e}__validation--success{ color:var(--lattice-success); }
214
- .${e}__control input[aria-invalid='true'],
215
- .${e}__control textarea[aria-invalid='true'],
216
- .${e}__control select[aria-invalid='true'],
214
+ ${z}[aria-invalid='true'],
217
215
  /* The rendered controls' own field boxes take the same invalid border when their item fails validation
218
216
  (BACKLOG-0002373); the wrapper carries aria-invalid, these are its visible fields. */
219
217
  .${e}__control [aria-invalid='true'] :is(.lat-select__trigger, .lat-combo__control, .${e}__datepicker-input, .${e}__daterange-input, .${e}__chips, .${e}__file-zone, .${e}__richtext, .${e}__toggle-field, .${e}__rating, .${e}__stage, .${e}__color-field, .${e}__otp-input, .${e}__listbox),
@@ -221,15 +219,16 @@
221
219
  border-color:var(--lattice-form-invalid);
222
220
  }
223
221
  .${e}__control{ display:flex; flex-direction:column; min-width:0; flex:1 1 auto; }
224
- :is(.${e}__control, .${e}__layer-host) input,
225
- :is(.${e}__control, .${e}__layer-host) textarea,
226
- :is(.${e}__control, .${e}__layer-host) select,
227
- :is(.${e}__control, .${e}__layer-host) button{
228
- /* The whole-control rule: a button that IS the control (a button item), and a picker's own
229
- part buttons (a date picker's Previous/Next/Done, the clock fields) once its popup moves
230
- into the layer host (BACKLOG-0002291). A control's own two-class part buttons (a colour
231
- swatch, a picker toggle) are styled by their own two-class rules, which must outrank this
232
- 0,1,1 selector (BACKLOG-0002338). */
222
+ ${X}{
223
+ /* The whole-control rule: only the form's own native controls take the field
224
+ box — a bare input/textarea/select/button that IS the control, the nested
225
+ password/number/datepicker/time/daterange inputs, and a picker's own part
226
+ buttons (a date picker's Previous/Next/Done, the clock fields) once its
227
+ popup moves into the layer host (BACKLOG-0002291). A control's own
228
+ two-class part buttons (a colour swatch, a picker toggle) are styled by
229
+ their own two-class rules, which must outrank this 0,1,1 selector
230
+ (BACKLOG-0002338), and a host's markup inside a container or html item is
231
+ not among these selectors at all (BACKLOG-0002426). */
233
232
  box-sizing:border-box; width:100%; height:var(--lattice-row-height); min-height:0;
234
233
  padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.5);
235
234
  border:var(--lattice-border-width) solid var(--lattice-form-field-border);
@@ -237,34 +236,32 @@
237
236
  background:var(--lattice-form-field-bg); color:var(--lattice-form-field-fg);
238
237
  font:inherit; line-height:inherit;
239
238
  }
240
- .${e}__control textarea{ height:auto; min-height:var(--lattice-row-height); resize:vertical; }
241
- :is(.${e}__control, .${e}__layer-host) input:focus-visible,
242
- :is(.${e}__control, .${e}__layer-host) textarea:focus-visible,
243
- :is(.${e}__control, .${e}__layer-host) select:focus-visible,
244
- :is(.${e}__control, .${e}__layer-host) button:focus-visible{
239
+ .${e}__control > textarea{ height:auto; min-height:var(--lattice-row-height); resize:vertical; }
240
+ ${X}:focus-visible,
241
+ .${e}__choice input:focus-visible{
245
242
  outline:2px solid var(--lattice-form-focus-ring); outline-offset:-1px;
246
243
  }
247
- :is(.${e}__control, .${e}__layer-host) input:disabled,
248
- :is(.${e}__control, .${e}__layer-host) textarea:disabled,
249
- :is(.${e}__control, .${e}__layer-host) select:disabled{
244
+ ${C}:disabled{
250
245
  color:var(--lattice-disabled-foreground);
251
246
  background:var(--lattice-disabled-background);
252
247
  border-color:var(--lattice-disabled-border);
253
248
  cursor:not-allowed;
254
249
  }
255
- :is(.${e}__control, .${e}__layer-host) button:disabled{
250
+ :is(.${e}__control > button, .${e}__layer-host button):disabled{
256
251
  color:var(--lattice-disabled-foreground); cursor:not-allowed;
257
252
  }
258
- .${e}__control input[readonly],
259
- .${e}__control textarea[readonly]{
253
+ ${P}[readonly]{
260
254
  color:var(--lattice-readonly-foreground);
261
255
  background:var(--lattice-readonly-background);
262
256
  border-color:var(--lattice-readonly-border);
263
257
  cursor:default;
264
258
  }
265
- .${e}__control input[aria-readonly='true']{ cursor:default; }
266
- .${e}__control input[type='checkbox'],
267
- .${e}__control input[type='radio']{
259
+ .${e}__control > input[aria-readonly='true'],
260
+ .${e}__choice input[aria-readonly='true']{ cursor:default; }
261
+ .${e}__control > input[type='checkbox'],
262
+ .${e}__control > input[type='radio'],
263
+ .${e}__choice input[type='checkbox'],
264
+ .${e}__choice input[type='radio']{
268
265
  width:var(--lattice-control-size); height:var(--lattice-control-size);
269
266
  padding:0; border:0; accent-color:var(--lattice-accent); background:transparent;
270
267
  }
@@ -278,9 +275,13 @@
278
275
  }
279
276
  /* The content container (BACKLOG-0002339): box-sizing:border-box so an
280
277
  explicit width/height is the region's real outer box, padding included,
281
- rather than growing past it. */
278
+ rather than growing past it. The form root's typography and foreground are
279
+ reset here, so a host's own markup inside an html item or a content
280
+ container keeps the page's font and colours instead of the form's
281
+ (BACKLOG-0002426). */
282
282
  .${e}__container{
283
283
  box-sizing:border-box; min-width:0; min-height:0;
284
+ font:initial; color:initial;
284
285
  }
285
286
  /* The combo control (BACKLOG-0002147). Inside a form it inherits the form's
286
287
  --lattice-* tokens; standalone (data-lattice-standalone) it carries its own
@@ -377,7 +378,7 @@
377
378
  }
378
379
  .lat-combo__summary[hidden]{ display:none; }
379
380
  .lat-combo input.lat-combo__input{
380
- flex:1 1 auto; min-width:80px; width:auto; height:auto;
381
+ flex:1 1 0; min-width:0; width:auto; height:auto;
381
382
  min-height:calc(var(--lattice-row-height) - var(--lattice-space) - (var(--lattice-border-width) * 2));
382
383
  padding:0; border:0; border-radius:0; background:transparent; color:var(--lattice-form-field-fg);
383
384
  font:inherit; line-height:inherit; box-shadow:none;
@@ -494,20 +495,28 @@
494
495
  }
495
496
  .lat-select__value{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
496
497
  .lat-select__value[data-placeholder='true']{ color:var(--lattice-form-placeholder); }
498
+ /* While the clear control is shown the value reserves its slot (one control
499
+ square) so a long value ellipsises before the clear rather than running
500
+ underneath it (BACKLOG-0002425). */
501
+ .lat-select__value--with-clear{ margin-right:calc(var(--lattice-control-size) * var(--lattice-scale)); }
497
502
  .lat-select__arrow{ flex:0 0 auto; display:inline-flex; align-items:center; color:var(--lattice-foreground-muted); }
498
503
  .lat-select__trigger:hover .lat-select__arrow,
499
504
  .lat-select__trigger:focus-visible .lat-select__arrow{ color:var(--lattice-foreground); }
500
- .lat-select__clear{
505
+ /* The clear control is a two-class rule (a part button, not the control) so
506
+ the whole-control button rule above (0,1,1) cannot stretch it to the field's
507
+ width and row height: it stays a control-size square beside the arrow,
508
+ never over the shown value (BACKLOG-0002425). */
509
+ .lat-select .lat-select__clear{
501
510
  position:absolute; top:50%; transform:translateY(-50%);
502
511
  right:calc(var(--lattice-space) * 1.5 + var(--lattice-border-width) + (var(--lattice-control-size) * var(--lattice-scale)));
503
512
  display:inline-flex; align-items:center; justify-content:center;
504
513
  width:calc(var(--lattice-control-size) * var(--lattice-scale)); height:calc(var(--lattice-control-size) * var(--lattice-scale));
505
514
  padding:0; border:0; background:transparent; color:var(--lattice-foreground-muted); cursor:pointer; border-radius:var(--lattice-radius);
506
515
  }
507
- .lat-select__clear[hidden]{ display:none; }
508
- .lat-select__clear:hover,
509
- .lat-select__clear:focus-visible{ color:var(--lattice-foreground); }
510
- .lat-select__clear:focus-visible{ outline:2px solid var(--lattice-form-focus-ring); outline-offset:2px; }
516
+ .lat-select .lat-select__clear[hidden]{ display:none; }
517
+ .lat-select .lat-select__clear:hover,
518
+ .lat-select .lat-select__clear:focus-visible{ color:var(--lattice-foreground); }
519
+ .lat-select .lat-select__clear:focus-visible{ outline:2px solid var(--lattice-form-focus-ring); outline-offset:2px; }
511
520
  .lat-select__popup--above{ top:auto; bottom:100%; margin-top:0; margin-bottom:2px; }
512
521
  .lat-select__group{
513
522
  box-sizing:border-box; padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.5);
@@ -727,6 +736,7 @@
727
736
  --lat-toggle-radius:calc(var(--lattice-control-size) / 2);
728
737
  --lat-toggle-handle-radius:50%;
729
738
  appearance:none; -webkit-appearance:none; position:relative;
739
+ box-sizing:border-box;
730
740
  width:var(--lat-toggle-width); height:var(--lat-toggle-height);
731
741
  padding:0; border:var(--lattice-border-width) solid var(--lattice-switch-track-off);
732
742
  border-radius:var(--lat-toggle-radius); background:var(--lattice-switch-track-off);
@@ -847,6 +857,26 @@
847
857
  .${e}__datepicker .${e}__datepicker-toggle:disabled{
848
858
  color:var(--lattice-disabled-foreground); cursor:not-allowed;
849
859
  }
860
+ /* The clear control is a two-class rule (a part button, not the control) so
861
+ the whole-control button rule above (0,1,1) cannot stretch it to the field's
862
+ width and row height: it stays a control-size square beside the toggle,
863
+ never over the shown value (BACKLOG-0002431). */
864
+ .${e}__datepicker .${e}__datepicker-clear{
865
+ position:absolute; top:50%; transform:translateY(-50%);
866
+ right:calc(var(--lattice-space) * 1.5 + var(--lattice-border-width) + (var(--lattice-control-size) * var(--lattice-scale)));
867
+ display:inline-flex; align-items:center; justify-content:center;
868
+ width:calc(var(--lattice-control-size) * var(--lattice-scale)); height:calc(var(--lattice-control-size) * var(--lattice-scale));
869
+ padding:0; border:0; background:transparent; color:var(--lattice-foreground-muted); cursor:pointer; border-radius:var(--lattice-radius);
870
+ }
871
+ .${e}__datepicker .${e}__datepicker-clear[hidden]{ display:none; }
872
+ .${e}__datepicker .${e}__datepicker-clear:hover,
873
+ .${e}__datepicker .${e}__datepicker-clear:focus-visible{ color:var(--lattice-foreground); }
874
+ .${e}__datepicker .${e}__datepicker-clear:focus-visible{ outline:2px solid var(--lattice-form-focus-ring); outline-offset:2px; }
875
+ /* While the clear control is shown its slot is reserved in the input's right
876
+ padding, so a long value ellipsises before it rather than underneath it. */
877
+ .${e}__datepicker .${e}__datepicker-input--with-clear{
878
+ padding-right:calc(var(--lattice-space) * 1.5 + (var(--lattice-control-size) * var(--lattice-scale)) + calc(var(--lattice-space) / 2) + (var(--lattice-control-size) * var(--lattice-scale)));
879
+ }
850
880
  .${e}__datepicker-popup{
851
881
  position:absolute; top:calc(100% + var(--lattice-space) / 2); left:0; z-index:10;
852
882
  box-sizing:border-box; width:max-content; min-width:100%; padding:var(--lattice-space);
@@ -1398,13 +1428,13 @@
1398
1428
  .${e}__avatar-status--failed{ color:var(--lattice-form-invalid); }
1399
1429
  .${e}__avatar[aria-disabled='true'] .${e}__avatar-picture{ color:var(--lattice-disabled-foreground); background:var(--lattice-disabled-background); }
1400
1430
  .${e}__avatar[aria-readonly='true'] .${e}__avatar-picture{ cursor:default; }
1401
- `.trim()}function k(j){const C=j&&j.documentElement;if(!C||C.getAttribute($))return;C.setAttribute($,"1");const S=j.createElement("style");S.textContent=q(),(j.head||j.body||C).appendChild(S)}function P(j,C){const S=`lat-cols-bp-${String(C).replace(/[^0-9]/g,"")}`,x=`data-lattice-cols-breakpoint-${S}`,h=j&&j.documentElement;if(h&&!h.querySelector(`style[${x}]`)){const n=j.createElement("style");n.setAttribute(x,"1"),n.textContent=`@container ${S} (max-width:${C}px){.${e}__cols > *{flex:1 1 100%}}`,(j.head||j.body||h).appendChild(n)}return S}}),Ne("packages/modules/form/controls/registry.js",function(N,Z){"use strict";Object.defineProperty(N,"registerControl",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"resolveControl",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"controlTypes",{enumerable:!0,get:function(){return q}});const e=new Map;function R(k,P){e.set(k,P)}function $(k){return e.get(k)||null}function q(){return[...e.keys()]}}),Ne("packages/modules/form/validation.js",function(N,Z){"use strict";Object.defineProperty(N,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"BUILTIN_RULES",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"isEmpty",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"resolveValidationMode",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"validateValue",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"normalizeHookResult",{enumerable:!0,get:function(){return h}});const e=Object.freeze(["change","blur","submit"]),R=Object.freeze(["email","number","integer","url"]),$=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function q(n){return n==null||n===""||n===!1||Array.isArray(n)&&n.length===0}function k(n){return e.includes(n)?n:"submit"}function P(n){return Object.prototype.toString.call(n)==="[object RegExp]"}function j(n,c){if(n==="email")return typeof c=="string"&&$.test(c);if(n==="number")return Number.isFinite(Number(c));if(n==="integer")return typeof c=="number"?Number.isInteger(c):typeof c=="string"&&/^-?\d+$/.test(c);if(n==="url"){if(typeof c!="string")return!1;try{const b=new URL(c);return b.protocol==="http:"||b.protocol==="https:"}catch{return!1}}return!0}function C(n,c){return typeof n.errorMessage=="string"&&n.errorMessage!==""?n.errorMessage:c}function S(n,c,b,_){let t;try{t=n(c,b)}catch{return{code:"custom",message:C(b,_("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:C(b,_("form.validation.custom"))}:{code:"custom",message:String(t)}}function x(n,c,b,_){if((n.required===!0||_===!0)&&q(c))return{code:"required",message:C(n,b("form.validation.required"))};const t=n.validation;return t==null?null:typeof t=="function"?S(t,c,n,b):P(t)?q(c)||t.test(String(c))?null:{code:"pattern",message:C(n,b("form.validation.pattern"))}:typeof t=="string"&&R.includes(t)?q(c)||j(t,c)?null:{code:t,message:C(n,b(`form.validation.${t}`))}:null}function h(n,c,b){return n==null||n===!0?null:n===!1?{code:"custom",message:C(c,b("form.validation.custom"))}:typeof n=="string"?{code:"custom",message:n}:typeof n=="object"?{code:n.code||"custom",message:n.message!=null?String(n.message):C(c,b("form.validation.custom"))}:null}}),Ne("packages/modules/form/model.js",function(N,Z){"use strict";Object.defineProperty(N,"isEmpty",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"DENSITIES",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"CONTROL_TYPES",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"cssSize",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"resolveLabelPosition",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"resolveDensity",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"resolveColsBreakpoint",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"axisOf",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"normalizeItem",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"normalizeBlock",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"resolveConfig",{enumerable:!0,get:function(){return b}});const R=Z("packages/modules/form/validation.js").resolveValidationMode;function $(t){return t!==null&&typeof t=="object"}function q(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const k=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","togglegroup","time","container","avatar"]);function j(t){return typeof t=="number"?`${t}px`:String(t)}function C(t){return t==="left"||t==="hidden"?t:"top"}function S(t){return k.includes(t)?t:"standard"}function x(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function h(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 n(t,a){const i=t.text!=null&&t.type===void 0,f=i?"text":t.type!=null&&t.type!==""?String(t.type):"input",v=i?t.text:t.value,m={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:f,label:t.label,labelPosition:t.labelPosition==null?null:C(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:$(t.props)?Object.assign({},t.props):{},path:a};for(const g of Object.keys(t))!(g in m)&&g!=="text"&&g!=="value"&&g!=="type"&&(m.props[g]=t[g]);return m}function c(t,a){if(!$(t))return null;if(t.fieldset!=null){const f=$(t.fieldset)?t.fieldset:t,v=$(t.fieldset)?t.fieldset.legend:t.fieldset,m=h(f),g=m==="items"?f.items:m==="rows"?f.rows:m==="cols"?f.cols:[];return{kind:"fieldset",legend:v==null?null:String(v),axis:m,spacing:f.spacing==null?null:j(f.spacing),labelPosition:f.labelPosition==null?null:C(f.labelPosition),labelWidth:f.labelWidth,blocks:g.filter($).map((H,u)=>c(H,`${a}/${u}`)).filter(Boolean),css:f.css,hidden:f.hidden===!0}}if(t.container!=null){const f=$(t.container)?t.container:t,v=h(f),m=v==="items"?f.items:v==="rows"?f.rows:v==="cols"?f.cols:[];return{kind:"container",axis:v,spacing:f.spacing==null?null:j(f.spacing),labelPosition:f.labelPosition==null?null:C(f.labelPosition),labelWidth:f.labelWidth,blocks:m.filter($).map((g,H)=>c(g,`${a}/${H}`)).filter(Boolean),css:f.css,hidden:f.hidden===!0}}if(t.panel!=null){const f=$(t.panel)?t.panel:{},v=$(t.panel)&&h(t.panel)?t.panel:t,m=h(v),g=m==="items"?v.items:m==="rows"?v.rows:m==="cols"?v.cols:[],H=Array.isArray(f.actions)?f.actions.filter($).map(u=>({icon:u.icon,ariaLabel:u.ariaLabel!=null&&u.ariaLabel!==""?String(u.ariaLabel):null,onClick:typeof u.onClick=="function"?u.onClick:null})):[];return{kind:"panel",title:f.title!=null&&f.title!==""?String(f.title):null,subtitle:f.subtitle!=null&&f.subtitle!==""?String(f.subtitle):null,actions:H,collapsible:f.collapsible===!0,axis:m,spacing:v.spacing==null?null:j(v.spacing),labelPosition:v.labelPosition==null?null:C(v.labelPosition),labelWidth:v.labelWidth,blocks:g.filter($).map((u,s)=>c(u,`${a}/${s}`)).filter(Boolean),css:v.css,hidden:v.hidden===!0}}const i=h(t);if(i){const f=i==="items"?t.items:i==="rows"?t.rows:t.cols;return{kind:"container",axis:i,spacing:t.spacing==null?null:j(t.spacing),labelPosition:t.labelPosition==null?null:C(t.labelPosition),labelWidth:t.labelWidth,blocks:f.filter($).map((v,m)=>c(v,`${a}/${m}`)).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}:n(t,a)}function b(t={}){const a=$(t)?t:{},i=Array.isArray(a.steps)?a.steps.filter($).map((u,s)=>_(u,s)).filter(Boolean):[],f=i.length>0,v=!f&&Array.isArray(a.rows)&&a.rows.length,m=!f&&!v&&Array.isArray(a.cols)&&a.cols.length,g=v||f?"rows":"cols",H=f?[]:v?a.rows:m?a.cols:[];return{axis:g,density:S(a.density),css:a.css,messages:a.messages,colsBreakpoint:x(a.colsBreakpoint),spacing:a.spacing==null?null:j(a.spacing),labelGap:a.labelGap==null?null:j(a.labelGap),labelPosition:a.labelPosition==null?null:C(a.labelPosition),labelWidth:a.labelWidth,requiredHint:a.requiredHint,blocks:H.filter($).map((u,s)=>c(u,String(s))).filter(Boolean),steps:i,stepOrientation:a.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:a.validateSteps!==!1}}function _(t,a){const f=(Array.isArray(t.rows)?t.rows:[]).filter($).map((v,m)=>c(v,`step${a}/${m}`)).filter(Boolean);return f.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${a}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:f,css:t.css}}}),Ne("packages/modules/form/ids.js",function(N,Z){"use strict";Object.defineProperty(N,"nextId",{enumerable:!0,get:function(){return R}});let e=0;function R($){return e+=1,`${$}-${e}`}}),Ne("packages/modules/form/state.js",function(N,Z){"use strict";Object.defineProperty(N,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"guardBooleanInput",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"syncRootAria",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"syncRecordState",{enumerable:!0,get:function(){return q}});function e(k,P,j){k.disabled=P===!0,k.__latReadOnly=j===!0,j===!0?k.setAttribute("aria-readonly","true"):k.removeAttribute("aria-readonly")}function R(k){const P=()=>k.__latReadOnly===!0,j=h=>{P()&&h.preventDefault()},C=h=>{P()&&(h.preventDefault(),h.stopPropagation())},S=h=>{P()&&(h.key===" "||h.key==="Enter")&&h.preventDefault()},x=h=>{P()&&h.key===" "&&h.preventDefault()};k.addEventListener("pointerdown",j),k.addEventListener("click",C),k.addEventListener("keydown",S),k.addEventListener("keyup",x)}function $(k,P,j){P?k.setAttribute("aria-disabled","true"):k.removeAttribute("aria-disabled"),j?k.setAttribute("aria-readonly","true"):k.removeAttribute("aria-readonly")}function q(k){const P=k.item,j=P.disabled===!0,C=P.readOnly===!0||k.ruleReadOnly===!0;k.controlWrap&&(k.controlWrap.setAttribute("data-disabled",j?"true":"false"),k.controlWrap.setAttribute("data-readonly",C?"true":"false")),k.def.state(k.control,{...P,readOnly:C}),typeof k.syncLock=="function"&&k.syncLock(),typeof k.syncAddons=="function"&&k.syncAddons()}}),Ne("packages/modules/form/group-rules.js",function(N,Z){"use strict";Object.defineProperty(N,"attachRuleResolver",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"detachRuleResolver",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"ruleResolverFor",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"makeRuleResolver",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"reapplyMembers",{enumerable:!0,get:function(){return P}});const e=new WeakMap;function R(j,C){e.set(j,C)}function $(j){e.delete(j)}function q(j){return e.get(j)}function k(j){const{owners:C,byId:S,warnOnce:x}=j;return function(n,c){if(n==null||typeof n!="object")return;const b=n.name;if(n.form!=null){const t=S.get(n.form);if(!t){x(`form.group.unknown-member:${String(n.form)}`,`form group: a rule pins the member "${n.form}", but no member has that id; the rule reads an empty value.`);return}return b!=null?t.form.getValue()[b]:void 0}if(b==null)return;if(Object.prototype.hasOwnProperty.call(c,b))return c[b];const _=C.get(String(b));if(_)return _.form.getValue()[b]}}function P(j){for(const C of j)C.form&&typeof C.form.__reapplyRules=="function"&&C.form.__reapplyRules()}}),Ne("packages/modules/form/rules.js",function(N,Z){"use strict";Object.defineProperty(N,"evalRule",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"applyRules",{enumerable:!0,get:function(){return C}});const R=Z("packages/modules/form/model.js").isEmpty,q=Z("packages/modules/form/state.js").syncRecordState,P=Z("packages/modules/form/group-rules.js").ruleResolverFor;function j(x,h,n){if(x==null)return null;if(typeof x=="function")return!!x(h);if(typeof x=="boolean")return x;if(typeof x=="object"){const c=n?n(x,h):x.name!=null?h[x.name]:void 0;if(typeof x.fn=="function")return!!x.fn(c,h);let b=!0,_=!1;return Object.prototype.hasOwnProperty.call(x,"equals")&&(_=!0,b=b&&c===x.equals),Object.prototype.hasOwnProperty.call(x,"in")&&(_=!0,b=b&&Array.isArray(x.in)&&x.in.includes(c)),Object.prototype.hasOwnProperty.call(x,"empty")&&(_=!0,b=b&&R(c)===!!x.empty),_?b:!1}return!1}function C(x){const h={};for(const c of x.order)c.item.name!=null&&(h[c.item.name]=c.value);const n=x.form?P(x.form):void 0;for(const c of x.order){const b=c.item;c.ruleHidden=j(b.visibleWhen,h,n)===!1,c.ruleReadOnly=j(b.readOnlyWhen,h,n)===!0,c.ruleRequired=j(b.requiredWhen,h,n)===!0,c.el.hidden=c.hidden||c.ruleHidden,q(c);const _=b.required===!0||c.ruleRequired,t=c.labelEl!=null&&c.labelPosition!=="hidden",a=c.placeholderEl||c.control;_?a.setAttribute("aria-required","true"):a.removeAttribute("aria-required"),_&&t?c.el.setAttribute("data-required","true"):c.el.removeAttribute("data-required"),S(c,_,t,i=>x.t(i))}}function S(x,h,n,c){const b=x.placeholderEl;if(!b)return;const _=x.placeholderBase;if(h&&!n&&_!==""){const t=x.requiredHint,a=t===!1?"":typeof t=="string"?c(t):" *";b.placeholder=_+a}else b.placeholder=_}}),Ne("packages/modules/form/enter-submit.js",function(N,Z){"use strict";Object.defineProperty(N,"attachEnterSubmit",{enumerable:!0,get:function(){return j}});function e(C){const S=C.control;if(!S)return null;const x=C.item&&C.item.type;return x==="input"?S.__latPassword?S.__latPassword.input:S:x==="number"?S.__latNumber?S.__latNumber.input:S:(x==="datepicker"||x==="daterange")&&S.__input||null}function R(C,S){for(const x of C.order){const h=x.control;if(h&&(h===S||typeof h.contains=="function"&&h.contains(S)))return x}return null}function $(C,S){const x=C.item&&C.item.type;if(x==="otp"){const n=C.control&&C.control.__latOtp;return!n||!Array.isArray(n.boxes)||n.boxes.length===0?!1:S===n.boxes[n.boxes.length-1]}if(x==="combo"||x==="select")return!1;const h=e(C);if(!h||S!==h)return!1;if(x==="input"||x==="number")return!0;if(x==="datepicker"||x==="daterange"){const n=C.control&&C.control.__popup;return!n||n.hidden!==!1}return!1}function q(C){for(const S of C.order){if(S.hidden)continue;const x=S.item&&S.item.type;if(x==="button"){const h=S.control&&S.control.__latButton;if(h&&h.buttonType==="submit")return S.control}else if(x==="buttons"){const h=S.control&&S.control.children;if(!h)continue;for(const n of h){const c=n&&n.__latButton;if(c&&c.buttonType==="submit")return n}}}return null}function k(C,S){const x=S&&S.defaultView,h=x&&(x.MouseEvent||x.Event),n=h?new h("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};C.dispatchEvent(n)}function P(C,S,x){const h=C.doc,n=h&&h.defaultView,c=e(S)||x;if(!c||typeof c.dispatchEvent!="function")return!1;const b=n&&(n.FocusEvent||n.Event);b&&c.dispatchEvent(new b("blur",{bubbles:!1}));const _=S.def,t=_&&typeof _.read=="function"?_.read(S.control,S.item):void 0;if(t===void 0||t===S.value)return!1;const a=n&&n.Event;return a?c.dispatchEvent(new a("change",{bubbles:!0})):c.dispatchEvent({type:"change",bubbles:!0,target:c}),!0}function j(C){const S=x=>{if(x.key!=="Enter"||x.altKey||x.ctrlKey||x.metaKey||x.shiftKey||x.isComposing)return;const h=x.target;if(!h)return;const n=R(C,h);if(!n||!$(n,h))return;const c=q(C);if(!c)return;x.preventDefault(),P(C,n,h)?Promise.resolve().then(()=>k(c,C.doc)):k(c,C.doc)};C.el.addEventListener("keydown",S),C.disposers.push(()=>C.el.removeEventListener("keydown",S))}}),Ne("packages/modules/form/stepper.js",function(N,Z){"use strict";Object.defineProperty(N,"createStepper",{enumerable:!0,get:function(){return q}});const R=Z("packages/modules/form/styles.js").NS;function $(k,P,j){return Math.min(j,Math.max(P,k))}function q(k,P){const j=P.doc,C=P.steps||[],S=P.t||(m=>m),x=P.orientation==="vertical"?"vertical":"horizontal";let h=$(Number(P.active)||0,0,Math.max(0,C.length-1));const n=[];k.className=`${R}__stepper ${R}__stepper--${x}`,k.setAttribute("data-orientation",x),k.setAttribute("role","navigation"),k.setAttribute("aria-label",S("form.steps"));const c=j.createElement("ol");c.className=`${R}__stepper-list`,c.setAttribute("role","tablist"),c.setAttribute("aria-orientation",x),k.appendChild(c);let b=[];const _=m=>n[m]?n[m]:m<h?"complete":m===h?"active":"pending",t=m=>m<=h+1,a=()=>{c.textContent="",b=C.map((m,g)=>{const H=_(g),u=j.createElement("li");u.className=`${R}__stepper-item is-${H}`+(g===h?" is-active":"")+(t(g)?"":" is-locked");const s=j.createElement("button");s.type="button",s.className=`${R}__stepper-step`,s.setAttribute("role","tab"),s.setAttribute("aria-selected",g===h?"true":"false"),g===h&&s.setAttribute("aria-current","step"),s.tabIndex=g===h?0:-1,s.setAttribute("aria-disabled",t(g)?"false":"true");const o=j.createElement("span");o.className=`${R}__stepper-marker`,o.setAttribute("aria-hidden","true"),o.textContent=H==="complete"?"✓":H==="error"?"!":String(g+1),s.appendChild(o);const r=j.createElement("span");return r.className=`${R}__stepper-label`,r.textContent=m.label!=null&&m.label!==""?m.label:`${S("form.step")} ${g+1}`,s.appendChild(r),u.appendChild(s),c.appendChild(u),s})},i=m=>{typeof P.onGoTo=="function"&&t(m)&&P.onGoTo(m)},f=m=>{const g=m.target&&m.target.closest?m.target.closest(`.${R}__stepper-step`):null;if(!g||!c.contains(g))return;const H=b.indexOf(g);H>=0&&i(H)},v=m=>{const g=m.target&&m.target.closest?m.target.closest(`.${R}__stepper-step`):null;if(!g||!c.contains(g))return;const H=C.length;let u=b.indexOf(g);if(u<0)return;if(m.key==="ArrowRight"||m.key==="ArrowDown")u=(u+1)%H;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")u=(u-1+H)%H;else if(m.key==="Home")u=0;else if(m.key==="End")u=H-1;else if(m.key==="Enter"||m.key===" "){m.preventDefault(),i(u);return}else return;m.preventDefault();const s=b[u];s&&s.focus()};return c.addEventListener("click",f),c.addEventListener("keydown",v),a(),{el:k,setActive(m){h=$(Number(m)||0,0,Math.max(0,C.length-1)),a()},setStatus(m,g){n[m]=g,a()},statusOf:_}}}),Ne("packages/core/src/internal/icon-builtins.js",function(N,Z){"use strict";Object.defineProperty(N,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"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($){return typeof $=="string"?{viewBox:"0 0 16 16",paths:[$],paint:"fill"}:Array.isArray($)?{viewBox:"0 0 16 16",paths:$.slice(),paint:"fill"}:{viewBox:$&&$.viewBox||"0 0 16 16",paths:$&&Array.isArray($.paths)?$.paths.slice():$&&$.path?[$.path]:[],paint:$&&$.paint==="stroke"?"stroke":"fill"}}}),Ne("packages/modules/form/controls/field-icon.js",function(N,Z){"use strict";Object.defineProperty(N,"fieldIconStylesheet",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"injectFieldIconStyles",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"makeFieldIcon",{enumerable:!0,get:function(){return j}});const R=Z("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,$="http://www.w3.org/2000/svg",q="data-lattice-form-field-icon-styles";function k(){return`
1431
+ `.trim()}function j(g){const n=g&&g.documentElement;if(!n||n.getAttribute(S))return;n.setAttribute(S,"1");const u=g.createElement("style");u.textContent=A(),(g.head||g.body||n).appendChild(u)}function k(g,n){const u=`lat-cols-bp-${String(n).replace(/[^0-9]/g,"")}`,b=`data-lattice-cols-breakpoint-${u}`,v=g&&g.documentElement;if(v&&!v.querySelector(`style[${b}]`)){const t=g.createElement("style");t.setAttribute(b,"1"),t.textContent=`@container ${u} (max-width:${n}px){.${e}__cols > *{flex:1 1 100%}}`,(g.head||g.body||v).appendChild(t)}return u}}),Ne("packages/modules/form/controls/registry.js",function(N,Z){"use strict";Object.defineProperty(N,"registerControl",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"resolveControl",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"controlTypes",{enumerable:!0,get:function(){return X}});const e=new Map;function B(C,z){e.set(C,z)}function S(C){return e.get(C)||null}function X(){return[...e.keys()]}}),Ne("packages/modules/form/validation.js",function(N,Z){"use strict";Object.defineProperty(N,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"BUILTIN_RULES",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"isEmpty",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"resolveValidationMode",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"validateValue",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"normalizeHookResult",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["change","blur","submit"]),B=Object.freeze(["email","number","integer","url"]),S=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function X(n){return n==null||n===""||n===!1||Array.isArray(n)&&n.length===0}function C(n){return e.includes(n)?n:"submit"}function z(n){return Object.prototype.toString.call(n)==="[object RegExp]"}function P(n,u){if(n==="email")return typeof u=="string"&&S.test(u);if(n==="number")return Number.isFinite(Number(u));if(n==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(n==="url"){if(typeof u!="string")return!1;try{const b=new URL(u);return b.protocol==="http:"||b.protocol==="https:"}catch{return!1}}return!0}function A(n,u){return typeof n.errorMessage=="string"&&n.errorMessage!==""?n.errorMessage:u}function j(n,u,b,v){let t;try{t=n(u,b)}catch{return{code:"custom",message:A(b,v("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:A(b,v("form.validation.custom"))}:{code:"custom",message:String(t)}}function k(n,u,b,v){if((n.required===!0||v===!0)&&X(u))return{code:"required",message:A(n,b("form.validation.required"))};const t=n.validation;return t==null?null:typeof t=="function"?j(t,u,n,b):z(t)?X(u)||t.test(String(u))?null:{code:"pattern",message:A(n,b("form.validation.pattern"))}:typeof t=="string"&&B.includes(t)?X(u)||P(t,u)?null:{code:t,message:A(n,b(`form.validation.${t}`))}:null}function g(n,u,b){return n==null||n===!0?null:n===!1?{code:"custom",message:A(u,b("form.validation.custom"))}:typeof n=="string"?{code:"custom",message:n}:typeof n=="object"?{code:n.code||"custom",message:n.message!=null?String(n.message):A(u,b("form.validation.custom"))}:null}}),Ne("packages/modules/form/model.js",function(N,Z){"use strict";Object.defineProperty(N,"isEmpty",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"DENSITIES",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"CONTROL_TYPES",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"cssSize",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"resolveLabelPosition",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"resolveDensity",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"resolveColsBreakpoint",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"axisOf",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"normalizeItem",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"normalizeBlock",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"resolveConfig",{enumerable:!0,get:function(){return b}});const B=Z("packages/modules/form/validation.js").resolveValidationMode;function S(t){return t!==null&&typeof t=="object"}function X(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const C=Object.freeze(["compact","standard","comfortable"]),z=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial","togglegroup","time","container","avatar"]);function P(t){return typeof t=="number"?`${t}px`:String(t)}function A(t){return t==="left"||t==="hidden"?t:"top"}function j(t){return C.includes(t)?t:"standard"}function k(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 n(t,a){const s=t.text!=null&&t.type===void 0,p=s?"text":t.type!=null&&t.type!==""?String(t.type):"input",y=s?t.text:t.value,m={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:p,label:t.label,labelPosition:t.labelPosition==null?null:A(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:B(t.validationMode),props:S(t.props)?Object.assign({},t.props):{},path:a};for(const h of Object.keys(t))!(h in m)&&h!=="text"&&h!=="value"&&h!=="type"&&(m.props[h]=t[h]);return m}function u(t,a){if(!S(t))return null;if(t.fieldset!=null){const p=S(t.fieldset)?t.fieldset:t,y=S(t.fieldset)?t.fieldset.legend:t.fieldset,m=g(p),h=m==="items"?p.items:m==="rows"?p.rows:m==="cols"?p.cols:[];return{kind:"fieldset",legend:y==null?null:String(y),axis:m,spacing:p.spacing==null?null:P(p.spacing),labelPosition:p.labelPosition==null?null:A(p.labelPosition),labelWidth:p.labelWidth,blocks:h.filter(S).map((R,d)=>u(R,`${a}/${d}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.container!=null){const p=S(t.container)?t.container:t,y=g(p),m=y==="items"?p.items:y==="rows"?p.rows:y==="cols"?p.cols:[];return{kind:"container",axis:y,spacing:p.spacing==null?null:P(p.spacing),labelPosition:p.labelPosition==null?null:A(p.labelPosition),labelWidth:p.labelWidth,blocks:m.filter(S).map((h,R)=>u(h,`${a}/${R}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.panel!=null){const p=S(t.panel)?t.panel:{},y=S(t.panel)&&g(t.panel)?t.panel:t,m=g(y),h=m==="items"?y.items:m==="rows"?y.rows:m==="cols"?y.cols:[],R=Array.isArray(p.actions)?p.actions.filter(S).map(d=>({icon:d.icon,ariaLabel:d.ariaLabel!=null&&d.ariaLabel!==""?String(d.ariaLabel):null,onClick:typeof d.onClick=="function"?d.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:R,collapsible:p.collapsible===!0,axis:m,spacing:y.spacing==null?null:P(y.spacing),labelPosition:y.labelPosition==null?null:A(y.labelPosition),labelWidth:y.labelWidth,blocks:h.filter(S).map((d,c)=>u(d,`${a}/${c}`)).filter(Boolean),css:y.css,hidden:y.hidden===!0}}const s=g(t);if(s){const p=s==="items"?t.items:s==="rows"?t.rows:t.cols;return{kind:"container",axis:s,spacing:t.spacing==null?null:P(t.spacing),labelPosition:t.labelPosition==null?null:A(t.labelPosition),labelWidth:t.labelWidth,blocks:p.filter(S).map((y,m)=>u(y,`${a}/${m}`)).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}:n(t,a)}function b(t={}){const a=S(t)?t:{},s=Array.isArray(a.steps)?a.steps.filter(S).map((d,c)=>v(d,c)).filter(Boolean):[],p=s.length>0,y=!p&&Array.isArray(a.rows)&&a.rows.length,m=!p&&!y&&Array.isArray(a.cols)&&a.cols.length,h=y||p?"rows":"cols",R=p?[]:y?a.rows:m?a.cols:[];return{axis:h,density:j(a.density),css:a.css,messages:a.messages,colsBreakpoint:k(a.colsBreakpoint),spacing:a.spacing==null?null:P(a.spacing),labelGap:a.labelGap==null?null:P(a.labelGap),labelPosition:a.labelPosition==null?null:A(a.labelPosition),labelWidth:a.labelWidth,requiredHint:a.requiredHint,blocks:R.filter(S).map((d,c)=>u(d,String(c))).filter(Boolean),steps:s,stepOrientation:a.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:a.validateSteps!==!1}}function v(t,a){const p=(Array.isArray(t.rows)?t.rows:[]).filter(S).map((y,m)=>u(y,`step${a}/${m}`)).filter(Boolean);return p.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${a}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:p,css:t.css}}}),Ne("packages/modules/form/ids.js",function(N,Z){"use strict";Object.defineProperty(N,"nextId",{enumerable:!0,get:function(){return B}});let e=0;function B(S){return e+=1,`${S}-${e}`}}),Ne("packages/modules/form/state.js",function(N,Z){"use strict";Object.defineProperty(N,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"guardBooleanInput",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"syncRootAria",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"syncRecordState",{enumerable:!0,get:function(){return X}});function e(C,z,P){C.disabled=z===!0,C.__latReadOnly=P===!0,P===!0?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")}function B(C){const z=()=>C.__latReadOnly===!0,P=g=>{z()&&g.preventDefault()},A=g=>{z()&&(g.preventDefault(),g.stopPropagation())},j=g=>{z()&&(g.key===" "||g.key==="Enter")&&g.preventDefault()},k=g=>{z()&&g.key===" "&&g.preventDefault()};C.addEventListener("pointerdown",P),C.addEventListener("click",A),C.addEventListener("keydown",j),C.addEventListener("keyup",k)}function S(C,z,P){z?C.setAttribute("aria-disabled","true"):C.removeAttribute("aria-disabled"),P?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")}function X(C){const z=C.item,P=z.disabled===!0,A=z.readOnly===!0||C.ruleReadOnly===!0;C.controlWrap&&(C.controlWrap.setAttribute("data-disabled",P?"true":"false"),C.controlWrap.setAttribute("data-readonly",A?"true":"false")),C.def.state(C.control,{...z,readOnly:A}),typeof C.syncLock=="function"&&C.syncLock(),typeof C.syncAddons=="function"&&C.syncAddons()}}),Ne("packages/modules/form/group-rules.js",function(N,Z){"use strict";Object.defineProperty(N,"attachRuleResolver",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"detachRuleResolver",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"ruleResolverFor",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"makeRuleResolver",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"reapplyMembers",{enumerable:!0,get:function(){return z}});const e=new WeakMap;function B(P,A){e.set(P,A)}function S(P){e.delete(P)}function X(P){return e.get(P)}function C(P){const{owners:A,byId:j,warnOnce:k}=P;return function(n,u){if(n==null||typeof n!="object")return;const b=n.name;if(n.form!=null){const t=j.get(n.form);if(!t){k(`form.group.unknown-member:${String(n.form)}`,`form group: a rule pins the member "${n.form}", but no member has that id; the rule reads an empty value.`);return}return b!=null?t.form.getValue()[b]:void 0}if(b==null)return;if(Object.prototype.hasOwnProperty.call(u,b))return u[b];const v=A.get(String(b));if(v)return v.form.getValue()[b]}}function z(P){for(const A of P)A.form&&typeof A.form.__reapplyRules=="function"&&A.form.__reapplyRules()}}),Ne("packages/modules/form/rules.js",function(N,Z){"use strict";Object.defineProperty(N,"evalRule",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"applyRules",{enumerable:!0,get:function(){return A}});const B=Z("packages/modules/form/model.js").isEmpty,X=Z("packages/modules/form/state.js").syncRecordState,z=Z("packages/modules/form/group-rules.js").ruleResolverFor;function P(k,g,n){if(k==null)return null;if(typeof k=="function")return!!k(g);if(typeof k=="boolean")return k;if(typeof k=="object"){const u=n?n(k,g):k.name!=null?g[k.name]:void 0;if(typeof k.fn=="function")return!!k.fn(u,g);let b=!0,v=!1;return Object.prototype.hasOwnProperty.call(k,"equals")&&(v=!0,b=b&&u===k.equals),Object.prototype.hasOwnProperty.call(k,"in")&&(v=!0,b=b&&Array.isArray(k.in)&&k.in.includes(u)),Object.prototype.hasOwnProperty.call(k,"empty")&&(v=!0,b=b&&B(u)===!!k.empty),v?b:!1}return!1}function A(k){const g={};for(const u of k.order)u.item.name!=null&&(g[u.item.name]=u.value);const n=k.form?z(k.form):void 0;for(const u of k.order){const b=u.item;u.ruleHidden=P(b.visibleWhen,g,n)===!1,u.ruleReadOnly=P(b.readOnlyWhen,g,n)===!0,u.ruleRequired=P(b.requiredWhen,g,n)===!0,u.el.hidden=u.hidden||u.ruleHidden,X(u);const v=b.required===!0||u.ruleRequired,t=u.labelEl!=null&&u.labelPosition!=="hidden",a=u.placeholderEl||u.control;v?a.setAttribute("aria-required","true"):a.removeAttribute("aria-required"),v&&t?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),j(u,v,t,s=>k.t(s))}}function j(k,g,n,u){const b=k.placeholderEl;if(!b)return;const v=k.placeholderBase;if(g&&!n&&v!==""){const t=k.requiredHint,a=t===!1?"":typeof t=="string"?u(t):" *";b.placeholder=v+a}else b.placeholder=v}}),Ne("packages/modules/form/enter-submit.js",function(N,Z){"use strict";Object.defineProperty(N,"attachEnterSubmit",{enumerable:!0,get:function(){return P}});function e(A){const j=A.control;if(!j)return null;const k=A.item&&A.item.type;return k==="input"?j.__latPassword?j.__latPassword.input:j:k==="number"?j.__latNumber?j.__latNumber.input:j:(k==="datepicker"||k==="daterange")&&j.__input||null}function B(A,j){for(const k of A.order){const g=k.control;if(g&&(g===j||typeof g.contains=="function"&&g.contains(j)))return k}return null}function S(A,j){const k=A.item&&A.item.type;if(k==="otp"){const n=A.control&&A.control.__latOtp;return!n||!Array.isArray(n.boxes)||n.boxes.length===0?!1:j===n.boxes[n.boxes.length-1]}if(k==="combo"||k==="select")return!1;const g=e(A);if(!g||j!==g)return!1;if(k==="input"||k==="number")return!0;if(k==="datepicker"||k==="daterange"){const n=A.control&&A.control.__popup;return!n||n.hidden!==!1}return!1}function X(A){for(const j of A.order){if(j.hidden)continue;const k=j.item&&j.item.type;if(k==="button"){const g=j.control&&j.control.__latButton;if(g&&g.buttonType==="submit")return j.control}else if(k==="buttons"){const g=j.control&&j.control.children;if(!g)continue;for(const n of g){const u=n&&n.__latButton;if(u&&u.buttonType==="submit")return n}}}return null}function C(A,j){const k=j&&j.defaultView,g=k&&(k.MouseEvent||k.Event),n=g?new g("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};A.dispatchEvent(n)}function z(A,j,k){const g=A.doc,n=g&&g.defaultView,u=e(j)||k;if(!u||typeof u.dispatchEvent!="function")return!1;const b=n&&(n.FocusEvent||n.Event);b&&u.dispatchEvent(new b("blur",{bubbles:!1}));const v=j.def,t=v&&typeof v.read=="function"?v.read(j.control,j.item):void 0;if(t===void 0||t===j.value)return!1;const a=n&&n.Event;return a?u.dispatchEvent(new a("change",{bubbles:!0})):u.dispatchEvent({type:"change",bubbles:!0,target:u}),!0}function P(A){const j=k=>{if(k.key!=="Enter"||k.altKey||k.ctrlKey||k.metaKey||k.shiftKey||k.isComposing)return;const g=k.target;if(!g)return;const n=B(A,g);if(!n||!S(n,g))return;const u=X(A);if(!u)return;k.preventDefault(),z(A,n,g)?Promise.resolve().then(()=>C(u,A.doc)):C(u,A.doc)};A.el.addEventListener("keydown",j),A.disposers.push(()=>A.el.removeEventListener("keydown",j))}}),Ne("packages/modules/form/stepper.js",function(N,Z){"use strict";Object.defineProperty(N,"createStepper",{enumerable:!0,get:function(){return X}});const B=Z("packages/modules/form/styles.js").NS;function S(C,z,P){return Math.min(P,Math.max(z,C))}function X(C,z){const P=z.doc,A=z.steps||[],j=z.t||(m=>m),k=z.orientation==="vertical"?"vertical":"horizontal";let g=S(Number(z.active)||0,0,Math.max(0,A.length-1));const n=[];C.className=`${B}__stepper ${B}__stepper--${k}`,C.setAttribute("data-orientation",k),C.setAttribute("role","navigation"),C.setAttribute("aria-label",j("form.steps"));const u=P.createElement("ol");u.className=`${B}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",k),C.appendChild(u);let b=[];const v=m=>n[m]?n[m]:m<g?"complete":m===g?"active":"pending",t=m=>m<=g+1,a=()=>{u.textContent="",b=A.map((m,h)=>{const R=v(h),d=P.createElement("li");d.className=`${B}__stepper-item is-${R}`+(h===g?" is-active":"")+(t(h)?"":" is-locked");const c=P.createElement("button");c.type="button",c.className=`${B}__stepper-step`,c.setAttribute("role","tab"),c.setAttribute("aria-selected",h===g?"true":"false"),h===g&&c.setAttribute("aria-current","step"),c.tabIndex=h===g?0:-1,c.setAttribute("aria-disabled",t(h)?"false":"true");const i=P.createElement("span");i.className=`${B}__stepper-marker`,i.setAttribute("aria-hidden","true"),i.textContent=R==="complete"?"✓":R==="error"?"!":String(h+1),c.appendChild(i);const r=P.createElement("span");return r.className=`${B}__stepper-label`,r.textContent=m.label!=null&&m.label!==""?m.label:`${j("form.step")} ${h+1}`,c.appendChild(r),d.appendChild(c),u.appendChild(d),c})},s=m=>{typeof z.onGoTo=="function"&&t(m)&&z.onGoTo(m)},p=m=>{const h=m.target&&m.target.closest?m.target.closest(`.${B}__stepper-step`):null;if(!h||!u.contains(h))return;const R=b.indexOf(h);R>=0&&s(R)},y=m=>{const h=m.target&&m.target.closest?m.target.closest(`.${B}__stepper-step`):null;if(!h||!u.contains(h))return;const R=A.length;let d=b.indexOf(h);if(d<0)return;if(m.key==="ArrowRight"||m.key==="ArrowDown")d=(d+1)%R;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")d=(d-1+R)%R;else if(m.key==="Home")d=0;else if(m.key==="End")d=R-1;else if(m.key==="Enter"||m.key===" "){m.preventDefault(),s(d);return}else return;m.preventDefault();const c=b[d];c&&c.focus()};return u.addEventListener("click",p),u.addEventListener("keydown",y),a(),{el:C,setActive(m){g=S(Number(m)||0,0,Math.max(0,A.length-1)),a()},setStatus(m,h){n[m]=h,a()},statusOf:v}}}),Ne("packages/core/src/internal/icon-builtins.js",function(N,Z){"use strict";Object.defineProperty(N,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"normaliseIcon",{enumerable:!0,get:function(){return B}});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 B(S){return typeof S=="string"?{viewBox:"0 0 16 16",paths:[S],paint:"fill"}:Array.isArray(S)?{viewBox:"0 0 16 16",paths:S.slice(),paint:"fill"}:{viewBox:S&&S.viewBox||"0 0 16 16",paths:S&&Array.isArray(S.paths)?S.paths.slice():S&&S.path?[S.path]:[],paint:S&&S.paint==="stroke"?"stroke":"fill"}}}),Ne("packages/modules/form/controls/field-icon.js",function(N,Z){"use strict";Object.defineProperty(N,"fieldIconStylesheet",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"injectFieldIconStyles",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"makeFieldIcon",{enumerable:!0,get:function(){return P}});const B=Z("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,S="http://www.w3.org/2000/svg",X="data-lattice-form-field-icon-styles";function C(){return`
1402
1432
  .lat-form__field-icon{
1403
1433
  display:block; flex:0 0 auto;
1404
1434
  width:calc(var(--lattice-control-size) * var(--lattice-scale));
1405
1435
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1406
1436
  }
1407
- `.trim()}function P(C){const S=C&&C.documentElement;if(!S||S.getAttribute(q))return;S.setAttribute(q,"1");const x=C.createElement("style");x.textContent=k(),(C.head||C.body||S).appendChild(x)}function j(C,S){const x=R[S];if(!x)return null;const h=C.createElementNS($,"svg");h.setAttribute("class","lat-form__field-icon"),h.setAttribute("viewBox",x.viewBox||"0 0 16 16"),h.setAttribute("aria-hidden","true"),h.setAttribute("focusable","false");const n=x.paint==="stroke";for(const c of x.paths||[]){const b=C.createElementNS($,"path");b.setAttribute("d",c),n?(b.setAttribute("fill","none"),b.setAttribute("stroke","currentColor"),b.setAttribute("stroke-width","1.5"),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")):b.setAttribute("fill","currentColor"),h.appendChild(b)}return h}}),Ne("packages/modules/form/messages.js",function(N,Z){"use strict";Object.defineProperty(N,"FALLBACK_EN",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"t",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"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.togglegroup":"Options","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.time.open":"Open time picker","form.time.close":"Close","form.time.save":"Save","form.time.am":"AM","form.time.pm":"PM","form.time.invalid":"Enter a valid time.","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","form.avatar.placeholder":"Add a photo","form.avatar.choose":"Choose a photo","form.avatar.remove":"Remove photo","form.avatar.rejected.size":"Photo is larger than {size}","form.avatar.rejected.type":"Photo type not allowed","form.avatar.uploadFailed":"Upload failed"}),R=Object.freeze({...e});function $(j,C={}){const S=e[j];return S===void 0?j:S.replace(/\{(\w+)\}/g,(x,h)=>C[h]===void 0?x:String(C[h]))}const q={t(j,C={}){return $(j,C)}};function k(j,C={}){return q.t(j,C)}function P(j){return{t(C,S={}){const x=j&&typeof j.t=="function"?j.t(C,S):C;return x===C?$(C,S):x}}}}),Ne("packages/dom/src/editors/sanitize-richtext.js",function(N,Z){"use strict";Object.defineProperty(N,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"escapeHtml",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"sanitizeRichText",{enumerable:!0,get:function(){return x}});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$/},$=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),q=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],k=/^(data:image\/|https?:\/\/|\/)/i,P={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function j(h){const n=h==null?"":String(h);return/[&<>"']/.test(n)?n.replace(/[&<>"']/g,c=>P[c]):n}function C(h,n){const c=String(h).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return c.startsWith("javascript:")||c.startsWith("vbscript:")?!0:c.startsWith("data:")?!(n&&c.startsWith("data:image/")):!1}function S(h){if(h.__latRtCanParse!==void 0)return h.__latRtCanParse;try{const n=h.createElement("template");n.innerHTML="<p>x</p>";const c=!!(n.content&&n.content.childNodes&&n.content.childNodes.length);return h.__latRtCanParse=c,c}catch{return h.__latRtCanParse=!1,!1}}function x(h,n,c=e,b={}){const _=c||e,t=String(n??"");if(!S(h))return j(t.replace(/<[^>]*>/g,""));const a=b.imageSrcPattern||k,i=h.createElement("template");i.innerHTML=t;const f=v=>{[...v.childNodes].forEach(m=>{if(m.nodeType===8){m.remove();return}if(m.nodeType!==1)return;const g=m.tagName.toLowerCase();if($.has(g)){m.remove();return}if(f(m),!_[g]){const H=q.includes(g)?h.createElement("p"):null;if(H){for(;m.firstChild;)H.appendChild(m.firstChild);m.replaceWith(H)}else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}return}if([...m.attributes].forEach(H=>{const u=H.name.toLowerCase();if(/^on/i.test(u)||u==="srcdoc"||u==="id"||u==="name"){m.removeAttribute(H.name);return}if(!_[g].includes(u)){m.removeAttribute(H.name);return}if(u==="href"){const s=H.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(s)||C(s))&&m.removeAttribute("href")}else if(u==="src"){const s=H.value.trim();(!a.test(s)||C(s,!0))&&m.removeAttribute("src")}else if(u==="style"){if(b.stripStyles&&g!=="img"){m.removeAttribute("style");return}const s=H.value.split(";").map(o=>o.trim()).filter(Boolean).map(o=>{const r=o.indexOf(":");return[o.slice(0,r).trim().toLowerCase(),o.slice(r+1).trim()]}).filter(([o,r])=>R[o]&&R[o].test(r)).map(([o,r])=>`${o}: ${r}`).join("; ");s?m.setAttribute("style",s):m.removeAttribute("style")}else if(u==="target"&&H.value!=="_blank")m.removeAttribute("target");else if(u==="class"){const s=H.value.split(/\s+/).filter(o=>/^lat-/.test(o)||/^dfc-/.test(o)).join(" ");s?m.setAttribute("class",s):m.removeAttribute("class")}}),g==="div"){const H=h.createElement("p");for([...m.attributes].forEach(u=>H.setAttribute(u.name,u.value));m.firstChild;)H.appendChild(m.firstChild);m.replaceWith(H)}if(g==="img"&&!m.getAttribute("src")&&m.remove(),g==="a")if(m.getAttribute("href"))m.getAttribute("target")==="_blank"&&m.setAttribute("rel","noopener noreferrer");else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}})};return f(i.content),i.innerHTML}}),Ne("packages/dom/src/themeof.js",function(N,Z){"use strict";Object.defineProperty(N,"themeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"carryTheme",{enumerable:!0,get:function(){return R}});function e($){for(let q=$;q;q=q.parentNode){if(typeof q.getAttribute!="function")continue;const k=q.getAttribute("data-theme");if(k)return k}return null}function R($,q){if(!$||typeof $.setAttribute!="function")return;const k=e(q);k?$.setAttribute("data-theme",k):typeof $.removeAttribute=="function"&&$.removeAttribute("data-theme")}}),Ne("packages/modules/form/controls/popup-layer.js",function(N,Z){"use strict";Object.defineProperty(N,"getLayerHost",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"placeAgainstField",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"openInLayer",{enumerable:!0,get:function(){return f}});const R=Z("packages/dom/src/themeof.js").carryTheme,$="lat-form__layer-host",q=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-form-surface","--lattice-form-field-bg","--lattice-form-field-border","--lattice-form-field-fg","--lattice-form-focus-ring","--lattice-form-placeholder","--lattice-form-label-fg","--lattice-form-help-fg","--lattice-form-invalid","--lattice-form-popup-bg","--lattice-form-popup-shadow","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border","--lattice-popup-z"]),k="2147483647";function P(v){return typeof v.showPopover=="function"&&typeof v.hidePopover=="function"}function j(v){if(v.style.zIndex=`var(--lattice-popup-z, ${k})`,!!P(v)){v.setAttribute("popover","manual"),v.style.margin="0",v.style.inset="auto";try{v.showPopover()}catch{}}}function C(v){if(P(v)&&v.hasAttribute("popover")){try{v.hidePopover()}catch{}v.removeAttribute("popover")}v.style.zIndex="",v.style.margin="",v.style.inset=""}function S(v,m){const g=m.ownerDocument&&m.ownerDocument.defaultView;if(!g||typeof g.getComputedStyle!="function")return;const H=g.getComputedStyle(m);for(const u of q){const s=H.getPropertyValue(u);s&&v.style.setProperty(u,s)}}const x=new WeakMap,h=new WeakMap,n=new WeakMap;function c(v){for(let m=v;m;m=m.parentNode){if(typeof m.getAttribute!="function")continue;if((typeof m.tagName=="string"?m.tagName.toUpperCase():"")==="DIALOG"&&m.getAttribute("open")!==null)return m}return null}function b(v,m){const g=m?c(m):null;if(g){const r=h.get(g);if(r&&r.parentNode===g)return r;let l=null;for(const T of g.childNodes||[])if(T&&typeof T.className=="string"&&T.className.split(/\s+/).includes($)){l=T;break}const d=l||v.createElement("div");return l||(d.className=$,g.appendChild(d)),h.set(g,d),d}const H=x.get(v);if(H&&H.isConnected!==!1)return H;const u=v.body||v.documentElement,s=u&&typeof u.querySelector=="function"?u.querySelector(`.${$}`):null,o=s||v.createElement("div");return s||(o.className=$,u.appendChild(o)),x.set(v,o),o}function _(v,m,g){return v.bottom<=0||v.top>=g||v.right<=0||v.left>=m}function t(v,m,g={}){const H=m.ownerDocument,u=H&&H.defaultView,s=u?u.innerWidth:0,o=u?u.innerHeight:0;v.style.position="fixed";const r=m.getBoundingClientRect();if(_(r,s,o))return!0;v.style.marginTop="0",v.style.marginBottom="0",v.style.marginLeft="0",v.style.marginRight="0",g.matchWidth===!1?v.style.minWidth=`${r.width}px`:v.style.width=`${r.width}px`;let l=r.left;const d=v.offsetWidth||r.width;s&&l+d>s&&(l=Math.max(0,s-d)),v.style.left=`${l}px`,v.style.right="auto";const T=v.offsetHeight||0;return o-r.bottom<T+4&&r.top>T+4?(v.style.top="auto",v.style.bottom=`${Math.max(0,o-r.top)}px`,g.aboveClass&&v.classList.add(g.aboveClass)):(v.style.bottom="auto",v.style.top=`${r.bottom}px`,g.aboveClass&&v.classList.remove(g.aboveClass)),!1}function a(v,m){let g=n.get(v);if(!g){const H=v.defaultView;g={entries:new Set,onTrack(){for(const u of[...g.entries])u.reposition()}},H&&(H.addEventListener("scroll",g.onTrack,!0),H.addEventListener("resize",g.onTrack)),n.set(v,g)}g.entries.add(m)}function i(v,m){const g=n.get(v);if(g&&(g.entries.delete(m),g.entries.size===0)){const H=v.defaultView;H&&(H.removeEventListener("scroll",g.onTrack,!0),H.removeEventListener("resize",g.onTrack)),n.delete(v)}}function f(v,m,g={}){const H=m.ownerDocument,u=b(H,m),s=v.parentNode,o=v.nextSibling;let r=!1;u.appendChild(v),R(v,m),S(v,m),S(u,m),j(v);const l={reposition(){if(r)return;t(v,m,g)&&typeof g.onOffscreen=="function"&&g.onOffscreen()},close(){r||(r=!0,i(H,l),C(v),s&&(o&&o.parentNode===s?s.insertBefore(v,o):s.appendChild(v)))}};return a(H,l),l.reposition(),l}}),Ne("packages/modules/form/controls/combo.js",function(N,Z){"use strict";Object.defineProperty(N,"adornmentStylesheet",{enumerable:!0,get:function(){return r}}),Object.defineProperty(N,"injectAdornmentStyles",{enumerable:!0,get:function(){return l}}),Object.defineProperty(N,"isImageUrl",{enumerable:!0,get:function(){return d}}),Object.defineProperty(N,"initialsFor",{enumerable:!0,get:function(){return T}}),Object.defineProperty(N,"stableHash",{enumerable:!0,get:function(){return U}}),Object.defineProperty(N,"avatarColor",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"applyAvatarTint",{enumerable:!0,get:function(){return L}}),Object.defineProperty(N,"makeIcon",{enumerable:!0,get:function(){return y}}),Object.defineProperty(N,"renderIcon",{enumerable:!0,get:function(){return M}}),Object.defineProperty(N,"renderAvatar",{enumerable:!0,get:function(){return W}}),Object.defineProperty(N,"renderDot",{enumerable:!0,get:function(){return E}}),Object.defineProperty(N,"renderAdornment",{enumerable:!0,get:function(){return F}}),Object.defineProperty(N,"renderTemplateContent",{enumerable:!0,get:function(){return w}}),Object.defineProperty(N,"createCombo",{enumerable:!0,get:function(){return X}});const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/modules/form/messages.js").t,P=Z("packages/modules/form/ids.js").nextId,C=Z("packages/modules/form/styles.js").injectStyles,x=Z("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,n=Z("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,c=Z("packages/modules/form/controls/field-icon.js"),b=c.makeFieldIcon,_=c.injectFieldIconStyles,a=Z("packages/modules/form/controls/popup-layer.js").openInLayer,i=250,f="lat-combo__popup--above",v=20,m=48,g="data-lattice-combo-chip-row-styles";function H(){return`
1437
+ `.trim()}function z(A){const j=A&&A.documentElement;if(!j||j.getAttribute(X))return;j.setAttribute(X,"1");const k=A.createElement("style");k.textContent=C(),(A.head||A.body||j).appendChild(k)}function P(A,j){const k=B[j];if(!k)return null;const g=A.createElementNS(S,"svg");g.setAttribute("class","lat-form__field-icon"),g.setAttribute("viewBox",k.viewBox||"0 0 16 16"),g.setAttribute("aria-hidden","true"),g.setAttribute("focusable","false");const n=k.paint==="stroke";for(const u of k.paths||[]){const b=A.createElementNS(S,"path");b.setAttribute("d",u),n?(b.setAttribute("fill","none"),b.setAttribute("stroke","currentColor"),b.setAttribute("stroke-width","1.5"),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")):b.setAttribute("fill","currentColor"),g.appendChild(b)}return g}}),Ne("packages/modules/form/messages.js",function(N,Z){"use strict";Object.defineProperty(N,"FALLBACK_EN",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"t",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"createTranslator",{enumerable:!0,get:function(){return z}});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.togglegroup":"Options","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.clear":"Clear selection","form.time.open":"Open time picker","form.time.close":"Close","form.time.save":"Save","form.time.am":"AM","form.time.pm":"PM","form.time.invalid":"Enter a valid time.","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","form.avatar.placeholder":"Add a photo","form.avatar.choose":"Choose a photo","form.avatar.remove":"Remove photo","form.avatar.rejected.size":"Photo is larger than {size}","form.avatar.rejected.type":"Photo type not allowed","form.avatar.uploadFailed":"Upload failed"}),B=Object.freeze({...e});function S(P,A={}){const j=e[P];return j===void 0?P:j.replace(/\{(\w+)\}/g,(k,g)=>A[g]===void 0?k:String(A[g]))}const X={t(P,A={}){return S(P,A)}};function C(P,A={}){return X.t(P,A)}function z(P){return{t(A,j={}){const k=P&&typeof P.t=="function"?P.t(A,j):A;return k===A?S(A,j):k}}}}),Ne("packages/dom/src/editors/sanitize-richtext.js",function(N,Z){"use strict";Object.defineProperty(N,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"escapeHtml",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"sanitizeRichText",{enumerable:!0,get:function(){return k}});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"]},B={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$/},S=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),X=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],C=/^(data:image\/|https?:\/\/|\/)/i,z={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function P(g){const n=g==null?"":String(g);return/[&<>"']/.test(n)?n.replace(/[&<>"']/g,u=>z[u]):n}function A(g,n){const u=String(g).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(n&&u.startsWith("data:image/")):!1}function j(g){if(g.__latRtCanParse!==void 0)return g.__latRtCanParse;try{const n=g.createElement("template");n.innerHTML="<p>x</p>";const u=!!(n.content&&n.content.childNodes&&n.content.childNodes.length);return g.__latRtCanParse=u,u}catch{return g.__latRtCanParse=!1,!1}}function k(g,n,u=e,b={}){const v=u||e,t=String(n??"");if(!j(g))return P(t.replace(/<[^>]*>/g,""));const a=b.imageSrcPattern||C,s=g.createElement("template");s.innerHTML=t;const p=y=>{[...y.childNodes].forEach(m=>{if(m.nodeType===8){m.remove();return}if(m.nodeType!==1)return;const h=m.tagName.toLowerCase();if(S.has(h)){m.remove();return}if(p(m),!v[h]){const R=X.includes(h)?g.createElement("p"):null;if(R){for(;m.firstChild;)R.appendChild(m.firstChild);m.replaceWith(R)}else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}return}if([...m.attributes].forEach(R=>{const d=R.name.toLowerCase();if(/^on/i.test(d)||d==="srcdoc"||d==="id"||d==="name"){m.removeAttribute(R.name);return}if(!v[h].includes(d)){m.removeAttribute(R.name);return}if(d==="href"){const c=R.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(c)||A(c))&&m.removeAttribute("href")}else if(d==="src"){const c=R.value.trim();(!a.test(c)||A(c,!0))&&m.removeAttribute("src")}else if(d==="style"){if(b.stripStyles&&h!=="img"){m.removeAttribute("style");return}const c=R.value.split(";").map(i=>i.trim()).filter(Boolean).map(i=>{const r=i.indexOf(":");return[i.slice(0,r).trim().toLowerCase(),i.slice(r+1).trim()]}).filter(([i,r])=>B[i]&&B[i].test(r)).map(([i,r])=>`${i}: ${r}`).join("; ");c?m.setAttribute("style",c):m.removeAttribute("style")}else if(d==="target"&&R.value!=="_blank")m.removeAttribute("target");else if(d==="class"){const c=R.value.split(/\s+/).filter(i=>/^lat-/.test(i)||/^dfc-/.test(i)).join(" ");c?m.setAttribute("class",c):m.removeAttribute("class")}}),h==="div"){const R=g.createElement("p");for([...m.attributes].forEach(d=>R.setAttribute(d.name,d.value));m.firstChild;)R.appendChild(m.firstChild);m.replaceWith(R)}if(h==="img"&&!m.getAttribute("src")&&m.remove(),h==="a")if(m.getAttribute("href"))m.getAttribute("target")==="_blank"&&m.setAttribute("rel","noopener noreferrer");else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}})};return p(s.content),s.innerHTML}}),Ne("packages/dom/src/themeof.js",function(N,Z){"use strict";Object.defineProperty(N,"themeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"carryTheme",{enumerable:!0,get:function(){return B}});function e(S){for(let X=S;X;X=X.parentNode){if(typeof X.getAttribute!="function")continue;const C=X.getAttribute("data-theme");if(C)return C}return null}function B(S,X){if(!S||typeof S.setAttribute!="function")return;const C=e(X);C?S.setAttribute("data-theme",C):typeof S.removeAttribute=="function"&&S.removeAttribute("data-theme")}}),Ne("packages/modules/form/controls/popup-layer.js",function(N,Z){"use strict";Object.defineProperty(N,"getLayerHost",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"placeAgainstField",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"openInLayer",{enumerable:!0,get:function(){return p}});const B=Z("packages/dom/src/themeof.js").carryTheme,S="lat-form__layer-host",X=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-form-surface","--lattice-form-field-bg","--lattice-form-field-border","--lattice-form-field-fg","--lattice-form-focus-ring","--lattice-form-placeholder","--lattice-form-label-fg","--lattice-form-help-fg","--lattice-form-invalid","--lattice-form-popup-bg","--lattice-form-popup-shadow","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border","--lattice-popup-z"]),C="2147483647";function z(y){return typeof y.showPopover=="function"&&typeof y.hidePopover=="function"}function P(y){if(y.style.zIndex=`var(--lattice-popup-z, ${C})`,!!z(y)){y.setAttribute("popover","manual"),y.style.margin="0",y.style.inset="auto";try{y.showPopover()}catch{}}}function A(y){if(z(y)&&y.hasAttribute("popover")){try{y.hidePopover()}catch{}y.removeAttribute("popover")}y.style.zIndex="",y.style.margin="",y.style.inset=""}function j(y,m){const h=m.ownerDocument&&m.ownerDocument.defaultView;if(!h||typeof h.getComputedStyle!="function")return;const R=h.getComputedStyle(m);for(const d of X){const c=R.getPropertyValue(d);c&&y.style.setProperty(d,c)}}const k=new WeakMap,g=new WeakMap,n=new WeakMap;function u(y){for(let m=y;m;m=m.parentNode){if(typeof m.getAttribute!="function")continue;if((typeof m.tagName=="string"?m.tagName.toUpperCase():"")==="DIALOG"&&m.getAttribute("open")!==null)return m}return null}function b(y,m){const h=m?u(m):null;if(h){const r=g.get(h);if(r&&r.parentNode===h)return r;let l=null;for(const T of h.childNodes||[])if(T&&typeof T.className=="string"&&T.className.split(/\s+/).includes(S)){l=T;break}const f=l||y.createElement("div");return l||(f.className=S,h.appendChild(f)),g.set(h,f),f}const R=k.get(y);if(R&&R.isConnected!==!1)return R;const d=y.body||y.documentElement,c=d&&typeof d.querySelector=="function"?d.querySelector(`.${S}`):null,i=c||y.createElement("div");return c||(i.className=S,d.appendChild(i)),k.set(y,i),i}function v(y,m,h){return y.bottom<=0||y.top>=h||y.right<=0||y.left>=m}function t(y,m,h={}){const R=m.ownerDocument,d=R&&R.defaultView,c=d?d.innerWidth:0,i=d?d.innerHeight:0;y.style.position="fixed";const r=m.getBoundingClientRect();if(v(r,c,i))return!0;y.style.marginTop="0",y.style.marginBottom="0",y.style.marginLeft="0",y.style.marginRight="0",h.matchWidth===!1?y.style.minWidth=`${r.width}px`:y.style.width=`${r.width}px`;let l=r.left;const f=y.offsetWidth||r.width;c&&l+f>c&&(l=Math.max(0,c-f)),y.style.left=`${l}px`,y.style.right="auto";const T=y.offsetHeight||0;return i-r.bottom<T+4&&r.top>T+4?(y.style.top="auto",y.style.bottom=`${Math.max(0,i-r.top)}px`,h.aboveClass&&y.classList.add(h.aboveClass)):(y.style.bottom="auto",y.style.top=`${r.bottom}px`,h.aboveClass&&y.classList.remove(h.aboveClass)),!1}function a(y,m,h){let R=n.get(y);if(!R){const d=y.defaultView;R={entries:new Set,onTrack(){for(const c of[...R.entries])c.reposition()},ro:typeof ResizeObserver=="function"?new ResizeObserver(()=>R.onTrack()):null},d&&(d.addEventListener("scroll",R.onTrack,!0),d.addEventListener("resize",R.onTrack)),n.set(y,R)}R.entries.add(m),R.ro&&R.ro.observe(h)}function s(y,m,h){const R=n.get(y);if(R&&(R.entries.delete(m),R.ro&&R.ro.unobserve(h),R.entries.size===0)){const d=y.defaultView;d&&(d.removeEventListener("scroll",R.onTrack,!0),d.removeEventListener("resize",R.onTrack)),R.ro&&R.ro.disconnect(),n.delete(y)}}function p(y,m,h={}){const R=m.ownerDocument,d=b(R,m),c=y.parentNode,i=y.nextSibling;let r=!1;d.appendChild(y),B(y,m),j(y,m),j(d,m),P(y);const l={reposition(){if(r)return;t(y,m,h)&&typeof h.onOffscreen=="function"&&h.onOffscreen()},close(){r||(r=!0,s(R,l,m),A(y),c&&(i&&i.parentNode===c?c.insertBefore(y,i):c.appendChild(y)))}};return a(R,l,m),l.reposition(),l}}),Ne("packages/modules/form/controls/combo.js",function(N,Z){"use strict";Object.defineProperty(N,"adornmentStylesheet",{enumerable:!0,get:function(){return r}}),Object.defineProperty(N,"injectAdornmentStyles",{enumerable:!0,get:function(){return l}}),Object.defineProperty(N,"isImageUrl",{enumerable:!0,get:function(){return f}}),Object.defineProperty(N,"initialsFor",{enumerable:!0,get:function(){return T}}),Object.defineProperty(N,"stableHash",{enumerable:!0,get:function(){return V}}),Object.defineProperty(N,"avatarColor",{enumerable:!0,get:function(){return D}}),Object.defineProperty(N,"applyAvatarTint",{enumerable:!0,get:function(){return M}}),Object.defineProperty(N,"makeIcon",{enumerable:!0,get:function(){return w}}),Object.defineProperty(N,"renderIcon",{enumerable:!0,get:function(){return I}}),Object.defineProperty(N,"renderAvatar",{enumerable:!0,get:function(){return W}}),Object.defineProperty(N,"renderDot",{enumerable:!0,get:function(){return E}}),Object.defineProperty(N,"renderAdornment",{enumerable:!0,get:function(){return H}}),Object.defineProperty(N,"renderTemplateContent",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"createCombo",{enumerable:!0,get:function(){return F}});const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/modules/form/messages.js").t,z=Z("packages/modules/form/ids.js").nextId,A=Z("packages/modules/form/styles.js").injectStyles,k=Z("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,n=Z("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,u=Z("packages/modules/form/controls/field-icon.js"),b=u.makeFieldIcon,v=u.injectFieldIconStyles,a=Z("packages/modules/form/controls/popup-layer.js").openInLayer,s=250,p="lat-combo__popup--above",y=20,m=48,h="data-lattice-combo-chip-row-styles";function R(){return`
1408
1438
  .lat-combo__control{ position:relative; }
1409
1439
  .lat-combo__chip-row{
1410
1440
  display:flex;flex-wrap:wrap;align-items:flex-start;
@@ -1419,7 +1449,7 @@
1419
1449
  .lat-combo[data-chip-placement] .lat-combo__summary{
1420
1450
  flex:0 0 auto;margin-top:calc(var(--lattice-space)/4);
1421
1451
  }
1422
- `.trim()}function u(p){const I=p&&p.documentElement;if(!I||I.getAttribute(g))return;I.setAttribute(g,"1");const Q=p.createElement("style");Q.textContent=H(),(p.head||p.body||I).appendChild(Q)}const s="data-lattice-form-adornment-styles",o="http://www.w3.org/2000/svg";function r(){return`
1452
+ `.trim()}function d(o){const L=o&&o.documentElement;if(!L||L.getAttribute(h))return;L.setAttribute(h,"1");const Y=o.createElement("style");Y.textContent=R(),(o.head||o.body||L).appendChild(Y)}const c="data-lattice-form-adornment-styles",i="http://www.w3.org/2000/svg";function r(){return`
1423
1453
  .lat-combo__value{
1424
1454
  flex:0 0 auto; display:inline-flex; align-items:center; min-width:0;
1425
1455
  gap:calc(var(--lattice-space) / 2);
@@ -1458,17 +1488,17 @@
1458
1488
  .lat-select__value{ display:flex; align-items:center; gap:calc(var(--lattice-space) / 2); }
1459
1489
  .lat-select__value[data-placeholder='true']{ display:block; }
1460
1490
  .lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
1461
- `.trim()}function l(p){const I=p&&p.documentElement;if(!I||I.getAttribute(s))return;I.setAttribute(s,"1");const Q=p.createElement("style");Q.textContent=r(),(p.head||p.body||I).appendChild(Q)}function d(p){return/^(https?:|data:image\/|\/)/i.test(p)}function T(p){const I=String(p??"").trim();if(!I)return"";const Q=I.split(/\s+/);return Q.length>=2?(Q[0][0]+Q[1][0]).toUpperCase():I.slice(0,2).toUpperCase()}function U(p){let I=5381;const Q=String(p??"");for(let re=0;re<Q.length;re++)I=(I<<5)+I+Q.charCodeAt(re)>>>0;return I}function z(p){if(p&&p.color!=null&&String(p.color)!=="")return String(p.color);const I=p&&p.label!=null?String(p.label):p&&p.value!=null?String(p.value):"";return`hsl(${U(I)%360}, 62%, 45%)`}function L(p,I){p.style.background=z(I),p.style.color="#fff"}function y(p,I){const Q=x[I];if(!Q)return null;const re=p.createElementNS(o,"svg");re.setAttribute("class","lat-combo__icon"),re.setAttribute("viewBox",Q.viewBox||"0 0 16 16"),re.setAttribute("aria-hidden","true"),re.setAttribute("focusable","false");const me=Q.paint==="stroke";for(const be of Q.paths||[]){const ke=p.createElementNS(o,"path");ke.setAttribute("d",be),me?(ke.setAttribute("fill","none"),ke.setAttribute("stroke","currentColor"),ke.setAttribute("stroke-width","1.5"),ke.setAttribute("stroke-linecap","round"),ke.setAttribute("stroke-linejoin","round")):ke.setAttribute("fill","currentColor"),re.appendChild(ke)}return re}function M(p,I,Q){if(I==null||I==="")return null;let re;if(I.nodeType)re=I.cloneNode(!0),re.setAttribute&&re.setAttribute("aria-hidden","true");else{const me=String(I),be=y(p,me);be?re=be:(re=p.createElement("span"),re.className="lat-combo__icon lat-combo__icon--glyph",re.setAttribute("aria-hidden","true"),re.textContent=me.slice(0,2))}return Q!=null&&String(Q)!==""&&re&&re.style&&(re.style.color=String(Q)),re}function W(p,I){const Q=p.createElement("span");Q.className="lat-combo__avatar",Q.setAttribute("aria-hidden","true");const re=String(I.avatar);if(d(re)){const me=p.createElement("img");return me.className="lat-combo__avatar-img",me.alt="",me.src=re,me.addEventListener("error",()=>{for(;Q.firstChild;)Q.removeChild(Q.firstChild);Q.classList.add("lat-combo__avatar--initials"),Q.textContent=T(I.label),L(Q,I)}),Q.appendChild(me),Q}return Q.classList.add("lat-combo__avatar--initials"),Q.textContent=re.slice(0,2),L(Q,I),Q}const B={r:255,g:255,b:255},ne={r:20,g:24,b:28},Ae=3;function we(p){const I=p.split(/[,/\s]+/).filter(Boolean).map(Number);return I.length<3||I.some(Q=>Number.isNaN(Q))?null:{r:I[0],g:I[1],b:I[2]}}function ce(p,I){const Q=String(I).trim();if(!Q)return null;if(p&&p.createElement)try{const me=p.defaultView;if(me&&me.getComputedStyle){const be=p.createElement("span");be.style.color=Q;const ke=/rgba?\(([^)]+)\)/.exec(me.getComputedStyle(be).color||"");if(ke)return we(ke[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(Q)){let me=Q.slice(1);return(me.length===3||me.length===4)&&(me=me.split("").map(be=>be+be).join("")),{r:parseInt(me.slice(0,2),16),g:parseInt(me.slice(2,4),16),b:parseInt(me.slice(4,6),16)}}const re=/rgba?\(([^)]+)\)/.exec(Q);return re?we(re[1]):null}function A(p){const I=Q=>{const re=Q/255;return re<=.03928?re/12.92:((re+.055)/1.055)**2.4};return .2126*I(p.r)+.7152*I(p.g)+.0722*I(p.b)}function oe(p,I){const Q=A(p),re=A(I),me=Math.max(Q,re),be=Math.min(Q,re);return(me+.05)/(be+.05)}function te(p,I){const Q=ce(p,I);return Q?oe(Q,B)<Ae||oe(Q,ne)<Ae:!0}function E(p,I){const Q=p.createElement("span");Q.className="lat-combo__dot",Q.setAttribute("aria-hidden","true");const re=String(I.dot);return Q.style.background=re,te(p,re)&&Q.setAttribute("data-ring","true"),Q}function F(p,I){const Q=I&&I.dot;if(Q!=null&&Q!=="")return E(p,I);const re=I&&I.icon;if(re!=null&&re!=="")return M(p,re,I.color);const me=I&&I.avatar;return me!=null&&me!==""?W(p,I):null}function w(p,I,Q){if(typeof Q!="function")return null;const re=Q(I);if(re==null||re===!1)return null;if(re.nodeType)return re.cloneNode(!0);const me=p.createElement("span");me.className="lat-combo__template";const be=String(re);return be.includes("<")?me.innerHTML=n(p,be):me.textContent=be,me}function G(p){return p!=null&&typeof p=="object"?p.value:p}function Y(p){return p==null?"":typeof p!="object"?String(p):p.label!=null?String(p.label):p.title!=null?String(p.title):p.value==null?"":String(p.value)}function ie(p){return p==null||typeof p!="object"?null:p.description!=null?String(p.description):p.subtitle!=null?String(p.subtitle):null}function D(p){return ie(p)!=null||p!=null&&typeof p=="object"&&(p.avatar!=null||p.icon!=null)}function J(p){const I=p!=null&&typeof p=="object"?p:{};return{value:G(p),label:Y(p),description:ie(p),avatar:I.avatar,icon:I.icon,color:I.color,dot:I.dot,disabled:I.disabled===!0}}function ae(p){if(Array.isArray(p))return{items:p,total:p.length,hasMore:!1};if(p&&typeof p=="object"){const I=Array.isArray(p.items)?p.items:[];return{items:I,total:typeof p.total=="number"?p.total:I.length,hasMore:p.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function V(p,I){return p===I?!0:p!=null&&I!=null&&String(p)===String(I)}function se(p,I,Q={}){const re=p&&p.defaultView;return re&&re.Event?new re.Event(I,Q):{type:I,bubbles:Q.bubbles!==!1,cancelable:Q.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function X(p,I={}){const Q=I.doc||p&&p.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;Q&&(C(Q),l(Q),_(Q));const re=typeof I.t=="function"?I.t:q,me=I.multiple===!0,be=me&&["above","below"].includes(I.chipPlacement)?I.chipPlacement:"inside";Q&&be!=="inside"&&u(Q);const ke=typeof I.debounce=="number"&&I.debounce>=0?I.debounce:i,Le=typeof I.pageSize=="number"&&I.pageSize>0?I.pageSize:v,Se=I.selectAll===!0,je=me?Array.isArray(I.value)?I.value:I.value==null?[]:[I.value]:I.value==null?null:I.value,O=Q.createElement("div");O.className="lat-combo",me&&O.setAttribute("data-multiple","true"),be!=="inside"&&O.setAttribute("data-chip-placement",be),I.inForm||(O.setAttribute("data-lattice-standalone","true"),O.setAttribute("data-density",["compact","standard","comfortable"].includes(I.density)?I.density:"standard"));const ee=Q.createElement("div");ee.className="lat-combo__control";const de=Q.createElement("div");de.className="lat-combo__chips";const K=Q.createElement("span");K.className="lat-combo__summary",K.hidden=!0;const pe=Q.createElement("div");pe.className="lat-combo__chip-row",pe.setAttribute("role","group"),pe.hidden=!0;const Ce=be==="inside"?de:pe;typeof I.maxHeight=="number"&&(Ce.style.maxHeight=`${I.maxHeight}px`);const ye=Q.createElement("span");ye.className="lat-combo__value",ye.setAttribute("aria-hidden","true"),ye.hidden=!0;const ve=Q.createElement("input");ve.className="lat-combo__input",ve.type="text",ve.setAttribute("role","combobox"),ve.setAttribute("aria-autocomplete","list"),ve.setAttribute("aria-haspopup","listbox"),me&&ve.setAttribute("aria-multiselectable","true"),I.placeholder!=null&&(ve.placeholder=String(I.placeholder)),I.inForm&&I.ariaLabel!=null&&ve.setAttribute("aria-label",String(I.ariaLabel));const Ie=Q.createElement("button");Ie.type="button",Ie.className="lat-combo__toggle",Ie.setAttribute("aria-label",re("form.combo.toggle")),Ie.setAttribute("aria-haspopup","listbox");const He=b(Q,"chevronDown");He&&Ie.appendChild(He);const Ee=Q.createElement("button");Ee.type="button",Ee.className="lat-combo__clear",Ee.setAttribute("aria-label",re("form.combo.clear")),Ee.hidden=!0;const De=b(Q,"close");De&&Ee.appendChild(De);const ge=!me&&I.clearable===!0,Re=Q.createElement("div");Re.className="lat-combo__popup lat-combo",Re.hidden=!0;const Te=Q.createElement("div");Te.className="lat-combo__list",Te.setAttribute("role","listbox");const Ge=Q.createElement("div");Ge.className="lat-combo__spacer",Te.appendChild(Ge);const Ke=Q.createElement("div");Ke.className="lat-combo__status",Ke.setAttribute("role","status"),Ke.setAttribute("aria-live","polite");const We=Q.createElement("div");We.className="lat-combo__option lat-combo__option--create",We.setAttribute("role","option"),We.hidden=!0,Te.insertBefore(We,Ge);const fe=Q.createElement("div");fe.className="lat-combo__empty",fe.setAttribute("role","presentation"),fe.setAttribute("aria-live","polite"),fe.hidden=!0,Te.insertBefore(fe,Ge),Re.appendChild(Te),Re.appendChild(Ke),ee.appendChild(Re),be!=="inside"?(ee.appendChild(ve),ee.appendChild(Ie),pe.appendChild(de),pe.appendChild(K),be==="above"&&O.appendChild(pe),O.appendChild(ee),be==="below"&&O.appendChild(pe)):(ee.appendChild(de),ee.appendChild(K),ee.appendChild(ye),ee.appendChild(ve),ge&&ee.appendChild(Ee),ee.appendChild(Ie),O.appendChild(ee));const Me=P("lat-combo-lb");Te.id=Me,ve.setAttribute("aria-controls",Me);let he=[],$e=[];const ot=new Map;let Ye=0,Qe=0,pt=!1,rt=!1,ut=!1,ct="",at=!1,tt=-1,dt=null,mt=0,nt=null;const jt=new Map;let bt=Array.isArray(I.options)?I.options:[];const ft=[],lt=[];let gt=0,Ct=0;const Pt=[];let ht=!1,_t=null;function st(ue,Oe,ze){ue.addEventListener(Oe,ze),Pt.push(()=>ue.removeEventListener(Oe,ze))}function it(ue){const Oe=ot.get(String(ue));if(Oe)return Oe;if(ue!=null){for(const ze of ot.values())if(V(ze.value,ue))return ze}return null}function le(ue){const Oe=it(ue);return Oe?Oe.label:ue==null?"":String(ue)}function _e(ue){ue.value!=null&&ot.set(String(ue.value),ue)}function xe(ue){if(typeof I.resolveLabels!="function")return;const Oe=ue.filter(Xe=>Xe!=null&&!it(Xe));if(Oe.length===0)return;const ze=I.resolveLabels(Oe),Fe=Xe=>{if(!(ht||!Array.isArray(Xe))){for(const Je of Xe){const Ue=J(Je);Ue.value!=null&&_e(Ue)}$e=$e.map(Je=>it(Je.value)||Je),yt(),Dt()}};ze&&typeof ze.then=="function"?ze.then(Fe):Fe(ze)}function Pe(){p.dispatchEvent(se(Q,"change",{bubbles:!0}))}function Ze(){return me?$e.map(ue=>ue.value):$e.length?$e[0].value:null}function Ve(ue){let Oe;if(me)Oe=Array.isArray(ue)?ue:ue==null?[]:[ue];else{const Fe=Array.isArray(ue)?ue.length?ue[0]:null:ue;Oe=Fe==null?[]:[Fe]}const ze=Oe.filter(Fe=>Fe!=null&&(Fe!==""||it(Fe)!=null));$e=ze.map(Fe=>it(Fe)||{value:Fe,label:Fe==null?"":String(Fe),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),xe(ze),yt(),At(),St()}function Be(){return I.readOnly===!0}function qe(){$e.length!==0&&($e=[],yt(),At(),St(),Lt(),Dt(),Pe())}function xt(ue){const Oe=Q.createElement("span");Oe.className="lat-combo__chip",Oe.dataset.value=String(ue.value);const ze=w(Q,ue,I.selectedTemplate);if(ze){const Fe=Q.createElement("span");Fe.className="lat-combo__chip-label",Fe.appendChild(ze),Oe.appendChild(Fe)}else{const Fe=F(Q,ue);Fe&&Oe.appendChild(Fe);const Xe=Q.createElement("span");Xe.className="lat-combo__chip-label",Xe.textContent=le(ue.value),Oe.appendChild(Xe)}if(!ue.disabled&&!Be()){const Fe=Q.createElement("button");Fe.type="button",Fe.className="lat-combo__chip-remove",Fe.setAttribute("aria-label",re("form.combo.remove",{label:le(ue.value)})),Fe.textContent="×",st(Fe,"click",Je=>{Je.stopPropagation(),It(ue.value)}),Oe.appendChild(Fe)}return Oe}function Lt(){me||(ve.value=$e.length?le($e[0].value):"")}function Dt(){if(me){ye.hidden=!0;return}for(;ye.firstChild;)ye.removeChild(ye.firstChild);if($e.length===0){ye.hidden=!0;return}const ue=$e[0],ze=w(Q,ue,I.selectedTemplate)||F(Q,ue);ze?(ye.appendChild(ze),ye.hidden=!1):ye.hidden=!0}function er(ue){const Oe=re("form.combo.selected",{count:ue});return Oe==="form.combo.selected"?`Selected: ${ue}`:Oe}function yt(){for(;de.firstChild;)de.removeChild(de.firstChild);if(me){for(const ue of $e)de.appendChild(xt(ue));de.hidden=$e.length===0}else de.hidden=!0;be!=="inside"&&(pe.hidden=!me||$e.length===0,pe.setAttribute("aria-label",er($e.length))),Lt(),Dt(),tr()}function tr(){if(!me||$e.length===0){K.hidden=!0;return}const ue=Ce.getBoundingClientRect().bottom;let Oe=0;const ze=[...de.children];for(const Fe of ze)Fe.getBoundingClientRect().top>=ue-1&&(Oe+=1);Oe>0?(K.hidden=!1,K.textContent=re("form.combo.more",{count:Oe})):K.hidden=!0}function It(ue){if(Be())return;const Oe=$e.length;$e=$e.filter(ze=>!V(ze.value,ue)),$e.length!==Oe&&(yt(),At(),St(),Pe())}function Rt(ue){if(Be())return;const Oe=it(ue)||{value:ue,label:ue==null?"":String(ue),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(_e(Oe),me){if($e.some(ze=>V(ze.value,ue)))return;$e=[...$e,Oe]}else{if($e.length&&V($e[0].value,ue))return;$e=[Oe]}yt(),At(),St(),Pe()}function rr(){if(Be())return;const ue=he.filter(Oe=>!Oe.disabled).map(Oe=>({...Oe}));if(!(ue.length===0&&$e.length===0)){for(const Oe of ue)_e(Oe);$e=ue,yt(),At(),St(),Pe()}}function Wt(){return he.length>0&&he.every(ue=>$e.some(Oe=>V(Oe.value,ue.value)))}function At(){const ue=O.querySelector(".lat-combo__select-all");if(!ue)return;const Oe=Wt();ue.setAttribute("aria-selected",Oe?"true":"false"),ue.textContent=re("form.combo.selectAll")}function $t(){at||ht||I.disabled||(at=!0,Re.hidden=!1,ve.setAttribute("aria-expanded","true"),Ie.setAttribute("aria-expanded","true"),_t=a(Re,ee,{aboveClass:f,onOffscreen:vt}),sr(),he.length===0&&I.load&&!rt&&!ut?Ot(0):Nt())}function vt(){at&&(at=!1,Re.hidden=!0,Re.classList.remove(f),_t&&(_t.close(),_t=null),ve.setAttribute("aria-expanded","false"),Ie.setAttribute("aria-expanded","false"),ve.removeAttribute("aria-activedescendant"))}function nr(){ht||(ve.focus(),$t())}function ar(){ve.blur()}function Et(ue){if(tt=ue,!at)return;const Oe=ue===-1?`${We.id}`:`${Me}-opt-${ue}`;ve.setAttribute("aria-activedescendant",Oe)}function Mt(ue){const Oe=We.hidden===!1,ze=Oe?-1:0,Fe=Math.max(ze,he.length-1);if(he.length===0&&!Oe){Et(-1);return}Et(Math.max(ze,Math.min(Fe,tt+ue))),Bt()}function Bt(){if(tt<0)return;const ue=lt[tt]||0,Oe=ue+(ft[tt]||Kt(he[tt]));ue<Ct?Te.scrollTop=ue:Oe>Ct+gt&&(Te.scrollTop=Oe-gt)}function Kt(ue){return D(ue)?52:30}function Zt(ue){return`${Me}-opt-${ue}`}function or(ue,Oe){const ze=Q.createElement("div");ze.className="lat-combo__option",ze.setAttribute("role","option"),ze.id=Zt(Oe);const Fe=$e.some(Ue=>V(Ue.value,ue.value));ze.setAttribute("aria-selected",Fe?"true":"false"),ue.disabled&&ze.setAttribute("aria-disabled","true");const Xe=w(Q,ue,I.optionTemplate);if(Xe)ze.appendChild(Xe);else{const Ue=F(Q,ue);Ue&&ze.appendChild(Ue);const et=Q.createElement("span");et.className="lat-combo__text";const kt=Q.createElement("span");if(kt.className="lat-combo__title",kt.textContent=ue.label,et.appendChild(kt),ue.description!=null){const Ht=Q.createElement("span");Ht.className="lat-combo__subtitle",Ht.textContent=ue.description,et.appendChild(Ht)}ze.appendChild(et)}return st(ze,"click",Ue=>{Ue.stopPropagation(),Qt(Oe)}),ze}function ir(){const ue=I.newOptions&&!Be()&&ct.trim()!=="",Oe=he.some(ze=>V(ze.value,ct)||ze.label===ct);if(!ue||Oe){We.hidden=!0;return}We.hidden=!1,We.id=`${Me}-create`,We.textContent=re("form.combo.create",{query:ct}),tt===-1&&Et(-1)}function lr(){const ue=!rt&&!ut&&(typeof I.load=="function"||bt.length>0);fe.hidden=!ue,ue&&(fe.textContent=re("form.combo.noMatches"))}function Nt(){if(ir(),at&&(gt=Te.clientHeight||gt),he.length===0){for(Ge.style.height="0px";Ge.firstChild;)Ge.removeChild(Ge.firstChild);lr(),We.hidden!==!1&&(tt=-1,ve.removeAttribute("aria-activedescendant")),Tt(),_t&&_t.reposition();return}fe.hidden=!0;let ue=!1;for(let Ue=0;Ue<he.length;Ue++)ft[Ue]==null&&(ft[Ue]=Kt(he[Ue]));lt.length=0,lt[0]=0;for(let Ue=1;Ue<=he.length;Ue++)lt[Ue]=lt[Ue-1]+ft[Ue-1];const Oe=lt[he.length];Ge.style.height=`${Oe}px`;const ze=Ct,Fe=Ct+gt;let Xe=0;for(;Xe<he.length-1&&lt[Xe+1]<ze;)Xe+=1;let Je=Xe;for(;Je<he.length&&lt[Je]<Fe;)Je+=1;for(Je=Math.min(he.length,Je+2);Ge.firstChild;)Ge.removeChild(Ge.firstChild);for(let Ue=Xe;Ue<Je;Ue++){const et=or(he[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)`,Ge.appendChild(et)}for(let Ue=Xe;Ue<Je;Ue++){const et=Q.getElementById(Zt(Ue));if(!et)continue;const kt=et.getBoundingClientRect().height;kt>0&&Math.abs(kt-ft[Ue])>.5&&(ft[Ue]=kt,ue=!0)}if(ue){Nt();return}Tt(),_t&&_t.reposition()}function Tt(){for(;Ke.firstChild;)Ke.removeChild(Ke.firstChild);if(rt)Ke.textContent=re("form.combo.loading"),Ke.dataset.state="loading";else if(ut){Ke.textContent=re("form.combo.error"),Ke.dataset.state="error";const ue=Q.createElement("button");ue.type="button",ue.className="lat-combo__retry",ue.textContent=re("form.combo.retry"),st(ue,"click",ze=>{ze.stopPropagation(),Xt()}),Ke.appendChild(ue)}else he.length===0&&!I.load&&bt.length===0?Ke.textContent="":he.length===0?(Ke.textContent=re("form.combo.empty"),Ke.dataset.state="empty"):(Ke.textContent=re("form.combo.results",{count:Qe}),Ke.dataset.state="results")}function St(){const ue=`${Me}-opt-`;for(const Oe of Te.querySelectorAll('.lat-combo__option[role="option"]')){const ze=Oe.id||"";if(!ze.startsWith(ue))continue;const Fe=Number(ze.slice(ue.length));if(Number.isNaN(Fe))continue;const Xe=he[Fe];Xe&&Oe.setAttribute("aria-selected",$e.some(Je=>V(Je.value,Xe.value))?"true":"false")}At(),ge&&(Ee.hidden=$e.length===0||Be())}function sr(){gt=Te.clientHeight||240}function cr(){if(Se&&me){const ue=Q.createElement("div");ue.className="lat-combo__select-all",ue.setAttribute("role","option"),st(ue,"click",ze=>{ze.stopPropagation(),!Be()&&(Wt()?($e=[],yt(),St(),Pe()):rr())}),Re.insertBefore(ue,Te)}}function Ot(ue){if(ht)return;if(typeof I.load!="function"){const Je=ct.trim().toLowerCase(),Ue=bt.map(J).filter(et=>Je===""||et.label.toLowerCase().includes(Je));he=Ue,Qe=Ue.length,pt=!1,Ye=1,ft.length=0,lt.length=0;for(const et of he)_e(et);Nt();return}if(rt)return;rt=!0,ut=!1,mt+=1;const Oe=mt;dt&&dt.abort(),dt=new AbortController;const ze=dt.signal;Tt();let Fe;try{Fe=I.load({search:ct,page:ue,signal:ze,pageSize:Le})}catch{rt=!1,ut=!0,Tt();return}const Xe=Je=>{if(ht||Oe!==mt)return;rt=!1;const Ue=ae(Je),et=Ue.items.map(J);ue===0?(he=et,ft.length=0,lt.length=0,jt.set(ct,{items:et,total:Ue.total,hasMore:Ue.hasMore,nextPage:1})):he=he.concat(et),Qe=typeof Ue.total=="number"?Ue.total:he.length,pt=Ue.hasMore,Ye=ue+1;for(const kt of et)_e(kt);ft.length=he.length,Nt(),Yt()};Fe&&typeof Fe.then=="function"?Fe.then(Xe).catch(Je=>{ht||Oe!==mt||Je&&Je.name==="AbortError"||(rt=!1,ut=!0,Tt())}):Xe(Fe)}function Yt(){if(!pt||rt||!at)return;(lt[he.length]||0)<gt+m&&Ot(Ye)}function Xt(){ht||(nt&&(clearTimeout(nt),nt=null),dt&&dt.abort(),mt+=1,jt.delete(ct),he=[],Qe=0,pt=!1,rt=!1,ut=!1,Ye=0,ft.length=0,lt.length=0,tt=-1,Ot(0))}function ur(ue){if(ht||(bt=Array.isArray(ue)?ue:[],typeof I.load=="function"))return;Ot(0);const Oe=$e.length;$e=$e.filter(ze=>he.some(Fe=>V(Fe.value,ze.value))).map(ze=>it(ze.value)||ze),$e.length!==Oe?(yt(),At(),St(),Pe()):yt()}function dr(){return!me&&$e.length&&ve.value===le($e[0].value)?"":ve.value}function Jt(){me||(Lt(),ct!==""&&Ft())}function fr(){return me?!1:$e.length&&ve.value.trim()===""&&!Be()?(qe(),!0):(Jt(),!1)}function Ft(){ct=dr(),dt&&dt.abort(),mt+=1;const ue=jt.get(ct);if(ue&&typeof I.load=="function"){he=ue.items.map(J),Qe=ue.total,pt=ue.hasMore,Ye=ue.nextPage,rt=!1,ut=!1,ft.length=0,lt.length=0,tt=-1;for(const Oe of he)_e(Oe);Nt(),Yt();return}he=[],Qe=0,pt=!1,rt=!1,ut=!1,Ye=0,ft.length=0,lt.length=0,tt=-1,Ot(0)}function pr(){nt&&clearTimeout(nt),nt=setTimeout(()=>{nt=null,Ft()},ke)}function mr(ue){const Oe=We.hidden===!1,ze=he.length+(Oe?1:0);if(ue.key==="ArrowDown"){if(ue.preventDefault(),$t(),ze===0)return;tt===-1?Et(he.length?0:-1):Mt(1)}else if(ue.key==="ArrowUp"){if(ue.preventDefault(),!at){$t();return}if(tt===-1){he.length&&Et(0);return}Mt(-1)}else if(ue.key==="Home"){if(!at)return;ue.preventDefault(),Et(Oe?-1:0),Bt()}else if(ue.key==="End"){if(!at)return;ue.preventDefault(),Et(he.length-1),Bt()}else if(ue.key==="PageDown"){if(!at)return;ue.preventDefault(),Mt(Math.max(1,Math.floor(Math.max(gt,60)/30)))}else if(ue.key==="PageUp"){if(!at)return;ue.preventDefault(),Mt(-Math.max(1,Math.floor(Math.max(gt,60)/30)))}else if(ue.key==="Enter"){if(!me&&$e.length&&ve.value.trim()===""&&!Be()){ue.preventDefault(),vt(),qe();return}if(!at){$t();return}tt===-1&&Oe?(ue.preventDefault(),br()):tt>=0&&he[tt]&&(ue.preventDefault(),Qt(tt))}else ue.key==="Escape"?(nt&&(clearTimeout(nt),nt=null),at&&(ue.preventDefault(),vt()),Jt()):ue.key==="Backspace"&&me&&ve.value===""&&$e.length?(ue.preventDefault(),It($e[$e.length-1].value)):ue.key==="Tab"&&vt()}function br(){if(!I.newOptions||Be())return;const ue=ct.trim();if(ue==="")return;let Oe;typeof I.newOptions=="object"&&typeof I.newOptions.create=="function"?Oe=I.newOptions.create(ue):Oe={value:ue,label:ue};const ze=J(Oe);_e(ze),Rt(ze.value),vt()}function Qt(ue){if(Be())return;const Oe=he[ue];!Oe||Oe.disabled||(me?($e.some(ze=>V(ze.value,Oe.value))?It(Oe.value):Rt(Oe.value),ve.focus()):(nt&&(clearTimeout(nt),nt=null),Rt(Oe.value),vt(),ve.value=Oe.label,ct!==""&&Ft()))}const gr=()=>{at||(ve.focus(),!me&&$e.length&&ve.select(),$t())},hr=ue=>{ue.stopPropagation(),at?vt():(ve.focus(),$t())},_r=()=>{pr()},vr=ue=>{ue.stopPropagation()},yr=()=>{Ct=Te.scrollTop,Nt(),pt&&!rt&&Te.scrollTop+Te.clientHeight>=Te.scrollHeight-m&&Ot(Ye)},wr=()=>{!me&&$e.length&&ve.select(),p.dispatchEvent(se(Q,"focus"))},xr=()=>{p.dispatchEvent(se(Q,"blur")),nt&&(clearTimeout(nt),nt=null),vt(),fr()},kr=()=>{Be()||(qe(),Lt(),ve.focus())};st(ee,"click",gr),ge&&st(Ee,"click",kr),st(Ie,"click",hr),st(ve,"input",_r),st(ve,"change",vr),st(ve,"keydown",mr),st(ve,"focus",wr),st(ve,"blur",xr),st(Te,"scroll",yr),st(Te,"mousedown",ue=>ue.preventDefault()),cr(),bt.length&&typeof I.load!="function"&&(ct="",Ot(0)),Ve(je);const wt={el:p,root:O,input:ve,getValue:Ze,setValue(ue){return Ve(ue),wt},reload(){return Xt(),wt},setOptions(ue){return ur(ue),wt},clear(){return qe(),wt},open(){return $t(),wt},close(){return vt(),wt},focus(){return nr(),wt},blur(){return ar(),wt},setDisabled(ue){I.disabled=ue,ve.disabled=ue,Ie.disabled=ue,ue&&vt()},setReadOnly(ue){I.readOnly=ue,ve.readOnly=ue,ue?ve.setAttribute("aria-readonly","true"):ve.removeAttribute("aria-readonly"),yt()},destroy(){vt(),ht=!0,nt&&clearTimeout(nt),dt&&dt.abort();for(const ue of Pt.splice(0))ue();for(;O.firstChild;)O.removeChild(O.firstChild)}};return p.appendChild(O),p.__combo=wt,wt}R("combo",{kind:"field",build(p,I){const Q=I.doc.createElement("div"),re=p.props||{},me=X(Q,{load:re.load,options:p.options,multiple:re.multiple,value:p.value,resolveLabels:re.resolveLabels,newOptions:re.newOptions,optionTemplate:re.optionTemplate,selectedTemplate:re.selectedTemplate,selectAll:re.selectAll,debounce:re.debounce,pageSize:re.pageSize,maxHeight:re.maxHeight,chipPlacement:re.chipPlacement,clearable:re.clearable,placeholder:p.placeholder,ariaLabel:p.label,t:I.t,doc:I.doc,inForm:!0});if(I.disposers.push(()=>me.destroy()),Array.isArray(re.dependsOn))for(const be of re.dependsOn){const ke=Se=>{Se.name===be&&(me.clear(),me.reload())},Le=I.emitter.on("change",ke);I.disposers.push(Le)}return Q.focus=()=>me.focus(),Q.blur=()=>me.blur(),Q},read(p){return p.__combo?p.__combo.getValue():null},write(p,I){p.__combo&&p.__combo.setValue(I)},state(p,I){p.__combo&&(p.__combo.setDisabled(I.disabled===!0),p.__combo.setReadOnly(I.readOnly===!0))}})}),Ne("packages/modules/form/extras.js",function(N,Z){"use strict";Object.defineProperty(N,"injectChromeStyles",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"buildTooltip",{enumerable:!0,get:function(){return a}}),Object.defineProperty(N,"buildLock",{enumerable:!0,get:function(){return i}}),Object.defineProperty(N,"renderAvatarAddon",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"buildAddons",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"buildPanel",{enumerable:!0,get:function(){return H}});const R=Z("packages/modules/form/styles.js").NS,q=Z("packages/modules/form/ids.js").nextId,k=Z("packages/modules/form/controls/field-icon.js"),P=k.makeFieldIcon,j=k.injectFieldIconStyles,C=Z("packages/modules/form/controls/combo.js"),S=C.initialsFor,x=C.renderAvatar,h="data-lattice-form-chrome-styles";function n(u){return u==="cols"?`${R}__cols`:u==="items"?`${R}__items`:`${R}__rows`}function c(){return`
1462
- .${R}__label-group{
1491
+ `.trim()}function l(o){const L=o&&o.documentElement;if(!L||L.getAttribute(c))return;L.setAttribute(c,"1");const Y=o.createElement("style");Y.textContent=r(),(o.head||o.body||L).appendChild(Y)}function f(o){return/^(https?:|data:image\/|\/)/i.test(o)}function T(o){const L=String(o??"").trim();if(!L)return"";const Y=L.split(/\s+/);return Y.length>=2?(Y[0][0]+Y[1][0]).toUpperCase():L.slice(0,2).toUpperCase()}function V(o){let L=5381;const Y=String(o??"");for(let Q=0;Q<Y.length;Q++)L=(L<<5)+L+Y.charCodeAt(Q)>>>0;return L}function D(o){if(o&&o.color!=null&&String(o.color)!=="")return String(o.color);const L=o&&o.label!=null?String(o.label):o&&o.value!=null?String(o.value):"";return`hsl(${V(L)%360}, 62%, 45%)`}function M(o,L){o.style.background=D(L),o.style.color="#fff"}function w(o,L){const Y=k[L];if(!Y)return null;const Q=o.createElementNS(i,"svg");Q.setAttribute("class","lat-combo__icon"),Q.setAttribute("viewBox",Y.viewBox||"0 0 16 16"),Q.setAttribute("aria-hidden","true"),Q.setAttribute("focusable","false");const me=Y.paint==="stroke";for(const ge of Y.paths||[]){const $e=o.createElementNS(i,"path");$e.setAttribute("d",ge),me?($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"),Q.appendChild($e)}return Q}function I(o,L,Y){if(L==null||L==="")return null;let Q;if(L.nodeType)Q=L.cloneNode(!0),Q.setAttribute&&Q.setAttribute("aria-hidden","true");else{const me=String(L),ge=w(o,me);ge?Q=ge:(Q=o.createElement("span"),Q.className="lat-combo__icon lat-combo__icon--glyph",Q.setAttribute("aria-hidden","true"),Q.textContent=me.slice(0,2))}return Y!=null&&String(Y)!==""&&Q&&Q.style&&(Q.style.color=String(Y)),Q}function W(o,L){const Y=o.createElement("span");Y.className="lat-combo__avatar",Y.setAttribute("aria-hidden","true");const Q=String(L.avatar);if(f(Q)){const me=o.createElement("img");return me.className="lat-combo__avatar-img",me.alt="",me.src=Q,me.addEventListener("error",()=>{for(;Y.firstChild;)Y.removeChild(Y.firstChild);Y.classList.add("lat-combo__avatar--initials"),Y.textContent=T(L.label),M(Y,L)}),Y.appendChild(me),Y}return Y.classList.add("lat-combo__avatar--initials"),Y.textContent=Q.slice(0,2),M(Y,L),Y}const G={r:255,g:255,b:255},ne={r:20,g:24,b:28},be=3;function Ae(o){const L=o.split(/[,/\s]+/).filter(Boolean).map(Number);return L.length<3||L.some(Y=>Number.isNaN(Y))?null:{r:L[0],g:L[1],b:L[2]}}function le(o,L){const Y=String(L).trim();if(!Y)return null;if(o&&o.createElement)try{const me=o.defaultView;if(me&&me.getComputedStyle){const ge=o.createElement("span");ge.style.color=Y;const $e=/rgba?\(([^)]+)\)/.exec(me.getComputedStyle(ge).color||"");if($e)return Ae($e[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(Y)){let me=Y.slice(1);return(me.length===3||me.length===4)&&(me=me.split("").map(ge=>ge+ge).join("")),{r:parseInt(me.slice(0,2),16),g:parseInt(me.slice(2,4),16),b:parseInt(me.slice(4,6),16)}}const Q=/rgba?\(([^)]+)\)/.exec(Y);return Q?Ae(Q[1]):null}function $(o){const L=Y=>{const Q=Y/255;return Q<=.03928?Q/12.92:((Q+.055)/1.055)**2.4};return .2126*L(o.r)+.7152*L(o.g)+.0722*L(o.b)}function ie(o,L){const Y=$(o),Q=$(L),me=Math.max(Y,Q),ge=Math.min(Y,Q);return(me+.05)/(ge+.05)}function q(o,L){const Y=le(o,L);return Y?ie(Y,G)<be||ie(Y,ne)<be:!0}function E(o,L){const Y=o.createElement("span");Y.className="lat-combo__dot",Y.setAttribute("aria-hidden","true");const Q=String(L.dot);return Y.style.background=Q,q(o,Q)&&Y.setAttribute("data-ring","true"),Y}function H(o,L){const Y=L&&L.dot;if(Y!=null&&Y!=="")return E(o,L);const Q=L&&L.icon;if(Q!=null&&Q!=="")return I(o,Q,L.color);const me=L&&L.avatar;return me!=null&&me!==""?W(o,L):null}function x(o,L,Y){if(typeof Y!="function")return null;const Q=Y(L);if(Q==null||Q===!1)return null;if(Q.nodeType)return Q.cloneNode(!0);const me=o.createElement("span");me.className="lat-combo__template";const ge=String(Q);return ge.includes("<")?me.innerHTML=n(o,ge):me.textContent=ge,me}function U(o){return o!=null&&typeof o=="object"?o.value:o}function ee(o){return o==null?"":typeof o!="object"?String(o):o.label!=null?String(o.label):o.title!=null?String(o.title):o.value==null?"":String(o.value)}function te(o){return o==null||typeof o!="object"?null:o.description!=null?String(o.description):o.subtitle!=null?String(o.subtitle):null}function ue(o){return te(o)!=null||o!=null&&typeof o=="object"&&(o.avatar!=null||o.icon!=null)}function ae(o){const L=o!=null&&typeof o=="object"?o:{};return{value:U(o),label:ee(o),description:te(o),avatar:L.avatar,icon:L.icon,color:L.color,dot:L.dot,disabled:L.disabled===!0}}function de(o){if(Array.isArray(o))return{items:o,total:o.length,hasMore:!1};if(o&&typeof o=="object"){const L=Array.isArray(o.items)?o.items:[];return{items:L,total:typeof o.total=="number"?o.total:L.length,hasMore:o.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function _(o,L){return o===L?!0:o!=null&&L!=null&&String(o)===String(L)}function re(o,L,Y={}){const Q=o&&o.defaultView;return Q&&Q.Event?new Q.Event(L,Y):{type:L,bubbles:Y.bubbles!==!1,cancelable:Y.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function F(o,L={}){const Y=L.doc||o&&o.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;Y&&(A(Y),l(Y),v(Y));const Q=typeof L.t=="function"?L.t:X,me=L.multiple===!0,ge=me&&["above","below"].includes(L.chipPlacement)?L.chipPlacement:"inside";Y&&ge!=="inside"&&d(Y);const $e=typeof L.debounce=="number"&&L.debounce>=0?L.debounce:s,je=typeof L.pageSize=="number"&&L.pageSize>0?L.pageSize:y,Pe=L.selectAll===!0,ke=me?Array.isArray(L.value)?L.value:L.value==null?[]:[L.value]:L.value==null?null:L.value,O=Y.createElement("div");O.className="lat-combo",me&&O.setAttribute("data-multiple","true"),ge!=="inside"&&O.setAttribute("data-chip-placement",ge),L.inForm||(O.setAttribute("data-lattice-standalone","true"),O.setAttribute("data-density",["compact","standard","comfortable"].includes(L.density)?L.density:"standard"));const J=Y.createElement("div");J.className="lat-combo__control";const pe=Y.createElement("div");pe.className="lat-combo__chips";const K=Y.createElement("span");K.className="lat-combo__summary",K.hidden=!0;const oe=Y.createElement("div");oe.className="lat-combo__chip-row",oe.setAttribute("role","group"),oe.hidden=!0;const ve=ge==="inside"?pe:oe;typeof L.maxHeight=="number"&&(ve.style.maxHeight=`${L.maxHeight}px`);const xe=Y.createElement("span");xe.className="lat-combo__value",xe.setAttribute("aria-hidden","true"),xe.hidden=!0;const we=Y.createElement("input");we.className="lat-combo__input",we.type="text",we.setAttribute("role","combobox"),we.setAttribute("aria-autocomplete","list"),we.setAttribute("aria-haspopup","listbox"),me&&we.setAttribute("aria-multiselectable","true"),L.placeholder!=null&&(we.placeholder=String(L.placeholder)),L.inForm&&L.ariaLabel!=null&&we.setAttribute("aria-label",String(L.ariaLabel));const Ie=Y.createElement("button");Ie.type="button",Ie.className="lat-combo__toggle",Ie.setAttribute("aria-label",Q("form.combo.toggle")),Ie.setAttribute("aria-haspopup","listbox");const He=b(Y,"chevronDown");He&&Ie.appendChild(He);const Se=Y.createElement("button");Se.type="button",Se.className="lat-combo__clear",Se.setAttribute("aria-label",Q("form.combo.clear")),Se.hidden=!0;const De=b(Y,"close");De&&Se.appendChild(De);const he=!me&&L.clearable===!0,Re=Y.createElement("div");Re.className="lat-combo__popup lat-combo",Re.hidden=!0;const Te=Y.createElement("div");Te.className="lat-combo__list",Te.setAttribute("role","listbox");const Ge=Y.createElement("div");Ge.className="lat-combo__spacer",Te.appendChild(Ge);const Ke=Y.createElement("div");Ke.className="lat-combo__status",Ke.setAttribute("role","status"),Ke.setAttribute("aria-live","polite");const We=Y.createElement("div");We.className="lat-combo__option lat-combo__option--create",We.setAttribute("role","option"),We.hidden=!0,Te.insertBefore(We,Ge);const fe=Y.createElement("div");fe.className="lat-combo__empty",fe.setAttribute("role","presentation"),fe.setAttribute("aria-live","polite"),fe.hidden=!0,Te.insertBefore(fe,Ge),Re.appendChild(Te),Re.appendChild(Ke),J.appendChild(Re),ge!=="inside"?(J.appendChild(we),J.appendChild(Ie),oe.appendChild(pe),oe.appendChild(K),ge==="above"&&O.appendChild(oe),O.appendChild(J),ge==="below"&&O.appendChild(oe)):(J.appendChild(pe),J.appendChild(K),J.appendChild(xe),J.appendChild(we),he&&J.appendChild(Se),J.appendChild(Ie),O.appendChild(J));const Me=z("lat-combo-lb");Te.id=Me,we.setAttribute("aria-controls",Me);let _e=[],Ee=[];const ot=new Map;let Ye=0,qe=0,pt=!1,rt=!1,ut=!1,ct="",at=!1,tt=-1,dt=null,mt=0,nt=null;const jt=new Map;let bt=Array.isArray(L.options)?L.options:[];const ft=[],st=[];let gt=0,Ct=0;const Pt=[];let ht=!1,_t=null;function it(ce,Oe,ze){ce.addEventListener(Oe,ze),Pt.push(()=>ce.removeEventListener(Oe,ze))}function lt(ce){const Oe=ot.get(String(ce));if(Oe)return Oe;if(ce!=null){for(const ze of ot.values())if(_(ze.value,ce))return ze}return null}function se(ce){const Oe=lt(ce);return Oe?Oe.label:ce==null?"":String(ce)}function ye(ce){ce.value!=null&&ot.set(String(ce.value),ce)}function Ce(ce){if(typeof L.resolveLabels!="function")return;const Oe=ce.filter(Xe=>Xe!=null&&!lt(Xe));if(Oe.length===0)return;const ze=L.resolveLabels(Oe),Fe=Xe=>{if(!(ht||!Array.isArray(Xe))){for(const Je of Xe){const Ue=ae(Je);Ue.value!=null&&ye(Ue)}Ee=Ee.map(Je=>lt(Je.value)||Je),yt(),Dt()}};ze&&typeof ze.then=="function"?ze.then(Fe):Fe(ze)}function Le(){o.dispatchEvent(re(Y,"change",{bubbles:!0}))}function Ze(){return me?Ee.map(ce=>ce.value):Ee.length?Ee[0].value:null}function Ve(ce){let Oe;if(me)Oe=Array.isArray(ce)?ce:ce==null?[]:[ce];else{const Fe=Array.isArray(ce)?ce.length?ce[0]:null:ce;Oe=Fe==null?[]:[Fe]}const ze=Oe.filter(Fe=>Fe!=null&&(Fe!==""||lt(Fe)!=null));Ee=ze.map(Fe=>lt(Fe)||{value:Fe,label:Fe==null?"":String(Fe),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Ce(ze),yt(),At(),St()}function Be(){return L.readOnly===!0}function Qe(){Ee.length!==0&&(Ee=[],yt(),At(),St(),Lt(),Dt(),Le())}function xt(ce){const Oe=Y.createElement("span");Oe.className="lat-combo__chip",Oe.dataset.value=String(ce.value);const ze=x(Y,ce,L.selectedTemplate);if(ze){const Fe=Y.createElement("span");Fe.className="lat-combo__chip-label",Fe.appendChild(ze),Oe.appendChild(Fe)}else{const Fe=H(Y,ce);Fe&&Oe.appendChild(Fe);const Xe=Y.createElement("span");Xe.className="lat-combo__chip-label",Xe.textContent=se(ce.value),Oe.appendChild(Xe)}if(!ce.disabled&&!Be()){const Fe=Y.createElement("button");Fe.type="button",Fe.className="lat-combo__chip-remove",Fe.setAttribute("aria-label",Q("form.combo.remove",{label:se(ce.value)})),Fe.textContent="×",it(Fe,"click",Je=>{Je.stopPropagation(),It(ce.value)}),Oe.appendChild(Fe)}return Oe}function Lt(){me||(we.value=Ee.length?se(Ee[0].value):"")}function Dt(){if(me){xe.hidden=!0;return}for(;xe.firstChild;)xe.removeChild(xe.firstChild);if(Ee.length===0){xe.hidden=!0;return}const ce=Ee[0],ze=x(Y,ce,L.selectedTemplate)||H(Y,ce);ze?(xe.appendChild(ze),xe.hidden=!1):xe.hidden=!0}function tr(ce){const Oe=Q("form.combo.selected",{count:ce});return Oe==="form.combo.selected"?`Selected: ${ce}`:Oe}function yt(){for(;pe.firstChild;)pe.removeChild(pe.firstChild);if(me){for(const ce of Ee)pe.appendChild(xt(ce));pe.hidden=Ee.length===0}else pe.hidden=!0;ge!=="inside"&&(oe.hidden=!me||Ee.length===0,oe.setAttribute("aria-label",tr(Ee.length))),Lt(),Dt(),rr()}function rr(){if(!me||Ee.length===0){K.hidden=!0;return}const ce=ve.getBoundingClientRect().bottom;let Oe=0;const ze=[...pe.children];for(const Fe of ze)Fe.getBoundingClientRect().top>=ce-1&&(Oe+=1);Oe>0?(K.hidden=!1,K.textContent=Q("form.combo.more",{count:Oe})):K.hidden=!0}function It(ce){if(Be())return;const Oe=Ee.length;Ee=Ee.filter(ze=>!_(ze.value,ce)),Ee.length!==Oe&&(yt(),At(),St(),Le())}function Rt(ce){if(Be())return;const Oe=lt(ce)||{value:ce,label:ce==null?"":String(ce),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(ye(Oe),me){if(Ee.some(ze=>_(ze.value,ce)))return;Ee=[...Ee,Oe]}else{if(Ee.length&&_(Ee[0].value,ce))return;Ee=[Oe]}yt(),At(),St(),Le()}function nr(){if(Be())return;const ce=_e.filter(Oe=>!Oe.disabled).map(Oe=>({...Oe}));if(!(ce.length===0&&Ee.length===0)){for(const Oe of ce)ye(Oe);Ee=ce,yt(),At(),St(),Le()}}function Wt(){return _e.length>0&&_e.every(ce=>Ee.some(Oe=>_(Oe.value,ce.value)))}function At(){const ce=O.querySelector(".lat-combo__select-all");if(!ce)return;const Oe=Wt();ce.setAttribute("aria-selected",Oe?"true":"false"),ce.textContent=Q("form.combo.selectAll")}function $t(){at||ht||L.disabled||(at=!0,Re.hidden=!1,we.setAttribute("aria-expanded","true"),Ie.setAttribute("aria-expanded","true"),_t=a(Re,J,{aboveClass:p,onOffscreen:vt}),cr(),_e.length===0&&L.load&&!rt&&!ut?Ot(0):Nt())}function vt(){at&&(at=!1,Re.hidden=!0,Re.classList.remove(p),_t&&(_t.close(),_t=null),we.setAttribute("aria-expanded","false"),Ie.setAttribute("aria-expanded","false"),we.removeAttribute("aria-activedescendant"))}function ar(){ht||(we.focus(),$t())}function or(){we.blur()}function Et(ce){if(tt=ce,!at)return;const Oe=ce===-1?`${We.id}`:`${Me}-opt-${ce}`;we.setAttribute("aria-activedescendant",Oe)}function Mt(ce){const Oe=We.hidden===!1,ze=Oe?-1:0,Fe=Math.max(ze,_e.length-1);if(_e.length===0&&!Oe){Et(-1);return}Et(Math.max(ze,Math.min(Fe,tt+ce))),Bt()}function Bt(){if(tt<0)return;const ce=st[tt]||0,Oe=ce+(ft[tt]||Kt(_e[tt]));ce<Ct?Te.scrollTop=ce:Oe>Ct+gt&&(Te.scrollTop=Oe-gt)}function Kt(ce){return ue(ce)?52:30}function Zt(ce){return`${Me}-opt-${ce}`}function ir(ce,Oe){const ze=Y.createElement("div");ze.className="lat-combo__option",ze.setAttribute("role","option"),ze.id=Zt(Oe);const Fe=Ee.some(Ue=>_(Ue.value,ce.value));ze.setAttribute("aria-selected",Fe?"true":"false"),ce.disabled&&ze.setAttribute("aria-disabled","true");const Xe=x(Y,ce,L.optionTemplate);if(Xe)ze.appendChild(Xe);else{const Ue=H(Y,ce);Ue&&ze.appendChild(Ue);const et=Y.createElement("span");et.className="lat-combo__text";const kt=Y.createElement("span");if(kt.className="lat-combo__title",kt.textContent=ce.label,et.appendChild(kt),ce.description!=null){const Ht=Y.createElement("span");Ht.className="lat-combo__subtitle",Ht.textContent=ce.description,et.appendChild(Ht)}ze.appendChild(et)}return it(ze,"click",Ue=>{Ue.stopPropagation(),Qt(Oe)}),ze}function lr(){const ce=L.newOptions&&!Be()&&ct.trim()!=="",Oe=_e.some(ze=>_(ze.value,ct)||ze.label===ct);if(!ce||Oe){We.hidden=!0;return}We.hidden=!1,We.id=`${Me}-create`,We.textContent=Q("form.combo.create",{query:ct}),tt===-1&&Et(-1)}function sr(){const ce=!rt&&!ut&&(typeof L.load=="function"||bt.length>0);fe.hidden=!ce,ce&&(fe.textContent=Q("form.combo.noMatches"))}function Nt(){if(lr(),at&&(gt=Te.clientHeight||gt),_e.length===0){for(Ge.style.height="0px";Ge.firstChild;)Ge.removeChild(Ge.firstChild);sr(),We.hidden!==!1&&(tt=-1,we.removeAttribute("aria-activedescendant")),Tt(),_t&&_t.reposition();return}fe.hidden=!0;let ce=!1;for(let Ue=0;Ue<_e.length;Ue++)ft[Ue]==null&&(ft[Ue]=Kt(_e[Ue]));st.length=0,st[0]=0;for(let Ue=1;Ue<=_e.length;Ue++)st[Ue]=st[Ue-1]+ft[Ue-1];const Oe=st[_e.length];Ge.style.height=`${Oe}px`;const ze=Ct,Fe=Ct+gt;let Xe=0;for(;Xe<_e.length-1&&st[Xe+1]<ze;)Xe+=1;let Je=Xe;for(;Je<_e.length&&st[Je]<Fe;)Je+=1;for(Je=Math.min(_e.length,Je+2);Ge.firstChild;)Ge.removeChild(Ge.firstChild);for(let Ue=Xe;Ue<Je;Ue++){const et=ir(_e[Ue],Ue);et.style.position="absolute",et.style.left="0",et.style.right="0",et.style.top="0",et.style.transform=`translateY(${st[Ue]}px)`,Ge.appendChild(et)}for(let Ue=Xe;Ue<Je;Ue++){const et=Y.getElementById(Zt(Ue));if(!et)continue;const kt=et.getBoundingClientRect().height;kt>0&&Math.abs(kt-ft[Ue])>.5&&(ft[Ue]=kt,ce=!0)}if(ce){Nt();return}Tt(),_t&&_t.reposition()}function Tt(){for(;Ke.firstChild;)Ke.removeChild(Ke.firstChild);if(rt)Ke.textContent=Q("form.combo.loading"),Ke.dataset.state="loading";else if(ut){Ke.textContent=Q("form.combo.error"),Ke.dataset.state="error";const ce=Y.createElement("button");ce.type="button",ce.className="lat-combo__retry",ce.textContent=Q("form.combo.retry"),it(ce,"click",ze=>{ze.stopPropagation(),Xt()}),Ke.appendChild(ce)}else _e.length===0&&!L.load&&bt.length===0?Ke.textContent="":_e.length===0?(Ke.textContent=Q("form.combo.empty"),Ke.dataset.state="empty"):(Ke.textContent=Q("form.combo.results",{count:qe}),Ke.dataset.state="results")}function St(){const ce=`${Me}-opt-`;for(const Oe of Te.querySelectorAll('.lat-combo__option[role="option"]')){const ze=Oe.id||"";if(!ze.startsWith(ce))continue;const Fe=Number(ze.slice(ce.length));if(Number.isNaN(Fe))continue;const Xe=_e[Fe];Xe&&Oe.setAttribute("aria-selected",Ee.some(Je=>_(Je.value,Xe.value))?"true":"false")}At(),he&&(Se.hidden=Ee.length===0||Be())}function cr(){gt=Te.clientHeight||240}function ur(){if(Pe&&me){const ce=Y.createElement("div");ce.className="lat-combo__select-all",ce.setAttribute("role","option"),it(ce,"click",ze=>{ze.stopPropagation(),!Be()&&(Wt()?(Ee=[],yt(),St(),Le()):nr())}),Re.insertBefore(ce,Te)}}function Ot(ce){if(ht)return;if(typeof L.load!="function"){const Je=ct.trim().toLowerCase(),Ue=bt.map(ae).filter(et=>Je===""||et.label.toLowerCase().includes(Je));_e=Ue,qe=Ue.length,pt=!1,Ye=1,ft.length=0,st.length=0;for(const et of _e)ye(et);Nt();return}if(rt)return;rt=!0,ut=!1,mt+=1;const Oe=mt;dt&&dt.abort(),dt=new AbortController;const ze=dt.signal;Tt();let Fe;try{Fe=L.load({search:ct,page:ce,signal:ze,pageSize:je})}catch{rt=!1,ut=!0,Tt();return}const Xe=Je=>{if(ht||Oe!==mt)return;rt=!1;const Ue=de(Je),et=Ue.items.map(ae);ce===0?(_e=et,ft.length=0,st.length=0,jt.set(ct,{items:et,total:Ue.total,hasMore:Ue.hasMore,nextPage:1})):_e=_e.concat(et),qe=typeof Ue.total=="number"?Ue.total:_e.length,pt=Ue.hasMore,Ye=ce+1;for(const kt of et)ye(kt);ft.length=_e.length,Nt(),Yt()};Fe&&typeof Fe.then=="function"?Fe.then(Xe).catch(Je=>{ht||Oe!==mt||Je&&Je.name==="AbortError"||(rt=!1,ut=!0,Tt())}):Xe(Fe)}function Yt(){if(!pt||rt||!at)return;(st[_e.length]||0)<gt+m&&Ot(Ye)}function Xt(){ht||(nt&&(clearTimeout(nt),nt=null),dt&&dt.abort(),mt+=1,jt.delete(ct),_e=[],qe=0,pt=!1,rt=!1,ut=!1,Ye=0,ft.length=0,st.length=0,tt=-1,Ot(0))}function dr(ce){if(ht||(bt=Array.isArray(ce)?ce:[],typeof L.load=="function"))return;Ot(0);const Oe=Ee.length;Ee=Ee.filter(ze=>_e.some(Fe=>_(Fe.value,ze.value))).map(ze=>lt(ze.value)||ze),Ee.length!==Oe?(yt(),At(),St(),Le()):yt()}function fr(){return!me&&Ee.length&&we.value===se(Ee[0].value)?"":we.value}function Jt(){me||(Lt(),ct!==""&&Ft())}function pr(){return me?!1:Ee.length&&we.value.trim()===""&&!Be()?(Qe(),!0):(Jt(),!1)}function Ft(){ct=fr(),dt&&dt.abort(),mt+=1;const ce=jt.get(ct);if(ce&&typeof L.load=="function"){_e=ce.items.map(ae),qe=ce.total,pt=ce.hasMore,Ye=ce.nextPage,rt=!1,ut=!1,ft.length=0,st.length=0,tt=-1;for(const Oe of _e)ye(Oe);Nt(),Yt();return}_e=[],qe=0,pt=!1,rt=!1,ut=!1,Ye=0,ft.length=0,st.length=0,tt=-1,Ot(0)}function mr(){nt&&clearTimeout(nt),nt=setTimeout(()=>{nt=null,Ft()},$e)}function br(ce){const Oe=We.hidden===!1,ze=_e.length+(Oe?1:0);if(ce.key==="ArrowDown"){if(ce.preventDefault(),$t(),ze===0)return;tt===-1?Et(_e.length?0:-1):Mt(1)}else if(ce.key==="ArrowUp"){if(ce.preventDefault(),!at){$t();return}if(tt===-1){_e.length&&Et(0);return}Mt(-1)}else if(ce.key==="Home"){if(!at)return;ce.preventDefault(),Et(Oe?-1:0),Bt()}else if(ce.key==="End"){if(!at)return;ce.preventDefault(),Et(_e.length-1),Bt()}else if(ce.key==="PageDown"){if(!at)return;ce.preventDefault(),Mt(Math.max(1,Math.floor(Math.max(gt,60)/30)))}else if(ce.key==="PageUp"){if(!at)return;ce.preventDefault(),Mt(-Math.max(1,Math.floor(Math.max(gt,60)/30)))}else if(ce.key==="Enter"){if(!me&&Ee.length&&we.value.trim()===""&&!Be()){ce.preventDefault(),vt(),Qe();return}if(!at){$t();return}tt===-1&&Oe?(ce.preventDefault(),qt()):tt>=0&&_e[tt]&&(ce.preventDefault(),Qt(tt))}else ce.key==="Escape"?(nt&&(clearTimeout(nt),nt=null),at&&(ce.preventDefault(),vt()),Jt()):ce.key==="Backspace"&&me&&we.value===""&&Ee.length?(ce.preventDefault(),It(Ee[Ee.length-1].value)):ce.key==="Tab"&&vt()}function qt(){if(!L.newOptions||Be())return;const ce=ct.trim();if(ce==="")return;let Oe;typeof L.newOptions=="object"&&typeof L.newOptions.create=="function"?Oe=L.newOptions.create(ce):Oe={value:ce,label:ce};const ze=ae(Oe);ye(ze),Rt(ze.value),vt()}function Qt(ce){if(Be())return;const Oe=_e[ce];!Oe||Oe.disabled||(me?(Ee.some(ze=>_(ze.value,Oe.value))?It(Oe.value):Rt(Oe.value),we.focus()):(nt&&(clearTimeout(nt),nt=null),Rt(Oe.value),vt(),we.value=Oe.label,ct!==""&&Ft()))}const gr=()=>{at||(we.focus(),!me&&Ee.length&&we.select(),$t())},hr=ce=>{ce.stopPropagation(),at?vt():(we.focus(),$t())},_r=()=>{mr()},vr=ce=>{ce.stopPropagation()},yr=()=>{Ct=Te.scrollTop,Nt(),pt&&!rt&&Te.scrollTop+Te.clientHeight>=Te.scrollHeight-m&&Ot(Ye)},wr=()=>{!me&&Ee.length&&we.select(),o.dispatchEvent(re(Y,"focus"))},xr=()=>{o.dispatchEvent(re(Y,"blur")),nt&&(clearTimeout(nt),nt=null),vt(),pr()},kr=()=>{Be()||(Qe(),Lt(),we.focus())};it(J,"click",gr),he&&it(Se,"click",kr),it(Ie,"click",hr),it(we,"input",_r),it(we,"change",vr),it(we,"keydown",br),it(we,"focus",wr),it(we,"blur",xr),it(Te,"scroll",yr),it(Te,"mousedown",ce=>ce.preventDefault()),it(We,"click",ce=>{ce.stopPropagation(),qt()}),ur(),bt.length&&typeof L.load!="function"&&(ct="",Ot(0)),Ve(ke);const wt={el:o,root:O,input:we,getValue:Ze,setValue(ce){return Ve(ce),wt},reload(){return Xt(),wt},setOptions(ce){return dr(ce),wt},clear(){return Qe(),wt},open(){return $t(),wt},close(){return vt(),wt},focus(){return ar(),wt},blur(){return or(),wt},setDisabled(ce){L.disabled=ce,we.disabled=ce,Ie.disabled=ce,ce&&vt()},setReadOnly(ce){L.readOnly=ce,we.readOnly=ce,ce?we.setAttribute("aria-readonly","true"):we.removeAttribute("aria-readonly"),yt()},destroy(){vt(),ht=!0,nt&&clearTimeout(nt),dt&&dt.abort();for(const ce of Pt.splice(0))ce();for(;O.firstChild;)O.removeChild(O.firstChild)}};return o.appendChild(O),o.__combo=wt,wt}B("combo",{kind:"field",build(o,L){const Y=L.doc.createElement("div"),Q=o.props||{},me=F(Y,{load:Q.load,options:o.options,multiple:Q.multiple,value:o.value,resolveLabels:Q.resolveLabels,newOptions:Q.newOptions,optionTemplate:Q.optionTemplate,selectedTemplate:Q.selectedTemplate,selectAll:Q.selectAll,debounce:Q.debounce,pageSize:Q.pageSize,maxHeight:Q.maxHeight,chipPlacement:Q.chipPlacement,clearable:Q.clearable,placeholder:o.placeholder,ariaLabel:o.label,t:L.t,doc:L.doc,inForm:!0});if(L.disposers.push(()=>me.destroy()),Array.isArray(Q.dependsOn))for(const ge of Q.dependsOn){const $e=Pe=>{Pe.name===ge&&(me.clear(),me.reload())},je=L.emitter.on("change",$e);L.disposers.push(je)}return Y.focus=()=>me.focus(),Y.blur=()=>me.blur(),Y},read(o){return o.__combo?o.__combo.getValue():null},write(o,L){o.__combo&&o.__combo.setValue(L)},state(o,L){o.__combo&&(o.__combo.setDisabled(L.disabled===!0),o.__combo.setReadOnly(L.readOnly===!0))}})}),Ne("packages/modules/form/extras.js",function(N,Z){"use strict";Object.defineProperty(N,"injectChromeStyles",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"buildTooltip",{enumerable:!0,get:function(){return a}}),Object.defineProperty(N,"buildLock",{enumerable:!0,get:function(){return s}}),Object.defineProperty(N,"renderAvatarAddon",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"buildAddons",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"buildPanel",{enumerable:!0,get:function(){return R}});const B=Z("packages/modules/form/styles.js").NS,X=Z("packages/modules/form/ids.js").nextId,C=Z("packages/modules/form/controls/field-icon.js"),z=C.makeFieldIcon,P=C.injectFieldIconStyles,A=Z("packages/modules/form/controls/combo.js"),j=A.initialsFor,k=A.renderAvatar,g="data-lattice-form-chrome-styles";function n(d){return d==="cols"?`${B}__cols`:d==="items"?`${B}__items`:`${B}__rows`}function u(){return`
1492
+ .${B}__label-group{
1463
1493
  display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
1464
1494
  min-width:0; box-sizing:border-box;
1465
1495
  }
1466
- .${R}__item[data-label-position='top'] .${R}__label-group{
1496
+ .${B}__item[data-label-position='top'] .${B}__label-group{
1467
1497
  margin-bottom:var(--lattice-form-label-gap);
1468
1498
  }
1469
- .${R}__item[data-label-position='top'] .${R}__label-group .${R}__label{ margin-bottom:0; }
1470
- .${R}__tooltip-wrap{ position:relative; display:inline-flex; flex:0 0 auto; }
1471
- .${R}__tooltip-trigger{
1499
+ .${B}__item[data-label-position='top'] .${B}__label-group .${B}__label{ margin-bottom:0; }
1500
+ .${B}__tooltip-wrap{ position:relative; display:inline-flex; flex:0 0 auto; }
1501
+ .${B}__tooltip-trigger{
1472
1502
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
1473
1503
  box-sizing:border-box; width:calc(var(--lattice-font-size) * 1.35);
1474
1504
  height:calc(var(--lattice-font-size) * 1.35); min-height:0;
@@ -1477,13 +1507,13 @@
1477
1507
  color:var(--lattice-foreground-muted); font:inherit; line-height:1;
1478
1508
  font-weight:600; cursor:pointer;
1479
1509
  }
1480
- .${R}__tooltip-trigger:hover,
1481
- .${R}__tooltip-trigger:focus-visible{
1510
+ .${B}__tooltip-trigger:hover,
1511
+ .${B}__tooltip-trigger:focus-visible{
1482
1512
  color:var(--lattice-foreground);
1483
1513
  background:color-mix(in srgb, var(--lattice-foreground-muted) 28%, transparent);
1484
1514
  }
1485
- .${R}__tooltip-trigger:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1486
- .${R}__tooltip{
1515
+ .${B}__tooltip-trigger:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1516
+ .${B}__tooltip{
1487
1517
  position:absolute; z-index:20; bottom:calc(100% + var(--lattice-space) / 2); left:50%;
1488
1518
  transform:translateX(-50%); box-sizing:border-box; width:max-content; max-width:280px;
1489
1519
  padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
@@ -1493,11 +1523,11 @@
1493
1523
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.35; white-space:normal;
1494
1524
  opacity:0; pointer-events:none;
1495
1525
  }
1496
- .${R}__tooltip--open{ opacity:1; }
1526
+ .${B}__tooltip--open{ opacity:1; }
1497
1527
  /* A read-only field's lock sits inside the control's right edge (the control
1498
1528
  wrapper is the input's box, so the inset matches the field's own padding). */
1499
- .${R}__control{ position:relative; }
1500
- .${R}__lock{
1529
+ .${B}__control{ position:relative; }
1530
+ .${B}__lock{
1501
1531
  position:absolute; top:50%; right:calc(var(--lattice-space) * 1.5);
1502
1532
  transform:translateY(-50%); z-index:1; pointer-events:none;
1503
1533
  display:inline-flex; align-items:center; justify-content:center;
@@ -1505,59 +1535,59 @@
1505
1535
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1506
1536
  color:var(--lattice-foreground-muted);
1507
1537
  }
1508
- .${R}__lock[hidden]{ display:none; }
1509
- .${R}__control--lock input,
1510
- .${R}__control--lock textarea{
1538
+ .${B}__lock[hidden]{ display:none; }
1539
+ .${B}__control--lock input,
1540
+ .${B}__control--lock textarea{
1511
1541
  padding-right:calc(var(--lattice-space) * 1.5 + (var(--lattice-control-size) * var(--lattice-scale)) + calc(var(--lattice-space) / 2));
1512
1542
  }
1513
- .${R}__field{
1543
+ .${B}__field{
1514
1544
  display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
1515
1545
  min-width:0; flex:1 1 auto;
1516
1546
  }
1517
- .${R}__addons{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1518
- .${R}__addon{
1547
+ .${B}__addons{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1548
+ .${B}__addon{
1519
1549
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
1520
1550
  flex:0 0 auto; width:var(--lattice-row-height); height:var(--lattice-row-height); min-height:0;
1521
1551
  padding:0; margin:0; border:var(--lattice-border-width) solid var(--lattice-border-color);
1522
1552
  border-radius:50%; background:var(--lattice-background); color:var(--lattice-foreground);
1523
1553
  font:inherit; line-height:1; cursor:pointer; text-decoration:none;
1524
1554
  }
1525
- .${R}__addon:hover, .${R}__addon:focus-visible{ border-color:var(--lattice-accent); color:var(--lattice-accent); }
1526
- .${R}__addon:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1527
- .${R}__addon:disabled, .${R}__addon[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1528
- .${R}__icon-glyph{ font-size:calc(var(--lattice-font-size) - 1px); line-height:1; }
1529
- .${R}__addon-avatar{
1555
+ .${B}__addon:hover, .${B}__addon:focus-visible{ border-color:var(--lattice-accent); color:var(--lattice-accent); }
1556
+ .${B}__addon:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1557
+ .${B}__addon:disabled, .${B}__addon[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1558
+ .${B}__icon-glyph{ font-size:calc(var(--lattice-font-size) - 1px); line-height:1; }
1559
+ .${B}__addon-avatar{
1530
1560
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
1531
1561
  width:var(--lattice-row-height); height:var(--lattice-row-height);
1532
1562
  }
1533
- .${R}__addon-avatar .lat-combo__avatar{
1563
+ .${B}__addon-avatar .lat-combo__avatar{
1534
1564
  width:var(--lattice-row-height); height:var(--lattice-row-height);
1535
1565
  font-size:calc(var(--lattice-font-size) - 1px);
1536
1566
  }
1537
- .${R}__panel{
1567
+ .${B}__panel{
1538
1568
  display:flex; flex-direction:column; box-sizing:border-box; min-width:0; min-height:0;
1539
1569
  border:var(--lattice-border-width) solid var(--lattice-border-color);
1540
1570
  border-radius:var(--lattice-radius); background:var(--lattice-background);
1541
1571
  padding:calc(var(--lattice-space) * 1.5);
1542
1572
  }
1543
- .${R}__panel[hidden]{ display:none; }
1544
- .${R}__panel-header{
1573
+ .${B}__panel[hidden]{ display:none; }
1574
+ .${B}__panel-header{
1545
1575
  display:flex; align-items:flex-start; justify-content:space-between; gap:var(--lattice-space);
1546
1576
  box-sizing:border-box; padding-bottom:calc(var(--lattice-space) * 1.25);
1547
1577
  border-bottom:var(--lattice-border-width) solid var(--lattice-border-color);
1548
1578
  margin-bottom:calc(var(--lattice-space) * 1.25);
1549
1579
  }
1550
- .${R}__panel-heading{ display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 4); min-width:0; }
1551
- .${R}__panel-title{
1580
+ .${B}__panel-heading{ display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 4); min-width:0; }
1581
+ .${B}__panel-title{
1552
1582
  margin:0; font-size:calc(var(--lattice-font-size) + 1px); font-weight:600; line-height:1.3;
1553
1583
  color:var(--lattice-foreground);
1554
1584
  }
1555
- .${R}__panel-subtitle{
1585
+ .${B}__panel-subtitle{
1556
1586
  margin:0; color:var(--lattice-foreground-muted);
1557
1587
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.4;
1558
1588
  }
1559
- .${R}__panel-actions{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1560
- .${R}__panel-action{
1589
+ .${B}__panel-actions{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1590
+ .${B}__panel-action{
1561
1591
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
1562
1592
  flex:0 0 auto; width:calc(var(--lattice-row-height) - var(--lattice-space) / 2);
1563
1593
  height:calc(var(--lattice-row-height) - var(--lattice-space) / 2); min-height:0;
@@ -1565,27 +1595,27 @@
1565
1595
  background:transparent; color:var(--lattice-foreground-muted);
1566
1596
  font:inherit; line-height:1; cursor:pointer;
1567
1597
  }
1568
- .${R}__panel-action:hover, .${R}__panel-action:focus-visible{
1598
+ .${B}__panel-action:hover, .${B}__panel-action:focus-visible{
1569
1599
  color:var(--lattice-foreground);
1570
1600
  background:color-mix(in srgb, var(--lattice-foreground-muted) 16%, transparent);
1571
1601
  }
1572
- .${R}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1573
- .${R}__panel-body{ min-width:0; min-height:0; }
1574
- .${R}__panel-body[hidden]{ display:none; }
1575
- `.trim()}function b(u){const s=u&&u.documentElement;if(!s||(j(u),s.getAttribute(h)))return;s.setAttribute(h,"1");const o=u.createElement("style");o.textContent=c(),(u.head||u.body||s).appendChild(o)}function _(u,s,o,r){s.addEventListener(o,r),u.disposers.push(()=>s.removeEventListener(o,r))}function t(u,s){if(s==null||s==="")return null;if(s.nodeType){const l=s.cloneNode(!0);return l.setAttribute&&l.setAttribute("aria-hidden","true"),l}const o=P(u,String(s));if(o)return o;const r=u.createElement("span");return r.className=`${R}__icon-glyph`,r.setAttribute("aria-hidden","true"),r.textContent=String(s).slice(0,2),r}function a(u,s){const{labelEl:o,item:r,labelPosition:l,labelWidth:d}=s,T=r.tooltip;if(typeof T!="string"||T===""||l==="hidden")return null;b(u.doc);const U=u.doc,z=U.createElement("div");z.className=`${R}__label-group`,l==="left"&&d!=null&&(z.style.flex=`0 0 ${typeof d=="number"?`${d}px`:String(d)}`),z.appendChild(o);const L=q("lat-form-tip"),y=U.createElement("span");y.className=`${R}__tooltip-wrap`;const M=U.createElement("button");M.type="button",M.className=`${R}__tooltip-trigger`,M.setAttribute("aria-label",u.t("form.tooltip.help")),M.setAttribute("aria-expanded","false"),M.setAttribute("aria-controls",L),M.textContent="?";const W=U.createElement("span");W.className=`${R}__tooltip`,W.setAttribute("id",L),W.setAttribute("role","tooltip"),W.textContent=T,y.appendChild(M),y.appendChild(W),z.appendChild(y);let B=!1;const ne=()=>{M.setAttribute("aria-expanded","true"),W.classList.add(`${R}__tooltip--open`)},Ae=()=>{B||(M.setAttribute("aria-expanded","false"),W.classList.remove(`${R}__tooltip--open`))};return _(u,M,"mouseenter",ne),_(u,M,"mouseleave",Ae),_(u,M,"focus",ne),_(u,M,"blur",Ae),_(u,M,"click",we=>{we.stopPropagation(),B=!B,B?ne():Ae()}),{group:z,tooltipId:L}}function i(u,s,o,r){const l=r&&r.tagName;if(!(o.lockIcon!==!1&&(l==="INPUT"||l==="TEXTAREA")&&(o.readOnly===!0||o.readOnlyWhen!=null)))return null;b(u.doc);const T=u.doc.createElement("span");T.className=`${R}__lock`,T.setAttribute("aria-hidden","true"),T.title=u.t("form.readonly");const U=P(u.doc,"lock");return U&&T.appendChild(U),s.appendChild(T),{el:T}}function f(u,s){if(!Array.isArray(u))return null;const o=s==null?"":String(s);for(const r of u){if(r!=null&&typeof r=="object"&&Array.isArray(r.options)){const l=f(r.options,s);if(l)return l;continue}if(r!=null&&typeof r=="object"){const l=r.value==null?"":String(r.value);if(l===o)return{label:r.label!=null?String(r.label):l,avatar:r.avatar,color:r.color}}else{const l=String(r);if(l===o)return{label:l,avatar:void 0,color:void 0}}}return null}function v(u,s,o){let r=null,l=s==null?"":String(s),d;if(typeof u=="function")r=u(s,o);else if(u===!0){const T=f(o.options,s);T&&(l=T.label,d=T.color,T.avatar!=null&&T.avatar!==""&&(r=String(T.avatar)))}else r=String(u);if(r==null||r===""){if(l==null||l==="")return null;r=S(l)}return{avatar:r,label:l,color:d}}function m(u,s,o,r,l){for(;s.firstChild;)s.removeChild(s.firstChild);const d=v(o.avatar,r,l);d&&s.appendChild(x(u,d))}function g(u,s){const o=s.addons;if(!Array.isArray(o)||o.length===0)return null;b(u.doc);const r=u.doc,l=r.createElement("div");l.className=`${R}__addons`;const d=[];for(const T of o){if(T==null||typeof T!="object")continue;if(T.avatar!==void 0&&T.avatar!==null&&T.avatar!==!1){const M=r.createElement("span");M.className=`${R}__addon-avatar`,M.setAttribute("aria-hidden","true"),l.appendChild(M),d.push({el:M,spec:T,avatar:!0});continue}const z=T.href,L=r.createElement(z!=null?"a":"button");L.className=`${R}__addon`,z==null?L.type="button":L.href=String(z),T.ariaLabel!=null&&T.ariaLabel!==""&&(L.setAttribute("aria-label",String(T.ariaLabel)),L.title=T.tooltip!=null&&T.tooltip!==""?String(T.tooltip):String(T.ariaLabel));const y=t(r,T.icon);y&&L.appendChild(y),l.appendChild(L),d.push({el:L,spec:T,avatar:!1})}return{bar:l,entries:d}}function H(u,s,o,r,l){b(u.doc);const d=u.doc,T=d.createElement("section");T.className=`${R}__panel`;const U=d.createElement("div");U.className=`${R}__panel-header`;const z=d.createElement("div");if(z.className=`${R}__panel-heading`,s.title!=null){const M=d.createElement("h3");M.className=`${R}__panel-title`,M.textContent=s.title,z.appendChild(M)}if(s.subtitle!=null){const M=d.createElement("p");M.className=`${R}__panel-subtitle`,M.textContent=s.subtitle,z.appendChild(M)}U.appendChild(z);const L=d.createElement("div");L.className=`${R}__panel-actions`,U.appendChild(L),T.appendChild(U);const y=d.createElement("div");y.className=`${R}__panel-body`,s.axis&&(y.classList.add(n(s.axis)),l.buildChildren(u,y,s.blocks,s.axis,r)),T.appendChild(y);for(const M of s.actions){const W=d.createElement("button");W.type="button",W.className=`${R}__panel-action`,M.ariaLabel!=null&&M.ariaLabel!==""&&(W.setAttribute("aria-label",String(M.ariaLabel)),W.title=String(M.ariaLabel));const B=t(d,M.icon);B&&W.appendChild(B),typeof M.onClick=="function"&&_(u,W,"click",()=>{M.onClick()}),L.appendChild(W)}if(s.collapsible){const M=d.createElement("button");M.type="button",M.className=`${R}__panel-action ${R}__panel-collapse`,M.setAttribute("aria-expanded","true");const W=u.t("form.panel.collapse");M.setAttribute("aria-label",W),M.title=W;const B=P(d,"chevronUp");B&&M.appendChild(B);let ne=!1;_(u,M,"click",()=>{ne=!ne,y.hidden=ne,M.setAttribute("aria-expanded",ne?"false":"true");const Ae=u.t(ne?"form.panel.expand":"form.panel.collapse");for(M.setAttribute("aria-label",Ae),M.title=Ae;M.firstChild;)M.removeChild(M.firstChild);const we=P(d,ne?"chevronDown":"chevronUp");we&&M.appendChild(we)}),L.appendChild(M)}return l.applyCss(T,s.css),s.spacing!=null&&T.style.setProperty("--lattice-form-item-gap",s.spacing),s.hidden&&(T.hidden=!0),o.appendChild(T),T}}),Ne("packages/modules/form/view.js",function(N,Z){"use strict";Object.defineProperty(N,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return U}}),Object.defineProperty(N,"applyCss",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"runValidation",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(N,"markValidation",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(N,"validateItem",{enumerable:!0,get:function(){return te}}),Object.defineProperty(N,"buildItem",{enumerable:!0,get:function(){return w}}),Object.defineProperty(N,"buildBlock",{enumerable:!0,get:function(){return G}}),Object.defineProperty(N,"buildChildren",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(N,"mount",{enumerable:!0,get:function(){return D}}),Object.defineProperty(N,"wizardGoTo",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(N,"wizardNext",{enumerable:!0,get:function(){return V}}),Object.defineProperty(N,"wizardBack",{enumerable:!0,get:function(){return se}});const e=Z("packages/modules/form/styles.js"),R=e.NS,$=e.injectColsBreakpoint,q=e.NEVER_STACK_COLS_CONTAINER,k=Z("packages/modules/form/model.js"),P=k.cssSize,j=k.isEmpty,S=Z("packages/modules/form/ids.js").nextId,h=Z("packages/modules/form/controls/registry.js").resolveControl,c=Z("packages/modules/form/rules.js").applyRules,_=Z("packages/modules/form/enter-submit.js").attachEnterSubmit,a=Z("packages/modules/form/state.js").syncRecordState,f=Z("packages/modules/form/stepper.js").createStepper,v=Z("packages/modules/form/validation.js"),m=v.normalizeHookResult,g=v.validateValue,H=Z("packages/modules/form/extras.js"),u=H.buildTooltip,s=H.buildLock,o=H.buildAddons,r=H.renderAvatarAddon,l=H.buildPanel,d="data-lattice-separator-label-styles";function T(){return`
1576
- .${R}__separator--labelled{
1602
+ .${B}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1603
+ .${B}__panel-body{ min-width:0; min-height:0; }
1604
+ .${B}__panel-body[hidden]{ display:none; }
1605
+ `.trim()}function b(d){const c=d&&d.documentElement;if(!c||(P(d),c.getAttribute(g)))return;c.setAttribute(g,"1");const i=d.createElement("style");i.textContent=u(),(d.head||d.body||c).appendChild(i)}function v(d,c,i,r){c.addEventListener(i,r),d.disposers.push(()=>c.removeEventListener(i,r))}function t(d,c){if(c==null||c==="")return null;if(c.nodeType){const l=c.cloneNode(!0);return l.setAttribute&&l.setAttribute("aria-hidden","true"),l}const i=z(d,String(c));if(i)return i;const r=d.createElement("span");return r.className=`${B}__icon-glyph`,r.setAttribute("aria-hidden","true"),r.textContent=String(c).slice(0,2),r}function a(d,c){const{labelEl:i,item:r,labelPosition:l,labelWidth:f}=c,T=r.tooltip;if(typeof T!="string"||T===""||l==="hidden")return null;b(d.doc);const V=d.doc,D=V.createElement("div");D.className=`${B}__label-group`,l==="left"&&f!=null&&(D.style.flex=`0 0 ${typeof f=="number"?`${f}px`:String(f)}`),D.appendChild(i);const M=X("lat-form-tip"),w=V.createElement("span");w.className=`${B}__tooltip-wrap`;const I=V.createElement("button");I.type="button",I.className=`${B}__tooltip-trigger`,I.setAttribute("aria-label",d.t("form.tooltip.help")),I.setAttribute("aria-expanded","false"),I.setAttribute("aria-controls",M),I.textContent="?";const W=V.createElement("span");W.className=`${B}__tooltip`,W.setAttribute("id",M),W.setAttribute("role","tooltip"),W.textContent=T,w.appendChild(I),w.appendChild(W),D.appendChild(w);let G=!1;const ne=()=>{I.setAttribute("aria-expanded","true"),W.classList.add(`${B}__tooltip--open`)},be=()=>{G||(I.setAttribute("aria-expanded","false"),W.classList.remove(`${B}__tooltip--open`))};return v(d,I,"mouseenter",ne),v(d,I,"mouseleave",be),v(d,I,"focus",ne),v(d,I,"blur",be),v(d,I,"click",Ae=>{Ae.stopPropagation(),G=!G,G?ne():be()}),{group:D,tooltipId:M}}function s(d,c,i,r){const l=r&&r.tagName;if(!(i.lockIcon!==!1&&(l==="INPUT"||l==="TEXTAREA")&&(i.readOnly===!0||i.readOnlyWhen!=null)))return null;b(d.doc);const T=d.doc.createElement("span");T.className=`${B}__lock`,T.setAttribute("aria-hidden","true"),T.title=d.t("form.readonly");const V=z(d.doc,"lock");return V&&T.appendChild(V),c.appendChild(T),{el:T}}function p(d,c){if(!Array.isArray(d))return null;const i=c==null?"":String(c);for(const r of d){if(r!=null&&typeof r=="object"&&Array.isArray(r.options)){const l=p(r.options,c);if(l)return l;continue}if(r!=null&&typeof r=="object"){const l=r.value==null?"":String(r.value);if(l===i)return{label:r.label!=null?String(r.label):l,avatar:r.avatar,color:r.color}}else{const l=String(r);if(l===i)return{label:l,avatar:void 0,color:void 0}}}return null}function y(d,c,i){let r=null,l=c==null?"":String(c),f;if(typeof d=="function")r=d(c,i);else if(d===!0){const T=p(i.options,c);T&&(l=T.label,f=T.color,T.avatar!=null&&T.avatar!==""&&(r=String(T.avatar)))}else r=String(d);if(r==null||r===""){if(l==null||l==="")return null;r=j(l)}return{avatar:r,label:l,color:f}}function m(d,c,i,r,l){for(;c.firstChild;)c.removeChild(c.firstChild);const f=y(i.avatar,r,l);f&&c.appendChild(k(d,f))}function h(d,c){const i=c.addons;if(!Array.isArray(i)||i.length===0)return null;b(d.doc);const r=d.doc,l=r.createElement("div");l.className=`${B}__addons`;const f=[];for(const T of i){if(T==null||typeof T!="object")continue;if(T.avatar!==void 0&&T.avatar!==null&&T.avatar!==!1){const I=r.createElement("span");I.className=`${B}__addon-avatar`,I.setAttribute("aria-hidden","true"),l.appendChild(I),f.push({el:I,spec:T,avatar:!0});continue}const D=T.href,M=r.createElement(D!=null?"a":"button");M.className=`${B}__addon`,D==null?M.type="button":M.href=String(D),T.ariaLabel!=null&&T.ariaLabel!==""&&(M.setAttribute("aria-label",String(T.ariaLabel)),M.title=T.tooltip!=null&&T.tooltip!==""?String(T.tooltip):String(T.ariaLabel));const w=t(r,T.icon);w&&M.appendChild(w),l.appendChild(M),f.push({el:M,spec:T,avatar:!1})}return{bar:l,entries:f}}function R(d,c,i,r,l){b(d.doc);const f=d.doc,T=f.createElement("section");T.className=`${B}__panel`;const V=f.createElement("div");V.className=`${B}__panel-header`;const D=f.createElement("div");if(D.className=`${B}__panel-heading`,c.title!=null){const I=f.createElement("h3");I.className=`${B}__panel-title`,I.textContent=c.title,D.appendChild(I)}if(c.subtitle!=null){const I=f.createElement("p");I.className=`${B}__panel-subtitle`,I.textContent=c.subtitle,D.appendChild(I)}V.appendChild(D);const M=f.createElement("div");M.className=`${B}__panel-actions`,V.appendChild(M),T.appendChild(V);const w=f.createElement("div");w.className=`${B}__panel-body`,c.axis&&(w.classList.add(n(c.axis)),l.buildChildren(d,w,c.blocks,c.axis,r)),T.appendChild(w);for(const I of c.actions){const W=f.createElement("button");W.type="button",W.className=`${B}__panel-action`,I.ariaLabel!=null&&I.ariaLabel!==""&&(W.setAttribute("aria-label",String(I.ariaLabel)),W.title=String(I.ariaLabel));const G=t(f,I.icon);G&&W.appendChild(G),typeof I.onClick=="function"&&v(d,W,"click",()=>{I.onClick()}),M.appendChild(W)}if(c.collapsible){const I=f.createElement("button");I.type="button",I.className=`${B}__panel-action ${B}__panel-collapse`,I.setAttribute("aria-expanded","true");const W=d.t("form.panel.collapse");I.setAttribute("aria-label",W),I.title=W;const G=z(f,"chevronUp");G&&I.appendChild(G);let ne=!1;v(d,I,"click",()=>{ne=!ne,w.hidden=ne,I.setAttribute("aria-expanded",ne?"false":"true");const be=d.t(ne?"form.panel.expand":"form.panel.collapse");for(I.setAttribute("aria-label",be),I.title=be;I.firstChild;)I.removeChild(I.firstChild);const Ae=z(f,ne?"chevronDown":"chevronUp");Ae&&I.appendChild(Ae)}),M.appendChild(I)}return l.applyCss(T,c.css),c.spacing!=null&&T.style.setProperty("--lattice-form-item-gap",c.spacing),c.hidden&&(T.hidden=!0),i.appendChild(T),T}}),Ne("packages/modules/form/view.js",function(N,Z){"use strict";Object.defineProperty(N,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return V}}),Object.defineProperty(N,"applyCss",{enumerable:!0,get:function(){return D}}),Object.defineProperty(N,"runValidation",{enumerable:!0,get:function(){return le}}),Object.defineProperty(N,"markValidation",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(N,"validateItem",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"buildItem",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"buildBlock",{enumerable:!0,get:function(){return U}}),Object.defineProperty(N,"buildChildren",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(N,"mount",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(N,"wizardGoTo",{enumerable:!0,get:function(){return de}}),Object.defineProperty(N,"wizardNext",{enumerable:!0,get:function(){return _}}),Object.defineProperty(N,"wizardBack",{enumerable:!0,get:function(){return re}});const e=Z("packages/modules/form/styles.js"),B=e.NS,S=e.injectColsBreakpoint,X=e.NEVER_STACK_COLS_CONTAINER,C=Z("packages/modules/form/model.js"),z=C.cssSize,P=C.isEmpty,j=Z("packages/modules/form/ids.js").nextId,g=Z("packages/modules/form/controls/registry.js").resolveControl,u=Z("packages/modules/form/rules.js").applyRules,v=Z("packages/modules/form/enter-submit.js").attachEnterSubmit,a=Z("packages/modules/form/state.js").syncRecordState,p=Z("packages/modules/form/stepper.js").createStepper,y=Z("packages/modules/form/validation.js"),m=y.normalizeHookResult,h=y.validateValue,R=Z("packages/modules/form/extras.js"),d=R.buildTooltip,c=R.buildLock,i=R.buildAddons,r=R.renderAvatarAddon,l=R.buildPanel,f="data-lattice-separator-label-styles";function T(){return`
1606
+ .${B}__separator--labelled{
1577
1607
  display:flex; align-items:center; gap:var(--lattice-space);
1578
1608
  border-top:0; margin:var(--lattice-space) 0; width:100%;
1579
1609
  }
1580
- .${R}__separator--labelled .${R}__separator-rule{
1610
+ .${B}__separator--labelled .${B}__separator-rule{
1581
1611
  flex:1 1 auto; min-width:0; height:0;
1582
1612
  border-top:var(--lattice-border-width) solid var(--lattice-border-color);
1583
1613
  }
1584
- .${R}__separator--labelled .${R}__separator-label{
1614
+ .${B}__separator--labelled .${B}__separator-label{
1585
1615
  color:var(--lattice-foreground-muted);
1586
1616
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
1587
1617
  }
1588
- `.trim()}function U(X){const p=X&&X.documentElement;if(!p||p.getAttribute(d))return;p.setAttribute(d,"1");const I=X.createElement("style");I.textContent=T(),(X.head||X.body||p).appendChild(I)}function z(X,p){if(p!=null){if(typeof p=="string"){if(p.trim()){const I=typeof X.style.cssText=="string"?X.style.cssText:"";X.style.cssText=I?`${I};${p}`:p}return}for(const I of Object.keys(p))X.style[I]=p[I]}}function L(X){return X==="cols"?`${R}__cols`:X==="items"?`${R}__items`:`${R}__rows`}function y(X,p,I,Q){p.addEventListener(I,Q),X.disposers.push(()=>p.removeEventListener(I,Q))}function M(X){if(X==null)return null;const p=X.tagName;return p==="INPUT"||p==="TEXTAREA"||p==="SELECT"?X:typeof X.querySelector=="function"?X.querySelector("input, textarea, select"):null}function W(X,p,I){const Q={name:p.item.name,value:I,previousValue:p.value,item:p.item},re=X.emitter.emitBefore("beforeChange",Q,"user"),me=()=>{p.value=I,p.item.value=I,we(p);const Le=p.control&&p.control.__latChangeDetail,Se=p.validation&&p.validation.valid===!1;X.emitter.emit("change",{name:p.item.name,value:I,previousValue:Q.previousValue,item:p.item,...Le&&typeof Le=="object"?Le:{}}),c(X),(p.item.validationMode==="change"||Se)&&te(X,p)},be=Le=>{p.def.write(p.control,p.value),Ae(X,p,Le)},ke=Le=>{if(!Le){p.def.write(p.control,p.value);return}const Se=B(X,p,I);Se&&typeof Se.then=="function"?Se.then(je=>{je.ok?me():be(je.message)}):Se.ok?me():be(Se.message)};re&&typeof re.then=="function"?re.then(ke):ke(re)}function B(X,p,I){if(p.ruleRequired&&j(I))return{ok:!1,message:X.t("form.required")};const Q=p.def;if(typeof Q.validate!="function")return{ok:!0,message:null};const re=Q.validate(p.control,p.item,I);return re&&typeof re.then=="function"?re.then(me=>ne(X,me)):ne(X,re)}function ne(X,p){return p===!1?{ok:!1,message:X.t("form.invalid")}:typeof p=="string"?{ok:!1,message:p}:{ok:!0,message:null}}function Ae(X,p,I){let Q=p.errorEl;Q||(Q=X.doc.createElement("div"),Q.className=`${R}__error`,Q.id=S("lat-form"),p.controlWrap.appendChild(Q),p.errorEl=Q);const re=I==null||I===""?X.t("form.invalid"):String(I);Q.textContent=re,p.el.setAttribute("data-invalid","true"),p.control.setAttribute("aria-invalid","true");const me=(p.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!p.validationEl.hidden&&p.validationEl.textContent===re&&me.includes(p.validationEl.id))&&!me.includes(Q.id)&&(me.push(Q.id),p.control.setAttribute("aria-describedby",me.join(" ")))}function we(X){X.errorEl&&(X.errorEl.remove(),X.errorEl=null),X.el.removeAttribute("data-invalid"),X.control.removeAttribute("aria-invalid")}function ce(X,p){const I=p.value,Q=p.item;if(typeof p.def.validate=="function"){const re=m(p.def.validate(p.control,Q,I),Q,X.t);if(re)return re}return g(Q,I,X.t,p.ruleRequired===!0)}function A(X){const p=X.control;if(!p||typeof p.querySelector!="function")return p||null;let I=null;try{I=p.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{I=null}return I||p}function oe(X,p,I){const Q=p.item,re=p.validationEl;if(p.validation.pristine=!1,p.preEl&&(p.preEl.hidden=!0),I){p.validation.valid=!1,p.validation.code=I.code,p.validation.message=I.message,p.control.setAttribute("aria-invalid","true");const be=p.tooltipId?`${p.tooltipId} ${re.id}`:re.id;p.control.setAttribute("aria-describedby",be);const ke=A(p);ke&&(ke.setAttribute("aria-invalid","true"),ke.setAttribute("aria-describedby",be)),re.textContent=I.message,re.className=`${R}__validation ${R}__validation--error`,re.hidden=!1;return}p.validation.valid=!0,p.validation.code=null,p.validation.message=null,p.control.removeAttribute("aria-invalid"),p.tooltipId?p.control.setAttribute("aria-describedby",p.tooltipId):p.control.removeAttribute("aria-describedby");const me=A(p);me&&me!==p.control&&(me.removeAttribute("aria-invalid"),p.tooltipId?me.setAttribute("aria-describedby",p.tooltipId):me.removeAttribute("aria-describedby")),typeof Q.successMessage=="string"&&Q.successMessage!==""?(re.textContent=Q.successMessage,re.className=`${R}__validation ${R}__validation--success`,re.hidden=!1):(re.textContent="",re.className=`${R}__validation`,re.hidden=!0)}function te(X,p){typeof p.def.reset=="function"&&p.def.reset(p.control,p.item);const I=ce(X,p);oe(X,p,I);const Q=I==null;return X.emitter.emit("validated",{name:p.item.name,item:p.item,value:p.value,valid:Q,failures:I?[{name:p.item.name,rule:I.code,message:I.message}]:[]}),Q}function E(X,p){const I=p.control,Q=p.item,re=p.def,me=be=>()=>{X.emitter.emit(be,{name:Q.name,item:Q}),be==="blur"&&Q.validationMode==="blur"&&te(X,p)};if(re.kind==="field"){const be=()=>{X.emitter.emit("input",{name:Q.name,value:re.read(I,Q),item:Q})},ke=()=>{W(X,p,re.read(I,Q))};y(X,I,"input",be),y(X,I,"change",ke);for(const Le of re.domEvents||[])y(X,I,Le,je=>{const O=je&&typeof je=="object"&&je.detail&&typeof je.detail=="object"?je.detail:null;X.emitter.emit(Le,O?{name:Q.name,item:Q,...O}:{name:Q.name,value:re.read(I,Q),item:Q})})}else re.kind==="toggle"?y(X,I,"change",()=>{W(X,p,re.read(I,Q))}):re.kind==="button"&&y(X,I,"click",()=>{I.disabled||I.getAttribute("aria-disabled")==="true"||X.emitter.emit("click",{name:Q.name,item:Q,value:null})});re.kind!=="display"&&(y(X,I,"focus",me("focus")),y(X,I,"blur",me("blur")))}function F(X,p){if(typeof X=="string"&&/%$/.test(X.trim())){const I=parseFloat(X);if(Number.isFinite(I)){const Q=Math.round(I*p/100*1e6)/1e6;return`0 0 calc(${I}% - ${Q} * var(--lattice-space))`}}return`0 0 ${P(X)}`}function w(X,p,I,Q={}){const re=h(p.type)||h("text"),me=p.labelPosition!=null?p.labelPosition:Q.labelPosition!=null?Q.labelPosition:"top",be=p.labelWidth!=null?p.labelWidth:Q.labelWidth,ke=p.requiredHint!==void 0?p.requiredHint:Q.requiredHint,Le=X.doc.createElement("div");Le.className=`${R}__item`,Le.setAttribute("data-label-position",me);const Se=re.build(p,X),je=re.action===!0,O=!je&&p.label!=null&&p.label!=="";let ee=null,de=null;if(O){ee=X.doc.createElement("label"),ee.className=`${R}__label`,ee.textContent=String(p.label);const De=S("lat-form");ee.setAttribute("for",De),(M(Se)||Se).id=De,me==="hidden"&&ee.classList.add(`${R}__label--hidden`);const ge=u(X,{labelEl:ee,item:p,labelPosition:me,labelWidth:be});ge?(de=ge.tooltipId,Le.appendChild(ge.group)):(me==="left"&&be!=null&&(ee.style.flex=`0 0 ${P(be)}`),Le.appendChild(ee))}else if(me==="hidden"&&!je){const De=M(Se);De&&p.placeholder!=null&&p.placeholder!==""&&De.setAttribute("aria-label",String(p.placeholder))}const K=X.doc.createElement("div");K.className=`${R}__control`,K.appendChild(Se);const pe=s(X,K,p,Se),Ce=o(X,p);let ye=K;if(Ce&&(ye=X.doc.createElement("div"),ye.className=`${R}__field`,ye.appendChild(K),ye.appendChild(Ce.bar)),Le.appendChild(ye),!je&&p.helpMessage!=null&&p.helpMessage!==""){const De=X.doc.createElement("div");De.className=`${R}__help`,De.textContent=String(p.helpMessage),K.appendChild(De)}let ve=null;!je&&p.preMessage!=null&&p.preMessage!==""&&(ve=X.doc.createElement("div"),ve.className=`${R}__pre`,ve.textContent=String(p.preMessage),K.appendChild(ve));const Ie=X.doc.createElement("div");Ie.className=`${R}__validation`,Ie.id=S("lat-form"),Ie.hidden=!0,K.appendChild(Ie),p.width!=null&&(Q.colsGapCount!=null?Le.style.setProperty("--lattice-item-flex",F(p.width,Q.colsGapCount)):(Le.style.width=P(p.width),Le.style.flex="0 0 auto")),me==="left"&&(ye.style.flex="1 1 auto"),je&&me==="left"&&be!=null&&!(p.props&&p.props.fullWidth===!0)&&(ye.style.paddingLeft=`calc(${P(be)} + var(--lattice-space))`),z(Le,p.css);const He=re.read(Se,p),Ee={item:p,el:Le,control:Se,controlWrap:K,def:re,value:He,hidden:p.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ie,preEl:ve,labelEl:ee,labelPosition:me,requiredHint:ke,placeholderEl:M(Se),placeholderBase:p.placeholder!=null?String(p.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:de,lockEl:pe?pe.el:null};if(p.value=He,de&&Ee.control.setAttribute("aria-describedby",de),Ce)for(const De of Ce.entries){if(De.avatar){r(X.doc,De.el,De.spec,Ee.value,Ee.item);continue}typeof De.spec.onClick=="function"&&y(X,De.el,"click",()=>{De.spec.onClick(Ee.value,Ee.item)})}if(Ee.syncLock=()=>{if(!Ee.lockEl)return;const De=Ee.item.readOnly===!0||Ee.ruleReadOnly;Ee.lockEl.hidden=!De,Ee.lockEl.parentElement.classList.toggle(`${R}__control--lock`,De)},Ee.syncAddons=()=>{if(!Ce)return;const De=Ee.item.disabled===!0;for(const ge of Ce.entries){if(ge.avatar){r(X.doc,ge.el,ge.spec,Ee.value,Ee.item);continue}ge.el.tagName==="A"?ge.el.setAttribute("aria-disabled",De?"true":"false"):ge.el.disabled=De}},a(Ee),Ee.hidden&&(Le.hidden=!0),re.custom&&Se.__latticeFormApi){const De=Se.__latticeFormApi;De._read=()=>Ee.value,De._write=ge=>{Ee.value=ge,Ee.item.value=ge,re.write(Se,ge),c(X)},De._commit=ge=>{W(X,Ee,ge)},De._input=ge=>{X.emitter.emit("input",{name:Ee.item.name,value:ge,item:Ee.item})}}return typeof re.destroy=="function"&&X.disposers.push(()=>re.destroy(Se)),E(X,Ee),X.order.push(Ee),p.name!=null&&X.items.set(p.name,Ee),I.appendChild(Le),Ee}function G(X,p,I,Q={}){const re={labelPosition:p.labelPosition!=null?p.labelPosition:Q.labelPosition,labelWidth:p.labelWidth!=null?p.labelWidth:Q.labelWidth,requiredHint:Q.requiredHint};if(p.kind==="panel")return l(X,p,I,re,{buildChildren:Y,applyCss:z});if(p.kind==="spacer"){const be=X.doc.createElement("div");return be.className=`${R}__spacer`,z(be,p.css),p.hidden&&(be.hidden=!0),I.appendChild(be),be}if(p.kind==="separator"){const be=X.doc.createElement("div");be.className=`${R}__separator`,be.setAttribute("role","separator");const ke=p.label;if(ke!=null){U(X.doc),be.classList.add(`${R}__separator--labelled`);const Le=X.t(ke);be.setAttribute("aria-label",Le);const Se=X.doc.createElement("span");Se.className=`${R}__separator-rule`,Se.setAttribute("aria-hidden","true");const je=X.doc.createElement("span");je.className=`${R}__separator-label`,je.textContent=Le;const O=X.doc.createElement("span");O.className=`${R}__separator-rule`,O.setAttribute("aria-hidden","true"),be.appendChild(Se),be.appendChild(je),be.appendChild(O)}else be.setAttribute("aria-label",X.t("form.separator"));return z(be,p.css),p.hidden&&(be.hidden=!0),I.appendChild(be),be}if(p.kind==="fieldset"){const be=X.doc.createElement("fieldset");if(be.className=`${R}__fieldset`,p.legend!=null){const Le=X.doc.createElement("legend");Le.className=`${R}__legend`,Le.textContent=p.legend,be.appendChild(Le)}const ke=X.doc.createElement("div");return ke.className=`${R}__fieldset-body`,p.axis&&ke.classList.add(L(p.axis)),p.axis&&Y(X,ke,p.blocks,p.axis,re),be.appendChild(ke),z(be,p.css),p.spacing!=null&&be.style.setProperty("--lattice-form-item-gap",p.spacing),p.hidden&&(be.hidden=!0),I.appendChild(be),be}const me=X.doc.createElement("div");return me.className=L(p.axis),p.axis&&Y(X,me,p.blocks,p.axis,re),z(me,p.css),p.spacing!=null&&me.style.setProperty("--lattice-form-item-gap",p.spacing),p.hidden&&(me.hidden=!0),I.appendChild(me),me}function Y(X,p,I,Q,re={}){const me=Q==="cols"?{...re,colsGapCount:I.length-1}:re;for(const be of I)be.kind==="item"?w(X,be,p,me):G(X,be,p,re)}function ie(X){for(let p=X&&X.parentNode;p;p=p.parentNode){const I=p.classList;if(I&&typeof I.contains=="function"&&(I.contains("lattice")||I.contains("lattice-tokens")))return!0}return!1}function D(X){const p=X.el;for(;p.firstChild;)p.removeChild(p.firstChild);X.items.clear(),X.order.length=0;const I=X.model;p.classList.add(R,L(I.axis)),p.setAttribute("data-density",I.density),ie(p)?p.removeAttribute("data-lattice-standalone"):p.setAttribute("data-lattice-standalone","true"),I.colsBreakpoint===!1?p.style.setProperty("--lattice-cols-container",q):I.colsBreakpoint!==480&&p.style.setProperty("--lattice-cols-container",$(X.doc,I.colsBreakpoint)),X.disposers.push(()=>{p.classList.remove(`${R}__rows`,`${R}__cols`,`${R}__items`)}),z(p,I.css),I.spacing!=null&&p.style.setProperty("--lattice-form-item-gap",I.spacing),I.labelGap!=null&&p.style.setProperty("--lattice-form-label-gap",I.labelGap);const Q={labelPosition:I.labelPosition,labelWidth:I.labelWidth,requiredHint:I.requiredHint};I.steps&&I.steps.length?J(X,Q):Y(X,p,I.blocks,I.axis==="cols"?"cols":"rows",Q),c(X),_(X)}function J(X,p={}){const I=X.model,Q=I.steps,re=X.doc,me=X.el,be=re.createElement("div");me.appendChild(be);const ke=f(be,{doc:re,t:X.t,steps:Q.map(Ce=>({id:Ce.id,label:Ce.label})),active:0,orientation:I.stepOrientation,onGoTo:Ce=>{ae(X,Ce)}}),Le=[];let Se=X.order.length;for(const Ce of Q){const ye=re.createElement("div");ye.className=`${R}__step`,ye.hidden=!0,Y(X,ye,Ce.blocks,Ce.axis,p),Ce.css&&z(ye,Ce.css),me.appendChild(ye);const ve=X.order.length;ye.__records=X.order.slice(Se,ve),Se=ve,Le.push(ye)}const je=re.createElement("div");je.className=`${R}__step-nav`;const O=re.createElement("button");O.type="button",O.className=`${R}__step-back`,O.textContent=X.t("form.back");const ee=re.createElement("button");ee.type="button",ee.className=`${R}__step-next`,ee.textContent=X.t("form.next"),je.appendChild(O),je.appendChild(ee),me.appendChild(je);const de={steps:Q,bodies:Le,stepper:ke,back:O,next:ee,active:0};X.wizard=de;const K=()=>{ke.setActive(de.active),Le.forEach((Ce,ye)=>{Ce.hidden=ye!==de.active}),O.disabled=de.active===0,ee.textContent=de.active===Q.length-1?X.t("form.finish"):X.t("form.next")},pe=Ce=>{const ye=Le[Ce].__records||[];for(const ve of ye)if(ve.item.name!=null&&!(ve.def.kind!=="field"&&ve.def.kind!=="toggle")&&ve.item.disabled!==!0&&!(ve.ruleHidden===!0||ve.hidden===!0)&&!(ve.item.required!==!0&&ve.item.validation==null&&typeof ve.def.validate!="function"&&ve.ruleRequired!==!0)&&!te(X,ve))return typeof ve.def.focus=="function"?ve.def.focus(ve.control):typeof ve.control.focus=="function"&&ve.control.focus(),ve;return null};de._stepInvalid=pe,de._render=K,O.addEventListener("click",()=>{se(X)}),ee.addEventListener("click",()=>{V(X)}),K()}async function ae(X,p){const I=X.wizard;if(!I)return!1;const Q=I.steps.length,re=Number(p);if(!Number.isFinite(re)||re<0||re>=Q)return!1;const me=I.active;if(re===me)return!1;if(re>me&&X.model.validateSteps!==!1)for(let be=me;be<re;be+=1){if(I._stepInvalid(be))return I.stepper.setStatus(be,"error"),!1;I.stepper.setStatus(be,"complete")}return I.active=re,I._render(),!0}function V(X){const p=X.wizard;if(!p)return Promise.resolve(!1);if(p.active>=p.steps.length-1){if(X.model.validateSteps===!1)return Promise.resolve(!0);const I=p._stepInvalid(p.active);return p.stepper.setStatus(p.active,I?"error":"complete"),Promise.resolve(I==null)}return ae(X,p.active+1)}function se(X){const p=X.wizard;return p?ae(X,p.active-1):Promise.resolve(!1)}}),Ne("packages/modules/form/emitter.js",function(N,Z){"use strict";Object.defineProperty(N,"FORM_EVENTS",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"Emitter",{enumerable:!0,get:function(){return $}});const e=new Set(["api","user"]),R=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class ${#e=new Map;on(k,P){if(typeof P!="function")return()=>{};let j=this.#e.get(k);return j||(j=new Set,this.#e.set(k,j)),j.add(P),()=>this.off(k,P)}off(k,P){const j=this.#e.get(k);j&&j.delete(P)}emit(k,P){const j=this.#e.get(k),C=this.#e.get("*");if((!j||j.size===0)&&(!C||C.size===0))return;const S={...P||null,type:k},x=[],h=n=>{for(const c of[...n])try{c(S)}catch(b){x.push(b)}};j&&j.size&&h(j),C&&C.size&&h(C);for(const n of x)queueMicrotask(()=>{throw n})}emitBefore(k,P,j){const C=this.#e.get(k);if(!C||C.size===0)return!0;let S=!1,x=null;const h=a=>{S=!0,a!=null&&x===null&&(x=String(a))},n=j||P&&P.origin,c={...P||null,type:k,origin:e.has(n)?n:"user",get defaultPrevented(){return S},get reason(){return x},preventDefault(a){h(a)}},b=[...C],_=()=>(S&&x===null&&(x="prevented"),S&&P&&typeof P=="object"&&(P.reason=x),!S),t=[];for(let a=0;a<b.length;a++){const i=b[a];try{const f=i(c);f&&typeof f.then=="function"?t.push(f):f===!1&&h("prevented")}catch(f){h("error"),console.warn(`lattice-form: a '${k}' before-handler threw; the commit was cancelled.`,f)}}return t.length===0?_():Promise.allSettled(t).then(a=>{for(const i of a)i.status==="rejected"?(h("error"),console.warn(`lattice-form: a '${k}' before-handler rejected; the commit was cancelled.`,i.reason)):i.value===!1&&h("prevented");return _()})}clear(){this.#e.clear()}}}),Ne("packages/modules/form/bind-router.js",function(N,Z){"use strict";Object.defineProperty(N,"routerBinding",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"writeRouterRecord",{enumerable:!0,get:function(){return $}});function e(q){return q!==null&&typeof q=="object"&&!Array.isArray(q)}function R(q){const{router:k,route:P,key:j}=q,C=n=>n!=null&&String(n.rowKey??n.id)===String(j);return{kind:"router",record:()=>k&&typeof k.get=="function"?k.get(P,j):void 0,items:()=>[],density:()=>{},subscribe:n=>{if(!k||typeof k.subscribe!="function")return()=>{};const c=_=>{if(_){for(const t of _.add||[])C(t)&&n(null,null,t);for(const t of _.update||[])C(t)&&n(null,null,t)}},b=k.subscribe(P,c);return typeof b=="function"?b:()=>{}},save:n=>$(q,n)}}function $(q,k){const{router:P,route:j,key:C,onSave:S}=q;if(!Object.keys(k||{}).length)return!0;const h=()=>P&&typeof P.get=="function"?P.get(j,C):void 0,n=a=>{!P||typeof P.apply!="function"||P.apply([{op:"upsert",row:a}])},c=()=>{!P||typeof P.apply!="function"||(e(b)?P.apply([{op:"upsert",row:b}]):P.apply([{op:"delete",row:_}]))},b=h(),_={...e(b)?b:{},...k};if(n(_),typeof S!="function")return!0;let t;try{t=S(k,_)}catch{return c(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(c(),!1)):!0}}),Ne("packages/modules/form/bind.js",function(N,Z){"use strict";Object.defineProperty(N,"resolveBind",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"isBound",{enumerable:!0,get:function(){return _}}),Object.defineProperty(N,"applyBinding",{enumerable:!0,get:function(){return t}});const R=Z("packages/modules/form/model.js").DENSITIES,q=Z("packages/modules/form/bind-router.js").routerBinding,k=new Set(["number","currency","percent","integer","decimal","duration"]);function P(a){const i=a&&a.dataType;if(i&&(i.unitConfig||i.temperatureConfig))return!0;const f=a&&a.edit?a.edit.editor:null;return f==="unit"||f==="temperature"}function j(a){return a!==null&&typeof a=="object"&&!Array.isArray(a)}function C(a){const i=a&&a.edit?a.edit.editor:null,f=a&&a.type;return i==="checkbox"||f==="boolean"?"checkbox":i==="number"||f!=null&&k.has(f)||P(a)?"number":"input"}function S(a){const i=a&&a.columns&&typeof a.columns.all=="function"?a.columns.all():[],f=[];for(const v of i){if(!v||!v.field||v.generated||v.computed)continue;const m={type:C(v),name:v.field,label:v.title,format:v.format},g=v.dataType,H=g&&g.unitConfig,u=g&&g.temperatureConfig;H?Object.assign(m,{system:H.system,unit:H.unit,binary:H.binary,decimals:H.decimals,minDecimals:H.minDecimals,maxDecimals:H.maxDecimals,display:H.display,group:H.group,space:H.space,placement:H.placement,significantFigures:H.significantFigures,compound:H.compound,nullDisplay:H.nullDisplay}):u&&Object.assign(m,{scale:u.scale,display:u.display,decimals:u.decimals,minDecimals:u.minDecimals,maxDecimals:u.maxDecimals,space:u.space,nullDisplay:u.nullDisplay}),f.push(m)}return f}function x(a,i){const f=a&&a.columns&&typeof a.columns.all=="function"?a.columns.all():[];for(const v of f)if(v&&v.field===i)return v;return null}function h(a){const i=a&&typeof a.get=="function"?a.get("density"):void 0;return R.includes(i)?i:void 0}function n(a){const{grid:i,rowKey:f}=a,v=()=>{const u=i&&i.rows&&typeof i.rows.byKey=="function"?i.rows.byKey(f):null;return u&&j(u.data)?{...u.data}:{}},m=u=>{const s=x(i,u);return s?s.id:u};return{kind:"grid",record:v,items:()=>S(i),density:()=>h(i),subscribe:u=>{if(!i||typeof i.on!="function")return()=>{};const s=o=>{if(!o||o.key!==f)return;const r=i.columns&&typeof i.columns.get=="function"?i.columns.get(o.colId):null,l=r?r.field:o.colId;l&&u(l,o.value)};return i.on("cell:changed",s)},save:u=>{const s=Object.keys(u);if(!s.length)return!0;if(!i||!i.edit||typeof i.edit.setCells!="function")return!1;const o=s.map(l=>({key:f,colId:m(l),value:u[l]})),r=i.edit.setCells(o,"cell",{origin:"form"});return r&&typeof r.then=="function"?r.then(l=>l>0):r>0}}}function c(a){return{kind:"values",record:()=>({...a}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:v=>{for(const m of Object.keys(v))a[m]=v[m];return!0}}}function b(a){const i=a&&a.bind;return i==null||typeof i!="object"?null:i.grid!=null&&j(i.grid)?n(i):i.router!=null?q(i):c(i)}function _(a){return!!(a&&a.bind!=null&&typeof a.bind=="object")}function t(a,i,f){a.bound=f;const v=(H,u)=>{const s=i.getItem(H);s&&s.setValue(u)},m=(H,u,s)=>{if(s!=null){for(const o of Object.keys(s))if(a.items.has(o)){if(a.dirty.has(o)){a.conflicts.add(o);continue}a.baseline[o]=s[o],v(o,s[o])}return}if(a.items.has(H)){if(a.dirty.has(H)){a.conflicts.add(H);return}a.baseline[H]=u,v(H,u)}},g=f.record();if(g!=null&&typeof g=="object")for(const H of Object.keys(g))a.items.has(H)&&(a.baseline[H]=g[H],v(H,g[H]));a.disposers.push(i.on("change",H=>{a.dirty.add(H.name),a.conflicts.delete(H.name)})),a.disposers.push(f.subscribe(m))}}),Ne("packages/modules/form/controls/container.js",function(N,Z){"use strict";Object.defineProperty(N,"attachToContainer",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"attachHtmlToContainer",{enumerable:!0,get:function(){return H}}),Object.defineProperty(N,"getContainerWidget",{enumerable:!0,get:function(){return u}});const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/modules/form/model.js").cssSize,k=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),P=/^<!--[\s\S]*?-->/,j=/^<![^>]*>/,C=/^<\/([a-zA-Z][a-zA-Z0-9:-]*)\s*>/,S=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,x=`(?:\\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s"'>]+))?)*`,h=new RegExp(`^<([a-zA-Z][a-zA-Z0-9:-]*)(${x})\\s*(/?)>`),n={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function c(s){return s.replace(/&(#x?[0-9a-fA-F]+|[a-zA-Z]+);/g,(o,r)=>{if(r[0]==="#"){const l=r[1]==="x"||r[1]==="X",d=parseInt(r.slice(l?2:1),l?16:10);return Number.isFinite(d)?String.fromCodePoint(d):o}return n[r]!==void 0?n[r]:o})}function b(s){const o=s.replace(/[\s\u0000-\u001f]+/g,"");return/^javascript:/i.test(o)}function _(s,o){if(!o)return;S.lastIndex=0;let r=S.exec(o);for(;r;){const l=r[1];if(!/^on/i.test(l)){const d=r[2]!==void 0?r[2]:r[3]!==void 0?r[3]:r[4]!==void 0?r[4]:"",T=c(d);b(T)||s.setAttribute(l,T)}r=S.exec(o)}}function t(s,o,r){const l=[o];let d=0,T=!1;const U=()=>l[l.length-1];for(;d<r.length;){if(T){const M=r.slice(d),W=/<\/script\s*>/i.exec(M);if(!W)break;d+=W.index+W[0].length,T=!1;continue}const z=r.indexOf("<",d);if(z===-1){U().appendChild(s.createTextNode(c(r.slice(d))));break}z>d&&U().appendChild(s.createTextNode(c(r.slice(d,z))));const L=r.slice(z);let y=P.exec(L);if(y){d=z+y[0].length;continue}if(y=C.exec(L),y){const M=y[1].toLowerCase();for(let W=l.length-1;W>0;W-=1)if(l[W].__latTag===M){l.length=W;break}d=z+y[0].length;continue}if(y=h.exec(L),y){const M=y[1].toLowerCase(),W=y[3]==="/";if(d=z+y[0].length,M==="script"){W||(T=!0);continue}const B=s.createElement(M);B.__latTag=M,_(B,y[2]),U().appendChild(B),!W&&!k.has(M)&&l.push(B);continue}if(y=j.exec(L),y){d=z+y[0].length;continue}U().appendChild(s.createTextNode("<")),d=z+1}}function a(s,o,r){if(r!=null){if(typeof r=="object"&&typeof r.nodeType=="number"){o.appendChild(r);return}t(s,o,String(r))}}function i(s){for(;s.firstChild;)s.removeChild(s.firstChild)}function f(s){const o=s.__latAttached;o&&(s.__latAttached=null,!o.keep&&o.view&&typeof o.view.destroy=="function"&&o.view.destroy())}function v(s){return s==null||s==="content"?"fit-content":q(s)}R("container",{kind:"container",build(s,o){const r=o.doc,l=s.props||{},d=r.createElement("div");return d.className="lat-form__container",d.setAttribute("role","region"),s.label!=null&&s.label!==""&&d.setAttribute("aria-label",String(s.label)),d.style.width=v(s.width),d.style.height=v(l.height),l.padding!=null&&(d.style.padding=q(l.padding)),a(r,d,l.html),d},read(){},write(){},state(s,o){const r=o.disabled===!0;s.toggleAttribute("inert",r),s.inert=r,r?s.setAttribute("aria-disabled","true"):s.removeAttribute("aria-disabled")},destroy(s){f(s)}});function m(s){return s.el||s.root||s.element||null}function g(s,o,r={}){f(s),i(s);const d=!(o!=null&&typeof o.nodeType=="number")&&o!=null&&typeof o=="object"?m(o):null,T=d?o:null,U=d||o;U.style.width="100%",s.style.height&&s.style.height!=="fit-content"&&(U.style.height=s.style.height),s.appendChild(U),s.__latAttached={view:T,node:U,keep:r.keep===!0}}function H(s,o,r){f(o),i(o),a(s,o,r)}function u(s){const o=s.__latAttached;return o?o.view||o.node:null}}),Ne("packages/modules/form/controls/input.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Object.freeze(["text","email","password","url"]),q=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"}),k=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(h){return $.includes(h)?h:"text"}function j(h){return!(h.props&&h.props.reveal===!1)}function C(h,n){const c=n?k:q,b=h.createElementNS("http://www.w3.org/2000/svg","svg");b.setAttribute("viewBox",c.viewBox),b.setAttribute("focusable","false"),b.setAttribute("aria-hidden","true"),c.paint==="stroke"?(b.setAttribute("fill","none"),b.setAttribute("stroke","currentColor"),b.setAttribute("stroke-width","1.5"),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")):b.setAttribute("fill","currentColor");for(const _ of c.paths){const t=h.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",_),b.appendChild(t)}return b}function S(h){return h.__latPassword?h.__latPassword.input:h}function x(h,n,c){const b=n&&n.defaultView,_=b&&b.Event,t=_?new _(c,{bubbles:!0}):{type:c,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};h.dispatchEvent(t)}R("input",{kind:"field",build(h,n){const c=n.doc,b=P(h.subtype);if(b!=="password"||!j(h)){const g=c.createElement("input");return g.type=b,h.name&&(g.name=h.name),h.placeholder!=null&&(g.placeholder=String(h.placeholder)),g.value=h.value==null?"":String(h.value),g}const _=c.createElement("div");_.className="lat-form__password";const t=c.createElement("input");t.type="password",h.name&&(t.name=h.name),h.placeholder!=null&&(t.placeholder=String(h.placeholder)),t.value=h.value==null?"":String(h.value),_.appendChild(t);const a=c.createElement("button");a.type="button",a.className="lat-form__password-btn",a.setAttribute("aria-pressed","false");const i=n.t("form.password.show");a.setAttribute("aria-label",i),a.title=i,a.appendChild(C(c,!1)),_.appendChild(a);const f={revealed:!1,disabled:!1,input:t,btn:a};_.__latPassword=f;const v=g=>{f.revealed=g===!0,t.type=f.revealed?"text":"password",a.setAttribute("aria-pressed",f.revealed?"true":"false");const H=n.t(f.revealed?"form.password.hide":"form.password.show");a.setAttribute("aria-label",H),a.title=H,a.replaceChild(C(c,f.revealed),a.firstChild)};f.setRevealed=v,a.addEventListener("click",()=>{f.disabled||v(!f.revealed)});let m=!1;return _.addEventListener("focusin",()=>{m||(m=!0,x(_,c,"focus"))}),_.addEventListener("focusout",g=>{_.contains(g.relatedTarget)||(m=!1,v(!1),x(_,c,"blur"))}),_},read(h){return S(h).value},write(h,n){S(h).value=n==null?"":String(n)},state(h,n){const c=S(h);c.disabled=n.disabled===!0,c.readOnly=n.readOnly===!0;const b=h.__latPassword;b&&(b.disabled=n.disabled===!0,b.btn&&(b.btn.disabled=b.disabled))},reset(h){const n=h.__latPassword;n&&typeof n.setRevealed=="function"&&n.setRevealed(!1)}})}),Ne("packages/core/src/internal/predicates.js",function(N,Z){"use strict";Object.defineProperty(N,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"isFunction",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"isNil",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"isBlank",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"isCtor",{enumerable:!0,get:function(){return k}});function e(P){return P!==null&&typeof P=="object"&&!Array.isArray(P)}function R(P){return typeof P=="function"}function $(P){return P==null}function q(P){return P==null||P===""}function k(P){return typeof P!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(P))?!0:!!(P.prototype&&Object.getOwnPropertyNames(P.prototype).length>1)}}),Ne("packages/core/src/internal/warn.js",function(N,Z){"use strict";Object.defineProperty(N,"reportedWarnings",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"warnOnce",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"infoOnce",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"resetWarnings",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"fail",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"invariant",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"DEV",{enumerable:!0,get:function(){return _}});const e=new Set,R=2e3;function $(t){if(e.add(t),e.size>R){const a=e.values().next().value;a!==void 0&&e.delete(a)}}const q=[],k=500;function P(t,a,i){q.push({key:t,level:a,message:i.map(f=>typeof f=="string"?f:j(f)).join(" "),at:Date.now()}),q.length>k&&q.shift()}function j(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function C(){return q.map(t=>({...t}))}function S(t){if(t.length===0||typeof t[0]!="string")return t;const a=t[0].replace(/^\[lattice\]\s*/,"");return a===t[0]?t:[a,...t.slice(1)]}function x(t,...a){if(e.has(t))return;$(t);const i=S(a);P(t,"warn",i),console.warn("[lattice]",...i)}function h(t,...a){if(e.has(t))return;$(t);const i=S(a);P(t,"info",i),console.info("[lattice]",...i)}function n(){e.clear(),q.length=0}function c(t,a){const i=new Error(`[lattice] ${t}`);throw a!==void 0&&(i.cause=a),i}function b(t,a){t||c(a)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Ne("packages/core/src/format/mask.js",function(N,Z){"use strict";Object.defineProperty(N,"splitSections",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"parseSection",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"compileMask",{enumerable:!0,get:function(){return P}});const e=new Set(["0","#","?",",","."]),R="\0";function $(C){const S=[];let x="",h=!1;for(let n=0;n<C.length;n++){const c=C[n];if(c==="\\"){x+=c+(C[n+1]??""),n+=1;continue}if(c==='"'){h=!h,x+=c;continue}if(c===";"&&!h){S.push(x),x="";continue}x+=c}return S.push(x),S}function q(C){let S="",x="",h="",n=1,c=!1,b=!1;const _=u=>{b?x+=u:S+=u};for(let u=0;u<C.length;u++){const s=C[u];if(s==="\\"){_(C[u+1]??""),u+=1;continue}if(s==='"'){const o=C.indexOf('"',u+1);_(o===-1?C.slice(u+1):C.slice(u+1,o)),u=o===-1?C.length:o;continue}if(s==="%"){n*=100,_("%");continue}if(s==="@"){c=!0,_("\0");continue}if(e.has(s)){h+=s,b=!0;continue}_(s)}let t=-1;for(let u=h.length-1;u>=0;u--){const s=h[u];if(s==="0"||s==="#"||s==="?"){t=u;break}}let a=!1,i="";for(let u=0;u<h.length;u++){const s=h[u];if(s===","){u>t?n/=1e3:a=!0;continue}i+=s}const f=i.indexOf("."),v=f===-1?i:i.slice(0,f),m=f===-1?"":i.slice(f+1);let g=0;for(const u of v)u==="0"&&(g+=1);let H=0;for(const u of m)u==="0"&&(H+=1);return{prefix:S,suffix:x,minInt:g,minDec:H,maxDec:m.length,grouping:a,scale:n,hasNumber:t!==-1,isText:c}}function k(C,S){const x=new Intl.NumberFormat(S,{minimumIntegerDigits:Math.max(C.minInt,1),minimumFractionDigits:C.minDec,maximumFractionDigits:Math.max(C.maxDec,C.minDec),useGrouping:C.grouping}),{prefix:h,suffix:n,scale:c,hasNumber:b}=C;return _=>{if(!b)return h+n;const t=c===1?_:_*c;return h+x.format(t)+n}}function P(C,S){const h=$(String(C)).map(q),n=h.map(i=>k(i,S)),c=0,b=h.length>1?1:-1,_=h.length>2?2:-1,t=h.length>3?3:-1,a=i=>{if(i==null||i==="")return"";if(typeof i!="number"||Number.isNaN(i)){const f=Number(i);if(Number.isNaN(f))return t===-1?String(i):(h[t].prefix+h[t].suffix).split("\0").join(String(i));i=f}return i===0&&_!==-1?n[_](0):i<0&&b!==-1?n[b](-i):n[c](i)};return a.spec={mask:C},{format:a,ooxml:j(String(C))}}function j(C){return C.trim()}}),Ne("packages/core/src/format/pattern.js",function(N,Z){"use strict";Object.defineProperty(N,"parseNumberPattern",{enumerable:!0,get:function(){return k}});const R=Z("packages/core/src/format/mask.js").splitSections;function $(P){let j="",C="",S="",x="",h=!1,n=!1,c=!1,b=!1;const _=a=>{c?C+=a:j+=a};for(let a=0;a<P.length;a++){const i=P[a];if(i==="\\"){_(P[a+1]??""),a+=1;continue}if(i==='"'){const f=P.indexOf('"',a+1);_(f===-1?P.slice(a+1):P.slice(a+1,f)),a=f===-1?P.length:f;continue}if(i==="%"){n=!0;continue}if(i==="0"||i==="#"){c=!0,b?x+=i:S+=i;continue}if(i===","){b||(h=!0);continue}if(i==="."&&!b){b=!0;continue}_(i)}if(!c)return{hasDigit:!1,prefix:j,suffix:C,minDec:0,maxDec:0,grouping:!1,percent:n};let t=0;for(const a of x)a==="0"&&(t+=1);return{hasDigit:!0,prefix:j,suffix:C,minDec:t,maxDec:x.length,grouping:h,percent:n}}function q(P,j){const C=j.trim(),S=P.trim();return C.startsWith("(")&&C.endsWith(")")&&C.slice(1,-1).trim()===S?"parentheses":C.endsWith("-")?"suffix":"minus"}function k(P){if(typeof P!="string")return null;const j=R(P);if(j.length===0)return null;const C=$(j[0]);if(!C.hasDigit)return null;const S={style:C.percent?"percent":"decimal",prefix:C.prefix,suffix:C.suffix,minDecimals:C.minDec,maxDecimals:Math.max(C.maxDec,C.minDec),thousandsSeparator:C.grouping?void 0:!1};if(j.length>1&&(S.negative=q(j[0],j[1])),j.length>2){const x=$(j[2]);x.hasDigit||(S.zeroDisplay=x.prefix+x.suffix)}return S}}),Ne("packages/core/src/format/number.js",function(N,Z){"use strict";Object.defineProperty(N,"compileNumber",{enumerable:!0,get:function(){return j}});const R=Z("packages/core/src/internal/predicates.js").isNil,q=Z("packages/core/src/internal/warn.js").warnOnce,P=Z("packages/core/src/format/pattern.js").parseNumberPattern;function j(C,S){const x=typeof C=="string"?{pattern:C}:C||{};let h=x;if(typeof x.pattern=="string"){const z=P(x.pattern);if(z){const{pattern:L,...y}=x;h={...z,...y}}else q(`format:pattern:${x.pattern}`,`invalid number format pattern "${x.pattern}"; the value will use the default number format`)}const n=h.locale||S||void 0,c=h.style||"decimal",b=typeof h.scale=="number"?h.scale:1,_=h.nullDisplay??"",t=h.zeroDisplay,a=h.prefix||"",i=h.suffix||"",f=h.negative||"minus",v=h.signed===!0,m={style:c,notation:h.notation||"standard"};c==="currency"&&(m.currency=h.currency||"USD",h.currencyDisplay&&(m.currencyDisplay=h.currencyDisplay)),typeof h.decimals=="number"?(m.minimumFractionDigits=h.decimals,m.maximumFractionDigits=h.decimals):(typeof h.minDecimals=="number"&&(m.minimumFractionDigits=h.minDecimals),typeof h.maxDecimals=="number"&&(m.maximumFractionDigits=h.maxDecimals),m.minimumFractionDigits>(m.maximumFractionDigits??20)&&(m.maximumFractionDigits=m.minimumFractionDigits)),h.thousandsSeparator===!1&&(m.useGrouping=!1),m.notation==="compact"&&(m.compactDisplay=h.compactDisplay||"short");const g=new Intl.NumberFormat(n,m),H=typeof h.thousandsSeparator=="string"?h.thousandsSeparator:null,u=typeof h.decimalSeparator=="string"?h.decimalSeparator:null;let s=",",o=".";if(H||u)for(const z of g.formatToParts(12345.6))z.type==="group"?s=z.value:z.type==="decimal"&&(o=z.value);const r=z=>{let L=z;return H&&(L=L.split(s).join("")),u&&(L=L.split(o).join("")),H&&(L=L.split("").join(H)),u&&(L=L.split("").join(u)),L},l=!!(H||u),d=a!==""&&c==="currency",T=z=>{let L;if(d){const y=g.formatToParts(z);let M=!1;L="";for(const W of y)L+=W.value,!M&&W.type==="currency"&&(L+=a,M=!0);M||(L=a+L)}else L=a+g.format(z);return l&&(L=r(L)),L+i},U=z=>{if(R(z)||z==="")return _;const L=typeof z=="number"?z:Number(z);if(Number.isNaN(L))return _;const y=b===1?L:L*b;return y===0&&t!==void 0?t:y<0?f==="parentheses"?`(${T(-y)})`:f==="suffix"?`${T(-y)}-`:T(y):v&&y>0?`+${T(y)}`:T(y)};return U.negativeClass=h.negativeClass||null,U.spec=h,U}}),Ne("packages/core/src/columns/types/unit.js",function(N,Z){"use strict";Object.defineProperty(N,"defineUnit",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"registerUnitSystem",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"unitSystemNames",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"unitsOf",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"localeSeparators",{enumerable:!0,get:function(){return H}}),Object.defineProperty(N,"parseUnit",{enumerable:!0,get:function(){return U}}),Object.defineProperty(N,"formatUnit",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(N,"createUnitType",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return oe}});const R=Z("packages/core/src/internal/predicates.js").isNil,q=Z("packages/core/src/internal/warn.js").warnOnce;function k(te,E,F,w){return Object.freeze({symbol:te,factor:E,aliases:Object.freeze(F||[]),binary:!!(w&&w.binary),prefix:w&&w.prefix||null,auto:!(w&&w.auto===!1)})}function P(te,E,F,w){return k(te,E,F,w)}const j=Object.freeze({data:Object.freeze([k("B",1,["byte","bytes"]),k("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),k("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),k("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),k("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),k("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),k("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),k("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),k("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),k("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([k("bps",1,["bit","bits","bit/s","b/s"]),k("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),k("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),k("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),k("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([k("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),k("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),k("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),k("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),k("in",.0254,["inch","inches"],{auto:!1}),k("ft",.3048,["foot","feet"],{auto:!1}),k("yd",.9144,["yard","yards"],{auto:!1}),k("m",1,["metre","metres","meter","meters"]),k("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),k("mi",1609.344,["mile","miles"],{auto:!1}),k("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([k("mg",.001,["milligram","milligrams"]),k("g",1,["gram","grams"]),k("oz",28.349523125,["ounce","ounces"],{auto:!1}),k("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),k("kg",1e3,["kilogram","kilograms"]),k("st",6350.29318,["stone"],{auto:!1}),k("t",1e6,["tonne","tonnes","ton"],{auto:!1}),k("ton (US)",907184.74,["ton","shortton"],{auto:!1}),k("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([k("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),k("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),k("ms",.001,["msec","msecs","millisecond","milliseconds"]),k("s",1,["sec","secs","second","seconds"]),k("m",60,["min","mins","minute","minutes"]),k("h",3600,["hr","hrs","hour","hours"]),k("d",86400,["day","days"])]),speed:Object.freeze([k("mm/s",.001,["millimetre/s","millimeter/s"]),k("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),k("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),k("mph",.44704,["mile/h","miles/h"],{auto:!1}),k("kn",1852/3600,["knot","knots"],{auto:!1}),k("m/s",1,["metre/s","meter/s","mps"]),k("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([k("mm/s²",.001,["mm/s2"]),k("ft/s²",.3048,["ft/s2"],{auto:!1}),k("m/s²",1,["m/s2","metre/s2","meter/s2"]),k("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([k("mm²",1e-6,["mm2"]),k("cm²",1e-4,["cm2"]),k("in²",64516e-8,["in2","sqin"],{auto:!1}),k("ft²",.09290304,["ft2","sqft"],{auto:!1}),k("yd²",.83612736,["yd2","sqyd"],{auto:!1}),k("m²",1,["m2","sqm"]),k("ha",1e4,["hectare","hectares"],{auto:!1}),k("ac",4046.8564224,["acre","acres"],{auto:!1}),k("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([k("µL",1e-6,["ul","microlitre","microliter"]),k("mL",.001,["millilitre","milliliter"]),k("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),k("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),k("L",1,["litre","litres","liter","liters"]),k("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),k("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),k("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),k("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([k("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),k("J",1,["joule","joules"]),k("cal",4.184,["calorie","calories"],{auto:!1}),k("kJ",1e3,["kilojoule","kilojoules"]),k("BTU",1055.05585262,["btu"],{auto:!1}),k("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),k("MJ",1e6,["megajoule","megajoules"]),k("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),k("GJ",1e9,["gigajoule","gigajoules"]),k("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([k("mW",.001,["milliwatt","milliwatts"]),k("W",1,["watt","watts"]),k("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),k("kW",1e3,["kilowatt","kilowatts"]),k("hp",745.6998715822702,["horsepower"],{auto:!1}),k("MW",1e6,["megawatt","megawatts"]),k("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([k("mN",.001,["millinewton","millinewtons"]),k("N",1,["newton","newtons"]),k("lbf",4.4482216152605,["poundforce"],{auto:!1}),k("kgf",9.80665,["kilogramforce"],{auto:!1}),k("kN",1e3,["kilonewton","kilonewtons"]),k("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([k("Pa",1,["pascal","pascals"]),k("mbar",100,["millibar"],{auto:!1}),k("inH₂O",249.0889,["inh2o"],{auto:!1}),k("mmHg",133.322387415,["torr"],{auto:!1}),k("kPa",1e3,["kilopascal","kilopascals"]),k("inHg",3386.388640341,["inhg"],{auto:!1}),k("psi",6894.757293168361,["lbf/in2"],{auto:!1}),k("bar",1e5,[],{auto:!1}),k("atm",101325,["atmosphere","atmospheres"],{auto:!1}),k("MPa",1e6,["megapascal","megapascals"]),k("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([k("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),k("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),k("kN·m",1e3,["knm","kn.m"],{auto:!1}),k("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([k("kg/m³",1,["kg/m3"]),k("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),k("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),k("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([k("L/min",1/6e4,["lpm","l/min"],{auto:!1}),k("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),k("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),k("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),k("cfm",.0004719474432,["ft3/min"],{auto:!1}),k("L/s",.001,["lps","l/s"],{auto:!1}),k("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([k("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),k("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),k("mrad",.001,["milliradian","milliradians"],{auto:!1}),k("mil",Math.PI/3200,["nato-mil"],{auto:!1}),k("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),k("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),k("rad",1,["radian","radians"]),k("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([k("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),k("rad/s",1,["radps","radians/s"]),k("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),k("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([k("ppt",1e-12,["partspertrillion"],{auto:!1}),k("ppb",1e-9,["partsperbillion"]),k("ppm",1e-6,["partspermillion"]),k("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),k("‰",.001,["permille","permil"],{auto:!1}),k("%",.01,["pct","percent"]),k("×",1,["x","ratio","times"])]),molarity:Object.freeze([k("pM",1e-12,["picomolar","picomolarity"]),k("nM",1e-9,["nanomolar","nanomolarity"]),k("µM",1e-6,["um-molar","micromolar","micromolarity"]),k("mM",.001,["millimolar","millimolarity"]),k("M",1,["molar","mol/l","mol/L","molarity"]),k("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([k("mg/s",1e-6,["milligrams/s"]),k("g/s",.001,["grams/s"]),k("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),k("kg/s",1,["kilograms/s","kgps"]),k("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),k("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),k("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([k("µPa·s",1e-6,["upas","micropascalsecond"]),k("cP",.001,["centipoise"],{auto:!1}),k("mPa·s",.001,["mpas","millipascalsecond"]),k("P",.1,["poise"],{auto:!1}),k("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([k("cSt",1e-6,["centistokes","centistoke"]),k("mm²/s",1e-6,["mm2/s"],{auto:!1}),k("St",1e-4,["stokes","stoke"],{auto:!1}),k("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([k("mW/(m·K)",.001,["mw/mk"]),k("W/(m·K)",1,["w/mk","wmk"]),k("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),k("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([k("J/(kg·K)",1,["j/kgk","jkgk"]),k("kJ/(kg·K)",1e3,["kj/kgk"]),k("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([k("nSv/h",1e-9,["nsvh"]),k("µSv/h",1e-6,["usv/h","usvh"]),k("mSv/h",.001,["msvh"]),k("Sv/h",1,["svh"]),k("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),C=Symbol("ambiguous"),S=new Map,x=new Map;function h(te,E){const F=String(te||"").trim();if(!F)throw new Error("[lattice] a unit system needs a name");if(j[F]||x.has(F))throw new Error(`[lattice] unit system "${F}" already exists`);const w=[...E||[]];if(!w.length)throw new Error(`[lattice] unit system "${F}" has no units`);if(!w.some(Y=>Y.factor===1))throw new Error(`[lattice] unit system "${F}" has no base unit (none with factor 1)`);const G=new Set;for(const Y of w){if(G.has(Y.symbol))throw new Error(`[lattice] unit system "${F}" declares "${Y.symbol}" twice`);G.add(Y.symbol)}return x.set(F,Object.freeze(w)),S.delete(F),F}function n(){return[...Object.keys(j),...x.keys()]}function c(te){const E=b(te);return E?E.units:[]}function b(te){const E=String(te||""),F=S.get(E);if(F!==void 0)return F;const w=j[E]||x.get(E);if(!w)return S.set(E,null),null;const G=Object.freeze([...w].sort((ae,V)=>ae.factor-V.factor)),Y=new Map,ie=new Map,D=(ae,V)=>{const se=Y.get(ae);se===void 0?Y.set(ae,V):se!==V&&Y.set(ae,C)};for(const ae of G){D(ae.symbol.toLowerCase(),ae);for(const V of ae.aliases)D(V.toLowerCase(),ae);if(ae.prefix){const V=ie.get(ae.prefix)||[];V.push(ae),ie.set(ae.prefix,V)}}const J={units:G,byToken:Y,byPrefix:ie,decimal:G.filter(ae=>!ae.binary&&ae.auto),binary:G.some(ae=>ae.binary)?G.filter(ae=>(ae.binary||ae.factor===1)&&ae.auto):null};return S.set(E,J),J}function _(te,E){return E&&te.binary||te.decimal}function t(te,E){const F=b(te);if(!F||R(E))return null;const w=F.units.find(Y=>Y.symbol===String(E));if(w)return w;const G=F.byToken.get(String(E).trim().toLowerCase());return G&&G!==C?G:null}const a=new WeakMap;function i(te){const E=te||{};if(typeof E=="object"&&E!==null){const Y=a.get(E);if(Y!==void 0)return Y}const F=E.system||"data",w=b(F);let G=null;if(!w)q(`unit:system:${F}`,`unknown unit system "${F}"; known systems are ${n().join(", ")}`);else{let Y=E.unit?t(F,E.unit):null;Y||(E.unit&&q(`unit:unit:${F}:${E.unit}`,`unknown unit "${E.unit}" in system "${F}"; falling back to ${w.units[0].symbol}`),Y=w.units.find(ie=>ie.factor===1)||w.units[0]),G={index:w,base:Y,binary:E.binary===!0}}return typeof E=="object"&&E!==null&&a.set(E,G),G}const f=new WeakMap;function v(te,E){if(!te||!E||!Array.isArray(te.compound)||te.compound.length===0)return null;const F=f.get(te);if(F!==void 0)return F;const w=new Set,G=[];for(const ie of te.compound){const D=t(te.system||"data",ie);if(!D){q(`unit:compound:${te.system}:${ie}`,`unknown compound unit "${ie}" in system "${te.system||"data"}"; ignoring it`);continue}w.has(D.symbol)||(w.add(D.symbol),G.push(D))}G.sort((ie,D)=>D.factor-ie.factor);const Y=G.length>=2?G:null;return f.set(te,Y),Y}function m(te,E,F){return E===F||E.factor===F.factor?te:te*E.factor/F.factor}const g=new Map;function H(te){const E=te||"",F=g.get(E);if(F)return F;const w={group:",",decimal:"."};try{for(const G of new Intl.NumberFormat(te||void 0).formatToParts(12345.6))G.type==="group"?w.group=G.value:G.type==="decimal"&&(w.decimal=G.value)}catch{}return g.set(E,w),w}const u=/[\s   ]/g,s=/^[+-]?[\d   '’ .,]*(?:[eE][+-]?\d+)?/,o=/^[^\d+\-(.,\s]+\s*/,r=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function l(te,E){const{group:F,decimal:w}=H(E);let G=String(te).replace(u,"");if(G==="")return null;const Y=w?G.indexOf(w):-1;if(F&&F!==w){if(Y>=0&&G.indexOf(F,Y+w.length)>=0)return null;G=G.split(F).join("")}if(w&&w!=="."&&(G=G.split(w).join(".")),!r.test(G))return null;const ie=Number(G);return Number.isFinite(ie)?ie:null}function d(te,E,F){const w=String(te).trim().replace(/\.$/,"");if(w==="")return null;const G=E.units.find(V=>V.symbol===w);if(G)return G;const Y=w.toLowerCase(),ie=E.byToken.get(Y);if(ie===C)return null;if(ie)return ie;const D=E.byPrefix.get(Y);if(!D||!D.length)return null;const J=_(E,F),ae=D.filter(V=>J.includes(V));return ae.length===1?ae[0]:null}function T(te,E,F,w){let G=te,Y=0,ie=!1,D=!1;for(;G!=="";){const J=s.exec(G)[0];if(J==="")return null;const ae=l(J,w&&w.locale);if(ae===null)return null;G=G.slice(J.length).trim();const V=G.search(/[+-]?[\d]/),se=(V>=0?G.slice(0,V):G).trim();if(G=V>=0?G.slice(V).trim():"",se===""){if(ie)return null;D=!0,Y+=m(ae,F[0],E.base)}else{const X=d(se,E.index,E.binary);if(!X)return null;Y+=m(ae,X,E.base)}if(ie=!0,D&&G!=="")return null}return ie?Y:null}function U(te,E){if(R(te))return null;if(typeof te=="number")return Number.isFinite(te)?te:null;const F=i(E);if(!F)return null;let w=String(te).trim();if(w==="")return null;let G=!1;w.startsWith("(")&&w.endsWith(")")&&(G=!0,w=w.slice(1,-1).trim());const Y=v(E,F);if(Y){w.startsWith("-")&&(G=!0,w=w.slice(1).trim());const p=T(w,F,Y,E);return p===null?null:G?-p:p}let ie=null;const D=o.exec(w);if(D&&D[0]){const p=d(D[0].trim(),F.index,F.binary);p&&(ie=p,w=w.slice(D[0].length).trim())}const J=s.exec(w)[0],ae=l(J,E&&E.locale);if(ae===null)return null;const V=w.slice(J.length).trim();if(ie&&V!=="")return null;const se=ie||(V===""?F.base:d(V,F.index,F.binary));if(!se)return null;const X=m(ae,se,F.base);return G?-X:X}const z=new Map;function L(te,E,F,w){const G=`${te||""}|${E}|${F}|${w?1:0}`;let Y=z.get(G);return Y||(Y=new Intl.NumberFormat(te||void 0,{minimumFractionDigits:E,maximumFractionDigits:F,useGrouping:w}),z.set(G,Y)),Y}function y(te,E){if(!Number.isFinite(te)||te===0)return Math.max(0,E-1);const F=Math.floor(Math.log10(Math.abs(te)));return Math.min(20,Math.max(0,E-1-F))}function M(te,E){if(!Number.isFinite(te)||te===0)return te;const F=Math.ceil(Math.log10(Math.abs(te))),w=10**(E-F);return Math.round(te*w)/w}function W(te,E,F){if(!F||F===E.base.symbol)return E.base;if(F!=="auto")return B(E,F);if(te===0||!Number.isFinite(te))return E.base;const w=Math.abs(te)*E.base.factor,G=_(E.index,E.binary);let Y=G[0];for(const J of G)w>=J.factor&&(Y=J);if(w>=Y.factor)return Y;let ie=Y;for(const J of E.index.units)J.binary!==E.binary&&J.factor!==1||J.factor<=w&&J.factor>(ie===Y?0:ie.factor)&&(ie=J);if(ie!==Y)return ie;let D=Y;for(const J of E.index.units)J.binary!==E.binary&&J.factor!==1||J.factor<D.factor&&(D=J);return D.factor<E.base.factor?D:E.base}function B(te,E){const F=te.index.units.find(G=>G.symbol===E);if(F)return F;const w=te.index.byToken.get(String(E).toLowerCase());return w&&w!==C?w:(q(`unit:display:${E}`,`unknown display unit "${E}"; rendering in ${te.base.symbol}`),te.base)}function ne(te,E,F,w){const G=te<0;let Y=Math.abs(te)*E.base.factor;const ie=typeof w.decimals=="number"?w.decimals:w.minDecimals??0,D=typeof w.decimals=="number"?w.decimals:w.maxDecimals??Math.max(ie,2),J=w.space??" ",ae=[];for(let se=0;se<F.length;se++){const X=F[se],p=se===F.length-1;let I=p?Y/X.factor:Math.floor(Y/X.factor);if(Y-=I*X.factor,p){const re=10**D;I=Math.round(I*re)/re+0}const Q=p?L(w.locale,ie,D,w.group!==!1):L(w.locale,0,0,w.group!==!1);ae.push(`${Q.format(I)}${J}${X.symbol}`)}const V=ae.join(" ");return G?`-${V}`:V}function Ae(te,E){const F=E||{},w=F.nullDisplay??"";if(R(te)||te==="")return w;const G=typeof te=="number"?te:Number(te);if(!Number.isFinite(G))return w;const Y=i(F);if(!Y)return String(G);const ie=v(F,Y);if(ie)return ne(G,Y,ie,F);const D=typeof F.significantFigures=="number"&&F.significantFigures>0?F.significantFigures:0,J=D?M(G,D):G,ae=W(J,Y,F.display),V=m(J,Y.base,ae);let se=typeof F.decimals=="number"?F.decimals:F.minDecimals??0,X=typeof F.decimals=="number"?F.decimals:F.maxDecimals??Math.max(se,2);D&&(se=y(V,D),X=se);const p=L(F.locale,se,X,F.group!==!1).format(V),I=F.space??" ";return F.placement==="prefix"?`${ae.symbol}${F.space??""}${p}`:`${p}${I}${ae.symbol}`}function we(te,E){const F=R(te)||Number.isNaN(te)?null:Number(te),w=R(E)||Number.isNaN(E)?null:Number(E);return F===null||Number.isNaN(F)?w===null||Number.isNaN(w)?0:1:w===null||Number.isNaN(w)||F<w?-1:F>w?1:0}function ce(te){const E=typeof te.decimals=="number"&&te.decimals>0?`.${"0".repeat(te.decimals)}`:"";return`${typeof te.decimals=="number"?`#,##0${E}`:"#,##0.##"}" ${te.symbol}"`}function A(te){const E={system:"data",...te||{}},F=i(E),w=F?F.base.symbol:String(E.unit||""),G=Object.freeze({...E,unit:w}),Y=Object.freeze({...G,display:w,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),ie=new Map([[G.locale||"",G]]),D=J=>{const ae=J||"";let V=ie.get(ae);return V||(V=Object.freeze({...G,locale:J||void 0}),ie.set(ae,V)),V};return{base:"number",extends:"number",storage:"float64",unitConfig:G,format:J=>Ae(J.value,J.locale?D(J.locale):G),parse:J=>U(J.text,J.locale?D(J.locale):G),compare:we,defaults:{filter:"number",editor:"unit",align:"end",total:E.total||"sum"},...E.totals?{totals:E.totals}:{},excel:E.excel||ce({decimals:E.decimals,symbol:w}),toStorage:J=>typeof J=="number"?Number.isFinite(J)?J:null:typeof J=="string"?U(J,G):R(J)?null:U(String(J),G),toClipboard:J=>Ae(J,Y),fromClipboard:J=>U(J,G)}}const oe=A}),Ne("packages/core/src/columns/types/temperature.js",function(N,Z){"use strict";Object.defineProperty(N,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"findScale",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"convertTemperature",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"formatTemperature",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"parseTemperature",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"createTemperatureType",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return b}});const R=Z("packages/core/src/internal/predicates.js").isNil,$=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:_=>_+273.15,fromKelvin:_=>_-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:_=>(_+459.67)*(5/9),fromKelvin:_=>_*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:_=>_,fromKelvin:_=>_}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:_=>_*(5/9),fromKelvin:_=>_*(9/5)})});function q(_){if(R(_))return null;const t=String(_).trim();if(t==="")return null;for(const[i,f]of Object.entries($))if(t===i||t===f.symbol)return{key:i,scale:f};const a=t.toLowerCase();for(const[i,f]of Object.entries($))if(f.aliases.includes(a))return{key:i,scale:f};return null}function k(_,t,a){const i=q(t),f=q(a);return!i||!f||!Number.isFinite(Number(_))?null:i.key===f.key?Number(_):f.scale.fromKelvin(i.scale.toKelvin(Number(_)))}const P=new Map;function j(_,t,a){const i=`${_||""}|${t}|${a}`;let f=P.get(i);return f||(f=new Intl.NumberFormat(_||void 0,{minimumFractionDigits:t,maximumFractionDigits:a}),P.set(i,f)),f}function C(_,t){const a=t||{},i=a.nullDisplay??"";if(R(_)||_==="")return i;const f=Number(_);if(!Number.isFinite(f))return i;const v=q(a.scale||"C");if(!v)return String(f);const m=q(a.display||a.scale||"C")||v,g=m.key===v.key?f:m.scale.fromKelvin(v.scale.toKelvin(f)),H=typeof a.decimals=="number"?a.decimals:null,u=H??a.minDecimals??0,s=H??a.maxDecimals??1;return`${j(a.locale,u,s).format(g)}${a.space??" "}${m.scale.symbol}`}const S=/^[+-]?[\d\s.,  ]*\d/;function x(_,t){const a=String(_).trim();if(a==="")return null;const i=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(g=>g.type==="decimal")?.value||".",f=i===","?".":",",v=a.split(f).join("").split(/[\s  ]/).join("").replace(i,"."),m=Number(v);return Number.isFinite(m)?m:null}function h(_,t){if(R(_))return null;const a=t||{},i=q(a.scale||"C");if(!i)return null;if(typeof _=="number")return Number.isFinite(_)?_:null;let f=String(_).trim();if(f==="")return null;let v=!1;f.startsWith("(")&&f.endsWith(")")&&(v=!0,f=f.slice(1,-1).trim());const m=S.exec(f);if(!m)return null;const g=x(m[0],a.locale);if(g===null)return null;const H=f.slice(m[0].length).trim();if(H==="")return v?-g:g;const u=q(H);if(!u)return null;const s=u.key===i.key?g:i.scale.fromKelvin(u.scale.toKelvin(g));return v?-s:s}function n(_){const t=Object.freeze({scale:"C",..._||{}}),i=(q(t.scale)||q("C")).scale.symbol,f=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),v=new Map([[t.locale||"",t]]),m=g=>{const H=g||"";let u=v.get(H);return u||(u=Object.freeze({...t,locale:g||void 0}),v.set(H,u)),u};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:g=>C(g.value,g.locale?m(g.locale):t),parse:g=>h(g.text,g.locale?m(g.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)}`:".#"}" ${i}"`,toStorage:g=>typeof g=="number"?Number.isFinite(g)?g:null:typeof g=="string"?h(g,t):R(g)?null:h(String(g),t),toClipboard:g=>C(g,f),fromClipboard:g=>h(g,t)}}const c=Object.freeze({celsius:n({scale:"C"}),fahrenheit:n({scale:"F"}),kelvin:n({scale:"K"})}),b=n}),Ne("packages/modules/form/controls/number.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/modules/form/messages.js").t,P=Z("packages/core/src/format/number.js").compileNumber,j=Z("packages/core/src/columns/types/unit.js"),C=j.parseUnit,S=j.formatUnit,x=j.findUnit,h=j.unitsOf,n=Z("packages/core/src/columns/types/temperature.js"),c=n.parseTemperature,b=n.formatTemperature,_=n.findScale,t="data-lattice-form-number-styles";function a(){return`
1618
+ `.trim()}function V(F){const o=F&&F.documentElement;if(!o||o.getAttribute(f))return;o.setAttribute(f,"1");const L=F.createElement("style");L.textContent=T(),(F.head||F.body||o).appendChild(L)}function D(F,o){if(o!=null){if(typeof o=="string"){if(o.trim()){const L=typeof F.style.cssText=="string"?F.style.cssText:"";F.style.cssText=L?`${L};${o}`:o}return}for(const L of Object.keys(o))F.style[L]=o[L]}}function M(F){return F==="cols"?`${B}__cols`:F==="items"?`${B}__items`:`${B}__rows`}function w(F,o,L,Y){o.addEventListener(L,Y),F.disposers.push(()=>o.removeEventListener(L,Y))}function I(F){if(F==null)return null;const o=F.tagName;return o==="INPUT"||o==="TEXTAREA"||o==="SELECT"?F:typeof F.querySelector=="function"?F.querySelector("input, textarea, select"):null}function W(F,o,L){const Y={name:o.item.name,value:L,previousValue:o.value,item:o.item},Q=F.emitter.emitBefore("beforeChange",Y,"user"),me=()=>{o.value=L,o.item.value=L,Ae(o);const je=o.control&&o.control.__latChangeDetail,Pe=o.validation&&o.validation.valid===!1;F.emitter.emit("change",{name:o.item.name,value:L,previousValue:Y.previousValue,item:o.item,...je&&typeof je=="object"?je:{}}),u(F),(o.item.validationMode==="change"||Pe)&&q(F,o)},ge=je=>{o.def.write(o.control,o.value),be(F,o,je)},$e=je=>{if(!je){o.def.write(o.control,o.value);return}const Pe=G(F,o,L);Pe&&typeof Pe.then=="function"?Pe.then(ke=>{ke.ok?me():ge(ke.message)}):Pe.ok?me():ge(Pe.message)};Q&&typeof Q.then=="function"?Q.then($e):$e(Q)}function G(F,o,L){if(o.ruleRequired&&P(L))return{ok:!1,message:F.t("form.required")};const Y=o.def;if(typeof Y.validate!="function")return{ok:!0,message:null};const Q=Y.validate(o.control,o.item,L);return Q&&typeof Q.then=="function"?Q.then(me=>ne(F,me)):ne(F,Q)}function ne(F,o){return o===!1?{ok:!1,message:F.t("form.invalid")}:typeof o=="string"?{ok:!1,message:o}:{ok:!0,message:null}}function be(F,o,L){let Y=o.errorEl;Y||(Y=F.doc.createElement("div"),Y.className=`${B}__error`,Y.id=j("lat-form"),o.controlWrap.appendChild(Y),o.errorEl=Y);const Q=L==null||L===""?F.t("form.invalid"):String(L);Y.textContent=Q,o.el.setAttribute("data-invalid","true"),o.control.setAttribute("aria-invalid","true");const me=(o.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!o.validationEl.hidden&&o.validationEl.textContent===Q&&me.includes(o.validationEl.id))&&!me.includes(Y.id)&&(me.push(Y.id),o.control.setAttribute("aria-describedby",me.join(" ")))}function Ae(F){F.errorEl&&(F.errorEl.remove(),F.errorEl=null),F.el.removeAttribute("data-invalid"),F.control.removeAttribute("aria-invalid")}function le(F,o){const L=o.value,Y=o.item;if(typeof o.def.validate=="function"){const Q=m(o.def.validate(o.control,Y,L),Y,F.t);if(Q)return Q}return h(Y,L,F.t,o.ruleRequired===!0)}function $(F){const o=F.control;if(!o||typeof o.querySelector!="function")return o||null;let L=null;try{L=o.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{L=null}return L||o}function ie(F,o,L){const Y=o.item,Q=o.validationEl;if(o.validation.pristine=!1,o.preEl&&(o.preEl.hidden=!0),L){o.validation.valid=!1,o.validation.code=L.code,o.validation.message=L.message,o.control.setAttribute("aria-invalid","true");const ge=o.tooltipId?`${o.tooltipId} ${Q.id}`:Q.id;o.control.setAttribute("aria-describedby",ge);const $e=$(o);$e&&($e.setAttribute("aria-invalid","true"),$e.setAttribute("aria-describedby",ge)),Q.textContent=L.message,Q.className=`${B}__validation ${B}__validation--error`,Q.hidden=!1;return}o.validation.valid=!0,o.validation.code=null,o.validation.message=null,o.control.removeAttribute("aria-invalid"),o.tooltipId?o.control.setAttribute("aria-describedby",o.tooltipId):o.control.removeAttribute("aria-describedby");const me=$(o);me&&me!==o.control&&(me.removeAttribute("aria-invalid"),o.tooltipId?me.setAttribute("aria-describedby",o.tooltipId):me.removeAttribute("aria-describedby")),typeof Y.successMessage=="string"&&Y.successMessage!==""?(Q.textContent=Y.successMessage,Q.className=`${B}__validation ${B}__validation--success`,Q.hidden=!1):(Q.textContent="",Q.className=`${B}__validation`,Q.hidden=!0)}function q(F,o){typeof o.def.reset=="function"&&o.def.reset(o.control,o.item);const L=le(F,o);ie(F,o,L);const Y=L==null;return F.emitter.emit("validated",{name:o.item.name,item:o.item,value:o.value,valid:Y,failures:L?[{name:o.item.name,rule:L.code,message:L.message}]:[]}),Y}function E(F,o){const L=o.control,Y=o.item,Q=o.def,me=ge=>()=>{F.emitter.emit(ge,{name:Y.name,item:Y}),ge==="blur"&&Y.validationMode==="blur"&&q(F,o)};if(Q.kind==="field"){const ge=()=>{F.emitter.emit("input",{name:Y.name,value:Q.read(L,Y),item:Y})},$e=()=>{W(F,o,Q.read(L,Y))};w(F,L,"input",ge),w(F,L,"change",$e);for(const je of Q.domEvents||[])w(F,L,je,ke=>{const O=ke&&typeof ke=="object"&&ke.detail&&typeof ke.detail=="object"?ke.detail:null;F.emitter.emit(je,O?{name:Y.name,item:Y,...O}:{name:Y.name,value:Q.read(L,Y),item:Y})})}else Q.kind==="toggle"?w(F,L,"change",()=>{W(F,o,Q.read(L,Y))}):Q.kind==="button"&&w(F,L,"click",()=>{L.disabled||L.getAttribute("aria-disabled")==="true"||F.emitter.emit("click",{name:Y.name,item:Y,value:null})});Q.kind!=="display"&&(w(F,L,"focus",me("focus")),w(F,L,"blur",me("blur")))}function H(F,o){if(typeof F=="string"&&/%$/.test(F.trim())){const L=parseFloat(F);if(Number.isFinite(L)){const Y=Math.round(L*o/100*1e6)/1e6;return`0 0 calc(${L}% - ${Y} * var(--lattice-space))`}}return`0 0 ${z(F)}`}function x(F,o,L,Y={}){const Q=g(o.type)||g("text"),me=o.labelPosition!=null?o.labelPosition:Y.labelPosition!=null?Y.labelPosition:"top",ge=o.labelWidth!=null?o.labelWidth:Y.labelWidth,$e=o.requiredHint!==void 0?o.requiredHint:Y.requiredHint,je=F.doc.createElement("div");je.className=`${B}__item`,je.setAttribute("data-label-position",me);const Pe=Q.build(o,F),ke=Q.action===!0,O=!ke&&o.label!=null&&o.label!=="";let J=null,pe=null;if(O){J=F.doc.createElement("label"),J.className=`${B}__label`,J.textContent=String(o.label);const De=j("lat-form");J.setAttribute("for",De),(I(Pe)||Pe).id=De,me==="hidden"&&J.classList.add(`${B}__label--hidden`);const he=d(F,{labelEl:J,item:o,labelPosition:me,labelWidth:ge});he?(pe=he.tooltipId,je.appendChild(he.group)):(me==="left"&&ge!=null&&(J.style.flex=`0 0 ${z(ge)}`),je.appendChild(J))}else if(me==="hidden"&&!ke){const De=I(Pe);De&&o.placeholder!=null&&o.placeholder!==""&&De.setAttribute("aria-label",String(o.placeholder))}const K=F.doc.createElement("div");K.className=`${B}__control`,K.appendChild(Pe);const oe=c(F,K,o,Pe),ve=i(F,o);let xe=K;if(ve&&(xe=F.doc.createElement("div"),xe.className=`${B}__field`,xe.appendChild(K),xe.appendChild(ve.bar)),je.appendChild(xe),!ke&&o.helpMessage!=null&&o.helpMessage!==""){const De=F.doc.createElement("div");De.className=`${B}__help`,De.textContent=String(o.helpMessage),K.appendChild(De)}let we=null;!ke&&o.preMessage!=null&&o.preMessage!==""&&(we=F.doc.createElement("div"),we.className=`${B}__pre`,we.textContent=String(o.preMessage),K.appendChild(we));const Ie=F.doc.createElement("div");Ie.className=`${B}__validation`,Ie.id=j("lat-form"),Ie.hidden=!0,K.appendChild(Ie),o.width!=null&&(Y.colsGapCount!=null?je.style.setProperty("--lattice-item-flex",H(o.width,Y.colsGapCount)):(je.style.width=z(o.width),je.style.flex="0 0 auto")),me==="left"&&(xe.style.flex="1 1 auto"),ke&&me==="left"&&ge!=null&&!(o.props&&o.props.fullWidth===!0)&&(xe.style.paddingLeft=`calc(${z(ge)} + var(--lattice-space))`),D(je,o.css);const He=Q.read(Pe,o),Se={item:o,el:je,control:Pe,controlWrap:K,def:Q,value:He,hidden:o.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ie,preEl:we,labelEl:J,labelPosition:me,requiredHint:$e,placeholderEl:I(Pe),placeholderBase:o.placeholder!=null?String(o.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:pe,lockEl:oe?oe.el:null};if(o.value=He,pe&&Se.control.setAttribute("aria-describedby",pe),ve)for(const De of ve.entries){if(De.avatar){r(F.doc,De.el,De.spec,Se.value,Se.item);continue}typeof De.spec.onClick=="function"&&w(F,De.el,"click",()=>{De.spec.onClick(Se.value,Se.item)})}if(Se.syncLock=()=>{if(!Se.lockEl)return;const De=Se.item.readOnly===!0||Se.ruleReadOnly;Se.lockEl.hidden=!De,Se.lockEl.parentElement.classList.toggle(`${B}__control--lock`,De)},Se.syncAddons=()=>{if(!ve)return;const De=Se.item.disabled===!0;for(const he of ve.entries){if(he.avatar){r(F.doc,he.el,he.spec,Se.value,Se.item);continue}he.el.tagName==="A"?he.el.setAttribute("aria-disabled",De?"true":"false"):he.el.disabled=De}},a(Se),Se.hidden&&(je.hidden=!0),Q.custom&&Pe.__latticeFormApi){const De=Pe.__latticeFormApi;De._read=()=>Se.value,De._write=he=>{Se.value=he,Se.item.value=he,Q.write(Pe,he),u(F)},De._commit=he=>{W(F,Se,he)},De._input=he=>{F.emitter.emit("input",{name:Se.item.name,value:he,item:Se.item})}}return typeof Q.destroy=="function"&&F.disposers.push(()=>Q.destroy(Pe)),E(F,Se),F.order.push(Se),o.name!=null&&F.items.set(o.name,Se),L.appendChild(je),Se}function U(F,o,L,Y={}){const Q={labelPosition:o.labelPosition!=null?o.labelPosition:Y.labelPosition,labelWidth:o.labelWidth!=null?o.labelWidth:Y.labelWidth,requiredHint:Y.requiredHint};if(o.kind==="panel")return l(F,o,L,Q,{buildChildren:ee,applyCss:D});if(o.kind==="spacer"){const ge=F.doc.createElement("div");return ge.className=`${B}__spacer`,D(ge,o.css),o.hidden&&(ge.hidden=!0),L.appendChild(ge),ge}if(o.kind==="separator"){const ge=F.doc.createElement("div");ge.className=`${B}__separator`,ge.setAttribute("role","separator");const $e=o.label;if($e!=null){V(F.doc),ge.classList.add(`${B}__separator--labelled`);const je=F.t($e);ge.setAttribute("aria-label",je);const Pe=F.doc.createElement("span");Pe.className=`${B}__separator-rule`,Pe.setAttribute("aria-hidden","true");const ke=F.doc.createElement("span");ke.className=`${B}__separator-label`,ke.textContent=je;const O=F.doc.createElement("span");O.className=`${B}__separator-rule`,O.setAttribute("aria-hidden","true"),ge.appendChild(Pe),ge.appendChild(ke),ge.appendChild(O)}else ge.setAttribute("aria-label",F.t("form.separator"));return D(ge,o.css),o.hidden&&(ge.hidden=!0),L.appendChild(ge),ge}if(o.kind==="fieldset"){const ge=F.doc.createElement("fieldset");if(ge.className=`${B}__fieldset`,o.legend!=null){const je=F.doc.createElement("legend");je.className=`${B}__legend`,je.textContent=o.legend,ge.appendChild(je)}const $e=F.doc.createElement("div");return $e.className=`${B}__fieldset-body`,o.axis&&$e.classList.add(M(o.axis)),o.axis&&ee(F,$e,o.blocks,o.axis,Q),ge.appendChild($e),D(ge,o.css),o.spacing!=null&&ge.style.setProperty("--lattice-form-item-gap",o.spacing),o.hidden&&(ge.hidden=!0),L.appendChild(ge),ge}const me=F.doc.createElement("div");return me.className=M(o.axis),o.axis&&ee(F,me,o.blocks,o.axis,Q),D(me,o.css),o.spacing!=null&&me.style.setProperty("--lattice-form-item-gap",o.spacing),o.hidden&&(me.hidden=!0),L.appendChild(me),me}function ee(F,o,L,Y,Q={}){const me=Y==="cols"?{...Q,colsGapCount:L.length-1}:Q;for(const ge of L)ge.kind==="item"?x(F,ge,o,me):U(F,ge,o,Q)}function te(F){for(let o=F&&F.parentNode;o;o=o.parentNode){const L=o.classList;if(L&&typeof L.contains=="function"&&(L.contains("lattice")||L.contains("lattice-tokens")))return!0}return!1}function ue(F){const o=F.el;for(;o.firstChild;)o.removeChild(o.firstChild);F.items.clear(),F.order.length=0;const L=F.model;o.classList.add(B,M(L.axis)),o.setAttribute("data-density",L.density),te(o)?o.removeAttribute("data-lattice-standalone"):o.setAttribute("data-lattice-standalone","true"),L.colsBreakpoint===!1?o.style.setProperty("--lattice-cols-container",X):L.colsBreakpoint!==480&&o.style.setProperty("--lattice-cols-container",S(F.doc,L.colsBreakpoint)),F.disposers.push(()=>{o.classList.remove(`${B}__rows`,`${B}__cols`,`${B}__items`)}),D(o,L.css),L.spacing!=null&&o.style.setProperty("--lattice-form-item-gap",L.spacing),L.labelGap!=null&&o.style.setProperty("--lattice-form-label-gap",L.labelGap);const Y={labelPosition:L.labelPosition,labelWidth:L.labelWidth,requiredHint:L.requiredHint};L.steps&&L.steps.length?ae(F,Y):ee(F,o,L.blocks,L.axis==="cols"?"cols":"rows",Y),u(F),v(F)}function ae(F,o={}){const L=F.model,Y=L.steps,Q=F.doc,me=F.el,ge=Q.createElement("div");me.appendChild(ge);const $e=p(ge,{doc:Q,t:F.t,steps:Y.map(ve=>({id:ve.id,label:ve.label})),active:0,orientation:L.stepOrientation,onGoTo:ve=>{de(F,ve)}}),je=[];let Pe=F.order.length;for(const ve of Y){const xe=Q.createElement("div");xe.className=`${B}__step`,xe.hidden=!0,ee(F,xe,ve.blocks,ve.axis,o),ve.css&&D(xe,ve.css),me.appendChild(xe);const we=F.order.length;xe.__records=F.order.slice(Pe,we),Pe=we,je.push(xe)}const ke=Q.createElement("div");ke.className=`${B}__step-nav`;const O=Q.createElement("button");O.type="button",O.className=`${B}__step-back`,O.textContent=F.t("form.back");const J=Q.createElement("button");J.type="button",J.className=`${B}__step-next`,J.textContent=F.t("form.next"),ke.appendChild(O),ke.appendChild(J),me.appendChild(ke);const pe={steps:Y,bodies:je,stepper:$e,back:O,next:J,active:0};F.wizard=pe;const K=()=>{$e.setActive(pe.active),je.forEach((ve,xe)=>{ve.hidden=xe!==pe.active}),O.disabled=pe.active===0,J.textContent=pe.active===Y.length-1?F.t("form.finish"):F.t("form.next")},oe=ve=>{const xe=je[ve].__records||[];for(const we of xe)if(we.item.name!=null&&!(we.def.kind!=="field"&&we.def.kind!=="toggle")&&we.item.disabled!==!0&&!(we.ruleHidden===!0||we.hidden===!0)&&!(we.item.required!==!0&&we.item.validation==null&&typeof we.def.validate!="function"&&we.ruleRequired!==!0)&&!q(F,we))return typeof we.def.focus=="function"?we.def.focus(we.control):typeof we.control.focus=="function"&&we.control.focus(),we;return null};pe._stepInvalid=oe,pe._render=K,O.addEventListener("click",()=>{re(F)}),J.addEventListener("click",()=>{_(F)}),K()}async function de(F,o){const L=F.wizard;if(!L)return!1;const Y=L.steps.length,Q=Number(o);if(!Number.isFinite(Q)||Q<0||Q>=Y)return!1;const me=L.active;if(Q===me)return!1;if(Q>me&&F.model.validateSteps!==!1)for(let ge=me;ge<Q;ge+=1){if(L._stepInvalid(ge))return L.stepper.setStatus(ge,"error"),!1;L.stepper.setStatus(ge,"complete")}return L.active=Q,L._render(),!0}function _(F){const o=F.wizard;if(!o)return Promise.resolve(!1);if(o.active>=o.steps.length-1){if(F.model.validateSteps===!1)return Promise.resolve(!0);const L=o._stepInvalid(o.active);return o.stepper.setStatus(o.active,L?"error":"complete"),Promise.resolve(L==null)}return de(F,o.active+1)}function re(F){const o=F.wizard;return o?de(F,o.active-1):Promise.resolve(!1)}}),Ne("packages/modules/form/emitter.js",function(N,Z){"use strict";Object.defineProperty(N,"FORM_EVENTS",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"Emitter",{enumerable:!0,get:function(){return S}});const e=new Set(["api","user"]),B=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class S{#e=new Map;on(C,z){if(typeof z!="function")return()=>{};let P=this.#e.get(C);return P||(P=new Set,this.#e.set(C,P)),P.add(z),()=>this.off(C,z)}off(C,z){const P=this.#e.get(C);P&&P.delete(z)}emit(C,z){const P=this.#e.get(C),A=this.#e.get("*");if((!P||P.size===0)&&(!A||A.size===0))return;const j={...z||null,type:C},k=[],g=n=>{for(const u of[...n])try{u(j)}catch(b){k.push(b)}};P&&P.size&&g(P),A&&A.size&&g(A);for(const n of k)queueMicrotask(()=>{throw n})}emitBefore(C,z,P){const A=this.#e.get(C);if(!A||A.size===0)return!0;let j=!1,k=null;const g=a=>{j=!0,a!=null&&k===null&&(k=String(a))},n=P||z&&z.origin,u={...z||null,type:C,origin:e.has(n)?n:"user",get defaultPrevented(){return j},get reason(){return k},preventDefault(a){g(a)}},b=[...A],v=()=>(j&&k===null&&(k="prevented"),j&&z&&typeof z=="object"&&(z.reason=k),!j),t=[];for(let a=0;a<b.length;a++){const s=b[a];try{const p=s(u);p&&typeof p.then=="function"?t.push(p):p===!1&&g("prevented")}catch(p){g("error"),console.warn(`lattice-form: a '${C}' before-handler threw; the commit was cancelled.`,p)}}return t.length===0?v():Promise.allSettled(t).then(a=>{for(const s of a)s.status==="rejected"?(g("error"),console.warn(`lattice-form: a '${C}' before-handler rejected; the commit was cancelled.`,s.reason)):s.value===!1&&g("prevented");return v()})}clear(){this.#e.clear()}}}),Ne("packages/modules/form/bind-router.js",function(N,Z){"use strict";Object.defineProperty(N,"routerBinding",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"writeRouterRecord",{enumerable:!0,get:function(){return S}});function e(X){return X!==null&&typeof X=="object"&&!Array.isArray(X)}function B(X){const{router:C,route:z,key:P}=X,A=n=>n!=null&&String(n.rowKey??n.id)===String(P);return{kind:"router",record:()=>C&&typeof C.get=="function"?C.get(z,P):void 0,items:()=>[],density:()=>{},subscribe:n=>{if(!C||typeof C.subscribe!="function")return()=>{};const u=v=>{if(v){for(const t of v.add||[])A(t)&&n(null,null,t);for(const t of v.update||[])A(t)&&n(null,null,t)}},b=C.subscribe(z,u);return typeof b=="function"?b:()=>{}},save:n=>S(X,n)}}function S(X,C){const{router:z,route:P,key:A,onSave:j}=X;if(!Object.keys(C||{}).length)return!0;const g=()=>z&&typeof z.get=="function"?z.get(P,A):void 0,n=a=>{!z||typeof z.apply!="function"||z.apply([{op:"upsert",row:a}])},u=()=>{!z||typeof z.apply!="function"||(e(b)?z.apply([{op:"upsert",row:b}]):z.apply([{op:"delete",row:v}]))},b=g(),v={...e(b)?b:{},...C};if(n(v),typeof j!="function")return!0;let t;try{t=j(C,v)}catch{return u(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(u(),!1)):!0}}),Ne("packages/modules/form/bind.js",function(N,Z){"use strict";Object.defineProperty(N,"resolveBind",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"isBound",{enumerable:!0,get:function(){return v}}),Object.defineProperty(N,"applyBinding",{enumerable:!0,get:function(){return t}});const B=Z("packages/modules/form/model.js").DENSITIES,X=Z("packages/modules/form/bind-router.js").routerBinding,C=new Set(["number","currency","percent","integer","decimal","duration"]);function z(a){const s=a&&a.dataType;if(s&&(s.unitConfig||s.temperatureConfig))return!0;const p=a&&a.edit?a.edit.editor:null;return p==="unit"||p==="temperature"}function P(a){return a!==null&&typeof a=="object"&&!Array.isArray(a)}function A(a){const s=a&&a.edit?a.edit.editor:null,p=a&&a.type;return s==="checkbox"||p==="boolean"?"checkbox":s==="number"||p!=null&&C.has(p)||z(a)?"number":"input"}function j(a){const s=a&&a.columns&&typeof a.columns.all=="function"?a.columns.all():[],p=[];for(const y of s){if(!y||!y.field||y.generated||y.computed)continue;const m={type:A(y),name:y.field,label:y.title,format:y.format},h=y.dataType,R=h&&h.unitConfig,d=h&&h.temperatureConfig;R?Object.assign(m,{system:R.system,unit:R.unit,binary:R.binary,decimals:R.decimals,minDecimals:R.minDecimals,maxDecimals:R.maxDecimals,display:R.display,group:R.group,space:R.space,placement:R.placement,significantFigures:R.significantFigures,compound:R.compound,nullDisplay:R.nullDisplay}):d&&Object.assign(m,{scale:d.scale,display:d.display,decimals:d.decimals,minDecimals:d.minDecimals,maxDecimals:d.maxDecimals,space:d.space,nullDisplay:d.nullDisplay}),p.push(m)}return p}function k(a,s){const p=a&&a.columns&&typeof a.columns.all=="function"?a.columns.all():[];for(const y of p)if(y&&y.field===s)return y;return null}function g(a){const s=a&&typeof a.get=="function"?a.get("density"):void 0;return B.includes(s)?s:void 0}function n(a){const{grid:s,rowKey:p}=a,y=()=>{const d=s&&s.rows&&typeof s.rows.byKey=="function"?s.rows.byKey(p):null;return d&&P(d.data)?{...d.data}:{}},m=d=>{const c=k(s,d);return c?c.id:d};return{kind:"grid",record:y,items:()=>j(s),density:()=>g(s),subscribe:d=>{if(!s||typeof s.on!="function")return()=>{};const c=i=>{if(!i||i.key!==p)return;const r=s.columns&&typeof s.columns.get=="function"?s.columns.get(i.colId):null,l=r?r.field:i.colId;l&&d(l,i.value)};return s.on("cell:changed",c)},save:d=>{const c=Object.keys(d);if(!c.length)return!0;if(!s||!s.edit||typeof s.edit.setCells!="function")return!1;const i=c.map(l=>({key:p,colId:m(l),value:d[l]})),r=s.edit.setCells(i,"cell",{origin:"form"});return r&&typeof r.then=="function"?r.then(l=>l>0):r>0}}}function u(a){return{kind:"values",record:()=>({...a}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:y=>{for(const m of Object.keys(y))a[m]=y[m];return!0}}}function b(a){const s=a&&a.bind;return s==null||typeof s!="object"?null:s.grid!=null&&P(s.grid)?n(s):s.router!=null?X(s):u(s)}function v(a){return!!(a&&a.bind!=null&&typeof a.bind=="object")}function t(a,s,p){a.bound=p;const y=(R,d)=>{const c=s.getItem(R);c&&c.setValue(d)},m=(R,d,c)=>{if(c!=null){for(const i of Object.keys(c))if(a.items.has(i)){if(a.dirty.has(i)){a.conflicts.add(i);continue}a.baseline[i]=c[i],y(i,c[i])}return}if(a.items.has(R)){if(a.dirty.has(R)){a.conflicts.add(R);return}a.baseline[R]=d,y(R,d)}},h=p.record();if(h!=null&&typeof h=="object")for(const R of Object.keys(h))a.items.has(R)&&(a.baseline[R]=h[R],y(R,h[R]));a.disposers.push(s.on("change",R=>{a.dirty.add(R.name),a.conflicts.delete(R.name)})),a.disposers.push(p.subscribe(m))}}),Ne("packages/modules/form/controls/container.js",function(N,Z){"use strict";Object.defineProperty(N,"attachToContainer",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"attachHtmlToContainer",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"getContainerWidget",{enumerable:!0,get:function(){return d}});const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/modules/form/model.js").cssSize,C=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),z=/^<!--[\s\S]*?-->/,P=/^<![^>]*>/,A=/^<\/([a-zA-Z][a-zA-Z0-9:-]*)\s*>/,j=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,k=`(?:\\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s"'>]+))?)*`,g=new RegExp(`^<([a-zA-Z][a-zA-Z0-9:-]*)(${k})\\s*(/?)>`),n={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function u(c){return c.replace(/&(#x?[0-9a-fA-F]+|[a-zA-Z]+);/g,(i,r)=>{if(r[0]==="#"){const l=r[1]==="x"||r[1]==="X",f=parseInt(r.slice(l?2:1),l?16:10);return Number.isFinite(f)?String.fromCodePoint(f):i}return n[r]!==void 0?n[r]:i})}function b(c){const i=c.replace(/[\s\u0000-\u001f]+/g,"");return/^javascript:/i.test(i)}function v(c,i){if(!i)return;j.lastIndex=0;let r=j.exec(i);for(;r;){const l=r[1];if(!/^on/i.test(l)){const f=r[2]!==void 0?r[2]:r[3]!==void 0?r[3]:r[4]!==void 0?r[4]:"",T=u(f);b(T)||c.setAttribute(l,T)}r=j.exec(i)}}function t(c,i,r){const l=[i];let f=0,T=!1;const V=()=>l[l.length-1];for(;f<r.length;){if(T){const I=r.slice(f),W=/<\/script\s*>/i.exec(I);if(!W)break;f+=W.index+W[0].length,T=!1;continue}const D=r.indexOf("<",f);if(D===-1){V().appendChild(c.createTextNode(u(r.slice(f))));break}D>f&&V().appendChild(c.createTextNode(u(r.slice(f,D))));const M=r.slice(D);let w=z.exec(M);if(w){f=D+w[0].length;continue}if(w=A.exec(M),w){const I=w[1].toLowerCase();for(let W=l.length-1;W>0;W-=1)if(l[W].__latTag===I){l.length=W;break}f=D+w[0].length;continue}if(w=g.exec(M),w){const I=w[1].toLowerCase(),W=w[3]==="/";if(f=D+w[0].length,I==="script"){W||(T=!0);continue}const G=c.createElement(I);G.__latTag=I,v(G,w[2]),V().appendChild(G),!W&&!C.has(I)&&l.push(G);continue}if(w=P.exec(M),w){f=D+w[0].length;continue}V().appendChild(c.createTextNode("<")),f=D+1}}function a(c,i,r){if(r!=null){if(typeof r=="object"&&typeof r.nodeType=="number"){i.appendChild(r);return}t(c,i,String(r))}}function s(c){for(;c.firstChild;)c.removeChild(c.firstChild)}function p(c){const i=c.__latAttached;i&&(c.__latAttached=null,!i.keep&&i.view&&typeof i.view.destroy=="function"&&i.view.destroy())}function y(c){return c==null||c==="content"?"fit-content":X(c)}B("container",{kind:"container",build(c,i){const r=i.doc,l=c.props||{},f=r.createElement("div");return f.className="lat-form__container",f.setAttribute("role","region"),c.label!=null&&c.label!==""&&f.setAttribute("aria-label",String(c.label)),f.style.width=y(c.width),f.style.height=y(l.height),l.padding!=null&&(f.style.padding=X(l.padding)),a(r,f,l.html),f},read(){},write(){},state(c,i){const r=i.disabled===!0;c.toggleAttribute("inert",r),c.inert=r,r?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled")},destroy(c){p(c)}});function m(c){return c.el||c.root||c.element||null}function h(c,i,r={}){p(c),s(c);const f=!(i!=null&&typeof i.nodeType=="number")&&i!=null&&typeof i=="object"?m(i):null,T=f?i:null,V=f||i;V.style.width="100%",c.style.height&&c.style.height!=="fit-content"&&(V.style.height=c.style.height),c.appendChild(V),c.__latAttached={view:T,node:V,keep:r.keep===!0}}function R(c,i,r){p(i),s(i),a(c,i,r)}function d(c){const i=c.__latAttached;return i?i.view||i.node:null}}),Ne("packages/modules/form/controls/input.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Object.freeze(["text","email","password","url"]),X=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"}),C=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 z(g){return S.includes(g)?g:"text"}function P(g){return!(g.props&&g.props.reveal===!1)}function A(g,n){const u=n?C:X,b=g.createElementNS("http://www.w3.org/2000/svg","svg");b.setAttribute("viewBox",u.viewBox),b.setAttribute("focusable","false"),b.setAttribute("aria-hidden","true"),u.paint==="stroke"?(b.setAttribute("fill","none"),b.setAttribute("stroke","currentColor"),b.setAttribute("stroke-width","1.5"),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")):b.setAttribute("fill","currentColor");for(const v of u.paths){const t=g.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",v),b.appendChild(t)}return b}function j(g){return g.__latPassword?g.__latPassword.input:g}function k(g,n,u){const b=n&&n.defaultView,v=b&&b.Event,t=v?new v(u,{bubbles:!0}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};g.dispatchEvent(t)}B("input",{kind:"field",build(g,n){const u=n.doc,b=z(g.subtype);if(b!=="password"||!P(g)){const h=u.createElement("input");return h.type=b,g.name&&(h.name=g.name),g.placeholder!=null&&(h.placeholder=String(g.placeholder)),h.value=g.value==null?"":String(g.value),h}const v=u.createElement("div");v.className="lat-form__password";const t=u.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),v.appendChild(t);const a=u.createElement("button");a.type="button",a.className="lat-form__password-btn",a.setAttribute("aria-pressed","false");const s=n.t("form.password.show");a.setAttribute("aria-label",s),a.title=s,a.appendChild(A(u,!1)),v.appendChild(a);const p={revealed:!1,disabled:!1,input:t,btn:a};v.__latPassword=p;const y=h=>{p.revealed=h===!0,t.type=p.revealed?"text":"password",a.setAttribute("aria-pressed",p.revealed?"true":"false");const R=n.t(p.revealed?"form.password.hide":"form.password.show");a.setAttribute("aria-label",R),a.title=R,a.replaceChild(A(u,p.revealed),a.firstChild)};p.setRevealed=y,a.addEventListener("click",()=>{p.disabled||y(!p.revealed)});let m=!1;return v.addEventListener("focusin",()=>{m||(m=!0,k(v,u,"focus"))}),v.addEventListener("focusout",h=>{v.contains(h.relatedTarget)||(m=!1,y(!1),k(v,u,"blur"))}),v},read(g){return j(g).value},write(g,n){j(g).value=n==null?"":String(n)},state(g,n){const u=j(g);u.disabled=n.disabled===!0,u.readOnly=n.readOnly===!0;const b=g.__latPassword;b&&(b.disabled=n.disabled===!0,b.btn&&(b.btn.disabled=b.disabled))},reset(g){const n=g.__latPassword;n&&typeof n.setRevealed=="function"&&n.setRevealed(!1)}})}),Ne("packages/core/src/internal/predicates.js",function(N,Z){"use strict";Object.defineProperty(N,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"isFunction",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"isNil",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"isBlank",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"isCtor",{enumerable:!0,get:function(){return C}});function e(z){return z!==null&&typeof z=="object"&&!Array.isArray(z)}function B(z){return typeof z=="function"}function S(z){return z==null}function X(z){return z==null||z===""}function C(z){return typeof z!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(z))?!0:!!(z.prototype&&Object.getOwnPropertyNames(z.prototype).length>1)}}),Ne("packages/core/src/internal/warn.js",function(N,Z){"use strict";Object.defineProperty(N,"reportedWarnings",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"warnOnce",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"infoOnce",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"resetWarnings",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"invariant",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"DEV",{enumerable:!0,get:function(){return v}});const e=new Set,B=2e3;function S(t){if(e.add(t),e.size>B){const a=e.values().next().value;a!==void 0&&e.delete(a)}}const X=[],C=500;function z(t,a,s){X.push({key:t,level:a,message:s.map(p=>typeof p=="string"?p:P(p)).join(" "),at:Date.now()}),X.length>C&&X.shift()}function P(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function A(){return X.map(t=>({...t}))}function j(t){if(t.length===0||typeof t[0]!="string")return t;const a=t[0].replace(/^\[lattice\]\s*/,"");return a===t[0]?t:[a,...t.slice(1)]}function k(t,...a){if(e.has(t))return;S(t);const s=j(a);z(t,"warn",s),console.warn("[lattice]",...s)}function g(t,...a){if(e.has(t))return;S(t);const s=j(a);z(t,"info",s),console.info("[lattice]",...s)}function n(){e.clear(),X.length=0}function u(t,a){const s=new Error(`[lattice] ${t}`);throw a!==void 0&&(s.cause=a),s}function b(t,a){t||u(a)}const v=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Ne("packages/core/src/format/mask.js",function(N,Z){"use strict";Object.defineProperty(N,"splitSections",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"parseSection",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"compileMask",{enumerable:!0,get:function(){return z}});const e=new Set(["0","#","?",",","."]),B="\0";function S(A){const j=[];let k="",g=!1;for(let n=0;n<A.length;n++){const u=A[n];if(u==="\\"){k+=u+(A[n+1]??""),n+=1;continue}if(u==='"'){g=!g,k+=u;continue}if(u===";"&&!g){j.push(k),k="";continue}k+=u}return j.push(k),j}function X(A){let j="",k="",g="",n=1,u=!1,b=!1;const v=d=>{b?k+=d:j+=d};for(let d=0;d<A.length;d++){const c=A[d];if(c==="\\"){v(A[d+1]??""),d+=1;continue}if(c==='"'){const i=A.indexOf('"',d+1);v(i===-1?A.slice(d+1):A.slice(d+1,i)),d=i===-1?A.length:i;continue}if(c==="%"){n*=100,v("%");continue}if(c==="@"){u=!0,v("\0");continue}if(e.has(c)){g+=c,b=!0;continue}v(c)}let t=-1;for(let d=g.length-1;d>=0;d--){const c=g[d];if(c==="0"||c==="#"||c==="?"){t=d;break}}let a=!1,s="";for(let d=0;d<g.length;d++){const c=g[d];if(c===","){d>t?n/=1e3:a=!0;continue}s+=c}const p=s.indexOf("."),y=p===-1?s:s.slice(0,p),m=p===-1?"":s.slice(p+1);let h=0;for(const d of y)d==="0"&&(h+=1);let R=0;for(const d of m)d==="0"&&(R+=1);return{prefix:j,suffix:k,minInt:h,minDec:R,maxDec:m.length,grouping:a,scale:n,hasNumber:t!==-1,isText:u}}function C(A,j){const k=new Intl.NumberFormat(j,{minimumIntegerDigits:Math.max(A.minInt,1),minimumFractionDigits:A.minDec,maximumFractionDigits:Math.max(A.maxDec,A.minDec),useGrouping:A.grouping}),{prefix:g,suffix:n,scale:u,hasNumber:b}=A;return v=>{if(!b)return g+n;const t=u===1?v:v*u;return g+k.format(t)+n}}function z(A,j){const g=S(String(A)).map(X),n=g.map(s=>C(s,j)),u=0,b=g.length>1?1:-1,v=g.length>2?2:-1,t=g.length>3?3:-1,a=s=>{if(s==null||s==="")return"";if(typeof s!="number"||Number.isNaN(s)){const p=Number(s);if(Number.isNaN(p))return t===-1?String(s):(g[t].prefix+g[t].suffix).split("\0").join(String(s));s=p}return s===0&&v!==-1?n[v](0):s<0&&b!==-1?n[b](-s):n[u](s)};return a.spec={mask:A},{format:a,ooxml:P(String(A))}}function P(A){return A.trim()}}),Ne("packages/core/src/format/pattern.js",function(N,Z){"use strict";Object.defineProperty(N,"parseNumberPattern",{enumerable:!0,get:function(){return C}});const B=Z("packages/core/src/format/mask.js").splitSections;function S(z){let P="",A="",j="",k="",g=!1,n=!1,u=!1,b=!1;const v=a=>{u?A+=a:P+=a};for(let a=0;a<z.length;a++){const s=z[a];if(s==="\\"){v(z[a+1]??""),a+=1;continue}if(s==='"'){const p=z.indexOf('"',a+1);v(p===-1?z.slice(a+1):z.slice(a+1,p)),a=p===-1?z.length:p;continue}if(s==="%"){n=!0;continue}if(s==="0"||s==="#"){u=!0,b?k+=s:j+=s;continue}if(s===","){b||(g=!0);continue}if(s==="."&&!b){b=!0;continue}v(s)}if(!u)return{hasDigit:!1,prefix:P,suffix:A,minDec:0,maxDec:0,grouping:!1,percent:n};let t=0;for(const a of k)a==="0"&&(t+=1);return{hasDigit:!0,prefix:P,suffix:A,minDec:t,maxDec:k.length,grouping:g,percent:n}}function X(z,P){const A=P.trim(),j=z.trim();return A.startsWith("(")&&A.endsWith(")")&&A.slice(1,-1).trim()===j?"parentheses":A.endsWith("-")?"suffix":"minus"}function C(z){if(typeof z!="string")return null;const P=B(z);if(P.length===0)return null;const A=S(P[0]);if(!A.hasDigit)return null;const j={style:A.percent?"percent":"decimal",prefix:A.prefix,suffix:A.suffix,minDecimals:A.minDec,maxDecimals:Math.max(A.maxDec,A.minDec),thousandsSeparator:A.grouping?void 0:!1};if(P.length>1&&(j.negative=X(P[0],P[1])),P.length>2){const k=S(P[2]);k.hasDigit||(j.zeroDisplay=k.prefix+k.suffix)}return j}}),Ne("packages/core/src/format/number.js",function(N,Z){"use strict";Object.defineProperty(N,"compileNumber",{enumerable:!0,get:function(){return P}});const B=Z("packages/core/src/internal/predicates.js").isNil,X=Z("packages/core/src/internal/warn.js").warnOnce,z=Z("packages/core/src/format/pattern.js").parseNumberPattern;function P(A,j){const k=typeof A=="string"?{pattern:A}:A||{};let g=k;if(typeof k.pattern=="string"){const D=z(k.pattern);if(D){const{pattern:M,...w}=k;g={...D,...w}}else X(`format:pattern:${k.pattern}`,`invalid number format pattern "${k.pattern}"; the value will use the default number format`)}const n=g.locale||j||void 0,u=g.style||"decimal",b=typeof g.scale=="number"?g.scale:1,v=g.nullDisplay??"",t=g.zeroDisplay,a=g.prefix||"",s=g.suffix||"",p=g.negative||"minus",y=g.signed===!0,m={style:u,notation:g.notation||"standard"};u==="currency"&&(m.currency=g.currency||"USD",g.currencyDisplay&&(m.currencyDisplay=g.currencyDisplay)),typeof g.decimals=="number"?(m.minimumFractionDigits=g.decimals,m.maximumFractionDigits=g.decimals):(typeof g.minDecimals=="number"&&(m.minimumFractionDigits=g.minDecimals),typeof g.maxDecimals=="number"&&(m.maximumFractionDigits=g.maxDecimals),m.minimumFractionDigits>(m.maximumFractionDigits??20)&&(m.maximumFractionDigits=m.minimumFractionDigits)),g.thousandsSeparator===!1&&(m.useGrouping=!1),m.notation==="compact"&&(m.compactDisplay=g.compactDisplay||"short");const h=new Intl.NumberFormat(n,m),R=typeof g.thousandsSeparator=="string"?g.thousandsSeparator:null,d=typeof g.decimalSeparator=="string"?g.decimalSeparator:null;let c=",",i=".";if(R||d)for(const D of h.formatToParts(12345.6))D.type==="group"?c=D.value:D.type==="decimal"&&(i=D.value);const r=D=>{let M=D;return R&&(M=M.split(c).join("")),d&&(M=M.split(i).join("")),R&&(M=M.split("").join(R)),d&&(M=M.split("").join(d)),M},l=!!(R||d),f=a!==""&&u==="currency",T=D=>{let M;if(f){const w=h.formatToParts(D);let I=!1;M="";for(const W of w)M+=W.value,!I&&W.type==="currency"&&(M+=a,I=!0);I||(M=a+M)}else M=a+h.format(D);return l&&(M=r(M)),M+s},V=D=>{if(B(D)||D==="")return v;const M=typeof D=="number"?D:Number(D);if(Number.isNaN(M))return v;const w=b===1?M:M*b;return w===0&&t!==void 0?t:w<0?p==="parentheses"?`(${T(-w)})`:p==="suffix"?`${T(-w)}-`:T(w):y&&w>0?`+${T(w)}`:T(w)};return V.negativeClass=g.negativeClass||null,V.spec=g,V}}),Ne("packages/core/src/columns/types/unit.js",function(N,Z){"use strict";Object.defineProperty(N,"defineUnit",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"registerUnitSystem",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"unitSystemNames",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"unitsOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"localeSeparators",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"parseUnit",{enumerable:!0,get:function(){return V}}),Object.defineProperty(N,"formatUnit",{enumerable:!0,get:function(){return be}}),Object.defineProperty(N,"createUnitType",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return ie}});const B=Z("packages/core/src/internal/predicates.js").isNil,X=Z("packages/core/src/internal/warn.js").warnOnce;function C(q,E,H,x){return Object.freeze({symbol:q,factor:E,aliases:Object.freeze(H||[]),binary:!!(x&&x.binary),prefix:x&&x.prefix||null,auto:!(x&&x.auto===!1)})}function z(q,E,H,x){return C(q,E,H,x)}const P=Object.freeze({data:Object.freeze([C("B",1,["byte","bytes"]),C("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),C("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),C("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),C("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),C("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),C("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),C("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),C("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),C("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([C("bps",1,["bit","bits","bit/s","b/s"]),C("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),C("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),C("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),C("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([C("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),C("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),C("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),C("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),C("in",.0254,["inch","inches"],{auto:!1}),C("ft",.3048,["foot","feet"],{auto:!1}),C("yd",.9144,["yard","yards"],{auto:!1}),C("m",1,["metre","metres","meter","meters"]),C("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),C("mi",1609.344,["mile","miles"],{auto:!1}),C("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([C("mg",.001,["milligram","milligrams"]),C("g",1,["gram","grams"]),C("oz",28.349523125,["ounce","ounces"],{auto:!1}),C("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),C("kg",1e3,["kilogram","kilograms"]),C("st",6350.29318,["stone"],{auto:!1}),C("t",1e6,["tonne","tonnes","ton"],{auto:!1}),C("ton (US)",907184.74,["ton","shortton"],{auto:!1}),C("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([C("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),C("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),C("ms",.001,["msec","msecs","millisecond","milliseconds"]),C("s",1,["sec","secs","second","seconds"]),C("m",60,["min","mins","minute","minutes"]),C("h",3600,["hr","hrs","hour","hours"]),C("d",86400,["day","days"])]),speed:Object.freeze([C("mm/s",.001,["millimetre/s","millimeter/s"]),C("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),C("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),C("mph",.44704,["mile/h","miles/h"],{auto:!1}),C("kn",1852/3600,["knot","knots"],{auto:!1}),C("m/s",1,["metre/s","meter/s","mps"]),C("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([C("mm/s²",.001,["mm/s2"]),C("ft/s²",.3048,["ft/s2"],{auto:!1}),C("m/s²",1,["m/s2","metre/s2","meter/s2"]),C("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([C("mm²",1e-6,["mm2"]),C("cm²",1e-4,["cm2"]),C("in²",64516e-8,["in2","sqin"],{auto:!1}),C("ft²",.09290304,["ft2","sqft"],{auto:!1}),C("yd²",.83612736,["yd2","sqyd"],{auto:!1}),C("m²",1,["m2","sqm"]),C("ha",1e4,["hectare","hectares"],{auto:!1}),C("ac",4046.8564224,["acre","acres"],{auto:!1}),C("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([C("µL",1e-6,["ul","microlitre","microliter"]),C("mL",.001,["millilitre","milliliter"]),C("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),C("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),C("L",1,["litre","litres","liter","liters"]),C("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),C("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),C("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),C("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([C("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),C("J",1,["joule","joules"]),C("cal",4.184,["calorie","calories"],{auto:!1}),C("kJ",1e3,["kilojoule","kilojoules"]),C("BTU",1055.05585262,["btu"],{auto:!1}),C("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),C("MJ",1e6,["megajoule","megajoules"]),C("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),C("GJ",1e9,["gigajoule","gigajoules"]),C("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([C("mW",.001,["milliwatt","milliwatts"]),C("W",1,["watt","watts"]),C("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),C("kW",1e3,["kilowatt","kilowatts"]),C("hp",745.6998715822702,["horsepower"],{auto:!1}),C("MW",1e6,["megawatt","megawatts"]),C("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([C("mN",.001,["millinewton","millinewtons"]),C("N",1,["newton","newtons"]),C("lbf",4.4482216152605,["poundforce"],{auto:!1}),C("kgf",9.80665,["kilogramforce"],{auto:!1}),C("kN",1e3,["kilonewton","kilonewtons"]),C("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([C("Pa",1,["pascal","pascals"]),C("mbar",100,["millibar"],{auto:!1}),C("inH₂O",249.0889,["inh2o"],{auto:!1}),C("mmHg",133.322387415,["torr"],{auto:!1}),C("kPa",1e3,["kilopascal","kilopascals"]),C("inHg",3386.388640341,["inhg"],{auto:!1}),C("psi",6894.757293168361,["lbf/in2"],{auto:!1}),C("bar",1e5,[],{auto:!1}),C("atm",101325,["atmosphere","atmospheres"],{auto:!1}),C("MPa",1e6,["megapascal","megapascals"]),C("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([C("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),C("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),C("kN·m",1e3,["knm","kn.m"],{auto:!1}),C("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([C("kg/m³",1,["kg/m3"]),C("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),C("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),C("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([C("L/min",1/6e4,["lpm","l/min"],{auto:!1}),C("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),C("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),C("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),C("cfm",.0004719474432,["ft3/min"],{auto:!1}),C("L/s",.001,["lps","l/s"],{auto:!1}),C("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([C("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),C("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),C("mrad",.001,["milliradian","milliradians"],{auto:!1}),C("mil",Math.PI/3200,["nato-mil"],{auto:!1}),C("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),C("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),C("rad",1,["radian","radians"]),C("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([C("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),C("rad/s",1,["radps","radians/s"]),C("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),C("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([C("ppt",1e-12,["partspertrillion"],{auto:!1}),C("ppb",1e-9,["partsperbillion"]),C("ppm",1e-6,["partspermillion"]),C("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),C("‰",.001,["permille","permil"],{auto:!1}),C("%",.01,["pct","percent"]),C("×",1,["x","ratio","times"])]),molarity:Object.freeze([C("pM",1e-12,["picomolar","picomolarity"]),C("nM",1e-9,["nanomolar","nanomolarity"]),C("µM",1e-6,["um-molar","micromolar","micromolarity"]),C("mM",.001,["millimolar","millimolarity"]),C("M",1,["molar","mol/l","mol/L","molarity"]),C("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([C("mg/s",1e-6,["milligrams/s"]),C("g/s",.001,["grams/s"]),C("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),C("kg/s",1,["kilograms/s","kgps"]),C("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),C("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),C("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([C("µPa·s",1e-6,["upas","micropascalsecond"]),C("cP",.001,["centipoise"],{auto:!1}),C("mPa·s",.001,["mpas","millipascalsecond"]),C("P",.1,["poise"],{auto:!1}),C("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([C("cSt",1e-6,["centistokes","centistoke"]),C("mm²/s",1e-6,["mm2/s"],{auto:!1}),C("St",1e-4,["stokes","stoke"],{auto:!1}),C("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([C("mW/(m·K)",.001,["mw/mk"]),C("W/(m·K)",1,["w/mk","wmk"]),C("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),C("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([C("J/(kg·K)",1,["j/kgk","jkgk"]),C("kJ/(kg·K)",1e3,["kj/kgk"]),C("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([C("nSv/h",1e-9,["nsvh"]),C("µSv/h",1e-6,["usv/h","usvh"]),C("mSv/h",.001,["msvh"]),C("Sv/h",1,["svh"]),C("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),A=Symbol("ambiguous"),j=new Map,k=new Map;function g(q,E){const H=String(q||"").trim();if(!H)throw new Error("[lattice] a unit system needs a name");if(P[H]||k.has(H))throw new Error(`[lattice] unit system "${H}" already exists`);const x=[...E||[]];if(!x.length)throw new Error(`[lattice] unit system "${H}" has no units`);if(!x.some(ee=>ee.factor===1))throw new Error(`[lattice] unit system "${H}" has no base unit (none with factor 1)`);const U=new Set;for(const ee of x){if(U.has(ee.symbol))throw new Error(`[lattice] unit system "${H}" declares "${ee.symbol}" twice`);U.add(ee.symbol)}return k.set(H,Object.freeze(x)),j.delete(H),H}function n(){return[...Object.keys(P),...k.keys()]}function u(q){const E=b(q);return E?E.units:[]}function b(q){const E=String(q||""),H=j.get(E);if(H!==void 0)return H;const x=P[E]||k.get(E);if(!x)return j.set(E,null),null;const U=Object.freeze([...x].sort((de,_)=>de.factor-_.factor)),ee=new Map,te=new Map,ue=(de,_)=>{const re=ee.get(de);re===void 0?ee.set(de,_):re!==_&&ee.set(de,A)};for(const de of U){ue(de.symbol.toLowerCase(),de);for(const _ of de.aliases)ue(_.toLowerCase(),de);if(de.prefix){const _=te.get(de.prefix)||[];_.push(de),te.set(de.prefix,_)}}const ae={units:U,byToken:ee,byPrefix:te,decimal:U.filter(de=>!de.binary&&de.auto),binary:U.some(de=>de.binary)?U.filter(de=>(de.binary||de.factor===1)&&de.auto):null};return j.set(E,ae),ae}function v(q,E){return E&&q.binary||q.decimal}function t(q,E){const H=b(q);if(!H||B(E))return null;const x=H.units.find(ee=>ee.symbol===String(E));if(x)return x;const U=H.byToken.get(String(E).trim().toLowerCase());return U&&U!==A?U:null}const a=new WeakMap;function s(q){const E=q||{};if(typeof E=="object"&&E!==null){const ee=a.get(E);if(ee!==void 0)return ee}const H=E.system||"data",x=b(H);let U=null;if(!x)X(`unit:system:${H}`,`unknown unit system "${H}"; known systems are ${n().join(", ")}`);else{let ee=E.unit?t(H,E.unit):null;ee||(E.unit&&X(`unit:unit:${H}:${E.unit}`,`unknown unit "${E.unit}" in system "${H}"; falling back to ${x.units[0].symbol}`),ee=x.units.find(te=>te.factor===1)||x.units[0]),U={index:x,base:ee,binary:E.binary===!0}}return typeof E=="object"&&E!==null&&a.set(E,U),U}const p=new WeakMap;function y(q,E){if(!q||!E||!Array.isArray(q.compound)||q.compound.length===0)return null;const H=p.get(q);if(H!==void 0)return H;const x=new Set,U=[];for(const te of q.compound){const ue=t(q.system||"data",te);if(!ue){X(`unit:compound:${q.system}:${te}`,`unknown compound unit "${te}" in system "${q.system||"data"}"; ignoring it`);continue}x.has(ue.symbol)||(x.add(ue.symbol),U.push(ue))}U.sort((te,ue)=>ue.factor-te.factor);const ee=U.length>=2?U:null;return p.set(q,ee),ee}function m(q,E,H){return E===H||E.factor===H.factor?q:q*E.factor/H.factor}const h=new Map;function R(q){const E=q||"",H=h.get(E);if(H)return H;const x={group:",",decimal:"."};try{for(const U of new Intl.NumberFormat(q||void 0).formatToParts(12345.6))U.type==="group"?x.group=U.value:U.type==="decimal"&&(x.decimal=U.value)}catch{}return h.set(E,x),x}const d=/[\s   ]/g,c=/^[+-]?[\d   '’ .,]*(?:[eE][+-]?\d+)?/,i=/^[^\d+\-(.,\s]+\s*/,r=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function l(q,E){const{group:H,decimal:x}=R(E);let U=String(q).replace(d,"");if(U==="")return null;const ee=x?U.indexOf(x):-1;if(H&&H!==x){if(ee>=0&&U.indexOf(H,ee+x.length)>=0)return null;U=U.split(H).join("")}if(x&&x!=="."&&(U=U.split(x).join(".")),!r.test(U))return null;const te=Number(U);return Number.isFinite(te)?te:null}function f(q,E,H){const x=String(q).trim().replace(/\.$/,"");if(x==="")return null;const U=E.units.find(_=>_.symbol===x);if(U)return U;const ee=x.toLowerCase(),te=E.byToken.get(ee);if(te===A)return null;if(te)return te;const ue=E.byPrefix.get(ee);if(!ue||!ue.length)return null;const ae=v(E,H),de=ue.filter(_=>ae.includes(_));return de.length===1?de[0]:null}function T(q,E,H,x){let U=q,ee=0,te=!1,ue=!1;for(;U!=="";){const ae=c.exec(U)[0];if(ae==="")return null;const de=l(ae,x&&x.locale);if(de===null)return null;U=U.slice(ae.length).trim();const _=U.search(/[+-]?[\d]/),re=(_>=0?U.slice(0,_):U).trim();if(U=_>=0?U.slice(_).trim():"",re===""){if(te)return null;ue=!0,ee+=m(de,H[0],E.base)}else{const F=f(re,E.index,E.binary);if(!F)return null;ee+=m(de,F,E.base)}if(te=!0,ue&&U!=="")return null}return te?ee:null}function V(q,E){if(B(q))return null;if(typeof q=="number")return Number.isFinite(q)?q:null;const H=s(E);if(!H)return null;let x=String(q).trim();if(x==="")return null;let U=!1;x.startsWith("(")&&x.endsWith(")")&&(U=!0,x=x.slice(1,-1).trim());const ee=y(E,H);if(ee){x.startsWith("-")&&(U=!0,x=x.slice(1).trim());const o=T(x,H,ee,E);return o===null?null:U?-o:o}let te=null;const ue=i.exec(x);if(ue&&ue[0]){const o=f(ue[0].trim(),H.index,H.binary);o&&(te=o,x=x.slice(ue[0].length).trim())}const ae=c.exec(x)[0],de=l(ae,E&&E.locale);if(de===null)return null;const _=x.slice(ae.length).trim();if(te&&_!=="")return null;const re=te||(_===""?H.base:f(_,H.index,H.binary));if(!re)return null;const F=m(de,re,H.base);return U?-F:F}const D=new Map;function M(q,E,H,x){const U=`${q||""}|${E}|${H}|${x?1:0}`;let ee=D.get(U);return ee||(ee=new Intl.NumberFormat(q||void 0,{minimumFractionDigits:E,maximumFractionDigits:H,useGrouping:x}),D.set(U,ee)),ee}function w(q,E){if(!Number.isFinite(q)||q===0)return Math.max(0,E-1);const H=Math.floor(Math.log10(Math.abs(q)));return Math.min(20,Math.max(0,E-1-H))}function I(q,E){if(!Number.isFinite(q)||q===0)return q;const H=Math.ceil(Math.log10(Math.abs(q))),x=10**(E-H);return Math.round(q*x)/x}function W(q,E,H){if(!H||H===E.base.symbol)return E.base;if(H!=="auto")return G(E,H);if(q===0||!Number.isFinite(q))return E.base;const x=Math.abs(q)*E.base.factor,U=v(E.index,E.binary);let ee=U[0];for(const ae of U)x>=ae.factor&&(ee=ae);if(x>=ee.factor)return ee;let te=ee;for(const ae of E.index.units)ae.binary!==E.binary&&ae.factor!==1||ae.factor<=x&&ae.factor>(te===ee?0:te.factor)&&(te=ae);if(te!==ee)return te;let ue=ee;for(const ae of E.index.units)ae.binary!==E.binary&&ae.factor!==1||ae.factor<ue.factor&&(ue=ae);return ue.factor<E.base.factor?ue:E.base}function G(q,E){const H=q.index.units.find(U=>U.symbol===E);if(H)return H;const x=q.index.byToken.get(String(E).toLowerCase());return x&&x!==A?x:(X(`unit:display:${E}`,`unknown display unit "${E}"; rendering in ${q.base.symbol}`),q.base)}function ne(q,E,H,x){const U=q<0;let ee=Math.abs(q)*E.base.factor;const te=typeof x.decimals=="number"?x.decimals:x.minDecimals??0,ue=typeof x.decimals=="number"?x.decimals:x.maxDecimals??Math.max(te,2),ae=x.space??" ",de=[];for(let re=0;re<H.length;re++){const F=H[re],o=re===H.length-1;let L=o?ee/F.factor:Math.floor(ee/F.factor);if(ee-=L*F.factor,o){const Q=10**ue;L=Math.round(L*Q)/Q+0}const Y=o?M(x.locale,te,ue,x.group!==!1):M(x.locale,0,0,x.group!==!1);de.push(`${Y.format(L)}${ae}${F.symbol}`)}const _=de.join(" ");return U?`-${_}`:_}function be(q,E){const H=E||{},x=H.nullDisplay??"";if(B(q)||q==="")return x;const U=typeof q=="number"?q:Number(q);if(!Number.isFinite(U))return x;const ee=s(H);if(!ee)return String(U);const te=y(H,ee);if(te)return ne(U,ee,te,H);const ue=typeof H.significantFigures=="number"&&H.significantFigures>0?H.significantFigures:0,ae=ue?I(U,ue):U,de=W(ae,ee,H.display),_=m(ae,ee.base,de);let re=typeof H.decimals=="number"?H.decimals:H.minDecimals??0,F=typeof H.decimals=="number"?H.decimals:H.maxDecimals??Math.max(re,2);ue&&(re=w(_,ue),F=re);const o=M(H.locale,re,F,H.group!==!1).format(_),L=H.space??" ";return H.placement==="prefix"?`${de.symbol}${H.space??""}${o}`:`${o}${L}${de.symbol}`}function Ae(q,E){const H=B(q)||Number.isNaN(q)?null:Number(q),x=B(E)||Number.isNaN(E)?null:Number(E);return H===null||Number.isNaN(H)?x===null||Number.isNaN(x)?0:1:x===null||Number.isNaN(x)||H<x?-1:H>x?1:0}function le(q){const E=typeof q.decimals=="number"&&q.decimals>0?`.${"0".repeat(q.decimals)}`:"";return`${typeof q.decimals=="number"?`#,##0${E}`:"#,##0.##"}" ${q.symbol}"`}function $(q){const E={system:"data",...q||{}},H=s(E),x=H?H.base.symbol:String(E.unit||""),U=Object.freeze({...E,unit:x}),ee=Object.freeze({...U,display:x,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),te=new Map([[U.locale||"",U]]),ue=ae=>{const de=ae||"";let _=te.get(de);return _||(_=Object.freeze({...U,locale:ae||void 0}),te.set(de,_)),_};return{base:"number",extends:"number",storage:"float64",unitConfig:U,format:ae=>be(ae.value,ae.locale?ue(ae.locale):U),parse:ae=>V(ae.text,ae.locale?ue(ae.locale):U),compare:Ae,defaults:{filter:"number",editor:"unit",align:"end",total:E.total||"sum"},...E.totals?{totals:E.totals}:{},excel:E.excel||le({decimals:E.decimals,symbol:x}),toStorage:ae=>typeof ae=="number"?Number.isFinite(ae)?ae:null:typeof ae=="string"?V(ae,U):B(ae)?null:V(String(ae),U),toClipboard:ae=>be(ae,ee),fromClipboard:ae=>V(ae,U)}}const ie=$}),Ne("packages/core/src/columns/types/temperature.js",function(N,Z){"use strict";Object.defineProperty(N,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"findScale",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"convertTemperature",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"formatTemperature",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"parseTemperature",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"createTemperatureType",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return b}});const B=Z("packages/core/src/internal/predicates.js").isNil,S=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:v=>v+273.15,fromKelvin:v=>v-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:v=>(v+459.67)*(5/9),fromKelvin:v=>v*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:v=>v,fromKelvin:v=>v}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:v=>v*(5/9),fromKelvin:v=>v*(9/5)})});function X(v){if(B(v))return null;const t=String(v).trim();if(t==="")return null;for(const[s,p]of Object.entries(S))if(t===s||t===p.symbol)return{key:s,scale:p};const a=t.toLowerCase();for(const[s,p]of Object.entries(S))if(p.aliases.includes(a))return{key:s,scale:p};return null}function C(v,t,a){const s=X(t),p=X(a);return!s||!p||!Number.isFinite(Number(v))?null:s.key===p.key?Number(v):p.scale.fromKelvin(s.scale.toKelvin(Number(v)))}const z=new Map;function P(v,t,a){const s=`${v||""}|${t}|${a}`;let p=z.get(s);return p||(p=new Intl.NumberFormat(v||void 0,{minimumFractionDigits:t,maximumFractionDigits:a}),z.set(s,p)),p}function A(v,t){const a=t||{},s=a.nullDisplay??"";if(B(v)||v==="")return s;const p=Number(v);if(!Number.isFinite(p))return s;const y=X(a.scale||"C");if(!y)return String(p);const m=X(a.display||a.scale||"C")||y,h=m.key===y.key?p:m.scale.fromKelvin(y.scale.toKelvin(p)),R=typeof a.decimals=="number"?a.decimals:null,d=R??a.minDecimals??0,c=R??a.maxDecimals??1;return`${P(a.locale,d,c).format(h)}${a.space??" "}${m.scale.symbol}`}const j=/^[+-]?[\d\s.,  ]*\d/;function k(v,t){const a=String(v).trim();if(a==="")return null;const s=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(h=>h.type==="decimal")?.value||".",p=s===","?".":",",y=a.split(p).join("").split(/[\s  ]/).join("").replace(s,"."),m=Number(y);return Number.isFinite(m)?m:null}function g(v,t){if(B(v))return null;const a=t||{},s=X(a.scale||"C");if(!s)return null;if(typeof v=="number")return Number.isFinite(v)?v:null;let p=String(v).trim();if(p==="")return null;let y=!1;p.startsWith("(")&&p.endsWith(")")&&(y=!0,p=p.slice(1,-1).trim());const m=j.exec(p);if(!m)return null;const h=k(m[0],a.locale);if(h===null)return null;const R=p.slice(m[0].length).trim();if(R==="")return y?-h:h;const d=X(R);if(!d)return null;const c=d.key===s.key?h:s.scale.fromKelvin(d.scale.toKelvin(h));return y?-c:c}function n(v){const t=Object.freeze({scale:"C",...v||{}}),s=(X(t.scale)||X("C")).scale.symbol,p=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),y=new Map([[t.locale||"",t]]),m=h=>{const R=h||"";let d=y.get(R);return d||(d=Object.freeze({...t,locale:h||void 0}),y.set(R,d)),d};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:h=>A(h.value,h.locale?m(h.locale):t),parse:h=>g(h.text,h.locale?m(h.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)}`:".#"}" ${s}"`,toStorage:h=>typeof h=="number"?Number.isFinite(h)?h:null:typeof h=="string"?g(h,t):B(h)?null:g(String(h),t),toClipboard:h=>A(h,p),fromClipboard:h=>g(h,t)}}const u=Object.freeze({celsius:n({scale:"C"}),fahrenheit:n({scale:"F"}),kelvin:n({scale:"K"})}),b=n}),Ne("packages/modules/form/controls/number.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/modules/form/messages.js").t,z=Z("packages/core/src/format/number.js").compileNumber,P=Z("packages/core/src/columns/types/unit.js"),A=P.parseUnit,j=P.formatUnit,k=P.findUnit,g=P.unitsOf,n=Z("packages/core/src/columns/types/temperature.js"),u=n.parseTemperature,b=n.formatTemperature,v=n.findScale,t="data-lattice-form-number-styles";function a(){return`
1589
1619
  .lat-form__control .lat-form__number{
1590
1620
  text-align:right; font-variant-numeric:tabular-nums;
1591
1621
  }
@@ -1626,7 +1656,7 @@
1626
1656
  font:inherit; line-height:inherit; cursor:pointer;
1627
1657
  }
1628
1658
  .lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
1629
- `.trim()}function i(s){const o=s&&s.documentElement;if(!o||o.getAttribute(t))return;o.setAttribute(t,"1");const r=s.createElement("style");r.textContent=a(),(s.head||s.body||o).appendChild(r)}function f(s){let o="",r=".";try{for(const l of new Intl.NumberFormat(s||void 0).formatToParts(12345.6))l.type==="group"?o=l.value:l.type==="decimal"&&(r=l.value)}catch{}return{group:o,decimal:r}}function v(s,o){if(s==null)return null;let r=String(s).trim();if(r==="")return null;const{group:l,decimal:d}=f(o);let T=!1;if(/^\(.*\)$/.test(r)&&(T=!0,r=r.slice(1,-1)),r=r.replace(/[\s   ]/g,""),l&&l!=="."&&(r=r.split(l).join("")),r=r.replace(/[^0-9eE+\-.,]/g,""),d===","?(r=r.split(".").join(""),r=r.replace(",",".")):r=r.split(",").join(""),r===""||r==="-"||r==="+")return NaN;r.startsWith("-")&&(T=!T,r=r.slice(1));const U=Number(r);return Number.isFinite(U)?T?-U:U:NaN}function m(s){if(s==null||s==="")return"";const o=typeof s=="number"?s:Number(s);return Number.isFinite(o)?String(o):""}function g(s){return s&&s.__latNumber?s.__latNumber.input:s}function H(s){if(typeof s=="number")return Number.isFinite(s)?s:null;if(s==null||s==="")return null;const o=Number(s);return Number.isFinite(o)?o:null}function u(s){const o=s&&s.props||{};return typeof o.system=="string"&&o.system!==""?{kind:"unit",opts:{system:o.system,unit:o.unit,binary:o.binary===!0,decimals:o.decimals,minDecimals:o.minDecimals,maxDecimals:o.maxDecimals,display:o.display,locale:s.locale||o.locale,group:o.group,space:o.space,placement:o.placement,compound:o.compound,significantFigures:o.significantFigures,nullDisplay:o.nullDisplay}}:typeof o.scale=="string"&&o.scale!==""?{kind:"temperature",opts:{scale:o.scale,display:o.display,decimals:o.decimals,minDecimals:o.minDecimals,maxDecimals:o.maxDecimals,space:o.space,locale:s.locale||o.locale,nullDisplay:o.nullDisplay}}:null}R("number",{kind:"field",build(s,o){const r=o.doc;i(r);const l=s.props&&s.props.format&&(typeof s.props.format=="object"||typeof s.props.format=="string")?s.props.format:null,d=s.locale||void 0,T=l?P(l,d):null,U=typeof o.t=="function"?o.t:q,z=u(s),L=H(s.step),y=H(s.min),M=H(s.max);let W="";if(z&&z.kind==="unit"){const Y=x(z.opts.system,z.opts.unit);W=Y?Y.symbol:String(z.opts.unit||"")}else if(z&&z.kind==="temperature"){const Y=_(z.opts.scale);W=Y?Y.scale.symbol:""}const B=r.createElement("input");B.type="text",B.inputMode="decimal",B.className="lat-form__number",s.name&&(B.name=s.name),s.placeholder!=null&&(B.placeholder=String(s.placeholder));const ne={input:B,format:T,t:U,locale:d,step:L,min:y,max:M,unit:z,unitSymbol:W,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},Ae=()=>ne.displayUnit!=null?{...z.opts,display:ne.displayUnit}:z.opts,we=Y=>ne.unit&&ne.unit.kind==="unit"?S(Y,Ae()):ne.unit&&ne.unit.kind==="temperature"?b(Y,ne.unit.opts):ne.format&&Number.isFinite(Y)?ne.format(Y):m(Y),ce=Y=>{if(!ne.unit)return v(Y,ne.locale);const ie=Y==null?"":String(Y);if(ie.trim()==="")return null;const D=ne.unit.kind==="temperature"?c(ie,ne.unit.opts):C(ie,ne.unit.opts);return D===null?Number.NaN:D},A=()=>ne.unit&&typeof ne.unit.opts.nullDisplay=="string"?ne.unit.opts.nullDisplay:"",oe=Y=>{if(Y==null||Y===""){ne.value=null,ne.invalid=!1,B.value=A();return}const ie=typeof Y=="number"?Y:Number(Y);if(!Number.isFinite(ie)){ne.value=null,ne.invalid=!1,B.value=A();return}ne.value=ie,ne.invalid=!1,B.value=ne.focused?m(ie):we(ie)},te=()=>{const Y=B.value;Y===""?B.removeAttribute("aria-valuetext"):B.setAttribute("aria-valuetext",Y)},E=Y=>{const ie=ce(B.value);let J=(ie==null||Number.isNaN(ie)?0:ie)+Y;typeof y=="number"&&J<y&&(J=y),typeof M=="number"&&J>M&&(J=M),B.value=ne.unit&&!ne.focused?we(J):m(J)},F=()=>{ne.focused=!0,ne.value!=null&&(B.value=m(ne.value)),te()},w=()=>{ne.focused=!1;const Y=ce(B.value);Y==null?(ne.value=null,ne.invalid=!1,B.value=A()):Number.isNaN(Y)?(ne.invalid=!0,ne.value!=null?B.value=we(ne.value):B.value=""):(ne.invalid=!1,ne.value=Y,B.value=we(Y)),te()},G=Y=>{if(Y.key!=="ArrowUp"&&Y.key!=="ArrowDown")return;typeof Y.preventDefault=="function"&&Y.preventDefault();const ie=typeof L=="number"&&L>0?L:1;E(Y.key==="ArrowUp"?ie:-ie)};if(B.addEventListener("focus",F),B.addEventListener("blur",w),B.addEventListener("keydown",G),ne.disposers.push(()=>B.removeEventListener("focus",F),()=>B.removeEventListener("blur",w),()=>B.removeEventListener("keydown",G)),oe(s.value),typeof y=="number"&&B.setAttribute("aria-valuemin",String(y)),typeof M=="number"&&B.setAttribute("aria-valuemax",String(M)),te(),B.__latNumber=ne,z&&z.kind==="unit"&&s.props&&s.props.unitPicker===!0){const Y=r.createElement("div");Y.className="lat-form__number-unit";const ie=r.createElement("select");ie.className="lat-form__number-unitpick",ie.setAttribute("aria-label",U("form.number.unitPicker"));const D=h(z.opts.system);for(const se of D){const X=r.createElement("option");X.value=se.symbol,X.textContent=se.symbol,ie.appendChild(X)}const J=z.opts.display&&z.opts.display!=="auto"?z.opts.display:W,ae=D.some(se=>se.symbol===J)?J:W;ie.value=ae,ne.displayUnit=ae;const V=()=>{ne.displayUnit=ie.value,!ne.focused&&ne.value!=null&&(B.value=we(ne.value)),te()};return ie.addEventListener("change",V),ne.disposers.push(()=>ie.removeEventListener("change",V)),ne.picker=ie,Y.appendChild(B),Y.appendChild(ie),Y.__latNumber=ne,Y}if(s.props&&s.props.spinner===!0){const Y=r.createElement("div");Y.className="lat-form__number-spinner";const ie=(ae,V)=>{const se=r.createElement("button");return se.type="button",se.tabIndex=-1,se.className="lat-form__number-step",se.textContent=ae,se.addEventListener("mousedown",X=>{typeof X.preventDefault=="function"&&X.preventDefault();const p=typeof L=="number"&&L>0?L:1;E(V*p)}),se},D=ie("−",-1),J=ie("+",1);return ne.buttons=[D,J],Y.appendChild(D),Y.appendChild(B),Y.appendChild(J),Y.__latNumber=ne,Y}return B},read(s){const o=s&&s.__latNumber,r=o?o.input:s;if(o&&!o.focused)return o.unit&&o.invalid?Number.NaN:o.value;if(o&&o.unit){const l=r.value;if(String(l).trim()==="")return null;const d=o.unit.kind==="temperature"?c(l,o.unit.opts):C(l,o.unit.opts);return d===null?Number.NaN:d}return v(r.value,o?o.locale:void 0)},write(s,o){const r=s&&s.__latNumber,l=r?r.input:s,d=r&&r.unit&&typeof r.unit.opts.nullDisplay=="string"?r.unit.opts.nullDisplay:"";if(o==null||o===""){r&&(r.value=null,r.invalid=!1),l.value=d;return}const T=typeof o=="number"?o:Number(o);if(!Number.isFinite(T)){r&&(r.value=null,r.invalid=!1),l.value=d;return}r&&(r.value=T,r.invalid=!1),r&&r.focused?l.value=m(T):r&&r.unit?l.value=r.unit.kind==="unit"?S(T,r.displayUnit!=null?{...r.unit.opts,display:r.displayUnit}:r.unit.opts):b(T,r.unit.opts):r&&r.format?l.value=r.format(T):l.value=m(T),l.value===""?l.removeAttribute("aria-valuetext"):l.setAttribute("aria-valuetext",l.value)},state(s,o){const r=s&&s.__latNumber,l=r?r.input:s;l.disabled=o.disabled===!0,l.readOnly=o.readOnly===!0;const d=o.disabled===!0||o.readOnly===!0;for(const T of r?r.buttons:[])T.disabled=d;r&&r.picker&&(r.picker.disabled=d)},validate(s,o,r){const l=s&&s.__latNumber,d=l&&l.t?l.t:q;if(r==null||r==="")return null;if(typeof r!="number"||Number.isNaN(r))return l&&l.unit?d("form.validation.unit",{unit:l.unitSymbol}):d("form.validation.number");const T=U=>l&&l.unit&&l.unit.kind==="unit"?S(U,{...l.unit.opts,display:l.unit.opts.unit,group:!0}):l&&l.unit&&l.unit.kind==="temperature"?b(U,l.unit.opts):String(U);if(l&&typeof l.min=="number"&&r<l.min)return d("form.validation.min",{min:T(l.min)});if(l&&typeof l.max=="number"&&r>l.max)return d("form.validation.max",{max:T(l.max)});if(l&&typeof l.step=="number"&&l.step>0){const U=typeof l.min=="number"?l.min:0,z=(r-U)/l.step;if(Math.abs(z-Math.round(z))>1e-9)return d("form.validation.step",{step:String(l.step)})}return null},focus(s){const o=g(s);typeof o.focus=="function"&&o.focus()},blur(s){const o=g(s);typeof o.blur=="function"&&o.blur()},destroy(s){const o=s&&s.__latNumber;if(o)for(const r of o.disposers.splice(0))r()}})}),Ne("packages/modules/form/controls/textarea.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl;R("textarea",{kind:"field",build($,q){const k=q.doc.createElement("textarea");return $.name&&(k.name=$.name),$.placeholder!=null&&(k.placeholder=String($.placeholder)),$.rows!=null&&(k.rows=Number($.rows)||2),k.value=$.value==null?"":String($.value),k},read($){return $.value},write($,q){$.value=q==null?"":String(q)},state($,q){$.disabled=q.disabled===!0,$.readOnly=q.readOnly===!0}})}),Ne("packages/modules/form/controls/checkbox.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/state.js"),q=$.applyBooleanInputState,k=$.guardBooleanInput;R("checkbox",{kind:"toggle",build(P,j){const C=j.doc.createElement("input");return C.type="checkbox",P.name&&(C.name=P.name),C.checked=P.value===!0,k(C),C},read(P){return P.checked},write(P,j){P.checked=j===!0},state(P,j){q(P,j.disabled===!0,j.readOnly===!0)}})}),Ne("packages/modules/form/controls/button.js",function(N,Z){"use strict";Object.defineProperty(N,"injectButtonStyles",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"buildIcon",{enumerable:!0,get:function(){return f}}),Object.defineProperty(N,"buttonItemFrom",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"buildButton",{enumerable:!0,get:function(){return s}});const R=Z("packages/modules/form/controls/registry.js").registerControl,$="lat-button",q="data-lattice-button-styles",k="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"}}),j=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),C=Object.freeze(["sm","md","lg"]),S=Object.freeze(["button","submit","reset"]);function x(){const o=`
1659
+ `.trim()}function s(c){const i=c&&c.documentElement;if(!i||i.getAttribute(t))return;i.setAttribute(t,"1");const r=c.createElement("style");r.textContent=a(),(c.head||c.body||i).appendChild(r)}function p(c){let i="",r=".";try{for(const l of new Intl.NumberFormat(c||void 0).formatToParts(12345.6))l.type==="group"?i=l.value:l.type==="decimal"&&(r=l.value)}catch{}return{group:i,decimal:r}}function y(c,i){if(c==null)return null;let r=String(c).trim();if(r==="")return null;const{group:l,decimal:f}=p(i);let T=!1;if(/^\(.*\)$/.test(r)&&(T=!0,r=r.slice(1,-1)),r=r.replace(/[\s   ]/g,""),l&&l!=="."&&(r=r.split(l).join("")),r=r.replace(/[^0-9eE+\-.,]/g,""),f===","?(r=r.split(".").join(""),r=r.replace(",",".")):r=r.split(",").join(""),r===""||r==="-"||r==="+")return NaN;r.startsWith("-")&&(T=!T,r=r.slice(1));const V=Number(r);return Number.isFinite(V)?T?-V:V:NaN}function m(c){if(c==null||c==="")return"";const i=typeof c=="number"?c:Number(c);return Number.isFinite(i)?String(i):""}function h(c){return c&&c.__latNumber?c.__latNumber.input:c}function R(c){if(typeof c=="number")return Number.isFinite(c)?c:null;if(c==null||c==="")return null;const i=Number(c);return Number.isFinite(i)?i:null}function d(c){const i=c&&c.props||{};return typeof i.system=="string"&&i.system!==""?{kind:"unit",opts:{system:i.system,unit:i.unit,binary:i.binary===!0,decimals:i.decimals,minDecimals:i.minDecimals,maxDecimals:i.maxDecimals,display:i.display,locale:c.locale||i.locale,group:i.group,space:i.space,placement:i.placement,compound:i.compound,significantFigures:i.significantFigures,nullDisplay:i.nullDisplay}}:typeof i.scale=="string"&&i.scale!==""?{kind:"temperature",opts:{scale:i.scale,display:i.display,decimals:i.decimals,minDecimals:i.minDecimals,maxDecimals:i.maxDecimals,space:i.space,locale:c.locale||i.locale,nullDisplay:i.nullDisplay}}:null}B("number",{kind:"field",build(c,i){const r=i.doc;s(r);const l=c.props&&c.props.format&&(typeof c.props.format=="object"||typeof c.props.format=="string")?c.props.format:null,f=c.locale||void 0,T=l?z(l,f):null,V=typeof i.t=="function"?i.t:X,D=d(c),M=R(c.step),w=R(c.min),I=R(c.max),W=typeof w=="number"||typeof I=="number"||typeof M=="number"&&M>0;!D&&W&&c.validationMode==="submit"&&(c.validationMode="change");let G="";if(D&&D.kind==="unit"){const te=k(D.opts.system,D.opts.unit);G=te?te.symbol:String(D.opts.unit||"")}else if(D&&D.kind==="temperature"){const te=v(D.opts.scale);G=te?te.scale.symbol:""}const ne=r.createElement("input");ne.type="text",ne.inputMode="decimal",ne.className="lat-form__number",c.name&&(ne.name=c.name),c.placeholder!=null&&(ne.placeholder=String(c.placeholder));const be={input:ne,format:T,t:V,locale:f,step:M,min:w,max:I,unit:D,unitSymbol:G,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},Ae=()=>be.displayUnit!=null?{...D.opts,display:be.displayUnit}:D.opts,le=te=>be.unit&&be.unit.kind==="unit"?j(te,Ae()):be.unit&&be.unit.kind==="temperature"?b(te,be.unit.opts):be.format&&Number.isFinite(te)?be.format(te):m(te),$=te=>{if(!be.unit)return y(te,be.locale);const ue=te==null?"":String(te);if(ue.trim()==="")return null;const ae=be.unit.kind==="temperature"?u(ue,be.unit.opts):A(ue,be.unit.opts);return ae===null?Number.NaN:ae},ie=()=>be.unit&&typeof be.unit.opts.nullDisplay=="string"?be.unit.opts.nullDisplay:"",q=te=>{if(te==null||te===""){be.value=null,be.invalid=!1,ne.value=ie();return}const ue=typeof te=="number"?te:Number(te);if(!Number.isFinite(ue)){be.value=null,be.invalid=!1,ne.value=ie();return}be.value=ue,be.invalid=!1,ne.value=be.focused?m(ue):le(ue)},E=()=>{const te=ne.value;te===""?ne.removeAttribute("aria-valuetext"):ne.setAttribute("aria-valuetext",te)},H=te=>{const ue=$(ne.value);let de=(ue==null||Number.isNaN(ue)?0:ue)+te;typeof w=="number"&&de<w&&(de=w),typeof I=="number"&&de>I&&(de=I),ne.value=be.unit&&!be.focused?le(de):m(de)},x=()=>{be.focused=!0,be.value!=null&&(ne.value=m(be.value)),E()},U=()=>{be.focused=!1;const te=$(ne.value);te==null?(be.value=null,be.invalid=!1,ne.value=ie()):Number.isNaN(te)?(be.invalid=!0,be.value!=null?ne.value=le(be.value):ne.value=""):(be.invalid=!1,be.value=te,ne.value=le(te)),E()},ee=te=>{if(te.key!=="ArrowUp"&&te.key!=="ArrowDown")return;typeof te.preventDefault=="function"&&te.preventDefault();const ue=typeof M=="number"&&M>0?M:1;H(te.key==="ArrowUp"?ue:-ue)};if(ne.addEventListener("focus",x),ne.addEventListener("blur",U),ne.addEventListener("keydown",ee),be.disposers.push(()=>ne.removeEventListener("focus",x),()=>ne.removeEventListener("blur",U),()=>ne.removeEventListener("keydown",ee)),q(c.value),typeof w=="number"&&ne.setAttribute("aria-valuemin",String(w)),typeof I=="number"&&ne.setAttribute("aria-valuemax",String(I)),E(),ne.__latNumber=be,D&&D.kind==="unit"&&c.props&&c.props.unitPicker===!0){const te=r.createElement("div");te.className="lat-form__number-unit";const ue=r.createElement("select");ue.className="lat-form__number-unitpick",ue.setAttribute("aria-label",V("form.number.unitPicker"));const ae=g(D.opts.system);for(const F of ae){const o=r.createElement("option");o.value=F.symbol,o.textContent=F.symbol,ue.appendChild(o)}const de=D.opts.display&&D.opts.display!=="auto"?D.opts.display:G,_=ae.some(F=>F.symbol===de)?de:G;ue.value=_,be.displayUnit=_;const re=()=>{be.displayUnit=ue.value,!be.focused&&be.value!=null&&(ne.value=le(be.value)),E()};return ue.addEventListener("change",re),be.disposers.push(()=>ue.removeEventListener("change",re)),be.picker=ue,te.appendChild(ne),te.appendChild(ue),te.__latNumber=be,te}if(c.props&&c.props.spinner===!0){const te=r.createElement("div");te.className="lat-form__number-spinner";const ue=(_,re)=>{const F=r.createElement("button");return F.type="button",F.tabIndex=-1,F.className="lat-form__number-step",F.textContent=_,F.addEventListener("mousedown",o=>{typeof o.preventDefault=="function"&&o.preventDefault();const L=typeof M=="number"&&M>0?M:1;H(re*L)}),F},ae=ue("−",-1),de=ue("+",1);return be.buttons=[ae,de],te.appendChild(ae),te.appendChild(ne),te.appendChild(de),te.__latNumber=be,te}return ne},read(c){const i=c&&c.__latNumber,r=i?i.input:c;if(i&&!i.focused)return i.unit&&i.invalid?Number.NaN:i.value;if(i&&i.unit){const l=r.value;if(String(l).trim()==="")return null;const f=i.unit.kind==="temperature"?u(l,i.unit.opts):A(l,i.unit.opts);return f===null?Number.NaN:f}return y(r.value,i?i.locale:void 0)},write(c,i){const r=c&&c.__latNumber,l=r?r.input:c,f=r&&r.unit&&typeof r.unit.opts.nullDisplay=="string"?r.unit.opts.nullDisplay:"";if(i==null||i===""){r&&(r.value=null,r.invalid=!1),l.value=f;return}const T=typeof i=="number"?i:Number(i);if(!Number.isFinite(T)){r&&(r.value=null,r.invalid=!1),l.value=f;return}r&&(r.value=T,r.invalid=!1),r&&r.focused?l.value=m(T):r&&r.unit?l.value=r.unit.kind==="unit"?j(T,r.displayUnit!=null?{...r.unit.opts,display:r.displayUnit}:r.unit.opts):b(T,r.unit.opts):r&&r.format?l.value=r.format(T):l.value=m(T),l.value===""?l.removeAttribute("aria-valuetext"):l.setAttribute("aria-valuetext",l.value)},state(c,i){const r=c&&c.__latNumber,l=r?r.input:c;l.disabled=i.disabled===!0,l.readOnly=i.readOnly===!0;const f=i.disabled===!0||i.readOnly===!0;for(const T of r?r.buttons:[])T.disabled=f;r&&r.picker&&(r.picker.disabled=f)},validate(c,i,r){const l=c&&c.__latNumber,f=l&&l.t?l.t:X;if(r==null||r==="")return null;if(typeof r!="number"||Number.isNaN(r))return l&&l.unit?f("form.validation.unit",{unit:l.unitSymbol}):f("form.validation.number");const T=D=>l&&l.unit&&l.unit.kind==="unit"?j(D,{...l.unit.opts,display:l.unit.opts.unit,group:!0}):l&&l.unit&&l.unit.kind==="temperature"?b(D,l.unit.opts):String(D),V=!(l&&l.unit);if(l&&typeof l.min=="number"&&r<l.min){const D=f("form.validation.min",{min:T(l.min)});return V?{code:"min",message:D}:D}if(l&&typeof l.max=="number"&&r>l.max){const D=f("form.validation.max",{max:T(l.max)});return V?{code:"max",message:D}:D}if(l&&typeof l.step=="number"&&l.step>0){const D=typeof l.min=="number"?l.min:0,M=(r-D)/l.step;if(Math.abs(M-Math.round(M))>1e-9){const w=f("form.validation.step",{step:String(l.step)});return V?{code:"step",message:w}:w}}return null},focus(c){const i=h(c);typeof i.focus=="function"&&i.focus()},blur(c){const i=h(c);typeof i.blur=="function"&&i.blur()},destroy(c){const i=c&&c.__latNumber;if(i)for(const r of i.disposers.splice(0))r()}})}),Ne("packages/modules/form/controls/textarea.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl;B("textarea",{kind:"field",build(S,X){const C=X.doc.createElement("textarea");return S.name&&(C.name=S.name),S.placeholder!=null&&(C.placeholder=String(S.placeholder)),S.rows!=null&&(C.rows=Number(S.rows)||2),C.value=S.value==null?"":String(S.value),C},read(S){return S.value},write(S,X){S.value=X==null?"":String(X)},state(S,X){S.disabled=X.disabled===!0,S.readOnly=X.readOnly===!0}})}),Ne("packages/modules/form/controls/checkbox.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/state.js"),X=S.applyBooleanInputState,C=S.guardBooleanInput;B("checkbox",{kind:"toggle",build(z,P){const A=P.doc.createElement("input");return A.type="checkbox",z.name&&(A.name=z.name),A.checked=z.value===!0,C(A),A},read(z){return z.checked},write(z,P){z.checked=P===!0},state(z,P){X(z,P.disabled===!0,P.readOnly===!0)}})}),Ne("packages/modules/form/controls/button.js",function(N,Z){"use strict";Object.defineProperty(N,"injectButtonStyles",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"buildIcon",{enumerable:!0,get:function(){return p}}),Object.defineProperty(N,"buttonItemFrom",{enumerable:!0,get:function(){return d}}),Object.defineProperty(N,"buildButton",{enumerable:!0,get:function(){return c}});const B=Z("packages/modules/form/controls/registry.js").registerControl,S="lat-button",X="data-lattice-button-styles",C="http://www.w3.org/2000/svg",z=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"}}),P=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),A=Object.freeze(["sm","md","lg"]),j=Object.freeze(["button","submit","reset"]);function k(){const i=`
1630
1660
  .lat-form{
1631
1661
  --lattice-button-primary-bg:var(--lattice-accent);
1632
1662
  --lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
@@ -1687,18 +1717,18 @@
1687
1717
  --lattice-button-danger-border-disabled:var(--lattice-button-danger-bg-disabled);
1688
1718
  --lattice-button-danger-text:var(--lattice-background);
1689
1719
  --lattice-button-danger-text-disabled:var(--lattice-foreground-muted);
1690
- }`,r=j.map(l=>`
1691
- .lat-form__control .${$}[data-variant='${l}']{ background:var(--lattice-button-${l}-bg); border-color:var(--lattice-button-${l}-border); color:var(--lattice-button-${l}-text); }
1692
- .lat-form__control .${$}[data-variant='${l}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${l}-bg-hover); }
1693
- .lat-form__control .${$}[data-variant='${l}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${l}-bg-active); }
1694
- .lat-form__control .${$}[data-variant='${l}'][aria-pressed='true']{ background:var(--lattice-button-${l}-bg-toggled); }
1695
- .lat-form__control .${$}[data-variant='${l}']:disabled:not([aria-busy='true']),
1696
- .lat-form__control .${$}[data-variant='${l}'][aria-disabled='true']:not([aria-busy='true']){
1720
+ }`,r=P.map(l=>`
1721
+ .lat-form__control .${S}[data-variant='${l}']{ background:var(--lattice-button-${l}-bg); border-color:var(--lattice-button-${l}-border); color:var(--lattice-button-${l}-text); }
1722
+ .lat-form__control .${S}[data-variant='${l}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${l}-bg-hover); }
1723
+ .lat-form__control .${S}[data-variant='${l}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${l}-bg-active); }
1724
+ .lat-form__control .${S}[data-variant='${l}'][aria-pressed='true']{ background:var(--lattice-button-${l}-bg-toggled); }
1725
+ .lat-form__control .${S}[data-variant='${l}']:disabled:not([aria-busy='true']),
1726
+ .lat-form__control .${S}[data-variant='${l}'][aria-disabled='true']:not([aria-busy='true']){
1697
1727
  background:var(--lattice-button-${l}-bg-disabled); border-color:var(--lattice-button-${l}-border-disabled); color:var(--lattice-button-${l}-text-disabled); cursor:not-allowed; opacity:1;
1698
1728
  }`).join(`
1699
1729
  `);return`
1700
- .lat-form__control .${$},
1701
- .lat-form__control a.${$}{
1730
+ .lat-form__control .${S},
1731
+ .lat-form__control a.${S}{
1702
1732
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
1703
1733
  /* The icon-text gap: about 0.5em at standard density (about 6.5px), and it
1704
1734
  follows the density-scaled font size up and down. An icon-only button has a
@@ -1712,34 +1742,34 @@
1712
1742
  background:transparent;color:var(--lattice-foreground);
1713
1743
  font:inherit;line-height:1.2;text-decoration:none;cursor:pointer;
1714
1744
  }
1715
- .lat-form__control .${$}[data-size='sm']{ --lat-btn-h:calc(var(--lattice-row-height) * 0.8); font-size:calc(var(--lattice-font-size) - 1px); }
1716
- .lat-form__control .${$}[data-size='lg']{ --lat-btn-h:calc(var(--lattice-row-height) * 1.3); }
1717
- .lat-form__control .${$}[data-full='true']{ width:100%; }
1718
- .lat-form__control .${$}[data-icon-only='true']{ width:var(--lat-btn-h); padding:0; }
1719
- .lat-form__control .${$}[data-text-transform='uppercase']{ text-transform:uppercase; }
1720
- .lat-form__control .${$} svg,
1721
- .lat-form__control .${$} img{
1745
+ .lat-form__control .${S}[data-size='sm']{ --lat-btn-h:calc(var(--lattice-row-height) * 0.8); font-size:calc(var(--lattice-font-size) - 1px); }
1746
+ .lat-form__control .${S}[data-size='lg']{ --lat-btn-h:calc(var(--lattice-row-height) * 1.3); }
1747
+ .lat-form__control .${S}[data-full='true']{ width:100%; }
1748
+ .lat-form__control .${S}[data-icon-only='true']{ width:var(--lat-btn-h); padding:0; }
1749
+ .lat-form__control .${S}[data-text-transform='uppercase']{ text-transform:uppercase; }
1750
+ .lat-form__control .${S} svg,
1751
+ .lat-form__control .${S} img{
1722
1752
  width:var(--lattice-control-size);height:var(--lattice-control-size);flex:0 0 auto;display:block;
1723
1753
  }
1724
- .lat-form__control .${$} img{ object-fit:contain; }
1725
- .lat-form__control .${$} .${$}__spinner{ animation:${$}-spin .8s linear infinite; }
1726
- @keyframes ${$}-spin{ to{ transform:rotate(360deg); } }
1727
- @media (prefers-reduced-motion: reduce){ .lat-form__control .${$} .${$}__spinner{ animation:none; } }
1754
+ .lat-form__control .${S} img{ object-fit:contain; }
1755
+ .lat-form__control .${S} .${S}__spinner{ animation:${S}-spin .8s linear infinite; }
1756
+ @keyframes ${S}-spin{ to{ transform:rotate(360deg); } }
1757
+ @media (prefers-reduced-motion: reduce){ .lat-form__control .${S} .${S}__spinner{ animation:none; } }
1728
1758
 
1729
- ${o}
1759
+ ${i}
1730
1760
  ${r}
1731
1761
 
1732
- .lat-form__control .${$}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1733
- .lat-form__control .${$}[aria-busy='true']{ cursor:default; pointer-events:none; }
1734
- `.trim()}function h(o){const r=o&&o.documentElement;if(!r||r.getAttribute(q))return;r.setAttribute(q,"1");const l=o.createElement("style");l.textContent=x(),(o.head||o.body||r).appendChild(l)}function n(o){return j.includes(o)?o:"secondary"}function c(o){return C.includes(o)?o:"md"}function b(o){return S.includes(o)?o:"button"}function _(o){return o==="end"?"end":"start"}function t(o){return o==="uppercase"?"uppercase":"none"}function a(o){const r=o.props&&o.props.href;return typeof r=="string"&&r!==""}function i(o,r){const l=o.createElementNS(k,"svg");l.setAttribute("viewBox",r.viewBox),l.setAttribute("focusable","false"),l.setAttribute("aria-hidden","true"),r.paint==="stroke"?(l.setAttribute("fill","none"),l.setAttribute("stroke","currentColor"),l.setAttribute("stroke-width","1.5"),l.setAttribute("stroke-linecap","round"),l.setAttribute("stroke-linejoin","round")):l.setAttribute("fill","currentColor");for(const d of r.paths){const T=o.createElementNS(k,"path");T.setAttribute("d",d),l.appendChild(T)}return l}function f(o,r){if(o==null)return null;if(typeof o=="object"&&o.nodeType)return o;if(typeof o!="string"||o==="")return null;const l=o;if(/^(https?:)?\/\//i.test(l)||/^data:/i.test(l)){const T=r.createElement("img");return T.src=l,T.alt="",T}const d=P[l];return d?i(r,d):null}function v(o){const r=o.createElementNS(k,"svg");r.setAttribute("viewBox","0 0 16 16"),r.setAttribute("focusable","false"),r.setAttribute("aria-hidden","true"),r.setAttribute("class",`${$}__spinner`);const l=o.createElementNS(k,"circle");return l.setAttribute("cx","8"),l.setAttribute("cy","8"),l.setAttribute("r","6"),l.setAttribute("fill","none"),l.setAttribute("stroke","currentColor"),l.setAttribute("stroke-width","2"),l.setAttribute("stroke-linecap","round"),l.setAttribute("stroke-dasharray","28"),l.setAttribute("stroke-dashoffset","10"),r.appendChild(l),r}function m(o,r,l){const d=r&&r.defaultView,T=d&&d.CustomEvent,U=T?new T("submit",{bubbles:!0,detail:{values:l}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:l},preventDefault(){this.defaultPrevented=!0}};o.dispatchEvent(U)}function g(o){const r=o.loading===!0,l=o.disabled===!0&&o.focusableWhenDisabled!==!0||r;o.el.disabled=l,o.el.setAttribute("aria-disabled",o.disabled===!0||r?"true":"false")}function H(o,r){o.loading=r===!0,o.el.setAttribute("aria-busy",o.loading?"true":"false"),g(o);const l=o.iconSlot;if(!l)return;for(;l.firstChild;)l.removeChild(l.firstChild);const d=o.loading?v(o.doc):o.iconEl;d?(l.appendChild(d),l.parentNode||(o.position==="end"?o.el.appendChild(l):o.el.insertBefore(l,o.el.firstChild))):l.parentNode&&l.parentNode.removeChild(l)}function u(o){return{kind:"item",type:"button",name:o.name!=null&&o.name!==""?String(o.name):null,label:o.label,disabled:o.disabled===!0,props:{icon:o.icon,iconPosition:o.iconPosition,variant:o.variant,fullWidth:o.fullWidth,size:o.size,textTransform:o.textTransform,buttonType:o.buttonType,loading:o.loading,href:o.href,ariaLabel:o.ariaLabel,toggle:o.toggle,focusableWhenDisabled:o.focusableWhenDisabled}}}function s(o,r){const l=r.doc,d=o.props||{},T=o.label!=null?String(o.label):"",U=f(d.icon,l),z=U!=null&&T==="",L=a(o)?l.createElement("a"):l.createElement("button");L.className=$,L.setAttribute("data-variant",n(d.variant)),L.setAttribute("data-size",c(d.size)),L.setAttribute("data-text-transform",t(d.textTransform)),d.fullWidth===!0&&L.setAttribute("data-full","true"),z&&L.setAttribute("data-icon-only","true"),o.name&&!a(o)&&(L.name=o.name),a(o)?L.setAttribute("href",d.href):L.type="button";const y=d.ariaLabel!=null?String(d.ariaLabel):z?String(o.name||""):"";y&&L.setAttribute("aria-label",y);const M=l.createElement("span");M.className=`${$}__icon`,M.setAttribute("aria-hidden","true"),U&&M.appendChild(U);let W=null;z||(W=l.createElement("span"),W.className=`${$}__label`,W.textContent=T!==""?T:String(o.name||""));const B=_(d.iconPosition);B==="end"?(W&&L.appendChild(W),M.firstChild&&L.appendChild(M)):(M.firstChild&&L.appendChild(M),W&&L.appendChild(W));const ne={el:L,doc:l,iconSlot:M,iconEl:U,label:W,position:B,buttonType:b(d.buttonType),loading:!1,disabled:o.disabled===!0,toggle:d.toggle===!0,pressed:d.toggle===!0&&o.value===!0,focusableWhenDisabled:d.focusableWhenDisabled===!0};L.__latButton=ne,ne.toggle&&L.setAttribute("aria-pressed",ne.pressed?"true":"false");const Ae=()=>{if(ne.loading||ne.disabled)return;if(ne.toggle){const ce=ne.pressed;ne.pressed=!ne.pressed,L.setAttribute("aria-pressed",ne.pressed?"true":"false"),r.emitter.emit("change",{name:o.name,value:ne.pressed,previousValue:ce,item:o})}const we=ne.buttonType;we==="submit"?(typeof r.form.validate!="function"||r.form.validate())&&m(r.el,l,typeof r.form.getValue=="function"?r.form.getValue():{}):we==="reset"&&typeof r.form.clear=="function"&&r.form.clear()};return L.addEventListener("click",Ae),r.disposers.push(()=>L.removeEventListener("click",Ae)),H(ne,d.loading===!0),L}R("button",{kind:"button",action:!0,build(o,r){return h(r.doc),s(o,r)},read(o){const r=o&&o.__latButton;return r&&r.toggle?r.pressed:null},write(){},state(o,r){const l=o.__latButton;l&&(l.disabled=r.disabled===!0,g(l))},setLoading(o,r){const l=o.__latButton;l&&H(l,r)}})}),Ne("packages/modules/form/controls/buttons.js",function(N,Z){"use strict";Object.defineProperty(N,"injectButtonsStyles",{enumerable:!0,get:function(){return h}});const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/button.js"),q=$.buildButton,k=$.buttonItemFrom,P=$.injectButtonStyles,j="lat-button-row",C="data-lattice-button-row-styles",S=Object.freeze(["start","end","center","stretch","space-between"]);function x(){return`
1735
- .lat-form__control .${j}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
1736
- .lat-form__control .${j}[data-align='start']{ justify-content:flex-start; }
1737
- .lat-form__control .${j}[data-align='end']{ justify-content:flex-end; }
1738
- .lat-form__control .${j}[data-align='center']{ justify-content:center; }
1739
- .lat-form__control .${j}[data-align='space-between']{ justify-content:space-between; }
1740
- .lat-form__control .${j}[data-align='stretch']{ justify-content:flex-start; }
1741
- .lat-form__control .${j}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
1742
- `.trim()}function h(c){const b=c&&c.documentElement;if(!b||b.getAttribute(C))return;b.setAttribute(C,"1");const _=c.createElement("style");_.textContent=x(),(c.head||c.body||b).appendChild(_)}function n(c){return S.includes(c)?c:"start"}R("buttons",{kind:"display",action:!0,build(c,b){P(b.doc),h(b.doc);const _=c.props||{},t=Array.isArray(_.buttons)?_.buttons:Array.isArray(_.items)?_.items:[],a=b.doc.createElement("div");a.className=j,a.setAttribute("data-align",n(_.align));const i=[];return t.forEach((f,v)=>{if(f==null||typeof f!="object")return;const m=k(f),g=q(m,b),H=()=>{g.disabled||g.getAttribute("aria-disabled")==="true"||b.emitter.emit("click",{name:m.name,item:m,value:null})};g.addEventListener("click",H),i.push(()=>g.removeEventListener("click",H)),a.appendChild(g)}),b.disposers.push(()=>{for(const f of i)f()}),a},read(){return null},write(){},state(){}})}),Ne("packages/modules/form/controls/text.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl;R("text",{kind:"display",build($,q){const k=q.doc.createElement("span");return k.className="lat-form__text",k.textContent=$.value==null?"":String($.value),k},read($){return $.textContent},write($,q){$.textContent=q==null?"":String(q)},state(){}})}),Ne("packages/modules/form/controls/select.js",function(N,Z){"use strict";Object.defineProperty(N,"createSelect",{enumerable:!0,get:function(){return s}});const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/modules/form/messages.js").t,P=Z("packages/modules/form/ids.js").nextId,j=Z("packages/modules/form/controls/combo.js"),C=j.renderAdornment,S=j.renderTemplateContent,x=j.injectAdornmentStyles,h=Z("packages/modules/form/controls/field-icon.js"),n=h.makeFieldIcon,c=h.injectFieldIconStyles,_=Z("packages/modules/form/controls/popup-layer.js").openInLayer,t="lat-select__popup--above",a=700;function i(r,l){const d=r&&r.defaultView;return d&&d.Event?new d.Event(l,{bubbles:!0}):{type:l,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function f(r){return r!=null&&typeof r=="object"?"value"in r?r.value:"":r??""}function v(r){return r==null?"":typeof r!="object"?String(r):r.label!=null?String(r.label):r.text!=null?String(r.text):r.value==null?"":String(r.value)}function m(r){return r!=null&&typeof r=="object"&&Array.isArray(r.options)}function g(r){const l=[];if(!Array.isArray(r))return l;for(const d of r)if(m(d)){const T=v(d);l.push({group:!0,label:T});for(const U of d.options)if(m(U)){l.push({group:!0,label:v(U)});for(const z of U.options)l.push(H(z))}else l.push(H(U))}else l.push(H(d));return l}function H(r){const l=r!=null&&typeof r=="object"?r:{},d=l.description!=null?String(l.description):l.subtitle!=null?String(l.subtitle):null;return{group:!1,value:f(r),label:v(r),icon:l.icon,avatar:l.avatar,color:l.color,dot:l.dot,description:d,disabled:l.disabled===!0}}function u(r,l){return r===l?!0:r!=null&&l!=null&&String(r)===String(l)}function s(r,l={}){const d=l.doc||r&&r.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;d&&(x(d),c(d));const T=typeof l.t=="function"?l.t:q,U=l.multiple===!0;let z=g(l.options),L=z.filter(fe=>!fe.group),y=[];const M=d.createElement("div");M.className="lat-combo lat-select",U&&M.setAttribute("data-multiple","true");const W=d.createElement("button");W.type="button",W.className="lat-select__trigger",W.setAttribute("role","combobox"),W.setAttribute("aria-haspopup","listbox"),W.setAttribute("aria-expanded","false"),U&&W.setAttribute("aria-multiselectable","true"),W.setAttribute("aria-label",l.ariaLabel||T("form.select.toggle"));const B=d.createElement("span");B.className="lat-select__value";const ne=d.createElement("span");ne.className="lat-select__arrow",ne.setAttribute("aria-hidden","true");const Ae=n(d,"chevronDown");Ae&&ne.appendChild(Ae),W.appendChild(B),W.appendChild(ne);const we=d.createElement("div");we.className="lat-combo__popup lat-select__popup",we.hidden=!0;const ce=d.createElement("div");ce.className="lat-combo__list lat-select__list",ce.setAttribute("role","listbox"),we.appendChild(ce),M.appendChild(W);const A=l.clearable===!0,oe=d.createElement("button");oe.type="button",oe.className="lat-select__clear",oe.setAttribute("aria-label",T("form.select.clear")),oe.hidden=!0;const te=n(d,"close");te&&oe.appendChild(te),A&&M.appendChild(oe),M.appendChild(we);const E=P("lat-select-lb");ce.id=E,W.setAttribute("aria-controls",E);const F=[];let w=-1,G=!1,Y="",ie=null;const D=[];let J=!1,ae=null;function V(fe,Me,he){fe.addEventListener(Me,he),D.push(()=>fe.removeEventListener(Me,he))}function se(fe){return L.find(Me=>u(Me.value,fe))||null}function X(){r.dispatchEvent(i(d,"change"))}function p(){return U?y.slice():y.length?y[0]:""}function I(){if(A&&(oe.hidden=y.length===0||l.readOnly===!0),!U){for(;B.firstChild;)B.removeChild(B.firstChild);if(y.length){const fe=se(y[0]),Me=S(d,fe,l.selectedTemplate);if(Me)B.appendChild(Me);else{const he=C(d,fe);he&&B.appendChild(he);const $e=d.createElement("span");$e.className="lat-select__label",$e.textContent=fe?fe.label:y[0],B.appendChild($e)}B.removeAttribute("data-placeholder")}else B.textContent=l.placeholder!=null?String(l.placeholder):"",B.setAttribute("data-placeholder","true");return}y.length===0?(B.textContent=l.placeholder!=null?String(l.placeholder):"",B.setAttribute("data-placeholder","true")):(B.textContent=y.map(fe=>{const Me=se(fe);return Me?Me.label:fe}).join(", "),B.removeAttribute("data-placeholder"))}function Q(fe){let Me;const he=L.some($e=>$e.value==="");if(U)Me=Array.isArray(fe)?fe:fe==null||fe===""&&!he?[]:[fe];else{const $e=Array.isArray(fe)?fe.length?fe[0]:null:fe;Me=$e==null||$e===""&&!he?[]:[$e]}y=[];for(const $e of Me){const ot=L.find(Ye=>u(Ye.value,$e));ot&&y.push(ot.value)}I(),re()}function re(){for(let fe=0;fe<F.length;fe++){const Me=F[fe],he=L[fe],$e=!!he&&y.some(Ye=>u(Ye,he.value));Me.setAttribute("aria-selected",$e?"true":"false");const ot=Me.querySelector(".lat-select__check");ot&&(ot.textContent=$e?"✓":"")}}function me(fe){for(let Me=Math.max(0,fe);Me<L.length;Me++)if(!L[Me].disabled)return Me;return-1}function be(fe){for(let Me=Math.min(L.length-1,fe);Me>=0;Me--)if(!L[Me].disabled)return Me;return-1}function ke(fe){w=fe;for(const Me of F)Me.classList.remove("lat-select__option--active");fe>=0&&fe<F.length?(F[fe].classList.add("lat-select__option--active"),W.setAttribute("aria-activedescendant",F[fe].id)):W.removeAttribute("aria-activedescendant")}function Le(){if(w<0||w>=F.length)return;const fe=F[w];fe.offsetTop<ce.scrollTop?ce.scrollTop=fe.offsetTop:fe.offsetTop+fe.offsetHeight>ce.scrollTop+ce.clientHeight&&(ce.scrollTop=fe.offsetTop+fe.offsetHeight-ce.clientHeight)}function Se(fe){const Me=w<0?fe>0?-1:L.length:w,he=fe>0?me(Me+1):be(Me-1);he!==-1&&ke(he),Le()}function je(){if(!(G||J||l.disabled)&&(G=!0,we.hidden=!1,W.setAttribute("aria-expanded","true"),ae=_(we,W,{aboveClass:t,onOffscreen:O}),w<0&&L.length)){const fe=U?-1:y.length?L.findIndex(Me=>u(Me.value,y[0])):-1;ke(me(fe>=0?fe:0))}}function O(){G&&(G=!1,we.hidden=!0,we.classList.remove(t),ae&&(ae.close(),ae=null),W.setAttribute("aria-expanded","false"),ke(-1),Y="")}function ee(){G?O():je()}function de(){l.readOnly||y.length===0||(y=[],I(),re(),O(),X(),W.focus())}function K(fe){if(l.readOnly)return;if(!U){const he=y.length===0||y[0]!==fe;y=[fe],I(),re(),O(),he&&X();return}y=y.some(he=>he===fe)?y.filter(he=>he!==fe):[...y,fe],I(),re(),W.focus(),X()}function pe(){w<0||w>=L.length||L[w].disabled||K(L[w].value)}function Ce(fe){ie&&clearTimeout(ie),Y+=fe.toLowerCase(),ie=setTimeout(()=>{Y="",ie=null},a),G||je();const Me=w>-1?w+1:0;let he=-1;for(let $e=Me;$e<L.length;$e++)if(!L[$e].disabled&&L[$e].label.toLowerCase().startsWith(Y)){he=$e;break}if(he===-1){for(let $e=0;$e<Me;$e++)if(!L[$e].disabled&&L[$e].label.toLowerCase().startsWith(Y)){he=$e;break}}he!==-1&&(ke(he),Le())}function ye(fe){const Me=fe.altKey===!0;if(fe.key==="ArrowDown"||Me&&fe.key==="ArrowDown")fe.preventDefault(),G?Se(1):(je(),w===-1&&L.length&&ke(me(0)));else if(fe.key==="ArrowUp")fe.preventDefault(),G?Se(-1):(je(),L.length&&ke(be(L.length-1)));else if(fe.key==="Home"){if(!G)return;fe.preventDefault();const he=me(0);he!==-1&&ke(he),Le()}else if(fe.key==="End"){if(!G)return;fe.preventDefault();const he=be(L.length-1);he!==-1&&ke(he),Le()}else fe.key==="Enter"||fe.key===" "?(fe.preventDefault(),G?pe():je()):fe.key==="Escape"?G&&(fe.preventDefault(),O()):fe.key==="Tab"?G&&pe():fe.key.length===1&&!fe.ctrlKey&&!fe.metaKey&&!Me&&(fe.preventDefault(),Ce(fe.key))}function ve(fe){fe<0||fe>=L.length||L[fe].disabled||K(L[fe].value)}function Ie(fe,Me){const he=d.createElement("div");if(he.className="lat-combo__option",he.setAttribute("role","option"),he.id=`${E}-opt-${Me}`,he.setAttribute("data-value",fe.value),he.setAttribute("aria-selected","false"),fe.disabled&&(he.setAttribute("aria-disabled","true"),he.classList.add("lat-select__option--disabled")),U){const Ye=d.createElement("span");Ye.className="lat-select__check",Ye.setAttribute("aria-hidden","true"),he.appendChild(Ye)}const $e=S(d,fe,l.optionTemplate);if($e)he.appendChild($e);else{const Ye=C(d,fe);Ye&&he.appendChild(Ye);const Qe=d.createElement("span");Qe.className="lat-combo__text";const pt=d.createElement("span");if(pt.className="lat-combo__title",pt.textContent=fe.label,Qe.appendChild(pt),fe.description!=null){const rt=d.createElement("span");rt.className="lat-combo__subtitle",rt.textContent=fe.description,Qe.appendChild(rt)}he.appendChild(Qe)}return V(he,"click",Ye=>{Ye.stopPropagation(),ve(Me)}),F.push(he),he}function He(){let fe=0,Me=0,he=null,$e=null;for(const ot of z)if(ot.group)he=d.createElement("div"),he.setAttribute("role","group"),$e=d.createElement("div"),$e.id=`${E}-grp-${Me}`,$e.className="lat-select__group",$e.textContent=ot.label||"",he.setAttribute("aria-labelledby",$e.id),he.appendChild($e),ce.appendChild(he),Me+=1;else{const Ye=Ie(ot,fe);fe+=1,he?he.appendChild(Ye):ce.appendChild(Ye)}}function Ee(){for(;ce.firstChild;)ce.removeChild(ce.firstChild);F.length=0,ke(-1),He()}function De(fe){if(J)return;z=g(fe),L=z.filter(he=>!he.group),Ee();const Me=y.length;y=y.filter(he=>L.some($e=>u($e.value,he))),I(),re(),y.length!==Me&&X()}function ge(){J||(Ee(),I(),re())}const Re=()=>{l.disabled||ee()},Te=()=>{r.dispatchEvent(i(d,"focus"))},Ge=()=>{r.dispatchEvent(i(d,"blur")),O()},Ke=fe=>{M.contains(fe.target)||we.contains(fe.target)||O()};V(W,"click",Re),A&&V(oe,"click",de),V(W,"keydown",ye),V(W,"focus",Te),V(W,"blur",Ge),V(ce,"mousedown",fe=>fe.preventDefault()),d&&V(d,"mousedown",Ke),He(),Q(l.value);const We={el:r,root:M,trigger:W,getValue:p,setValue(fe){return Q(fe),We},setOptions(fe){return De(fe),We},reload(){return ge(),We},open(){return je(),We},close(){return O(),We},focus(){return W.focus(),We},blur(){return W.blur(),We},setDisabled(fe){l.disabled=fe,W.disabled=fe,fe&&O()},setReadOnly(fe){l.readOnly=fe,fe?W.setAttribute("aria-readonly","true"):W.removeAttribute("aria-readonly")},destroy(){O(),J=!0,ie&&clearTimeout(ie);for(const fe of D.splice(0))fe();for(;M.firstChild;)M.removeChild(M.firstChild)}};return r.appendChild(M),r.__select=We,We}function o(r,l){const d=l.doc.createElement("select");r.name&&(d.name=r.name);const T=r.props&&r.props.multiple===!0;T&&(d.multiple=!0),d.__multiple=T;const U=g(r.options),z=U.filter(W=>!W.group),L=z.some(W=>W.value===""),y=l.doc.createElement("option");y.value="",y.textContent=r.placeholder!=null?String(r.placeholder):"",!T&&!L&&d.appendChild(y);let M=null;for(const W of U)if(W.group)M=l.doc.createElement("optgroup"),M.label=W.label||"",d.appendChild(M);else{const B=l.doc.createElement("option");B.value=String(W.value),B.textContent=W.label,W.disabled&&(B.disabled=!0),B.__value=W.value,B.__typed=!0,(M||d).appendChild(B)}if(T){const W=(Array.isArray(r.value)?r.value:[]).filter(B=>B!=null&&B!=="");for(const B of d.options)B.__typed&&(B.selected=W.some(ne=>u(ne,B.__value)))}else{const W=r.value==null||r.value===""&&!L?null:r.value,B=W==null?null:z.find(ne=>u(ne.value,W));d.value=B?String(B.value):""}return d.__select={getValue(){if(!T){if(d.selectedOptions&&d.selectedOptions.length){const B=d.selectedOptions[0];if(B&&B.__typed)return B.__value}const W=z.find(B=>u(B.value,d.value));return W?W.value:d.value}return[...d.selectedOptions].map(W=>W.__typed?W.__value:W.value)},setValue(W){if(!T){const ne=W==null||W===""&&!L?null:W,Ae=ne==null?null:z.find(we=>u(we.value,ne));d.value=Ae?String(Ae.value):"";return}const B=(Array.isArray(W)?W:[]).filter(ne=>ne!=null&&ne!=="");for(const ne of d.options)ne.__typed&&(ne.selected=B.some(Ae=>u(Ae,ne.__value)))},setDisabled(W){d.disabled=W},setReadOnly(W){W&&(d.disabled=!0)},focus(){d.focus()},blur(){d.blur()},destroy(){}},d}R("select",{kind:"field",build(r,l){const d=r.props||{};if(d.native===!0)return o(r,l);const T=l.doc.createElement("div");return s(T,{options:r.options,multiple:d.multiple===!0,value:r.value,placeholder:r.placeholder,ariaLabel:r.label,optionTemplate:d.optionTemplate,selectedTemplate:d.selectedTemplate,clearable:d.clearable===!0,t:l.t,doc:l.doc}),l.disposers.push(()=>{T.__select&&T.__select.destroy()}),T},read(r){return r.__select?r.__select.getValue():""},write(r,l){r.__select&&r.__select.setValue(l)},state(r,l){r.__select&&(r.__select.setDisabled(l.disabled===!0),r.__select.setReadOnly(l.readOnly===!0))},focus(r){r.__select&&r.__select.focus()},blur(r){r.__select&&r.__select.blur()}})}),Ne("packages/modules/form/controls/listbox.js",function(N,Z){"use strict";Object.defineProperty(N,"createListBox",{enumerable:!0,get:function(){return o}});const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/modules/form/messages.js").t,P=Z("packages/modules/form/ids.js").nextId,j=Z("packages/modules/form/controls/combo.js"),C=j.renderAdornment,S=j.renderTemplateContent,x=j.injectAdornmentStyles,h="data-lattice-form-listbox-styles",n=30,c=46,b=48,_=250,t=700;function a(){return`
1762
+ .lat-form__control .${S}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1763
+ .lat-form__control .${S}[aria-busy='true']{ cursor:default; pointer-events:none; }
1764
+ `.trim()}function g(i){const r=i&&i.documentElement;if(!r||r.getAttribute(X))return;r.setAttribute(X,"1");const l=i.createElement("style");l.textContent=k(),(i.head||i.body||r).appendChild(l)}function n(i){return P.includes(i)?i:"secondary"}function u(i){return A.includes(i)?i:"md"}function b(i){return j.includes(i)?i:"button"}function v(i){return i==="end"?"end":"start"}function t(i){return i==="uppercase"?"uppercase":"none"}function a(i){const r=i.props&&i.props.href;return typeof r=="string"&&r!==""}function s(i,r){const l=i.createElementNS(C,"svg");l.setAttribute("viewBox",r.viewBox),l.setAttribute("focusable","false"),l.setAttribute("aria-hidden","true"),r.paint==="stroke"?(l.setAttribute("fill","none"),l.setAttribute("stroke","currentColor"),l.setAttribute("stroke-width","1.5"),l.setAttribute("stroke-linecap","round"),l.setAttribute("stroke-linejoin","round")):l.setAttribute("fill","currentColor");for(const f of r.paths){const T=i.createElementNS(C,"path");T.setAttribute("d",f),l.appendChild(T)}return l}function p(i,r){if(i==null)return null;if(typeof i=="object"&&i.nodeType)return i;if(typeof i!="string"||i==="")return null;const l=i;if(/^(https?:)?\/\//i.test(l)||/^data:/i.test(l)){const T=r.createElement("img");return T.src=l,T.alt="",T}const f=z[l];return f?s(r,f):null}function y(i){const r=i.createElementNS(C,"svg");r.setAttribute("viewBox","0 0 16 16"),r.setAttribute("focusable","false"),r.setAttribute("aria-hidden","true"),r.setAttribute("class",`${S}__spinner`);const l=i.createElementNS(C,"circle");return l.setAttribute("cx","8"),l.setAttribute("cy","8"),l.setAttribute("r","6"),l.setAttribute("fill","none"),l.setAttribute("stroke","currentColor"),l.setAttribute("stroke-width","2"),l.setAttribute("stroke-linecap","round"),l.setAttribute("stroke-dasharray","28"),l.setAttribute("stroke-dashoffset","10"),r.appendChild(l),r}function m(i,r,l){const f=r&&r.defaultView,T=f&&f.CustomEvent,V=T?new T("submit",{bubbles:!0,detail:{values:l}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:l},preventDefault(){this.defaultPrevented=!0}};i.dispatchEvent(V)}function h(i){const r=i.loading===!0,l=i.disabled===!0&&i.focusableWhenDisabled!==!0||r;i.el.disabled=l,i.el.setAttribute("aria-disabled",i.disabled===!0||r?"true":"false")}function R(i,r){i.loading=r===!0,i.el.setAttribute("aria-busy",i.loading?"true":"false"),h(i);const l=i.iconSlot;if(!l)return;for(;l.firstChild;)l.removeChild(l.firstChild);const f=i.loading?y(i.doc):i.iconEl;f?(l.appendChild(f),l.parentNode||(i.position==="end"?i.el.appendChild(l):i.el.insertBefore(l,i.el.firstChild))):l.parentNode&&l.parentNode.removeChild(l)}function d(i){return{kind:"item",type:"button",name:i.name!=null&&i.name!==""?String(i.name):null,label:i.label,disabled:i.disabled===!0,props:{icon:i.icon,iconPosition:i.iconPosition,variant:i.variant,fullWidth:i.fullWidth,size:i.size,textTransform:i.textTransform,buttonType:i.buttonType,loading:i.loading,href:i.href,ariaLabel:i.ariaLabel,toggle:i.toggle,focusableWhenDisabled:i.focusableWhenDisabled}}}function c(i,r){const l=r.doc,f=i.props||{},T=i.label!=null?String(i.label):"",V=p(f.icon,l),D=V!=null&&T==="",M=a(i)?l.createElement("a"):l.createElement("button");M.className=S,M.setAttribute("data-variant",n(f.variant)),M.setAttribute("data-size",u(f.size)),M.setAttribute("data-text-transform",t(f.textTransform)),f.fullWidth===!0&&M.setAttribute("data-full","true"),D&&M.setAttribute("data-icon-only","true"),i.name&&!a(i)&&(M.name=i.name),a(i)?M.setAttribute("href",f.href):M.type="button";const w=f.ariaLabel!=null?String(f.ariaLabel):D?String(i.name||""):"";w&&M.setAttribute("aria-label",w);const I=l.createElement("span");I.className=`${S}__icon`,I.setAttribute("aria-hidden","true"),V&&I.appendChild(V);let W=null;D||(W=l.createElement("span"),W.className=`${S}__label`,W.textContent=T!==""?T:String(i.name||""));const G=v(f.iconPosition);G==="end"?(W&&M.appendChild(W),I.firstChild&&M.appendChild(I)):(I.firstChild&&M.appendChild(I),W&&M.appendChild(W));const ne={el:M,doc:l,iconSlot:I,iconEl:V,label:W,position:G,buttonType:b(f.buttonType),loading:!1,disabled:i.disabled===!0,toggle:f.toggle===!0,pressed:f.toggle===!0&&i.value===!0,focusableWhenDisabled:f.focusableWhenDisabled===!0};M.__latButton=ne,ne.toggle&&M.setAttribute("aria-pressed",ne.pressed?"true":"false");const be=()=>{if(ne.loading||ne.disabled)return;if(ne.toggle){const le=ne.pressed;ne.pressed=!ne.pressed,M.setAttribute("aria-pressed",ne.pressed?"true":"false"),r.emitter.emit("change",{name:i.name,value:ne.pressed,previousValue:le,item:i})}const Ae=ne.buttonType;Ae==="submit"?(typeof r.form.validate!="function"||r.form.validate())&&m(r.el,l,typeof r.form.getValue=="function"?r.form.getValue():{}):Ae==="reset"&&typeof r.form.clear=="function"&&r.form.clear()};return M.addEventListener("click",be),r.disposers.push(()=>M.removeEventListener("click",be)),R(ne,f.loading===!0),M}B("button",{kind:"button",action:!0,build(i,r){return g(r.doc),c(i,r)},read(i){const r=i&&i.__latButton;return r&&r.toggle?r.pressed:null},write(){},state(i,r){const l=i.__latButton;l&&(l.disabled=r.disabled===!0,h(l))},setLoading(i,r){const l=i.__latButton;l&&R(l,r)}})}),Ne("packages/modules/form/controls/buttons.js",function(N,Z){"use strict";Object.defineProperty(N,"injectButtonsStyles",{enumerable:!0,get:function(){return g}});const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/button.js"),X=S.buildButton,C=S.buttonItemFrom,z=S.injectButtonStyles,P="lat-button-row",A="data-lattice-button-row-styles",j=Object.freeze(["start","end","center","stretch","space-between"]);function k(){return`
1765
+ .lat-form__control .${P}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
1766
+ .lat-form__control .${P}[data-align='start']{ justify-content:flex-start; }
1767
+ .lat-form__control .${P}[data-align='end']{ justify-content:flex-end; }
1768
+ .lat-form__control .${P}[data-align='center']{ justify-content:center; }
1769
+ .lat-form__control .${P}[data-align='space-between']{ justify-content:space-between; }
1770
+ .lat-form__control .${P}[data-align='stretch']{ justify-content:flex-start; }
1771
+ .lat-form__control .${P}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
1772
+ `.trim()}function g(u){const b=u&&u.documentElement;if(!b||b.getAttribute(A))return;b.setAttribute(A,"1");const v=u.createElement("style");v.textContent=k(),(u.head||u.body||b).appendChild(v)}function n(u){return j.includes(u)?u:"start"}B("buttons",{kind:"display",action:!0,build(u,b){z(b.doc),g(b.doc);const v=u.props||{},t=Array.isArray(v.buttons)?v.buttons:Array.isArray(v.items)?v.items:[],a=b.doc.createElement("div");a.className=P,a.setAttribute("data-align",n(v.align));const s=[];return t.forEach((p,y)=>{if(p==null||typeof p!="object")return;const m=C(p),h=X(m,b),R=()=>{h.disabled||h.getAttribute("aria-disabled")==="true"||b.emitter.emit("click",{name:m.name,item:m,value:null})};h.addEventListener("click",R),s.push(()=>h.removeEventListener("click",R)),a.appendChild(h)}),b.disposers.push(()=>{for(const p of s)p()}),a},read(){return null},write(){},state(){}})}),Ne("packages/modules/form/controls/text.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl;B("text",{kind:"display",build(S,X){const C=X.doc.createElement("span");return C.className="lat-form__text",C.textContent=S.value==null?"":String(S.value),C},read(S){return S.textContent},write(S,X){S.textContent=X==null?"":String(X)},state(){}})}),Ne("packages/modules/form/controls/select.js",function(N,Z){"use strict";Object.defineProperty(N,"createSelect",{enumerable:!0,get:function(){return c}});const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/modules/form/messages.js").t,z=Z("packages/modules/form/ids.js").nextId,P=Z("packages/modules/form/controls/combo.js"),A=P.renderAdornment,j=P.renderTemplateContent,k=P.injectAdornmentStyles,g=Z("packages/modules/form/controls/field-icon.js"),n=g.makeFieldIcon,u=g.injectFieldIconStyles,v=Z("packages/modules/form/controls/popup-layer.js").openInLayer,t="lat-select__popup--above",a=700;function s(r,l){const f=r&&r.defaultView;return f&&f.Event?new f.Event(l,{bubbles:!0}):{type:l,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function p(r){return r!=null&&typeof r=="object"?"value"in r?r.value:"":r??""}function y(r){return r==null?"":typeof r!="object"?String(r):r.label!=null?String(r.label):r.text!=null?String(r.text):r.value==null?"":String(r.value)}function m(r){return r!=null&&typeof r=="object"&&Array.isArray(r.options)}function h(r){const l=[];if(!Array.isArray(r))return l;for(const f of r)if(m(f)){const T=y(f);l.push({group:!0,label:T});for(const V of f.options)if(m(V)){l.push({group:!0,label:y(V)});for(const D of V.options)l.push(R(D))}else l.push(R(V))}else l.push(R(f));return l}function R(r){const l=r!=null&&typeof r=="object"?r:{},f=l.description!=null?String(l.description):l.subtitle!=null?String(l.subtitle):null;return{group:!1,value:p(r),label:y(r),icon:l.icon,avatar:l.avatar,color:l.color,dot:l.dot,description:f,disabled:l.disabled===!0}}function d(r,l){return r===l?!0:r!=null&&l!=null&&String(r)===String(l)}function c(r,l={}){const f=l.doc||r&&r.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;f&&(k(f),u(f));const T=typeof l.t=="function"?l.t:X,V=l.multiple===!0;let D=h(l.options),M=D.filter(fe=>!fe.group),w=[];const I=f.createElement("div");I.className="lat-combo lat-select",V&&I.setAttribute("data-multiple","true");const W=f.createElement("button");W.type="button",W.className="lat-select__trigger",W.setAttribute("role","combobox"),W.setAttribute("aria-haspopup","listbox"),W.setAttribute("aria-expanded","false"),V&&W.setAttribute("aria-multiselectable","true"),W.setAttribute("aria-label",l.ariaLabel||T("form.select.toggle"));const G=f.createElement("span");G.className="lat-select__value";const ne=f.createElement("span");ne.className="lat-select__arrow",ne.setAttribute("aria-hidden","true");const be=n(f,"chevronDown");be&&ne.appendChild(be),W.appendChild(G),W.appendChild(ne);const Ae=f.createElement("div");Ae.className="lat-combo__popup lat-select__popup",Ae.hidden=!0;const le=f.createElement("div");le.className="lat-combo__list lat-select__list",le.setAttribute("role","listbox"),Ae.appendChild(le),I.appendChild(W);const $=l.clearable===!0,ie=f.createElement("button");ie.type="button",ie.className="lat-select__clear",ie.setAttribute("aria-label",T("form.select.clear")),ie.hidden=!0;const q=n(f,"close");q&&ie.appendChild(q),$&&I.appendChild(ie),I.appendChild(Ae);const E=z("lat-select-lb");le.id=E,W.setAttribute("aria-controls",E);const H=[];let x=-1,U=!1,ee="",te=null;const ue=[];let ae=!1,de=null;function _(fe,Me,_e){fe.addEventListener(Me,_e),ue.push(()=>fe.removeEventListener(Me,_e))}function re(fe){return M.find(Me=>d(Me.value,fe))||null}function F(){r.dispatchEvent(s(f,"change"))}function o(){return V?w.slice():w.length?w[0]:""}function L(){if($&&(ie.hidden=w.length===0||l.readOnly===!0,G.classList.toggle("lat-select__value--with-clear",!ie.hidden)),!V){for(;G.firstChild;)G.removeChild(G.firstChild);if(w.length){const fe=re(w[0]),Me=j(f,fe,l.selectedTemplate);if(Me)G.appendChild(Me);else{const _e=A(f,fe);_e&&G.appendChild(_e);const Ee=f.createElement("span");Ee.className="lat-select__label",Ee.textContent=fe?fe.label:w[0],G.appendChild(Ee)}G.removeAttribute("data-placeholder")}else G.textContent=l.placeholder!=null?String(l.placeholder):"",G.setAttribute("data-placeholder","true");return}w.length===0?(G.textContent=l.placeholder!=null?String(l.placeholder):"",G.setAttribute("data-placeholder","true")):(G.textContent=w.map(fe=>{const Me=re(fe);return Me?Me.label:fe}).join(", "),G.removeAttribute("data-placeholder"))}function Y(fe){let Me;const _e=M.some(Ee=>Ee.value==="");if(V)Me=Array.isArray(fe)?fe:fe==null||fe===""&&!_e?[]:[fe];else{const Ee=Array.isArray(fe)?fe.length?fe[0]:null:fe;Me=Ee==null||Ee===""&&!_e?[]:[Ee]}w=[];for(const Ee of Me){const ot=M.find(Ye=>d(Ye.value,Ee));ot&&w.push(ot.value)}L(),Q()}function Q(){for(let fe=0;fe<H.length;fe++){const Me=H[fe],_e=M[fe],Ee=!!_e&&w.some(Ye=>d(Ye,_e.value));Me.setAttribute("aria-selected",Ee?"true":"false");const ot=Me.querySelector(".lat-select__check");ot&&(ot.textContent=Ee?"✓":"")}}function me(fe){for(let Me=Math.max(0,fe);Me<M.length;Me++)if(!M[Me].disabled)return Me;return-1}function ge(fe){for(let Me=Math.min(M.length-1,fe);Me>=0;Me--)if(!M[Me].disabled)return Me;return-1}function $e(fe){x=fe;for(const Me of H)Me.classList.remove("lat-select__option--active");fe>=0&&fe<H.length?(H[fe].classList.add("lat-select__option--active"),W.setAttribute("aria-activedescendant",H[fe].id)):W.removeAttribute("aria-activedescendant")}function je(){if(x<0||x>=H.length)return;const fe=H[x];fe.offsetTop<le.scrollTop?le.scrollTop=fe.offsetTop:fe.offsetTop+fe.offsetHeight>le.scrollTop+le.clientHeight&&(le.scrollTop=fe.offsetTop+fe.offsetHeight-le.clientHeight)}function Pe(fe){const Me=x<0?fe>0?-1:M.length:x,_e=fe>0?me(Me+1):ge(Me-1);_e!==-1&&$e(_e),je()}function ke(){if(!(U||ae||l.disabled)&&(U=!0,Ae.hidden=!1,W.setAttribute("aria-expanded","true"),de=v(Ae,W,{aboveClass:t,onOffscreen:O}),x<0&&M.length)){const fe=V?-1:w.length?M.findIndex(Me=>d(Me.value,w[0])):-1;$e(me(fe>=0?fe:0))}}function O(){U&&(U=!1,Ae.hidden=!0,Ae.classList.remove(t),de&&(de.close(),de=null),W.setAttribute("aria-expanded","false"),$e(-1),ee="")}function J(){U?O():ke()}function pe(){l.readOnly||w.length===0||(w=[],L(),Q(),O(),F(),W.focus())}function K(fe){if(l.readOnly)return;if(!V){const _e=w.length===0||w[0]!==fe;w=[fe],L(),Q(),O(),_e&&F();return}w=w.some(_e=>_e===fe)?w.filter(_e=>_e!==fe):[...w,fe],L(),Q(),W.focus(),F()}function oe(){x<0||x>=M.length||M[x].disabled||K(M[x].value)}function ve(fe){te&&clearTimeout(te),ee+=fe.toLowerCase(),te=setTimeout(()=>{ee="",te=null},a),U||ke();const Me=x>-1?x+1:0;let _e=-1;for(let Ee=Me;Ee<M.length;Ee++)if(!M[Ee].disabled&&M[Ee].label.toLowerCase().startsWith(ee)){_e=Ee;break}if(_e===-1){for(let Ee=0;Ee<Me;Ee++)if(!M[Ee].disabled&&M[Ee].label.toLowerCase().startsWith(ee)){_e=Ee;break}}_e!==-1&&($e(_e),je())}function xe(fe){const Me=fe.altKey===!0;if(fe.key==="ArrowDown"||Me&&fe.key==="ArrowDown")fe.preventDefault(),U?Pe(1):(ke(),x===-1&&M.length&&$e(me(0)));else if(fe.key==="ArrowUp")fe.preventDefault(),U?Pe(-1):(ke(),M.length&&$e(ge(M.length-1)));else if(fe.key==="Home"){if(!U)return;fe.preventDefault();const _e=me(0);_e!==-1&&$e(_e),je()}else if(fe.key==="End"){if(!U)return;fe.preventDefault();const _e=ge(M.length-1);_e!==-1&&$e(_e),je()}else fe.key==="Enter"||fe.key===" "?(fe.preventDefault(),U?oe():ke()):fe.key==="Escape"?U&&(fe.preventDefault(),O()):fe.key==="Tab"?U&&oe():fe.key.length===1&&!fe.ctrlKey&&!fe.metaKey&&!Me&&(fe.preventDefault(),ve(fe.key))}function we(fe){fe<0||fe>=M.length||M[fe].disabled||K(M[fe].value)}function Ie(fe,Me){const _e=f.createElement("div");if(_e.className="lat-combo__option",_e.setAttribute("role","option"),_e.id=`${E}-opt-${Me}`,_e.setAttribute("data-value",fe.value),_e.setAttribute("aria-selected","false"),fe.disabled&&(_e.setAttribute("aria-disabled","true"),_e.classList.add("lat-select__option--disabled")),V){const Ye=f.createElement("span");Ye.className="lat-select__check",Ye.setAttribute("aria-hidden","true"),_e.appendChild(Ye)}const Ee=j(f,fe,l.optionTemplate);if(Ee)_e.appendChild(Ee);else{const Ye=A(f,fe);Ye&&_e.appendChild(Ye);const qe=f.createElement("span");qe.className="lat-combo__text";const pt=f.createElement("span");if(pt.className="lat-combo__title",pt.textContent=fe.label,qe.appendChild(pt),fe.description!=null){const rt=f.createElement("span");rt.className="lat-combo__subtitle",rt.textContent=fe.description,qe.appendChild(rt)}_e.appendChild(qe)}return _(_e,"click",Ye=>{Ye.stopPropagation(),we(Me)}),H.push(_e),_e}function He(){let fe=0,Me=0,_e=null,Ee=null;for(const ot of D)if(ot.group)_e=f.createElement("div"),_e.setAttribute("role","group"),Ee=f.createElement("div"),Ee.id=`${E}-grp-${Me}`,Ee.className="lat-select__group",Ee.textContent=ot.label||"",_e.setAttribute("aria-labelledby",Ee.id),_e.appendChild(Ee),le.appendChild(_e),Me+=1;else{const Ye=Ie(ot,fe);fe+=1,_e?_e.appendChild(Ye):le.appendChild(Ye)}}function Se(){for(;le.firstChild;)le.removeChild(le.firstChild);H.length=0,$e(-1),He()}function De(fe){if(ae)return;D=h(fe),M=D.filter(_e=>!_e.group),Se();const Me=w.length;w=w.filter(_e=>M.some(Ee=>d(Ee.value,_e))),L(),Q(),w.length!==Me&&F()}function he(){ae||(Se(),L(),Q())}const Re=()=>{l.disabled||J()},Te=()=>{r.dispatchEvent(s(f,"focus"))},Ge=()=>{r.dispatchEvent(s(f,"blur")),O()},Ke=fe=>{I.contains(fe.target)||Ae.contains(fe.target)||O()};_(W,"click",Re),$&&_(ie,"click",pe),_(W,"keydown",xe),_(W,"focus",Te),_(W,"blur",Ge),_(le,"mousedown",fe=>fe.preventDefault()),f&&_(f,"mousedown",Ke),He(),Y(l.value);const We={el:r,root:I,trigger:W,getValue:o,setValue(fe){return Y(fe),We},setOptions(fe){return De(fe),We},reload(){return he(),We},open(){return ke(),We},close(){return O(),We},focus(){return W.focus(),We},blur(){return W.blur(),We},setDisabled(fe){l.disabled=fe,W.disabled=fe,fe&&O()},setReadOnly(fe){l.readOnly=fe,fe?W.setAttribute("aria-readonly","true"):W.removeAttribute("aria-readonly"),L()},destroy(){O(),ae=!0,te&&clearTimeout(te);for(const fe of ue.splice(0))fe();for(;I.firstChild;)I.removeChild(I.firstChild)}};return r.appendChild(I),r.__select=We,We}function i(r,l){const f=l.doc.createElement("select");r.name&&(f.name=r.name);const T=r.props&&r.props.multiple===!0;T&&(f.multiple=!0),f.__multiple=T;const V=h(r.options),D=V.filter(W=>!W.group),M=D.some(W=>W.value===""),w=l.doc.createElement("option");w.value="",w.textContent=r.placeholder!=null?String(r.placeholder):"",!T&&!M&&f.appendChild(w);let I=null;for(const W of V)if(W.group)I=l.doc.createElement("optgroup"),I.label=W.label||"",f.appendChild(I);else{const G=l.doc.createElement("option");G.value=String(W.value),G.textContent=W.label,W.disabled&&(G.disabled=!0),G.__value=W.value,G.__typed=!0,(I||f).appendChild(G)}if(T){const W=(Array.isArray(r.value)?r.value:[]).filter(G=>G!=null&&G!=="");for(const G of f.options)G.__typed&&(G.selected=W.some(ne=>d(ne,G.__value)))}else{const W=r.value==null||r.value===""&&!M?null:r.value,G=W==null?null:D.find(ne=>d(ne.value,W));f.value=G?String(G.value):""}return f.__select={getValue(){if(!T){if(f.selectedOptions&&f.selectedOptions.length){const G=f.selectedOptions[0];if(G&&G.__typed)return G.__value}const W=D.find(G=>d(G.value,f.value));return W?W.value:f.value}return[...f.selectedOptions].map(W=>W.__typed?W.__value:W.value)},setValue(W){if(!T){const ne=W==null||W===""&&!M?null:W,be=ne==null?null:D.find(Ae=>d(Ae.value,ne));f.value=be?String(be.value):"";return}const G=(Array.isArray(W)?W:[]).filter(ne=>ne!=null&&ne!=="");for(const ne of f.options)ne.__typed&&(ne.selected=G.some(be=>d(be,ne.__value)))},setDisabled(W){f.disabled=W},setReadOnly(W){W&&(f.disabled=!0)},focus(){f.focus()},blur(){f.blur()},destroy(){}},f}B("select",{kind:"field",build(r,l){const f=r.props||{};if(f.native===!0)return i(r,l);const T=l.doc.createElement("div");return c(T,{options:r.options,multiple:f.multiple===!0,value:r.value,placeholder:r.placeholder,ariaLabel:r.label,optionTemplate:f.optionTemplate,selectedTemplate:f.selectedTemplate,clearable:f.clearable===!0,t:l.t,doc:l.doc}),l.disposers.push(()=>{T.__select&&T.__select.destroy()}),T},read(r){return r.__select?r.__select.getValue():""},write(r,l){r.__select&&r.__select.setValue(l)},state(r,l){r.__select&&(r.__select.setDisabled(l.disabled===!0),r.__select.setReadOnly(l.readOnly===!0))},focus(r){r.__select&&r.__select.focus()},blur(r){r.__select&&r.__select.blur()}})}),Ne("packages/modules/form/controls/listbox.js",function(N,Z){"use strict";Object.defineProperty(N,"createListBox",{enumerable:!0,get:function(){return i}});const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/modules/form/messages.js").t,z=Z("packages/modules/form/ids.js").nextId,P=Z("packages/modules/form/controls/combo.js"),A=P.renderAdornment,j=P.renderTemplateContent,k=P.injectAdornmentStyles,g="data-lattice-form-listbox-styles",n=30,u=46,b=48,v=250,t=700;function a(){return`
1743
1773
  .lat-listbox{
1744
1774
  display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 2); min-width:0; box-sizing:border-box;
1745
1775
  font-size:var(--lattice-font-size); color:var(--lattice-form-field-fg);
@@ -1828,34 +1858,34 @@ ${r}
1828
1858
  }
1829
1859
  .lat-listbox__status{ padding:calc(var(--lattice-space) / 2) var(--lattice-space); color:var(--lattice-foreground-muted); }
1830
1860
  .lat-listbox__status[hidden]{ display:none; }
1831
- `.trim()}function i(r){const l=r&&r.documentElement;if(!l||l.getAttribute(h))return;l.setAttribute(h,"1");const d=r.createElement("style");d.textContent=a(),(r.head||r.body||l).appendChild(d)}function f(r){return r==null||typeof r!="object"?{value:r,label:r==null?"":String(r),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:r.value,label:r.label!=null?String(r.label):r.title!=null?String(r.title):r.value==null?"":String(r.value),description:r.description!=null?String(r.description):r.subtitle!=null?String(r.subtitle):null,icon:r.icon,avatar:r.avatar,color:r.color,dot:r.dot,disabled:r.disabled===!0,group:r.group!=null?String(r.group):null}}function v(r){if(Array.isArray(r))return{items:r,total:r.length,hasMore:!1};if(r&&typeof r=="object"){const l=Array.isArray(r.items)?r.items:[];return{items:l,total:typeof r.total=="number"?r.total:l.length,hasMore:r.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function m(r,l){return r===l?!0:r!=null&&l!=null&&String(r)===String(l)}function g(r){return String(r)}function H(r,l){const d=r&&r.defaultView;return d&&d.Event?new d.Event(l,{bubbles:!0}):{type:l,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function u(r){return r.__latListboxRegistry||(r.__latListboxRegistry=new Map),r.__latListboxRegistry}let s=null;function o(r,l={}){const d=l.doc||r&&r.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;d&&(i(d),x(d));const T=typeof l.t=="function"?l.t:q,U=["single","multiple","checkbox"].includes(l.selection)?l.selection:"single",z=U!=="single",L=l.reorder===!0,y=typeof l.connect=="string"&&l.connect!==""?l.connect:null,M=typeof l.name=="string"&&l.name!==""?l.name:null,W=l.sort==="asc"||l.sort==="desc"?l.sort:!1,B=l.groupBy===!0,ne=l.filter===!0,Ae=P("lat-listbox"),we=d.createElement("div");we.className="lat-listbox",l.inForm||(we.setAttribute("data-lattice-standalone","true"),we.setAttribute("data-density",["compact","standard","comfortable"].includes(l.density)?l.density:"standard"));let ce=null;ne&&(ce=d.createElement("input"),ce.type="text",ce.className="lat-listbox__filter",ce.placeholder=T("form.listbox.filterPlaceholder"),ce.setAttribute("aria-label",T("form.listbox.filterPlaceholder")),we.appendChild(ce));let A=null,oe=null,te=null,E=null,F=null;(L||y)&&(A=d.createElement("div"),A.className="lat-listbox__toolbar",A.setAttribute("role","group"),A.setAttribute("aria-label",T("form.listbox.toolbar")),L&&(oe=d.createElement("button"),oe.type="button",oe.className="lat-listbox__toolbar-btn",oe.textContent=T("form.listbox.moveUp"),te=d.createElement("button"),te.type="button",te.className="lat-listbox__toolbar-btn",te.textContent=T("form.listbox.moveDown"),A.appendChild(oe),A.appendChild(te)),y&&(E=d.createElement("button"),E.type="button",E.className="lat-listbox__toolbar-btn",E.textContent=T("form.listbox.moveSelected"),F=d.createElement("button"),F.type="button",F.className="lat-listbox__toolbar-btn",F.textContent=T("form.listbox.moveAll"),A.appendChild(E),A.appendChild(F)),we.appendChild(A));const w=d.createElement("div");w.className="lat-listbox__viewport",w.id=`${Ae}-lb`,w.setAttribute("role","listbox"),w.setAttribute("tabindex","0"),z&&w.setAttribute("aria-multiselectable","true"),w.setAttribute("aria-label",l.ariaLabel!=null?String(l.ariaLabel):"");const G=typeof l.rows=="number"&&l.rows>0?l.rows:8;typeof l.height=="number"&&l.height>0?w.style.height=`${l.height}px`:w.style.height=`calc(var(--lattice-row-height) * ${G})`;let Y=null;if(U==="checkbox"){const le=d.createElement("div");le.className="lat-listbox__option lat-listbox__select-all",Y=d.createElement("input"),Y.type="checkbox",Y.className="lat-listbox__checkbox",Y.id=`${Ae}-select-all`,le.appendChild(Y);const _e=d.createElement("label");_e.className="lat-listbox__title",_e.textContent=T("form.listbox.selectAll"),_e.setAttribute("for",Y.id),le.appendChild(_e),w.appendChild(le)}const ie=d.createElement("div");ie.className="lat-listbox__spacer",w.appendChild(ie);const D=d.createElement("div");D.className="lat-listbox__status",D.setAttribute("role","status"),D.setAttribute("aria-live","polite"),D.hidden=!0,w.appendChild(D),we.appendChild(w);let J=[];const ae=new Set;let V=[],se=-1,X=null,p="";const I=[],Q=[];let re=0,me="",be=null,ke=null,Le=null,Se=0,je=!1,O=0,ee=!1;const de=[];let K=!1;function pe(le,_e,xe){le.addEventListener(_e,xe),de.push(()=>le.removeEventListener(_e,xe))}function Ce(){return l.readOnly===!0||l.disabled===!0}function ye(){r.dispatchEvent(H(d,"change"))}function ve(){if(U==="single"){const le=J.find(_e=>ae.has(g(_e.value)));return le?le.value:null}return L||y?J.map(le=>le.value):J.filter(le=>ae.has(g(le.value))).map(le=>le.value)}function Ie(){const le=V.filter(_e=>!_e.disabled);return le.length>0&&le.every(_e=>ae.has(g(_e.value)))}function He(){const le=p.trim().toLowerCase();let _e=le===""?J.slice():J.filter(xe=>xe.label.toLowerCase().includes(le)||(xe.description||"").toLowerCase().includes(le));W&&(_e=_e.slice().sort((xe,Pe)=>xe.label.localeCompare(Pe.label)*(W==="desc"?-1:1))),V=_e,I.length=0,Q.length=0,se>=V.length&&(se=V.length-1)}function Ee(le){const _e=[],xe=new Map;for(const Pe of le){const Ze=Pe.group||"";let Ve=xe.get(Ze);Ve||(Ve={group:Pe.group||null,items:[]},xe.set(Ze,Ve),_e.push(Ve)),Ve.items.push(Pe)}return _e}function De(le){return`${Ae}-opt-${le}`}function ge(le){return le.description!=null||le.icon!=null||le.avatar!=null?c:n}function Re(le){const _e=V[le];return!!_e&&ae.has(g(_e.value))}function Te(le,_e){const xe=d.createElement("div");if(xe.className="lat-listbox__option",xe.setAttribute("role","option"),xe.id=De(_e),xe.setAttribute("aria-selected",Re(_e)?"true":"false"),le.disabled&&xe.setAttribute("aria-disabled","true"),U==="checkbox"){const Ve=d.createElement("input");Ve.type="checkbox",Ve.className="lat-listbox__checkbox",Ve.tabIndex=-1,Ve.checked=Re(_e),Ve.disabled=le.disabled||Ce(),xe.appendChild(Ve)}const Pe=S(d,le,l.render);if(Pe)xe.appendChild(Pe);else{const Ve=C(d,le);Ve&&xe.appendChild(Ve);const Be=d.createElement("span");Be.className="lat-listbox__text";const qe=d.createElement("span");if(qe.className="lat-listbox__title",qe.textContent=le.label,Be.appendChild(qe),le.description!=null){const xt=d.createElement("span");xt.className="lat-listbox__subtitle",xt.textContent=le.description,Be.appendChild(xt)}xe.appendChild(Be)}return(L||y)&&!le.disabled&&!Ce()&&(xe.draggable=!0,pe(xe,"dragstart",()=>Ge(le)),pe(xe,"dragover",Ve=>{Ve.preventDefault()}),pe(xe,"drop",Ve=>{Ve.preventDefault(),Ke(le)})),pe(xe,"click",Ve=>{le.disabled||Ce()||(w.focus(),bt(_e,{shift:Ve.shiftKey,ctrl:Ve.ctrlKey||Ve.metaKey,touch:Ve.pointerType==="touch"}))}),xe}function Ge(le){const _e=ae.has(g(le.value))?J.filter(xe=>ae.has(g(xe.value))).map(xe=>xe.value):[le.value];s={source:it,values:_e}}function Ke(le){if(!s||Ce())return;const{source:_e,values:xe}=s;s=null;const Pe=J.findIndex(Ze=>m(Ze.value,le.value));if(Pe!==-1){if(_e===it){if(!L)return;We(xe,Pe),Qe(),ye();return}if(y){const Ze=_e.__removeValues(xe);if(Ze.length===0)return;J.splice(Pe,0,...Ze);for(const Ve of Ze)ae.add(g(Ve.value));He(),Qe(),ye()}}}function We(le,_e){const xe=new Set(le.map(g)),Pe=J.filter(qe=>xe.has(g(qe.value)));if(Pe.length===0)return;const Ze=J[_e]?g(J[_e].value):null,Ve=J.filter(qe=>!xe.has(g(qe.value)));let Be=Ze==null?Ve.length:Ve.findIndex(qe=>g(qe.value)===Ze);Be===-1&&(Be=Ve.length),Ve.splice(Be,0,...Pe),J=Ve}function fe(le){const _e=new Set(le.map(g)),xe=J.filter(Pe=>_e.has(g(Pe.value)));if(xe.length===0)return xe;J=J.filter(Pe=>!_e.has(g(Pe.value)));for(const Pe of xe)ae.delete(g(Pe.value));return He(),Qe(),ye(),xe}function Me(le){le.length!==0&&(J=J.concat(le),He(),Qe(),ye())}function he(){return!y||!d?null:u(d).get(y)||null}function $e(){const le=he();if(!le||Ce())return;const _e=J.filter(Pe=>ae.has(g(Pe.value))).map(Pe=>Pe.value);if(_e.length===0)return;const xe=fe(_e);le.__receiveItems(xe)}function ot(){const le=he();if(!le||Ce()||J.length===0)return;const _e=fe(J.map(xe=>xe.value));le.__receiveItems(_e)}function Ye(le){if(Ce())return;const _e=[];for(let xe=0;xe<J.length;xe++)ae.has(g(J[xe].value))&&_e.push(xe);if(_e.length!==0){if(le<0)for(const xe of _e)xe===0||ae.has(g(J[xe-1].value))||([J[xe-1],J[xe]]=[J[xe],J[xe-1]]);else for(let xe=_e.length-1;xe>=0;xe--){const Pe=_e[xe];Pe===J.length-1||ae.has(g(J[Pe+1].value))||([J[Pe+1],J[Pe]]=[J[Pe],J[Pe+1]])}He(),Qe(),ye()}}function Qe(){for(;ie.firstChild;)ie.removeChild(ie.firstChild);ie.style.height="",ie.style.position="",B?pt():rt(),ct(),tt(),A&&dt()}function pt(){let le=0;for(const _e of Ee(V))if(_e.group!=null){const xe=d.createElement("div");xe.setAttribute("role","group");const Pe=d.createElement("div");Pe.className="lat-listbox__group-header",Pe.id=`${Ae}-grp-${le}`,Pe.textContent=_e.group,xe.setAttribute("aria-labelledby",Pe.id),xe.appendChild(Pe);for(const Ze of _e.items)xe.appendChild(Te(Ze,le)),le+=1;ie.appendChild(xe)}else for(const xe of _e.items)ie.appendChild(Te(xe,le)),le+=1}function rt(){if(ie.style.position="relative",re=w.clientHeight||re||240,V.length===0){ie.style.height="0px";return}for(let Be=0;Be<V.length;Be++)I[Be]==null&&(I[Be]=ge(V[Be]));Q.length=0,Q[0]=0;for(let Be=1;Be<=V.length;Be++)Q[Be]=Q[Be-1]+I[Be-1];ie.style.height=`${Q[V.length]}px`;const le=w.scrollTop,_e=le,xe=le+re;let Pe=0;for(;Pe<V.length-1&&Q[Pe+1]<_e;)Pe+=1;let Ze=Pe;for(;Ze<V.length&&Q[Ze]<xe;)Ze+=1;for(Ze=Math.min(V.length,Ze+2);ie.firstChild;)ie.removeChild(ie.firstChild);for(let Be=Pe;Be<Ze;Be++){const qe=Te(V[Be],Be);qe.style.position="absolute",qe.style.insetInlineStart="0",qe.style.insetInlineEnd="0",qe.style.top="0",qe.style.transform=`translateY(${Q[Be]}px)`,ie.appendChild(qe)}let Ve=!1;for(let Be=Pe;Be<Ze;Be++){const qe=d.getElementById(De(Be));if(!qe)continue;const xt=qe.getBoundingClientRect().height;xt>0&&Math.abs(xt-I[Be])>.5&&(I[Be]=xt,Ve=!0)}Ve&&rt()}function ut(){if(se<0||B)return;const le=Q[se]||0,_e=le+(I[se]||ge(V[se]));le<w.scrollTop?w.scrollTop=le:_e>w.scrollTop+re&&(w.scrollTop=_e-re),Qe()}function ct(){V.length===0?(D.hidden=!1,D.textContent=T("form.listbox.empty")):(D.hidden=!0,D.textContent="")}function at(){for(const le of ie.querySelectorAll('.lat-listbox__option[role="option"]')){const _e=le.id||"",xe=Number(_e.slice(`${Ae}-opt-`.length));if(Number.isNaN(xe))continue;const Pe=V[xe];if(!Pe)continue;const Ze=ae.has(g(Pe.value));le.setAttribute("aria-selected",Ze?"true":"false");const Ve=le.querySelector(".lat-listbox__checkbox");Ve&&(Ve.checked=Ze)}tt(),A&&dt()}function tt(){if(!Y)return;const le=V.filter(xe=>!xe.disabled),_e=le.filter(xe=>ae.has(g(xe.value))).length;Y.checked=le.length>0&&_e===le.length,Y.indeterminate=_e>0&&_e<le.length,Y.disabled=Ce()||le.length===0}function dt(){const le=ae.size>0,_e=Ce();oe&&(oe.disabled=_e||!le),te&&(te.disabled=_e||!le),E&&(E.disabled=_e||!le),F&&(F.disabled=_e||J.length===0)}function mt(le){se=le,le>=0&&le<V.length?w.setAttribute("aria-activedescendant",De(le)):w.removeAttribute("aria-activedescendant")}function nt(le){for(let _e=Math.max(0,le);_e<V.length;_e++)if(!V[_e].disabled)return _e;return-1}function jt(le){for(let _e=Math.min(V.length-1,le);_e>=0;_e--)if(!V[_e].disabled)return _e;return-1}function bt(le,_e={}){const xe=V[le];if(!xe||xe.disabled||Ce())return;mt(le);const Pe=new Set(ae);if(U==="single")ae.clear(),ae.add(g(xe.value)),X=le;else if(U==="checkbox")ae.has(g(xe.value))?ae.delete(g(xe.value)):ae.add(g(xe.value)),X=le;else if(_e.shift&&X!=null){const Ze=Math.min(X,le),Ve=Math.max(X,le);ae.clear();for(let Be=Ze;Be<=Ve;Be++)V[Be].disabled||ae.add(g(V[Be].value))}else _e.ctrl||_e.touch?(ae.has(g(xe.value))?ae.delete(g(xe.value)):ae.add(g(xe.value)),X=le):(ae.clear(),ae.add(g(xe.value)),X=le);ut(),at(),ft(Pe,ae)||ye()}function ft(le,_e){if(le.size!==_e.size)return!1;for(const xe of le)if(!_e.has(xe))return!1;return!0}function lt(){if(Ce())return;const le=!Ie();for(const _e of V)_e.disabled||(le?ae.add(g(_e.value)):ae.delete(g(_e.value)));at(),ye()}function gt(le,_e){if(V.length===0)return;const xe=se<0?le>0?-1:V.length:se,Pe=le>0?nt(xe+1):jt(xe-1);if(Pe!==-1){if(mt(Pe),ut(),U==="single"){bt(Pe,{});return}_e&&z&&(X==null&&(X=Pe),bt(Pe,{shift:!0}))}}function Ct(le){be&&clearTimeout(be),me+=le.toLowerCase(),be=setTimeout(()=>{me="",be=null},t);const _e=se>-1?se+1:0;let xe=-1;for(let Pe=_e;Pe<V.length;Pe++)if(!V[Pe].disabled&&V[Pe].label.toLowerCase().startsWith(me)){xe=Pe;break}if(xe===-1){for(let Pe=0;Pe<_e;Pe++)if(!V[Pe].disabled&&V[Pe].label.toLowerCase().startsWith(me)){xe=Pe;break}}xe!==-1&&(mt(xe),ut())}function Pt(le){if(le.altKey&&le.key==="ArrowUp"&&L)le.preventDefault(),Ye(-1);else if(le.altKey&&le.key==="ArrowDown"&&L)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 _e=nt(0);_e!==-1&&(mt(_e),ut(),U==="single"&&bt(_e,{}))}else if(le.key==="End"){le.preventDefault();const _e=jt(V.length-1);_e!==-1&&(mt(_e),ut(),U==="single"&&bt(_e,{}))}else if(le.key===" ")le.preventDefault(),se>=0&&bt(se,{ctrl:z});else if((le.ctrlKey||le.metaKey)&&(le.key==="a"||le.key==="A")&&z){if(le.preventDefault(),Ce())return;for(const _e of V)_e.disabled||ae.add(g(_e.value));at(),ye()}else le.key.length===1&&!le.ctrlKey&&!le.metaKey&&!le.altKey&&Ct(le.key)}function ht(){if(p=ce.value||"",typeof l.load!="function"){He(),Qe();return}ke&&clearTimeout(ke),ke=setTimeout(()=>_t(),_)}function _t(){if(K||typeof l.load!="function")return;je=!0,Se+=1;const le=Se;Le&&Le.abort(),Le=typeof AbortController<"u"?new AbortController:null;let _e;try{_e=l.load({search:p,page:0,signal:Le?Le.signal:void 0})}catch{je=!1;return}const xe=Pe=>{if(K||le!==Se)return;je=!1;const Ze=v(Pe);J=Ze.items.map(f),ee=Ze.hasMore,O=1,He(),Qe()};_e&&typeof _e.then=="function"?_e.then(xe,()=>{je=!1}):xe(_e)}pe(w,"keydown",Pt),pe(w,"scroll",()=>{B||rt()}),ce&&pe(ce,"input",ht),oe&&pe(oe,"click",()=>Ye(-1)),te&&pe(te,"click",()=>Ye(1)),E&&pe(E,"click",()=>$e()),F&&pe(F,"click",()=>ot()),Y&&pe(Y,"change",()=>lt()),pe(w,"dragover",le=>{s&&le.preventDefault()}),pe(w,"drop",le=>{if(le.preventDefault(),!s||s.source===it||!y)return;const _e=s.source.__removeValues(s.values);s=null,Me(_e)});function st(le){if(ae.clear(),U==="single")le!=null&&ae.add(g(le));else if((L||y)&&Array.isArray(le)){const _e=new Map(J.map(xe=>[g(xe.value),xe]));J=le.map(xe=>_e.get(g(xe))||f(xe));for(const xe of J)ae.add(g(xe.value))}else{const _e=Array.isArray(le)?le:le==null?[]:[le];for(const xe of _e)ae.add(g(xe))}He(),Qe()}typeof l.load!="function"&&(J=(Array.isArray(l.options)?l.options:[]).map(f)),He(),st(l.value),typeof l.load=="function"&&_t();const it={el:r,root:we,viewport:w,getValue:ve,setValue(le){return st(le),it},focus(){return w.focus(),it},blur(){return w.blur(),it},setDisabled(le){l.disabled=le,w.setAttribute("aria-disabled",le?"true":"false"),ce&&(ce.disabled=le),tt(),dt()},setReadOnly(le){l.readOnly=le,le?w.setAttribute("aria-readonly","true"):w.removeAttribute("aria-readonly"),tt(),dt()},__removeValues:fe,__receiveItems:Me,destroy(){K=!0,be&&clearTimeout(be),ke&&clearTimeout(ke),Le&&Le.abort();for(const le of de.splice(0))le();if(d&&M){const le=u(d);le.get(M)===it&&le.delete(M)}for(;we.firstChild;)we.removeChild(we.firstChild)}};return d&&M&&u(d).set(M,it),Qe(),r.appendChild(we),r.__listbox=it,it}R("listbox",{kind:"field",build(r,l){const d=r.props||{},T=l.doc.createElement("div");return o(T,{options:r.options,load:d.load,selection:d.selection,value:r.value,filter:d.filter===!0,groupBy:d.groupBy===!0,sort:d.sort,render:d.render,reorder:d.reorder===!0,connect:d.connect,name:r.name,min:r.min,max:r.max,height:d.height,rows:r.rows,disabled:r.disabled===!0,readOnly:r.readOnly===!0,ariaLabel:r.label,t:l.t,doc:l.doc,inForm:!0}),T.__listboxT=l.t,l.disposers.push(()=>{T.__listbox&&T.__listbox.destroy()}),T},read(r){return r.__listbox?r.__listbox.getValue():null},write(r,l){r.__listbox&&r.__listbox.setValue(l)},validate(r,l,d){if(!r.__listbox)return null;const U=r.__listboxT||q,z=Array.isArray(d)?d.length:d==null?0:1,L=l.min!=null&&Number.isFinite(Number(l.min))?Number(l.min):null,y=l.max!=null&&Number.isFinite(Number(l.max))?Number(l.max):null;return L!=null&&z<L?{code:"min",message:U("form.listbox.min",{min:String(L)})}:y!=null&&z>y?{code:"max",message:U("form.listbox.max",{max:String(y)})}:null},state(r,l){r.__listbox&&(r.__listbox.setDisabled(l.disabled===!0),r.__listbox.setReadOnly(l.readOnly===!0))},focus(r){r.__listbox&&r.__listbox.focus()},blur(r){r.__listbox&&r.__listbox.blur()}})}),Ne("packages/modules/form/controls/options.js",function(N,Z){"use strict";Object.defineProperty(N,"normalizeOptions",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"resolveChoiceLayout",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"choiceLayoutCss",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return j}});const R=Z("packages/modules/form/styles.js").NS;function $(C){return Array.isArray(C)?C.map(S=>{if(typeof S=="string")return{value:S,label:S};if(S&&typeof S=="object"){const x=S.value==null?"":String(S.value),h=S.label!=null?String(S.label):S.text!=null?String(S.text):x;return{value:x,label:h}}return{value:"",label:""}}):[]}function q(C){const S=C&&C.props?C.props:{},x=C&&C.orientation!=null?C.orientation:S.orientation;let h=C&&C.columns!=null?C.columns:S.columns;return h=typeof h=="number"&&Number.isFinite(h)&&h>=1?Math.floor(h):0,h>0?{orientation:"vertical",columns:h}:{orientation:x==="horizontal"?"horizontal":"vertical",columns:0}}function k(){return`
1832
- .${R}__radiogroup--horizontal,
1833
- .${R}__checkboxgroup--horizontal{
1861
+ `.trim()}function s(r){const l=r&&r.documentElement;if(!l||l.getAttribute(g))return;l.setAttribute(g,"1");const f=r.createElement("style");f.textContent=a(),(r.head||r.body||l).appendChild(f)}function p(r){return r==null||typeof r!="object"?{value:r,label:r==null?"":String(r),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:r.value,label:r.label!=null?String(r.label):r.title!=null?String(r.title):r.value==null?"":String(r.value),description:r.description!=null?String(r.description):r.subtitle!=null?String(r.subtitle):null,icon:r.icon,avatar:r.avatar,color:r.color,dot:r.dot,disabled:r.disabled===!0,group:r.group!=null?String(r.group):null}}function y(r){if(Array.isArray(r))return{items:r,total:r.length,hasMore:!1};if(r&&typeof r=="object"){const l=Array.isArray(r.items)?r.items:[];return{items:l,total:typeof r.total=="number"?r.total:l.length,hasMore:r.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function m(r,l){return r===l?!0:r!=null&&l!=null&&String(r)===String(l)}function h(r){return String(r)}function R(r,l){const f=r&&r.defaultView;return f&&f.Event?new f.Event(l,{bubbles:!0}):{type:l,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function d(r){return r.__latListboxRegistry||(r.__latListboxRegistry=new Map),r.__latListboxRegistry}let c=null;function i(r,l={}){const f=l.doc||r&&r.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;f&&(s(f),k(f));const T=typeof l.t=="function"?l.t:X,V=["single","multiple","checkbox"].includes(l.selection)?l.selection:"single",D=V!=="single",M=l.reorder===!0,w=typeof l.connect=="string"&&l.connect!==""?l.connect:null,I=typeof l.name=="string"&&l.name!==""?l.name:null,W=l.sort==="asc"||l.sort==="desc"?l.sort:!1,G=l.groupBy===!0,ne=l.filter===!0,be=z("lat-listbox"),Ae=f.createElement("div");Ae.className="lat-listbox",l.inForm||(Ae.setAttribute("data-lattice-standalone","true"),Ae.setAttribute("data-density",["compact","standard","comfortable"].includes(l.density)?l.density:"standard"));let le=null;ne&&(le=f.createElement("input"),le.type="text",le.className="lat-listbox__filter",le.placeholder=T("form.listbox.filterPlaceholder"),le.setAttribute("aria-label",T("form.listbox.filterPlaceholder")),Ae.appendChild(le));let $=null,ie=null,q=null,E=null,H=null;(M||w)&&($=f.createElement("div"),$.className="lat-listbox__toolbar",$.setAttribute("role","group"),$.setAttribute("aria-label",T("form.listbox.toolbar")),M&&(ie=f.createElement("button"),ie.type="button",ie.className="lat-listbox__toolbar-btn",ie.textContent=T("form.listbox.moveUp"),q=f.createElement("button"),q.type="button",q.className="lat-listbox__toolbar-btn",q.textContent=T("form.listbox.moveDown"),$.appendChild(ie),$.appendChild(q)),w&&(E=f.createElement("button"),E.type="button",E.className="lat-listbox__toolbar-btn",E.textContent=T("form.listbox.moveSelected"),H=f.createElement("button"),H.type="button",H.className="lat-listbox__toolbar-btn",H.textContent=T("form.listbox.moveAll"),$.appendChild(E),$.appendChild(H)),Ae.appendChild($));const x=f.createElement("div");x.className="lat-listbox__viewport",x.id=`${be}-lb`,x.setAttribute("role","listbox"),x.setAttribute("tabindex","0"),D&&x.setAttribute("aria-multiselectable","true"),x.setAttribute("aria-label",l.ariaLabel!=null?String(l.ariaLabel):"");const U=typeof l.rows=="number"&&l.rows>0?l.rows:8;typeof l.height=="number"&&l.height>0?x.style.height=`${l.height}px`:x.style.height=`calc(var(--lattice-row-height) * ${U})`;let ee=null;if(V==="checkbox"){const se=f.createElement("div");se.className="lat-listbox__option lat-listbox__select-all",ee=f.createElement("input"),ee.type="checkbox",ee.className="lat-listbox__checkbox",ee.id=`${be}-select-all`,se.appendChild(ee);const ye=f.createElement("label");ye.className="lat-listbox__title",ye.textContent=T("form.listbox.selectAll"),ye.setAttribute("for",ee.id),se.appendChild(ye),x.appendChild(se)}const te=f.createElement("div");te.className="lat-listbox__spacer",x.appendChild(te);const ue=f.createElement("div");ue.className="lat-listbox__status",ue.setAttribute("role","status"),ue.setAttribute("aria-live","polite"),ue.hidden=!0,x.appendChild(ue),Ae.appendChild(x);let ae=[];const de=new Set;let _=[],re=-1,F=null,o="";const L=[],Y=[];let Q=0,me="",ge=null,$e=null,je=null,Pe=0,ke=!1,O=0,J=!1;const pe=[];let K=!1;function oe(se,ye,Ce){se.addEventListener(ye,Ce),pe.push(()=>se.removeEventListener(ye,Ce))}function ve(){return l.readOnly===!0||l.disabled===!0}function xe(){r.dispatchEvent(R(f,"change"))}function we(){if(V==="single"){const se=ae.find(ye=>de.has(h(ye.value)));return se?se.value:null}return M||w?ae.map(se=>se.value):ae.filter(se=>de.has(h(se.value))).map(se=>se.value)}function Ie(){const se=_.filter(ye=>!ye.disabled);return se.length>0&&se.every(ye=>de.has(h(ye.value)))}function He(){const se=o.trim().toLowerCase();let ye=se===""?ae.slice():ae.filter(Ce=>Ce.label.toLowerCase().includes(se)||(Ce.description||"").toLowerCase().includes(se));W&&(ye=ye.slice().sort((Ce,Le)=>Ce.label.localeCompare(Le.label)*(W==="desc"?-1:1))),_=ye,L.length=0,Y.length=0,re>=_.length&&(re=_.length-1)}function Se(se){const ye=[],Ce=new Map;for(const Le of se){const Ze=Le.group||"";let Ve=Ce.get(Ze);Ve||(Ve={group:Le.group||null,items:[]},Ce.set(Ze,Ve),ye.push(Ve)),Ve.items.push(Le)}return ye}function De(se){return`${be}-opt-${se}`}function he(se){return se.description!=null||se.icon!=null||se.avatar!=null?u:n}function Re(se){const ye=_[se];return!!ye&&de.has(h(ye.value))}function Te(se,ye){const Ce=f.createElement("div");if(Ce.className="lat-listbox__option",Ce.setAttribute("role","option"),Ce.id=De(ye),Ce.setAttribute("aria-selected",Re(ye)?"true":"false"),se.disabled&&Ce.setAttribute("aria-disabled","true"),V==="checkbox"){const Ve=f.createElement("input");Ve.type="checkbox",Ve.className="lat-listbox__checkbox",Ve.tabIndex=-1,Ve.checked=Re(ye),Ve.disabled=se.disabled||ve(),Ce.appendChild(Ve)}const Le=j(f,se,l.render);if(Le)Ce.appendChild(Le);else{const Ve=A(f,se);Ve&&Ce.appendChild(Ve);const Be=f.createElement("span");Be.className="lat-listbox__text";const Qe=f.createElement("span");if(Qe.className="lat-listbox__title",Qe.textContent=se.label,Be.appendChild(Qe),se.description!=null){const xt=f.createElement("span");xt.className="lat-listbox__subtitle",xt.textContent=se.description,Be.appendChild(xt)}Ce.appendChild(Be)}return(M||w)&&!se.disabled&&!ve()&&(Ce.draggable=!0,oe(Ce,"dragstart",()=>Ge(se)),oe(Ce,"dragover",Ve=>{Ve.preventDefault()}),oe(Ce,"drop",Ve=>{Ve.preventDefault(),Ke(se)})),oe(Ce,"click",Ve=>{se.disabled||ve()||(x.focus(),bt(ye,{shift:Ve.shiftKey,ctrl:Ve.ctrlKey||Ve.metaKey,touch:Ve.pointerType==="touch"}))}),Ce}function Ge(se){const ye=de.has(h(se.value))?ae.filter(Ce=>de.has(h(Ce.value))).map(Ce=>Ce.value):[se.value];c={source:lt,values:ye}}function Ke(se){if(!c||ve())return;const{source:ye,values:Ce}=c;c=null;const Le=ae.findIndex(Ze=>m(Ze.value,se.value));if(Le!==-1){if(ye===lt){if(!M)return;We(Ce,Le),qe(),xe();return}if(w){const Ze=ye.__removeValues(Ce);if(Ze.length===0)return;ae.splice(Le,0,...Ze);for(const Ve of Ze)de.add(h(Ve.value));He(),qe(),xe()}}}function We(se,ye){const Ce=new Set(se.map(h)),Le=ae.filter(Qe=>Ce.has(h(Qe.value)));if(Le.length===0)return;const Ze=ae[ye]?h(ae[ye].value):null,Ve=ae.filter(Qe=>!Ce.has(h(Qe.value)));let Be=Ze==null?Ve.length:Ve.findIndex(Qe=>h(Qe.value)===Ze);Be===-1&&(Be=Ve.length),Ve.splice(Be,0,...Le),ae=Ve}function fe(se){const ye=new Set(se.map(h)),Ce=ae.filter(Le=>ye.has(h(Le.value)));if(Ce.length===0)return Ce;ae=ae.filter(Le=>!ye.has(h(Le.value)));for(const Le of Ce)de.delete(h(Le.value));return He(),qe(),xe(),Ce}function Me(se){se.length!==0&&(ae=ae.concat(se),He(),qe(),xe())}function _e(){return!w||!f?null:d(f).get(w)||null}function Ee(){const se=_e();if(!se||ve())return;const ye=ae.filter(Le=>de.has(h(Le.value))).map(Le=>Le.value);if(ye.length===0)return;const Ce=fe(ye);se.__receiveItems(Ce)}function ot(){const se=_e();if(!se||ve()||ae.length===0)return;const ye=fe(ae.map(Ce=>Ce.value));se.__receiveItems(ye)}function Ye(se){if(ve())return;const ye=[];for(let Ce=0;Ce<ae.length;Ce++)de.has(h(ae[Ce].value))&&ye.push(Ce);if(ye.length!==0){if(se<0)for(const Ce of ye)Ce===0||de.has(h(ae[Ce-1].value))||([ae[Ce-1],ae[Ce]]=[ae[Ce],ae[Ce-1]]);else for(let Ce=ye.length-1;Ce>=0;Ce--){const Le=ye[Ce];Le===ae.length-1||de.has(h(ae[Le+1].value))||([ae[Le+1],ae[Le]]=[ae[Le],ae[Le+1]])}He(),qe(),xe()}}function qe(){for(;te.firstChild;)te.removeChild(te.firstChild);te.style.height="",te.style.position="",G?pt():rt(),ct(),tt(),$&&dt()}function pt(){let se=0;for(const ye of Se(_))if(ye.group!=null){const Ce=f.createElement("div");Ce.setAttribute("role","group");const Le=f.createElement("div");Le.className="lat-listbox__group-header",Le.id=`${be}-grp-${se}`,Le.textContent=ye.group,Ce.setAttribute("aria-labelledby",Le.id),Ce.appendChild(Le);for(const Ze of ye.items)Ce.appendChild(Te(Ze,se)),se+=1;te.appendChild(Ce)}else for(const Ce of ye.items)te.appendChild(Te(Ce,se)),se+=1}function rt(){if(te.style.position="relative",Q=x.clientHeight||Q||240,_.length===0){te.style.height="0px";return}for(let Be=0;Be<_.length;Be++)L[Be]==null&&(L[Be]=he(_[Be]));Y.length=0,Y[0]=0;for(let Be=1;Be<=_.length;Be++)Y[Be]=Y[Be-1]+L[Be-1];te.style.height=`${Y[_.length]}px`;const se=x.scrollTop,ye=se,Ce=se+Q;let Le=0;for(;Le<_.length-1&&Y[Le+1]<ye;)Le+=1;let Ze=Le;for(;Ze<_.length&&Y[Ze]<Ce;)Ze+=1;for(Ze=Math.min(_.length,Ze+2);te.firstChild;)te.removeChild(te.firstChild);for(let Be=Le;Be<Ze;Be++){const Qe=Te(_[Be],Be);Qe.style.position="absolute",Qe.style.insetInlineStart="0",Qe.style.insetInlineEnd="0",Qe.style.top="0",Qe.style.transform=`translateY(${Y[Be]}px)`,te.appendChild(Qe)}let Ve=!1;for(let Be=Le;Be<Ze;Be++){const Qe=f.getElementById(De(Be));if(!Qe)continue;const xt=Qe.getBoundingClientRect().height;xt>0&&Math.abs(xt-L[Be])>.5&&(L[Be]=xt,Ve=!0)}Ve&&rt()}function ut(){if(re<0||G)return;const se=Y[re]||0,ye=se+(L[re]||he(_[re]));se<x.scrollTop?x.scrollTop=se:ye>x.scrollTop+Q&&(x.scrollTop=ye-Q),qe()}function ct(){_.length===0?(ue.hidden=!1,ue.textContent=T("form.listbox.empty")):(ue.hidden=!0,ue.textContent="")}function at(){for(const se of te.querySelectorAll('.lat-listbox__option[role="option"]')){const ye=se.id||"",Ce=Number(ye.slice(`${be}-opt-`.length));if(Number.isNaN(Ce))continue;const Le=_[Ce];if(!Le)continue;const Ze=de.has(h(Le.value));se.setAttribute("aria-selected",Ze?"true":"false");const Ve=se.querySelector(".lat-listbox__checkbox");Ve&&(Ve.checked=Ze)}tt(),$&&dt()}function tt(){if(!ee)return;const se=_.filter(Ce=>!Ce.disabled),ye=se.filter(Ce=>de.has(h(Ce.value))).length;ee.checked=se.length>0&&ye===se.length,ee.indeterminate=ye>0&&ye<se.length,ee.disabled=ve()||se.length===0}function dt(){const se=de.size>0,ye=ve();ie&&(ie.disabled=ye||!se),q&&(q.disabled=ye||!se),E&&(E.disabled=ye||!se),H&&(H.disabled=ye||ae.length===0)}function mt(se){re=se,se>=0&&se<_.length?x.setAttribute("aria-activedescendant",De(se)):x.removeAttribute("aria-activedescendant")}function nt(se){for(let ye=Math.max(0,se);ye<_.length;ye++)if(!_[ye].disabled)return ye;return-1}function jt(se){for(let ye=Math.min(_.length-1,se);ye>=0;ye--)if(!_[ye].disabled)return ye;return-1}function bt(se,ye={}){const Ce=_[se];if(!Ce||Ce.disabled||ve())return;mt(se);const Le=new Set(de);if(V==="single")de.clear(),de.add(h(Ce.value)),F=se;else if(V==="checkbox")de.has(h(Ce.value))?de.delete(h(Ce.value)):de.add(h(Ce.value)),F=se;else if(ye.shift&&F!=null){const Ze=Math.min(F,se),Ve=Math.max(F,se);de.clear();for(let Be=Ze;Be<=Ve;Be++)_[Be].disabled||de.add(h(_[Be].value))}else ye.ctrl||ye.touch?(de.has(h(Ce.value))?de.delete(h(Ce.value)):de.add(h(Ce.value)),F=se):(de.clear(),de.add(h(Ce.value)),F=se);ut(),at(),ft(Le,de)||xe()}function ft(se,ye){if(se.size!==ye.size)return!1;for(const Ce of se)if(!ye.has(Ce))return!1;return!0}function st(){if(ve())return;const se=!Ie();for(const ye of _)ye.disabled||(se?de.add(h(ye.value)):de.delete(h(ye.value)));at(),xe()}function gt(se,ye){if(_.length===0)return;const Ce=re<0?se>0?-1:_.length:re,Le=se>0?nt(Ce+1):jt(Ce-1);if(Le!==-1){if(mt(Le),ut(),V==="single"){bt(Le,{});return}ye&&D&&(F==null&&(F=Le),bt(Le,{shift:!0}))}}function Ct(se){ge&&clearTimeout(ge),me+=se.toLowerCase(),ge=setTimeout(()=>{me="",ge=null},t);const ye=re>-1?re+1:0;let Ce=-1;for(let Le=ye;Le<_.length;Le++)if(!_[Le].disabled&&_[Le].label.toLowerCase().startsWith(me)){Ce=Le;break}if(Ce===-1){for(let Le=0;Le<ye;Le++)if(!_[Le].disabled&&_[Le].label.toLowerCase().startsWith(me)){Ce=Le;break}}Ce!==-1&&(mt(Ce),ut())}function Pt(se){if(se.altKey&&se.key==="ArrowUp"&&M)se.preventDefault(),Ye(-1);else if(se.altKey&&se.key==="ArrowDown"&&M)se.preventDefault(),Ye(1);else if(se.key==="ArrowDown")se.preventDefault(),gt(1,se.shiftKey);else if(se.key==="ArrowUp")se.preventDefault(),gt(-1,se.shiftKey);else if(se.key==="Home"){se.preventDefault();const ye=nt(0);ye!==-1&&(mt(ye),ut(),V==="single"&&bt(ye,{}))}else if(se.key==="End"){se.preventDefault();const ye=jt(_.length-1);ye!==-1&&(mt(ye),ut(),V==="single"&&bt(ye,{}))}else if(se.key===" ")se.preventDefault(),re>=0&&bt(re,{ctrl:D});else if((se.ctrlKey||se.metaKey)&&(se.key==="a"||se.key==="A")&&D){if(se.preventDefault(),ve())return;for(const ye of _)ye.disabled||de.add(h(ye.value));at(),xe()}else se.key.length===1&&!se.ctrlKey&&!se.metaKey&&!se.altKey&&Ct(se.key)}function ht(){if(o=le.value||"",typeof l.load!="function"){He(),qe();return}$e&&clearTimeout($e),$e=setTimeout(()=>_t(),v)}function _t(){if(K||typeof l.load!="function")return;ke=!0,Pe+=1;const se=Pe;je&&je.abort(),je=typeof AbortController<"u"?new AbortController:null;let ye;try{ye=l.load({search:o,page:0,signal:je?je.signal:void 0})}catch{ke=!1;return}const Ce=Le=>{if(K||se!==Pe)return;ke=!1;const Ze=y(Le);ae=Ze.items.map(p),J=Ze.hasMore,O=1,He(),qe()};ye&&typeof ye.then=="function"?ye.then(Ce,()=>{ke=!1}):Ce(ye)}oe(x,"keydown",Pt),oe(x,"scroll",()=>{G||rt()}),le&&oe(le,"input",ht),ie&&oe(ie,"click",()=>Ye(-1)),q&&oe(q,"click",()=>Ye(1)),E&&oe(E,"click",()=>Ee()),H&&oe(H,"click",()=>ot()),ee&&oe(ee,"change",()=>st()),oe(x,"dragover",se=>{c&&se.preventDefault()}),oe(x,"drop",se=>{if(se.preventDefault(),!c||c.source===lt||!w)return;const ye=c.source.__removeValues(c.values);c=null,Me(ye)});function it(se){if(de.clear(),V==="single")se!=null&&de.add(h(se));else if((M||w)&&Array.isArray(se)){const ye=new Map(ae.map(Ce=>[h(Ce.value),Ce]));ae=se.map(Ce=>ye.get(h(Ce))||p(Ce));for(const Ce of ae)de.add(h(Ce.value))}else{const ye=Array.isArray(se)?se:se==null?[]:[se];for(const Ce of ye)de.add(h(Ce))}He(),qe()}typeof l.load!="function"&&(ae=(Array.isArray(l.options)?l.options:[]).map(p)),He(),it(l.value),typeof l.load=="function"&&_t();const lt={el:r,root:Ae,viewport:x,getValue:we,setValue(se){return it(se),lt},focus(){return x.focus(),lt},blur(){return x.blur(),lt},setDisabled(se){l.disabled=se,x.setAttribute("aria-disabled",se?"true":"false"),le&&(le.disabled=se),tt(),dt()},setReadOnly(se){l.readOnly=se,se?x.setAttribute("aria-readonly","true"):x.removeAttribute("aria-readonly"),tt(),dt()},__removeValues:fe,__receiveItems:Me,destroy(){K=!0,ge&&clearTimeout(ge),$e&&clearTimeout($e),je&&je.abort();for(const se of pe.splice(0))se();if(f&&I){const se=d(f);se.get(I)===lt&&se.delete(I)}for(;Ae.firstChild;)Ae.removeChild(Ae.firstChild)}};return f&&I&&d(f).set(I,lt),qe(),r.appendChild(Ae),r.__listbox=lt,lt}B("listbox",{kind:"field",build(r,l){const f=r.props||{},T=l.doc.createElement("div");return i(T,{options:r.options,load:f.load,selection:f.selection,value:r.value,filter:f.filter===!0,groupBy:f.groupBy===!0,sort:f.sort,render:f.render,reorder:f.reorder===!0,connect:f.connect,name:r.name,min:r.min,max:r.max,height:f.height,rows:r.rows,disabled:r.disabled===!0,readOnly:r.readOnly===!0,ariaLabel:r.label,t:l.t,doc:l.doc,inForm:!0}),T.__listboxT=l.t,l.disposers.push(()=>{T.__listbox&&T.__listbox.destroy()}),T},read(r){return r.__listbox?r.__listbox.getValue():null},write(r,l){r.__listbox&&r.__listbox.setValue(l)},validate(r,l,f){if(!r.__listbox)return null;const V=r.__listboxT||X,D=Array.isArray(f)?f.length:f==null?0:1,M=l.min!=null&&Number.isFinite(Number(l.min))?Number(l.min):null,w=l.max!=null&&Number.isFinite(Number(l.max))?Number(l.max):null;return M!=null&&D<M?{code:"min",message:V("form.listbox.min",{min:String(M)})}:w!=null&&D>w?{code:"max",message:V("form.listbox.max",{max:String(w)})}:null},state(r,l){r.__listbox&&(r.__listbox.setDisabled(l.disabled===!0),r.__listbox.setReadOnly(l.readOnly===!0))},focus(r){r.__listbox&&r.__listbox.focus()},blur(r){r.__listbox&&r.__listbox.blur()}})}),Ne("packages/modules/form/controls/options.js",function(N,Z){"use strict";Object.defineProperty(N,"normalizeOptions",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"resolveChoiceLayout",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"choiceLayoutCss",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return P}});const B=Z("packages/modules/form/styles.js").NS;function S(A){return Array.isArray(A)?A.map(j=>{if(typeof j=="string")return{value:j,label:j};if(j&&typeof j=="object"){const k=j.value==null?"":String(j.value),g=j.label!=null?String(j.label):j.text!=null?String(j.text):k;return{value:k,label:g}}return{value:"",label:""}}):[]}function X(A){const j=A&&A.props?A.props:{},k=A&&A.orientation!=null?A.orientation:j.orientation;let g=A&&A.columns!=null?A.columns:j.columns;return g=typeof g=="number"&&Number.isFinite(g)&&g>=1?Math.floor(g):0,g>0?{orientation:"vertical",columns:g}:{orientation:k==="horizontal"?"horizontal":"vertical",columns:0}}function C(){return`
1862
+ .${B}__radiogroup--horizontal,
1863
+ .${B}__checkboxgroup--horizontal{
1834
1864
  flex-direction:row; flex-wrap:wrap; align-items:center;
1835
1865
  gap:calc(var(--lattice-space) * 1.5);
1836
1866
  }
1837
- .${R}__radiogroup--columns,
1838
- .${R}__checkboxgroup--columns{
1867
+ .${B}__radiogroup--columns,
1868
+ .${B}__checkboxgroup--columns{
1839
1869
  display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
1840
1870
  gap:var(--lattice-space);
1841
1871
  }
1842
- `.trim()}const P="data-lattice-form-choice-styles";function j(C){const S=C&&C.documentElement;if(!S||S.getAttribute(P))return;S.setAttribute(P,"1");const x=C.createElement("style");x.textContent=k(),(C.head||C.body||S).appendChild(x)}}),Ne("packages/modules/form/controls/radiogroup.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/options.js"),q=$.normalizeOptions,k=$.resolveChoiceLayout,P=$.injectChoiceLayoutStyles,j=Z("packages/modules/form/state.js"),C=j.applyBooleanInputState,S=j.guardBooleanInput;R("radiogroup",{kind:"field",build(x,h){const n=h.doc.createElement("div");n.className="lat-form__radiogroup",n.setAttribute("role","radiogroup"),x.label!=null&&x.label!==""&&n.setAttribute("aria-label",String(x.label));const c=k(x);c.columns>0?(P(h.doc),n.classList.add("lat-form__radiogroup--columns"),n.style.setProperty("--lat-form-columns",String(c.columns))):c.orientation==="horizontal"&&(P(h.doc),n.classList.add("lat-form__radiogroup--horizontal")),n.setAttribute("aria-orientation",c.orientation);const b=[];for(const _ of q(x.options)){const t=h.doc.createElement("label");t.className="lat-form__choice";const a=h.doc.createElement("input");a.type="radio",x.name&&(a.name=x.name),a.value=_.value,a.checked=x.value!=null&&String(x.value)===_.value,S(a),t.appendChild(a);const i=h.doc.createElement("span");i.textContent=_.label,t.appendChild(i),n.appendChild(t),b.push(a)}return n.__radios=b,n},read(x){const h=x.__radios.find(n=>n.checked);return h?h.value:null},write(x,h){const n=h==null?null:String(h);for(const c of x.__radios)c.checked=n!==null&&c.value===n},state(x,h){const n=h.readOnly===!0;for(const c of x.__radios)C(c,h.disabled===!0,n);n?x.setAttribute("aria-readonly","true"):x.removeAttribute("aria-readonly")},focus(x){const h=x.__radios.find(n=>!n.disabled);h&&h.focus()}})}),Ne("packages/modules/form/controls/checkboxgroup.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/options.js"),q=$.normalizeOptions,k=$.resolveChoiceLayout,P=$.injectChoiceLayoutStyles,j=Z("packages/modules/form/state.js"),C=j.applyBooleanInputState,S=j.guardBooleanInput;R("checkboxgroup",{kind:"field",build(x,h){const n=h.doc.createElement("div");n.className="lat-form__checkboxgroup",n.setAttribute("role","group"),x.label!=null&&x.label!==""&&n.setAttribute("aria-label",String(x.label));const c=k(x);c.columns>0?(P(h.doc),n.classList.add("lat-form__checkboxgroup--columns"),n.style.setProperty("--lat-form-columns",String(c.columns))):c.orientation==="horizontal"&&(P(h.doc),n.classList.add("lat-form__checkboxgroup--horizontal"));const b=[],_=Array.isArray(x.value)?x.value.map(String):[];for(const t of q(x.options)){const a=h.doc.createElement("label");a.className="lat-form__choice";const i=h.doc.createElement("input");i.type="checkbox",x.name&&(i.name=x.name),i.value=t.value,i.checked=_.includes(t.value),S(i),a.appendChild(i);const f=h.doc.createElement("span");f.textContent=t.label,a.appendChild(f),n.appendChild(a),b.push(i)}return n.__boxes=b,n},read(x){return x.__boxes.filter(h=>h.checked).map(h=>h.value)},write(x,h){const n=Array.isArray(h)?h.map(String):[];for(const c of x.__boxes)c.checked=n.includes(c.value)},state(x,h){const n=h.readOnly===!0;for(const c of x.__boxes)C(c,h.disabled===!0,n);n?x.setAttribute("aria-readonly","true"):x.removeAttribute("aria-readonly")},focus(x){const h=x.__boxes.find(n=>!n.disabled);h&&h.focus()}})}),Ne("packages/modules/form/controls/toggle.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/state.js"),q=$.applyBooleanInputState,k=$.guardBooleanInput,P=Object.freeze(["small","default","large"]),j=Object.freeze(["round","square","slim"]),C=Object.freeze(["inside","before","after"]);function S(t){return P.includes(t)?t:"default"}function x(t){return j.includes(t)?t:"round"}function h(t){return C.includes(t)?t:"inside"}function n(t){return t==null?"":String(t)}function c(t){return t.__latToggle?t.__latToggle.input:t}function b(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function _(t,a,i){const f=a&&a.defaultView,v=f&&f.Event,m=v?new v(i,{bubbles:!0}):{type:i,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(m)}R("toggle",{kind:"toggle",build(t,a){const i=t.props||{},f=a.doc.createElement("input");f.type="checkbox",f.className="lat-form__toggle",f.setAttribute("role","switch"),t.name&&(f.name=t.name),f.checked=t.value===!0,k(f),i.size!=null&&f.setAttribute("data-size",S(i.size)),i.variant!=null&&f.setAttribute("data-variant",x(i.variant));const v=n(i.onLabel),m=n(i.offLabel);if(v===""&&m==="")return f;const g=a.doc.createElement("span");g.className="lat-form__toggle-field",g.setAttribute("data-label-position",h(i.labelPosition)),g.appendChild(f);const H=a.doc.createElement("span");H.className="lat-form__toggle-label",g.appendChild(H);const u={input:f,label:H,onLabel:v,offLabel:m};g.__latToggle=u,b(u),f.addEventListener("change",()=>b(u));let s=!1;return g.addEventListener("focusin",()=>{s||(s=!0,_(g,a.doc,"focus"))}),g.addEventListener("focusout",o=>{g.contains(o.relatedTarget)||(s=!1,_(g,a.doc,"blur"))}),g},read(t){return c(t).checked},write(t,a){const i=c(t);i.checked=a===!0,b(t.__latToggle)},state(t,a){q(c(t),a.disabled===!0,a.readOnly===!0)},focus(t){const a=c(t);typeof a.focus=="function"&&a.focus()},blur(t){const a=c(t);typeof a.blur=="function"&&a.blur()}})}),Ne("packages/modules/form/controls/date-parse.js",function(N,Z){"use strict";Object.defineProperty(N,"parseTypedDate",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"splitTypedTime",{enumerable:!0,get:function(){return h}});const e=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function R(n){return n.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function $(n,c,b){if(!Number.isInteger(n)||!Number.isInteger(c)||!Number.isInteger(b)||n<1||n>9999||c<1||c>12||b<1)return null;const _=c===2?q(n)?29:28:[4,6,9,11].includes(c)?30:31;return b>_?null:`${String(n).padStart(4,"0")}-${String(c).padStart(2,"0")}-${String(b).padStart(2,"0")}`}function q(n){return n%4===0&&n%100!==0||n%400===0}function k(n){const c=Number(n);return n.length<=2?2e3+c:c}function P(n){const c=new Map;for(let b=1;b<=12;b++){const _=new Date(2001,b-1,15);for(const t of["long","short"]){const a=new Intl.DateTimeFormat(n,{month:t}).format(_),i=new Intl.DateTimeFormat(n,{day:"numeric",month:t}).formatToParts(_).find(f=>f.type==="month");for(const f of[a,i&&i.value]){if(!f)continue;const v=f.toLowerCase();c.set(v,b),v.endsWith(".")&&c.set(v.slice(0,-1),b)}}}return c}function j(n,c,b){const _=new Intl.DateTimeFormat(c,b).formatToParts(new Date(2001,10,22)),t=P(c),a=[];let i="^";for(const g of _)if(g.type==="day")a.push("d"),i+="(\\d{1,2})";else if(g.type==="year"||g.type==="relatedYear")a.push("y"),i+="(\\d{4}|\\d{2})";else if(g.type==="month")if(a.push("m"),/^\d+$/.test(g.value))i+="(\\d{1,2})";else{const H=[...t.keys()].sort((u,s)=>s.length-u.length).map(R);i+=`(${H.join("|")})`}else if(g.type==="literal")i+=g.value.trim()===""?"\\s+":`\\s*${R(g.value.trim())}\\s*`;else if(g.type==="weekday")i+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const f=new RegExp(`${i}$`,"iu").exec(n);if(!f||a.length!==3)return null;const v={};a.forEach((g,H)=>{v[g]=f[H+1]});const m=/^\d+$/.test(v.m)?Number(v.m):t.get(v.m.toLowerCase());return $(k(v.y),m,Number(v.d))}function C(n,c){const _=new Intl.DateTimeFormat(c,{day:"numeric",month:"numeric",year:"numeric"}).formatToParts(new Date(2001,10,22)).filter(f=>f.type==="day"||f.type==="month"||f.type==="year"||f.type==="relatedYear").map(f=>f.type==="day"?"d":f.type==="month"?"m":"y");if(_.length!==3)return null;const t=_.map(f=>f==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),a=new RegExp(`^${t}\\.?$`).exec(n);if(!a)return null;const i={};return _.forEach((f,v)=>{i[f]=a[v+1]}),$(k(i.y),Number(i.m),Number(i.d))}function S(n){const c=_=>{const t=_.toLowerCase().replace(/\.$/,"");return e.findIndex(i=>i===t||i.slice(0,3)===t||t==="sept"&&i==="september")+1};let b=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(n);return b?c(b[2])?$(Number(b[3]),c(b[2]),Number(b[1])):null:(b=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(n),b&&c(b[1])?$(Number(b[3]),c(b[1]),Number(b[2])):null)}function x(n,c,b){const _=String(n??"").trim().replace(/\s+/g," ");if(!_)return null;const t=b||c&&c.locale||void 0,a={dateStyle:"medium"},i=[()=>j(_,t,a),()=>C(_,t),()=>{const f=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(_);return f?$(Number(f[1]),Number(f[2]),Number(f[3])):null},()=>S(_)];for(const f of i)try{const v=f();if(v)return v}catch{}return null}function h(n){const c=String(n??"").trim(),b=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(c);if(!b)return{date:c,time:null};let _=Number(b[1]);const t=Number(b[2]);if(b[3]){const a=b[3].toLowerCase()==="p";if(_<1||_>12)return{date:c,time:null};_=_%12+(a?12:0)}return _>23||t>59?{date:c,time:null}:{date:c.slice(0,b.index).replace(/[,\s]+$/,""),time:{h:_,mi:t}}}}),Ne("packages/modules/form/controls/date-shared.js",function(N,Z){"use strict";Object.defineProperty(N,"pad",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"echoKey",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"modeOf",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"daysInMonth",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"fieldsOfDate",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"parseValue",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"isoOf",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"displayOf",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"withinRange",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"weekdayName",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"monthTitle",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"yearTitle",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"dispatchChange",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"is12Hour",{enumerable:!0,get:function(){return _}}),Object.defineProperty(N,"dayPeriods",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"to12Hour",{enumerable:!0,get:function(){return a}}),Object.defineProperty(N,"to24Hour",{enumerable:!0,get:function(){return i}}),Object.defineProperty(N,"parseDay",{enumerable:!0,get:function(){return f}}),Object.defineProperty(N,"dayISO",{enumerable:!0,get:function(){return v}}),Object.defineProperty(N,"dayNumber",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"dayNumberOf",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"dayOfNumber",{enumerable:!0,get:function(){return H}}),Object.defineProperty(N,"parseMonth",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"monthISO",{enumerable:!0,get:function(){return s}}),Object.defineProperty(N,"monthIndex",{enumerable:!0,get:function(){return o}}),Object.defineProperty(N,"monthOfIndex",{enumerable:!0,get:function(){return r}}),Object.defineProperty(N,"isoWeek",{enumerable:!0,get:function(){return l}}),Object.defineProperty(N,"focusedNavIndex",{enumerable:!0,get:function(){return d}}),Object.defineProperty(N,"restoreNavFocus",{enumerable:!0,get:function(){return T}}),Object.defineProperty(N,"afterFocusSettles",{enumerable:!0,get:function(){return U}});const e=Z("packages/modules/form/controls/date-parse.js");Object.defineProperty(N,"parseTypedDate",{enumerable:!0,get:function(){return e.parseTypedDate}}),Object.defineProperty(N,"splitTypedTime",{enumerable:!0,get:function(){return e.splitTypedTime}});function R(z){return String(z).padStart(2,"0")}function $(z){return z}function q(z){return z.mode==="date-time"||z.mode==="time"?z.mode:"date"}function k(z,L){return new Date(z,L,0).getDate()}function P(z,L){if(!(L instanceof Date)||Number.isNaN(L.getTime()))return null;const y={y:L.getFullYear(),mo:L.getMonth()+1,d:L.getDate(),h:L.getHours(),mi:L.getMinutes()},M=z.timeZone;if(!M)return y;try{const W=new Intl.DateTimeFormat("en-US",{timeZone:M,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(L),B={y:0,mo:1,d:1,h:0,mi:0};for(const ne of W)ne.type==="year"?B.y=Number(ne.value):ne.type==="month"?B.mo=Number(ne.value):ne.type==="day"?B.d=Number(ne.value):ne.type==="hour"?B.h=Number(ne.value)%24:ne.type==="minute"&&(B.mi=Number(ne.value));return B}catch{return y}}function j(z,L){if(L==null||L==="")return null;if(typeof L=="number")return P(z,new Date(L));if(L instanceof Date)return P(z,L);if(typeof L=="string"){const y=L.trim();if(q(z)==="time"){const W=/^(\d{1,2}):(\d{2})/.exec(y);return W?{y:null,mo:null,d:null,h:Number(W[1]),mi:Number(W[2])}:null}const M=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(y);return M?{y:Number(M[1]),mo:Number(M[2]),d:Number(M[3]),h:M[4]!=null?Number(M[4]):0,mi:M[5]!=null?Number(M[5]):0}:null}return null}function C(z,L){if(!L)return null;if(q(z)==="time")return`${R(L.h)}:${R(L.mi)}`;const y=`${R(L.y)}-${R(L.mo)}-${R(L.d)}`;return q(z)==="date"?y:`${y}T${R(L.h)}:${R(L.mi)}`}function S(z,L){if(!L)return"";const y=q(z);if(y==="time")return`${R(L.h)}:${R(L.mi)}`;const M=z.locale||void 0,W={dateStyle:"medium"};return y==="date-time"&&(W.timeStyle="short"),new Intl.DateTimeFormat(M,W).format(new Date(L.y,L.mo-1,L.d,L.h,L.mi))}function x(z,L){return L==null?!0:!(z.min!=null&&L<String(z.min)||z.max!=null&&L>String(z.max))}function h(z,L){return new Intl.DateTimeFormat(z.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+L))}function n(z,L){return new Intl.DateTimeFormat(z.locale||void 0,{month:"long",year:"numeric"}).format(new Date(L.y,L.mo-1,1))}function c(z){return String(z.y)}function b(z){const L=z.ownerDocument&&z.ownerDocument.defaultView,y=L&&typeof L.Event=="function"?L.Event:null;z.dispatchEvent(y?new y("change",{bubbles:!0}):{type:"change",bubbles:!0})}function _(z){try{const L=new Intl.DateTimeFormat(z.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return L==="h11"||L==="h12"}catch{return!1}}function t(z){try{const L=new Intl.DateTimeFormat(z.locale||void 0,{hour:"numeric",hour12:!0}),y=L.formatToParts(new Date(2021,0,1,9)).find(W=>W.type==="dayPeriod"),M=L.formatToParts(new Date(2021,0,1,15)).find(W=>W.type==="dayPeriod");if(y&&M)return{am:y.value,pm:M.value}}catch{}return null}function a(z){const L=z%12;return L===0?12:L}function i(z,L){return L?z===12?12:z+12:z===12?0:z}function f(z){if(typeof z!="string")return null;const L=/^(\d{4})-(\d{2})-(\d{2})$/.exec(z.trim());if(!L)return null;const y={y:Number(L[1]),mo:Number(L[2]),d:Number(L[3])};return y.mo<1||y.mo>12||y.d<1||y.d>k(y.y,y.mo)?null:y}function v(z,L,y){return`${R(z)}-${R(L)}-${R(y)}`}function m(z,L,y){return Date.UTC(z,L-1,y)/864e5}function g(z){const L=f(z);return L?m(L.y,L.mo,L.d):NaN}function H(z){const L=new Date(z*864e5);return{y:L.getUTCFullYear(),mo:L.getUTCMonth()+1,d:L.getUTCDate()}}function u(z){if(typeof z!="string")return null;const L=/^(\d{4})-(\d{2})$/.exec(z.trim());if(!L)return null;const y={y:Number(L[1]),mo:Number(L[2])};return y.mo<1||y.mo>12?null:y}function s(z,L){return`${R(z)}-${R(L)}`}function o(z,L){return z*12+(L-1)}function r(z){return{y:Math.floor(z/12),mo:z%12+1}}function l(z,L,y){const M=new Date(Date.UTC(z,L-1,y)),W=M.getUTCDay()||7;M.setUTCDate(M.getUTCDate()+4-W);const B=new Date(Date.UTC(M.getUTCFullYear(),0,1));return Math.ceil(((M-B)/864e5+1)/7)}function d(z,L){const y=z.ownerDocument,M=y?y.activeElement:null;return!M||typeof z.contains!="function"||!z.contains(M)?-1:Array.prototype.indexOf.call(z.querySelectorAll(`.${L}`),M)}function T(z,L,y){if(y<0)return;const M=z.querySelectorAll(`.${L}`)[y];M&&typeof M.focus=="function"&&M.focus()}function U(z,L){const y=z&&z.defaultView;(y&&typeof y.setTimeout=="function"?y.setTimeout.bind(y):setTimeout)(L,0)}}),Ne("packages/modules/form/controls/date-typed.js",function(N,Z){"use strict";Object.defineProperty(N,"setTypedError",{enumerable:!0,get:function(){return e}});function e(R,$){let q=R.__typedError;if($==null){q&&(q.hidden=!0),R.__input&&R.__input.removeAttribute("aria-invalid");return}q||(q=R.ownerDocument.createElement("div"),q.className="lat-form__error lat-form__typed-error",q.setAttribute("role","alert"),R.__typedError=q,R.appendChild(q)),q.textContent=$,q.hidden=!1,R.__input&&R.__input.setAttribute("aria-invalid","true")}}),Ne("packages/modules/form/controls/datepicker-draft.js",function(N,Z){"use strict";Object.defineProperty(N,"isDraftMode",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"getDraft",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"readDraftClock",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"pickDraftDay",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"commitDraft",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"dropDraft",{enumerable:!0,get:function(){return h}});const e=Z("packages/modules/form/controls/date-shared.js"),R=e.modeOf,$=e.displayOf,q=e.to24Hour,k=e.isoOf;function P(n){return R(n.__item)==="date-time"}function j(n){if(!n.__draft){const c=n.__fields;n.__draft=c?{y:c.y,mo:c.mo,d:c.d,h:c.h,mi:c.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return n.__draft}function C(n){const c=j(n);if(!n.__hour)return;let b=Number(n.__hour.value)||0;const _=n.__minute&&Number(n.__minute.value)||0;n.__ampm&&(b=q(b,n.__pm===!0)),c.h=b,c.mi=_}function S(n,c,b,_,t){C(n);const a=j(n);a.y=c,a.mo=b,a.d=_,n.__cursor=_,n.__input.value=$(n.__item,a),t(n)}function x(n,c){C(n);const b=j(n);if(b.d==null)return;const _={y:b.y,mo:b.mo,d:b.d,h:b.h,mi:b.mi};k(n.__item,_)!==k(n.__item,n.__fields)&&c(n,_)}function h(n){const c=n.__draft;n.__draft=null,c&&c.d!=null&&P(n)&&(n.__input.value=$(n.__item,n.__fields))}}),Ne("packages/modules/form/controls/datepicker.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/field-icon.js"),q=$.makeFieldIcon,k=$.injectFieldIconStyles,P=Z("packages/modules/form/controls/date-shared.js"),j=P.pad,C=P.echoKey,S=P.modeOf,x=P.daysInMonth,h=P.parseValue,n=P.isoOf,c=P.displayOf,b=P.withinRange,_=P.weekdayName,t=P.monthTitle,a=P.dispatchChange,i=P.is12Hour,f=P.dayPeriods,v=P.to12Hour,m=P.to24Hour,g=P.focusedNavIndex,H=P.restoreNavFocus,u=P.afterFocusSettles,s=P.parseTypedDate,o=P.splitTypedTime,l=Z("packages/modules/form/controls/date-typed.js").setTypedError,T=Z("packages/modules/form/controls/popup-layer.js").openInLayer,U=Z("packages/modules/form/controls/datepicker-draft.js"),z=U.isDraftMode,L=U.getDraft,y=U.pickDraftDay,M=U.readDraftClock,W=U.commitDraft,B=U.dropDraft,ne=Object.freeze(["date","date-time","time"]),Ae="lat-form__datepicker-popup--above";function we(D,J){D.__fields=J,D.__input.value=c(D.__item,J),a(D)}function ce(D,J){const ae=D.__item;if(S(ae)==="time")return h(ae,J);const{date:V,time:se}=o(J),X=s(V,ae);if(!X)return null;const[p,I,Q]=X.split("-").map(Number),re=D.__fields,me=se||(S(ae)==="date-time"&&re?{h:re.h,mi:re.mi}:{h:0,mi:0});return{y:p,mo:I,d:Q,h:me.h,mi:me.mi}}function A(D,J){let{y:ae,mo:V}=D.__view,se=D.__cursor+J;for(;se<1;)V-=1,V<1&&(V=12,ae-=1),se+=x(ae,V);let X=x(ae,V);for(;se>X;)se-=X,V+=1,V>12&&(V=1,ae+=1),X=x(ae,V);D.__view={y:ae,mo:V},D.__cursor=se,oe(D)}function oe(D){const J=D.__item,ae=D.ownerDocument,V=D.__popup,se=D.__view,X=S(J),p=D.__fields,I=g(V,"lat-form__datepicker-nav"),Q=g(V,"lat-form__datepicker-day");for(;V.firstChild;)V.removeChild(V.firstChild);if(X!=="time"){const re=ae.createElement("div");re.className="lat-form__datepicker-head";const me=ae.createElement("button");me.type="button",me.className="lat-form__datepicker-nav",me.setAttribute("aria-label",D.__t("form.datepicker.prev")),me.textContent="‹",me.addEventListener("click",()=>{te(D,-1)});const be=ae.createElement("span");be.className="lat-form__datepicker-title",be.textContent=t(J,se);const ke=ae.createElement("button");ke.type="button",ke.className="lat-form__datepicker-nav",ke.setAttribute("aria-label",D.__t("form.datepicker.next")),ke.textContent="›",ke.addEventListener("click",()=>{te(D,1)}),re.appendChild(me),re.appendChild(be),re.appendChild(ke),V.appendChild(re);const Le=ae.createElement("div");Le.className="lat-form__datepicker-weekdays";for(let ee=0;ee<7;ee+=1){const de=ae.createElement("span");de.textContent=_(J,ee),Le.appendChild(de)}V.appendChild(Le);const Se=ae.createElement("div");Se.className="lat-form__datepicker-grid",Se.setAttribute("role","grid"),Se.tabIndex=0,D.__grid=Se;const je=new Date(se.y,se.mo-1,1).getDay();for(let ee=0;ee<je;ee+=1){const de=ae.createElement("span");de.className="lat-form__datepicker-blank",Se.appendChild(de)}const O=x(se.y,se.mo);for(let ee=1;ee<=O;ee+=1){const de=ae.createElement("button");de.type="button",de.className="lat-form__datepicker-day",de.setAttribute("role","gridcell"),de.textContent=String(ee);const K=n(J,{y:se.y,mo:se.mo,d:ee,h:0,mi:0});b(J,K)||(de.disabled=!0),p&&p.y===se.y&&p.mo===se.mo&&p.d===ee&&de.classList.add("is-selected"),D.__cursor===ee&&de.classList.add("is-focus"),de.addEventListener("click",()=>{if(z(D)){y(D,se.y,se.mo,ee,oe);return}const pe={y:se.y,mo:se.mo,d:ee,h:p?p.h:0,mi:p?p.mi:0};X==="date"?(D.__cursor=ee,we(D,pe),ie(D)):(D.__cursor=ee,D.__fields=pe,oe(D))}),Se.appendChild(de)}V.appendChild(Se),Se.addEventListener("keydown",ee=>{ee.key==="ArrowLeft"?(ee.preventDefault(),A(D,-1)):ee.key==="ArrowRight"?(ee.preventDefault(),A(D,1)):ee.key==="ArrowUp"?(ee.preventDefault(),A(D,-7)):ee.key==="ArrowDown"?(ee.preventDefault(),A(D,7)):ee.key==="Home"?(ee.preventDefault(),D.__cursor=1,oe(D)):ee.key==="End"?(ee.preventDefault(),D.__cursor=x(se.y,se.mo),oe(D)):(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),G(D))})}if(X!=="date"){const re=i(J)?f(J):null,me=!!re,be=ae.createElement("div");be.className="lat-form__datepicker-time";const ke=ae.createElement("input");ke.type="number",ke.className="lat-form__datepicker-hour",ke.min=me?"1":"0",ke.max=me?"12":"23",ke.step="1",ke.setAttribute("aria-label",D.__t("form.datepicker.hour"));const Le=ae.createElement("span");Le.textContent=":";const Se=ae.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",D.__t("form.datepicker.minute")),be.appendChild(ke),be.appendChild(Le),be.appendChild(Se),V.appendChild(be),D.__hour=ke,D.__minute=Se,ke.addEventListener("change",()=>{E(D)}),Se.addEventListener("change",()=>{E(D)}),z(D)&&L(D),D.__periods=re,D.__ampm=null,me){const O=ae.createElement("button");O.type="button",O.className="lat-form__datepicker-ampm",D.__ampm=O;const ee=()=>{D.__pm=!D.__pm,O.textContent=D.__pm?D.__periods.pm:D.__periods.am,E(D)};O.addEventListener("click",ee),be.appendChild(O)}const je=ae.createElement("button");je.type="button",je.className="lat-form__datepicker-done",je.textContent=D.__t("form.datepicker.done"),je.addEventListener("click",()=>{F(D)}),be.appendChild(je)}w(D),H(V,"lat-form__datepicker-nav",I),H(V,"lat-form__datepicker-day",Q)}function te(D,J){let{y:ae,mo:V}=D.__view;V+=J,V<1&&(V=12,ae-=1),V>12&&(V=1,ae+=1),D.__view={y:ae,mo:V},D.__cursor=Math.min(D.__cursor,x(ae,V)),oe(D)}function E(D){if(z(D)){M(D),w(D);return}const J=D.__fields;let ae=D.__hour&&Number(D.__hour.value)||0;const V=D.__minute&&Number(D.__minute.value)||0;D.__ampm&&(ae=m(ae,D.__pm===!0));const se=S(D.__item)==="time"?{y:null,mo:null,d:null,h:ae,mi:V}:{y:J?J.y:D.__view.y,mo:J?J.mo:D.__view.mo,d:J?J.d:D.__cursor,h:ae,mi:V};D.__cursor=J?J.d:D.__cursor,we(D,se),w(D)}function F(D){D.__popup.hidden||(z(D)?W(D,we):S(D.__item)!=="date"&&E(D),ie(D))}function w(D){const J=z(D)?L(D):D.__fields,ae=D.__ampm&&D.__periods;if(D.__hour){const V=J?J.h:0;D.__hour.value=j(ae?v(V):V)}D.__minute&&(D.__minute.value=j(J?J.mi:0)),D.__ampm&&D.__periods&&(D.__pm=J?J.h>=12:!1,D.__ampm.textContent=D.__pm?D.__periods.pm:D.__periods.am)}function G(D){const J=D.__view;if(z(D)){y(D,J.y,J.mo,D.__cursor,oe);return}const ae=D.__fields,V={y:J.y,mo:J.mo,d:D.__cursor,h:ae?ae.h:0,mi:ae?ae.mi:0};we(D,V),ie(D)}function Y(D){if(D.__popup.hidden===!1||D.__item.disabled===!0||D.__item.readOnly===!0)return;const J=D.__fields,ae=new Date;D.__view=J&&J.y!=null?{y:J.y,mo:J.mo}:{y:ae.getFullYear(),mo:ae.getMonth()+1},D.__cursor=J&&J.d!=null?J.d:ae.getDate(),D.__popup.hidden=!1,oe(D),D.__layer=T(D.__popup,D,{aboveClass:Ae,matchWidth:!1,onOffscreen:()=>ie(D)})}function ie(D){B(D),D.__popup.hidden=!0,D.__popup.classList.remove(Ae),D.__layer&&(D.__layer.close(),D.__layer=null)}R("datepicker",{kind:"field",build(D,J){const ae=J.doc;k(ae);const V=ae.createElement("div");V.className="lat-form__datepicker",V.__item=D,V.__t=J.t||C,V.__mode=S(D),V.__fields=h(D,D.value),V.__cursor=V.__fields&&V.__fields.d!=null?V.__fields.d:new Date().getDate(),V.__view=V.__fields&&V.__fields.y!=null?{y:V.__fields.y,mo:V.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const se=ae.createElement("input");se.type="text",se.className="lat-form__datepicker-input",D.name&&(se.name=D.name),D.placeholder!=null&&(se.placeholder=String(D.placeholder)),D.label!=null&&D.label!==""&&se.setAttribute("aria-label",String(D.label)),se.setAttribute("autocomplete","off"),se.value=c(D,V.__fields),V.__input=se;const X=ae.createElement("button");X.type="button",X.className="lat-form__datepicker-toggle";const p=S(D)==="date";X.setAttribute("aria-label",V.__t(p?"form.datepicker.open":"form.datepicker.openTime"));const I=q(ae,p?"calendar":"clock");I&&X.appendChild(I),V.__toggle=X;const Q=ae.createElement("div");Q.className="lat-form__datepicker-popup lat-form__datepicker",Q.hidden=!0,V.__popup=Q,V.appendChild(se),V.appendChild(X),V.appendChild(Q),se.addEventListener("focus",()=>{Y(V)}),X.addEventListener("click",()=>{Y(V)}),se.addEventListener("change",ke=>{const Le=se.value;if(String(Le).trim()===""){se.value=c(D,V.__fields);return}const Se=n(D,V.__fields),je=ce(V,Le);if(!je){ke.stopPropagation(),se.value=c(D,V.__fields),l(V,V.__t("form.datepicker.invalid"));return}l(V,null),V.__fields=je,V.__draft=null,se.value=c(D,je),V.__hour&&w(V),n(D,je)===Se&&ke.stopPropagation()}),se.addEventListener("keydown",ke=>{ke.key==="Escape"&&ie(V)}),V.__ampm=null,V.__periods=null,V.__pm=!1;const re=ke=>{V.contains(ke.target)||Q.contains(ke.target)||F(V)},me=ke=>{if((V.contains(ke.target)||Q.contains(ke.target))&&!(ke.relatedTarget&&(V.contains(ke.relatedTarget)||Q.contains(ke.relatedTarget)))){if(!ke.relatedTarget){u(ae,()=>{if(Q.hidden)return;const Se=ae.activeElement;Se&&(V.contains(Se)||Q.contains(Se))||F(V)});return}F(V)}},be=ke=>{ke.key==="Escape"&&(ke.preventDefault(),F(V),V.__toggle.focus())};return ae.addEventListener("pointerdown",re),ae.addEventListener("focusout",me),Q.addEventListener("keydown",be),Array.isArray(J.disposers)&&J.disposers.push(()=>{ie(V),ae.removeEventListener("pointerdown",re),ae.removeEventListener("focusout",me),Q.removeEventListener("keydown",be)}),V},read(D){return n(D.__item,D.__fields)},write(D,J){l(D,null),D.__fields=h(D.__item,J),D.__draft=null,D.__input.value=c(D.__item,D.__fields),D.__fields&&D.__fields.y!=null&&(D.__view={y:D.__fields.y,mo:D.__fields.mo},D.__cursor=D.__fields.d),D.__hour&&!D.__popup.hidden&&w(D)},state(D,J){D.__input.disabled=J.disabled===!0,D.__input.readOnly=J.readOnly===!0,D.__toggle.disabled=J.disabled===!0||J.readOnly===!0},validate(D,J,ae){return b(J,ae)?!0:typeof J.errorMessage=="string"&&J.errorMessage!==""?J.errorMessage:!1},focus(D){D.__input.focus()}})}),Ne("packages/modules/form/controls/time.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/field-icon.js"),q=$.makeFieldIcon,k=$.injectFieldIconStyles,P=Z("packages/modules/form/controls/date-shared.js"),j=P.pad,C=P.echoKey,S=P.fieldsOfDate,x=P.to12Hour,h=P.to24Hour,n=P.withinRange,c=P.dispatchChange,_=Z("packages/modules/form/controls/popup-layer.js").openInLayer,t="lat-form__time-popup--above";function a(y){return!!(y.props&&y.props.timeFormat===12)}function i(y){return!!(y.props&&y.props.valueFormat==="object")}function f(y){return!!(y.props&&y.props.editable===!0)}function v(y){return!!(y.props&&y.props.controls===!0)}function m(y){const M=y.props&&y.props.icon;return typeof M=="string"&&M!==""?M:"clock"}function g(y,M){if(typeof M!="string")return null;const W=M.trim(),B=/^(\d{1,2}):(\d{2})$/.exec(W);if(B){const ne=Number(B[1]),Ae=Number(B[2]);return ne>23||Ae>59?null:{h:ne,mi:Ae}}if(a(y)){const ne=/^(\d{1,2}):(\d{2})\s*([ap])\.?m\.?$/i.exec(W);if(!ne)return null;const Ae=Number(ne[1]),we=Number(ne[2]);return Ae<1||Ae>12||we>59?null:{h:h(Ae,ne[3].toLowerCase()==="p"),mi:we}}return null}function H(y,M){if(M==null||M==="")return null;if(typeof M=="number"){if(!Number.isFinite(M))return null;const W=M%1440,B=W<0?W+1440:W;return{h:Math.floor(B/60),mi:Math.round(B%60)}}if(M instanceof Date){const W=S(y,M);return W?{h:W.h,mi:W.mi}:null}if(typeof M=="string")return g(y,M);if(typeof M=="object"){const W=Number(M.hour),B=Number(M.minute);return!Number.isFinite(W)||!Number.isFinite(B)||B<0||B>59?null:a(y)?W<1||W>12?null:{h:h(W,M.AM!==!0),mi:B}:W<0||W>23?null:{h:W,mi:B}}return null}function u(y,M,W){return M?a(y)?`${j(x(M.h))}:${j(M.mi)} ${M.h<12?W.am:W.pm}`:`${j(M.h)}:${j(M.mi)}`:""}function s(y,M,W){return M?i(y)?a(y)?{hour:x(M.h),minute:M.mi,AM:M.h<12}:{hour:M.h,minute:M.mi}:u(y,M,W):null}function o(y){const M=y.__item,W=y.ownerDocument,B=y.__popup;for(;B.firstChild;)B.removeChild(B.firstChild);const ne=W.createElement("div");ne.className="lat-form__time-row";const Ae=W.createElement("input");Ae.type="number",Ae.className="lat-form__time-hour",Ae.min=y.__twelve?"1":"0",Ae.max=y.__twelve?"12":"23",Ae.step="1",Ae.setAttribute("aria-label",y.__t("form.datepicker.hour"));const we=W.createElement("span");we.className="lat-form__time-colon",we.textContent=":";const ce=W.createElement("input");if(ce.type="number",ce.className="lat-form__time-minute",ce.min="0",ce.max="59",ce.step="1",ce.setAttribute("aria-label",y.__t("form.datepicker.minute")),ne.appendChild(Ae),ne.appendChild(we),ne.appendChild(ce),B.appendChild(ne),y.__hour=Ae,y.__minute=ce,Ae.addEventListener("change",()=>{l(y)}),ce.addEventListener("change",()=>{l(y)}),y.__ampm=null,y.__twelve){const oe=W.createElement("button");oe.type="button",oe.className="lat-form__time-ampm",oe.addEventListener("click",()=>{y.__pm=!y.__pm,oe.textContent=y.__pm?y.__labels.pm:y.__labels.am,l(y)}),ne.appendChild(oe),y.__ampm=oe}const A=W.createElement("div");if(A.className="lat-form__time-actions",v(M)){const oe=W.createElement("button");oe.type="button",oe.className="lat-form__time-close",oe.textContent=y.__t("form.time.close"),oe.addEventListener("click",()=>{z(y)}),A.appendChild(oe);const te=W.createElement("button");te.type="button",te.className="lat-form__time-save",te.textContent=y.__t("form.time.save"),te.addEventListener("click",()=>{T(y)}),A.appendChild(te)}else{const oe=W.createElement("button");oe.type="button",oe.className="lat-form__time-done",oe.textContent=y.__t("form.datepicker.done"),oe.addEventListener("click",()=>{d(y)}),A.appendChild(oe)}B.appendChild(A),r(y)}function r(y){const M=y.__draft||{h:0,mi:0};y.__hour&&(y.__hour.value=j(y.__twelve?x(M.h):M.h)),y.__minute&&(y.__minute.value=j(M.mi)),y.__ampm&&(y.__pm=M.h>=12,y.__ampm.textContent=y.__pm?y.__labels.pm:y.__labels.am)}function l(y){const M=y.__hour&&Number(y.__hour.value)||0,W=y.__minute&&Number(y.__minute.value)||0,B={h:y.__ampm?h(M,y.__pm===!0):M,mi:W};if(y.__draft=B,v(y.__item)){r(y);return}y.__fields=B,y.__input.value=u(y.__item,B,y.__labels),y.__lastText=u(y.__item,B,y.__labels),c(y),y.__draft=y.__fields,r(y)}function d(y){y.__popup.hidden||(v(y.__item)||l(y),z(y))}function T(y){const M=y.__draft||{h:0,mi:0};y.__fields=M,y.__input.value=u(y.__item,M,y.__labels),y.__lastText=u(y.__item,M,y.__labels),c(y),z(y)}function U(y){y.__popup.hidden!==!1&&(y.__item.disabled===!0||y.__item.readOnly===!0||(y.__draft=y.__fields?{h:y.__fields.h,mi:y.__fields.mi}:{h:0,mi:0},y.__pm=y.__draft.h>=12,y.__popup.hidden=!1,o(y),y.__layer=_(y.__popup,y,{aboveClass:t,matchWidth:!1,onOffscreen:()=>z(y)})))}function z(y){y.__popup.hidden=!0,y.__popup.classList.remove(t),y.__layer&&(y.__layer.close(),y.__layer=null)}function L(y){if(!y.__editable)return;const M=y.__input.value.trim();if(M===y.__lastText)return;const W=g(y.__item,M);W&&(y.__fields=W,y.__input.value=u(y.__item,W,y.__labels),y.__lastText=u(y.__item,W,y.__labels)),c(y)}R("time",{kind:"field",build(y,M){const W=M.doc;k(W);const B=W.createElement("div");B.className="lat-form__time",B.__item=y,B.__t=M.t||C,B.__twelve=a(y),B.__object=i(y),B.__editable=f(y),B.__labels={am:B.__t("form.time.am"),pm:B.__t("form.time.pm")},B.__fields=H(y,y.value),B.__draft=B.__fields?{h:B.__fields.h,mi:B.__fields.mi}:null;const ne=W.createElement("input");ne.type="text",ne.className="lat-form__time-input",y.name&&(ne.name=y.name),y.placeholder!=null&&(ne.placeholder=String(y.placeholder)),y.label!=null&&y.label!==""&&ne.setAttribute("aria-label",String(y.label)),ne.setAttribute("autocomplete","off"),ne.readOnly=!B.__editable,ne.value=u(y,B.__fields,B.__labels),B.__input=ne,B.__lastText=ne.value;const Ae=W.createElement("button");Ae.type="button",Ae.className="lat-form__time-toggle",Ae.setAttribute("aria-label",B.__t("form.time.open"));const we=q(W,m(y));we&&Ae.appendChild(we),B.__toggle=Ae;const ce=W.createElement("div");ce.className="lat-form__time-popup lat-form__time",ce.hidden=!0,B.__popup=ce,B.appendChild(ne),B.appendChild(Ae),B.appendChild(ce),ne.addEventListener("focus",()=>{B.__editable||U(B)}),Ae.addEventListener("click",()=>{U(B)}),ne.addEventListener("change",E=>{E.stopPropagation(),L(B)}),ne.addEventListener("keydown",E=>{E.key==="Enter"&&B.__editable?(E.preventDefault(),L(B)):E.key==="Escape"?z(B):E.altKey&&E.key==="ArrowDown"&&(E.preventDefault(),U(B))});const A=E=>{B.contains(E.target)||ce.contains(E.target)||d(B)},oe=E=>{(B.contains(E.target)||ce.contains(E.target))&&(E.relatedTarget&&(B.contains(E.relatedTarget)||ce.contains(E.relatedTarget))||d(B))},te=E=>{E.key==="Escape"&&(E.preventDefault(),d(B),B.__toggle.focus())};return W.addEventListener("pointerdown",A),W.addEventListener("focusout",oe),ce.addEventListener("keydown",te),Array.isArray(M.disposers)&&M.disposers.push(()=>{z(B),W.removeEventListener("pointerdown",A),W.removeEventListener("focusout",oe),ce.removeEventListener("keydown",te)}),B},read(y){const M=y.__input.value.trim();if(M==="")return null;const W=g(y.__item,M);return W?s(y.__item,W,y.__labels):M},write(y,M){y.__fields=H(y.__item,M),y.__input.value=u(y.__item,y.__fields,y.__labels),y.__lastText=u(y.__item,y.__fields,y.__labels),y.__draft=y.__fields?{h:y.__fields.h,mi:y.__fields.mi}:null},state(y,M){y.__input.disabled=M.disabled===!0,y.__input.readOnly=M.readOnly===!0||!y.__editable,y.__toggle.disabled=M.disabled===!0||M.readOnly===!0},validate(y,M,W){if(W==null)return!0;const B=H(M,W);return B?n(M,`${j(B.h)}:${j(B.mi)}`)?!0:typeof M.errorMessage=="string"&&M.errorMessage!==""?M.errorMessage:!1:typeof M.errorMessage=="string"&&M.errorMessage!==""?M.errorMessage:y.__t("form.time.invalid")},focus(y){y.__input.focus()}})}),Ne("packages/modules/form/controls/daterange.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/field-icon.js"),q=$.makeFieldIcon,k=$.injectFieldIconStyles,P=Z("packages/modules/form/controls/date-shared.js"),j=P.echoKey,C=P.daysInMonth,S=P.weekdayName,x=P.monthTitle,h=P.yearTitle,n=P.dispatchChange,c=P.parseDay,b=P.dayISO,_=P.dayNumber,t=P.dayNumberOf,a=P.dayOfNumber,i=P.parseMonth,f=P.monthISO,v=P.monthIndex,m=P.monthOfIndex,g=P.isoWeek,H=P.focusedNavIndex,u=P.restoreNavFocus,s=P.afterFocusSettles,o=P.parseTypedDate,l=Z("packages/modules/form/controls/date-typed.js").setTypedError,d=" – ";function T(O){return O.props&&O.props.granularity==="month"?"month":"day"}function U(O){return O.props&&typeof O.props=="object"?O.props:{}}function z(O){return U(O).applyButton!==!1}function L(O){return U(O).weekNumbers===!0}function y(O){return U(O).clearable===!0}function M(O){const ee=U(O).firstDay;if(ee!=null){const de=Number(ee);if(Number.isFinite(de))return(de%7+7)%7}try{const de=new Intl.Locale(O.locale||void 0).weekInfo;if(de&&de.firstDay)return de.firstDay%7}catch{}return 0}function W(O){const ee=U(O).disabledDates;if(Array.isArray(ee)){const de=new Set(ee.map(String));return K=>de.has(K)}return typeof ee=="function"?de=>ee(de)===!0:null}function B(O,ee){return O.min!=null&&ee<String(O.min)||O.max!=null&&ee>String(O.max)}function ne(O,ee,de){return!!(B(O,ee)||de&&de(ee))}function Ae(O,ee,de){if(O==null||ee==null)return null;if(de==="month"){const Ce=i(O),ye=i(ee);return!Ce||!ye?null:v(ye.y,ye.mo)-v(Ce.y,Ce.mo)}const K=t(O),pe=t(ee);return Number.isNaN(K)||Number.isNaN(pe)?null:pe-K}function we(O,ee){return T(O)==="month"?ee("form.daterange.months"):ee("form.daterange.days")}function ce(O,ee){if(T(O)==="month")return[{label:ee("form.daterange.monthThisMonth"),range:K=>[f(K.getFullYear(),K.getMonth()+1),f(K.getFullYear(),K.getMonth()+1)]},{label:ee("form.daterange.monthLastMonth"),range:K=>{const pe=m(v(K.getFullYear(),K.getMonth()+1)-1);return[f(pe.y,pe.mo),f(pe.y,pe.mo)]}},{label:ee("form.daterange.monthLast3"),range:K=>{const pe=v(K.getFullYear(),K.getMonth()+1),Ce=m(pe-2),ye=m(pe);return[f(Ce.y,Ce.mo),f(ye.y,ye.mo)]}},{label:ee("form.daterange.monthLast6"),range:K=>{const pe=v(K.getFullYear(),K.getMonth()+1),Ce=m(pe-5),ye=m(pe);return[f(Ce.y,Ce.mo),f(ye.y,ye.mo)]}},{label:ee("form.daterange.monthLast12"),range:K=>{const pe=v(K.getFullYear(),K.getMonth()+1),Ce=m(pe-11),ye=m(pe);return[f(Ce.y,Ce.mo),f(ye.y,ye.mo)]}},{label:ee("form.daterange.monthThisYear"),range:K=>[f(K.getFullYear(),1),f(K.getFullYear(),12)]},{label:ee("form.daterange.monthLastYear"),range:K=>[f(K.getFullYear()-1,1),f(K.getFullYear()-1,12)]}];const de=K=>b(K.getFullYear(),K.getMonth()+1,K.getDate());return[{label:ee("form.daterange.today"),range:K=>[de(K),de(K)]},{label:ee("form.daterange.yesterday"),range:K=>{const pe=a(_(K.getFullYear(),K.getMonth()+1,K.getDate())-1);return[b(pe.y,pe.mo,pe.d),b(pe.y,pe.mo,pe.d)]}},{label:ee("form.daterange.last7"),range:K=>{const pe=_(K.getFullYear(),K.getMonth()+1,K.getDate()),Ce=a(pe-6);return[b(Ce.y,Ce.mo,Ce.d),de(K)]}},{label:ee("form.daterange.last30"),range:K=>{const pe=_(K.getFullYear(),K.getMonth()+1,K.getDate()),Ce=a(pe-29);return[b(Ce.y,Ce.mo,Ce.d),de(K)]}},{label:ee("form.daterange.thisMonth"),range:K=>[b(K.getFullYear(),K.getMonth()+1,1),b(K.getFullYear(),K.getMonth()+1,C(K.getFullYear(),K.getMonth()+1))]},{label:ee("form.daterange.lastMonth"),range:K=>{const pe=m(v(K.getFullYear(),K.getMonth()+1)-1);return[b(pe.y,pe.mo,1),b(pe.y,pe.mo,C(pe.y,pe.mo))]}}]}function A(O,ee){const de=U(O).presets;return de===!1?null:Array.isArray(de)&&de.length?de.map(K=>({label:K&&K.label!=null?String(K.label):"",range:K&&K.range!=null?K.range:["",""]})):ce(O,ee)}function oe(O,ee){return O==null&&ee==null?"":ee==null?`${O}${d}`:`${O}${d}${ee}`}function te(O,ee){const de=String(ee??"").trim();if(!de)return{start:null,end:null};if(T(O)!=="month"){const Ie=de.split(/\s+[–—-]\s+|\s+to\s+/i).map(He=>o(He,O));if(Ie.length<=2&&Ie.every(He=>He)){const[He,Ee=null]=Ie;return Ee&&He>Ee?{start:Ee,end:He}:{start:He,end:Ee}}}const K=T(O)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,pe=[];let Ce;for(;(Ce=K.exec(de))!==null;)pe.push(Ce[1]);if(pe.length===0)return null;const ye=pe[0],ve=pe.length>1?pe[pe.length-1]:null;if(T(O)==="month"){if(!i(ye)||ve&&!i(ve))return null}else if(!c(ye)||ve&&!c(ve))return null;return ve&&ye>ve?{start:ve,end:ye}:{start:ye,end:ve}}function E(O,ee){return new Intl.DateTimeFormat(O.locale||void 0,{month:"short"}).format(new Date(2021,ee-1,1))}function F(O){const ee=O.__draftStart,de=O.__draftEnd;return ee!=null&&de!=null?[ee,de]:ee!=null&&O.__hover!=null&&O.__granularity==="day"?[ee,O.__hover]:ee!=null&&O.__hover!=null&&O.__granularity==="month"?[ee,O.__hover]:null}function w(O,ee){return O>=ee[0]&&O<=ee[1]}function G(O,ee){if(O.__granularity==="month"){const pe=v(O.__cursor.y,O.__cursor.mo)+ee,Ce=m(pe);O.__cursor=Ce,Y(O),ke(O);return}const de=_(O.__cursor.y,O.__cursor.mo,O.__cursor.d)+ee,K=a(de);O.__cursor=K,Y(O),ke(O)}function Y(O){if(O.__granularity==="month"){O.__cursor.y<O.__view.y?O.__view={y:O.__cursor.y}:O.__cursor.y>O.__view.y+1&&(O.__view={y:O.__cursor.y-1});return}const de=v(O.__cursor.y,O.__cursor.mo),K=v(O.__view.y,O.__view.mo);de<K?O.__view={y:O.__cursor.y,mo:O.__cursor.mo}:de>K+1&&(O.__view=m(de-1))}function ie(O,ee){if(O.__granularity==="month"){O.__view={y:O.__view.y+ee},ke(O);return}const de=v(O.__view.y,O.__view.mo)+ee,K=m(de);O.__view=K,ke(O)}function D(O,ee){return O&&ee&&O.y===ee.y&&O.mo===ee.mo&&(O.d==null||O.d===ee.d)}function J(O,ee){return O.__granularity==="month"?f(ee.y,ee.mo):b(ee.y,ee.mo,ee.d)}function ae(O,ee){const de=J(O,ee);O.__phase!=="started"?(O.__draftStart=de,O.__draftEnd=null,O.__phase="started"):de<O.__draftStart?(O.__draftStart=de,O.__draftEnd=null):(O.__draftEnd=de,O.__phase="idle",z(O.__item)||V(O,!0)),O.__cursor=ee,O.__hover=null,ke(O)}function V(O,ee){O.__start=O.__draftStart,O.__end=O.__draftEnd,O.__phase="idle",O.__input.value=oe(O.__start,O.__end),n(O),ee&&je(O)}function se(O){O.__draftStart=O.__start,O.__draftEnd=O.__end,O.__phase="idle",O.__hover=null,je(O)}function X(O){O.__start=null,O.__end=null,O.__draftStart=null,O.__draftEnd=null,O.__phase="idle",O.__input.value="",n(O)}function p(O,ee,de){for(;de.firstChild;)de.removeChild(de.firstChild);const K=W(O.__item);if(O.__granularity==="month")me(O,ee,de,O.__view.y,K),me(O,ee,de,O.__view.y+1,K);else{I(O,ee,de,O.__view.y,O.__view.mo,K);const pe=m(v(O.__view.y,O.__view.mo)+1);I(O,ee,de,pe.y,pe.mo,K)}}function I(O,ee,de,K,pe,Ce){const ye=O.__item,ve=ee.createElement("div");ve.className="lat-form__daterange-panel";const Ie=ee.createElement("div");Ie.className="lat-form__daterange-title",Ie.textContent=x(ye,{y:K,mo:pe}),ve.appendChild(Ie);const He=M(ye),Ee=L(ye),De=ee.createElement("div");if(De.className=Ee?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Ee){const fe=ee.createElement("span");fe.className="lat-form__daterange-weeknum-head",De.appendChild(fe)}for(let fe=0;fe<7;fe+=1){const Me=ee.createElement("span");Me.textContent=S(ye,(He+fe)%7),De.appendChild(Me)}ve.appendChild(De);const ge=ee.createElement("div");ge.className=Ee?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",ge.setAttribute("role","grid"),ge.setAttribute("aria-label",x(ye,{y:K,mo:pe})),ge.tabIndex=0,ve.appendChild(ge);const Te=(new Date(K,pe-1,1).getDay()-He+7)%7,Ge=C(K,pe),Ke=_(K,pe,1)-Te,We=[];for(let fe=0;fe<Te;fe+=1){Ee&&fe%7===0&&ge.appendChild(Q(O,ee,Ke));const Me=ee.createElement("span");Me.className="lat-form__daterange-blank",ge.appendChild(Me)}for(let fe=1;fe<=Ge;fe+=1){Ee&&(Te+fe-1)%7===0&&ge.appendChild(Q(O,ee,Ke+(Te+fe-1)));const Me=re(O,ee,K,pe,fe,Ce);We.push(Me),ge.appendChild(Me)}be(O,ge,We),de.appendChild(ve)}function Q(O,ee,de){const K=ee.createElement("span");K.className="lat-form__daterange-weeknum";const pe=new Date(de*864e5),Ce=de-(pe.getUTCDay()+6)%7,ye=new Date(Ce*864e5);return K.textContent=String(g(ye.getUTCFullYear(),ye.getUTCMonth()+1,ye.getUTCDate())),K}function re(O,ee,de,K,pe,Ce){const ye=b(de,K,pe),ve=ee.createElement("button");ve.type="button",ve.className="lat-form__daterange-day",ve.setAttribute("role","gridcell"),ve.textContent=String(pe);const Ie=F(O),He=Ie?w(ye,Ie):!1,Ee=ne(O.__item,ye,Ce);return Ee&&(ve.disabled=!0),He&&ve.classList.add("is-in-range"),O.__draftStart===ye&&ve.classList.add("is-start"),O.__draftEnd===ye&&ve.classList.add("is-end"),ve.setAttribute("aria-selected",He&&!Ee?"true":"false"),O.__cursor&&O.__cursor.y===de&&O.__cursor.mo===K&&O.__cursor.d===pe&&ve.classList.add("is-focus"),ve.addEventListener("click",()=>{ae(O,{y:de,mo:K,d:pe})}),ve.addEventListener("mouseover",()=>{O.__draftStart!=null&&O.__draftEnd==null&&!Ee&&O.__hover!==ye&&(O.__hover=ye,ke(O))}),ve}function me(O,ee,de,K,pe){const Ce=O.__item,ye=ee.createElement("div");ye.className="lat-form__daterange-panel";const ve=ee.createElement("div");ve.className="lat-form__daterange-title",ve.textContent=h({y:K}),ye.appendChild(ve);const Ie=ee.createElement("div");Ie.className="lat-form__daterange-grid lat-form__daterange-grid--months",Ie.setAttribute("role","grid"),Ie.setAttribute("aria-label",h({y:K})),ye.appendChild(Ie);const He=[];for(let Ee=1;Ee<=12;Ee+=1){const De=f(K,Ee),ge=ee.createElement("button");ge.type="button",ge.className="lat-form__daterange-month",ge.setAttribute("role","gridcell"),ge.textContent=E(Ce,Ee);const Re=F(O),Te=Re?w(De,Re):!1,Ge=ne(Ce,De,pe);Ge&&(ge.disabled=!0),Te&&ge.classList.add("is-in-range"),O.__draftStart===De&&ge.classList.add("is-start"),O.__draftEnd===De&&ge.classList.add("is-end"),ge.setAttribute("aria-selected",Te&&!Ge?"true":"false"),O.__cursor&&O.__cursor.y===K&&O.__cursor.mo===Ee&&O.__cursor.d==null&&ge.classList.add("is-focus"),ge.addEventListener("click",()=>{ae(O,{y:K,mo:Ee})}),He.push(ge),Ie.appendChild(ge)}Ie.addEventListener("keydown",Ee=>{if(Ee.key==="ArrowLeft")Ee.preventDefault(),G(O,-1);else if(Ee.key==="ArrowRight")Ee.preventDefault(),G(O,1);else if(Ee.key==="ArrowUp")Ee.preventDefault(),G(O,-3);else if(Ee.key==="ArrowDown")Ee.preventDefault(),G(O,3);else if(Ee.key==="PageUp")Ee.preventDefault(),ie(O,-1);else if(Ee.key==="PageDown")Ee.preventDefault(),ie(O,1);else if(Ee.key==="Enter"||Ee.key===" "){Ee.preventDefault();const De=J(O,O.__cursor);ne(O.__item,De,pe)||ae(O,O.__cursor)}}),de.appendChild(ye)}function be(O,ee,de){ee.addEventListener("keydown",K=>{const pe=O.__cursor;if(K.key==="ArrowLeft")K.preventDefault(),G(O,-1);else if(K.key==="ArrowRight")K.preventDefault(),G(O,1);else if(K.key==="ArrowUp")K.preventDefault(),G(O,-7);else if(K.key==="ArrowDown")K.preventDefault(),G(O,7);else if(K.key==="PageUp")K.shiftKey?(K.preventDefault(),ie(O,-12)):(K.preventDefault(),ie(O,-1));else if(K.key==="PageDown")K.shiftKey?(K.preventDefault(),ie(O,12)):(K.preventDefault(),ie(O,1));else if((K.key==="Enter"||K.key===" ")&&(K.preventDefault(),pe&&pe.d!=null)){const Ce=b(pe.y,pe.mo,pe.d);ne(O.__item,Ce,W(O.__item))||ae(O,pe)}})}function ke(O){const ee=O.ownerDocument,de=O.__popup,K=O.__item,pe=H(de,"lat-form__daterange-nav");for(;de.firstChild;)de.removeChild(de.firstChild);const Ce=ee.createElement("div");Ce.className="lat-form__daterange-head";const ye=ee.createElement("button");ye.type="button",ye.className="lat-form__daterange-nav",ye.setAttribute("aria-label",O.__t("form.daterange.prev")),ye.textContent="‹",ye.addEventListener("click",()=>{ie(O,-1)});const ve=ee.createElement("button");ve.type="button",ve.className="lat-form__daterange-nav",ve.setAttribute("aria-label",O.__t("form.daterange.next")),ve.textContent="›",ve.addEventListener("click",()=>{ie(O,1)}),Ce.appendChild(ye);const Ie=ee.createElement("div");Ie.className="lat-form__daterange-body";const He=A(K,O.__t);if(He){const De=ee.createElement("div");De.className="lat-form__daterange-presets";const ge=ee.createElement("div");ge.className="lat-form__daterange-presets-title",ge.textContent=O.__t("form.daterange.presets"),De.appendChild(ge);for(const Re of He){const Te=ee.createElement("button");Te.type="button",Te.className="lat-form__daterange-preset",Te.textContent=Re.label,Te.addEventListener("click",()=>{Le(O,Re.range)}),De.appendChild(Te)}Ie.appendChild(De)}const Ee=ee.createElement("div");if(Ee.className="lat-form__daterange-panels",p(O,ee,Ee),Ie.appendChild(Ee),Ce.appendChild(Ie),Ce.appendChild(ve),de.appendChild(Ce),z(K)){const De=ee.createElement("div");De.className="lat-form__daterange-footer";const ge=ee.createElement("button");ge.type="button",ge.className="lat-form__daterange-cancel",ge.textContent=O.__t("form.daterange.cancel"),ge.addEventListener("click",()=>{se(O)});const Re=ee.createElement("button");Re.type="button",Re.className="lat-form__daterange-apply",Re.textContent=O.__t("form.daterange.apply"),Re.addEventListener("click",()=>{V(O,!0)}),De.appendChild(ge),De.appendChild(Re),de.appendChild(De)}u(de,"lat-form__daterange-nav",pe)}function Le(O,ee){const de=typeof ee=="function"?ee(new Date):ee;if(!(!Array.isArray(de)||de.length<2)){if(O.__draftStart=de[0],O.__draftEnd=de[1],O.__phase="idle",O.__hover=null,O.__granularity==="day"){const K=c(de[0]);K&&(O.__view={y:K.y,mo:K.mo}),O.__cursor=K||O.__cursor}else{const K=i(de[0]);K&&(O.__view={y:K.y}),O.__cursor=K||O.__cursor}ke(O)}}function Se(O){if(O.__popup.hidden===!1||O.__item.disabled===!0||O.__item.readOnly===!0)return;O.__draftStart=O.__start,O.__draftEnd=O.__end,O.__phase="idle",O.__hover=null;const ee=new Date;if(O.__granularity==="month"){const de=i(O.__start)||{y:ee.getFullYear(),mo:ee.getMonth()+1};O.__view={y:de.y},O.__cursor=de}else{const de=c(O.__start)||{y:ee.getFullYear(),mo:ee.getMonth()+1,d:ee.getDate()};O.__view={y:de.y,mo:de.mo},O.__cursor=de}O.__popup.hidden=!1,ke(O)}function je(O){O.__popup.hidden=!0}R("daterange",{kind:"field",build(O,ee){const de=ee.doc;k(de);const K=de.createElement("div");K.className="lat-form__daterange",K.__item=O,K.__t=ee.t||j,K.__granularity=T(O),K.__start=null,K.__end=null,K.__draftStart=null,K.__draftEnd=null,K.__hover=null,K.__phase="idle";const pe=typeof O.value=="object"&&O.value!=null?O.value:{};pe&&pe.start!=null&&(K.__start=String(pe.start)),pe&&pe.end!=null&&(K.__end=String(pe.end));const Ce=de.createElement("input");Ce.type="text",Ce.className="lat-form__daterange-input",O.name&&(Ce.name=O.name),O.placeholder!=null&&(Ce.placeholder=String(O.placeholder)),O.label!=null&&O.label!==""&&Ce.setAttribute("aria-label",String(O.label)),Ce.setAttribute("autocomplete","off"),Ce.value=oe(K.__start,K.__end),K.__input=Ce;const ye=de.createElement("button");ye.type="button",ye.className="lat-form__daterange-toggle",ye.setAttribute("aria-label",K.__t("form.daterange.open"));const ve=q(de,"calendar");ve&&ye.appendChild(ve),K.__toggle=ye;const Ie=de.createElement("button");Ie.type="button",Ie.className="lat-form__daterange-clear",Ie.setAttribute("aria-label",K.__t("form.daterange.clear"));const He=q(de,"close");He&&Ie.appendChild(He),Ie.hidden=!y(O)||K.__start==null&&K.__end==null,K.__clear=Ie;const Ee=de.createElement("div");Ee.className="lat-form__daterange-popup",Ee.hidden=!0,K.__popup=Ee,K.appendChild(Ce),K.appendChild(Ie),K.appendChild(ye),K.appendChild(Ee),Ce.addEventListener("focus",()=>{Se(K)}),ye.addEventListener("click",()=>{Se(K)}),Ie.addEventListener("click",()=>{X(K)}),Ce.addEventListener("change",Te=>{const Ge=te(O,Ce.value);Ge?(l(K,null),K.__start=Ge.start,K.__end=Ge.end,Ce.value=oe(Ge.start,Ge.end)):(Te.stopPropagation(),Ce.value=oe(K.__start,K.__end),l(K,K.__t("form.datepicker.invalid")))}),Ce.addEventListener("keydown",Te=>{Te.key==="Escape"&&(se(K),K.__toggle.focus())});const De=Te=>{K.contains(Te.target)||se(K)},ge=Te=>{if(!(Te.relatedTarget&&K.contains(Te.relatedTarget))){if(!Te.relatedTarget){s(K.ownerDocument,()=>{if(K.__popup.hidden)return;const Ge=K.ownerDocument.activeElement;Ge&&K.contains(Ge)||se(K)});return}se(K)}},Re=Te=>{Te.key==="Escape"&&(Te.preventDefault(),se(K),K.__toggle.focus())};return de.addEventListener("pointerdown",De),K.addEventListener("focusout",ge),Ee.addEventListener("keydown",Re),Array.isArray(ee.disposers)&&ee.disposers.push(()=>{de.removeEventListener("pointerdown",De),K.removeEventListener("focusout",ge),Ee.removeEventListener("keydown",Re)}),K},read(O){return{start:O.__start,end:O.__end}},write(O,ee){l(O,null);const de=ee&&typeof ee=="object"?ee:{};O.__start=de.start!=null?String(de.start):null,O.__end=de.end!=null?String(de.end):null,O.__input.value=oe(O.__start,O.__end),O.__clear&&(O.__clear.hidden=!y(O.__item)||O.__start==null&&O.__end==null)},state(O,ee){O.__input.disabled=ee.disabled===!0,O.__input.readOnly=ee.readOnly===!0,O.__toggle.disabled=ee.disabled===!0||ee.readOnly===!0},validate(O,ee,de){const K=de&&typeof de=="object"?de:{start:null,end:null},pe=K.start!=null?String(K.start):null,Ce=K.end!=null?String(K.end):null,ye=O.__t;if(ee.required===!0&&pe==null&&Ce==null)return ye("form.validation.required");if(pe==null&&Ce==null)return!0;if(pe==null||Ce==null)return ye("form.daterange.invalid");if(B(ee,pe)||B(ee,Ce))return ye("form.daterange.bounds");const ve=Ae(pe,Ce,O.__granularity);if(ve==null)return ye("form.daterange.invalid");const Ie=U(ee).minSpan,He=U(ee).maxSpan;return Ie!=null&&ve<Number(Ie)?ye("form.daterange.minSpan",{min:String(Ie),unit:we(ee,ye)}):He!=null&&ve>Number(He)?ye("form.daterange.maxSpan",{max:String(He),unit:we(ee,ye)}):!0},focus(O){O.__input.focus()}})}),Ne("packages/modules/form/controls/file.js",function(N,Z){"use strict";Object.defineProperty(N,"formatSize",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"accepts",{enumerable:!0,get:function(){return h}});const R=Z("packages/modules/form/controls/registry.js").registerControl,$="lat-uploader",q="http://www.w3.org/2000/svg",k="data-lattice-uploader-styles";function P(){return`
1843
- .${$}{
1872
+ `.trim()}const z="data-lattice-form-choice-styles";function P(A){const j=A&&A.documentElement;if(!j||j.getAttribute(z))return;j.setAttribute(z,"1");const k=A.createElement("style");k.textContent=C(),(A.head||A.body||j).appendChild(k)}}),Ne("packages/modules/form/controls/radiogroup.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/options.js"),X=S.normalizeOptions,C=S.resolveChoiceLayout,z=S.injectChoiceLayoutStyles,P=Z("packages/modules/form/state.js"),A=P.applyBooleanInputState,j=P.guardBooleanInput;B("radiogroup",{kind:"field",build(k,g){const n=g.doc.createElement("div");n.className="lat-form__radiogroup",n.setAttribute("role","radiogroup"),k.label!=null&&k.label!==""&&n.setAttribute("aria-label",String(k.label));const u=C(k);u.columns>0?(z(g.doc),n.classList.add("lat-form__radiogroup--columns"),n.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(z(g.doc),n.classList.add("lat-form__radiogroup--horizontal")),n.setAttribute("aria-orientation",u.orientation);const b=[];for(const v of X(k.options)){const t=g.doc.createElement("label");t.className="lat-form__choice";const a=g.doc.createElement("input");a.type="radio",k.name&&(a.name=k.name),a.value=v.value,a.checked=k.value!=null&&String(k.value)===v.value,j(a),t.appendChild(a);const s=g.doc.createElement("span");s.textContent=v.label,t.appendChild(s),n.appendChild(t),b.push(a)}return n.__radios=b,n},read(k){const g=k.__radios.find(n=>n.checked);return g?g.value:null},write(k,g){const n=g==null?null:String(g);for(const u of k.__radios)u.checked=n!==null&&u.value===n},state(k,g){const n=g.readOnly===!0;for(const u of k.__radios)A(u,g.disabled===!0,n);n?k.setAttribute("aria-readonly","true"):k.removeAttribute("aria-readonly")},focus(k){const g=k.__radios.find(n=>!n.disabled);g&&g.focus()}})}),Ne("packages/modules/form/controls/checkboxgroup.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/options.js"),X=S.normalizeOptions,C=S.resolveChoiceLayout,z=S.injectChoiceLayoutStyles,P=Z("packages/modules/form/state.js"),A=P.applyBooleanInputState,j=P.guardBooleanInput;B("checkboxgroup",{kind:"field",build(k,g){const n=g.doc.createElement("div");n.className="lat-form__checkboxgroup",n.setAttribute("role","group"),k.label!=null&&k.label!==""&&n.setAttribute("aria-label",String(k.label));const u=C(k);u.columns>0?(z(g.doc),n.classList.add("lat-form__checkboxgroup--columns"),n.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(z(g.doc),n.classList.add("lat-form__checkboxgroup--horizontal"));const b=[],v=Array.isArray(k.value)?k.value.map(String):[];for(const t of X(k.options)){const a=g.doc.createElement("label");a.className="lat-form__choice";const s=g.doc.createElement("input");s.type="checkbox",k.name&&(s.name=k.name),s.value=t.value,s.checked=v.includes(t.value),j(s),a.appendChild(s);const p=g.doc.createElement("span");p.textContent=t.label,a.appendChild(p),n.appendChild(a),b.push(s)}return n.__boxes=b,n},read(k){return k.__boxes.filter(g=>g.checked).map(g=>g.value)},write(k,g){const n=Array.isArray(g)?g.map(String):[];for(const u of k.__boxes)u.checked=n.includes(u.value)},state(k,g){const n=g.readOnly===!0;for(const u of k.__boxes)A(u,g.disabled===!0,n);n?k.setAttribute("aria-readonly","true"):k.removeAttribute("aria-readonly")},focus(k){const g=k.__boxes.find(n=>!n.disabled);g&&g.focus()}})}),Ne("packages/modules/form/controls/toggle.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/state.js"),X=S.applyBooleanInputState,C=S.guardBooleanInput,z=Object.freeze(["small","default","large"]),P=Object.freeze(["round","square","slim"]),A=Object.freeze(["inside","before","after"]);function j(t){return z.includes(t)?t:"default"}function k(t){return P.includes(t)?t:"round"}function g(t){return A.includes(t)?t:"inside"}function n(t){return t==null?"":String(t)}function u(t){return t.__latToggle?t.__latToggle.input:t}function b(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function v(t,a,s){const p=a&&a.defaultView,y=p&&p.Event,m=y?new y(s,{bubbles:!0}):{type:s,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(m)}B("toggle",{kind:"toggle",build(t,a){const s=t.props||{},p=a.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,C(p),s.size!=null&&p.setAttribute("data-size",j(s.size)),s.variant!=null&&p.setAttribute("data-variant",k(s.variant));const y=n(s.onLabel),m=n(s.offLabel);if(y===""&&m==="")return p;const h=a.doc.createElement("span");h.className="lat-form__toggle-field",h.setAttribute("data-label-position",g(s.labelPosition)),h.appendChild(p);const R=a.doc.createElement("span");R.className="lat-form__toggle-label",h.appendChild(R);const d={input:p,label:R,onLabel:y,offLabel:m};h.__latToggle=d,b(d),p.addEventListener("change",()=>b(d));let c=!1;return h.addEventListener("focusin",()=>{c||(c=!0,v(h,a.doc,"focus"))}),h.addEventListener("focusout",i=>{h.contains(i.relatedTarget)||(c=!1,v(h,a.doc,"blur"))}),h},read(t){return u(t).checked},write(t,a){const s=u(t);s.checked=a===!0,b(t.__latToggle)},state(t,a){X(u(t),a.disabled===!0,a.readOnly===!0)},focus(t){const a=u(t);typeof a.focus=="function"&&a.focus()},blur(t){const a=u(t);typeof a.blur=="function"&&a.blur()}})}),Ne("packages/modules/form/controls/date-parse.js",function(N,Z){"use strict";Object.defineProperty(N,"parseTypedDate",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"splitTypedTime",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function B(n){return n.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function S(n,u,b){if(!Number.isInteger(n)||!Number.isInteger(u)||!Number.isInteger(b)||n<1||n>9999||u<1||u>12||b<1)return null;const v=u===2?X(n)?29:28:[4,6,9,11].includes(u)?30:31;return b>v?null:`${String(n).padStart(4,"0")}-${String(u).padStart(2,"0")}-${String(b).padStart(2,"0")}`}function X(n){return n%4===0&&n%100!==0||n%400===0}function C(n){const u=Number(n);return n.length<=2?2e3+u:u}function z(n){const u=new Map;for(let b=1;b<=12;b++){const v=new Date(2001,b-1,15);for(const t of["long","short"]){const a=new Intl.DateTimeFormat(n,{month:t}).format(v),s=new Intl.DateTimeFormat(n,{day:"numeric",month:t}).formatToParts(v).find(p=>p.type==="month");for(const p of[a,s&&s.value]){if(!p)continue;const y=p.toLowerCase();u.set(y,b),y.endsWith(".")&&u.set(y.slice(0,-1),b)}}}return u}function P(n,u,b){const v=new Intl.DateTimeFormat(u,b).formatToParts(new Date(2001,10,22)),t=z(u),a=[];let s="^";for(const h of v)if(h.type==="day")a.push("d"),s+="(\\d{1,2})";else if(h.type==="year"||h.type==="relatedYear")a.push("y"),s+="(\\d{4}|\\d{2})";else if(h.type==="month")if(a.push("m"),/^\d+$/.test(h.value))s+="(\\d{1,2})";else{const R=[...t.keys()].sort((d,c)=>c.length-d.length).map(B);s+=`(${R.join("|")})`}else if(h.type==="literal")s+=h.value.trim()===""?"\\s+":`\\s*${B(h.value.trim())}\\s*`;else if(h.type==="weekday")s+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const p=new RegExp(`${s}$`,"iu").exec(n);if(!p||a.length!==3)return null;const y={};a.forEach((h,R)=>{y[h]=p[R+1]});const m=/^\d+$/.test(y.m)?Number(y.m):t.get(y.m.toLowerCase());return S(C(y.y),m,Number(y.d))}function A(n,u){const v=new Intl.DateTimeFormat(u,{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(v.length!==3)return null;const t=v.map(p=>p==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),a=new RegExp(`^${t}\\.?$`).exec(n);if(!a)return null;const s={};return v.forEach((p,y)=>{s[p]=a[y+1]}),S(C(s.y),Number(s.m),Number(s.d))}function j(n){const u=v=>{const t=v.toLowerCase().replace(/\.$/,"");return e.findIndex(s=>s===t||s.slice(0,3)===t||t==="sept"&&s==="september")+1};let b=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(n);return b?u(b[2])?S(Number(b[3]),u(b[2]),Number(b[1])):null:(b=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(n),b&&u(b[1])?S(Number(b[3]),u(b[1]),Number(b[2])):null)}function k(n,u,b){const v=String(n??"").trim().replace(/\s+/g," ");if(!v)return null;const t=b||u&&u.locale||void 0,a={dateStyle:"medium"},s=[()=>P(v,t,a),()=>A(v,t),()=>{const p=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(v);return p?S(Number(p[1]),Number(p[2]),Number(p[3])):null},()=>j(v)];for(const p of s)try{const y=p();if(y)return y}catch{}return null}function g(n){const u=String(n??"").trim(),b=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(u);if(!b)return{date:u,time:null};let v=Number(b[1]);const t=Number(b[2]);if(b[3]){const a=b[3].toLowerCase()==="p";if(v<1||v>12)return{date:u,time:null};v=v%12+(a?12:0)}return v>23||t>59?{date:u,time:null}:{date:u.slice(0,b.index).replace(/[,\s]+$/,""),time:{h:v,mi:t}}}}),Ne("packages/modules/form/controls/date-shared.js",function(N,Z){"use strict";Object.defineProperty(N,"pad",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"echoKey",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"modeOf",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"daysInMonth",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"fieldsOfDate",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"parseValue",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"isoOf",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"displayOf",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"withinRange",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"weekdayName",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"monthTitle",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"yearTitle",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"dispatchChange",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"is12Hour",{enumerable:!0,get:function(){return v}}),Object.defineProperty(N,"dayPeriods",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"to12Hour",{enumerable:!0,get:function(){return a}}),Object.defineProperty(N,"to24Hour",{enumerable:!0,get:function(){return s}}),Object.defineProperty(N,"parseDay",{enumerable:!0,get:function(){return p}}),Object.defineProperty(N,"dayISO",{enumerable:!0,get:function(){return y}}),Object.defineProperty(N,"dayNumber",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"dayNumberOf",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"dayOfNumber",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"parseMonth",{enumerable:!0,get:function(){return d}}),Object.defineProperty(N,"monthISO",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"monthIndex",{enumerable:!0,get:function(){return i}}),Object.defineProperty(N,"monthOfIndex",{enumerable:!0,get:function(){return r}}),Object.defineProperty(N,"isoWeek",{enumerable:!0,get:function(){return l}}),Object.defineProperty(N,"focusedNavIndex",{enumerable:!0,get:function(){return f}}),Object.defineProperty(N,"restoreNavFocus",{enumerable:!0,get:function(){return T}}),Object.defineProperty(N,"afterFocusSettles",{enumerable:!0,get:function(){return V}});const e=Z("packages/modules/form/controls/date-parse.js");Object.defineProperty(N,"parseTypedDate",{enumerable:!0,get:function(){return e.parseTypedDate}}),Object.defineProperty(N,"splitTypedTime",{enumerable:!0,get:function(){return e.splitTypedTime}});function B(D){return String(D).padStart(2,"0")}function S(D){return D}function X(D){return D.mode==="date-time"||D.mode==="time"?D.mode:"date"}function C(D,M){return new Date(D,M,0).getDate()}function z(D,M){if(!(M instanceof Date)||Number.isNaN(M.getTime()))return null;const w={y:M.getFullYear(),mo:M.getMonth()+1,d:M.getDate(),h:M.getHours(),mi:M.getMinutes()},I=D.timeZone;if(!I)return w;try{const W=new Intl.DateTimeFormat("en-US",{timeZone:I,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(M),G={y:0,mo:1,d:1,h:0,mi:0};for(const ne of W)ne.type==="year"?G.y=Number(ne.value):ne.type==="month"?G.mo=Number(ne.value):ne.type==="day"?G.d=Number(ne.value):ne.type==="hour"?G.h=Number(ne.value)%24:ne.type==="minute"&&(G.mi=Number(ne.value));return G}catch{return w}}function P(D,M){if(M==null||M==="")return null;if(typeof M=="number")return z(D,new Date(M));if(M instanceof Date)return z(D,M);if(typeof M=="string"){const w=M.trim();if(X(D)==="time"){const W=/^(\d{1,2}):(\d{2})/.exec(w);return W?{y:null,mo:null,d:null,h:Number(W[1]),mi:Number(W[2])}:null}const I=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(w);return I?{y:Number(I[1]),mo:Number(I[2]),d:Number(I[3]),h:I[4]!=null?Number(I[4]):0,mi:I[5]!=null?Number(I[5]):0}:null}return null}function A(D,M){if(!M)return null;if(X(D)==="time")return`${B(M.h)}:${B(M.mi)}`;const w=`${B(M.y)}-${B(M.mo)}-${B(M.d)}`;return X(D)==="date"?w:`${w}T${B(M.h)}:${B(M.mi)}`}function j(D,M){if(!M)return"";const w=X(D);if(w==="time")return`${B(M.h)}:${B(M.mi)}`;const I=D.locale||void 0,W={dateStyle:"medium"};return w==="date-time"&&(W.timeStyle="short"),new Intl.DateTimeFormat(I,W).format(new Date(M.y,M.mo-1,M.d,M.h,M.mi))}function k(D,M){return M==null?!0:!(D.min!=null&&M<String(D.min)||D.max!=null&&M>String(D.max))}function g(D,M){return new Intl.DateTimeFormat(D.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+M))}function n(D,M){return new Intl.DateTimeFormat(D.locale||void 0,{month:"long",year:"numeric"}).format(new Date(M.y,M.mo-1,1))}function u(D){return String(D.y)}function b(D){const M=D.ownerDocument&&D.ownerDocument.defaultView,w=M&&typeof M.Event=="function"?M.Event:null;D.dispatchEvent(w?new w("change",{bubbles:!0}):{type:"change",bubbles:!0})}function v(D){try{const M=new Intl.DateTimeFormat(D.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return M==="h11"||M==="h12"}catch{return!1}}function t(D){try{const M=new Intl.DateTimeFormat(D.locale||void 0,{hour:"numeric",hour12:!0}),w=M.formatToParts(new Date(2021,0,1,9)).find(W=>W.type==="dayPeriod"),I=M.formatToParts(new Date(2021,0,1,15)).find(W=>W.type==="dayPeriod");if(w&&I)return{am:w.value,pm:I.value}}catch{}return null}function a(D){const M=D%12;return M===0?12:M}function s(D,M){return M?D===12?12:D+12:D===12?0:D}function p(D){if(typeof D!="string")return null;const M=/^(\d{4})-(\d{2})-(\d{2})$/.exec(D.trim());if(!M)return null;const w={y:Number(M[1]),mo:Number(M[2]),d:Number(M[3])};return w.mo<1||w.mo>12||w.d<1||w.d>C(w.y,w.mo)?null:w}function y(D,M,w){return`${B(D)}-${B(M)}-${B(w)}`}function m(D,M,w){return Date.UTC(D,M-1,w)/864e5}function h(D){const M=p(D);return M?m(M.y,M.mo,M.d):NaN}function R(D){const M=new Date(D*864e5);return{y:M.getUTCFullYear(),mo:M.getUTCMonth()+1,d:M.getUTCDate()}}function d(D){if(typeof D!="string")return null;const M=/^(\d{4})-(\d{2})$/.exec(D.trim());if(!M)return null;const w={y:Number(M[1]),mo:Number(M[2])};return w.mo<1||w.mo>12?null:w}function c(D,M){return`${B(D)}-${B(M)}`}function i(D,M){return D*12+(M-1)}function r(D){return{y:Math.floor(D/12),mo:D%12+1}}function l(D,M,w){const I=new Date(Date.UTC(D,M-1,w)),W=I.getUTCDay()||7;I.setUTCDate(I.getUTCDate()+4-W);const G=new Date(Date.UTC(I.getUTCFullYear(),0,1));return Math.ceil(((I-G)/864e5+1)/7)}function f(D,M){const w=D.ownerDocument,I=w?w.activeElement:null;return!I||typeof D.contains!="function"||!D.contains(I)?-1:Array.prototype.indexOf.call(D.querySelectorAll(`.${M}`),I)}function T(D,M,w){if(w<0)return;const I=D.querySelectorAll(`.${M}`)[w];I&&typeof I.focus=="function"&&I.focus()}function V(D,M){const w=D&&D.defaultView;(w&&typeof w.setTimeout=="function"?w.setTimeout.bind(w):setTimeout)(M,0)}}),Ne("packages/modules/form/controls/date-typed.js",function(N,Z){"use strict";Object.defineProperty(N,"setTypedError",{enumerable:!0,get:function(){return e}});function e(B,S){let X=B.__typedError;if(S==null){X&&(X.hidden=!0),B.__input&&B.__input.removeAttribute("aria-invalid");return}X||(X=B.ownerDocument.createElement("div"),X.className="lat-form__error lat-form__typed-error",X.setAttribute("role","alert"),B.__typedError=X,B.appendChild(X)),X.textContent=S,X.hidden=!1,B.__input&&B.__input.setAttribute("aria-invalid","true")}}),Ne("packages/modules/form/controls/datepicker-draft.js",function(N,Z){"use strict";Object.defineProperty(N,"isDraftMode",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"getDraft",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"readDraftClock",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"pickDraftDay",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"commitDraft",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"dropDraft",{enumerable:!0,get:function(){return g}});const e=Z("packages/modules/form/controls/date-shared.js"),B=e.modeOf,S=e.displayOf,X=e.to24Hour,C=e.isoOf;function z(n){return B(n.__item)==="date-time"}function P(n){if(!n.__draft){const u=n.__fields;n.__draft=u?{y:u.y,mo:u.mo,d:u.d,h:u.h,mi:u.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return n.__draft}function A(n){const u=P(n);if(!n.__hour)return;let b=Number(n.__hour.value)||0;const v=n.__minute&&Number(n.__minute.value)||0;n.__ampm&&(b=X(b,n.__pm===!0)),u.h=b,u.mi=v}function j(n,u,b,v,t){A(n);const a=P(n);a.y=u,a.mo=b,a.d=v,n.__cursor=v,n.__input.value=S(n.__item,a),n.__typedDirty=!1,t(n)}function k(n,u){A(n);const b=P(n);if(b.d==null)return;const v={y:b.y,mo:b.mo,d:b.d,h:b.h,mi:b.mi};C(n.__item,v)!==C(n.__item,n.__fields)&&u(n,v)}function g(n){const u=n.__draft;n.__draft=null,u&&u.d!=null&&z(n)&&(n.__input.value=S(n.__item,n.__fields),n.__typedDirty=!1)}}),Ne("packages/modules/form/controls/datepicker.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/field-icon.js"),X=S.makeFieldIcon,C=S.injectFieldIconStyles,z=Z("packages/modules/form/controls/date-shared.js"),P=z.pad,A=z.echoKey,j=z.modeOf,k=z.daysInMonth,g=z.parseValue,n=z.isoOf,u=z.displayOf,b=z.withinRange,v=z.weekdayName,t=z.monthTitle,a=z.dispatchChange,s=z.is12Hour,p=z.dayPeriods,y=z.to12Hour,m=z.to24Hour,h=z.focusedNavIndex,R=z.restoreNavFocus,d=z.afterFocusSettles,c=z.parseTypedDate,i=z.splitTypedTime,l=Z("packages/modules/form/controls/date-typed.js").setTypedError,T=Z("packages/modules/form/controls/popup-layer.js").openInLayer,V=Z("packages/modules/form/controls/datepicker-draft.js"),D=V.isDraftMode,M=V.getDraft,w=V.pickDraftDay,I=V.readDraftClock,W=V.commitDraft,G=V.dropDraft,ne=Object.freeze(["date","date-time","time"]),be="lat-form__datepicker-popup--above";function Ae(_,re){_.__fields=re,_.__input.value=u(_.__item,re),_.__typedDirty=!1,$(_),a(_)}function le(_){const re=_.__fields!=null;return _.__fields=null,_.__draft=null,_.__input.value="",_.__typedDirty=!1,l(_,null),$(_),re}function $(_){if(!_.__clear)return;const re=_.__fields!=null&&_.__readOnly!==!0;_.__clear.hidden=!re,_.__input.classList.toggle("lat-form__datepicker-input--with-clear",re)}function ie(_,re){const F=_.__item;if(j(F)==="time")return g(F,re);const{date:o,time:L}=i(re),Y=c(o,F);if(!Y)return null;const[Q,me,ge]=Y.split("-").map(Number),$e=_.__fields,je=L||(j(F)==="date-time"&&$e?{h:$e.h,mi:$e.mi}:{h:0,mi:0});return{y:Q,mo:me,d:ge,h:je.h,mi:je.mi}}function q(_,re){let{y:F,mo:o}=_.__view,L=_.__cursor+re;for(;L<1;)o-=1,o<1&&(o=12,F-=1),L+=k(F,o);let Y=k(F,o);for(;L>Y;)L-=Y,o+=1,o>12&&(o=1,F+=1),Y=k(F,o);_.__view={y:F,mo:o},_.__cursor=L,E(_)}function E(_){const re=_.__item,F=_.ownerDocument,o=_.__popup,L=_.__view,Y=j(re),Q=_.__fields,me=h(o,"lat-form__datepicker-nav"),ge=h(o,"lat-form__datepicker-day");for(;o.firstChild;)o.removeChild(o.firstChild);if(Y!=="time"){const $e=F.createElement("div");$e.className="lat-form__datepicker-head";const je=F.createElement("button");je.type="button",je.className="lat-form__datepicker-nav",je.setAttribute("aria-label",_.__t("form.datepicker.prev")),je.textContent="‹",je.addEventListener("click",()=>{H(_,-1)});const Pe=F.createElement("span");Pe.className="lat-form__datepicker-title",Pe.textContent=t(re,L);const ke=F.createElement("button");ke.type="button",ke.className="lat-form__datepicker-nav",ke.setAttribute("aria-label",_.__t("form.datepicker.next")),ke.textContent="›",ke.addEventListener("click",()=>{H(_,1)}),$e.appendChild(je),$e.appendChild(Pe),$e.appendChild(ke),o.appendChild($e);const O=F.createElement("div");O.className="lat-form__datepicker-weekdays";for(let oe=0;oe<7;oe+=1){const ve=F.createElement("span");ve.textContent=v(re,oe),O.appendChild(ve)}o.appendChild(O);const J=F.createElement("div");J.className="lat-form__datepicker-grid",J.setAttribute("role","grid"),J.tabIndex=0,_.__grid=J;const pe=new Date(L.y,L.mo-1,1).getDay();for(let oe=0;oe<pe;oe+=1){const ve=F.createElement("span");ve.className="lat-form__datepicker-blank",J.appendChild(ve)}const K=k(L.y,L.mo);for(let oe=1;oe<=K;oe+=1){const ve=F.createElement("button");ve.type="button",ve.className="lat-form__datepicker-day",ve.setAttribute("role","gridcell"),ve.textContent=String(oe);const xe=n(re,{y:L.y,mo:L.mo,d:oe,h:0,mi:0});b(re,xe)||(ve.disabled=!0),Q&&Q.y===L.y&&Q.mo===L.mo&&Q.d===oe&&ve.classList.add("is-selected"),_.__cursor===oe&&ve.classList.add("is-focus"),ve.addEventListener("click",()=>{if(D(_)){w(_,L.y,L.mo,oe,E);return}const we={y:L.y,mo:L.mo,d:oe,h:Q?Q.h:0,mi:Q?Q.mi:0};Y==="date"?(_.__cursor=oe,Ae(_,we),de(_)):(_.__cursor=oe,_.__fields=we,E(_))}),J.appendChild(ve)}o.appendChild(J),J.addEventListener("keydown",oe=>{oe.key==="ArrowLeft"?(oe.preventDefault(),q(_,-1)):oe.key==="ArrowRight"?(oe.preventDefault(),q(_,1)):oe.key==="ArrowUp"?(oe.preventDefault(),q(_,-7)):oe.key==="ArrowDown"?(oe.preventDefault(),q(_,7)):oe.key==="Home"?(oe.preventDefault(),_.__cursor=1,E(_)):oe.key==="End"?(oe.preventDefault(),_.__cursor=k(L.y,L.mo),E(_)):(oe.key==="Enter"||oe.key===" ")&&(oe.preventDefault(),ue(_))})}if(Y!=="date"){const $e=s(re)?p(re):null,je=!!$e,Pe=F.createElement("div");Pe.className="lat-form__datepicker-time";const ke=F.createElement("input");ke.type="number",ke.className="lat-form__datepicker-hour",ke.min=je?"1":"0",ke.max=je?"12":"23",ke.step="1",ke.setAttribute("aria-label",_.__t("form.datepicker.hour"));const O=F.createElement("span");O.textContent=":";const J=F.createElement("input");if(J.type="number",J.className="lat-form__datepicker-minute",J.min="0",J.max="59",J.step="1",J.setAttribute("aria-label",_.__t("form.datepicker.minute")),Pe.appendChild(ke),Pe.appendChild(O),Pe.appendChild(J),o.appendChild(Pe),_.__hour=ke,_.__minute=J,ke.addEventListener("change",()=>{x(_)}),J.addEventListener("change",()=>{x(_)}),D(_)&&M(_),_.__periods=$e,_.__ampm=null,je){const K=F.createElement("button");K.type="button",K.className="lat-form__datepicker-ampm",_.__ampm=K;const oe=()=>{_.__pm=!_.__pm,K.textContent=_.__pm?_.__periods.pm:_.__periods.am,x(_)};K.addEventListener("click",oe),Pe.appendChild(K)}const pe=F.createElement("button");pe.type="button",pe.className="lat-form__datepicker-done",pe.textContent=_.__t("form.datepicker.done"),pe.addEventListener("click",()=>{U(_)}),Pe.appendChild(pe)}te(_),R(o,"lat-form__datepicker-nav",me),R(o,"lat-form__datepicker-day",ge)}function H(_,re){let{y:F,mo:o}=_.__view;o+=re,o<1&&(o=12,F-=1),o>12&&(o=1,F+=1),_.__view={y:F,mo:o},_.__cursor=Math.min(_.__cursor,k(F,o)),E(_)}function x(_){if(D(_)){I(_),te(_);return}const re=_.__fields;let F=_.__hour&&Number(_.__hour.value)||0;const o=_.__minute&&Number(_.__minute.value)||0;_.__ampm&&(F=m(F,_.__pm===!0));const L=j(_.__item)==="time"?{y:null,mo:null,d:null,h:F,mi:o}:{y:re?re.y:_.__view.y,mo:re?re.mo:_.__view.mo,d:re?re.d:_.__cursor,h:F,mi:o};if(_.__cursor=re?re.d:_.__cursor,re&&n(_.__item,L)===n(_.__item,re)){te(_);return}Ae(_,L),te(_)}function U(_){if(_.__popup.hidden)return;_.__typedDirty&&ee(_)?a(_):D(_)?W(_,Ae):j(_.__item)!=="date"&&x(_),de(_)}function ee(_){const re=_.__item,F=_.__input,o=F.value;if(String(o).trim()==="")return _.__fields==null||_.__readOnly===!0?(F.value=u(re,_.__fields),_.__typedDirty=!1,!1):(_.__typedDirty=!1,le(_));const L=n(re,_.__fields),Y=ie(_,o);return Y?(l(_,null),_.__fields=Y,_.__draft=null,F.value=u(re,Y),_.__typedDirty=!1,$(_),_.__hour&&te(_),n(re,Y)!==L):(F.value=u(re,_.__fields),_.__typedDirty=!1,l(_,_.__t("form.datepicker.invalid")),!1)}function te(_){const re=D(_)?M(_):_.__fields,F=_.__ampm&&_.__periods;if(_.__hour){const o=re?re.h:0;_.__hour.value=P(F?y(o):o)}_.__minute&&(_.__minute.value=P(re?re.mi:0)),_.__ampm&&_.__periods&&(_.__pm=re?re.h>=12:!1,_.__ampm.textContent=_.__pm?_.__periods.pm:_.__periods.am)}function ue(_){const re=_.__view;if(D(_)){w(_,re.y,re.mo,_.__cursor,E);return}const F=_.__fields,o={y:re.y,mo:re.mo,d:_.__cursor,h:F?F.h:0,mi:F?F.mi:0};Ae(_,o),de(_)}function ae(_){if(_.__popup.hidden===!1||_.__item.disabled===!0||_.__item.readOnly===!0)return;const re=_.__fields,F=new Date;_.__view=re&&re.y!=null?{y:re.y,mo:re.mo}:{y:F.getFullYear(),mo:F.getMonth()+1},_.__cursor=re&&re.d!=null?re.d:F.getDate(),_.__popup.hidden=!1,E(_),_.__layer=T(_.__popup,_,{aboveClass:be,matchWidth:!1,onOffscreen:()=>de(_)})}function de(_){G(_),_.__popup.hidden=!0,_.__popup.classList.remove(be),_.__layer&&(_.__layer.close(),_.__layer=null)}B("datepicker",{kind:"field",build(_,re){const F=re.doc;C(F);const o=F.createElement("div");o.className="lat-form__datepicker",o.__item=_,o.__t=re.t||A,o.__mode=j(_),o.__readOnly=_.readOnly===!0,o.__fields=g(_,_.value),o.__cursor=o.__fields&&o.__fields.d!=null?o.__fields.d:new Date().getDate(),o.__view=o.__fields&&o.__fields.y!=null?{y:o.__fields.y,mo:o.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const L=F.createElement("input");L.type="text",L.className="lat-form__datepicker-input",_.name&&(L.name=_.name),_.placeholder!=null&&(L.placeholder=String(_.placeholder)),_.label!=null&&_.label!==""&&L.setAttribute("aria-label",String(_.label)),L.setAttribute("autocomplete","off"),L.value=u(_,o.__fields),o.__input=L,o.__typedDirty=!1,L.addEventListener("input",()=>{o.__typedDirty=!0});const Y=F.createElement("button");Y.type="button",Y.className="lat-form__datepicker-toggle";const Q=j(_)==="date";Y.setAttribute("aria-label",o.__t(Q?"form.datepicker.open":"form.datepicker.openTime"));const me=X(F,Q?"calendar":"clock");if(me&&Y.appendChild(me),o.__toggle=Y,_.props&&_.props.clearable===!0){const ke=F.createElement("button");ke.type="button",ke.className="lat-form__datepicker-clear",ke.setAttribute("aria-label",o.__t("form.datepicker.clear")),ke.hidden=!0;const O=X(F,"close");O&&ke.appendChild(O),o.__clear=ke,ke.addEventListener("click",()=>{o.__readOnly!==!0&&(de(o),le(o)&&a(o),o.__input.focus())})}const ge=F.createElement("div");ge.className="lat-form__datepicker-popup lat-form__datepicker",ge.hidden=!0,o.__popup=ge,o.appendChild(L),o.appendChild(Y),o.__clear&&o.appendChild(o.__clear),o.appendChild(ge),L.addEventListener("focus",()=>{ae(o)}),Y.addEventListener("click",()=>{ae(o)}),L.addEventListener("change",ke=>{ee(o)||ke.stopPropagation()}),L.addEventListener("keydown",ke=>{ke.key==="Escape"?de(o):ke.key==="Enter"&&o.__fields!=null&&String(L.value).trim()===""&&o.__readOnly!==!0&&(ke.preventDefault(),de(o),le(o)&&a(o))}),o.__ampm=null,o.__periods=null,o.__pm=!1;const $e=ke=>{o.contains(ke.target)||ge.contains(ke.target)||U(o)},je=ke=>{if((o.contains(ke.target)||ge.contains(ke.target))&&!(ke.relatedTarget&&(o.contains(ke.relatedTarget)||ge.contains(ke.relatedTarget)))){if(!ke.relatedTarget){d(F,()=>{if(ge.hidden)return;const J=F.activeElement;J&&(o.contains(J)||ge.contains(J))||U(o)});return}U(o)}},Pe=ke=>{ke.key==="Escape"&&(ke.preventDefault(),U(o),o.__toggle.focus())};return F.addEventListener("pointerdown",$e),F.addEventListener("focusout",je),ge.addEventListener("keydown",Pe),Array.isArray(re.disposers)&&re.disposers.push(()=>{de(o),F.removeEventListener("pointerdown",$e),F.removeEventListener("focusout",je),ge.removeEventListener("keydown",Pe)}),o},read(_){return n(_.__item,_.__fields)},write(_,re){l(_,null),_.__fields=g(_.__item,re),_.__draft=null,_.__input.value=u(_.__item,_.__fields),_.__typedDirty=!1,$(_),_.__fields&&_.__fields.y!=null&&(_.__view={y:_.__fields.y,mo:_.__fields.mo},_.__cursor=_.__fields.d),_.__hour&&!_.__popup.hidden&&te(_)},state(_,re){_.__input.disabled=re.disabled===!0,_.__input.readOnly=re.readOnly===!0,_.__toggle.disabled=re.disabled===!0||re.readOnly===!0,_.__readOnly=re.readOnly===!0,$(_)},validate(_,re,F){return b(re,F)?!0:typeof re.errorMessage=="string"&&re.errorMessage!==""?re.errorMessage:!1},focus(_){_.__input.focus()}})}),Ne("packages/modules/form/controls/time.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/field-icon.js"),X=S.makeFieldIcon,C=S.injectFieldIconStyles,z=Z("packages/modules/form/controls/date-shared.js"),P=z.pad,A=z.echoKey,j=z.fieldsOfDate,k=z.to12Hour,g=z.to24Hour,n=z.withinRange,u=z.dispatchChange,v=Z("packages/modules/form/controls/popup-layer.js").openInLayer,t="lat-form__time-popup--above";function a(w){return!!(w.props&&w.props.timeFormat===12)}function s(w){return!!(w.props&&w.props.valueFormat==="object")}function p(w){return!!(w.props&&w.props.editable===!0)}function y(w){return!!(w.props&&w.props.controls===!0)}function m(w){const I=w.props&&w.props.icon;return typeof I=="string"&&I!==""?I:"clock"}function h(w,I){if(typeof I!="string")return null;const W=I.trim(),G=/^(\d{1,2}):(\d{2})$/.exec(W);if(G){const ne=Number(G[1]),be=Number(G[2]);return ne>23||be>59?null:{h:ne,mi:be}}if(a(w)){const ne=/^(\d{1,2}):(\d{2})\s*([ap])\.?m\.?$/i.exec(W);if(!ne)return null;const be=Number(ne[1]),Ae=Number(ne[2]);return be<1||be>12||Ae>59?null:{h:g(be,ne[3].toLowerCase()==="p"),mi:Ae}}return null}function R(w,I){if(I==null||I==="")return null;if(typeof I=="number"){if(!Number.isFinite(I))return null;const W=I%1440,G=W<0?W+1440:W;return{h:Math.floor(G/60),mi:Math.round(G%60)}}if(I instanceof Date){const W=j(w,I);return W?{h:W.h,mi:W.mi}:null}if(typeof I=="string")return h(w,I);if(typeof I=="object"){const W=Number(I.hour),G=Number(I.minute);return!Number.isFinite(W)||!Number.isFinite(G)||G<0||G>59?null:a(w)?W<1||W>12?null:{h:g(W,I.AM!==!0),mi:G}:W<0||W>23?null:{h:W,mi:G}}return null}function d(w,I,W){return I?a(w)?`${P(k(I.h))}:${P(I.mi)} ${I.h<12?W.am:W.pm}`:`${P(I.h)}:${P(I.mi)}`:""}function c(w,I,W){return I?s(w)?a(w)?{hour:k(I.h),minute:I.mi,AM:I.h<12}:{hour:I.h,minute:I.mi}:d(w,I,W):null}function i(w){const I=w.__item,W=w.ownerDocument,G=w.__popup;for(;G.firstChild;)G.removeChild(G.firstChild);const ne=W.createElement("div");ne.className="lat-form__time-row";const be=W.createElement("input");be.type="number",be.className="lat-form__time-hour",be.min=w.__twelve?"1":"0",be.max=w.__twelve?"12":"23",be.step="1",be.setAttribute("aria-label",w.__t("form.datepicker.hour"));const Ae=W.createElement("span");Ae.className="lat-form__time-colon",Ae.textContent=":";const le=W.createElement("input");if(le.type="number",le.className="lat-form__time-minute",le.min="0",le.max="59",le.step="1",le.setAttribute("aria-label",w.__t("form.datepicker.minute")),ne.appendChild(be),ne.appendChild(Ae),ne.appendChild(le),G.appendChild(ne),w.__hour=be,w.__minute=le,be.addEventListener("change",()=>{l(w)}),le.addEventListener("change",()=>{l(w)}),w.__ampm=null,w.__twelve){const ie=W.createElement("button");ie.type="button",ie.className="lat-form__time-ampm",ie.addEventListener("click",()=>{w.__pm=!w.__pm,ie.textContent=w.__pm?w.__labels.pm:w.__labels.am,l(w)}),ne.appendChild(ie),w.__ampm=ie}const $=W.createElement("div");if($.className="lat-form__time-actions",y(I)){const ie=W.createElement("button");ie.type="button",ie.className="lat-form__time-close",ie.textContent=w.__t("form.time.close"),ie.addEventListener("click",()=>{D(w)}),$.appendChild(ie);const q=W.createElement("button");q.type="button",q.className="lat-form__time-save",q.textContent=w.__t("form.time.save"),q.addEventListener("click",()=>{T(w)}),$.appendChild(q)}else{const ie=W.createElement("button");ie.type="button",ie.className="lat-form__time-done",ie.textContent=w.__t("form.datepicker.done"),ie.addEventListener("click",()=>{f(w)}),$.appendChild(ie)}G.appendChild($),r(w)}function r(w){const I=w.__draft||{h:0,mi:0};w.__hour&&(w.__hour.value=P(w.__twelve?k(I.h):I.h)),w.__minute&&(w.__minute.value=P(I.mi)),w.__ampm&&(w.__pm=I.h>=12,w.__ampm.textContent=w.__pm?w.__labels.pm:w.__labels.am)}function l(w){const I=w.__hour&&Number(w.__hour.value)||0,W=w.__minute&&Number(w.__minute.value)||0,G={h:w.__ampm?g(I,w.__pm===!0):I,mi:W};if(w.__draft=G,y(w.__item)){r(w);return}w.__fields=G,w.__input.value=d(w.__item,G,w.__labels),w.__lastText=d(w.__item,G,w.__labels),u(w),w.__draft=w.__fields,r(w)}function f(w){w.__popup.hidden||(y(w.__item)||l(w),D(w))}function T(w){const I=w.__draft||{h:0,mi:0};w.__fields=I,w.__input.value=d(w.__item,I,w.__labels),w.__lastText=d(w.__item,I,w.__labels),u(w),D(w)}function V(w){w.__popup.hidden!==!1&&(w.__item.disabled===!0||w.__item.readOnly===!0||(w.__draft=w.__fields?{h:w.__fields.h,mi:w.__fields.mi}:{h:0,mi:0},w.__pm=w.__draft.h>=12,w.__popup.hidden=!1,i(w),w.__layer=v(w.__popup,w,{aboveClass:t,matchWidth:!1,onOffscreen:()=>D(w)})))}function D(w){w.__popup.hidden=!0,w.__popup.classList.remove(t),w.__layer&&(w.__layer.close(),w.__layer=null)}function M(w){if(!w.__editable)return;const I=w.__input.value.trim();if(I===w.__lastText)return;const W=h(w.__item,I);W&&(w.__fields=W,w.__input.value=d(w.__item,W,w.__labels),w.__lastText=d(w.__item,W,w.__labels)),u(w)}B("time",{kind:"field",build(w,I){const W=I.doc;C(W);const G=W.createElement("div");G.className="lat-form__time",G.__item=w,G.__t=I.t||A,G.__twelve=a(w),G.__object=s(w),G.__editable=p(w),G.__labels={am:G.__t("form.time.am"),pm:G.__t("form.time.pm")},G.__fields=R(w,w.value),G.__draft=G.__fields?{h:G.__fields.h,mi:G.__fields.mi}:null;const ne=W.createElement("input");ne.type="text",ne.className="lat-form__time-input",w.name&&(ne.name=w.name),w.placeholder!=null&&(ne.placeholder=String(w.placeholder)),w.label!=null&&w.label!==""&&ne.setAttribute("aria-label",String(w.label)),ne.setAttribute("autocomplete","off"),ne.readOnly=!G.__editable,ne.value=d(w,G.__fields,G.__labels),G.__input=ne,G.__lastText=ne.value;const be=W.createElement("button");be.type="button",be.className="lat-form__time-toggle",be.setAttribute("aria-label",G.__t("form.time.open"));const Ae=X(W,m(w));Ae&&be.appendChild(Ae),G.__toggle=be;const le=W.createElement("div");le.className="lat-form__time-popup lat-form__time",le.hidden=!0,G.__popup=le,G.appendChild(ne),G.appendChild(be),G.appendChild(le),ne.addEventListener("focus",()=>{G.__editable||V(G)}),be.addEventListener("click",()=>{V(G)}),ne.addEventListener("change",E=>{E.stopPropagation(),M(G)}),ne.addEventListener("keydown",E=>{E.key==="Enter"&&G.__editable?(E.preventDefault(),M(G)):E.key==="Escape"?D(G):E.altKey&&E.key==="ArrowDown"&&(E.preventDefault(),V(G))});const $=E=>{G.contains(E.target)||le.contains(E.target)||f(G)},ie=E=>{(G.contains(E.target)||le.contains(E.target))&&(E.relatedTarget&&(G.contains(E.relatedTarget)||le.contains(E.relatedTarget))||f(G))},q=E=>{E.key==="Escape"&&(E.preventDefault(),f(G),G.__toggle.focus())};return W.addEventListener("pointerdown",$),W.addEventListener("focusout",ie),le.addEventListener("keydown",q),Array.isArray(I.disposers)&&I.disposers.push(()=>{D(G),W.removeEventListener("pointerdown",$),W.removeEventListener("focusout",ie),le.removeEventListener("keydown",q)}),G},read(w){const I=w.__input.value.trim();if(I==="")return null;const W=h(w.__item,I);return W?c(w.__item,W,w.__labels):I},write(w,I){w.__fields=R(w.__item,I),w.__input.value=d(w.__item,w.__fields,w.__labels),w.__lastText=d(w.__item,w.__fields,w.__labels),w.__draft=w.__fields?{h:w.__fields.h,mi:w.__fields.mi}:null},state(w,I){w.__input.disabled=I.disabled===!0,w.__input.readOnly=I.readOnly===!0||!w.__editable,w.__toggle.disabled=I.disabled===!0||I.readOnly===!0},validate(w,I,W){if(W==null)return!0;const G=R(I,W);return G?n(I,`${P(G.h)}:${P(G.mi)}`)?!0:typeof I.errorMessage=="string"&&I.errorMessage!==""?I.errorMessage:!1:typeof I.errorMessage=="string"&&I.errorMessage!==""?I.errorMessage:w.__t("form.time.invalid")},focus(w){w.__input.focus()}})}),Ne("packages/modules/form/controls/daterange.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/field-icon.js"),X=S.makeFieldIcon,C=S.injectFieldIconStyles,z=Z("packages/modules/form/controls/date-shared.js"),P=z.echoKey,A=z.daysInMonth,j=z.weekdayName,k=z.monthTitle,g=z.yearTitle,n=z.dispatchChange,u=z.parseDay,b=z.dayISO,v=z.dayNumber,t=z.dayNumberOf,a=z.dayOfNumber,s=z.parseMonth,p=z.monthISO,y=z.monthIndex,m=z.monthOfIndex,h=z.isoWeek,R=z.focusedNavIndex,d=z.restoreNavFocus,c=z.afterFocusSettles,i=z.parseTypedDate,l=Z("packages/modules/form/controls/date-typed.js").setTypedError,f=" – ";function T(O){return O.props&&O.props.granularity==="month"?"month":"day"}function V(O){return O.props&&typeof O.props=="object"?O.props:{}}function D(O){return V(O).applyButton!==!1}function M(O){return V(O).weekNumbers===!0}function w(O){return V(O).clearable===!0}function I(O){const J=V(O).firstDay;if(J!=null){const pe=Number(J);if(Number.isFinite(pe))return(pe%7+7)%7}try{const pe=new Intl.Locale(O.locale||void 0).weekInfo;if(pe&&pe.firstDay)return pe.firstDay%7}catch{}return 0}function W(O){const J=V(O).disabledDates;if(Array.isArray(J)){const pe=new Set(J.map(String));return K=>pe.has(K)}return typeof J=="function"?pe=>J(pe)===!0:null}function G(O,J){return O.min!=null&&J<String(O.min)||O.max!=null&&J>String(O.max)}function ne(O,J,pe){return!!(G(O,J)||pe&&pe(J))}function be(O,J,pe){if(O==null||J==null)return null;if(pe==="month"){const ve=s(O),xe=s(J);return!ve||!xe?null:y(xe.y,xe.mo)-y(ve.y,ve.mo)}const K=t(O),oe=t(J);return Number.isNaN(K)||Number.isNaN(oe)?null:oe-K}function Ae(O,J){return T(O)==="month"?J("form.daterange.months"):J("form.daterange.days")}function le(O,J){if(T(O)==="month")return[{label:J("form.daterange.monthThisMonth"),range:K=>[p(K.getFullYear(),K.getMonth()+1),p(K.getFullYear(),K.getMonth()+1)]},{label:J("form.daterange.monthLastMonth"),range:K=>{const oe=m(y(K.getFullYear(),K.getMonth()+1)-1);return[p(oe.y,oe.mo),p(oe.y,oe.mo)]}},{label:J("form.daterange.monthLast3"),range:K=>{const oe=y(K.getFullYear(),K.getMonth()+1),ve=m(oe-2),xe=m(oe);return[p(ve.y,ve.mo),p(xe.y,xe.mo)]}},{label:J("form.daterange.monthLast6"),range:K=>{const oe=y(K.getFullYear(),K.getMonth()+1),ve=m(oe-5),xe=m(oe);return[p(ve.y,ve.mo),p(xe.y,xe.mo)]}},{label:J("form.daterange.monthLast12"),range:K=>{const oe=y(K.getFullYear(),K.getMonth()+1),ve=m(oe-11),xe=m(oe);return[p(ve.y,ve.mo),p(xe.y,xe.mo)]}},{label:J("form.daterange.monthThisYear"),range:K=>[p(K.getFullYear(),1),p(K.getFullYear(),12)]},{label:J("form.daterange.monthLastYear"),range:K=>[p(K.getFullYear()-1,1),p(K.getFullYear()-1,12)]}];const pe=K=>b(K.getFullYear(),K.getMonth()+1,K.getDate());return[{label:J("form.daterange.today"),range:K=>[pe(K),pe(K)]},{label:J("form.daterange.yesterday"),range:K=>{const oe=a(v(K.getFullYear(),K.getMonth()+1,K.getDate())-1);return[b(oe.y,oe.mo,oe.d),b(oe.y,oe.mo,oe.d)]}},{label:J("form.daterange.last7"),range:K=>{const oe=v(K.getFullYear(),K.getMonth()+1,K.getDate()),ve=a(oe-6);return[b(ve.y,ve.mo,ve.d),pe(K)]}},{label:J("form.daterange.last30"),range:K=>{const oe=v(K.getFullYear(),K.getMonth()+1,K.getDate()),ve=a(oe-29);return[b(ve.y,ve.mo,ve.d),pe(K)]}},{label:J("form.daterange.thisMonth"),range:K=>[b(K.getFullYear(),K.getMonth()+1,1),b(K.getFullYear(),K.getMonth()+1,A(K.getFullYear(),K.getMonth()+1))]},{label:J("form.daterange.lastMonth"),range:K=>{const oe=m(y(K.getFullYear(),K.getMonth()+1)-1);return[b(oe.y,oe.mo,1),b(oe.y,oe.mo,A(oe.y,oe.mo))]}}]}function $(O,J){const pe=V(O).presets;return pe===!1?null:Array.isArray(pe)&&pe.length?pe.map(K=>({label:K&&K.label!=null?String(K.label):"",range:K&&K.range!=null?K.range:["",""]})):le(O,J)}function ie(O,J){return O==null&&J==null?"":J==null?`${O}${f}`:`${O}${f}${J}`}function q(O,J){const pe=String(J??"").trim();if(!pe)return{start:null,end:null};if(T(O)!=="month"){const Ie=pe.split(/\s+[–—-]\s+|\s+to\s+/i).map(He=>i(He,O));if(Ie.length<=2&&Ie.every(He=>He)){const[He,Se=null]=Ie;return Se&&He>Se?{start:Se,end:He}:{start:He,end:Se}}}const K=T(O)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,oe=[];let ve;for(;(ve=K.exec(pe))!==null;)oe.push(ve[1]);if(oe.length===0)return null;const xe=oe[0],we=oe.length>1?oe[oe.length-1]:null;if(T(O)==="month"){if(!s(xe)||we&&!s(we))return null}else if(!u(xe)||we&&!u(we))return null;return we&&xe>we?{start:we,end:xe}:{start:xe,end:we}}function E(O,J){return new Intl.DateTimeFormat(O.locale||void 0,{month:"short"}).format(new Date(2021,J-1,1))}function H(O){const J=O.__draftStart,pe=O.__draftEnd;return J!=null&&pe!=null?[J,pe]:J!=null&&O.__hover!=null&&O.__granularity==="day"?[J,O.__hover]:J!=null&&O.__hover!=null&&O.__granularity==="month"?[J,O.__hover]:null}function x(O,J){return O>=J[0]&&O<=J[1]}function U(O,J){if(O.__granularity==="month"){const oe=y(O.__cursor.y,O.__cursor.mo)+J,ve=m(oe);O.__cursor=ve,ee(O),$e(O);return}const pe=v(O.__cursor.y,O.__cursor.mo,O.__cursor.d)+J,K=a(pe);O.__cursor=K,ee(O),$e(O)}function ee(O){if(O.__granularity==="month"){O.__cursor.y<O.__view.y?O.__view={y:O.__cursor.y}:O.__cursor.y>O.__view.y+1&&(O.__view={y:O.__cursor.y-1});return}const pe=y(O.__cursor.y,O.__cursor.mo),K=y(O.__view.y,O.__view.mo);pe<K?O.__view={y:O.__cursor.y,mo:O.__cursor.mo}:pe>K+1&&(O.__view=m(pe-1))}function te(O,J){if(O.__granularity==="month"){O.__view={y:O.__view.y+J},$e(O);return}const pe=y(O.__view.y,O.__view.mo)+J,K=m(pe);O.__view=K,$e(O)}function ue(O,J){return O&&J&&O.y===J.y&&O.mo===J.mo&&(O.d==null||O.d===J.d)}function ae(O,J){return O.__granularity==="month"?p(J.y,J.mo):b(J.y,J.mo,J.d)}function de(O,J){const pe=ae(O,J);O.__phase!=="started"?(O.__draftStart=pe,O.__draftEnd=null,O.__phase="started"):pe<O.__draftStart?(O.__draftStart=pe,O.__draftEnd=null):(O.__draftEnd=pe,O.__phase="idle",D(O.__item)||_(O,!0)),O.__cursor=J,O.__hover=null,$e(O)}function _(O,J){O.__start=O.__draftStart,O.__end=O.__draftEnd,O.__phase="idle",O.__input.value=ie(O.__start,O.__end),n(O),J&&ke(O)}function re(O){O.__draftStart=O.__start,O.__draftEnd=O.__end,O.__phase="idle",O.__hover=null,ke(O)}function F(O){O.__start=null,O.__end=null,O.__draftStart=null,O.__draftEnd=null,O.__phase="idle",O.__input.value="",n(O)}function o(O,J,pe){for(;pe.firstChild;)pe.removeChild(pe.firstChild);const K=W(O.__item);if(O.__granularity==="month")me(O,J,pe,O.__view.y,K),me(O,J,pe,O.__view.y+1,K);else{L(O,J,pe,O.__view.y,O.__view.mo,K);const oe=m(y(O.__view.y,O.__view.mo)+1);L(O,J,pe,oe.y,oe.mo,K)}}function L(O,J,pe,K,oe,ve){const xe=O.__item,we=J.createElement("div");we.className="lat-form__daterange-panel";const Ie=J.createElement("div");Ie.className="lat-form__daterange-title",Ie.textContent=k(xe,{y:K,mo:oe}),we.appendChild(Ie);const He=I(xe),Se=M(xe),De=J.createElement("div");if(De.className=Se?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Se){const fe=J.createElement("span");fe.className="lat-form__daterange-weeknum-head",De.appendChild(fe)}for(let fe=0;fe<7;fe+=1){const Me=J.createElement("span");Me.textContent=j(xe,(He+fe)%7),De.appendChild(Me)}we.appendChild(De);const he=J.createElement("div");he.className=Se?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",he.setAttribute("role","grid"),he.setAttribute("aria-label",k(xe,{y:K,mo:oe})),he.tabIndex=0,we.appendChild(he);const Te=(new Date(K,oe-1,1).getDay()-He+7)%7,Ge=A(K,oe),Ke=v(K,oe,1)-Te,We=[];for(let fe=0;fe<Te;fe+=1){Se&&fe%7===0&&he.appendChild(Y(O,J,Ke));const Me=J.createElement("span");Me.className="lat-form__daterange-blank",he.appendChild(Me)}for(let fe=1;fe<=Ge;fe+=1){Se&&(Te+fe-1)%7===0&&he.appendChild(Y(O,J,Ke+(Te+fe-1)));const Me=Q(O,J,K,oe,fe,ve);We.push(Me),he.appendChild(Me)}ge(O,he,We),pe.appendChild(we)}function Y(O,J,pe){const K=J.createElement("span");K.className="lat-form__daterange-weeknum";const oe=new Date(pe*864e5),ve=pe-(oe.getUTCDay()+6)%7,xe=new Date(ve*864e5);return K.textContent=String(h(xe.getUTCFullYear(),xe.getUTCMonth()+1,xe.getUTCDate())),K}function Q(O,J,pe,K,oe,ve){const xe=b(pe,K,oe),we=J.createElement("button");we.type="button",we.className="lat-form__daterange-day",we.setAttribute("role","gridcell"),we.textContent=String(oe);const Ie=H(O),He=Ie?x(xe,Ie):!1,Se=ne(O.__item,xe,ve);return Se&&(we.disabled=!0),He&&we.classList.add("is-in-range"),O.__draftStart===xe&&we.classList.add("is-start"),O.__draftEnd===xe&&we.classList.add("is-end"),we.setAttribute("aria-selected",He&&!Se?"true":"false"),O.__cursor&&O.__cursor.y===pe&&O.__cursor.mo===K&&O.__cursor.d===oe&&we.classList.add("is-focus"),we.addEventListener("click",()=>{de(O,{y:pe,mo:K,d:oe})}),we.addEventListener("mouseover",()=>{O.__draftStart!=null&&O.__draftEnd==null&&!Se&&O.__hover!==xe&&(O.__hover=xe,$e(O))}),we}function me(O,J,pe,K,oe){const ve=O.__item,xe=J.createElement("div");xe.className="lat-form__daterange-panel";const we=J.createElement("div");we.className="lat-form__daterange-title",we.textContent=g({y:K}),xe.appendChild(we);const Ie=J.createElement("div");Ie.className="lat-form__daterange-grid lat-form__daterange-grid--months",Ie.setAttribute("role","grid"),Ie.setAttribute("aria-label",g({y:K})),xe.appendChild(Ie);const He=[];for(let Se=1;Se<=12;Se+=1){const De=p(K,Se),he=J.createElement("button");he.type="button",he.className="lat-form__daterange-month",he.setAttribute("role","gridcell"),he.textContent=E(ve,Se);const Re=H(O),Te=Re?x(De,Re):!1,Ge=ne(ve,De,oe);Ge&&(he.disabled=!0),Te&&he.classList.add("is-in-range"),O.__draftStart===De&&he.classList.add("is-start"),O.__draftEnd===De&&he.classList.add("is-end"),he.setAttribute("aria-selected",Te&&!Ge?"true":"false"),O.__cursor&&O.__cursor.y===K&&O.__cursor.mo===Se&&O.__cursor.d==null&&he.classList.add("is-focus"),he.addEventListener("click",()=>{de(O,{y:K,mo:Se})}),He.push(he),Ie.appendChild(he)}Ie.addEventListener("keydown",Se=>{if(Se.key==="ArrowLeft")Se.preventDefault(),U(O,-1);else if(Se.key==="ArrowRight")Se.preventDefault(),U(O,1);else if(Se.key==="ArrowUp")Se.preventDefault(),U(O,-3);else if(Se.key==="ArrowDown")Se.preventDefault(),U(O,3);else if(Se.key==="PageUp")Se.preventDefault(),te(O,-1);else if(Se.key==="PageDown")Se.preventDefault(),te(O,1);else if(Se.key==="Enter"||Se.key===" "){Se.preventDefault();const De=ae(O,O.__cursor);ne(O.__item,De,oe)||de(O,O.__cursor)}}),pe.appendChild(xe)}function ge(O,J,pe){J.addEventListener("keydown",K=>{const oe=O.__cursor;if(K.key==="ArrowLeft")K.preventDefault(),U(O,-1);else if(K.key==="ArrowRight")K.preventDefault(),U(O,1);else if(K.key==="ArrowUp")K.preventDefault(),U(O,-7);else if(K.key==="ArrowDown")K.preventDefault(),U(O,7);else if(K.key==="PageUp")K.shiftKey?(K.preventDefault(),te(O,-12)):(K.preventDefault(),te(O,-1));else if(K.key==="PageDown")K.shiftKey?(K.preventDefault(),te(O,12)):(K.preventDefault(),te(O,1));else if((K.key==="Enter"||K.key===" ")&&(K.preventDefault(),oe&&oe.d!=null)){const ve=b(oe.y,oe.mo,oe.d);ne(O.__item,ve,W(O.__item))||de(O,oe)}})}function $e(O){const J=O.ownerDocument,pe=O.__popup,K=O.__item,oe=R(pe,"lat-form__daterange-nav");for(;pe.firstChild;)pe.removeChild(pe.firstChild);const ve=J.createElement("div");ve.className="lat-form__daterange-head";const xe=J.createElement("button");xe.type="button",xe.className="lat-form__daterange-nav",xe.setAttribute("aria-label",O.__t("form.daterange.prev")),xe.textContent="‹",xe.addEventListener("click",()=>{te(O,-1)});const we=J.createElement("button");we.type="button",we.className="lat-form__daterange-nav",we.setAttribute("aria-label",O.__t("form.daterange.next")),we.textContent="›",we.addEventListener("click",()=>{te(O,1)}),ve.appendChild(xe);const Ie=J.createElement("div");Ie.className="lat-form__daterange-body";const He=$(K,O.__t);if(He){const De=J.createElement("div");De.className="lat-form__daterange-presets";const he=J.createElement("div");he.className="lat-form__daterange-presets-title",he.textContent=O.__t("form.daterange.presets"),De.appendChild(he);for(const Re of He){const Te=J.createElement("button");Te.type="button",Te.className="lat-form__daterange-preset",Te.textContent=Re.label,Te.addEventListener("click",()=>{je(O,Re.range)}),De.appendChild(Te)}Ie.appendChild(De)}const Se=J.createElement("div");if(Se.className="lat-form__daterange-panels",o(O,J,Se),Ie.appendChild(Se),ve.appendChild(Ie),ve.appendChild(we),pe.appendChild(ve),D(K)){const De=J.createElement("div");De.className="lat-form__daterange-footer";const he=J.createElement("button");he.type="button",he.className="lat-form__daterange-cancel",he.textContent=O.__t("form.daterange.cancel"),he.addEventListener("click",()=>{re(O)});const Re=J.createElement("button");Re.type="button",Re.className="lat-form__daterange-apply",Re.textContent=O.__t("form.daterange.apply"),Re.addEventListener("click",()=>{_(O,!0)}),De.appendChild(he),De.appendChild(Re),pe.appendChild(De)}d(pe,"lat-form__daterange-nav",oe)}function je(O,J){const pe=typeof J=="function"?J(new Date):J;if(!(!Array.isArray(pe)||pe.length<2)){if(O.__draftStart=pe[0],O.__draftEnd=pe[1],O.__phase="idle",O.__hover=null,O.__granularity==="day"){const K=u(pe[0]);K&&(O.__view={y:K.y,mo:K.mo}),O.__cursor=K||O.__cursor}else{const K=s(pe[0]);K&&(O.__view={y:K.y}),O.__cursor=K||O.__cursor}$e(O)}}function Pe(O){if(O.__popup.hidden===!1||O.__item.disabled===!0||O.__item.readOnly===!0)return;O.__draftStart=O.__start,O.__draftEnd=O.__end,O.__phase="idle",O.__hover=null;const J=new Date;if(O.__granularity==="month"){const pe=s(O.__start)||{y:J.getFullYear(),mo:J.getMonth()+1};O.__view={y:pe.y},O.__cursor=pe}else{const pe=u(O.__start)||{y:J.getFullYear(),mo:J.getMonth()+1,d:J.getDate()};O.__view={y:pe.y,mo:pe.mo},O.__cursor=pe}O.__popup.hidden=!1,$e(O)}function ke(O){O.__popup.hidden=!0}B("daterange",{kind:"field",build(O,J){const pe=J.doc;C(pe);const K=pe.createElement("div");K.className="lat-form__daterange",K.__item=O,K.__t=J.t||P,K.__granularity=T(O),K.__start=null,K.__end=null,K.__draftStart=null,K.__draftEnd=null,K.__hover=null,K.__phase="idle";const oe=typeof O.value=="object"&&O.value!=null?O.value:{};oe&&oe.start!=null&&(K.__start=String(oe.start)),oe&&oe.end!=null&&(K.__end=String(oe.end));const ve=pe.createElement("input");ve.type="text",ve.className="lat-form__daterange-input",O.name&&(ve.name=O.name),O.placeholder!=null&&(ve.placeholder=String(O.placeholder)),O.label!=null&&O.label!==""&&ve.setAttribute("aria-label",String(O.label)),ve.setAttribute("autocomplete","off"),ve.value=ie(K.__start,K.__end),K.__input=ve;const xe=pe.createElement("button");xe.type="button",xe.className="lat-form__daterange-toggle",xe.setAttribute("aria-label",K.__t("form.daterange.open"));const we=X(pe,"calendar");we&&xe.appendChild(we),K.__toggle=xe;const Ie=pe.createElement("button");Ie.type="button",Ie.className="lat-form__daterange-clear",Ie.setAttribute("aria-label",K.__t("form.daterange.clear"));const He=X(pe,"close");He&&Ie.appendChild(He),Ie.hidden=!w(O)||K.__start==null&&K.__end==null,K.__clear=Ie;const Se=pe.createElement("div");Se.className="lat-form__daterange-popup",Se.hidden=!0,K.__popup=Se,K.appendChild(ve),K.appendChild(Ie),K.appendChild(xe),K.appendChild(Se),ve.addEventListener("focus",()=>{Pe(K)}),xe.addEventListener("click",()=>{Pe(K)}),Ie.addEventListener("click",()=>{F(K)}),ve.addEventListener("change",Te=>{const Ge=q(O,ve.value);Ge?(l(K,null),K.__start=Ge.start,K.__end=Ge.end,ve.value=ie(Ge.start,Ge.end)):(Te.stopPropagation(),ve.value=ie(K.__start,K.__end),l(K,K.__t("form.datepicker.invalid")))}),ve.addEventListener("keydown",Te=>{Te.key==="Escape"&&(re(K),K.__toggle.focus())});const De=Te=>{K.contains(Te.target)||re(K)},he=Te=>{if(!(Te.relatedTarget&&K.contains(Te.relatedTarget))){if(!Te.relatedTarget){c(K.ownerDocument,()=>{if(K.__popup.hidden)return;const Ge=K.ownerDocument.activeElement;Ge&&K.contains(Ge)||re(K)});return}re(K)}},Re=Te=>{Te.key==="Escape"&&(Te.preventDefault(),re(K),K.__toggle.focus())};return pe.addEventListener("pointerdown",De),K.addEventListener("focusout",he),Se.addEventListener("keydown",Re),Array.isArray(J.disposers)&&J.disposers.push(()=>{pe.removeEventListener("pointerdown",De),K.removeEventListener("focusout",he),Se.removeEventListener("keydown",Re)}),K},read(O){return{start:O.__start,end:O.__end}},write(O,J){l(O,null);const pe=J&&typeof J=="object"?J:{};O.__start=pe.start!=null?String(pe.start):null,O.__end=pe.end!=null?String(pe.end):null,O.__input.value=ie(O.__start,O.__end),O.__clear&&(O.__clear.hidden=!w(O.__item)||O.__start==null&&O.__end==null)},state(O,J){O.__input.disabled=J.disabled===!0,O.__input.readOnly=J.readOnly===!0,O.__toggle.disabled=J.disabled===!0||J.readOnly===!0},validate(O,J,pe){const K=pe&&typeof pe=="object"?pe:{start:null,end:null},oe=K.start!=null?String(K.start):null,ve=K.end!=null?String(K.end):null,xe=O.__t;if(J.required===!0&&oe==null&&ve==null)return xe("form.validation.required");if(oe==null&&ve==null)return!0;if(oe==null||ve==null)return xe("form.daterange.invalid");if(G(J,oe)||G(J,ve))return xe("form.daterange.bounds");const we=be(oe,ve,O.__granularity);if(we==null)return xe("form.daterange.invalid");const Ie=V(J).minSpan,He=V(J).maxSpan;return Ie!=null&&we<Number(Ie)?xe("form.daterange.minSpan",{min:String(Ie),unit:Ae(J,xe)}):He!=null&&we>Number(He)?xe("form.daterange.maxSpan",{max:String(He),unit:Ae(J,xe)}):!0},focus(O){O.__input.focus()}})}),Ne("packages/modules/form/controls/file.js",function(N,Z){"use strict";Object.defineProperty(N,"formatSize",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"accepts",{enumerable:!0,get:function(){return g}});const B=Z("packages/modules/form/controls/registry.js").registerControl,S="lat-uploader",X="http://www.w3.org/2000/svg",C="data-lattice-uploader-styles";function z(){return`
1873
+ .${S}{
1844
1874
  --lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
1845
1875
  --lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
1846
1876
  --lattice-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #b45309));
1847
1877
  --lattice-up-warning-soft:color-mix(in srgb, var(--lattice-up-warning) 12%, var(--lattice-background));
1848
1878
  display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2);min-width:0;
1849
1879
  }
1850
- @scope ([data-theme="dark"]){ .${$}{ --lattice-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } }
1851
- @media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${$}{ --lattice-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } } }
1880
+ @scope ([data-theme="dark"]){ .${S}{ --lattice-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } }
1881
+ @media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${S}{ --lattice-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } } }
1852
1882
 
1853
- .${$} input.${$}__input{
1883
+ .${S} input.${S}__input{
1854
1884
  position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;
1855
1885
  margin:0;padding:0;border:0;clip:rect(0 0 0 0);
1856
1886
  }
1857
1887
 
1858
- .${$}__zone{
1888
+ .${S}__zone{
1859
1889
  display:flex;flex-direction:column;align-items:center;justify-content:center;
1860
1890
  gap:calc(var(--lattice-space)/2);box-sizing:border-box;min-width:0;
1861
1891
  min-height:calc(140px * var(--lattice-scale));
@@ -1868,106 +1898,106 @@ ${r}
1868
1898
  background-color var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease),
1869
1899
  box-shadow var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease);
1870
1900
  }
1871
- .${$}__zone:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-2px; }
1872
- .${$}__zone[hidden]{ display:none; }
1901
+ .${S}__zone:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-2px; }
1902
+ .${S}__zone[hidden]{ display:none; }
1873
1903
 
1874
- .${$}__icon{ width:calc(28px * var(--lattice-scale)); height:calc(28px * var(--lattice-scale)); flex:0 0 auto; color:var(--lattice-accent); }
1875
- .${$}__title{ display:flex; align-items:baseline; justify-content:center; gap:0.2em; flex-wrap:wrap; color:var(--lattice-foreground); font-weight:600; }
1876
- .${$} button.${$}__browse{
1904
+ .${S}__icon{ width:calc(28px * var(--lattice-scale)); height:calc(28px * var(--lattice-scale)); flex:0 0 auto; color:var(--lattice-accent); }
1905
+ .${S}__title{ display:flex; align-items:baseline; justify-content:center; gap:0.2em; flex-wrap:wrap; color:var(--lattice-foreground); font-weight:600; }
1906
+ .${S} button.${S}__browse{
1877
1907
  box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;
1878
1908
  border:0;border-radius:0;background:transparent;color:var(--lattice-accent);
1879
1909
  font:inherit;line-height:inherit;font-weight:600;cursor:pointer;
1880
1910
  text-decoration:underline;text-underline-offset:2px;
1881
1911
  }
1882
- .${$} button.${$}__browse:hover{ color:var(--lattice-focus-ring, var(--lattice-accent)); }
1883
- .${$} button.${$}__browse:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1884
- .${$}__drop{ display:none; color:var(--lattice-foreground); font-weight:600; }
1885
- .${$}__hint{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); }
1886
- .${$}__compact{ display:none; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-foreground); }
1887
- .${$}__compact svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-accent); }
1912
+ .${S} button.${S}__browse:hover{ color:var(--lattice-focus-ring, var(--lattice-accent)); }
1913
+ .${S} button.${S}__browse:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1914
+ .${S}__drop{ display:none; color:var(--lattice-foreground); font-weight:600; }
1915
+ .${S}__hint{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); }
1916
+ .${S}__compact{ display:none; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-foreground); }
1917
+ .${S}__compact svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-accent); }
1888
1918
 
1889
- .${$}__zone.is-compact{
1919
+ .${S}__zone.is-compact{
1890
1920
  flex-direction:row;justify-content:flex-start;text-align:left;min-height:0;
1891
1921
  padding:calc(var(--lattice-space) * 1.25);gap:calc(var(--lattice-space)/2);
1892
1922
  }
1893
- .${$}__zone.is-compact .${$}__icon,
1894
- .${$}__zone.is-compact .${$}__title,
1895
- .${$}__zone.is-compact .${$}__hint{ display:none; }
1896
- .${$}__zone.is-compact .${$}__compact{ display:inline-flex; }
1923
+ .${S}__zone.is-compact .${S}__icon,
1924
+ .${S}__zone.is-compact .${S}__title,
1925
+ .${S}__zone.is-compact .${S}__hint{ display:none; }
1926
+ .${S}__zone.is-compact .${S}__compact{ display:inline-flex; }
1897
1927
 
1898
- .${$}__zone.is-dragover{
1928
+ .${S}__zone.is-dragover{
1899
1929
  border-color:var(--lattice-accent);border-style:solid;
1900
1930
  background:var(--lat-up-accent-soft);
1901
1931
  box-shadow:0 0 0 3px color-mix(in srgb, var(--lattice-accent) 18%, transparent);
1902
1932
  }
1903
- .${$}__zone.is-dragover .${$}__title{ display:none; }
1904
- .${$}__zone.is-dragover .${$}__drop{ display:block; }
1905
- .${$}__zone.is-dragover .${$}__compact{ display:none; }
1906
- .${$}__zone.is-invalid{
1933
+ .${S}__zone.is-dragover .${S}__title{ display:none; }
1934
+ .${S}__zone.is-dragover .${S}__drop{ display:block; }
1935
+ .${S}__zone.is-dragover .${S}__compact{ display:none; }
1936
+ .${S}__zone.is-invalid{
1907
1937
  border-color:var(--lattice-up-warning);border-style:solid;
1908
1938
  background:var(--lattice-up-warning-soft);
1909
1939
  box-shadow:0 0 0 3px color-mix(in srgb, var(--lattice-up-warning) 18%, transparent);
1910
1940
  }
1911
- .${$}__zone.is-invalid .${$}__icon,
1912
- .${$}__zone.is-invalid .${$}__title,
1913
- .${$}__zone.is-invalid .${$}__drop,
1914
- .${$}__zone.is-invalid .${$}__compact{ color:var(--lattice-up-warning); }
1941
+ .${S}__zone.is-invalid .${S}__icon,
1942
+ .${S}__zone.is-invalid .${S}__title,
1943
+ .${S}__zone.is-invalid .${S}__drop,
1944
+ .${S}__zone.is-invalid .${S}__compact{ color:var(--lattice-up-warning); }
1915
1945
 
1916
- .${$}__list{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2); }
1917
- .${$}__list[hidden]{ display:none; }
1946
+ .${S}__list{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2); }
1947
+ .${S}__list[hidden]{ display:none; }
1918
1948
 
1919
- .${$}__item{
1949
+ .${S}__item{
1920
1950
  display:flex;align-items:center;gap:calc(var(--lattice-space)/2);box-sizing:border-box;
1921
1951
  min-height:var(--lattice-row-height);padding:calc(var(--lattice-space)/2) calc(var(--lattice-space));
1922
1952
  border:var(--lattice-border-width) solid var(--lattice-border-color);
1923
1953
  border-radius:var(--lattice-radius);background:var(--lattice-background);
1924
1954
  }
1925
- .${$}__item-icon{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1926
- .${$}__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); }
1927
- .${$}__item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(var(--lattice-space)/4); }
1928
- .${$}__item-row{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); min-width:0; }
1929
- .${$}__item-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1930
- .${$}__item-size{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); flex:0 0 auto; }
1931
- .${$}__item-state{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space)/4); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1932
- .${$}__item-state svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1933
- .${$}__item.is-done .${$}__item-state{ color:var(--lattice-success); }
1934
- .${$}__item.is-error .${$}__item-state,
1935
- .${$}__item.is-rejected .${$}__item-state{ color:var(--lattice-danger); }
1936
- .${$}__item-pct{ font-variant-numeric:tabular-nums; }
1937
- .${$}__item-bar{ display:block; height:3px; border-radius:calc(var(--lattice-radius) / 2); background:color-mix(in srgb, var(--lattice-border-color) 60%, transparent); overflow:hidden; }
1938
- .${$}__item-fill{ display:block; height:100%; background:var(--lattice-accent); transition:width var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease); }
1939
- .${$}__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); }
1940
- .${$} button.${$}__retry{
1955
+ .${S}__item-icon{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1956
+ .${S}__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); }
1957
+ .${S}__item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(var(--lattice-space)/4); }
1958
+ .${S}__item-row{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); min-width:0; }
1959
+ .${S}__item-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1960
+ .${S}__item-size{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); flex:0 0 auto; }
1961
+ .${S}__item-state{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space)/4); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1962
+ .${S}__item-state svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1963
+ .${S}__item.is-done .${S}__item-state{ color:var(--lattice-success); }
1964
+ .${S}__item.is-error .${S}__item-state,
1965
+ .${S}__item.is-rejected .${S}__item-state{ color:var(--lattice-danger); }
1966
+ .${S}__item-pct{ font-variant-numeric:tabular-nums; }
1967
+ .${S}__item-bar{ display:block; height:3px; border-radius:calc(var(--lattice-radius) / 2); background:color-mix(in srgb, var(--lattice-border-color) 60%, transparent); overflow:hidden; }
1968
+ .${S}__item-fill{ display:block; height:100%; background:var(--lattice-accent); transition:width var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease); }
1969
+ .${S}__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); }
1970
+ .${S} button.${S}__retry{
1941
1971
  box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;border:0;border-radius:0;
1942
1972
  background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;
1943
1973
  text-decoration:underline;text-underline-offset:2px;
1944
1974
  }
1945
- .${$} button.${$}__retry:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1946
- .${$} button.${$}__remove{
1975
+ .${S} button.${S}__retry:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1976
+ .${S} button.${S}__remove{
1947
1977
  display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
1948
1978
  width:calc(var(--lattice-row-height) - 8px);height:calc(var(--lattice-row-height) - 8px);
1949
1979
  min-height:0;margin:0;padding:0;border:0;border-radius:var(--lattice-radius);
1950
1980
  background:none;color:var(--lattice-foreground-muted);cursor:pointer;flex:0 0 auto;
1951
1981
  }
1952
- .${$} button.${$}__remove svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1953
- .${$} button.${$}__remove:hover{ background:color-mix(in srgb, var(--lattice-foreground) 8%, transparent); color:var(--lattice-foreground); }
1954
- .${$} button.${$}__remove:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-1px; }
1982
+ .${S} button.${S}__remove svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1983
+ .${S} button.${S}__remove:hover{ background:color-mix(in srgb, var(--lattice-foreground) 8%, transparent); color:var(--lattice-foreground); }
1984
+ .${S} button.${S}__remove:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-1px; }
1955
1985
 
1956
- .${$}[aria-disabled='true']{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1957
- .${$}[aria-disabled='true'] .${$}__item{
1986
+ .${S}[aria-disabled='true']{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1987
+ .${S}[aria-disabled='true'] .${S}__item{
1958
1988
  background:var(--lattice-disabled-background); border-color:var(--lattice-disabled-border);
1959
1989
  }
1960
- .${$}[aria-readonly='true']{ cursor:default; }
1961
- .${$} button:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1962
- .${$}__live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
1990
+ .${S}[aria-readonly='true']{ cursor:default; }
1991
+ .${S} button:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1992
+ .${S}__live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
1963
1993
 
1964
1994
  @media (prefers-reduced-motion: reduce){
1965
- .${$}__zone{ transition:none; }
1966
- .${$}__zone.is-dragover, .${$}__zone.is-invalid{ box-shadow:none; }
1967
- .${$}__item-fill{ transition:none; }
1995
+ .${S}__zone{ transition:none; }
1996
+ .${S}__zone.is-dragover, .${S}__zone.is-invalid{ box-shadow:none; }
1997
+ .${S}__item-fill{ transition:none; }
1968
1998
  }
1969
- `.trim()}function j(u){const s=u&&u.documentElement;if(!s||s.getAttribute(k))return;s.setAttribute(k,"1");const o=u.createElement("style");o.textContent=P(),(u.head||u.body||s).appendChild(o)}function C(u,s){const o=s&&s.defaultView,r=o&&o.Event,l=r?new r("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(l)}function S(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function x(u){const s=Number(u)||0;return s<1024?`${s} B`:s<1048576?`${(s/1024).toFixed(s<10240?1:0)} KB`:s<1073741824?`${(s/1048576).toFixed(1)} MB`:`${(s/1073741824).toFixed(2)} GB`}function h(u,s){if(!s||!s.length)return!0;const o=(u.name||"").toLowerCase(),r=(u.type||"").toLowerCase();return s.some(l=>{const d=String(l).trim().toLowerCase();return d.startsWith(".")?o.endsWith(d):d.endsWith("/*")?r.startsWith(d.slice(0,-1)):r===d})}function n(u){return u.length?u.length===1?u[0]:u.length===2?`${u[0]} or ${u[1]}`:`${u.slice(0,-1).join(", ")} or ${u[u.length-1]}`:""}function c(u){const s={".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"},o=String(u).trim(),r=s[o.toLowerCase()];if(r)return r;if(o.startsWith("."))return o.slice(1).toUpperCase();if(o.endsWith("/*"))return`${o.slice(0,-2)}s`;const l=o.split("/")[1];return l?l.toUpperCase():o}function b(u,s,o,r){const l=[];return s&&s.length&&l.push(n(s.map(c))),o&&l.push(u("form.file.hint.size",{size:x(o)})),r&&l.push(u(r===1?"form.file.hint.file":"form.file.hint.files",{max:String(r)})),l.join(" · ")}function _(u){return{id:u.id,name:u.name,size:u.size,type:u.type,status:u.status,progress:u.progress,message:u.message||""}}function t(u,s){const o=u.createElementNS(q,"svg");o.setAttribute("viewBox","0 0 16 16"),o.setAttribute("focusable","false"),o.setAttribute("aria-hidden","true"),o.setAttribute("fill","none"),o.setAttribute("stroke","currentColor"),o.setAttribute("stroke-width","1.5"),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round");const r=u.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",s),o.appendChild(r),o}const a=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 i(u,s){const o=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let r;for(;r=o.exec(s);)u.setAttribute(r[1],r[3]===void 0?r[4]:r[3])}function f(u,s){const o=/<svg\b([^>]*)>/i.exec(s);if(!o)return null;const r=u.createElementNS(q,"svg");i(r,o[1]);const l=s.lastIndexOf("</svg"),d=l===-1?"":s.slice(o.index+o[0].length,l),T=/<(\w+)\b([^>]*?)(\/?)>/g;let U;for(;U=T.exec(d);){const z=u.createElementNS(q,U[1]);i(z,U[2]),r.appendChild(z)}return r.setAttribute("aria-hidden","true"),r.setAttribute("focusable","false"),r}function v(u,s){if(u===!1)return null;if(u!=null&&typeof u=="object"&&u.nodeType){const r=u;return r.classList.add(`${$}__icon`),r.setAttribute("aria-hidden","true"),r}if(typeof u!="string"||u==="")return null;const o=a[u]?t(s,a[u]):f(s,u);return o?(o.setAttribute("class",`${$}__icon`),o):null}function m(u){const s=u.type||"";return s.startsWith("image/")?"image":s==="application/pdf"||/\.pdf$/i.test(u.name)?"document":"file"}function g(u){if(u.thumb)return u.thumb;if(!u.file||!/^image\//.test(u.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{u.thumb=URL.createObjectURL(u.file)}catch{u.thumb=null}return u.thumb}function H(u){if(u.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(u.thumb)}catch{}u.thumb=null}R("file",{kind:"field",build(u,s){const o=s.doc,r=s.t,l=u.props||{},d=Array.isArray(l.accept)?l.accept.map(V=>String(V)):[],T=Number(l.maxSize)||0,U=Number(l.maxFiles)||0,z=l.multiple!==!1,L=typeof l.upload=="function"?l.upload:null,y=l.dropzone!==!1,M=l.dropText!=null?String(l.dropText):r("form.file.dropText"),W=l.browseText!=null?String(l.browseText):r("form.file.browse"),B=r("form.file.dropToUpload"),ne=r("form.file.addMore"),Ae=r("form.file.typeNotAccepted"),we=l.hint!=null&&l.hint!==""?String(l.hint):b(r,d,T,U);j(o);const ce=o.createElement("div");ce.className=$;const A={accept:d,maxSize:T,maxFiles:U,multiple:z,upload:L,dropText:M,browse:W,dropToUpload:B,addMore:ne,typeNotAccepted:Ae,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:y,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};ce.__latFile=A;const oe=o.createElement("input");oe.type="file",oe.className=`${$}__input`,oe.tabIndex=-1,oe.setAttribute("aria-hidden","true"),z&&(oe.multiple=!0),d.length&&(oe.accept=d.join(",")),ce.appendChild(oe),A.input=oe;const te=o.createElement("div");te.className=`${$}__zone`,te.setAttribute("role","button"),te.tabIndex=0,te.setAttribute("aria-label",`${M} ${W}`);const E=l.icon==null?t(o,a.upload):v(l.icon,o);E&&(l.icon==null&&E.setAttribute("class",`${$}__icon`),te.appendChild(E));const F=o.createElement("span");F.className=`${$}__title`;const w=o.createElement("span");w.className=`${$}__title-rest`,w.textContent=M,F.appendChild(w);const G=o.createElement("button");G.type="button",G.className=`${$}__browse`,G.tabIndex=-1,G.textContent=W,F.appendChild(G),te.appendChild(F),A.titleRest=w,A.browseEl=G;const Y=o.createElement("span");if(Y.className=`${$}__drop`,Y.textContent=B,te.appendChild(Y),we){const V=o.createElement("span");V.className=`${$}__hint`,V.textContent=we,te.appendChild(V)}const ie=o.createElement("span");ie.className=`${$}__compact`,ie.appendChild(t(o,a.upload));const D=o.createElement("span");D.className=`${$}__compact-text`,D.textContent=ne,ie.appendChild(D),te.appendChild(ie),A.compactText=D,ce.appendChild(te),A.zone=te;const J=o.createElement("ul");J.className=`${$}__list`,J.setAttribute("role","list"),J.hidden=!0,ce.appendChild(J),A.list=J;const ae=o.createElement("div");return ae.className=`${$}__live`,ae.setAttribute("role","status"),ae.setAttribute("aria-live","polite"),ce.appendChild(ae),A.live=ae,ce.__latAnnounce=V=>{A.live&&(A.live.textContent="",A.live.textContent=V)},ce.__latDragState=V=>{A.zone.classList.toggle("is-dragover",V==="over"),A.zone.classList.toggle("is-invalid",V==="invalid"),V==="none"?(A.titleRest.textContent=A.dropText,A.browseEl.hidden=!1,A.compactText.textContent=A.addMore):V==="over"?(A.titleRest.textContent=A.dropToUpload,A.browseEl.hidden=!0,A.compactText.textContent=A.dropToUpload):(A.titleRest.textContent=A.typeNotAccepted,A.browseEl.hidden=!0,A.compactText.textContent=A.typeNotAccepted)},ce.__latPaint=()=>{const V=A.disabled||A.readOnly||!A.dropzone;A.zone.hidden=V,A.zone.tabIndex=V?-1:0,V?A.zone.setAttribute("aria-disabled","true"):A.zone.removeAttribute("aria-disabled"),A.input.disabled=V;const se=A.entries.length>0;A.zone.classList.toggle("is-compact",se),A.zone.setAttribute("aria-label",se?A.addMore:`${A.dropText} ${A.browse}`),J.hidden=!A.entries.length,J.tabIndex=A.readOnly&&!A.disabled?0:-1,A.entries.some(p=>p.status==="rejected")?ce.setAttribute("aria-invalid","true"):ce.removeAttribute("aria-invalid"),J.textContent="";for(const p of A.entries){const I=o.createElement("li");I.className=`${$}__item is-${p.status}`,I.setAttribute("data-id",p.id),I.setAttribute("role","listitem");const Q=g(p);if(Q){const je=o.createElement("img");je.className=`${$}__item-thumb`,je.src=Q,je.alt="",I.appendChild(je)}else{const je=t(o,a[m(p)]);je.setAttribute("class",`${$}__item-icon`),I.appendChild(je)}const re=o.createElement("div");re.className=`${$}__item-main`,I.appendChild(re);const me=o.createElement("div");me.className=`${$}__item-row`,re.appendChild(me);const be=o.createElement("span");be.className=`${$}__item-name`,be.textContent=p.name,be.title=p.name,me.appendChild(be);const ke=o.createElement("span");ke.className=`${$}__item-size`,ke.textContent=x(p.size),me.appendChild(ke);const Le=o.createElement("span");if(Le.className=`${$}__item-state`,p.status==="uploading"){const je=o.createElement("span");je.className=`${$}__item-pct`,je.textContent=`${p.progress}%`,Le.appendChild(je)}else p.status==="done"?Le.appendChild(t(o,a.check)):(p.status==="error"||p.status==="rejected")&&Le.appendChild(t(o,a.warn));me.appendChild(Le);const Se=o.createElement("button");if(Se.type="button",Se.className=`${$}__remove`,Se.setAttribute("aria-label",`${r("form.file.remove")} ${p.name}`),Se.title=r("form.file.remove"),Se.appendChild(t(o,a.xmark)),Se.setAttribute("data-remove",p.id),Se.disabled=A.disabled||A.readOnly,me.appendChild(Se),p.status==="uploading"){const je=o.createElement("span");je.className=`${$}__item-bar`,je.setAttribute("role","progressbar"),je.setAttribute("aria-valuemin","0"),je.setAttribute("aria-valuemax","100"),je.setAttribute("aria-valuenow",String(p.progress));const O=o.createElement("span");O.className=`${$}__item-fill`,O.style.width=`${p.progress}%`,je.appendChild(O),re.appendChild(je)}if(p.message){const je=o.createElement("span");if(je.className=`${$}__item-message`,je.appendChild(o.createTextNode(p.message)),p.status==="error"){je.appendChild(o.createTextNode(" "));const O=o.createElement("button");O.type="button",O.className=`${$}__retry`,O.textContent=r("form.file.retry"),O.setAttribute("data-retry",p.id),O.disabled=A.disabled||A.readOnly,je.appendChild(O)}re.appendChild(je)}J.appendChild(I)}},ce.__latUpload=V=>{if(!A.upload){V.status="done",V.progress=100,ce.__latPaint();return}V.status="uploading",V.progress=0,V.message="";let se=null;typeof AbortController<"u"&&(se=new AbortController,A.controllers.set(V.id,se));const X=se?se.signal:void 0,p=Q=>{V.progress=Math.max(0,Math.min(100,Number(Q)||0)),V.status="uploading",ce.__latPaint()};let I;try{I=A.upload(V.file,{onProgress:p,signal:X})}catch(Q){I=Promise.reject(Q)}I&&typeof I.then=="function"&&I.then(()=>{A.controllers.delete(V.id),V.status="done",V.progress=100,ce.__latPaint(),ce.__latAnnounce(r("form.file.uploaded",{name:V.name})),C(ce,s.doc)},Q=>{A.controllers.delete(V.id),V.status="error",V.message=Q&&Q.message?String(Q.message):r("form.file.uploadFailed"),ce.__latPaint(),ce.__latAnnounce(r("form.file.failed",{name:V.name})),C(ce,s.doc)})},ce.__latTake=V=>{const se=[...V||[]];if(!se.length||A.disabled||A.readOnly)return;const X=A.multiple?se:se.slice(0,1),p=[],I=[];let Q=A.maxFiles?Math.max(0,A.maxFiles-A.entries.length):1/0;for(const re of X){if(Q<=0){I.push({file:re,reason:"count"});continue}if(A.maxSize&&re.size>A.maxSize){I.push({file:re,reason:"size"});continue}if(!h(re,A.accept)){I.push({file:re,reason:"type"});continue}p.push({id:S(),file:re,name:re.name,size:re.size,type:re.type,status:"selected",progress:0,message:""}),Q-=1}if(p.length){A.multiple||(A.entries=[]),A.entries.push(...p),ce.__latPaint(),C(ce,s.doc),ce.__latAnnounce(p.length===1?r("form.file.addedOne"):r("form.file.added",{count:String(p.length)}));for(const re of p)ce.__latUpload(re)}for(const re of I){const me=re.reason==="size"?r("form.file.rejected.size",{size:x(A.maxSize)}):re.reason==="type"?r("form.file.rejected.type"):r("form.file.rejected.count",{max:String(A.maxFiles)});A.entries.push({id:S(),file:re.file,name:re.file.name,size:re.file.size,type:re.file.type,status:"rejected",progress:0,message:me}),ce.__latAnnounce(me)}ce.__latPaint()},ce.__latRemove=V=>{const se=A.controllers.get(V);se&&(se.abort(),A.controllers.delete(V));const X=A.entries.find(p=>p.id===V);X&&H(X),A.entries=A.entries.filter(p=>p.id!==V),ce.__latPaint(),C(ce,s.doc)},ce.__latRetry=V=>{if(A.disabled||A.readOnly)return;const se=A.entries.find(X=>X.id===V);!se||!se.file||se.status==="rejected"||(ce.__latUpload(se),C(ce,s.doc))},ce.__latClick=V=>{if(A.disabled||A.readOnly)return;const se=V.target&&V.target.closest?V.target:null,X=se&&se.closest?se.closest("[data-remove]"):null;if(X&&ce.contains(X)){ce.__latRemove(X.getAttribute("data-remove"));return}const p=se&&se.closest?se.closest("[data-retry]"):null;if(p&&ce.contains(p)){ce.__latRetry(p.getAttribute("data-retry"));return}se&&se.closest&&se.closest(`.${$}__zone`)&&A.input.click()},ce.__latKeydown=V=>{A.disabled||A.readOnly||(V.key==="Enter"||V.key===" "||V.key==="Spacebar")&&V.target===A.zone&&(V.preventDefault(),A.input.click())},ce.__latChange=()=>{ce.__latTake(A.input.files),A.input.value=""},ce.__latDragKind=V=>{if(!A.accept.length)return"over";const se=V.dataTransfer;if(!se||!se.types||!se.types.length)return"over";const X=Array.from(se.types);return X.includes("Files")?"over":X.every(p=>!h({name:"",type:p},A.accept))?"invalid":"over"},ce.__latDrag=V=>{if(!(A.disabled||A.readOnly)){if(V.type==="dragenter"||V.type==="dragover"){V.preventDefault(),ce.__latDragState(ce.__latDragKind(V));return}if(V.type==="dragleave"){if(V.relatedTarget&&A.zone.contains(V.relatedTarget))return;ce.__latDragState("none");return}V.type==="drop"&&(V.preventDefault(),ce.__latDragState("none"),ce.__latTake(V.dataTransfer&&V.dataTransfer.files))}},ce.__latPaste=V=>{if(A.disabled||A.readOnly||!V.clipboardData)return;const se=[...V.clipboardData.files||[]];se.length&&(V.preventDefault(),ce.__latTake(se))},oe.addEventListener("change",ce.__latChange),ce.addEventListener("click",ce.__latClick),ce.addEventListener("keydown",ce.__latKeydown),ce.addEventListener("paste",ce.__latPaste),y&&["dragenter","dragover","dragleave","drop"].forEach(V=>ce.addEventListener(V,ce.__latDrag)),ce.__latPaint(),ce},read(u){const s=u.__latFile;return s?s.entries.filter(o=>o.status!=="rejected").map(_):[]},write(u,s){const o=u.__latFile;if(!o)return;const r=Array.isArray(s)?s:[],l=o.entries.filter(d=>d.status==="rejected");for(const d of o.entries)l.includes(d)||H(d);o.entries=l;for(const d of r)o.entries.push({id:d&&d.id?String(d.id):S(),file:d&&d.file?d.file:null,name:d&&d.name!=null?String(d.name):"",size:d&&d.size!=null?Number(d.size):0,type:d&&d.type!=null?String(d.type):"",status:d&&d.status?String(d.status):"done",progress:d&&d.progress!=null?Number(d.progress):100,message:d&&d.message?String(d.message):""});u.__latPaint&&u.__latPaint()},state(u,s){const o=u.__latFile;o&&(o.disabled=s.disabled===!0,o.readOnly=s.readOnly===!0,o.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),o.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),u.__latPaint&&u.__latPaint())},validate(u,s,o){const r=u.__latFile;if(!r)return null;const l=r.entries.find(d=>d.status==="rejected");return l&&l.message&&(!Array.isArray(o)||o.length===0)?l.message:r.maxFiles&&Array.isArray(o)&&o.length>r.maxFiles?`Too many files (max ${r.maxFiles})`:null}})}),Ne("packages/dom/src/editors/richtext-icons.js",function(N,Z){"use strict";Object.defineProperty(N,"TOOL_GLYPHS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"letterGlyph",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"toolGlyph",{enumerable:!0,get:function(){return k}});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"}}),$=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 q(P,j){const C=R[j],S=P.createElementNS(e,"svg");S.setAttribute("viewBox","0 0 16 16"),S.setAttribute("width","16"),S.setAttribute("height","16"),S.setAttribute("focusable","false"),S.setAttribute("aria-hidden","true");const x=P.createElementNS(e,"text");return x.setAttribute("x","8"),x.setAttribute("y","12"),x.setAttribute("text-anchor","middle"),x.style.fontSize="12px",x.style.fill="currentColor",x.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',C.weight&&(x.style.fontWeight=C.weight),C.style&&(x.style.fontStyle=C.style),C.decoration&&(x.style.textDecoration=C.decoration),x.textContent=C.char,S.appendChild(x),S}function k(P,j){const C=P.createElementNS(e,"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=P.createElementNS(e,"path");return S.setAttribute("d",$[j]),C.appendChild(S),C}}),Ne("packages/modules/form/controls/swatches.js",function(N,Z){"use strict";Object.defineProperty(N,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"hslToHex",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"buildSwatchButton",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"buildSwatchGrid",{enumerable:!0,get:function(){return h}});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]),$=Object.freeze([.82,.66,.5,.36,.22]),q=.62,k=Object.freeze([.92,.76,.56,.36,.18]);function P(n,c,b){let _=b;return _<0&&(_+=1),_>1&&(_-=1),_<1/6?n+(c-n)*6*_:_<1/2?c:_<2/3?n+(c-n)*(2/3-_)*6:n}function j(n,c,b){const _=(n%360+360)%360/360;let t,a,i;if(c===0)t=b,a=b,i=b;else{const v=b<.5?b*(1+c):b+c-b*c,m=2*b-v;t=P(m,v,_+1/3),a=P(m,v,_),i=P(m,v,_-1/3)}const f=v=>Math.round(v*255).toString(16).padStart(2,"0");return`#${f(t)}${f(a)}${f(i)}`}const C=Object.freeze(R.map(n=>Object.freeze($.map(c=>j(n,q,c))))),S=Object.freeze(k.map(n=>j(0,0,n)));function x(n,c,b={}){const _=n.createElement("button");return _.type="button",_.className="lat-form__swatch",_.style.background=c,_.setAttribute("role","option"),_.setAttribute("data-color",c),_.setAttribute("aria-selected",b.selected?"true":"false"),b.selected&&_.classList.add("is-selected"),_.title=b.title!=null?b.title:c,_.tabIndex=-1,_}function h(n,c,b={}){const _=n.createElement("div");_.className="lat-form__swatch-grid",_.setAttribute("role","listbox");const t=[];for(const a of c){const i=n.createElement("div");i.className=b.rowClass?`lat-form__swatch-row ${b.rowClass}`:"lat-form__swatch-row";const f=[];for(const v of a){const m=x(n,v,{selected:typeof b.isSelected=="function"&&b.isSelected(v),title:typeof b.title=="function"?b.title(v):void 0});i.appendChild(m),f.push(m)}_.appendChild(i),t.push(f)}return typeof b.onPick=="function"&&_.addEventListener("click",a=>{const i=a.target&&a.target.closest?a.target.closest(".lat-form__swatch"):null;i&&_.contains(i)&&b.onPick(i.getAttribute("data-color"),i)}),{el:_,rows:t}}}),Ne("packages/modules/form/controls/richtext.js",function(N,Z){"use strict";Object.defineProperty(N,"sanitize",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"escapeHtml",{enumerable:!0,get:function(){return k}});const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/dom/src/editors/sanitize-richtext.js"),q=$.sanitizeRichText,k=$.escapeHtml,P=Z("packages/dom/src/editors/richtext-icons.js"),j=P.letterGlyph,C=P.toolGlyph,S=P.TOOL_GLYPHS,x=Z("packages/modules/form/controls/swatches.js"),h=x.DEFAULT_COLORS,n=x.buildSwatchGrid,c=q,b=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"]}),_=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 a(g){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"}}[g]||null}const i=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function f(g){return Array.isArray(g)?g.map(H=>String(H)):b[g]||b.basic}function v(g){return new Promise((H,u)=>{const s=new FileReader;s.onload=()=>H(s.result),s.onerror=()=>u(s.error||new Error("read failed")),s.readAsDataURL(g)})}R("richtext",{kind:"field",build(g,H){const u=H.doc,s=g.props||{},o=f(s.toolbar),r=Array.isArray(s.headings)?s.headings:i,l=Array.isArray(s.colors)?s.colors:h,d=s.linkTarget!=null?String(s.linkTarget):"_blank",T=Number(s.minHeight)||160,U=Number(s.maxHeight)||0,z=Number(s.maxImageSize)||0,L=typeof s.onImage=="function"?s.onImage:null,y=s.sanitizePaste!==!1,M=s.allowedTags,W=s.placeholder!=null?String(s.placeholder):H.t("form.richtext.placeholder"),B=u.createElement("div");B.className="lat-form__richtext";const ne={toolbar:o,headings:r,colors:l,linkTarget:d,minHeight:T,maxHeight:U,maxImageSize:z,onImage:L,sanitizePaste:y,allowedTags:M,placeholder:W,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};B.__latRt=ne;const Ae=c(u,g.value==null?"":String(g.value),M,{});ne.history={stack:[Ae],index:0},ne.lastValue=Ae;const we=u.createElement("div");we.className="lat-form__richtext-toolbar",we.setAttribute("role","toolbar"),we.setAttribute("aria-label",H.t("form.richtext.formatting")),ne.toolbarEl=we;for(const E of o){if(E==="|"){const w=u.createElement("span");w.className="lat-form__richtext-sep",w.setAttribute("role","separator"),we.appendChild(w);continue}if(E==="heading"){const w=u.createElement("select");w.className="lat-form__richtext-select",w.title=H.t(t.heading),w.setAttribute("aria-label",H.t(t.heading)),w.setAttribute("data-item","heading");for(const[G,Y]of r){const ie=u.createElement("option");ie.value=G,ie.textContent=String(Y),w.appendChild(ie)}ne.buttons.heading=w,we.appendChild(w);continue}const F=u.createElement("button");F.type="button",F.className="lat-form__richtext-btn",F.setAttribute("data-item",E),F.title=H.t(t[E]||E),F.setAttribute("aria-label",H.t(t[E]||E)),E==="lowercase"||E==="uppercase"?(F.className+=" lat-form__richtext-btntext",F.textContent=H.t(E==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):_.includes(E)?F.appendChild(j(u,E)):S[E]?F.appendChild(C(u,E)):F.textContent=E,ne.buttons[E]=F,we.appendChild(F)}B.appendChild(we);const ce=u.createElement("div");ce.className="lat-form__richtext-popover",ce.hidden=!0,B.appendChild(ce),ne.popover=ce;const A=u.createElement("div");A.className="lat-form__richtext-editor",A.contentEditable=g.readOnly||g.disabled?"false":"true",A.setAttribute("role","textbox"),A.setAttribute("aria-multiline","true"),A.setAttribute("aria-label",g.label!=null?String(g.label):H.t("form.richtext.richText")),A.setAttribute("data-placeholder",W),A.style.minHeight=`${T}px`,U&&(A.style.maxHeight=`${U}px`),A.innerHTML=Ae,B.appendChild(A),ne.editor=A;const oe=u.createElement("textarea");oe.className="lat-form__richtext-source",oe.setAttribute("aria-label",H.t("form.richtext.source")),oe.spellcheck=!1,oe.hidden=!0,B.appendChild(oe),ne.source=oe;const te=u.createElement("input");return te.type="file",te.accept="image/*",te.className="lat-form__richtext-file",te.tabIndex=-1,te.setAttribute("aria-hidden","true"),B.appendChild(te),ne.fileInput=te,B.__latSave=()=>{const E=u.defaultView&&u.defaultView.getSelection?u.defaultView.getSelection():null;E&&E.rangeCount&&A.contains(E.anchorNode)&&(ne.range=E.getRangeAt(0).cloneRange())},B.__latRestore=()=>{if(!ne.range)return;const E=u.defaultView&&u.defaultView.getSelection?u.defaultView.getSelection():null;if(E)try{E.removeAllRanges(),E.addRange(ne.range)}catch{}},B.__latRefresh=()=>{Object.entries(ne.buttons).forEach(([E,F])=>{const w=a(E);if(w&&w.state&&F.tagName==="BUTTON"){let G=!1;try{G=u.queryCommandState(w.state)}catch{G=!1}F.setAttribute("aria-pressed",G?"true":"false"),F.classList.toggle("is-active",G)}if(E==="heading"&&F.tagName==="SELECT"){let G="";try{G=String(u.queryCommandValue("formatBlock")||"").toLowerCase()}catch{G=""}const Y=[...F.options].some(ie=>ie.value===G);F.value=Y?G:"p"}})},B.__latExec=(E,F)=>{A.focus(),B.__latRestore();try{u.execCommand("styleWithCSS",!1,E==="foreColor")}catch{}try{u.execCommand(E,!1,F===void 0?null:F)}catch{}B.__latAfterEdit()},B.__latAfterEdit=()=>{const E=A.innerHTML,F=ne.history;F.stack[F.index]!==E&&(F.stack=F.stack.slice(0,F.index+1),F.stack.push(E),F.stack.length>200&&F.stack.shift(),F.index=F.stack.length-1),B.__latRefresh();const w=c(u,E,M,{}),G=ne.lastValue==null?c(u,F.stack[0]||"",M,{}):ne.lastValue;ne.lastValue=w,m(B,u,G,w)},B.__latCaretEnd=()=>{const E=u.createRange();E.selectNodeContents(A),E.collapse(!1);const F=u.defaultView&&u.defaultView.getSelection?u.defaultView.getSelection():null;F&&(F.removeAllRanges(),F.addRange(E)),ne.range=E.cloneRange()},B.__latUndo=()=>{const E=ne.history;if(E.index<=0)return;E.index-=1,A.innerHTML=E.stack[E.index],B.__latCaretEnd(),B.__latRefresh();const F=c(u,A.innerHTML,M,{});ne.lastValue=F,m(B,u,ne.lastValue,F)},B.__latRedo=()=>{const E=ne.history;if(E.index>=E.stack.length-1)return;E.index+=1,A.innerHTML=E.stack[E.index],B.__latCaretEnd(),B.__latRefresh();const F=c(u,A.innerHTML,M,{});ne.lastValue=F,m(B,u,ne.lastValue,F)},B.__latClosePopover=()=>{ce.hidden=!0,ce.textContent=""},B.__latOpenPopover=(E,F)=>{if(ce.textContent="",ce.hidden=!1,ce.style.left=`${Math.max(0,F.offsetLeft)}px`,E==="color"){const{el:w}=n(u,[l],{onPick:D=>{B.__latRestore(),B.__latExec("foreColor",D),B.__latClosePopover()}});ce.appendChild(w);const G=u.createElement("div");G.className="lat-form__richtext-poprow";const Y=u.createElement("input");Y.type="color",Y.className="lat-form__richtext-colorinput",Y.setAttribute("aria-label",H.t("form.richtext.colorCustom")),Y.addEventListener("input",()=>{B.__latRestore(),B.__latExec("foreColor",Y.value)});const ie=u.createElement("button");ie.type="button",ie.className="lat-form__richtext-popbtn",ie.textContent=H.t("form.richtext.colorRemove"),ie.addEventListener("click",()=>{B.__latRestore(),B.__latExec("foreColor","inherit"),B.__latClosePopover()}),G.appendChild(Y),G.appendChild(ie),ce.appendChild(G)}else{const w=B.__latClosestLink(),G=u.createElement("input");G.type="url",G.className="lat-form__richtext-linkinput",G.placeholder=H.t("form.richtext.linkPlaceholder"),G.value=w&&w.getAttribute("href")||"",G.setAttribute("aria-label",H.t("form.richtext.linkLabel"));const Y=()=>{const J=G.value.trim();if(B.__latRestore(),!J){B.__latExec("unlink"),B.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(J)){G.classList.add("is-invalid");return}if(w)w.setAttribute("href",J),B.__latAfterEdit();else{const ae=u.defaultView&&u.defaultView.getSelection?u.defaultView.getSelection():null;if(ae&&ae.isCollapsed){const V=d?` target="${k(d)}" rel="noopener noreferrer"`:"";B.__latExec("insertHTML",c(u,`<a href="${k(J)}"${V}>${k(J)}</a>`,M,{}))}else{B.__latExec("createLink",J);const V=B.__latClosestLink();V&&d&&(V.setAttribute("target",d),V.setAttribute("rel","noopener noreferrer"))}}B.__latClosePopover()};G.addEventListener("keydown",J=>{J.key==="Enter"&&(J.preventDefault(),Y()),J.key==="Escape"&&B.__latClosePopover()});const ie=u.createElement("div");ie.className="lat-form__richtext-poprow",ie.appendChild(G);const D=u.createElement("button");if(D.type="button",D.className="lat-form__richtext-popbtn",D.textContent=w?H.t("form.richtext.linkUpdate"):H.t("form.richtext.linkAdd"),D.addEventListener("click",Y),ie.appendChild(D),w){const J=u.createElement("button");J.type="button",J.className="lat-form__richtext-popbtn",J.textContent=H.t("form.richtext.linkRemove"),J.addEventListener("click",()=>{B.__latRestore(),B.__latExec("unlink"),B.__latClosePopover()}),ie.appendChild(J)}ce.appendChild(ie),setTimeout(()=>G.focus(),0)}},B.__latClosestLink=()=>{const E=u.defaultView&&u.defaultView.getSelection?u.defaultView.getSelection():null;if(!E||E.rangeCount===0)return null;let F=E.getRangeAt(0).commonAncestorContainer;F.nodeType===3&&(F=F.parentNode);const w=F.closest?F.closest("a"):null;return w&&A.contains(w)?w:null},B.__latRun=E=>{if(ne.disabled||ne.readOnly)return;E!=="source"&&ne.sourceMode&&B.__latToggleSource(!1),B.__latRestore();const F=a(E);if(E==="color"||E==="link"){B.__latOpenPopover(E,ne.buttons[E]);return}if(E==="undo"){B.__latUndo();return}if(E==="redo"){B.__latRedo();return}if(E==="source"){B.__latToggleSource();return}if(E==="image"){ne.fileInput.click();return}if(E==="lowercase"||E==="uppercase"){B.__latCase(E==="uppercase");return}if(F){B.__latExec(F.cmd);return}},B.__latCase=E=>{const F=u.defaultView&&u.defaultView.getSelection?u.defaultView.getSelection():null;if(!F||F.rangeCount===0||F.isCollapsed)return;const w=F.toString();B.__latExec("insertText",E?w.toUpperCase():w.toLowerCase())},B.__latToggleSource=E=>{const F=E===void 0?!ne.sourceMode:!!E;if(F===ne.sourceMode)return;F?(ne.source.value=c(u,A.innerHTML,M,{}).replace(/></g,`>
1970
- <`),A.hidden=!0,oe.hidden=!1,oe.focus()):(ne.sourceDirty&&(A.innerHTML=c(u,oe.value,M,{}),ne.sourceDirty=!1),oe.hidden=!0,A.hidden=!1,A.focus()),ne.sourceMode=F;const w=ne.buttons.source;w&&(w.classList.toggle("is-active",F),w.setAttribute("aria-pressed",F?"true":"false")),Object.entries(ne.buttons).forEach(([G,Y])=>{G!=="source"&&(Y.disabled=F)}),F||B.__latAfterEdit()},B.__latInsertImage=async E=>{if(!/^image\//.test(E.type)||z&&E.size>z)return;let F;try{F=L?await L(E):await v(E)}catch{return}F&&B.__latExec("insertHTML",c(u,`<img src="${k(F)}" alt="${k(E.name)}" style="max-width:100%">`,M,{}))},B.__latToolbarClick=E=>{const F=E.target&&E.target.closest?E.target.closest("[data-item]"):null;!F||!we.contains(F)||F.tagName==="SELECT"||(E.preventDefault(),B.__latRun(F.getAttribute("data-item")))},B.__latToolbarDown=E=>{E.target&&E.target.closest&&E.target.closest(".lat-form__richtext-btn")&&E.preventDefault()},B.__latSelect=E=>{E.target&&E.target.getAttribute&&E.target.getAttribute("data-item")==="heading"&&(B.__latRestore(),B.__latExec("formatBlock",E.target.value))},B.__latInput=()=>{B.__latAfterEdit()},B.__latKey=E=>{if(!(E.ctrlKey||E.metaKey))return;const F=E.key.toLowerCase();F==="z"&&!E.shiftKey?(E.preventDefault(),B.__latUndo()):F==="y"||F==="z"&&E.shiftKey?(E.preventDefault(),B.__latRedo()):F==="k"&&ne.buttons.link&&(E.preventDefault(),B.__latRun("link"))},B.__latPaste=E=>{if(!y||!E.clipboardData)return;const F=E.clipboardData.getData("text/html"),w=E.clipboardData.getData("text/plain");if(!F&&!w)return;E.preventDefault();const G=F?c(u,F,M,{stripStyles:!0}):k(w).replace(/\r?\n/g,"<br>");B.__latExec("insertHTML",G)},B.__latDrop=E=>{if(!y||!E.dataTransfer)return;const F=E.dataTransfer.files;if(F&&F.length){E.preventDefault();const ie=F[0];ie&&B.__latInsertImage(ie);return}const w=E.dataTransfer.getData("text/html"),G=E.dataTransfer.getData("text/plain");if(!w&&!G)return;E.preventDefault();const Y=w?c(u,w,M,{stripStyles:!0}):k(G).replace(/\r?\n/g,"<br>");B.__latExec("insertHTML",Y)},B.__latBeforeInput=E=>{y&&(E.inputType==="insertFromDrop"||E.inputType==="insertFromPaste")&&E.preventDefault()},B.__latSelChange=()=>{u.activeElement===A&&(B.__latSave(),B.__latRefresh())},B.__latFile=()=>{const E=te.files&&te.files[0];te.value="",E&&B.__latInsertImage(E)},B.__latSourceInput=()=>{ne.sourceDirty=!0},B.__latDocClick=E=>{ce&&!ce.hidden&&!ce.contains(E.target)&&!we.contains(E.target)&&B.__latClosePopover()},we.addEventListener("click",B.__latToolbarClick),we.addEventListener("mousedown",B.__latToolbarDown),we.addEventListener("change",B.__latSelect),A.addEventListener("input",B.__latInput),A.addEventListener("keydown",B.__latKey),A.addEventListener("paste",B.__latPaste),A.addEventListener("drop",B.__latDrop),A.addEventListener("beforeinput",B.__latBeforeInput),te.addEventListener("change",B.__latFile),oe.addEventListener("input",B.__latSourceInput),u.addEventListener&&(u.addEventListener("selectionchange",B.__latSelChange),u.addEventListener("mousedown",B.__latDocClick,!0)),B},read(g){const H=g.__latRt;return H?H.sourceMode?c(g.ownerDocument,H.source.value,H.allowedTags,{}):c(g.ownerDocument,H.editor.innerHTML,H.allowedTags,{}):""},write(g,H){const u=g.__latRt;if(!u)return;const s=g.ownerDocument,o=c(s,H==null?"":String(H),u.allowedTags,{});u.sourceMode&&(u.source.value=o),u.editor.innerHTML=o,u.history={stack:[o],index:0},u.lastValue=o},state(g,H){const u=g.__latRt;u&&(u.disabled=H.disabled===!0,u.readOnly=H.readOnly===!0,u.editor.contentEditable=u.disabled||u.readOnly?"false":"true",u.editor.tabIndex=u.readOnly?0:-1,u.readOnly?u.editor.setAttribute("aria-readonly","true"):u.editor.removeAttribute("aria-readonly"),u.disabled?g.setAttribute("aria-disabled","true"):g.removeAttribute("aria-disabled"),u.readOnly?g.setAttribute("aria-readonly","true"):g.removeAttribute("aria-readonly"),Object.values(u.buttons).forEach(s=>{s.disabled=u.disabled||u.readOnly}))}});function m(g,H,u,s){const o=H&&H.defaultView,r=o&&o.Event,l=r?new r("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};g.dispatchEvent(l)}}),Ne("packages/modules/form/controls/rating.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=5,q=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 k(c){const b=String(c??"");return Object.hasOwn(q,b)?b:"star"}function P(c,b,_){return Math.min(Math.max(c,b),_)}function j(c,b){const _=b&&b.defaultView,t=_&&_.Event,a=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}};c.dispatchEvent(a)}function C(c,b,_){const t=c.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("focusable","false"),t.setAttribute("aria-hidden","true"),_?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const a=c.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d",q[b]),t.appendChild(a),t}function S(c,b,_){const t=Number(c),a=Number.isFinite(t)?t:0,i=_?Math.round(a*2)/2:Math.round(a);return P(i,0,b)}function x(c,b){return Math.min(1,Math.max(0,c-(b-1)))}R("rating",{kind:"field",build(c,b){const _=b.doc,t=c.props||{},a=Math.max(1,Math.floor(Number(c.max!=null?c.max:t.max)||$)),i=t.allowHalf===!0,f=t.allowClear!==!1,v=t.showValue===!0,m=Array.isArray(t.labels)?t.labels:null,g=k(t.icons&&t.icons.filled?t.icons.filled:t.icon),H=k(t.icons&&t.icons.empty?t.icons.empty:`${g}-outline`),u=t.size==="lg"||t.size==="sm"?t.size:"md",s=_.createElement("div");s.className=`lat-form__rating lat-form__rating--${u}`,s.setAttribute("role","slider"),s.setAttribute("aria-valuemin","0"),s.setAttribute("aria-valuemax",String(a)),s.setAttribute("aria-label",c.label!=null?String(c.label):b.t("form.rating"));const o={value:S(c.value,a,i),max:a,allowHalf:i,allowClear:f,labels:m,showValue:v,filledName:g,emptyName:H,items:[],fills:[],valueEl:null};s.__latRating=o;const r=_.createElement("span");r.className="lat-form__rating-track",r.setAttribute("aria-hidden","true");for(let l=0;l<a;l++){const d=_.createElement("span");d.className="lat-form__rating-item",d.setAttribute("data-index",String(l)),m&&m[l]!=null&&m[l]!==""&&(d.title=String(m[l])),d.appendChild(C(_,H,!1));const T=_.createElement("span");T.className="lat-form__rating-fill",T.setAttribute("aria-hidden","true"),T.appendChild(C(_,g,!0)),d.appendChild(T),r.appendChild(d),o.items.push(d),o.fills.push(T)}if(s.appendChild(r),v){const l=_.createElement("span");l.className="lat-form__rating-value",l.setAttribute("aria-hidden","true"),s.appendChild(l),o.valueEl=l}return s.__latPaint=()=>{for(let l=0;l<o.items.length;l++){const d=x(o.value,l+1);o.items[l].setAttribute("data-fill",d>=1?"full":d>0?"half":"empty"),o.fills[l].style.width=`${(d*100).toFixed(2)}%`}s.setAttribute("aria-valuenow",String(o.value)),s.setAttribute("aria-valuetext",h(o)),o.valueEl&&(o.valueEl.textContent=n(o))},s.__latSet=l=>{o.value=S(l,a,i),s.__latPaint()},s.__latClear=()=>{o.value=0,s.__latPaint()},s.__latPick=(l,d)=>{let T=l+1;if(i&&d&&Number.isFinite(d.clientX)){const U=o.items[l].getBoundingClientRect();U&&U.width>0&&(T=d.clientX-U.left<U.width/2?l+.5:l+1)}f&&T===o.value&&(T=0),s.__latSet(T),j(s,b.doc)},s.addEventListener("click",l=>{if(o.disabled||o.readOnly)return;const d=l.target&&l.target.closest?l.target.closest(".lat-form__rating-item"):null;!d||!s.contains(d)||s.__latPick(Number(d.getAttribute("data-index")),l)}),s.__latKey=l=>{if(o.disabled||o.readOnly)return;const d=i?.5:1;let T=o.value;if(l.key==="ArrowRight"||l.key==="ArrowUp")T+=d;else if(l.key==="ArrowLeft"||l.key==="ArrowDown")T-=d;else if(l.key==="Home")T=0;else if(l.key==="End")T=a;else if(l.key==="Backspace"||l.key==="Delete")T=0;else return;l.preventDefault(),s.__latSet(T),j(s,b.doc)},s.addEventListener("keydown",s.__latKey),s.__latPaint(),s},read(c){return c.__latRating?c.__latRating.value:0},write(c,b){c.__latRating&&(c.__latRating.value=S(b,c.__latRating.max,c.__latRating.allowHalf),c.__latPaint())},state(c,b){const _=c.__latRating;_&&(_.disabled=b.disabled===!0,_.readOnly=b.readOnly===!0,c.tabIndex=_.disabled?-1:0,_.readOnly?c.setAttribute("aria-readonly","true"):c.removeAttribute("aria-readonly"),_.disabled?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled"))}});function h(c){const b=Math.round(c.value);return c.labels&&c.labels[b-1]&&c.value===b?c.labels[b-1]:`${c.value} of ${c.max}`}function n(c){return String(c.value)}}),Ne("packages/modules/form/controls/stage.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl;function $(P,j){const C=j&&j.defaultView,S=C&&C.Event,x=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}};P.dispatchEvent(x)}function q(P,j){return typeof j=="number"&&Number.isFinite(j)?Math.min(Math.max(Math.round(j),0),P.length-1):typeof j=="string"?P.indexOf(j):-1}function k(P,j,C){return`${P}, ${j+1} of ${C}`}R("stage",{kind:"field",build(P,j){const C=j.doc,S=P.props||{},x=Array.isArray(S.stages)?S.stages.map(i=>String(i)):[],h=S.clickable!==!1,n=S.showIcons!==!1,c=q(x,P.value!=null?P.value:S.current),b=q(x,S.completed),_=C.createElement("div");_.className="lat-form__stage",_.setAttribute("role","radiogroup"),_.setAttribute("aria-label",P.label!=null?String(P.label):j.t("form.stage"));const t=[],a={stages:x,value:c>=0?x[c]:null,index:c,completed:b,clickable:h,showIcons:n,disabled:!1,readOnly:!1,focus:c>=0?c:0};_.__latStage=a;for(let i=0;i<x.length;i++){const f=C.createElement(h?"button":"span");if(f.type=h?"button":void 0,f.className="lat-form__stage-step",f.setAttribute("data-index",String(i)),h&&(f.setAttribute("role","radio"),f.setAttribute("aria-label",k(x[i],i,x.length))),n){const m=C.createElementNS("http://www.w3.org/2000/svg","svg");m.setAttribute("viewBox","0 0 16 16"),m.setAttribute("aria-hidden","true"),m.setAttribute("class","lat-form__stage-check");const g=C.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("d","M3 8.5l3 3 7-7"),g.setAttribute("fill","none"),g.setAttribute("stroke","currentColor"),g.setAttribute("stroke-width","2"),g.setAttribute("stroke-linecap","round"),g.setAttribute("stroke-linejoin","round"),m.appendChild(g),f.appendChild(m)}const v=C.createElement("span");v.className="lat-form__stage-label",v.textContent=x[i],f.appendChild(v),_.appendChild(f),t.push(f)}return _.__latPaint=()=>{for(let i=0;i<t.length;i++){const f=i===a.index,v=!f&&a.completed>=0&&i<=a.completed;t[i].setAttribute("data-state",f?"current":v?"done":"todo"),a.clickable&&(t[i].setAttribute("aria-checked",f?"true":"false"),t[i].tabIndex=a.disabled?-1:i===a.focus?0:-1)}},_.__latSelect=i=>{const f=i>=0&&i<x.length?x[i]:null;f!==a.value&&(a.index=i>=0&&i<x.length?i:-1,a.value=f,a.focus=a.index>=0?a.index:0,_.__latPaint(),$(_,j.doc))},_.__latKey=i=>{if(a.disabled||a.readOnly||!a.clickable||!x.length)return;let f=a.focus;if(i.key==="ArrowRight"||i.key==="ArrowDown")f+=1;else if(i.key==="ArrowLeft"||i.key==="ArrowUp")f-=1;else if(i.key==="Home")f=0;else if(i.key==="End")f=x.length-1;else return;i.preventDefault();const v=Math.min(Math.max(f,0),x.length-1);a.focus=v,t[v].focus(),_.__latSelect(v)},h&&(_.addEventListener("click",i=>{if(a.disabled||a.readOnly)return;const f=i.target&&i.target.closest?i.target.closest(".lat-form__stage-step"):null;if(!f||!_.contains(f))return;const v=Number(f.getAttribute("data-index"));a.focus=v,_.__latSelect(v)}),_.addEventListener("keydown",_.__latKey)),_.__latPaint(),_},read(P){return P.__latStage?P.__latStage.value:null},write(P,j){const C=P.__latStage;if(!C)return;const S=j==null?-1:q(C.stages,j);C.index=S,C.value=S>=0?C.stages[S]:null,C.focus=S>=0?S:0,P.__latPaint()},state(P,j){const C=P.__latStage;C&&(C.disabled=j.disabled===!0,C.readOnly=j.readOnly===!0,C.readOnly?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly"),C.disabled?P.setAttribute("aria-disabled","true"):P.removeAttribute("aria-disabled"),P.__latPaint())}})}),Ne("packages/modules/form/controls/chips.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$="M3 8.5l3 3 7-7";function q(j,C){const S=C&&C.defaultView,x=S&&S.Event,h=x?new x("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};j.dispatchEvent(h)}function k(j){if(typeof j=="string")return{value:j,label:j,icon:null,disabled:!1};if(j!==null&&typeof j=="object"){const C=j.value===void 0?String(j.label):j.value;return{value:C,label:j.label==null?String(C):String(j.label),icon:typeof j.icon=="string"&&j.icon!==""?j.icon:null,disabled:j.disabled===!0}}return{value:j,label:String(j),icon:null,disabled:!1}}function P(j,C,S){const x=j.createElementNS("http://www.w3.org/2000/svg","svg");x.setAttribute("viewBox","0 0 16 16"),x.setAttribute("focusable","false"),x.setAttribute("aria-hidden","true");const h=j.createElementNS("http://www.w3.org/2000/svg","path");return h.setAttribute("d",C),S?h.setAttribute("fill","currentColor"):(h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","2"),h.setAttribute("stroke-linecap","round"),h.setAttribute("stroke-linejoin","round")),x.appendChild(h),x}R("chips",{kind:"field",build(j,C){const S=C.doc,x=j.props||{},h=(Array.isArray(j.options)?j.options:[]).map(k),n=x.multiple===!0,c=x.allowEmpty===!0,b=x.wrap!==!1,_=j.max!=null&&Number.isFinite(Number(j.max))?Number(j.max):null,t=S.createElement("div");t.className=`lat-form__chips${b?"":" lat-form__chips--scroll"}`,t.setAttribute("role",n?"group":"radiogroup"),t.setAttribute("aria-label",j.label!=null?String(j.label):C.t("form.chips"));const a=[],i=new Set,f={options:h,multiple:n,allowEmpty:c,wrap:b,max:_,selected:i,disabled:!1,readOnly:!1,t:C.t};t.__latChips=f;for(let m=0;m<h.length;m++){const g=h[m],H=S.createElement("button");if(H.type="button",H.className="lat-form__chip",H.setAttribute("data-index",String(m)),H.disabled=g.disabled,n||H.setAttribute("role","radio"),g.icon){const s=P(S,g.icon,!0);s.setAttribute("class","lat-form__chip-icon"),H.appendChild(s)}const u=S.createElement("span");if(u.className="lat-form__chip-label",u.textContent=g.label,H.appendChild(u),n){const s=P(S,$,!1);s.setAttribute("class","lat-form__chip-check"),H.appendChild(s)}t.appendChild(H),a.push(H)}f.buttons=a,t.__latPaint=()=>{for(let m=0;m<a.length;m++){const g=h[m],H=i.has(g.value),u=a[m];u.disabled=g.disabled||f.disabled,n?(u.setAttribute("aria-pressed",H?"true":"false"),u.tabIndex=f.disabled?-1:0):(u.setAttribute("aria-checked",H?"true":"false"),u.tabIndex=f.disabled?-1:H?0:-1)}},t.__latValue=()=>{if(n)return h.filter(m=>i.has(m.value)).map(m=>m.value);for(const m of h)if(i.has(m.value))return m.value;return null},t.__latToggle=m=>{const g=h[m];if(!(!g||g.disabled||f.disabled||f.readOnly)){if(n)if(i.has(g.value))i.delete(g.value);else{if(_!=null&&i.size>=_)return;i.add(g.value)}else if(i.has(g.value))if(f.allowEmpty)i.clear();else return;else i.clear(),i.add(g.value);t.__latPaint(),q(t,C.doc)}},t.addEventListener("click",m=>{const g=m.target&&m.target.closest?m.target.closest(".lat-form__chip"):null;!g||!t.contains(g)||t.__latToggle(Number(g.getAttribute("data-index")))}),t.__latKey=m=>{if(f.multiple||f.disabled||f.readOnly||!a.length)return;let g=-1;for(let o=0;o<a.length;o++)if(i.has(h[o].value)){g=o;break}let H=g;if(m.key==="ArrowRight"||m.key==="ArrowDown")H=g+1;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")H=g-1;else if(m.key==="Home")H=0;else if(m.key==="End")H=h.length-1;else return;m.preventDefault();const u=m.key==="ArrowLeft"||m.key==="ArrowUp"?-1:1;let s=H;for(;s>=0&&s<h.length&&h[s].disabled;)s+=u;s<0||s>=h.length||(i.clear(),i.add(h[s].value),t.__latPaint(),a[s].focus(),q(t,C.doc))},t.addEventListener("keydown",t.__latKey);const v=j.value;if(n){const m=Array.isArray(v)?v:[];for(const g of m)h.some(H=>H.value===g)&&i.add(g)}else if(v!=null&&h.some(m=>m.value===v))i.add(v);else if(!c){const m=h.find(g=>!g.disabled)||h[0];m&&i.add(m.value)}return t.__latPaint(),t},read(j){return j.__latChips?j.__latValue():null},write(j,C){const S=j.__latChips;if(S){if(S.selected.clear(),S.multiple){const x=Array.isArray(C)?C:[];for(const h of x)S.options.some(n=>n.value===h)&&S.selected.add(h)}else if(C!=null&&S.options.some(x=>x.value===C))S.selected.add(C);else if(!S.allowEmpty){const x=S.options.find(h=>!h.disabled)||S.options[0];x&&S.selected.add(x.value)}j.__latPaint()}},validate(j,C,S){const x=j.__latChips;if(!x||!x.multiple)return null;const h=Array.isArray(S)?S.length:0,n=C.min!=null&&Number.isFinite(Number(C.min))?Number(C.min):null,c=C.max!=null&&Number.isFinite(Number(C.max))?Number(C.max):null;return n!=null&&h<n?{code:"min",message:x.t("form.chips.min",{min:String(n)})}:c!=null&&h>c?{code:"max",message:x.t("form.chips.max",{max:String(c)})}:null},state(j,C){const S=j.__latChips;S&&(S.disabled=C.disabled===!0,S.readOnly=C.readOnly===!0,S.readOnly?j.setAttribute("aria-readonly","true"):j.removeAttribute("aria-readonly"),S.disabled?j.setAttribute("aria-disabled","true"):j.removeAttribute("aria-disabled"),j.__latPaint())}})}),Ne("packages/modules/form/controls/otp.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=6;function q(c){const b=Math.floor(Number(c));return Number.isFinite(b)&&b>=1?b:$}function k(c){return c==="alphanumeric"?"alphanumeric":"numeric"}function P(c,b){return b==="numeric"?/^[0-9]$/.test(c):/^[A-Za-z0-9]$/.test(c)}function j(c,b){for(let _=c.length-1;_>=0;_-=1)if(P(c[_],b))return c[_];return""}function C(c,b,_){return(c==null?"":String(c)).replace(/[\s-]/g,"").split("").filter(a=>P(a,b)).slice(0,_)}function S(c,b,_){const t=b&&b.defaultView,a=t&&t.Event,i=a?new a(_,{bubbles:!0}):{type:_,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};c.dispatchEvent(i)}function x(c,b){const _=C(b,c.mode,c.length);for(let t=0;t<c.length;t+=1)c.boxes[t].value=_[t]||""}function h(c){c.complete=c.boxes.every(b=>b.value!=="")}function n(c){return c.boxes.map(b=>b.value).join("")}R("otp",{kind:"field",domEvents:["complete"],build(c,b){const _=b.doc,t=c.props||{},a=q(t.length),i=k(c.mode!=null?c.mode:t.mode),f=t.mask===!0,v=_.createElement("div");v.className="lat-form__otp",v.setAttribute("role","group"),v.setAttribute("aria-label",c.label!=null&&c.label!==""?String(c.label):b.t("form.otp.label"));const m=[],g={length:a,mode:i,mask:f,boxes:m,complete:!1,disabled:!1,readOnly:!1};v.__latOtp=g;for(let u=0;u<a;u+=1){const s=_.createElement("input");s.type="text",s.className=`lat-form__otp-input${f?" lat-form__otp-input--masked":""}`,s.setAttribute("inputmode",i==="numeric"?"numeric":"text"),s.setAttribute("pattern",i==="numeric"?"[0-9]":"[A-Za-z0-9]"),s.setAttribute("maxlength","1"),s.setAttribute("aria-label",b.t("form.otp.digit",{n:u+1,total:a})),s.autocomplete=u===0?"one-time-code":"off",m.push(s),v.appendChild(s)}const H=()=>{if(v.__latPublishing)return;v.__latPublishing=!0;try{S(v,_,"input"),S(v,_,"change")}finally{v.__latPublishing=!1}const u=m.every(s=>s.value!=="");u&&!g.complete?(g.complete=!0,S(v,_,"complete")):!u&&g.complete&&(g.complete=!1)};return v.addEventListener("input",u=>{if(v.__latPublishing)return;u.stopImmediatePropagation();const s=u.target;if(!m.includes(s))return;s.value=j(s.value,i);const o=m.indexOf(s);s.value!==""&&o<a-1&&m[o+1].focus(),H()}),v.addEventListener("change",u=>{v.__latPublishing||u.stopImmediatePropagation()}),v.addEventListener("keydown",u=>{if(g.disabled||g.readOnly)return;const s=u.target;if(!m.includes(s))return;const o=m.indexOf(s);u.key==="Backspace"?(u.preventDefault(),s.value!==""?s.value="":o>0&&(m[o-1].value="",m[o-1].focus()),H()):u.key==="ArrowLeft"&&o>0?(u.preventDefault(),m[o-1].focus()):u.key==="ArrowRight"&&o<a-1?(u.preventDefault(),m[o+1].focus()):u.key.length===1&&!P(u.key,i)&&!u.ctrlKey&&!u.metaKey&&!u.altKey&&u.preventDefault()}),v.addEventListener("paste",u=>{if(g.disabled||g.readOnly)return;u.preventDefault();const s=u.clipboardData&&typeof u.clipboardData.getData=="function"?u.clipboardData.getData("text"):"";x(g,s),(m.find(r=>r.value==="")||m[a-1]).focus(),H()}),v.focus=()=>{const u=m.find(s=>!s.disabled&&!s.readOnly&&s.value==="")||m[0];u&&u.focus()},v.blur=()=>{for(const u of m)u.blur()},x(g,c.value),h(g),v},read(c){return c.__latOtp?n(c.__latOtp):""},write(c,b){c.__latOtp&&(x(c.__latOtp,b),h(c.__latOtp))},state(c,b){const _=c.__latOtp;if(_){_.disabled=b.disabled===!0,_.readOnly=b.readOnly===!0;for(const t of _.boxes)t.disabled=_.disabled,t.readOnly=_.readOnly;_.disabled?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled"),_.readOnly?c.setAttribute("aria-readonly","true"):c.removeAttribute("aria-readonly")}}})}),Ne("packages/modules/form/controls/color.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/field-icon.js"),q=$.makeFieldIcon,k=$.injectFieldIconStyles,P=Z("packages/modules/form/controls/swatches.js"),j=P.DEFAULT_PALETTE,C=P.DEFAULT_GRAY_SHADES,S=P.buildSwatchGrid,x=P.hslToHex,h=10,n=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,c=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function b(A){return A}const _=new Set;function t(A,oe){_.has(A)||(_.add(A),console.warn("[lattice]",oe))}function a(A){if(typeof A!="string")return null;const oe=A.trim();if(!n.test(oe))return null;const te=oe.replace(/^#/,"").toLowerCase();return`#${te.length===3?te.split("").map(F=>F+F).join(""):te}`}function i(A){if(typeof A!="string")return null;const oe=a(A);if(oe)return oe;const te=c.exec(A.trim());if(!te)return null;const E=w=>Math.max(0,Math.min(255,Number(w))),F=w=>E(w).toString(16).padStart(2,"0");return`#${F(te[1])}${F(te[2])}${F(te[3])}`}function f(A){const oe=a(A);return oe?{r:parseInt(oe.slice(1,3),16),g:parseInt(oe.slice(3,5),16),b:parseInt(oe.slice(5,7),16)}:null}function v(A,oe,te){const E=F=>Math.max(0,Math.min(255,Math.round(F))).toString(16).padStart(2,"0");return`#${E(A)}${E(oe)}${E(te)}`}function m(A,oe,te){const E=A/255,F=oe/255,w=te/255,G=Math.max(E,F,w),Y=Math.min(E,F,w),ie=(G+Y)/2,D=G-Y;if(D===0)return{h:0,s:0,l:ie};const J=ie>.5?D/(2-G-Y):D/(G+Y);let ae;return G===E?ae=(F-w)/D%6:G===F?ae=(w-E)/D+2:ae=(E-F)/D+4,ae*=60,ae<0&&(ae+=360),{h:ae,s:J,l:ie}}function g(A){return x(A.h,A.s,A.l)}function H(A,oe,te){const E=A.ownerDocument,F=E&&E.defaultView,w=F&&typeof F.CustomEvent=="function"?F.CustomEvent:null,G=w?new w(oe,{bubbles:!0,detail:te}):{type:oe,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:te,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};A.dispatchEvent(G)}function u(A){const oe=A.props&&A.props.palette;return Array.isArray(oe)&&oe.length?oe:j}function s(A){return!(A.props&&A.props.editable===!1)}function o(A){return!!(A.props&&A.props.clearable===!0)}function r(A){return!!(A.props&&A.props.pickerOnly===!0)}function l(A){return!(A.props&&A.props.grayShades===!1)}function d(A){const oe=A.props&&A.props.icon;return typeof oe=="string"&&oe!==""?oe:null}function T(A){const oe=A.props&&A.props.customColors;return Array.isArray(oe)?[...new Set(oe.map(i).filter(Boolean))].slice(0,h):[]}function U(A){const oe=a(A.__input.value);A.__swatchBtn.style.background=oe||"transparent",A.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!oe),A.__clearBtn&&(A.__clearBtn.hidden=A.__input.value.trim()==="")}function z(A,oe){A.__value=oe||null,A.__input.value=oe||"",A.__lastCommittedText=oe||"",U(A)}function L(A){if(s(A.__item)===!1)return;const oe=A.__input.value.trim();if(oe===A.__lastCommittedText)return;const te=a(oe);(te||oe==="")&&(A.__value=te,A.__lastCommittedText=oe),H(A,"change")}function y(A,oe){z(A,oe),H(A,"change")}function M(A,oe){const te=A.__customColors,E=te.filter(w=>w!==oe),F=[oe,...E].slice(0,h);F.length===te.length&&F.every((w,G)=>w===te[G])||(A.__customColors=F,H(A,"customColorsChange",{colors:F}))}function W(A){const oe=A.__popover,te=A.ownerDocument,E=te&&te.defaultView,F=A.__field.getBoundingClientRect(),w=E?E.innerHeight:0,G=oe.offsetHeight||0;w-F.bottom<G+4&&F.top>G+4?oe.classList.add("lat-form__color-popover--above"):oe.classList.remove("lat-form__color-popover--above")}function B(A,oe,te,E){let F=Math.max(0,Math.min(A.length-1,oe.row+te)),w=oe.col+E;if(E!==0){const G=A[F].length;w=Math.max(0,Math.min(G-1,w))}else w=Math.max(0,Math.min(A[F].length-1,w));return{row:F,col:w}}function ne(A){const oe=A.__item,te=A.ownerDocument,E=A.__popover;for(;E.firstChild;)E.removeChild(E.firstChild);const F=[...u(oe)];l(oe)&&F.push([...C]),A.__customColors.length&&F.push([...A.__customColors]);const w=A.__value,{el:G,rows:Y}=S(te,F,{isSelected:D=>D===w,onPick:D=>{y(A,D),ce(A,{restoreFocus:!0})}});G.classList.add("lat-form__color-grid"),E.appendChild(G);for(const D of Y)for(const J of D){if(J.getAttribute("aria-selected")!=="true")continue;const ae=te.createElementNS("http://www.w3.org/2000/svg","svg");ae.setAttribute("viewBox","0 0 16 16"),ae.setAttribute("class","lat-form__color-check"),ae.setAttribute("aria-hidden","true");const V=te.createElementNS("http://www.w3.org/2000/svg","path");V.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),V.setAttribute("fill","none"),V.setAttribute("stroke","#fff"),V.setAttribute("stroke-width","2.6"),V.setAttribute("stroke-linecap","round"),V.setAttribute("stroke-linejoin","round"),V.setAttribute("paint-order","stroke"),ae.appendChild(V);const se=te.createElementNS("http://www.w3.org/2000/svg","path");se.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),se.setAttribute("fill","none"),se.setAttribute("stroke","#000"),se.setAttribute("stroke-width","4.2"),se.setAttribute("stroke-linecap","round"),se.setAttribute("stroke-linejoin","round"),se.setAttribute("opacity","0.35"),ae.insertBefore(se,V),J.appendChild(ae)}let ie={row:0,col:0};e:for(let D=0;D<Y.length;D++)for(let J=0;J<Y[D].length;J++)if(Y[D][J].getAttribute("aria-selected")==="true"){ie={row:D,col:J};break e}for(const D of Y)for(const J of D)J.tabIndex=-1;if(Y[ie.row]&&Y[ie.row][ie.col]&&(Y[ie.row][ie.col].tabIndex=0),G.addEventListener("keydown",D=>{if(D.key==="Enter"||D.key===" "){D.preventDefault(),D.stopPropagation(),Y[ie.row][ie.col].click();return}const ae={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[D.key];if(!ae)return;D.preventDefault();for(const se of Y)for(const X of se)X.tabIndex=-1;ie=B(Y,ie,ae[0],ae[1]);const V=Y[ie.row][ie.col];V.tabIndex=0,V.focus()}),!r(oe)){const D=te.createElement("button");D.type="button",D.className="lat-form__color-custombtn",D.textContent=A.__t("form.color.customColor"),D.addEventListener("click",()=>{Ae(A,w)}),E.appendChild(D)}W(A)}function Ae(A,oe){const te=A.__item,E=A.ownerDocument,F=A.__popover;for(;F.firstChild;)F.removeChild(F.firstChild);const w=f(oe)||{r:0,g:0,b:0},G=m(w.r,w.g,w.b),Y=E.createElement("div");Y.className="lat-form__color-picker",F.appendChild(Y);const ie=E.createElement("div");ie.className="lat-form__color-plane",ie.setAttribute("role","slider"),ie.setAttribute("aria-label",A.__t("form.color.saturationLightness")),ie.tabIndex=0;const D=E.createElement("div");D.className="lat-form__color-plane-thumb",ie.appendChild(D),Y.appendChild(ie);const J=E.createElement("div");J.className="lat-form__color-hue",J.setAttribute("role","slider"),J.setAttribute("aria-label",A.__t("form.color.hue")),J.tabIndex=0;const ae=E.createElement("div");ae.className="lat-form__color-hue-thumb",J.appendChild(ae),Y.appendChild(J);const V=E.createElement("div");V.className="lat-form__color-fields";const se=E.createElement("input");se.type="text",se.className="lat-form__color-hexfield",se.setAttribute("aria-label",A.__t("form.color.hexLabel"));const X=E.createElement("input");X.type="number",X.min="0",X.max="255",X.className="lat-form__color-rgbfield",X.setAttribute("aria-label",A.__t("form.color.redLabel"));const p=E.createElement("input");p.type="number",p.min="0",p.max="255",p.className="lat-form__color-rgbfield",p.setAttribute("aria-label",A.__t("form.color.greenLabel"));const I=E.createElement("input");I.type="number",I.min="0",I.max="255",I.className="lat-form__color-rgbfield",I.setAttribute("aria-label",A.__t("form.color.blueLabel")),V.appendChild(se),V.appendChild(X),V.appendChild(p),V.appendChild(I),Y.appendChild(V);const Q=E.createElement("div");Q.className="lat-form__color-previewrow";const re=E.createElement("span");re.className="lat-form__color-preview",Q.appendChild(re),Y.appendChild(Q);const me=E.createElement("div");if(me.className="lat-form__color-actions",!r(te)){const K=E.createElement("button");K.type="button",K.className="lat-form__color-back",K.textContent=A.__t("form.back"),K.addEventListener("click",()=>{ne(A)}),me.appendChild(K)}const be=E.createElement("button");be.type="button",be.className="lat-form__color-select",be.textContent=A.__t("form.color.select"),me.appendChild(be),Y.appendChild(me);const ke=()=>{const K=g(G),pe=f(K);ie.style.setProperty("--lat-color-hue",String(G.h)),D.style.left=`${G.s*100}%`,D.style.top=`${(1-G.l)*100}%`,ae.style.left=`${G.h/360*100}%`,se.value=K,X.value=String(pe.r),p.value=String(pe.g),I.value=String(pe.b),re.style.background=K,ie.setAttribute("aria-valuetext",K),J.setAttribute("aria-valuenow",String(Math.round(G.h)))};ke();const Le=(K,pe,Ce)=>{const ye=K.getBoundingClientRect();if(!ye.width||!ye.height)return;const ve=Math.max(0,Math.min(1,(pe.clientX-ye.left)/ye.width)),Ie=Math.max(0,Math.min(1,(pe.clientY-ye.top)/ye.height));Ce(ve,Ie)},Se=(K,pe)=>{let Ce=!1;K.addEventListener("pointerdown",ye=>{Ce=!0,Le(K,ye,pe)}),E.addEventListener("pointermove",ye=>{Ce&&Le(K,ye,pe)}),E.addEventListener("pointerup",()=>{Ce=!1})};Se(ie,(K,pe)=>{G.s=K,G.l=1-pe,ke()}),Se(J,K=>{G.h=K*360,ke()}),ie.addEventListener("keydown",K=>{if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),ee();return}const pe=K.shiftKey?.1:.02;if(K.key==="ArrowLeft")G.s=Math.max(0,G.s-pe);else if(K.key==="ArrowRight")G.s=Math.min(1,G.s+pe);else if(K.key==="ArrowUp")G.l=Math.min(1,G.l+pe);else if(K.key==="ArrowDown")G.l=Math.max(0,G.l-pe);else return;K.preventDefault(),ke()}),J.addEventListener("keydown",K=>{if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),ee();return}const pe=K.shiftKey?10:2;if(K.key==="ArrowLeft"||K.key==="ArrowDown")G.h=(G.h-pe+360)%360;else if(K.key==="ArrowRight"||K.key==="ArrowUp")G.h=(G.h+pe)%360;else return;K.preventDefault(),ke()});const je=()=>{const K=a(se.value);if(!K){se.value=g(G);return}const pe=f(K);Object.assign(G,m(pe.r,pe.g,pe.b)),ke()};se.addEventListener("change",je);const O=()=>{const K=pe=>Math.max(0,Math.min(255,Number(pe)||0));Object.assign(G,m(K(X.value),K(p.value),K(I.value))),ke()};X.addEventListener("change",O),p.addEventListener("change",O),I.addEventListener("change",O);const ee=()=>{const K=g(G);y(A,K),M(A,K),ce(A,{restoreFocus:!0})};be.addEventListener("click",ee);const de=K=>pe=>{pe.key==="Enter"&&(pe.preventDefault(),pe.stopPropagation(),K(),ee())};se.addEventListener("keydown",de(je)),X.addEventListener("keydown",de(O)),p.addEventListener("keydown",de(O)),I.addEventListener("keydown",de(O)),W(A)}function we(A){A.__open||A.__item.disabled===!0||A.__item.readOnly===!0||(A.__open=!0,A.__popover.hidden=!1,r(A.__item)||A.__item.mode==="picker"?Ae(A,A.__value):ne(A))}function ce(A,oe={}){if(A.__open){for(A.__open=!1,A.__popover.hidden=!0,A.__popover.classList.remove("lat-form__color-popover--above");A.__popover.firstChild;)A.__popover.removeChild(A.__popover.firstChild);oe.restoreFocus&&A.__input.focus()}}R("color",{kind:"field",domEvents:["customColorsChange"],build(A,oe){const te=oe.doc;k(te);const E=te.createElement("div");E.className="lat-form__color",E.__item=A,E.__t=oe.t||b,E.__open=!1,E.__value=i(A.value),E.__customColors=T(A);const F=te.createElement("div");F.className="lat-form__color-field",E.__field=F;const w=te.createElement("button");w.type="button",w.className="lat-form__color-swatch",w.setAttribute("aria-label",E.__t("form.color.open")),E.__swatchBtn=w;const G=te.createElement("input");G.type="text",G.className="lat-form__color-input",A.name&&(G.name=A.name),A.placeholder!=null&&(G.placeholder=String(A.placeholder)),A.label!=null&&A.label!==""&&G.setAttribute("aria-label",String(A.label)),G.setAttribute("autocomplete","off"),G.readOnly=!s(A),E.__input=G,F.appendChild(w),F.appendChild(G);let Y=null;if(o(A)){Y=te.createElement("button"),Y.type="button",Y.className="lat-form__color-clear",Y.setAttribute("aria-label",E.__t("form.color.clear"));const p=q(te,"close");p&&Y.appendChild(p),Y.addEventListener("click",()=>{y(E,null),G.focus()}),F.appendChild(Y)}E.__clearBtn=Y;const ie=te.createElement("button");ie.type="button",ie.className="lat-form__color-toggle",ie.setAttribute("aria-label",E.__t("form.color.open"));const D=d(A),J=D?q(te,D):q(te,"chevronDown");J&&ie.appendChild(J),E.__toggleBtn=ie,F.appendChild(ie),E.appendChild(F);const ae=te.createElement("div");ae.className="lat-form__color-popover",ae.hidden=!0,E.__popover=ae,E.appendChild(ae),z(E,E.__value);const V=()=>{E.__open?ce(E):we(E)};w.addEventListener("click",V),ie.addEventListener("click",V),G.addEventListener("input",()=>{U(E)}),G.addEventListener("change",p=>{p.stopPropagation(),L(E)}),G.addEventListener("keydown",p=>{p.key==="Enter"?(p.preventDefault(),L(E)):p.key==="Escape"&&E.__open?ce(E):p.altKey&&p.key==="ArrowDown"&&(p.preventDefault(),we(E))}),E.addEventListener("keydown",p=>{p.target!==G&&(p.key==="Enter"&&!E.__open||p.altKey&&p.key==="ArrowDown"?(p.preventDefault(),we(E)):p.key==="Escape"&&E.__open&&(p.preventDefault(),ce(E,{restoreFocus:!0})))});const se=p=>{!E.__open||E.contains(p.target)||ce(E)},X=p=>{E.__open&&(p.relatedTarget&&E.contains(p.relatedTarget)||ce(E))};return te.addEventListener("pointerdown",se),E.addEventListener("focusout",X),Array.isArray(oe.disposers)&&oe.disposers.push(()=>{te.removeEventListener("pointerdown",se),E.removeEventListener("focusout",X)}),E},read(A){const oe=A.__input.value.trim();return oe===""?null:a(oe)||oe},write(A,oe){if(oe==null||oe===""){A.__value=null,z(A,null);return}const te=i(oe);if(!te){t("form.color.setValue",`form.color: "${String(oe)}" is not a colour (expected hex or a red-green-blue triplet); the value is unchanged.`);return}A.__value=te,z(A,te)},state(A,oe){const te=oe.disabled===!0||oe.readOnly===!0;A.__input.disabled=oe.disabled===!0,A.__input.readOnly=oe.readOnly===!0||!s(oe),A.__swatchBtn.disabled=te,A.__toggleBtn.disabled=te,A.__clearBtn&&(A.__clearBtn.disabled=te),te&&ce(A)},validate(A,oe,te){return te==null||typeof te=="string"&&/^#[0-9a-f]{6}$/.test(te)?!0:typeof oe.errorMessage=="string"&&oe.errorMessage!==""?oe.errorMessage:A.__t("form.color.invalidHex")},focus(A){A.__input.focus()}})}),Ne("packages/dom/src/cell/renderers/barcode/support.js",function(N,Z){"use strict";Object.defineProperty(N,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"joinCharacters",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"buildPattern",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"mod10Weighted",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"MOD43_ORDER",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"mod43Check",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"weightedModulo",{enumerable:!0,get:function(){return j}});function e(C){const S=[];for(let x=0;x<C.length;x++){const h=x%2===0?1:0;for(let n=0;n<C[x];n++)S.push(h)}return S}function R(C,S){const x=[];return C.forEach((h,n)=>{if(n>0&&S>0)for(let c=0;c<S;c++)x.push(0);x.push(...h)}),x}function $(C,S){return R(C.map(e),S)}function q(C,S=3){let x=0,h=S;for(let n=C.length-1;n>=0;n--)x+=Number(C[n])*h,h=h===3?1:3;return(10-x%10)%10}const k="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function P(C){let S=0;for(const x of C){const h=k.indexOf(x);if(h<0)return null;S+=h}return k[S%43]}function j(C,S,x=11){let h=0,n=1;for(let c=C.length-1;c>=0;c--)h+=C[c]*n,n=n===S?1:n+1;return h%x}}),Ne("packages/dom/src/cell/renderers/barcode/code39.js",function(N,Z){"use strict";Object.defineProperty(N,"toExtendedSymbols",{enumerable:!0,get:function(){return c}}),Object.defineProperty(N,"decodeExtendedSymbols",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"encodeCode39",{enumerable:!0,get:function(){return _}});const e=Z("packages/dom/src/cell/renderers/barcode/support.js"),R=e.buildPattern,$=e.mod43Check,q=e.MOD43_ORDER,k=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"],j="010010100";function C(t){return t.split("").map(a=>a==="1"?k:1)}function S(t){const a=q.indexOf(t);return a<0?null:C(P[a])}function x(){const t=new Map,a=i=>String.fromCharCode(65+i);for(let i=1;i<=26;i++)t.set(i,`$${a(i-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((i,f)=>t.set(27+f,i));for(let i=33;i<=44;i++)t.set(i,`/${a(i-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let i=59;i<=63;i++)t.set(i,`%${a(i-59+5)}`);t.set(64,"%V");for(let i=91;i<=95;i++)t.set(i,`%${a(i-91+10)}`);t.set(96,"%W");for(let i=97;i<=122;i++)t.set(i,`+${a(i-97)}`);for(let i=123;i<=127;i++)t.set(i,`%${a(i-123+15)}`);return t}const h=x(),n=new Map([...h].map(([t,a])=>[a,t]));function c(t){const a=[];for(const i of t){const f=i.codePointAt(0);if(f>127)return null;if(q.includes(i)){a.push(i);continue}const v=h.get(f);if(!v)return null;a.push(v[0],v[1])}return a}function b(t){let a="";for(let i=0;i<t.length;i++){const f=t[i]+(t[i+1]??"");if(n.has(f)){a+=String.fromCharCode(n.get(f)),i++;continue}a+=t[i]}return a}function _(t,a={}){const i=t==null?"":String(t);if(i==="")return{ok:!1,reason:"empty"};const f=a.extended?c(i):i.split("");if(!f)return{ok:!1,reason:"charset"};const v=[C(j)];for(const m of f){const g=S(m);if(!g)return{ok:!1,reason:"charset"};v.push(g)}if(a.checkDigit){const m=$(f.join(""));return m==null?{ok:!1,reason:"charset"}:(v.push(S(m)),v.push(C(j)),{ok:!0,modules:R(v,1),text:`${i}${m}`})}return v.push(C(j)),{ok:!0,modules:R(v,1),text:i}}}),Ne("packages/dom/src/cell/renderers/barcode/ean.js",function(N,Z){"use strict";Object.defineProperty(N,"L_PATTERNS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"G_PATTERNS",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"R_PATTERNS",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"EAN13_PARITY",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"encodeEan13",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"encodeEan8",{enumerable:!0,get:function(){return x}});const R=Z("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,$=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],q=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],k=$.map(h=>h.split("").map(n=>n==="1"?"0":"1").join("")),P=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function j(h){return h.split("").map(Number)}function C(h,n){const c=h==null?"":String(h);if(!/^\d+$/.test(c))return null;if(c.length===n)return{digits:c,check:R(c)};if(c.length===n+1){const b=c.slice(0,n),_=Number(c[n]),t=R(b);return _!==t?null:{digits:b,check:t}}return null}function S(h){const n=C(h,12);if(!n)return{ok:!1,reason:"checkDigit"};const c=n.digits+n.check,b=P[Number(c[0])],_=c.slice(1,7).split("").map((i,f)=>(b[f]==="L"?$:q)[Number(i)]),t=c.slice(7).split("").map(i=>k[Number(i)]);return{ok:!0,modules:[...j("101"),..._.flatMap(j),...j("01010"),...t.flatMap(j),...j("101")],text:c}}function x(h){const n=C(h,7);if(!n)return{ok:!1,reason:"checkDigit"};const c=n.digits+n.check,b=c.slice(0,4).split("").map(a=>$[Number(a)]),_=c.slice(4).split("").map(a=>k[Number(a)]);return{ok:!0,modules:[...j("101"),...b.flatMap(j),...j("01010"),..._.flatMap(j),...j("101")],text:c}}}),Ne("packages/dom/src/cell/renderers/barcode/upc.js",function(N,Z){"use strict";Object.defineProperty(N,"encodeUpcA",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"encodeUpcE",{enumerable:!0,get:function(){return h}});const e=Z("packages/dom/src/cell/renderers/barcode/ean.js"),R=e.L_PATTERNS,$=e.G_PATTERNS,q=e.encodeEan13,P=Z("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function j(n){return n.split("").map(Number)}function C(n){const c=n==null?"":String(n);if(!/^\d{11,12}$/.test(c))return{ok:!1,reason:"checkDigit"};const b=q(`0${c}`);return b.ok?{ok:!0,modules:b.modules,text:b.text.slice(1)}:b}function S(n,c){const b=n.split(""),_=b[5];return _<="2"?`${b[0]}${b[1]}${_}0000${b[2]}${b[3]}${b[4]}`:_==="3"?`${b[0]}${b[1]}${b[2]}00000${b[3]}${b[4]}`:_==="4"?`${b[0]}${b[1]}${b[2]}${b[3]}00000${b[4]}`:`${b[0]}${b[1]}${b[2]}${b[3]}${b[4]}0000${_}`}const x={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 h(n){const c=n==null?"":String(n);if(!/^\d{6,8}$/.test(c))return{ok:!1,reason:"checkDigit"};let b,_,t=null;if(c.length===6?(b="0",_=c):c.length===7?(b=c[0],_=c.slice(1)):(b=c[0],_=c.slice(1,7),t=c[7]),b!=="0"&&b!=="1")return{ok:!1,reason:"checkDigit"};const a=S(_,b),i=P(b+a);if(t!=null&&Number(t)!==i)return{ok:!1,reason:"checkDigit"};const v=x[i][Number(b)].split("").map((g,H)=>(g==="O"?R:$)[Number(_[H])]);return{ok:!0,modules:[...j("101"),...v.flatMap(j),...j("010101")],text:`${b}${_}${i}`}}}),Ne("packages/dom/src/cell/renderers/barcode/code93.js",function(N,Z){"use strict";Object.defineProperty(N,"toExtendedSymbols",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"decodeExtendedSymbols",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"encodeCode93",{enumerable:!0,get:function(){return _}}),Object.defineProperty(N,"PATTERNS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(N,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"SHIFT_ORDER",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"START_STOP",{enumerable:!0,get:function(){return q}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",R=["($)","(%)","(/)","(+)"],$=[[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]],q=[1,1,1,1,4,1];function k(t){const a=[];for(let i=0;i<t.length;i++){const f=i%2===0?1:0;for(let v=0;v<t[i];v++)a.push(f)}return a}function P(t){return $[t]}function j(t){return e.indexOf(t)}function C(){const t=new Map,a=43,i=44,f=45,v=46,m=g=>10+g;for(let g=1;g<=26;g++)t.set(g,[a,m(g-1)]);t.set(0,[i,m(20)]);for(let g=27;g<=31;g++)t.set(g,[i,m(g-27)]);for(let g=33;g<=44;g++)t.set(g,[f,m(g-33)]);t.set(47,[f,m(14)]),t.set(58,[f,m(25)]);for(let g=59;g<=63;g++)t.set(g,[i,m(g-59+5)]);t.set(64,[i,m(21)]);for(let g=91;g<=95;g++)t.set(g,[i,m(g-91+10)]);t.set(96,[i,m(22)]);for(let g=97;g<=122;g++)t.set(g,[v,m(g-97)]);for(let g=123;g<=127;g++)t.set(g,[i,m(g-123+15)]);return t}const S=C(),x=new Map([...S].map(([t,a])=>[a.join(","),t]));function h(t){const a=[];for(const i of t){const f=i.codePointAt(0);if(f>127)return null;const v=j(i);if(v>=0){a.push(v);continue}const m=S.get(f);if(!m)return null;a.push(m[0],m[1])}return a}function n(t){let a="";for(let i=0;i<t.length;i++){const f=`${t[i]},${t[i+1]??""}`;if(x.has(f)){a+=String.fromCharCode(x.get(f)),i++;continue}a+=e[t[i]]}return a}function c(t){let a=0,i=1;for(let f=t.length-1;f>=0;f--)a+=t[f]*i,i=i===20?1:i+1;return a%47}function b(t){const a=c(t),i=c([...t,a]);return{c:a,k:i}}function _(t,a={}){const i=t==null?"":String(t);if(i==="")return{ok:!1,reason:"empty"};const f=a.extended?h(i):(()=>{const u=[];for(const s of i){const o=j(s);if(o<0)return null;u.push(o)}return u})();if(!f)return{ok:!1,reason:"charset"};const{c:v,k:m}=b(f),g=[q];for(const u of f)g.push(P(u));return g.push(P(v)),g.push(P(m)),g.push(q),{ok:!0,modules:g.flatMap(k),text:i}}}),Ne("packages/dom/src/cell/renderers/barcode/code128.js",function(N,Z){"use strict";Object.defineProperty(N,"encodeCode128",{enumerable:!0,get:function(){return t}});const R=Z("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,$=["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"],q=103,k=104,P=105,j=106,C={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},S={A:q,B:k,C:P};function x(a){return a>=32&&a<=95?a-32:a>=0&&a<=31?a+64:null}function h(a){return a>=32&&a<=127?a-32:null}function n(a,i){const f=a.charCodeAt(i),v=a.charCodeAt(i+1);return f>=48&&f<=57&&v>=48&&v<=57}function c(a,i,f){const v=[],m=a.charCodeAt(i),g=x(m);if(g!=null){const u=f==="A"||f===null?[g]:[C[f].A,g];v.push({to:"A",symbols:u,advance:1})}const H=h(m);if(H!=null){const u=f==="B"||f===null?[H]:[C[f].B,H];v.push({to:"B",symbols:u,advance:1})}if(n(a,i)){const u=Number(a.slice(i,i+2)),s=f==="C"||f===null?[u]:[C[f].C,u];v.push({to:"C",symbols:s,advance:2})}return v}function b(a){const i=a.length,f=Array.from({length:i+1},()=>({}));f[0].start={cost:0,prev:null,symbols:[]};for(let o=0;o<=i;o++)for(const r of Object.keys(f[o])){const l=f[o][r];if(o===i)continue;const d=r==="start"?null:r;for(const T of c(a,o,d)){const U=o+T.advance,z=l.cost+T.symbols.length,L=f[U][T.to];(!L||z<L.cost)&&(f[U][T.to]={cost:z,prev:r,symbols:T.symbols,backI:o})}}const v=Object.entries(f[i]);if(v.length===0)return null;v.sort((o,r)=>o[1].cost-r[1].cost);const[,m]=v[0],g=[];let H=i,u=v[0][0],s=u;for(;H>0;){const o=f[H][u];g.push(o.symbols),s=u,H=o.backI,u=o.prev}return g.reverse(),{symbols:g.flat(),startSubset:s}}function _(a,i){let f=a;for(let v=0;v<i.length;v++)f+=i[v]*(v+1);return f%103}function t(a,i={}){const f=a==null?"":String(a);if(f==="")return{ok:!1,reason:"empty"};for(let o=0;o<f.length;o++)if(f.charCodeAt(o)>127)return{ok:!1,reason:"charset"};const v=b(f);if(!v)return{ok:!1,reason:"charset"};const m=S[v.startSubset],g=_(m,v.symbols);return{ok:!0,modules:[m,...v.symbols,g,j].map(o=>$[o].split("").map(Number)).flatMap(o=>R(o)),text:f}}}),Ne("packages/dom/src/cell/renderers/barcode/code11.js",function(N,Z){"use strict";Object.defineProperty(N,"encodeCode11",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"ALPHABET",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"PATTERNS",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"START_STOP",{enumerable:!0,get:function(){return P}});const e=Z("packages/dom/src/cell/renderers/barcode/support.js"),R=e.buildPattern,$=e.weightedModulo,q="0123456789-",k=[[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],j=n=>q.indexOf(n);function C(n){const c=j(n);return c<0?null:k[c]}function S(n){return q[$(n,10)]}function x(n){return q[$(n,9)]}function h(n,c={}){const b=n==null?"":String(n);if(b==="")return{ok:!1,reason:"empty"};const _=[];for(const m of b){const g=j(m);if(g<0)return{ok:!1,reason:"charset"};_.push(g)}const t=S(_),a=j(t),f=b.length>=10?`${t}${x([..._,a])}`:t,v=[P];for(const m of b)v.push(C(m));for(const m of f)v.push(C(m));return v.push(P),{ok:!0,modules:R(v,1),text:`${b}${f}`}}}),Ne("packages/dom/src/cell/renderers/barcode/codabar.js",function(N,Z){"use strict";Object.defineProperty(N,"MOD16_ORDER",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"encodeCodabar",{enumerable:!0,get:function(){return h}});const R=Z("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,$=2,q={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"},k="0123456789-$:/.+",P="ABCD",j="0123456789-$:/.+ABCD";function C(n){return n.split("").map(c=>c==="w"?$:1)}function S(n){const c=q[n];return c?C(c):null}function x(n){let c=0;for(const _ of n){const t=j.indexOf(_);if(t<0)return null;c+=t}const b=c%16;return b<10?String(b):null}function h(n,c={}){const b=n==null?"":String(n);if(b==="")return{ok:!1,reason:"empty"};const _=b.toUpperCase();if(_.length<2)return{ok:!1,reason:"charset"};const t=_[0],a=_[_.length-1];if(!P.includes(t)||!P.includes(a))return{ok:!1,reason:"charset"};const i=_.slice(1,-1);for(const m of i)if(!k.includes(m))return{ok:!1,reason:"charset"};const f=[t,...i.split(""),a];if(c.checkDigit){const m=x(f);if(m==null)return{ok:!1,reason:"checkDigit"};f.splice(f.length-1,0,m);const g=f.map(S),H=`${_.slice(0,-1)}${m}${a}`;return{ok:!0,modules:R(g,1),text:H}}const v=f.map(S);return{ok:!0,modules:R(v,1),text:_}}}),Ne("packages/dom/src/cell/renderers/barcode/code32.js",function(N,Z){"use strict";Object.defineProperty(N,"ALPHABET",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"decodeCode32Modules",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"encodeCode32",{enumerable:!0,get:function(){return c}});const R=Z("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,$=2,q="010010100",k={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",j=b=>b.split("").map(_=>_==="1"?$:1),C=b=>k[b]?j(k[b]):null,S=()=>j(q);function x(b){let _=0;for(let t=0;t<8;t++){const a=t+1;let i=Number(b[t]);a%2===0&&(i*=2,i>=10&&(i-=9)),_+=i}return _%10}function h(b,_){let t="",a=b;for(let i=0;i<_;i++)t=P[a%32]+t,a=Math.floor(a/32);return t}function n(b){const _=[];for(let v=0;v<b.length;v++)v===0||b[v]!==b[v-1]?_.push(1):_[_.length-1]++;const t=1,a=v=>v>t?"1":"0",i=[];let f=9;for(;f<_.length;){f+=1;const v=_.slice(f,f+9);if(v.length<9)break;const m=v.map(a).join(""),g=Object.keys(k).find(H=>k[H]===m);i.push(g??"?"),f+=9}return i.pop(),i}function c(b,_={}){const t=b==null?"":String(b);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const a=t.slice(0,8),i=x(a);let f;if(t.length===9){const s=Number(t[8]);if(s!==i)return{ok:!1,reason:"checkDigit"};f=s}else f=i;const v=`${a}${f}`,m=Number(v),H=`A${h(m,6)}`.split(""),u=[S()];for(const s of H){const o=C(s);if(!o)return{ok:!1,reason:"charset"};u.push(o)}return u.push(S()),{ok:!0,modules:R(u,1),text:v}}}),Ne("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(N,Z){"use strict";Object.defineProperty(N,"gfMul",{enumerable:!0,get:function(){return q}}),Object.defineProperty(N,"gfExp",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"generatorPoly",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"reedSolomon",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"SIZES",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"dataCodewords",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"errorCodewords",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"dataRegionSize",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"base256Mask",{enumerable:!0,get:function(){return a}}),Object.defineProperty(N,"encodeBase256",{enumerable:!0,get:function(){return i}}),Object.defineProperty(N,"padCodewords",{enumerable:!0,get:function(){return f}}),Object.defineProperty(N,"utahPlacementOrder",{enumerable:!0,get:function(){return v}}),Object.defineProperty(N,"diagonalWalkCoverage",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"placeCodewords",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"buildSymbol",{enumerable:!0,get:function(){return H}}),Object.defineProperty(N,"encodeDataMatrix",{enumerable:!0,get:function(){return r}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return l}});const e=301,R=new Uint8Array(512),$=new Uint8Array(256);{let d=1;for(let T=0;T<255;T++)R[T]=d,$[d]=T,d<<=1,d&256&&(d^=e);for(let T=255;T<512;T++)R[T]=R[T-255]}function q(d,T){return d===0||T===0?0:R[$[d]+$[T]]}function k(d){return R[(d%255+255)%255]}function P(d){let T=new Uint8Array([1]);for(let U=0;U<d;U++){const z=new Uint8Array(T.length+1);for(let L=0;L<T.length;L++)z[L]^=T[L],z[L+1]^=q(T[L],k(U));T=z}return T.subarray(1)}function j(d,T){const U=P(T),z=new Uint8Array(T);for(let L=0;L<d.length;L++){const y=d[L]^z[0];if(z.copyWithin(0,1),z[T-1]=0,y!==0)for(let M=0;M<T;M++)z[M]^=q(U[M],y)}return z}const C={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]},S=Object.keys(C).map(Number).sort((d,T)=>d-T);function x(d){const T=C[d];if(!T)throw new RangeError(`unsupported Data Matrix size ${d}`);return T[0]}function h(d){const T=C[d];if(!T)throw new RangeError(`unsupported Data Matrix size ${d}`);return T[1]}function n(d){return d-2}const c=129,b=231,_=d=>d>=48&&d<=57;function t(d){const T=[];let U=0;for(;U<d.length;){const z=d[U],L=U+1<d.length?d[U+1]:-1;if(_(z)&&_(L)){const y=z-48,M=L-48;T.push(y*10+M+130),U+=2}else T.push(z+1),U+=1}return T}function a(d,T){const U=149*T%255+1;return(d+U)%256}function i(d,T){if(d.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const U=[b,d.length];for(let z=0;z<d.length;z++)U.push(a(d[z],T+2+z));return U}function f(d,T){if(d.length>T)throw new RangeError(`encoded stream (${d.length} codewords) exceeds capacity (${T})`);const U=d.slice();for(;U.length<T;)U.push(c);return U}function v(d){const T=new Array(d*d).fill(null),U=[],z=(we,ce)=>we>=0&&we<d&&ce>=0&&ce<d,L=(we,ce)=>{if(!z(we,ce))return;const A=we*d+ce;if(T[A]===null){const oe={row:we,col:ce};T[A]=oe,U.push(oe)}},y=(we,ce)=>{const A=te=>(te%d+d)%d,oe=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[te,E]of oe)L(A(we+te),A(ce+E))};let M=4,W=0,B=0;const ne=d*d+64;do{for(;M>=0&&W<d;)y(M,W),M-=2,W+=2;for(M+=1,W+=3;M<d&&W>=0;)y(M,W),M+=2,W-=2;M+=3,W+=1}while((M<d||W<d)&&B++<ne);const Ae=U.length;for(let we=0;we<d;we++)for(let ce=0;ce<d;ce++)L(we,ce);return Object.defineProperty(U,"sweptCount",{value:U.length-Ae,enumerable:!1}),U}function m(d){return v(d).sweptCount}function g(d,T){const U=v(T),z=new Uint8Array(T*T);for(let L=0;L<U.length;L++){const y=Math.floor(L/8);if(y>=d.length)break;const M=7-L%8,W=d[y]>>>M&1,{row:B,col:ne}=U[L];z[B*T+ne]=W}return z}function H(d,T){const U=T+2,z=new Uint8Array(U*U),L=(M,W,B)=>{z[M*U+W]=B},y=U-1;for(let M=0;M<U;M++)L(y,M,1);for(let M=0;M<U;M++)L(M,0,1);for(let M=0;M<U;M++)L(0,M,M%2===0?1:0);for(let M=0;M<U;M++)L(M,U-1,M%2===0?1:0);for(let M=0;M<T;M++)for(let W=0;W<T;W++)z[(M+1)*U+(W+1)]=d[M*T+W];return{size:U,modules:z}}function u(d){const T=new Uint8Array(d.length);for(let U=0;U<d.length;U++)T[U]=d.charCodeAt(U)&255;return T}function s(d){for(let T=0;T<d.length;T++)if(d[T]>127)return!1;return!0}function o(d){for(const T of S)if(x(T)>=d)return T;return 0}function r(d,T={}){if(d==null||d==="")return{ok:!1,reason:"empty"};const U=String(d),z=u(U),L=T&&T.encodation==="base256";if(!L&&!s(z))return{ok:!1,reason:"charset"};let y;if(L){if(z.length>249)return{ok:!1,reason:"capacity"};y=i(z,1)}else y=t(z);const M=T&&T.size;let W;if(M!=null){if(!C[M])return{ok:!1,reason:"capacity"};if(y.length>x(M))return{ok:!1,reason:"capacity"};W=M}else if(W=o(y.length),W===0)return{ok:!1,reason:"capacity"};const B=x(W),ne=f(y,B),Ae=j(ne,h(W)),we=new Uint8Array(B+Ae.length);we.set(ne,0),we.set(Ae,B);const ce=n(W),A=g(we,ce),{modules:oe}=H(A,ce);return{ok:!0,matrix:{size:W,modules:oe},text:U}}const l=r}),Ne("packages/dom/src/cell/renderers/barcode/index.js",function(N,Z){"use strict";Object.defineProperty(N,"BARCODE_TYPES",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"encodeBarcode",{enumerable:!0,get:function(){return g}});const e=Z("packages/dom/src/cell/renderers/barcode/code39.js"),R=e.encodeCode39,$=Z("packages/dom/src/cell/renderers/barcode/ean.js"),q=$.encodeEan13,k=$.encodeEan8,P=Z("packages/dom/src/cell/renderers/barcode/upc.js"),j=P.encodeUpcA,C=P.encodeUpcE,S=Z("packages/dom/src/cell/renderers/barcode/code93.js"),x=S.encodeCode93,h=Z("packages/dom/src/cell/renderers/barcode/code128.js"),n=h.encodeCode128,c=Z("packages/dom/src/cell/renderers/barcode/code11.js"),b=c.encodeCode11,_=Z("packages/dom/src/cell/renderers/barcode/codabar.js"),t=_.encodeCodabar,a=Z("packages/dom/src/cell/renderers/barcode/code32.js"),i=a.encodeCode32,f=Z("packages/dom/src/cell/renderers/barcode/datamatrix.js"),v=f.encodeDataMatrix;Object.defineProperty(N,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty(N,"encodeEan13",{enumerable:!0,get:function(){return $.encodeEan13}}),Object.defineProperty(N,"encodeEan8",{enumerable:!0,get:function(){return $.encodeEan8}}),Object.defineProperty(N,"encodeUpcA",{enumerable:!0,get:function(){return P.encodeUpcA}}),Object.defineProperty(N,"encodeUpcE",{enumerable:!0,get:function(){return P.encodeUpcE}}),Object.defineProperty(N,"encodeCode93",{enumerable:!0,get:function(){return S.encodeCode93}}),Object.defineProperty(N,"encodeCode128",{enumerable:!0,get:function(){return h.encodeCode128}}),Object.defineProperty(N,"encodeCode11",{enumerable:!0,get:function(){return c.encodeCode11}}),Object.defineProperty(N,"encodeCodabar",{enumerable:!0,get:function(){return _.encodeCodabar}}),Object.defineProperty(N,"encodeCode32",{enumerable:!0,get:function(){return a.encodeCode32}}),Object.defineProperty(N,"encodeDataMatrix",{enumerable:!0,get:function(){return f.encodeDataMatrix}});const m=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function g(H,u,s={}){switch(H){case"code39":return R(u,{checkDigit:s.checkDigit});case"code39ext":return R(u,{extended:!0,checkDigit:s.checkDigit});case"ean13":return q(u);case"ean8":return k(u);case"upca":return j(u);case"upce":return C(u);case"code93":return x(u);case"code93ext":return x(u,{extended:!0});case"code128":return n(u);case"code11":return b(u);case"codabar":return t(u,{checkDigit:s.checkDigit});case"code32":return i(u);case"datamatrix":return v(u,{size:s.size,encodation:s.encodation});default:return{ok:!1,reason:"type"}}}}),Ne("packages/dom/src/cell/renderers/barcode/render.js",function(N,Z){"use strict";Object.defineProperty(N,"warnOnce",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"barsPathData",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"matrixPathData",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"paint",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"buildSvg",{enumerable:!0,get:function(){return _}}),Object.defineProperty(N,"renderBarcode",{enumerable:!0,get:function(){return t}});const R=Z("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,$="http://www.w3.org/2000/svg",q=60,k=16,P=4;function j(a,i,f){f==null||f===!1?a.removeAttribute(i):a.setAttribute(i,String(f))}const C=new Set;function S(a,i){C.has(a)||(C.add(a),console.warn("[lattice]",i))}function x(a,i,f){const v=[];let m=0;for(;m<a.length;){if(!a[m]){m++;continue}let g=1;for(;m+g<a.length&&a[m+g];)g++;v.push(`M${m+i} 0h${g}v${f}h-${g}z`),m+=g}return v.join("")}function h(a,i){const{size:f,modules:v}=a,m=[];for(let g=0;g<f;g++){let H=0;for(;H<f;){if(!v[g*f+H]){H++;continue}let u=1;for(;H+u<f&&v[g*f+H+u];)u++;m.push(`M${H+i} ${g+i}h${u}v1h-${u}z`),H+=u}}return m.join("")}function n(a){const i=a&&typeof a=="object"?a:{};return{show:i.show!==!1,position:i.position==="top"?"top":"bottom",align:i.align==="left"||i.align==="right"?i.align:"center",margin:Number.isFinite(Number(i.margin))?Number(i.margin):2,font:typeof i.font=="string"&&i.font?i.font:"10px sans-serif"}}function c(a){const i=Math.floor(Number(a));return!Number.isFinite(i)||i<0?10:Math.min(40,i)}function b(a,i,f){const v=c(f.quietZone),m=n(f.text),g=m.show,H=!!i.matrix,u=H?i.matrix.size:i.modules.length,s=H?u+v*2:q,o=g&&m.position==="top"?k+P:0,r=s+(g?k+P:0),l=u+v*2,d=Number(f.moduleWidth)||0,T=d>0?l*d:Number(f.width)||200,U=Number(f.height)||Math.round(T/l*r)||60;j(a.svg,"viewBox",`0 0 ${l} ${r}`),j(a.svg,"width",T),j(a.svg,"height",U);const z=f.print?"#000000":f.foreground||"currentColor",L=f.print?"#ffffff":f.background;if(L?(j(a.background,"x",0),j(a.background,"y",0),j(a.background,"width",l),j(a.background,"height",r),a.background.setAttribute("fill",L),a.background.style.display=""):a.background.style.display="none",a.path.setAttribute("fill",z),a.path.setAttribute("transform",`translate(0 ${o})`),a.path.setAttribute("d",H?h(i.matrix,v):x(i.modules,v,q)),!g){a.text.style.display="none";return}a.text.style.display="",a.text.style.font=m.font,a.text.setAttribute("fill",z),a.text.setAttribute("text-anchor",m.align==="left"?"start":m.align==="right"?"end":"middle");const y=m.align==="left"?v:m.align==="right"?l-v:l/2,M=m.position==="top"?k-m.margin:r-m.margin;j(a.text,"x",y),j(a.text,"y",M),a.text.textContent=i.text}function _(a){const i=a.createElementNS($,"svg");i.setAttribute("class","lat-barcode__svg"),i.setAttribute("focusable","false"),i.setAttribute("preserveAspectRatio","none");const f=a.createElementNS($,"rect");f.style.display="none";const v=a.createElementNS($,"path"),m=a.createElementNS($,"text");return i.appendChild(f),i.appendChild(v),i.appendChild(m),{svg:i,background:f,path:v,text:m}}function t(a,i){const f=a.ownerDocument,v=_(f);a.textContent="",a.appendChild(v.svg);const m=H=>{const u=H||{},s=String(u.type||"code39"),o=R(s,u.value,{checkDigit:u.checkDigit,size:u.size,encodation:u.encodation});if(!o.ok){S(`barcode:invalid:${s}`,`column "standalone" has a value that is not valid for the "${s}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),v.path.setAttribute("d","");return}b(v,o,u)};return m(i),{update:m,destroy:()=>{a.textContent=""}}}}),Ne("packages/modules/form/controls/barcode.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function k(P,j){const C=P.props&&P.props.source;if(!C)return P.value;const S=typeof j.form.getItem=="function"?j.form.getItem(C):null;return S&&typeof S.getValue=="function"?S.getValue():void 0}R("barcode",{kind:"display",build(P,j){const C=j.doc.createElement("span");C.className="lat-form__barcode";const S=q(C,{...P.props,value:k(P,j)}),x=P.props&&P.props.source;if(x){const h=j.emitter.on("change",n=>{n&&n.name===x&&S.update({...P.props,value:n.value})});j.disposers.push(h)}return j.disposers.push(()=>S.destroy()),C._barcodeHandle=S,C},read(P,j,C){return k(j,C)},write(P,j,C){P._barcodeHandle&&P._barcodeHandle.update({...j.props,value:C})},state(){}})}),Ne("packages/modules/form/controls/speeddial.js",function(N,Z){"use strict";Object.defineProperty(N,"injectSpeedDialStyles",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"createSpeedDial",{enumerable:!0,get:function(){return r}});const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/modules/form/messages.js").t,P=Z("packages/modules/form/ids.js").nextId,C=Z("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,S="lat-speeddial",x="data-lattice-speeddial-styles",h="http://www.w3.org/2000/svg",n=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),c=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),b=Object.freeze(["up","down","left","right"]);function _(){const l=`
1999
+ `.trim()}function P(d){const c=d&&d.documentElement;if(!c||c.getAttribute(C))return;c.setAttribute(C,"1");const i=d.createElement("style");i.textContent=z(),(d.head||d.body||c).appendChild(i)}function A(d,c){const i=c&&c.defaultView,r=i&&i.Event,l=r?new r("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};d.dispatchEvent(l)}function j(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function k(d){const c=Number(d)||0;return c<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(c<10240?1:0)} KB`:c<1073741824?`${(c/1048576).toFixed(1)} MB`:`${(c/1073741824).toFixed(2)} GB`}function g(d,c){if(!c||!c.length)return!0;const i=(d.name||"").toLowerCase(),r=(d.type||"").toLowerCase();return c.some(l=>{const f=String(l).trim().toLowerCase();return f.startsWith(".")?i.endsWith(f):f.endsWith("/*")?r.startsWith(f.slice(0,-1)):r===f})}function n(d){return d.length?d.length===1?d[0]:d.length===2?`${d[0]} or ${d[1]}`:`${d.slice(0,-1).join(", ")} or ${d[d.length-1]}`:""}function u(d){const c={".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"},i=String(d).trim(),r=c[i.toLowerCase()];if(r)return r;if(i.startsWith("."))return i.slice(1).toUpperCase();if(i.endsWith("/*"))return`${i.slice(0,-2)}s`;const l=i.split("/")[1];return l?l.toUpperCase():i}function b(d,c,i,r){const l=[];return c&&c.length&&l.push(n(c.map(u))),i&&l.push(d("form.file.hint.size",{size:k(i)})),r&&l.push(d(r===1?"form.file.hint.file":"form.file.hint.files",{max:String(r)})),l.join(" · ")}function v(d){return{id:d.id,name:d.name,size:d.size,type:d.type,status:d.status,progress:d.progress,message:d.message||""}}function t(d,c){const i=d.createElementNS(X,"svg");i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("focusable","false"),i.setAttribute("aria-hidden","true"),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","1.5"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round");const r=d.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",c),i.appendChild(r),i}const a=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 s(d,c){const i=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let r;for(;r=i.exec(c);)d.setAttribute(r[1],r[3]===void 0?r[4]:r[3])}function p(d,c){const i=/<svg\b([^>]*)>/i.exec(c);if(!i)return null;const r=d.createElementNS(X,"svg");s(r,i[1]);const l=c.lastIndexOf("</svg"),f=l===-1?"":c.slice(i.index+i[0].length,l),T=/<(\w+)\b([^>]*?)(\/?)>/g;let V;for(;V=T.exec(f);){const D=d.createElementNS(X,V[1]);s(D,V[2]),r.appendChild(D)}return r.setAttribute("aria-hidden","true"),r.setAttribute("focusable","false"),r}function y(d,c){if(d===!1)return null;if(d!=null&&typeof d=="object"&&d.nodeType){const r=d;return r.classList.add(`${S}__icon`),r.setAttribute("aria-hidden","true"),r}if(typeof d!="string"||d==="")return null;const i=a[d]?t(c,a[d]):p(c,d);return i?(i.setAttribute("class",`${S}__icon`),i):null}function m(d){const c=d.type||"";return c.startsWith("image/")?"image":c==="application/pdf"||/\.pdf$/i.test(d.name)?"document":"file"}function h(d){if(d.thumb)return d.thumb;if(!d.file||!/^image\//.test(d.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{d.thumb=URL.createObjectURL(d.file)}catch{d.thumb=null}return d.thumb}function R(d){if(d.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(d.thumb)}catch{}d.thumb=null}B("file",{kind:"field",build(d,c){const i=c.doc,r=c.t,l=d.props||{},f=Array.isArray(l.accept)?l.accept.map(_=>String(_)):[],T=Number(l.maxSize)||0,V=Number(l.maxFiles)||0,D=l.multiple!==!1,M=typeof l.upload=="function"?l.upload:null,w=l.dropzone!==!1,I=l.dropText!=null?String(l.dropText):r("form.file.dropText"),W=l.browseText!=null?String(l.browseText):r("form.file.browse"),G=r("form.file.dropToUpload"),ne=r("form.file.addMore"),be=r("form.file.typeNotAccepted"),Ae=l.hint!=null&&l.hint!==""?String(l.hint):b(r,f,T,V);P(i);const le=i.createElement("div");le.className=S;const $={accept:f,maxSize:T,maxFiles:V,multiple:D,upload:M,dropText:I,browse:W,dropToUpload:G,addMore:ne,typeNotAccepted:be,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:w,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};le.__latFile=$;const ie=i.createElement("input");ie.type="file",ie.className=`${S}__input`,ie.tabIndex=-1,ie.setAttribute("aria-hidden","true"),D&&(ie.multiple=!0),f.length&&(ie.accept=f.join(",")),le.appendChild(ie),$.input=ie;const q=i.createElement("div");q.className=`${S}__zone`,q.setAttribute("role","button"),q.tabIndex=0,q.setAttribute("aria-label",`${I} ${W}`);const E=l.icon==null?t(i,a.upload):y(l.icon,i);E&&(l.icon==null&&E.setAttribute("class",`${S}__icon`),q.appendChild(E));const H=i.createElement("span");H.className=`${S}__title`;const x=i.createElement("span");x.className=`${S}__title-rest`,x.textContent=I,H.appendChild(x);const U=i.createElement("button");U.type="button",U.className=`${S}__browse`,U.tabIndex=-1,U.textContent=W,H.appendChild(U),q.appendChild(H),$.titleRest=x,$.browseEl=U;const ee=i.createElement("span");if(ee.className=`${S}__drop`,ee.textContent=G,q.appendChild(ee),Ae){const _=i.createElement("span");_.className=`${S}__hint`,_.textContent=Ae,q.appendChild(_)}const te=i.createElement("span");te.className=`${S}__compact`,te.appendChild(t(i,a.upload));const ue=i.createElement("span");ue.className=`${S}__compact-text`,ue.textContent=ne,te.appendChild(ue),q.appendChild(te),$.compactText=ue,le.appendChild(q),$.zone=q;const ae=i.createElement("ul");ae.className=`${S}__list`,ae.setAttribute("role","list"),ae.hidden=!0,le.appendChild(ae),$.list=ae;const de=i.createElement("div");return de.className=`${S}__live`,de.setAttribute("role","status"),de.setAttribute("aria-live","polite"),le.appendChild(de),$.live=de,le.__latAnnounce=_=>{$.live&&($.live.textContent="",$.live.textContent=_)},le.__latDragState=_=>{$.zone.classList.toggle("is-dragover",_==="over"),$.zone.classList.toggle("is-invalid",_==="invalid"),_==="none"?($.titleRest.textContent=$.dropText,$.browseEl.hidden=!1,$.compactText.textContent=$.addMore):_==="over"?($.titleRest.textContent=$.dropToUpload,$.browseEl.hidden=!0,$.compactText.textContent=$.dropToUpload):($.titleRest.textContent=$.typeNotAccepted,$.browseEl.hidden=!0,$.compactText.textContent=$.typeNotAccepted)},le.__latPaint=()=>{const _=$.disabled||$.readOnly||!$.dropzone;$.zone.hidden=_,$.zone.tabIndex=_?-1:0,_?$.zone.setAttribute("aria-disabled","true"):$.zone.removeAttribute("aria-disabled"),$.input.disabled=_;const re=$.entries.length>0;$.zone.classList.toggle("is-compact",re),$.zone.setAttribute("aria-label",re?$.addMore:`${$.dropText} ${$.browse}`),ae.hidden=!$.entries.length,ae.tabIndex=$.readOnly&&!$.disabled?0:-1,$.entries.some(o=>o.status==="rejected")?le.setAttribute("aria-invalid","true"):le.removeAttribute("aria-invalid"),ae.textContent="";for(const o of $.entries){const L=i.createElement("li");L.className=`${S}__item is-${o.status}`,L.setAttribute("data-id",o.id),L.setAttribute("role","listitem");const Y=h(o);if(Y){const ke=i.createElement("img");ke.className=`${S}__item-thumb`,ke.src=Y,ke.alt="",L.appendChild(ke)}else{const ke=t(i,a[m(o)]);ke.setAttribute("class",`${S}__item-icon`),L.appendChild(ke)}const Q=i.createElement("div");Q.className=`${S}__item-main`,L.appendChild(Q);const me=i.createElement("div");me.className=`${S}__item-row`,Q.appendChild(me);const ge=i.createElement("span");ge.className=`${S}__item-name`,ge.textContent=o.name,ge.title=o.name,me.appendChild(ge);const $e=i.createElement("span");$e.className=`${S}__item-size`,$e.textContent=k(o.size),me.appendChild($e);const je=i.createElement("span");if(je.className=`${S}__item-state`,o.status==="uploading"){const ke=i.createElement("span");ke.className=`${S}__item-pct`,ke.textContent=`${o.progress}%`,je.appendChild(ke)}else o.status==="done"?je.appendChild(t(i,a.check)):(o.status==="error"||o.status==="rejected")&&je.appendChild(t(i,a.warn));me.appendChild(je);const Pe=i.createElement("button");if(Pe.type="button",Pe.className=`${S}__remove`,Pe.setAttribute("aria-label",`${r("form.file.remove")} ${o.name}`),Pe.title=r("form.file.remove"),Pe.appendChild(t(i,a.xmark)),Pe.setAttribute("data-remove",o.id),Pe.disabled=$.disabled||$.readOnly,me.appendChild(Pe),o.status==="uploading"){const ke=i.createElement("span");ke.className=`${S}__item-bar`,ke.setAttribute("role","progressbar"),ke.setAttribute("aria-valuemin","0"),ke.setAttribute("aria-valuemax","100"),ke.setAttribute("aria-valuenow",String(o.progress));const O=i.createElement("span");O.className=`${S}__item-fill`,O.style.width=`${o.progress}%`,ke.appendChild(O),Q.appendChild(ke)}if(o.message){const ke=i.createElement("span");if(ke.className=`${S}__item-message`,ke.appendChild(i.createTextNode(o.message)),o.status==="error"){ke.appendChild(i.createTextNode(" "));const O=i.createElement("button");O.type="button",O.className=`${S}__retry`,O.textContent=r("form.file.retry"),O.setAttribute("data-retry",o.id),O.disabled=$.disabled||$.readOnly,ke.appendChild(O)}Q.appendChild(ke)}ae.appendChild(L)}},le.__latUpload=_=>{if(!$.upload){_.status="done",_.progress=100,le.__latPaint();return}_.status="uploading",_.progress=0,_.message="";let re=null;typeof AbortController<"u"&&(re=new AbortController,$.controllers.set(_.id,re));const F=re?re.signal:void 0,o=Y=>{_.progress=Math.max(0,Math.min(100,Number(Y)||0)),_.status="uploading",le.__latPaint()};let L;try{L=$.upload(_.file,{onProgress:o,signal:F})}catch(Y){L=Promise.reject(Y)}L&&typeof L.then=="function"&&L.then(()=>{$.controllers.delete(_.id),_.status="done",_.progress=100,le.__latPaint(),le.__latAnnounce(r("form.file.uploaded",{name:_.name})),A(le,c.doc)},Y=>{$.controllers.delete(_.id),_.status="error",_.message=Y&&Y.message?String(Y.message):r("form.file.uploadFailed"),le.__latPaint(),le.__latAnnounce(r("form.file.failed",{name:_.name})),A(le,c.doc)})},le.__latTake=_=>{const re=[..._||[]];if(!re.length||$.disabled||$.readOnly)return;const F=$.multiple?re:re.slice(0,1),o=[],L=[];let Y=$.maxFiles?Math.max(0,$.maxFiles-$.entries.length):1/0;for(const Q of F){if(Y<=0){L.push({file:Q,reason:"count"});continue}if($.maxSize&&Q.size>$.maxSize){L.push({file:Q,reason:"size"});continue}if(!g(Q,$.accept)){L.push({file:Q,reason:"type"});continue}o.push({id:j(),file:Q,name:Q.name,size:Q.size,type:Q.type,status:"selected",progress:0,message:""}),Y-=1}if(o.length){$.multiple||($.entries=[]),$.entries.push(...o),le.__latPaint(),A(le,c.doc),le.__latAnnounce(o.length===1?r("form.file.addedOne"):r("form.file.added",{count:String(o.length)}));for(const Q of o)le.__latUpload(Q)}for(const Q of L){const me=Q.reason==="size"?r("form.file.rejected.size",{size:k($.maxSize)}):Q.reason==="type"?r("form.file.rejected.type"):r("form.file.rejected.count",{max:String($.maxFiles)});$.entries.push({id:j(),file:Q.file,name:Q.file.name,size:Q.file.size,type:Q.file.type,status:"rejected",progress:0,message:me}),le.__latAnnounce(me)}le.__latPaint()},le.__latRemove=_=>{const re=$.controllers.get(_);re&&(re.abort(),$.controllers.delete(_));const F=$.entries.find(o=>o.id===_);F&&R(F),$.entries=$.entries.filter(o=>o.id!==_),le.__latPaint(),A(le,c.doc)},le.__latRetry=_=>{if($.disabled||$.readOnly)return;const re=$.entries.find(F=>F.id===_);!re||!re.file||re.status==="rejected"||(le.__latUpload(re),A(le,c.doc))},le.__latClick=_=>{if($.disabled||$.readOnly)return;const re=_.target&&_.target.closest?_.target:null,F=re&&re.closest?re.closest("[data-remove]"):null;if(F&&le.contains(F)){le.__latRemove(F.getAttribute("data-remove"));return}const o=re&&re.closest?re.closest("[data-retry]"):null;if(o&&le.contains(o)){le.__latRetry(o.getAttribute("data-retry"));return}re&&re.closest&&re.closest(`.${S}__zone`)&&$.input.click()},le.__latKeydown=_=>{$.disabled||$.readOnly||(_.key==="Enter"||_.key===" "||_.key==="Spacebar")&&_.target===$.zone&&(_.preventDefault(),$.input.click())},le.__latChange=()=>{le.__latTake($.input.files),$.input.value=""},le.__latDragKind=_=>{if(!$.accept.length)return"over";const re=_.dataTransfer;if(!re||!re.types||!re.types.length)return"over";const F=Array.from(re.types);return F.includes("Files")?"over":F.every(o=>!g({name:"",type:o},$.accept))?"invalid":"over"},le.__latDrag=_=>{if(!($.disabled||$.readOnly)){if(_.type==="dragenter"||_.type==="dragover"){_.preventDefault(),le.__latDragState(le.__latDragKind(_));return}if(_.type==="dragleave"){if(_.relatedTarget&&$.zone.contains(_.relatedTarget))return;le.__latDragState("none");return}_.type==="drop"&&(_.preventDefault(),le.__latDragState("none"),le.__latTake(_.dataTransfer&&_.dataTransfer.files))}},le.__latPaste=_=>{if($.disabled||$.readOnly||!_.clipboardData)return;const re=[..._.clipboardData.files||[]];re.length&&(_.preventDefault(),le.__latTake(re))},ie.addEventListener("change",le.__latChange),le.addEventListener("click",le.__latClick),le.addEventListener("keydown",le.__latKeydown),le.addEventListener("paste",le.__latPaste),w&&["dragenter","dragover","dragleave","drop"].forEach(_=>le.addEventListener(_,le.__latDrag)),le.__latPaint(),le},read(d){const c=d.__latFile;return c?c.entries.filter(i=>i.status!=="rejected").map(v):[]},write(d,c){const i=d.__latFile;if(!i)return;const r=Array.isArray(c)?c:[],l=i.entries.filter(f=>f.status==="rejected");for(const f of i.entries)l.includes(f)||R(f);i.entries=l;for(const f of r)i.entries.push({id:f&&f.id?String(f.id):j(),file:f&&f.file?f.file:null,name:f&&f.name!=null?String(f.name):"",size:f&&f.size!=null?Number(f.size):0,type:f&&f.type!=null?String(f.type):"",status:f&&f.status?String(f.status):"done",progress:f&&f.progress!=null?Number(f.progress):100,message:f&&f.message?String(f.message):""});d.__latPaint&&d.__latPaint()},state(d,c){const i=d.__latFile;i&&(i.disabled=c.disabled===!0,i.readOnly=c.readOnly===!0,i.disabled?d.setAttribute("aria-disabled","true"):d.removeAttribute("aria-disabled"),i.readOnly?d.setAttribute("aria-readonly","true"):d.removeAttribute("aria-readonly"),d.__latPaint&&d.__latPaint())},validate(d,c,i){const r=d.__latFile;if(!r)return null;const l=r.entries.find(f=>f.status==="rejected");return l&&l.message&&(!Array.isArray(i)||i.length===0)?l.message:r.maxFiles&&Array.isArray(i)&&i.length>r.maxFiles?`Too many files (max ${r.maxFiles})`:null}})}),Ne("packages/dom/src/editors/richtext-icons.js",function(N,Z){"use strict";Object.defineProperty(N,"TOOL_GLYPHS",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"letterGlyph",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"toolGlyph",{enumerable:!0,get:function(){return C}});const e="http://www.w3.org/2000/svg",B=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),S=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 X(z,P){const A=B[P],j=z.createElementNS(e,"svg");j.setAttribute("viewBox","0 0 16 16"),j.setAttribute("width","16"),j.setAttribute("height","16"),j.setAttribute("focusable","false"),j.setAttribute("aria-hidden","true");const k=z.createElementNS(e,"text");return k.setAttribute("x","8"),k.setAttribute("y","12"),k.setAttribute("text-anchor","middle"),k.style.fontSize="12px",k.style.fill="currentColor",k.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',A.weight&&(k.style.fontWeight=A.weight),A.style&&(k.style.fontStyle=A.style),A.decoration&&(k.style.textDecoration=A.decoration),k.textContent=A.char,j.appendChild(k),j}function C(z,P){const A=z.createElementNS(e,"svg");A.setAttribute("viewBox","0 0 16 16"),A.setAttribute("focusable","false"),A.setAttribute("aria-hidden","true"),A.setAttribute("fill","none"),A.setAttribute("stroke","currentColor"),A.setAttribute("stroke-width","1.5"),A.setAttribute("stroke-linecap","round"),A.setAttribute("stroke-linejoin","round");const j=z.createElementNS(e,"path");return j.setAttribute("d",S[P]),A.appendChild(j),A}}),Ne("packages/modules/form/controls/swatches.js",function(N,Z){"use strict";Object.defineProperty(N,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"hslToHex",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"buildSwatchButton",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"buildSwatchGrid",{enumerable:!0,get:function(){return g}});const e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),B=Object.freeze([0,24,48,84,140,168,196,224,268,320]),S=Object.freeze([.82,.66,.5,.36,.22]),X=.62,C=Object.freeze([.92,.76,.56,.36,.18]);function z(n,u,b){let v=b;return v<0&&(v+=1),v>1&&(v-=1),v<1/6?n+(u-n)*6*v:v<1/2?u:v<2/3?n+(u-n)*(2/3-v)*6:n}function P(n,u,b){const v=(n%360+360)%360/360;let t,a,s;if(u===0)t=b,a=b,s=b;else{const y=b<.5?b*(1+u):b+u-b*u,m=2*b-y;t=z(m,y,v+1/3),a=z(m,y,v),s=z(m,y,v-1/3)}const p=y=>Math.round(y*255).toString(16).padStart(2,"0");return`#${p(t)}${p(a)}${p(s)}`}const A=Object.freeze(B.map(n=>Object.freeze(S.map(u=>P(n,X,u))))),j=Object.freeze(C.map(n=>P(0,0,n)));function k(n,u,b={}){const v=n.createElement("button");return v.type="button",v.className="lat-form__swatch",v.style.background=u,v.setAttribute("role","option"),v.setAttribute("data-color",u),v.setAttribute("aria-selected",b.selected?"true":"false"),b.selected&&v.classList.add("is-selected"),v.title=b.title!=null?b.title:u,v.tabIndex=-1,v}function g(n,u,b={}){const v=n.createElement("div");v.className="lat-form__swatch-grid",v.setAttribute("role","listbox");const t=[];for(const a of u){const s=n.createElement("div");s.className=b.rowClass?`lat-form__swatch-row ${b.rowClass}`:"lat-form__swatch-row";const p=[];for(const y of a){const m=k(n,y,{selected:typeof b.isSelected=="function"&&b.isSelected(y),title:typeof b.title=="function"?b.title(y):void 0});s.appendChild(m),p.push(m)}v.appendChild(s),t.push(p)}return typeof b.onPick=="function"&&v.addEventListener("click",a=>{const s=a.target&&a.target.closest?a.target.closest(".lat-form__swatch"):null;s&&v.contains(s)&&b.onPick(s.getAttribute("data-color"),s)}),{el:v,rows:t}}}),Ne("packages/modules/form/controls/richtext.js",function(N,Z){"use strict";Object.defineProperty(N,"sanitize",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"escapeHtml",{enumerable:!0,get:function(){return C}});const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/dom/src/editors/sanitize-richtext.js"),X=S.sanitizeRichText,C=S.escapeHtml,z=Z("packages/dom/src/editors/richtext-icons.js"),P=z.letterGlyph,A=z.toolGlyph,j=z.TOOL_GLYPHS,k=Z("packages/modules/form/controls/swatches.js"),g=k.DEFAULT_COLORS,n=k.buildSwatchGrid,u=X,b=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"]}),v=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 a(h){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"}}[h]||null}const s=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function p(h){return Array.isArray(h)?h.map(R=>String(R)):b[h]||b.basic}function y(h){return new Promise((R,d)=>{const c=new FileReader;c.onload=()=>R(c.result),c.onerror=()=>d(c.error||new Error("read failed")),c.readAsDataURL(h)})}B("richtext",{kind:"field",build(h,R){const d=R.doc,c=h.props||{},i=p(c.toolbar),r=Array.isArray(c.headings)?c.headings:s,l=Array.isArray(c.colors)?c.colors:g,f=c.linkTarget!=null?String(c.linkTarget):"_blank",T=Number(c.minHeight)||160,V=Number(c.maxHeight)||0,D=Number(c.maxImageSize)||0,M=typeof c.onImage=="function"?c.onImage:null,w=c.sanitizePaste!==!1,I=c.allowedTags,W=c.placeholder!=null?String(c.placeholder):R.t("form.richtext.placeholder"),G=d.createElement("div");G.className="lat-form__richtext";const ne={toolbar:i,headings:r,colors:l,linkTarget:f,minHeight:T,maxHeight:V,maxImageSize:D,onImage:M,sanitizePaste:w,allowedTags:I,placeholder:W,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};G.__latRt=ne;const be=u(d,h.value==null?"":String(h.value),I,{});ne.history={stack:[be],index:0},ne.lastValue=be;const Ae=d.createElement("div");Ae.className="lat-form__richtext-toolbar",Ae.setAttribute("role","toolbar"),Ae.setAttribute("aria-label",R.t("form.richtext.formatting")),ne.toolbarEl=Ae;for(const E of i){if(E==="|"){const x=d.createElement("span");x.className="lat-form__richtext-sep",x.setAttribute("role","separator"),Ae.appendChild(x);continue}if(E==="heading"){const x=d.createElement("select");x.className="lat-form__richtext-select",x.title=R.t(t.heading),x.setAttribute("aria-label",R.t(t.heading)),x.setAttribute("data-item","heading");for(const[U,ee]of r){const te=d.createElement("option");te.value=U,te.textContent=String(ee),x.appendChild(te)}ne.buttons.heading=x,Ae.appendChild(x);continue}const H=d.createElement("button");H.type="button",H.className="lat-form__richtext-btn",H.setAttribute("data-item",E),H.title=R.t(t[E]||E),H.setAttribute("aria-label",R.t(t[E]||E)),E==="lowercase"||E==="uppercase"?(H.className+=" lat-form__richtext-btntext",H.textContent=R.t(E==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):v.includes(E)?H.appendChild(P(d,E)):j[E]?H.appendChild(A(d,E)):H.textContent=E,ne.buttons[E]=H,Ae.appendChild(H)}G.appendChild(Ae);const le=d.createElement("div");le.className="lat-form__richtext-popover",le.hidden=!0,G.appendChild(le),ne.popover=le;const $=d.createElement("div");$.className="lat-form__richtext-editor",$.contentEditable=h.readOnly||h.disabled?"false":"true",$.setAttribute("role","textbox"),$.setAttribute("aria-multiline","true"),$.setAttribute("aria-label",h.label!=null?String(h.label):R.t("form.richtext.richText")),$.setAttribute("data-placeholder",W),$.style.minHeight=`${T}px`,V&&($.style.maxHeight=`${V}px`),$.innerHTML=be,G.appendChild($),ne.editor=$;const ie=d.createElement("textarea");ie.className="lat-form__richtext-source",ie.setAttribute("aria-label",R.t("form.richtext.source")),ie.spellcheck=!1,ie.hidden=!0,G.appendChild(ie),ne.source=ie;const q=d.createElement("input");return q.type="file",q.accept="image/*",q.className="lat-form__richtext-file",q.tabIndex=-1,q.setAttribute("aria-hidden","true"),G.appendChild(q),ne.fileInput=q,G.__latSave=()=>{const E=d.defaultView&&d.defaultView.getSelection?d.defaultView.getSelection():null;E&&E.rangeCount&&$.contains(E.anchorNode)&&(ne.range=E.getRangeAt(0).cloneRange())},G.__latRestore=()=>{if(!ne.range)return;const E=d.defaultView&&d.defaultView.getSelection?d.defaultView.getSelection():null;if(E)try{E.removeAllRanges(),E.addRange(ne.range)}catch{}},G.__latRefresh=()=>{Object.entries(ne.buttons).forEach(([E,H])=>{const x=a(E);if(x&&x.state&&H.tagName==="BUTTON"){let U=!1;try{U=d.queryCommandState(x.state)}catch{U=!1}H.setAttribute("aria-pressed",U?"true":"false"),H.classList.toggle("is-active",U)}if(E==="heading"&&H.tagName==="SELECT"){let U="";try{U=String(d.queryCommandValue("formatBlock")||"").toLowerCase()}catch{U=""}const ee=[...H.options].some(te=>te.value===U);H.value=ee?U:"p"}})},G.__latExec=(E,H)=>{$.focus(),G.__latRestore();try{d.execCommand("styleWithCSS",!1,E==="foreColor")}catch{}try{d.execCommand(E,!1,H===void 0?null:H)}catch{}G.__latAfterEdit()},G.__latAfterEdit=()=>{const E=$.innerHTML,H=ne.history;H.stack[H.index]!==E&&(H.stack=H.stack.slice(0,H.index+1),H.stack.push(E),H.stack.length>200&&H.stack.shift(),H.index=H.stack.length-1),G.__latRefresh();const x=u(d,E,I,{}),U=ne.lastValue==null?u(d,H.stack[0]||"",I,{}):ne.lastValue;ne.lastValue=x,m(G,d,U,x)},G.__latCaretEnd=()=>{const E=d.createRange();E.selectNodeContents($),E.collapse(!1);const H=d.defaultView&&d.defaultView.getSelection?d.defaultView.getSelection():null;H&&(H.removeAllRanges(),H.addRange(E)),ne.range=E.cloneRange()},G.__latUndo=()=>{const E=ne.history;if(E.index<=0)return;E.index-=1,$.innerHTML=E.stack[E.index],G.__latCaretEnd(),G.__latRefresh();const H=u(d,$.innerHTML,I,{});ne.lastValue=H,m(G,d,ne.lastValue,H)},G.__latRedo=()=>{const E=ne.history;if(E.index>=E.stack.length-1)return;E.index+=1,$.innerHTML=E.stack[E.index],G.__latCaretEnd(),G.__latRefresh();const H=u(d,$.innerHTML,I,{});ne.lastValue=H,m(G,d,ne.lastValue,H)},G.__latClosePopover=()=>{le.hidden=!0,le.textContent=""},G.__latOpenPopover=(E,H)=>{if(le.textContent="",le.hidden=!1,le.style.left=`${Math.max(0,H.offsetLeft)}px`,E==="color"){const{el:x}=n(d,[l],{onPick:ue=>{G.__latRestore(),G.__latExec("foreColor",ue),G.__latClosePopover()}});le.appendChild(x);const U=d.createElement("div");U.className="lat-form__richtext-poprow";const ee=d.createElement("input");ee.type="color",ee.className="lat-form__richtext-colorinput",ee.setAttribute("aria-label",R.t("form.richtext.colorCustom")),ee.addEventListener("input",()=>{G.__latRestore(),G.__latExec("foreColor",ee.value)});const te=d.createElement("button");te.type="button",te.className="lat-form__richtext-popbtn",te.textContent=R.t("form.richtext.colorRemove"),te.addEventListener("click",()=>{G.__latRestore(),G.__latExec("foreColor","inherit"),G.__latClosePopover()}),U.appendChild(ee),U.appendChild(te),le.appendChild(U)}else{const x=G.__latClosestLink(),U=d.createElement("input");U.type="url",U.className="lat-form__richtext-linkinput",U.placeholder=R.t("form.richtext.linkPlaceholder"),U.value=x&&x.getAttribute("href")||"",U.setAttribute("aria-label",R.t("form.richtext.linkLabel"));const ee=()=>{const ae=U.value.trim();if(G.__latRestore(),!ae){G.__latExec("unlink"),G.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(ae)){U.classList.add("is-invalid");return}if(x)x.setAttribute("href",ae),G.__latAfterEdit();else{const de=d.defaultView&&d.defaultView.getSelection?d.defaultView.getSelection():null;if(de&&de.isCollapsed){const _=f?` target="${C(f)}" rel="noopener noreferrer"`:"";G.__latExec("insertHTML",u(d,`<a href="${C(ae)}"${_}>${C(ae)}</a>`,I,{}))}else{G.__latExec("createLink",ae);const _=G.__latClosestLink();_&&f&&(_.setAttribute("target",f),_.setAttribute("rel","noopener noreferrer"))}}G.__latClosePopover()};U.addEventListener("keydown",ae=>{ae.key==="Enter"&&(ae.preventDefault(),ee()),ae.key==="Escape"&&G.__latClosePopover()});const te=d.createElement("div");te.className="lat-form__richtext-poprow",te.appendChild(U);const ue=d.createElement("button");if(ue.type="button",ue.className="lat-form__richtext-popbtn",ue.textContent=x?R.t("form.richtext.linkUpdate"):R.t("form.richtext.linkAdd"),ue.addEventListener("click",ee),te.appendChild(ue),x){const ae=d.createElement("button");ae.type="button",ae.className="lat-form__richtext-popbtn",ae.textContent=R.t("form.richtext.linkRemove"),ae.addEventListener("click",()=>{G.__latRestore(),G.__latExec("unlink"),G.__latClosePopover()}),te.appendChild(ae)}le.appendChild(te),setTimeout(()=>U.focus(),0)}},G.__latClosestLink=()=>{const E=d.defaultView&&d.defaultView.getSelection?d.defaultView.getSelection():null;if(!E||E.rangeCount===0)return null;let H=E.getRangeAt(0).commonAncestorContainer;H.nodeType===3&&(H=H.parentNode);const x=H.closest?H.closest("a"):null;return x&&$.contains(x)?x:null},G.__latRun=E=>{if(ne.disabled||ne.readOnly)return;E!=="source"&&ne.sourceMode&&G.__latToggleSource(!1),G.__latRestore();const H=a(E);if(E==="color"||E==="link"){G.__latOpenPopover(E,ne.buttons[E]);return}if(E==="undo"){G.__latUndo();return}if(E==="redo"){G.__latRedo();return}if(E==="source"){G.__latToggleSource();return}if(E==="image"){ne.fileInput.click();return}if(E==="lowercase"||E==="uppercase"){G.__latCase(E==="uppercase");return}if(H){G.__latExec(H.cmd);return}},G.__latCase=E=>{const H=d.defaultView&&d.defaultView.getSelection?d.defaultView.getSelection():null;if(!H||H.rangeCount===0||H.isCollapsed)return;const x=H.toString();G.__latExec("insertText",E?x.toUpperCase():x.toLowerCase())},G.__latToggleSource=E=>{const H=E===void 0?!ne.sourceMode:!!E;if(H===ne.sourceMode)return;H?(ne.source.value=u(d,$.innerHTML,I,{}).replace(/></g,`>
2000
+ <`),$.hidden=!0,ie.hidden=!1,ie.focus()):(ne.sourceDirty&&($.innerHTML=u(d,ie.value,I,{}),ne.sourceDirty=!1),ie.hidden=!0,$.hidden=!1,$.focus()),ne.sourceMode=H;const x=ne.buttons.source;x&&(x.classList.toggle("is-active",H),x.setAttribute("aria-pressed",H?"true":"false")),Object.entries(ne.buttons).forEach(([U,ee])=>{U!=="source"&&(ee.disabled=H)}),H||G.__latAfterEdit()},G.__latInsertImage=async E=>{if(!/^image\//.test(E.type)||D&&E.size>D)return;let H;try{H=M?await M(E):await y(E)}catch{return}H&&G.__latExec("insertHTML",u(d,`<img src="${C(H)}" alt="${C(E.name)}" style="max-width:100%">`,I,{}))},G.__latToolbarClick=E=>{const H=E.target&&E.target.closest?E.target.closest("[data-item]"):null;!H||!Ae.contains(H)||H.tagName==="SELECT"||(E.preventDefault(),G.__latRun(H.getAttribute("data-item")))},G.__latToolbarDown=E=>{E.target&&E.target.closest&&E.target.closest(".lat-form__richtext-btn")&&E.preventDefault()},G.__latSelect=E=>{E.target&&E.target.getAttribute&&E.target.getAttribute("data-item")==="heading"&&(G.__latRestore(),G.__latExec("formatBlock",E.target.value))},G.__latInput=()=>{G.__latAfterEdit()},G.__latKey=E=>{if(!(E.ctrlKey||E.metaKey))return;const H=E.key.toLowerCase();H==="z"&&!E.shiftKey?(E.preventDefault(),G.__latUndo()):H==="y"||H==="z"&&E.shiftKey?(E.preventDefault(),G.__latRedo()):H==="k"&&ne.buttons.link&&(E.preventDefault(),G.__latRun("link"))},G.__latPaste=E=>{if(!w||!E.clipboardData)return;const H=E.clipboardData.getData("text/html"),x=E.clipboardData.getData("text/plain");if(!H&&!x)return;E.preventDefault();const U=H?u(d,H,I,{stripStyles:!0}):C(x).replace(/\r?\n/g,"<br>");G.__latExec("insertHTML",U)},G.__latDrop=E=>{if(!w||!E.dataTransfer)return;const H=E.dataTransfer.files;if(H&&H.length){E.preventDefault();const te=H[0];te&&G.__latInsertImage(te);return}const x=E.dataTransfer.getData("text/html"),U=E.dataTransfer.getData("text/plain");if(!x&&!U)return;E.preventDefault();const ee=x?u(d,x,I,{stripStyles:!0}):C(U).replace(/\r?\n/g,"<br>");G.__latExec("insertHTML",ee)},G.__latBeforeInput=E=>{w&&(E.inputType==="insertFromDrop"||E.inputType==="insertFromPaste")&&E.preventDefault()},G.__latSelChange=()=>{d.activeElement===$&&(G.__latSave(),G.__latRefresh())},G.__latFile=()=>{const E=q.files&&q.files[0];q.value="",E&&G.__latInsertImage(E)},G.__latSourceInput=()=>{ne.sourceDirty=!0},G.__latDocClick=E=>{le&&!le.hidden&&!le.contains(E.target)&&!Ae.contains(E.target)&&G.__latClosePopover()},Ae.addEventListener("click",G.__latToolbarClick),Ae.addEventListener("mousedown",G.__latToolbarDown),Ae.addEventListener("change",G.__latSelect),$.addEventListener("input",G.__latInput),$.addEventListener("keydown",G.__latKey),$.addEventListener("paste",G.__latPaste),$.addEventListener("drop",G.__latDrop),$.addEventListener("beforeinput",G.__latBeforeInput),q.addEventListener("change",G.__latFile),ie.addEventListener("input",G.__latSourceInput),d.addEventListener&&(d.addEventListener("selectionchange",G.__latSelChange),d.addEventListener("mousedown",G.__latDocClick,!0)),G},read(h){const R=h.__latRt;return R?R.sourceMode?u(h.ownerDocument,R.source.value,R.allowedTags,{}):u(h.ownerDocument,R.editor.innerHTML,R.allowedTags,{}):""},write(h,R){const d=h.__latRt;if(!d)return;const c=h.ownerDocument,i=u(c,R==null?"":String(R),d.allowedTags,{});d.sourceMode&&(d.source.value=i),d.editor.innerHTML=i,d.history={stack:[i],index:0},d.lastValue=i},state(h,R){const d=h.__latRt;d&&(d.disabled=R.disabled===!0,d.readOnly=R.readOnly===!0,d.editor.contentEditable=d.disabled||d.readOnly?"false":"true",d.editor.tabIndex=d.readOnly?0:-1,d.readOnly?d.editor.setAttribute("aria-readonly","true"):d.editor.removeAttribute("aria-readonly"),d.disabled?h.setAttribute("aria-disabled","true"):h.removeAttribute("aria-disabled"),d.readOnly?h.setAttribute("aria-readonly","true"):h.removeAttribute("aria-readonly"),Object.values(d.buttons).forEach(c=>{c.disabled=d.disabled||d.readOnly}))}});function m(h,R,d,c){const i=R&&R.defaultView,r=i&&i.Event,l=r?new r("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};h.dispatchEvent(l)}}),Ne("packages/modules/form/controls/rating.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=5,X=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 C(u){const b=String(u??"");return Object.hasOwn(X,b)?b:"star"}function z(u,b,v){return Math.min(Math.max(u,b),v)}function P(u,b){const v=b&&b.defaultView,t=v&&v.Event,a=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}};u.dispatchEvent(a)}function A(u,b,v){const t=u.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("focusable","false"),t.setAttribute("aria-hidden","true"),v?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const a=u.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d",X[b]),t.appendChild(a),t}function j(u,b,v){const t=Number(u),a=Number.isFinite(t)?t:0,s=v?Math.round(a*2)/2:Math.round(a);return z(s,0,b)}function k(u,b){return Math.min(1,Math.max(0,u-(b-1)))}B("rating",{kind:"field",build(u,b){const v=b.doc,t=u.props||{},a=Math.max(1,Math.floor(Number(u.max!=null?u.max:t.max)||S)),s=t.allowHalf===!0,p=t.allowClear!==!1,y=t.showValue===!0,m=Array.isArray(t.labels)?t.labels:null,h=C(t.icons&&t.icons.filled?t.icons.filled:t.icon),R=C(t.icons&&t.icons.empty?t.icons.empty:`${h}-outline`),d=t.size==="lg"||t.size==="sm"?t.size:"md",c=v.createElement("div");c.className=`lat-form__rating lat-form__rating--${d}`,c.setAttribute("role","slider"),c.setAttribute("aria-valuemin","0"),c.setAttribute("aria-valuemax",String(a)),c.setAttribute("aria-label",u.label!=null?String(u.label):b.t("form.rating"));const i={value:j(u.value,a,s),max:a,allowHalf:s,allowClear:p,labels:m,showValue:y,filledName:h,emptyName:R,items:[],fills:[],valueEl:null};c.__latRating=i;const r=v.createElement("span");r.className="lat-form__rating-track",r.setAttribute("aria-hidden","true");for(let l=0;l<a;l++){const f=v.createElement("span");f.className="lat-form__rating-item",f.setAttribute("data-index",String(l)),m&&m[l]!=null&&m[l]!==""&&(f.title=String(m[l])),f.appendChild(A(v,R,!1));const T=v.createElement("span");T.className="lat-form__rating-fill",T.setAttribute("aria-hidden","true"),T.appendChild(A(v,h,!0)),f.appendChild(T),r.appendChild(f),i.items.push(f),i.fills.push(T)}if(c.appendChild(r),y){const l=v.createElement("span");l.className="lat-form__rating-value",l.setAttribute("aria-hidden","true"),c.appendChild(l),i.valueEl=l}return c.__latPaint=()=>{for(let l=0;l<i.items.length;l++){const f=k(i.value,l+1);i.items[l].setAttribute("data-fill",f>=1?"full":f>0?"half":"empty"),i.fills[l].style.width=`${(f*100).toFixed(2)}%`}c.setAttribute("aria-valuenow",String(i.value)),c.setAttribute("aria-valuetext",g(i)),i.valueEl&&(i.valueEl.textContent=n(i))},c.__latSet=l=>{i.value=j(l,a,s),c.__latPaint()},c.__latClear=()=>{i.value=0,c.__latPaint()},c.__latPick=(l,f)=>{let T=l+1;if(s&&f&&Number.isFinite(f.clientX)){const V=i.items[l].getBoundingClientRect();V&&V.width>0&&(T=f.clientX-V.left<V.width/2?l+.5:l+1)}p&&T===i.value&&(T=0),c.__latSet(T),P(c,b.doc)},c.addEventListener("click",l=>{if(i.disabled||i.readOnly)return;const f=l.target&&l.target.closest?l.target.closest(".lat-form__rating-item"):null;!f||!c.contains(f)||c.__latPick(Number(f.getAttribute("data-index")),l)}),c.__latKey=l=>{if(i.disabled||i.readOnly)return;const f=s?.5:1;let T=i.value;if(l.key==="ArrowRight"||l.key==="ArrowUp")T+=f;else if(l.key==="ArrowLeft"||l.key==="ArrowDown")T-=f;else if(l.key==="Home")T=0;else if(l.key==="End")T=a;else if(l.key==="Backspace"||l.key==="Delete")T=0;else return;l.preventDefault(),c.__latSet(T),P(c,b.doc)},c.addEventListener("keydown",c.__latKey),c.__latPaint(),c},read(u){return u.__latRating?u.__latRating.value:0},write(u,b){u.__latRating&&(u.__latRating.value=j(b,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,b){const v=u.__latRating;v&&(v.disabled=b.disabled===!0,v.readOnly=b.readOnly===!0,u.tabIndex=v.disabled?-1:0,v.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),v.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function g(u){const b=Math.round(u.value);return u.labels&&u.labels[b-1]&&u.value===b?u.labels[b-1]:`${u.value} of ${u.max}`}function n(u){return String(u.value)}}),Ne("packages/modules/form/controls/stage.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl;function S(z,P){const A=P&&P.defaultView,j=A&&A.Event,k=j?new j("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};z.dispatchEvent(k)}function X(z,P){return typeof P=="number"&&Number.isFinite(P)?Math.min(Math.max(Math.round(P),0),z.length-1):typeof P=="string"?z.indexOf(P):-1}function C(z,P,A){return`${z}, ${P+1} of ${A}`}B("stage",{kind:"field",build(z,P){const A=P.doc,j=z.props||{},k=Array.isArray(j.stages)?j.stages.map(s=>String(s)):[],g=j.clickable!==!1,n=j.showIcons!==!1,u=X(k,z.value!=null?z.value:j.current),b=X(k,j.completed),v=A.createElement("div");v.className="lat-form__stage",v.setAttribute("role","radiogroup"),v.setAttribute("aria-label",z.label!=null?String(z.label):P.t("form.stage"));const t=[],a={stages:k,value:u>=0?k[u]:null,index:u,completed:b,clickable:g,showIcons:n,disabled:!1,readOnly:!1,focus:u>=0?u:0};v.__latStage=a;for(let s=0;s<k.length;s++){const p=A.createElement(g?"button":"span");if(p.type=g?"button":void 0,p.className="lat-form__stage-step",p.setAttribute("data-index",String(s)),g&&(p.setAttribute("role","radio"),p.setAttribute("aria-label",C(k[s],s,k.length))),n){const m=A.createElementNS("http://www.w3.org/2000/svg","svg");m.setAttribute("viewBox","0 0 16 16"),m.setAttribute("aria-hidden","true"),m.setAttribute("class","lat-form__stage-check");const h=A.createElementNS("http://www.w3.org/2000/svg","path");h.setAttribute("d","M3 8.5l3 3 7-7"),h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","2"),h.setAttribute("stroke-linecap","round"),h.setAttribute("stroke-linejoin","round"),m.appendChild(h),p.appendChild(m)}const y=A.createElement("span");y.className="lat-form__stage-label",y.textContent=k[s],p.appendChild(y),v.appendChild(p),t.push(p)}return v.__latPaint=()=>{for(let s=0;s<t.length;s++){const p=s===a.index,y=!p&&a.completed>=0&&s<=a.completed;t[s].setAttribute("data-state",p?"current":y?"done":"todo"),a.clickable&&(t[s].setAttribute("aria-checked",p?"true":"false"),t[s].tabIndex=a.disabled?-1:s===a.focus?0:-1)}},v.__latSelect=s=>{const p=s>=0&&s<k.length?k[s]:null;p!==a.value&&(a.index=s>=0&&s<k.length?s:-1,a.value=p,a.focus=a.index>=0?a.index:0,v.__latPaint(),S(v,P.doc))},v.__latKey=s=>{if(a.disabled||a.readOnly||!a.clickable||!k.length)return;let p=a.focus;if(s.key==="ArrowRight"||s.key==="ArrowDown")p+=1;else if(s.key==="ArrowLeft"||s.key==="ArrowUp")p-=1;else if(s.key==="Home")p=0;else if(s.key==="End")p=k.length-1;else return;s.preventDefault();const y=Math.min(Math.max(p,0),k.length-1);a.focus=y,t[y].focus(),v.__latSelect(y)},g&&(v.addEventListener("click",s=>{if(a.disabled||a.readOnly)return;const p=s.target&&s.target.closest?s.target.closest(".lat-form__stage-step"):null;if(!p||!v.contains(p))return;const y=Number(p.getAttribute("data-index"));a.focus=y,v.__latSelect(y)}),v.addEventListener("keydown",v.__latKey)),v.__latPaint(),v},read(z){return z.__latStage?z.__latStage.value:null},write(z,P){const A=z.__latStage;if(!A)return;const j=P==null?-1:X(A.stages,P);A.index=j,A.value=j>=0?A.stages[j]:null,A.focus=j>=0?j:0,z.__latPaint()},state(z,P){const A=z.__latStage;A&&(A.disabled=P.disabled===!0,A.readOnly=P.readOnly===!0,A.readOnly?z.setAttribute("aria-readonly","true"):z.removeAttribute("aria-readonly"),A.disabled?z.setAttribute("aria-disabled","true"):z.removeAttribute("aria-disabled"),z.__latPaint())}})}),Ne("packages/modules/form/controls/chips.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S="M3 8.5l3 3 7-7";function X(P,A){const j=A&&A.defaultView,k=j&&j.Event,g=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}};P.dispatchEvent(g)}function C(P){if(typeof P=="string")return{value:P,label:P,icon:null,disabled:!1};if(P!==null&&typeof P=="object"){const A=P.value===void 0?String(P.label):P.value;return{value:A,label:P.label==null?String(A):String(P.label),icon:typeof P.icon=="string"&&P.icon!==""?P.icon:null,disabled:P.disabled===!0}}return{value:P,label:String(P),icon:null,disabled:!1}}function z(P,A,j){const k=P.createElementNS("http://www.w3.org/2000/svg","svg");k.setAttribute("viewBox","0 0 16 16"),k.setAttribute("focusable","false"),k.setAttribute("aria-hidden","true");const g=P.createElementNS("http://www.w3.org/2000/svg","path");return g.setAttribute("d",A),j?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")),k.appendChild(g),k}B("chips",{kind:"field",build(P,A){const j=A.doc,k=P.props||{},g=(Array.isArray(P.options)?P.options:[]).map(C),n=k.multiple===!0,u=k.allowEmpty===!0,b=k.wrap!==!1,v=P.max!=null&&Number.isFinite(Number(P.max))?Number(P.max):null,t=j.createElement("div");t.className=`lat-form__chips${b?"":" lat-form__chips--scroll"}`,t.setAttribute("role",n?"group":"radiogroup"),t.setAttribute("aria-label",P.label!=null?String(P.label):A.t("form.chips"));const a=[],s=new Set,p={options:g,multiple:n,allowEmpty:u,wrap:b,max:v,selected:s,disabled:!1,readOnly:!1,t:A.t};t.__latChips=p;for(let m=0;m<g.length;m++){const h=g[m],R=j.createElement("button");if(R.type="button",R.className="lat-form__chip",R.setAttribute("data-index",String(m)),R.disabled=h.disabled,n||R.setAttribute("role","radio"),h.icon){const c=z(j,h.icon,!0);c.setAttribute("class","lat-form__chip-icon"),R.appendChild(c)}const d=j.createElement("span");if(d.className="lat-form__chip-label",d.textContent=h.label,R.appendChild(d),n){const c=z(j,S,!1);c.setAttribute("class","lat-form__chip-check"),R.appendChild(c)}t.appendChild(R),a.push(R)}p.buttons=a,t.__latPaint=()=>{for(let m=0;m<a.length;m++){const h=g[m],R=s.has(h.value),d=a[m];d.disabled=h.disabled||p.disabled,n?(d.setAttribute("aria-pressed",R?"true":"false"),d.tabIndex=p.disabled?-1:0):(d.setAttribute("aria-checked",R?"true":"false"),d.tabIndex=p.disabled?-1:R?0:-1)}},t.__latValue=()=>{if(n)return g.filter(m=>s.has(m.value)).map(m=>m.value);for(const m of g)if(s.has(m.value))return m.value;return null},t.__latToggle=m=>{const h=g[m];if(!(!h||h.disabled||p.disabled||p.readOnly)){if(n)if(s.has(h.value))s.delete(h.value);else{if(v!=null&&s.size>=v)return;s.add(h.value)}else if(s.has(h.value))if(p.allowEmpty)s.clear();else return;else s.clear(),s.add(h.value);t.__latPaint(),X(t,A.doc)}},t.addEventListener("click",m=>{const h=m.target&&m.target.closest?m.target.closest(".lat-form__chip"):null;!h||!t.contains(h)||t.__latToggle(Number(h.getAttribute("data-index")))}),t.__latKey=m=>{if(p.multiple||p.disabled||p.readOnly||!a.length)return;let h=-1;for(let i=0;i<a.length;i++)if(s.has(g[i].value)){h=i;break}let R=h;if(m.key==="ArrowRight"||m.key==="ArrowDown")R=h+1;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")R=h-1;else if(m.key==="Home")R=0;else if(m.key==="End")R=g.length-1;else return;m.preventDefault();const d=m.key==="ArrowLeft"||m.key==="ArrowUp"?-1:1;let c=R;for(;c>=0&&c<g.length&&g[c].disabled;)c+=d;c<0||c>=g.length||(s.clear(),s.add(g[c].value),t.__latPaint(),a[c].focus(),X(t,A.doc))},t.addEventListener("keydown",t.__latKey);const y=P.value;if(n){const m=Array.isArray(y)?y:[];for(const h of m)g.some(R=>R.value===h)&&s.add(h)}else if(y!=null&&g.some(m=>m.value===y))s.add(y);else if(!u){const m=g.find(h=>!h.disabled)||g[0];m&&s.add(m.value)}return t.__latPaint(),t},read(P){return P.__latChips?P.__latValue():null},write(P,A){const j=P.__latChips;if(j){if(j.selected.clear(),j.multiple){const k=Array.isArray(A)?A:[];for(const g of k)j.options.some(n=>n.value===g)&&j.selected.add(g)}else if(A!=null&&j.options.some(k=>k.value===A))j.selected.add(A);else if(!j.allowEmpty){const k=j.options.find(g=>!g.disabled)||j.options[0];k&&j.selected.add(k.value)}P.__latPaint()}},validate(P,A,j){const k=P.__latChips;if(!k||!k.multiple)return null;const g=Array.isArray(j)?j.length:0,n=A.min!=null&&Number.isFinite(Number(A.min))?Number(A.min):null,u=A.max!=null&&Number.isFinite(Number(A.max))?Number(A.max):null;return n!=null&&g<n?{code:"min",message:k.t("form.chips.min",{min:String(n)})}:u!=null&&g>u?{code:"max",message:k.t("form.chips.max",{max:String(u)})}:null},state(P,A){const j=P.__latChips;j&&(j.disabled=A.disabled===!0,j.readOnly=A.readOnly===!0,j.readOnly?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly"),j.disabled?P.setAttribute("aria-disabled","true"):P.removeAttribute("aria-disabled"),P.__latPaint())}})}),Ne("packages/modules/form/controls/otp.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=6;function X(u){const b=Math.floor(Number(u));return Number.isFinite(b)&&b>=1?b:S}function C(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function z(u,b){return b==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function P(u,b){for(let v=u.length-1;v>=0;v-=1)if(z(u[v],b))return u[v];return""}function A(u,b,v){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(a=>z(a,b)).slice(0,v)}function j(u,b,v){const t=b&&b.defaultView,a=t&&t.Event,s=a?new a(v,{bubbles:!0}):{type:v,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(s)}function k(u,b){const v=A(b,u.mode,u.length);for(let t=0;t<u.length;t+=1)u.boxes[t].value=v[t]||""}function g(u){u.complete=u.boxes.every(b=>b.value!=="")}function n(u){return u.boxes.map(b=>b.value).join("")}B("otp",{kind:"field",domEvents:["complete"],build(u,b){const v=b.doc,t=u.props||{},a=X(t.length),s=C(u.mode!=null?u.mode:t.mode),p=t.mask===!0,y=v.createElement("div");y.className="lat-form__otp",y.setAttribute("role","group"),y.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):b.t("form.otp.label"));const m=[],h={length:a,mode:s,mask:p,boxes:m,complete:!1,disabled:!1,readOnly:!1};y.__latOtp=h;for(let d=0;d<a;d+=1){const c=v.createElement("input");c.type="text",c.className=`lat-form__otp-input${p?" lat-form__otp-input--masked":""}`,c.setAttribute("inputmode",s==="numeric"?"numeric":"text"),c.setAttribute("pattern",s==="numeric"?"[0-9]":"[A-Za-z0-9]"),c.setAttribute("maxlength","1"),c.setAttribute("aria-label",b.t("form.otp.digit",{n:d+1,total:a})),c.autocomplete=d===0?"one-time-code":"off",m.push(c),y.appendChild(c)}const R=()=>{if(y.__latPublishing)return;y.__latPublishing=!0;try{j(y,v,"input"),j(y,v,"change")}finally{y.__latPublishing=!1}const d=m.every(c=>c.value!=="");d&&!h.complete?(h.complete=!0,j(y,v,"complete")):!d&&h.complete&&(h.complete=!1)};return y.addEventListener("input",d=>{if(y.__latPublishing)return;d.stopImmediatePropagation();const c=d.target;if(!m.includes(c))return;c.value=P(c.value,s);const i=m.indexOf(c);c.value!==""&&i<a-1&&m[i+1].focus(),R()}),y.addEventListener("change",d=>{y.__latPublishing||d.stopImmediatePropagation()}),y.addEventListener("keydown",d=>{if(h.disabled||h.readOnly)return;const c=d.target;if(!m.includes(c))return;const i=m.indexOf(c);d.key==="Backspace"?(d.preventDefault(),c.value!==""?c.value="":i>0&&(m[i-1].value="",m[i-1].focus()),R()):d.key==="ArrowLeft"&&i>0?(d.preventDefault(),m[i-1].focus()):d.key==="ArrowRight"&&i<a-1?(d.preventDefault(),m[i+1].focus()):d.key.length===1&&!z(d.key,s)&&!d.ctrlKey&&!d.metaKey&&!d.altKey&&d.preventDefault()}),y.addEventListener("paste",d=>{if(h.disabled||h.readOnly)return;d.preventDefault();const c=d.clipboardData&&typeof d.clipboardData.getData=="function"?d.clipboardData.getData("text"):"";k(h,c),(m.find(r=>r.value==="")||m[a-1]).focus(),R()}),y.focus=()=>{const d=m.find(c=>!c.disabled&&!c.readOnly&&c.value==="")||m[0];d&&d.focus()},y.blur=()=>{for(const d of m)d.blur()},k(h,u.value),g(h),y},read(u){return u.__latOtp?n(u.__latOtp):""},write(u,b){u.__latOtp&&(k(u.__latOtp,b),g(u.__latOtp))},state(u,b){const v=u.__latOtp;if(v){v.disabled=b.disabled===!0,v.readOnly=b.readOnly===!0;for(const t of v.boxes)t.disabled=v.disabled,t.readOnly=v.readOnly;v.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),v.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),Ne("packages/modules/form/controls/color.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/field-icon.js"),X=S.makeFieldIcon,C=S.injectFieldIconStyles,z=Z("packages/modules/form/controls/swatches.js"),P=z.DEFAULT_PALETTE,A=z.DEFAULT_GRAY_SHADES,j=z.buildSwatchGrid,k=z.hslToHex,g=10,n=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,u=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function b($){return $}const v=new Set;function t($,ie){v.has($)||(v.add($),console.warn("[lattice]",ie))}function a($){if(typeof $!="string")return null;const ie=$.trim();if(!n.test(ie))return null;const q=ie.replace(/^#/,"").toLowerCase();return`#${q.length===3?q.split("").map(H=>H+H).join(""):q}`}function s($){if(typeof $!="string")return null;const ie=a($);if(ie)return ie;const q=u.exec($.trim());if(!q)return null;const E=x=>Math.max(0,Math.min(255,Number(x))),H=x=>E(x).toString(16).padStart(2,"0");return`#${H(q[1])}${H(q[2])}${H(q[3])}`}function p($){const ie=a($);return ie?{r:parseInt(ie.slice(1,3),16),g:parseInt(ie.slice(3,5),16),b:parseInt(ie.slice(5,7),16)}:null}function y($,ie,q){const E=H=>Math.max(0,Math.min(255,Math.round(H))).toString(16).padStart(2,"0");return`#${E($)}${E(ie)}${E(q)}`}function m($,ie,q){const E=$/255,H=ie/255,x=q/255,U=Math.max(E,H,x),ee=Math.min(E,H,x),te=(U+ee)/2,ue=U-ee;if(ue===0)return{h:0,s:0,l:te};const ae=te>.5?ue/(2-U-ee):ue/(U+ee);let de;return U===E?de=(H-x)/ue%6:U===H?de=(x-E)/ue+2:de=(E-H)/ue+4,de*=60,de<0&&(de+=360),{h:de,s:ae,l:te}}function h($){return k($.h,$.s,$.l)}function R($,ie,q){const E=$.ownerDocument,H=E&&E.defaultView,x=H&&typeof H.CustomEvent=="function"?H.CustomEvent:null,U=x?new x(ie,{bubbles:!0,detail:q}):{type:ie,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:q,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};$.dispatchEvent(U)}function d($){const ie=$.props&&$.props.palette;return Array.isArray(ie)&&ie.length?ie:P}function c($){return!($.props&&$.props.editable===!1)}function i($){return!!($.props&&$.props.clearable===!0)}function r($){return!!($.props&&$.props.pickerOnly===!0)}function l($){return!($.props&&$.props.grayShades===!1)}function f($){const ie=$.props&&$.props.icon;return typeof ie=="string"&&ie!==""?ie:null}function T($){const ie=$.props&&$.props.customColors;return Array.isArray(ie)?[...new Set(ie.map(s).filter(Boolean))].slice(0,g):[]}function V($){const ie=a($.__input.value);$.__swatchBtn.style.background=ie||"transparent",$.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!ie),$.__clearBtn&&($.__clearBtn.hidden=$.__input.value.trim()==="")}function D($,ie){$.__value=ie||null,$.__input.value=ie||"",$.__lastCommittedText=ie||"",V($)}function M($){if(c($.__item)===!1)return;const ie=$.__input.value.trim();if(ie===$.__lastCommittedText)return;const q=a(ie);(q||ie==="")&&($.__value=q,$.__lastCommittedText=ie),R($,"change")}function w($,ie){D($,ie),R($,"change")}function I($,ie){const q=$.__customColors,E=q.filter(x=>x!==ie),H=[ie,...E].slice(0,g);H.length===q.length&&H.every((x,U)=>x===q[U])||($.__customColors=H,R($,"customColorsChange",{colors:H}))}function W($){const ie=$.__popover,q=$.ownerDocument,E=q&&q.defaultView,H=$.__field.getBoundingClientRect(),x=E?E.innerHeight:0,U=ie.offsetHeight||0;x-H.bottom<U+4&&H.top>U+4?ie.classList.add("lat-form__color-popover--above"):ie.classList.remove("lat-form__color-popover--above")}function G($,ie,q,E){let H=Math.max(0,Math.min($.length-1,ie.row+q)),x=ie.col+E;if(E!==0){const U=$[H].length;x=Math.max(0,Math.min(U-1,x))}else x=Math.max(0,Math.min($[H].length-1,x));return{row:H,col:x}}function ne($){const ie=$.__item,q=$.ownerDocument,E=$.__popover;for(;E.firstChild;)E.removeChild(E.firstChild);const H=[...d(ie)];l(ie)&&H.push([...A]),$.__customColors.length&&H.push([...$.__customColors]);const x=$.__value,{el:U,rows:ee}=j(q,H,{isSelected:ue=>ue===x,onPick:ue=>{w($,ue),le($,{restoreFocus:!0})}});U.classList.add("lat-form__color-grid"),E.appendChild(U);for(const ue of ee)for(const ae of ue){if(ae.getAttribute("aria-selected")!=="true")continue;const de=q.createElementNS("http://www.w3.org/2000/svg","svg");de.setAttribute("viewBox","0 0 16 16"),de.setAttribute("class","lat-form__color-check"),de.setAttribute("aria-hidden","true");const _=q.createElementNS("http://www.w3.org/2000/svg","path");_.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),_.setAttribute("fill","none"),_.setAttribute("stroke","#fff"),_.setAttribute("stroke-width","2.6"),_.setAttribute("stroke-linecap","round"),_.setAttribute("stroke-linejoin","round"),_.setAttribute("paint-order","stroke"),de.appendChild(_);const re=q.createElementNS("http://www.w3.org/2000/svg","path");re.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),re.setAttribute("fill","none"),re.setAttribute("stroke","#000"),re.setAttribute("stroke-width","4.2"),re.setAttribute("stroke-linecap","round"),re.setAttribute("stroke-linejoin","round"),re.setAttribute("opacity","0.35"),de.insertBefore(re,_),ae.appendChild(de)}let te={row:0,col:0};e:for(let ue=0;ue<ee.length;ue++)for(let ae=0;ae<ee[ue].length;ae++)if(ee[ue][ae].getAttribute("aria-selected")==="true"){te={row:ue,col:ae};break e}for(const ue of ee)for(const ae of ue)ae.tabIndex=-1;if(ee[te.row]&&ee[te.row][te.col]&&(ee[te.row][te.col].tabIndex=0),U.addEventListener("keydown",ue=>{if(ue.key==="Enter"||ue.key===" "){ue.preventDefault(),ue.stopPropagation(),ee[te.row][te.col].click();return}const de={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[ue.key];if(!de)return;ue.preventDefault();for(const re of ee)for(const F of re)F.tabIndex=-1;te=G(ee,te,de[0],de[1]);const _=ee[te.row][te.col];_.tabIndex=0,_.focus()}),!r(ie)){const ue=q.createElement("button");ue.type="button",ue.className="lat-form__color-custombtn",ue.textContent=$.__t("form.color.customColor"),ue.addEventListener("click",()=>{be($,x)}),E.appendChild(ue)}W($)}function be($,ie){const q=$.__item,E=$.ownerDocument,H=$.__popover;for(;H.firstChild;)H.removeChild(H.firstChild);const x=p(ie)||{r:0,g:0,b:0},U=m(x.r,x.g,x.b),ee=E.createElement("div");ee.className="lat-form__color-picker",H.appendChild(ee);const te=E.createElement("div");te.className="lat-form__color-plane",te.setAttribute("role","slider"),te.setAttribute("aria-label",$.__t("form.color.saturationLightness")),te.tabIndex=0;const ue=E.createElement("div");ue.className="lat-form__color-plane-thumb",te.appendChild(ue),ee.appendChild(te);const ae=E.createElement("div");ae.className="lat-form__color-hue",ae.setAttribute("role","slider"),ae.setAttribute("aria-label",$.__t("form.color.hue")),ae.tabIndex=0;const de=E.createElement("div");de.className="lat-form__color-hue-thumb",ae.appendChild(de),ee.appendChild(ae);const _=E.createElement("div");_.className="lat-form__color-fields";const re=E.createElement("input");re.type="text",re.className="lat-form__color-hexfield",re.setAttribute("aria-label",$.__t("form.color.hexLabel"));const F=E.createElement("input");F.type="number",F.min="0",F.max="255",F.className="lat-form__color-rgbfield",F.setAttribute("aria-label",$.__t("form.color.redLabel"));const o=E.createElement("input");o.type="number",o.min="0",o.max="255",o.className="lat-form__color-rgbfield",o.setAttribute("aria-label",$.__t("form.color.greenLabel"));const L=E.createElement("input");L.type="number",L.min="0",L.max="255",L.className="lat-form__color-rgbfield",L.setAttribute("aria-label",$.__t("form.color.blueLabel")),_.appendChild(re),_.appendChild(F),_.appendChild(o),_.appendChild(L),ee.appendChild(_);const Y=E.createElement("div");Y.className="lat-form__color-previewrow";const Q=E.createElement("span");Q.className="lat-form__color-preview",Y.appendChild(Q),ee.appendChild(Y);const me=E.createElement("div");if(me.className="lat-form__color-actions",!r(q)){const K=E.createElement("button");K.type="button",K.className="lat-form__color-back",K.textContent=$.__t("form.back"),K.addEventListener("click",()=>{ne($)}),me.appendChild(K)}const ge=E.createElement("button");ge.type="button",ge.className="lat-form__color-select",ge.textContent=$.__t("form.color.select"),me.appendChild(ge),ee.appendChild(me);const $e=()=>{const K=h(U),oe=p(K);te.style.setProperty("--lat-color-hue",String(U.h)),ue.style.left=`${U.s*100}%`,ue.style.top=`${(1-U.l)*100}%`,de.style.left=`${U.h/360*100}%`,re.value=K,F.value=String(oe.r),o.value=String(oe.g),L.value=String(oe.b),Q.style.background=K,te.setAttribute("aria-valuetext",K),ae.setAttribute("aria-valuenow",String(Math.round(U.h)))};$e();const je=(K,oe,ve)=>{const xe=K.getBoundingClientRect();if(!xe.width||!xe.height)return;const we=Math.max(0,Math.min(1,(oe.clientX-xe.left)/xe.width)),Ie=Math.max(0,Math.min(1,(oe.clientY-xe.top)/xe.height));ve(we,Ie)},Pe=(K,oe)=>{let ve=!1;K.addEventListener("pointerdown",xe=>{ve=!0,je(K,xe,oe)}),E.addEventListener("pointermove",xe=>{ve&&je(K,xe,oe)}),E.addEventListener("pointerup",()=>{ve=!1})};Pe(te,(K,oe)=>{U.s=K,U.l=1-oe,$e()}),Pe(ae,K=>{U.h=K*360,$e()}),te.addEventListener("keydown",K=>{if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),J();return}const oe=K.shiftKey?.1:.02;if(K.key==="ArrowLeft")U.s=Math.max(0,U.s-oe);else if(K.key==="ArrowRight")U.s=Math.min(1,U.s+oe);else if(K.key==="ArrowUp")U.l=Math.min(1,U.l+oe);else if(K.key==="ArrowDown")U.l=Math.max(0,U.l-oe);else return;K.preventDefault(),$e()}),ae.addEventListener("keydown",K=>{if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),J();return}const oe=K.shiftKey?10:2;if(K.key==="ArrowLeft"||K.key==="ArrowDown")U.h=(U.h-oe+360)%360;else if(K.key==="ArrowRight"||K.key==="ArrowUp")U.h=(U.h+oe)%360;else return;K.preventDefault(),$e()});const ke=()=>{const K=a(re.value);if(!K){re.value=h(U);return}const oe=p(K);Object.assign(U,m(oe.r,oe.g,oe.b)),$e()};re.addEventListener("change",ke);const O=()=>{const K=oe=>Math.max(0,Math.min(255,Number(oe)||0));Object.assign(U,m(K(F.value),K(o.value),K(L.value))),$e()};F.addEventListener("change",O),o.addEventListener("change",O),L.addEventListener("change",O);const J=()=>{const K=h(U);w($,K),I($,K),le($,{restoreFocus:!0})};ge.addEventListener("click",J);const pe=K=>oe=>{oe.key==="Enter"&&(oe.preventDefault(),oe.stopPropagation(),K(),J())};re.addEventListener("keydown",pe(ke)),F.addEventListener("keydown",pe(O)),o.addEventListener("keydown",pe(O)),L.addEventListener("keydown",pe(O)),W($)}function Ae($){$.__open||$.__item.disabled===!0||$.__item.readOnly===!0||($.__open=!0,$.__popover.hidden=!1,r($.__item)||$.__item.mode==="picker"?be($,$.__value):ne($))}function le($,ie={}){if($.__open){for($.__open=!1,$.__popover.hidden=!0,$.__popover.classList.remove("lat-form__color-popover--above");$.__popover.firstChild;)$.__popover.removeChild($.__popover.firstChild);ie.restoreFocus&&$.__input.focus()}}B("color",{kind:"field",domEvents:["customColorsChange"],build($,ie){const q=ie.doc;C(q);const E=q.createElement("div");E.className="lat-form__color",E.__item=$,E.__t=ie.t||b,E.__open=!1,E.__value=s($.value),E.__customColors=T($);const H=q.createElement("div");H.className="lat-form__color-field",E.__field=H;const x=q.createElement("button");x.type="button",x.className="lat-form__color-swatch",x.setAttribute("aria-label",E.__t("form.color.open")),E.__swatchBtn=x;const U=q.createElement("input");U.type="text",U.className="lat-form__color-input",$.name&&(U.name=$.name),$.placeholder!=null&&(U.placeholder=String($.placeholder)),$.label!=null&&$.label!==""&&U.setAttribute("aria-label",String($.label)),U.setAttribute("autocomplete","off"),U.readOnly=!c($),E.__input=U,H.appendChild(x),H.appendChild(U);let ee=null;if(i($)){ee=q.createElement("button"),ee.type="button",ee.className="lat-form__color-clear",ee.setAttribute("aria-label",E.__t("form.color.clear"));const o=X(q,"close");o&&ee.appendChild(o),ee.addEventListener("click",()=>{w(E,null),U.focus()}),H.appendChild(ee)}E.__clearBtn=ee;const te=q.createElement("button");te.type="button",te.className="lat-form__color-toggle",te.setAttribute("aria-label",E.__t("form.color.open"));const ue=f($),ae=ue?X(q,ue):X(q,"chevronDown");ae&&te.appendChild(ae),E.__toggleBtn=te,H.appendChild(te),E.appendChild(H);const de=q.createElement("div");de.className="lat-form__color-popover",de.hidden=!0,E.__popover=de,E.appendChild(de),D(E,E.__value);const _=()=>{E.__open?le(E):Ae(E)};x.addEventListener("click",_),te.addEventListener("click",_),U.addEventListener("input",()=>{V(E)}),U.addEventListener("change",o=>{o.stopPropagation(),M(E)}),U.addEventListener("keydown",o=>{o.key==="Enter"?(o.preventDefault(),M(E)):o.key==="Escape"&&E.__open?le(E):o.altKey&&o.key==="ArrowDown"&&(o.preventDefault(),Ae(E))}),E.addEventListener("keydown",o=>{o.target!==U&&(o.key==="Enter"&&!E.__open||o.altKey&&o.key==="ArrowDown"?(o.preventDefault(),Ae(E)):o.key==="Escape"&&E.__open&&(o.preventDefault(),le(E,{restoreFocus:!0})))});const re=o=>{!E.__open||E.contains(o.target)||le(E)},F=o=>{E.__open&&(o.relatedTarget&&E.contains(o.relatedTarget)||le(E))};return q.addEventListener("pointerdown",re),E.addEventListener("focusout",F),Array.isArray(ie.disposers)&&ie.disposers.push(()=>{q.removeEventListener("pointerdown",re),E.removeEventListener("focusout",F)}),E},read($){const ie=$.__input.value.trim();return ie===""?null:a(ie)||ie},write($,ie){if(ie==null||ie===""){$.__value=null,D($,null);return}const q=s(ie);if(!q){t("form.color.setValue",`form.color: "${String(ie)}" is not a colour (expected hex or a red-green-blue triplet); the value is unchanged.`);return}$.__value=q,D($,q)},state($,ie){const q=ie.disabled===!0||ie.readOnly===!0;$.__input.disabled=ie.disabled===!0,$.__input.readOnly=ie.readOnly===!0||!c(ie),$.__swatchBtn.disabled=q,$.__toggleBtn.disabled=q,$.__clearBtn&&($.__clearBtn.disabled=q),q&&le($)},validate($,ie,q){return q==null||typeof q=="string"&&/^#[0-9a-f]{6}$/.test(q)?!0:typeof ie.errorMessage=="string"&&ie.errorMessage!==""?ie.errorMessage:$.__t("form.color.invalidHex")},focus($){$.__input.focus()}})}),Ne("packages/dom/src/cell/renderers/barcode/support.js",function(N,Z){"use strict";Object.defineProperty(N,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"joinCharacters",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"buildPattern",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"mod10Weighted",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"MOD43_ORDER",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"mod43Check",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"weightedModulo",{enumerable:!0,get:function(){return P}});function e(A){const j=[];for(let k=0;k<A.length;k++){const g=k%2===0?1:0;for(let n=0;n<A[k];n++)j.push(g)}return j}function B(A,j){const k=[];return A.forEach((g,n)=>{if(n>0&&j>0)for(let u=0;u<j;u++)k.push(0);k.push(...g)}),k}function S(A,j){return B(A.map(e),j)}function X(A,j=3){let k=0,g=j;for(let n=A.length-1;n>=0;n--)k+=Number(A[n])*g,g=g===3?1:3;return(10-k%10)%10}const C="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function z(A){let j=0;for(const k of A){const g=C.indexOf(k);if(g<0)return null;j+=g}return C[j%43]}function P(A,j,k=11){let g=0,n=1;for(let u=A.length-1;u>=0;u--)g+=A[u]*n,n=n===j?1:n+1;return g%k}}),Ne("packages/dom/src/cell/renderers/barcode/code39.js",function(N,Z){"use strict";Object.defineProperty(N,"toExtendedSymbols",{enumerable:!0,get:function(){return u}}),Object.defineProperty(N,"decodeExtendedSymbols",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"encodeCode39",{enumerable:!0,get:function(){return v}});const e=Z("packages/dom/src/cell/renderers/barcode/support.js"),B=e.buildPattern,S=e.mod43Check,X=e.MOD43_ORDER,C=2,z=["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"],P="010010100";function A(t){return t.split("").map(a=>a==="1"?C:1)}function j(t){const a=X.indexOf(t);return a<0?null:A(z[a])}function k(){const t=new Map,a=s=>String.fromCharCode(65+s);for(let s=1;s<=26;s++)t.set(s,`$${a(s-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((s,p)=>t.set(27+p,s));for(let s=33;s<=44;s++)t.set(s,`/${a(s-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let s=59;s<=63;s++)t.set(s,`%${a(s-59+5)}`);t.set(64,"%V");for(let s=91;s<=95;s++)t.set(s,`%${a(s-91+10)}`);t.set(96,"%W");for(let s=97;s<=122;s++)t.set(s,`+${a(s-97)}`);for(let s=123;s<=127;s++)t.set(s,`%${a(s-123+15)}`);return t}const g=k(),n=new Map([...g].map(([t,a])=>[a,t]));function u(t){const a=[];for(const s of t){const p=s.codePointAt(0);if(p>127)return null;if(X.includes(s)){a.push(s);continue}const y=g.get(p);if(!y)return null;a.push(y[0],y[1])}return a}function b(t){let a="";for(let s=0;s<t.length;s++){const p=t[s]+(t[s+1]??"");if(n.has(p)){a+=String.fromCharCode(n.get(p)),s++;continue}a+=t[s]}return a}function v(t,a={}){const s=t==null?"":String(t);if(s==="")return{ok:!1,reason:"empty"};const p=a.extended?u(s):s.split("");if(!p)return{ok:!1,reason:"charset"};const y=[A(P)];for(const m of p){const h=j(m);if(!h)return{ok:!1,reason:"charset"};y.push(h)}if(a.checkDigit){const m=S(p.join(""));return m==null?{ok:!1,reason:"charset"}:(y.push(j(m)),y.push(A(P)),{ok:!0,modules:B(y,1),text:`${s}${m}`})}return y.push(A(P)),{ok:!0,modules:B(y,1),text:s}}}),Ne("packages/dom/src/cell/renderers/barcode/ean.js",function(N,Z){"use strict";Object.defineProperty(N,"L_PATTERNS",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"G_PATTERNS",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"R_PATTERNS",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"EAN13_PARITY",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"encodeEan13",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"encodeEan8",{enumerable:!0,get:function(){return k}});const B=Z("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,S=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],X=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],C=S.map(g=>g.split("").map(n=>n==="1"?"0":"1").join("")),z=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function P(g){return g.split("").map(Number)}function A(g,n){const u=g==null?"":String(g);if(!/^\d+$/.test(u))return null;if(u.length===n)return{digits:u,check:B(u)};if(u.length===n+1){const b=u.slice(0,n),v=Number(u[n]),t=B(b);return v!==t?null:{digits:b,check:t}}return null}function j(g){const n=A(g,12);if(!n)return{ok:!1,reason:"checkDigit"};const u=n.digits+n.check,b=z[Number(u[0])],v=u.slice(1,7).split("").map((s,p)=>(b[p]==="L"?S:X)[Number(s)]),t=u.slice(7).split("").map(s=>C[Number(s)]);return{ok:!0,modules:[...P("101"),...v.flatMap(P),...P("01010"),...t.flatMap(P),...P("101")],text:u}}function k(g){const n=A(g,7);if(!n)return{ok:!1,reason:"checkDigit"};const u=n.digits+n.check,b=u.slice(0,4).split("").map(a=>S[Number(a)]),v=u.slice(4).split("").map(a=>C[Number(a)]);return{ok:!0,modules:[...P("101"),...b.flatMap(P),...P("01010"),...v.flatMap(P),...P("101")],text:u}}}),Ne("packages/dom/src/cell/renderers/barcode/upc.js",function(N,Z){"use strict";Object.defineProperty(N,"encodeUpcA",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"encodeUpcE",{enumerable:!0,get:function(){return g}});const e=Z("packages/dom/src/cell/renderers/barcode/ean.js"),B=e.L_PATTERNS,S=e.G_PATTERNS,X=e.encodeEan13,z=Z("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function P(n){return n.split("").map(Number)}function A(n){const u=n==null?"":String(n);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const b=X(`0${u}`);return b.ok?{ok:!0,modules:b.modules,text:b.text.slice(1)}:b}function j(n,u){const b=n.split(""),v=b[5];return v<="2"?`${b[0]}${b[1]}${v}0000${b[2]}${b[3]}${b[4]}`:v==="3"?`${b[0]}${b[1]}${b[2]}00000${b[3]}${b[4]}`:v==="4"?`${b[0]}${b[1]}${b[2]}${b[3]}00000${b[4]}`:`${b[0]}${b[1]}${b[2]}${b[3]}${b[4]}0000${v}`}const k={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(n){const u=n==null?"":String(n);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let b,v,t=null;if(u.length===6?(b="0",v=u):u.length===7?(b=u[0],v=u.slice(1)):(b=u[0],v=u.slice(1,7),t=u[7]),b!=="0"&&b!=="1")return{ok:!1,reason:"checkDigit"};const a=j(v,b),s=z(b+a);if(t!=null&&Number(t)!==s)return{ok:!1,reason:"checkDigit"};const y=k[s][Number(b)].split("").map((h,R)=>(h==="O"?B:S)[Number(v[R])]);return{ok:!0,modules:[...P("101"),...y.flatMap(P),...P("010101")],text:`${b}${v}${s}`}}}),Ne("packages/dom/src/cell/renderers/barcode/code93.js",function(N,Z){"use strict";Object.defineProperty(N,"toExtendedSymbols",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"decodeExtendedSymbols",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"encodeCode93",{enumerable:!0,get:function(){return v}}),Object.defineProperty(N,"PATTERNS",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty(N,"SHIFT_ORDER",{enumerable:!0,get:function(){return B}}),Object.defineProperty(N,"START_STOP",{enumerable:!0,get:function(){return X}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",B=["($)","(%)","(/)","(+)"],S=[[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]],X=[1,1,1,1,4,1];function C(t){const a=[];for(let s=0;s<t.length;s++){const p=s%2===0?1:0;for(let y=0;y<t[s];y++)a.push(p)}return a}function z(t){return S[t]}function P(t){return e.indexOf(t)}function A(){const t=new Map,a=43,s=44,p=45,y=46,m=h=>10+h;for(let h=1;h<=26;h++)t.set(h,[a,m(h-1)]);t.set(0,[s,m(20)]);for(let h=27;h<=31;h++)t.set(h,[s,m(h-27)]);for(let h=33;h<=44;h++)t.set(h,[p,m(h-33)]);t.set(47,[p,m(14)]),t.set(58,[p,m(25)]);for(let h=59;h<=63;h++)t.set(h,[s,m(h-59+5)]);t.set(64,[s,m(21)]);for(let h=91;h<=95;h++)t.set(h,[s,m(h-91+10)]);t.set(96,[s,m(22)]);for(let h=97;h<=122;h++)t.set(h,[y,m(h-97)]);for(let h=123;h<=127;h++)t.set(h,[s,m(h-123+15)]);return t}const j=A(),k=new Map([...j].map(([t,a])=>[a.join(","),t]));function g(t){const a=[];for(const s of t){const p=s.codePointAt(0);if(p>127)return null;const y=P(s);if(y>=0){a.push(y);continue}const m=j.get(p);if(!m)return null;a.push(m[0],m[1])}return a}function n(t){let a="";for(let s=0;s<t.length;s++){const p=`${t[s]},${t[s+1]??""}`;if(k.has(p)){a+=String.fromCharCode(k.get(p)),s++;continue}a+=e[t[s]]}return a}function u(t){let a=0,s=1;for(let p=t.length-1;p>=0;p--)a+=t[p]*s,s=s===20?1:s+1;return a%47}function b(t){const a=u(t),s=u([...t,a]);return{c:a,k:s}}function v(t,a={}){const s=t==null?"":String(t);if(s==="")return{ok:!1,reason:"empty"};const p=a.extended?g(s):(()=>{const d=[];for(const c of s){const i=P(c);if(i<0)return null;d.push(i)}return d})();if(!p)return{ok:!1,reason:"charset"};const{c:y,k:m}=b(p),h=[X];for(const d of p)h.push(z(d));return h.push(z(y)),h.push(z(m)),h.push(X),{ok:!0,modules:h.flatMap(C),text:s}}}),Ne("packages/dom/src/cell/renderers/barcode/code128.js",function(N,Z){"use strict";Object.defineProperty(N,"encodeCode128",{enumerable:!0,get:function(){return t}});const B=Z("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,S=["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"],X=103,C=104,z=105,P=106,A={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},j={A:X,B:C,C:z};function k(a){return a>=32&&a<=95?a-32:a>=0&&a<=31?a+64:null}function g(a){return a>=32&&a<=127?a-32:null}function n(a,s){const p=a.charCodeAt(s),y=a.charCodeAt(s+1);return p>=48&&p<=57&&y>=48&&y<=57}function u(a,s,p){const y=[],m=a.charCodeAt(s),h=k(m);if(h!=null){const d=p==="A"||p===null?[h]:[A[p].A,h];y.push({to:"A",symbols:d,advance:1})}const R=g(m);if(R!=null){const d=p==="B"||p===null?[R]:[A[p].B,R];y.push({to:"B",symbols:d,advance:1})}if(n(a,s)){const d=Number(a.slice(s,s+2)),c=p==="C"||p===null?[d]:[A[p].C,d];y.push({to:"C",symbols:c,advance:2})}return y}function b(a){const s=a.length,p=Array.from({length:s+1},()=>({}));p[0].start={cost:0,prev:null,symbols:[]};for(let i=0;i<=s;i++)for(const r of Object.keys(p[i])){const l=p[i][r];if(i===s)continue;const f=r==="start"?null:r;for(const T of u(a,i,f)){const V=i+T.advance,D=l.cost+T.symbols.length,M=p[V][T.to];(!M||D<M.cost)&&(p[V][T.to]={cost:D,prev:r,symbols:T.symbols,backI:i})}}const y=Object.entries(p[s]);if(y.length===0)return null;y.sort((i,r)=>i[1].cost-r[1].cost);const[,m]=y[0],h=[];let R=s,d=y[0][0],c=d;for(;R>0;){const i=p[R][d];h.push(i.symbols),c=d,R=i.backI,d=i.prev}return h.reverse(),{symbols:h.flat(),startSubset:c}}function v(a,s){let p=a;for(let y=0;y<s.length;y++)p+=s[y]*(y+1);return p%103}function t(a,s={}){const p=a==null?"":String(a);if(p==="")return{ok:!1,reason:"empty"};for(let i=0;i<p.length;i++)if(p.charCodeAt(i)>127)return{ok:!1,reason:"charset"};const y=b(p);if(!y)return{ok:!1,reason:"charset"};const m=j[y.startSubset],h=v(m,y.symbols);return{ok:!0,modules:[m,...y.symbols,h,P].map(i=>S[i].split("").map(Number)).flatMap(i=>B(i)),text:p}}}),Ne("packages/dom/src/cell/renderers/barcode/code11.js",function(N,Z){"use strict";Object.defineProperty(N,"encodeCode11",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"ALPHABET",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"PATTERNS",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"START_STOP",{enumerable:!0,get:function(){return z}});const e=Z("packages/dom/src/cell/renderers/barcode/support.js"),B=e.buildPattern,S=e.weightedModulo,X="0123456789-",C=[[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]],z=[2,1,1,1,2,1],P=n=>X.indexOf(n);function A(n){const u=P(n);return u<0?null:C[u]}function j(n){return X[S(n,10)]}function k(n){return X[S(n,9)]}function g(n,u={}){const b=n==null?"":String(n);if(b==="")return{ok:!1,reason:"empty"};const v=[];for(const m of b){const h=P(m);if(h<0)return{ok:!1,reason:"charset"};v.push(h)}const t=j(v),a=P(t),p=b.length>=10?`${t}${k([...v,a])}`:t,y=[z];for(const m of b)y.push(A(m));for(const m of p)y.push(A(m));return y.push(z),{ok:!0,modules:B(y,1),text:`${b}${p}`}}}),Ne("packages/dom/src/cell/renderers/barcode/codabar.js",function(N,Z){"use strict";Object.defineProperty(N,"MOD16_ORDER",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"encodeCodabar",{enumerable:!0,get:function(){return g}});const B=Z("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,S=2,X={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"},C="0123456789-$:/.+",z="ABCD",P="0123456789-$:/.+ABCD";function A(n){return n.split("").map(u=>u==="w"?S:1)}function j(n){const u=X[n];return u?A(u):null}function k(n){let u=0;for(const v of n){const t=P.indexOf(v);if(t<0)return null;u+=t}const b=u%16;return b<10?String(b):null}function g(n,u={}){const b=n==null?"":String(n);if(b==="")return{ok:!1,reason:"empty"};const v=b.toUpperCase();if(v.length<2)return{ok:!1,reason:"charset"};const t=v[0],a=v[v.length-1];if(!z.includes(t)||!z.includes(a))return{ok:!1,reason:"charset"};const s=v.slice(1,-1);for(const m of s)if(!C.includes(m))return{ok:!1,reason:"charset"};const p=[t,...s.split(""),a];if(u.checkDigit){const m=k(p);if(m==null)return{ok:!1,reason:"checkDigit"};p.splice(p.length-1,0,m);const h=p.map(j),R=`${v.slice(0,-1)}${m}${a}`;return{ok:!0,modules:B(h,1),text:R}}const y=p.map(j);return{ok:!0,modules:B(y,1),text:v}}}),Ne("packages/dom/src/cell/renderers/barcode/code32.js",function(N,Z){"use strict";Object.defineProperty(N,"ALPHABET",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"decodeCode32Modules",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"encodeCode32",{enumerable:!0,get:function(){return u}});const B=Z("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,S=2,X="010010100",C={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"},z="0123456789BCDFGHJKLMNPQRSTUVWXYZ",P=b=>b.split("").map(v=>v==="1"?S:1),A=b=>C[b]?P(C[b]):null,j=()=>P(X);function k(b){let v=0;for(let t=0;t<8;t++){const a=t+1;let s=Number(b[t]);a%2===0&&(s*=2,s>=10&&(s-=9)),v+=s}return v%10}function g(b,v){let t="",a=b;for(let s=0;s<v;s++)t=z[a%32]+t,a=Math.floor(a/32);return t}function n(b){const v=[];for(let y=0;y<b.length;y++)y===0||b[y]!==b[y-1]?v.push(1):v[v.length-1]++;const t=1,a=y=>y>t?"1":"0",s=[];let p=9;for(;p<v.length;){p+=1;const y=v.slice(p,p+9);if(y.length<9)break;const m=y.map(a).join(""),h=Object.keys(C).find(R=>C[R]===m);s.push(h??"?"),p+=9}return s.pop(),s}function u(b,v={}){const t=b==null?"":String(b);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const a=t.slice(0,8),s=k(a);let p;if(t.length===9){const c=Number(t[8]);if(c!==s)return{ok:!1,reason:"checkDigit"};p=c}else p=s;const y=`${a}${p}`,m=Number(y),R=`A${g(m,6)}`.split(""),d=[j()];for(const c of R){const i=A(c);if(!i)return{ok:!1,reason:"charset"};d.push(i)}return d.push(j()),{ok:!0,modules:B(d,1),text:y}}}),Ne("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(N,Z){"use strict";Object.defineProperty(N,"gfMul",{enumerable:!0,get:function(){return X}}),Object.defineProperty(N,"gfExp",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"generatorPoly",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"reedSolomon",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"SIZES",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"dataCodewords",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"errorCodewords",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"dataRegionSize",{enumerable:!0,get:function(){return n}}),Object.defineProperty(N,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"base256Mask",{enumerable:!0,get:function(){return a}}),Object.defineProperty(N,"encodeBase256",{enumerable:!0,get:function(){return s}}),Object.defineProperty(N,"padCodewords",{enumerable:!0,get:function(){return p}}),Object.defineProperty(N,"utahPlacementOrder",{enumerable:!0,get:function(){return y}}),Object.defineProperty(N,"diagonalWalkCoverage",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"placeCodewords",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"buildSymbol",{enumerable:!0,get:function(){return R}}),Object.defineProperty(N,"encodeDataMatrix",{enumerable:!0,get:function(){return r}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return l}});const e=301,B=new Uint8Array(512),S=new Uint8Array(256);{let f=1;for(let T=0;T<255;T++)B[T]=f,S[f]=T,f<<=1,f&256&&(f^=e);for(let T=255;T<512;T++)B[T]=B[T-255]}function X(f,T){return f===0||T===0?0:B[S[f]+S[T]]}function C(f){return B[(f%255+255)%255]}function z(f){let T=new Uint8Array([1]);for(let V=0;V<f;V++){const D=new Uint8Array(T.length+1);for(let M=0;M<T.length;M++)D[M]^=T[M],D[M+1]^=X(T[M],C(V));T=D}return T.subarray(1)}function P(f,T){const V=z(T),D=new Uint8Array(T);for(let M=0;M<f.length;M++){const w=f[M]^D[0];if(D.copyWithin(0,1),D[T-1]=0,w!==0)for(let I=0;I<T;I++)D[I]^=X(V[I],w)}return D}const A={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]},j=Object.keys(A).map(Number).sort((f,T)=>f-T);function k(f){const T=A[f];if(!T)throw new RangeError(`unsupported Data Matrix size ${f}`);return T[0]}function g(f){const T=A[f];if(!T)throw new RangeError(`unsupported Data Matrix size ${f}`);return T[1]}function n(f){return f-2}const u=129,b=231,v=f=>f>=48&&f<=57;function t(f){const T=[];let V=0;for(;V<f.length;){const D=f[V],M=V+1<f.length?f[V+1]:-1;if(v(D)&&v(M)){const w=D-48,I=M-48;T.push(w*10+I+130),V+=2}else T.push(D+1),V+=1}return T}function a(f,T){const V=149*T%255+1;return(f+V)%256}function s(f,T){if(f.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const V=[b,f.length];for(let D=0;D<f.length;D++)V.push(a(f[D],T+2+D));return V}function p(f,T){if(f.length>T)throw new RangeError(`encoded stream (${f.length} codewords) exceeds capacity (${T})`);const V=f.slice();for(;V.length<T;)V.push(u);return V}function y(f){const T=new Array(f*f).fill(null),V=[],D=(Ae,le)=>Ae>=0&&Ae<f&&le>=0&&le<f,M=(Ae,le)=>{if(!D(Ae,le))return;const $=Ae*f+le;if(T[$]===null){const ie={row:Ae,col:le};T[$]=ie,V.push(ie)}},w=(Ae,le)=>{const $=q=>(q%f+f)%f,ie=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[q,E]of ie)M($(Ae+q),$(le+E))};let I=4,W=0,G=0;const ne=f*f+64;do{for(;I>=0&&W<f;)w(I,W),I-=2,W+=2;for(I+=1,W+=3;I<f&&W>=0;)w(I,W),I+=2,W-=2;I+=3,W+=1}while((I<f||W<f)&&G++<ne);const be=V.length;for(let Ae=0;Ae<f;Ae++)for(let le=0;le<f;le++)M(Ae,le);return Object.defineProperty(V,"sweptCount",{value:V.length-be,enumerable:!1}),V}function m(f){return y(f).sweptCount}function h(f,T){const V=y(T),D=new Uint8Array(T*T);for(let M=0;M<V.length;M++){const w=Math.floor(M/8);if(w>=f.length)break;const I=7-M%8,W=f[w]>>>I&1,{row:G,col:ne}=V[M];D[G*T+ne]=W}return D}function R(f,T){const V=T+2,D=new Uint8Array(V*V),M=(I,W,G)=>{D[I*V+W]=G},w=V-1;for(let I=0;I<V;I++)M(w,I,1);for(let I=0;I<V;I++)M(I,0,1);for(let I=0;I<V;I++)M(0,I,I%2===0?1:0);for(let I=0;I<V;I++)M(I,V-1,I%2===0?1:0);for(let I=0;I<T;I++)for(let W=0;W<T;W++)D[(I+1)*V+(W+1)]=f[I*T+W];return{size:V,modules:D}}function d(f){const T=new Uint8Array(f.length);for(let V=0;V<f.length;V++)T[V]=f.charCodeAt(V)&255;return T}function c(f){for(let T=0;T<f.length;T++)if(f[T]>127)return!1;return!0}function i(f){for(const T of j)if(k(T)>=f)return T;return 0}function r(f,T={}){if(f==null||f==="")return{ok:!1,reason:"empty"};const V=String(f),D=d(V),M=T&&T.encodation==="base256";if(!M&&!c(D))return{ok:!1,reason:"charset"};let w;if(M){if(D.length>249)return{ok:!1,reason:"capacity"};w=s(D,1)}else w=t(D);const I=T&&T.size;let W;if(I!=null){if(!A[I])return{ok:!1,reason:"capacity"};if(w.length>k(I))return{ok:!1,reason:"capacity"};W=I}else if(W=i(w.length),W===0)return{ok:!1,reason:"capacity"};const G=k(W),ne=p(w,G),be=P(ne,g(W)),Ae=new Uint8Array(G+be.length);Ae.set(ne,0),Ae.set(be,G);const le=n(W),$=h(Ae,le),{modules:ie}=R($,le);return{ok:!0,matrix:{size:W,modules:ie},text:V}}const l=r}),Ne("packages/dom/src/cell/renderers/barcode/index.js",function(N,Z){"use strict";Object.defineProperty(N,"BARCODE_TYPES",{enumerable:!0,get:function(){return m}}),Object.defineProperty(N,"encodeBarcode",{enumerable:!0,get:function(){return h}});const e=Z("packages/dom/src/cell/renderers/barcode/code39.js"),B=e.encodeCode39,S=Z("packages/dom/src/cell/renderers/barcode/ean.js"),X=S.encodeEan13,C=S.encodeEan8,z=Z("packages/dom/src/cell/renderers/barcode/upc.js"),P=z.encodeUpcA,A=z.encodeUpcE,j=Z("packages/dom/src/cell/renderers/barcode/code93.js"),k=j.encodeCode93,g=Z("packages/dom/src/cell/renderers/barcode/code128.js"),n=g.encodeCode128,u=Z("packages/dom/src/cell/renderers/barcode/code11.js"),b=u.encodeCode11,v=Z("packages/dom/src/cell/renderers/barcode/codabar.js"),t=v.encodeCodabar,a=Z("packages/dom/src/cell/renderers/barcode/code32.js"),s=a.encodeCode32,p=Z("packages/dom/src/cell/renderers/barcode/datamatrix.js"),y=p.encodeDataMatrix;Object.defineProperty(N,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty(N,"encodeEan13",{enumerable:!0,get:function(){return S.encodeEan13}}),Object.defineProperty(N,"encodeEan8",{enumerable:!0,get:function(){return S.encodeEan8}}),Object.defineProperty(N,"encodeUpcA",{enumerable:!0,get:function(){return z.encodeUpcA}}),Object.defineProperty(N,"encodeUpcE",{enumerable:!0,get:function(){return z.encodeUpcE}}),Object.defineProperty(N,"encodeCode93",{enumerable:!0,get:function(){return j.encodeCode93}}),Object.defineProperty(N,"encodeCode128",{enumerable:!0,get:function(){return g.encodeCode128}}),Object.defineProperty(N,"encodeCode11",{enumerable:!0,get:function(){return u.encodeCode11}}),Object.defineProperty(N,"encodeCodabar",{enumerable:!0,get:function(){return v.encodeCodabar}}),Object.defineProperty(N,"encodeCode32",{enumerable:!0,get:function(){return a.encodeCode32}}),Object.defineProperty(N,"encodeDataMatrix",{enumerable:!0,get:function(){return p.encodeDataMatrix}});const m=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function h(R,d,c={}){switch(R){case"code39":return B(d,{checkDigit:c.checkDigit});case"code39ext":return B(d,{extended:!0,checkDigit:c.checkDigit});case"ean13":return X(d);case"ean8":return C(d);case"upca":return P(d);case"upce":return A(d);case"code93":return k(d);case"code93ext":return k(d,{extended:!0});case"code128":return n(d);case"code11":return b(d);case"codabar":return t(d,{checkDigit:c.checkDigit});case"code32":return s(d);case"datamatrix":return y(d,{size:c.size,encodation:c.encodation});default:return{ok:!1,reason:"type"}}}}),Ne("packages/dom/src/cell/renderers/barcode/render.js",function(N,Z){"use strict";Object.defineProperty(N,"warnOnce",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"barsPathData",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"matrixPathData",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"paint",{enumerable:!0,get:function(){return b}}),Object.defineProperty(N,"buildSvg",{enumerable:!0,get:function(){return v}}),Object.defineProperty(N,"renderBarcode",{enumerable:!0,get:function(){return t}});const B=Z("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,S="http://www.w3.org/2000/svg",X=60,C=16,z=4;function P(a,s,p){p==null||p===!1?a.removeAttribute(s):a.setAttribute(s,String(p))}const A=new Set;function j(a,s){A.has(a)||(A.add(a),console.warn("[lattice]",s))}function k(a,s,p){const y=[];let m=0;for(;m<a.length;){if(!a[m]){m++;continue}let h=1;for(;m+h<a.length&&a[m+h];)h++;y.push(`M${m+s} 0h${h}v${p}h-${h}z`),m+=h}return y.join("")}function g(a,s){const{size:p,modules:y}=a,m=[];for(let h=0;h<p;h++){let R=0;for(;R<p;){if(!y[h*p+R]){R++;continue}let d=1;for(;R+d<p&&y[h*p+R+d];)d++;m.push(`M${R+s} ${h+s}h${d}v1h-${d}z`),R+=d}}return m.join("")}function n(a){const s=a&&typeof a=="object"?a:{};return{show:s.show!==!1,position:s.position==="top"?"top":"bottom",align:s.align==="left"||s.align==="right"?s.align:"center",margin:Number.isFinite(Number(s.margin))?Number(s.margin):2,font:typeof s.font=="string"&&s.font?s.font:"10px sans-serif"}}function u(a){const s=Math.floor(Number(a));return!Number.isFinite(s)||s<0?10:Math.min(40,s)}function b(a,s,p){const y=u(p.quietZone),m=n(p.text),h=m.show,R=!!s.matrix,d=R?s.matrix.size:s.modules.length,c=R?d+y*2:X,i=h&&m.position==="top"?C+z:0,r=c+(h?C+z:0),l=d+y*2,f=Number(p.moduleWidth)||0,T=f>0?l*f:Number(p.width)||200,V=Number(p.height)||Math.round(T/l*r)||60;P(a.svg,"viewBox",`0 0 ${l} ${r}`),P(a.svg,"width",T),P(a.svg,"height",V);const D=p.print?"#000000":p.foreground||"currentColor",M=p.print?"#ffffff":p.background;if(M?(P(a.background,"x",0),P(a.background,"y",0),P(a.background,"width",l),P(a.background,"height",r),a.background.setAttribute("fill",M),a.background.style.display=""):a.background.style.display="none",a.path.setAttribute("fill",D),a.path.setAttribute("transform",`translate(0 ${i})`),a.path.setAttribute("d",R?g(s.matrix,y):k(s.modules,y,X)),!h){a.text.style.display="none";return}a.text.style.display="",a.text.style.font=m.font,a.text.setAttribute("fill",D),a.text.setAttribute("text-anchor",m.align==="left"?"start":m.align==="right"?"end":"middle");const w=m.align==="left"?y:m.align==="right"?l-y:l/2,I=m.position==="top"?C-m.margin:r-m.margin;P(a.text,"x",w),P(a.text,"y",I),a.text.textContent=s.text}function v(a){const s=a.createElementNS(S,"svg");s.setAttribute("class","lat-barcode__svg"),s.setAttribute("focusable","false"),s.setAttribute("preserveAspectRatio","none");const p=a.createElementNS(S,"rect");p.style.display="none";const y=a.createElementNS(S,"path"),m=a.createElementNS(S,"text");return s.appendChild(p),s.appendChild(y),s.appendChild(m),{svg:s,background:p,path:y,text:m}}function t(a,s){const p=a.ownerDocument,y=v(p);a.textContent="",a.appendChild(y.svg);const m=R=>{const d=R||{},c=String(d.type||"code39"),i=B(c,d.value,{checkDigit:d.checkDigit,size:d.size,encodation:d.encodation});if(!i.ok){j(`barcode:invalid:${c}`,`column "standalone" has a value that is not valid for the "${c}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),y.path.setAttribute("d","");return}b(y,i,d)};return m(s),{update:m,destroy:()=>{a.textContent=""}}}}),Ne("packages/modules/form/controls/barcode.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function C(z,P){const A=z.props&&z.props.source;if(!A)return z.value;const j=typeof P.form.getItem=="function"?P.form.getItem(A):null;return j&&typeof j.getValue=="function"?j.getValue():void 0}B("barcode",{kind:"display",build(z,P){const A=P.doc.createElement("span");A.className="lat-form__barcode";const j=X(A,{...z.props,value:C(z,P)}),k=z.props&&z.props.source;if(k){const g=P.emitter.on("change",n=>{n&&n.name===k&&j.update({...z.props,value:n.value})});P.disposers.push(g)}return P.disposers.push(()=>j.destroy()),A._barcodeHandle=j,A},read(z,P,A){return C(P,A)},write(z,P,A){z._barcodeHandle&&z._barcodeHandle.update({...P.props,value:A})},state(){}})}),Ne("packages/modules/form/controls/speeddial.js",function(N,Z){"use strict";Object.defineProperty(N,"injectSpeedDialStyles",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"createSpeedDial",{enumerable:!0,get:function(){return r}});const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/modules/form/messages.js").t,z=Z("packages/modules/form/ids.js").nextId,A=Z("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,j="lat-speeddial",k="data-lattice-speeddial-styles",g="http://www.w3.org/2000/svg",n=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),u=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),b=Object.freeze(["up","down","left","right"]);function v(){const l=`
1971
2001
  .lat-form,
1972
2002
  .lat-speeddial[data-lattice-standalone]{
1973
2003
  --lattice-speeddial-primary-bg:#5a46d6;
@@ -1991,7 +2021,7 @@ ${r}
1991
2021
  --lattice-speeddial-danger-bg:#c22b2b;
1992
2022
  --lattice-speeddial-danger-fg:#ffffff;
1993
2023
  --lattice-speeddial-danger-border:#c22b2b;
1994
- }`,d=`
2024
+ }`,f=`
1995
2025
  @scope ([data-theme="dark"]){.lat-form,
1996
2026
  .lat-speeddial[data-lattice-standalone]{
1997
2027
  --lattice-speeddial-primary-bg:#7c68e8;
@@ -2039,8 +2069,8 @@ ${r}
2039
2069
  --lattice-speeddial-danger-bg:#e05b5b;
2040
2070
  --lattice-speeddial-danger-fg:#1c0606;
2041
2071
  --lattice-speeddial-danger-border:#e05b5b;
2042
- }}}`,T=c.map(U=>`
2043
- .${S}[data-variant='${U}'] .${S}__fab{ background:var(--lattice-speeddial-${U}-bg); border-color:var(--lattice-speeddial-${U}-border); color:var(--lattice-speeddial-${U}-fg); }`).join(`
2072
+ }}}`,T=u.map(V=>`
2073
+ .${j}[data-variant='${V}'] .${j}__fab{ background:var(--lattice-speeddial-${V}-bg); border-color:var(--lattice-speeddial-${V}-border); color:var(--lattice-speeddial-${V}-fg); }`).join(`
2044
2074
  `);return`
2045
2075
  .lat-speeddial{
2046
2076
  position:relative; box-sizing:border-box; min-width:0;
@@ -2094,7 +2124,7 @@ ${r}
2094
2124
  /* Inside a form the control cell gives the FAB its room. */
2095
2125
  .lat-form__control .lat-speeddial{ min-height:calc(var(--lat-sd-size) + var(--lat-sd-pad) * 2); }
2096
2126
 
2097
- .${S}__fab{
2127
+ .${j}__fab{
2098
2128
  position:absolute; z-index:2; pointer-events:auto;
2099
2129
  box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
2100
2130
  gap:calc(var(--lat-sd-pad) / 2);
@@ -2104,42 +2134,42 @@ ${r}
2104
2134
  padding:0; font:inherit; line-height:1; cursor:pointer; user-select:none;
2105
2135
  box-shadow:0 2px 8px color-mix(in srgb, var(--lattice-foreground) 25%, transparent);
2106
2136
  }
2107
- .${S}__fab[data-text='true']{ width:auto; padding:0 var(--lat-sd-pad); }
2108
- .${S}__fab:disabled{ cursor:not-allowed; opacity:.55; }
2109
- .${S}__fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
2110
- .${S}__fab-icon svg,
2111
- .${S}__fab-icon img{ width:calc(var(--lattice-control-size) * 1.5); height:calc(var(--lattice-control-size) * 1.5); display:block; }
2112
- .${S}__fab-icon img{ object-fit:contain; }
2113
- .${S}__fab-text{ font-weight:600; }
2137
+ .${j}__fab[data-text='true']{ width:auto; padding:0 var(--lat-sd-pad); }
2138
+ .${j}__fab:disabled{ cursor:not-allowed; opacity:.55; }
2139
+ .${j}__fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
2140
+ .${j}__fab-icon svg,
2141
+ .${j}__fab-icon img{ width:calc(var(--lattice-control-size) * 1.5); height:calc(var(--lattice-control-size) * 1.5); display:block; }
2142
+ .${j}__fab-icon img{ object-fit:contain; }
2143
+ .${j}__fab-text{ font-weight:600; }
2114
2144
 
2115
2145
  /* The eight anchor positions, in logical properties so RTL mirrors them. */
2116
- .${S}__fab[data-position='top-left']{ inset-block-start:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
2117
- .${S}__fab[data-position='top-center']{ inset-block-start:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
2118
- .${S}__fab[data-position='top-right']{ inset-block-start:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
2119
- .${S}__fab[data-position='middle-left']{ inset-block-start:50%; inset-inline-start:var(--lat-sd-pad); transform:translateY(-50%); }
2120
- .${S}__fab[data-position='middle-right']{ inset-block-start:50%; inset-inline-end:var(--lat-sd-pad); transform:translateY(-50%); }
2121
- .${S}__fab[data-position='bottom-left']{ inset-block-end:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
2122
- .${S}__fab[data-position='bottom-center']{ inset-block-end:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
2123
- .${S}__fab[data-position='bottom-right']{ inset-block-end:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
2146
+ .${j}__fab[data-position='top-left']{ inset-block-start:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
2147
+ .${j}__fab[data-position='top-center']{ inset-block-start:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
2148
+ .${j}__fab[data-position='top-right']{ inset-block-start:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
2149
+ .${j}__fab[data-position='middle-left']{ inset-block-start:50%; inset-inline-start:var(--lat-sd-pad); transform:translateY(-50%); }
2150
+ .${j}__fab[data-position='middle-right']{ inset-block-start:50%; inset-inline-end:var(--lat-sd-pad); transform:translateY(-50%); }
2151
+ .${j}__fab[data-position='bottom-left']{ inset-block-end:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
2152
+ .${j}__fab[data-position='bottom-center']{ inset-block-end:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
2153
+ .${j}__fab[data-position='bottom-right']{ inset-block-end:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
2124
2154
 
2125
- .${S}[data-fixed='true'] .${S}__fab,
2126
- .${S}[data-fixed='true'] .${S}__menu,
2127
- .${S}[data-fixed='true'] .${S}__backdrop{ position:fixed; }
2155
+ .${j}[data-fixed='true'] .${j}__fab,
2156
+ .${j}[data-fixed='true'] .${j}__menu,
2157
+ .${j}[data-fixed='true'] .${j}__backdrop{ position:fixed; }
2128
2158
 
2129
- .${S}__backdrop{
2159
+ .${j}__backdrop{
2130
2160
  position:absolute; inset:0; z-index:1; pointer-events:auto; border:0; padding:0;
2131
2161
  background:color-mix(in srgb, var(--lattice-foreground) 12%, transparent);
2132
2162
  }
2133
- .${S}__backdrop[hidden]{ display:none; }
2163
+ .${j}__backdrop[hidden]{ display:none; }
2134
2164
 
2135
- .${S}__menu{
2165
+ .${j}__menu{
2136
2166
  position:absolute; z-index:3; display:flex; gap:var(--lat-sd-gap);
2137
2167
  pointer-events:none; box-sizing:border-box; padding:0; margin:0; list-style:none;
2138
2168
  }
2139
- .${S}__menu[hidden]{ display:none; }
2140
- .${S}__menu[data-mode='radial']{ left:0; top:0; width:0; height:0; overflow:visible; }
2169
+ .${j}__menu[hidden]{ display:none; }
2170
+ .${j}__menu[data-mode='radial']{ left:0; top:0; width:0; height:0; overflow:visible; }
2141
2171
 
2142
- .${S}__item{
2172
+ .${j}__item{
2143
2173
  position:relative; pointer-events:auto; box-sizing:border-box;
2144
2174
  display:inline-flex; align-items:center; justify-content:center; gap:calc(var(--lattice-space) / 2);
2145
2175
  height:var(--lat-sd-item-h); min-height:0; padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
@@ -2148,20 +2178,20 @@ ${r}
2148
2178
  font:inherit; line-height:1.2; cursor:pointer; user-select:none; white-space:nowrap;
2149
2179
  box-shadow:0 1px 4px color-mix(in srgb, var(--lattice-foreground) 18%, transparent);
2150
2180
  }
2151
- .${S}__item[data-icon-only='true']{ width:var(--lat-sd-item-h); padding:0; }
2152
- .${S}__item[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
2153
- .${S}__item-icon{ display:inline-flex; align-items:center; justify-content:center; }
2154
- .${S}__item-icon svg,
2155
- .${S}__item-icon img{ width:var(--lattice-control-size); height:var(--lattice-control-size); display:block; }
2156
- .${S}__item-icon img{ object-fit:contain; }
2157
- .${S}__menu[data-mode='radial'] .${S}__item{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
2181
+ .${j}__item[data-icon-only='true']{ width:var(--lat-sd-item-h); padding:0; }
2182
+ .${j}__item[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
2183
+ .${j}__item-icon{ display:inline-flex; align-items:center; justify-content:center; }
2184
+ .${j}__item-icon svg,
2185
+ .${j}__item-icon img{ width:var(--lattice-control-size); height:var(--lattice-control-size); display:block; }
2186
+ .${j}__item-icon img{ object-fit:contain; }
2187
+ .${j}__menu[data-mode='radial'] .${j}__item{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
2158
2188
 
2159
- .${S}__fab:focus-visible,
2160
- .${S}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
2189
+ .${j}__fab:focus-visible,
2190
+ .${j}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
2161
2191
 
2162
2192
  ${l}
2163
2193
  ${T}
2164
- ${d}
2165
- `.trim()}function t(l){const d=l&&l.documentElement;if(!d||d.getAttribute(x))return;d.setAttribute(x,"1");const T=l.createElement("style");T.textContent=_(),(l.head||l.body||d).appendChild(T)}function a(l){return n.includes(l)?l:"bottom-right"}function i(l){return c.includes(l)?l:"primary"}function f(l,d){return b.includes(d)?d:l.startsWith("top-")?"down":l.startsWith("bottom-")?"up":l==="middle-left"?"right":"left"}function v(l){switch(l){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 m(l,d){const T=d&&typeof d=="object"?d:{},U=v(l),z=typeof T.startAngle=="number"?T.startAngle:U.startAngle,L=typeof T.endAngle=="number"?T.endAngle:U.endAngle,y=typeof T.offset=="number"&&T.offset>0?T.offset:0;return{startAngle:z,endAngle:L,offset:y,defaulted:T.startAngle==null&&T.endAngle==null}}function g(l,d){const T=C[d];if(!T)return null;const U=l.createElementNS(h,"svg");U.setAttribute("viewBox",T.viewBox||"0 0 16 16"),U.setAttribute("aria-hidden","true"),U.setAttribute("focusable","false");const z=T.paint==="stroke";for(const L of T.paths||[]){const y=l.createElementNS(h,"path");y.setAttribute("d",L),z?(y.setAttribute("fill","none"),y.setAttribute("stroke","currentColor"),y.setAttribute("stroke-width","1.5"),y.setAttribute("stroke-linecap","round"),y.setAttribute("stroke-linejoin","round")):y.setAttribute("fill","currentColor"),U.appendChild(y)}return U}function H(l,d){if(l==null)return null;if(typeof l=="object"&&l.nodeType)return l;if(typeof l!="string"||l==="")return null;const T=l;if(/^(https?:)?\/\//i.test(T)||/^data:/i.test(T)){const U=d.createElement("img");return U.src=T,U.alt="",U}return g(d,T)}function u(l,d,T){const U=l&&l.defaultView;return U&&U.CustomEvent?new U.CustomEvent(d,{bubbles:!0,detail:T}):{type:d,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:T,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function s(l){return Array.isArray(l)?l.map(d=>{const T=d&&typeof d=="object"?d:{};return{id:T.id,icon:T.icon,text:T.text,disabled:T.disabled===!0,render:typeof T.render=="function"?T.render:null}}):[]}function o(l,d){const T="var(--lat-sd-size)",U="var(--lat-sd-gap)",z="var(--lat-sd-pad)";if(d==="up"||d==="down"){const M={flexDirection:"column"};return l.endsWith("-left")?(M.insetInlineStart=z,M.alignItems="flex-start"):l.endsWith("-right")?(M.insetInlineEnd=z,M.alignItems="flex-end"):(M.left="50%",M.transform="translateX(-50%)",M.alignItems="center"),d==="down"?M.top=`calc(${z} + ${T} + ${U})`:M.bottom=`calc(${z} + ${T} + ${U})`,M}const y={flexDirection:"row"};return l.startsWith("top-")?(y.top=z,y.alignItems="flex-start"):l.startsWith("bottom-")?(y.bottom=z,y.alignItems="flex-end"):(y.top="50%",y.transform="translateY(-50%)",y.alignItems="center"),d==="right"?y.insetInlineStart=`calc(${z} + ${T} + ${U})`:y.insetInlineEnd=`calc(${z} + ${T} + ${U})`,y}function r(l,d={}){const T=d.doc||l&&l.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;T&&t(T);const U=typeof d.t=="function"?d.t:q,z=d.inForm===!0,L=d.emitter||null,y=d.itemName!=null?String(d.itemName):"",M=d.formItem||null,W=a(d.position),B=d.fixed===!0,ne=d.openOnHover===!0,Ae=d.mode==="radial"?"radial":"linear",we=i(d.variant),ce=f(W,d.direction),A=d.modal===!0,oe=d.text!=null?String(d.text):"",te=d.openIcon!=null?d.openIcon:"plus",E=d.closeIcon!=null?d.closeIcon:"close",F=Ae==="radial"?m(W,d.radial):null;let w=d.disabled===!0,G=s(d.items);const Y=T.createElement("div");Y.className=S,Y.setAttribute("data-variant",we),Y.setAttribute("data-fixed",B?"true":"false"),z||Y.setAttribute("data-lattice-standalone","true");const ie=P("lat-speeddial-menu"),D=T.createElement("button");D.type="button",D.className=`${S}__fab`,D.setAttribute("data-position",W),D.setAttribute("aria-haspopup","menu"),D.setAttribute("aria-expanded","false"),D.setAttribute("aria-controls",ie),oe&&D.setAttribute("data-text","true");const J=T.createElement("span");if(J.className=`${S}__fab-icon`,J.setAttribute("aria-hidden","true"),D.appendChild(J),oe){const ge=T.createElement("span");ge.className=`${S}__fab-text`,ge.textContent=oe,D.appendChild(ge)}const ae=T.createElement("div");ae.className=`${S}__backdrop`,ae.hidden=!0;const V=T.createElement("div");V.className=`${S}__menu`,V.setAttribute("role","menu"),V.setAttribute("aria-label",U("form.speeddial.menu")),V.id=ie,V.setAttribute("data-mode",Ae),Ae==="linear"&&V.setAttribute("data-direction",ce),V.hidden=!0,Y.appendChild(ae),Y.appendChild(V),Y.appendChild(D);let se=!1;const X=[];let p=!1;const I=(ge,Re)=>{L?L.emit(ge,{name:y,item:M,...Re}):l.dispatchEvent(u(T,ge,Re))},Q=()=>oe||U(se?"form.speeddial.close":"form.speeddial.open"),re=()=>{for(;J.firstChild;)J.removeChild(J.firstChild);const ge=H(se?E:te,T);ge&&J.appendChild(ge)},me=(ge,Re)=>{const Te=T.createElement("button");Te.type="button",Te.className=`${S}__item`,Te.setAttribute("role","menuitem"),Te.setAttribute("tabindex","-1"),Te.dataset.index=String(Re);const Ge=ge.text!=null&&String(ge.text)!==""?String(ge.text):ge.id!=null?String(ge.id):"";Ge&&Te.setAttribute("aria-label",Ge),ge.disabled&&Te.setAttribute("aria-disabled","true");const Ke=H(ge.icon,T),We=ge.text!=null?String(ge.text):"";if(typeof ge.render=="function"){const he=ge.render(ge,Re);he&&typeof he=="object"&&he.nodeType?Te.appendChild(he):Te.textContent=he!=null?String(he):""}else{if(Ke){const he=T.createElement("span");he.className=`${S}__item-icon`,he.setAttribute("aria-hidden","true"),he.appendChild(Ke),Te.appendChild(he)}if(We!==""){const he=T.createElement("span");he.className=`${S}__item-text`,he.textContent=We,Te.appendChild(he)}}Te.setAttribute("data-icon-only",Ke!=null&&We===""?"true":"false"),Te.setAttribute("data-text-only",Ke==null&&We!==""?"true":"false");const fe=he=>{he.stopPropagation(),!(ge.disabled||w)&&(I("itemClick",{item:ge,index:Re}),Se(!1),D.focus())};Te.addEventListener("click",fe),X.push(()=>Te.removeEventListener("click",fe));const Me=he=>{he.key==="Escape"?(he.preventDefault(),he.stopPropagation(),Se(!1),D.focus()):he.key==="ArrowDown"||he.key==="ArrowRight"?(he.preventDefault(),je(Re,1)):(he.key==="ArrowUp"||he.key==="ArrowLeft")&&(he.preventDefault(),je(Re,-1))};return Te.addEventListener("keydown",Me),X.push(()=>Te.removeEventListener("keydown",Me)),Te};let be=[];const ke=()=>{for(;V.firstChild;)V.removeChild(V.firstChild);be=G.map((ge,Re)=>me(ge,Re));for(const ge of be)V.appendChild(ge);re()},Le=()=>{if(Ae!=="radial"||!F)return;const ge=D.getBoundingClientRect(),Re=B?0:Y.getBoundingClientRect().left,Te=B?0:Y.getBoundingClientRect().top,Ge=ge.left+ge.width/2-Re,Ke=ge.top+ge.height/2-Te,We=F.offset||Math.round(ge.width/2+28);let fe=F.startAngle,Me=F.endAngle;if(F.defaulted&&getComputedStyle(Y).direction==="rtl"){const $e=180-Me;Me=180-fe,fe=$e}const he=be.length;be.forEach(($e,ot)=>{const Qe=(he<=1?(fe+Me)/2:fe+(Me-fe)*(ot/(he-1)))*Math.PI/180;$e.style.left=`${Math.round(Ge+We*Math.cos(Qe))}px`,$e.style.top=`${Math.round(Ke-We*Math.sin(Qe))}px`})},Se=(ge,Re={})=>{p||w||se===ge||(se=ge,D.setAttribute("aria-expanded",se?"true":"false"),D.setAttribute("aria-label",Q()),V.hidden=!se,A&&(ae.hidden=!se),re(),se?(I("open",{}),Le(),Re.focusItems!==!1&&je(-1,1)):I("close",{}))},je=(ge,Re)=>{const Te=be.length;if(Te===0)return;let Ge=ge===-1?Re>0?0:Te-1:(ge+Re+Te)%Te;for(let Ke=0;Ke<Te;Ke+=1){if(!G[Ge].disabled){be[Ge].focus();return}Ge=(Ge+Re+Te)%Te}},O=()=>{Se(!0,{focusItems:!1})},ee=()=>{se&&(Se(!1),D.focus())},de=()=>{Se(!se,{focusItems:!1})};if(Ae==="linear"){const ge=o(W,ce);for(const Re of Object.keys(ge))V.style[Re]=ge[Re]}const K=()=>{w||de()};D.addEventListener("click",K),X.push(()=>D.removeEventListener("click",K));const pe=()=>{ne&&!w&&Se(!0,{focusItems:!1})};D.addEventListener("pointerenter",pe),X.push(()=>D.removeEventListener("pointerenter",pe));const Ce=()=>{ne&&se&&Se(!1)};Y.addEventListener("pointerleave",Ce),X.push(()=>Y.removeEventListener("pointerleave",Ce));const ye=ge=>{ge.stopPropagation(),ee()};ae.addEventListener("click",ye),X.push(()=>ae.removeEventListener("click",ye));const ve=ge=>{if(!se)return;const Re=ge.target;Re&&Y.contains(Re)||ee()};T.addEventListener("pointerdown",ve,!0),X.push(()=>T.removeEventListener("pointerdown",ve,!0));const Ie=ge=>{!se||ge.key!=="Escape"||(ge.preventDefault(),ee())};T.addEventListener("keydown",Ie,!0),X.push(()=>T.removeEventListener("keydown",Ie,!0));const He=ge=>{ge.key==="Escape"?se&&(ge.preventDefault(),ge.stopPropagation(),ee()):ge.key==="ArrowDown"||ge.key==="ArrowRight"?(ge.preventDefault(),Se(!0),je(-1,1)):(ge.key==="ArrowUp"||ge.key==="ArrowLeft")&&(ge.preventDefault(),Se(!0),je(-1,-1))};D.addEventListener("keydown",He),X.push(()=>D.removeEventListener("keydown",He));const Ee=ge=>{w=ge===!0,D.disabled=w,D.setAttribute("aria-disabled",w?"true":"false"),w&&se&&Se(!1)},De={el:Y,fab:D,menu:V,open:O,close:ee,toggle:de,setItems(ge){G=s(ge),ke()},setDisabled:Ee,destroy(){p=!0;for(const ge of X.splice(0))ge();for(;Y.firstChild;)Y.removeChild(Y.firstChild);Y.parentNode&&Y.parentNode.removeChild(Y)}};return Ee(w),ke(),l.appendChild(Y),l.__latSpeedDial=De,De}R("speeddial",{kind:"button",action:!0,build(l,d){const T=l.props||{},U=d.doc.createElement("div"),z=r(U,{items:T.speedDialItems||T.items,position:T.position,fixed:T.fixed,openOnHover:T.openOnHover,direction:T.direction,mode:l.mode,radial:T.radial,modal:T.modal,openIcon:T.openIcon,closeIcon:T.closeIcon,text:T.text!=null?T.text:l.label,variant:T.variant,disabled:l.disabled,t:d.t,doc:d.doc,inForm:!0,emitter:d.emitter,itemName:l.name,formItem:l});return d.disposers.push(()=>z.destroy()),U},read(){return null},write(){},state(l,d){const T=l&&l.__latSpeedDial;T&&T.setDisabled(d.disabled===!0)}})}),Ne("packages/modules/form/controls/multipart-upload.js",function(N,Z){"use strict";Object.defineProperty(N,"uploadMultipart",{enumerable:!0,get:function(){return e}});function e(R,$,q={}){return new Promise((k,P)=>{const j=new XMLHttpRequest,C=new FormData,S=$.fieldName||"file";if($.params)for(const[x,h]of Object.entries($.params))C.append(x,String(h));if(C.append(S,R,R.name),j.open("POST",$.target,!0),$.headers)for(const[x,h]of Object.entries($.headers))j.setRequestHeader(x,h);if(j.upload.addEventListener("progress",x=>{q.onProgress&&x.lengthComputable&&q.onProgress(Math.round(x.loaded/x.total*100))}),j.addEventListener("load",()=>{if(j.status>=200&&j.status<300){let x=j.responseText;try{x=JSON.parse(j.responseText)}catch{}k(x)}else P(new Error(`upload failed with status ${j.status}`))}),j.addEventListener("error",()=>P(new Error("upload failed"))),j.addEventListener("abort",()=>P(new Error("upload aborted"))),q.signal){if(q.signal.aborted){j.abort();return}q.signal.addEventListener("abort",()=>j.abort())}j.send(C)})}}),Ne("packages/modules/form/controls/avatar.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,$=Z("packages/modules/form/controls/field-icon.js"),q=$.makeFieldIcon,k=$.injectFieldIconStyles,P=Z("packages/modules/form/controls/file.js"),j=P.accepts,C=P.formatSize,x=Z("packages/modules/form/controls/multipart-upload.js").uploadMultipart,h=Object.freeze({small:40,medium:64,large:96}),n=Object.freeze({photo:"M3 4.5h2l1-1.5h4l1 1.5h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM8 7a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"});function c(f){return f}function b(f,v){const m="http://www.w3.org/2000/svg",g=f.createElementNS(m,"svg");g.setAttribute("viewBox","0 0 16 16"),g.setAttribute("focusable","false"),g.setAttribute("aria-hidden","true");const H=f.createElementNS(m,"path");return H.setAttribute("d",v),H.setAttribute("fill","currentColor"),g.appendChild(H),g}function _(f){return typeof f=="number"&&Number.isFinite(f)&&f>0?f:typeof f=="string"&&h[f]?h[f]:h.medium}function t(f,v){const m=v&&v.defaultView,g=m&&m.Event,H=g?new g("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};f.dispatchEvent(H)}function a(f){if(!f||typeof f!="object")return null;const v=f;return v.src==null||v.src===""?null:v}function i(f){return new Promise((v,m)=>{const g=new FileReader;g.onload=()=>v(String(g.result)),g.onerror=()=>m(g.error||new Error("could not read the file")),g.readAsDataURL(f)})}R("avatar",{kind:"field",build(f,v){const m=v.doc,g=v.t||c;k(m);const H=f.props||{},u=Array.isArray(H.accept)&&H.accept.length?H.accept.map(String):["image/*"],s=Number(H.maxSize)||0,o=m.createElement("div");o.className="lat-form__avatar";const r={value:a(f.value),rejectedMessage:null,accept:u,maxSize:s,size:_(H.size),circle:H.circle===!0,alt:H.alt!=null?String(H.alt):"",preview:H.preview!=null&&H.preview!==""?String(H.preview):null,icon:H.icon,placeholder:f.placeholder!=null&&f.placeholder!==""?String(f.placeholder):g("form.avatar.placeholder"),removeIcon:H.removeIcon!==!1,upload:H.upload&&typeof H.upload=="object"?H.upload:null,disabled:f.disabled===!0,readOnly:f.readOnly===!0,label:f.label!=null&&f.label!==""?String(f.label):null};o.__latAvatar=r;const l=m.createElement("input");l.type="file",l.className="lat-form__avatar-input",l.tabIndex=-1,l.setAttribute("aria-hidden","true"),u.length&&(l.accept=u.join(",")),o.appendChild(l);const d=m.createElement("button");d.type="button",d.className="lat-form__avatar-picture",o.appendChild(d);const T=m.createElement("button");T.type="button",T.className="lat-form__avatar-remove",T.setAttribute("aria-label",g("form.avatar.remove")),T.title=g("form.avatar.remove"),T.appendChild(q(m,"close")||b(m,n.photo)),o.appendChild(T);const U=m.createElement("span");return U.className="lat-form__avatar-status",o.appendChild(U),o.style.setProperty("--lat-avatar-size",`${r.size}px`),o.__latPaint=()=>{o.style.setProperty("--lat-avatar-size",`${r.size}px`),d.classList.toggle("lat-form__avatar-picture--circle",r.circle);const z=r.disabled||r.readOnly;d.disabled=z,d.tabIndex=z?-1:0,d.setAttribute("aria-label",r.label||g("form.avatar.choose")),d.textContent="";const L=r.value&&r.value.src?r.value.src:null;if(L){const M=m.createElement("img");M.className="lat-form__avatar-img",M.src=L,M.alt=r.alt,d.appendChild(M)}else if(r.preview){const M=m.createElement("img");M.className="lat-form__avatar-img",M.src=r.preview,M.alt=r.alt,d.appendChild(M)}else if(r.icon!=null&&r.icon!==!1){if(typeof r.icon=="object"&&r.icon.nodeType)d.appendChild(r.icon);else if(typeof r.icon=="string"){const M=m.createElement("img");M.className="lat-form__avatar-img",M.src=r.icon,M.alt=r.alt,d.appendChild(M)}}else{const M=m.createElement("span");M.className="lat-form__avatar-placeholder",M.appendChild(b(m,n.photo));const W=m.createElement("span");W.className="lat-form__avatar-placeholder-text",W.textContent=r.placeholder,M.appendChild(W),d.appendChild(M)}const y=!!(r.value&&r.value.src);T.hidden=!y||!r.removeIcon||r.disabled||r.readOnly,T.disabled=r.disabled||r.readOnly,U.textContent="",U.className="lat-form__avatar-status",r.value&&r.value.status==="uploading"?(U.classList.add("lat-form__avatar-status--uploading"),U.textContent=`${Math.round(r.value.progress||0)}%`):r.value&&r.value.status==="failed"&&(U.classList.add("lat-form__avatar-status--failed"),U.textContent=r.value.message||g("form.avatar.uploadFailed"))},o.__latStartUpload=()=>{const z=r.upload,L=r.value;!z||!L||!L.file||z.autosend===!1||(L.status="uploading",L.progress=0,o.__latPaint(),x(L.file,z,{onProgress(y){r.value===L&&(L.progress=y,o.__latPaint())}}).then(y=>{r.value===L&&(L.status="done",L.progress=100,z.updateFromResponse!==!1&&y&&typeof y=="object"&&(y.src!=null&&(L.src=String(y.src)),y.id!=null&&(L.id=y.id)),o.__latPaint(),t(o,m))},y=>{r.value===L&&(L.status="failed",L.message=y&&y.message?String(y.message):g("form.avatar.uploadFailed"),o.__latPaint(),t(o,m))}))},o.__latAdmit=z=>{if(!(!z||r.disabled||r.readOnly)){if(r.maxSize&&z.size>r.maxSize){r.rejectedMessage=g("form.avatar.rejected.size",{size:C(r.maxSize)});return}if(!j(z,r.accept)){r.rejectedMessage=g("form.avatar.rejected.type");return}r.rejectedMessage=null,i(z).then(L=>{r.value={src:L,file:z,name:z.name,size:z.size,status:"pending"},o.__latPaint(),t(o,m),o.__latStartUpload()})}},o.__latRemove=()=>{r.disabled||r.readOnly||(r.value=null,o.__latPaint(),t(o,m))},l.addEventListener("change",()=>{const z=l.files&&l.files[0];o.__latAdmit(z),l.value=""}),d.addEventListener("click",()=>{r.disabled||r.readOnly||l.click()}),d.addEventListener("keydown",z=>{r.disabled||r.readOnly||(z.key==="Enter"||z.key===" "||z.key==="Spacebar")&&(z.preventDefault(),l.click())}),T.addEventListener("click",z=>{z.stopPropagation(),o.__latRemove()}),["dragenter","dragover"].forEach(z=>d.addEventListener(z,L=>{r.disabled||r.readOnly||(L.preventDefault(),d.classList.add("lat-form__avatar-picture--dragover"))})),d.addEventListener("dragleave",()=>{d.classList.remove("lat-form__avatar-picture--dragover")}),d.addEventListener("drop",z=>{if(z.preventDefault(),d.classList.remove("lat-form__avatar-picture--dragover"),r.disabled||r.readOnly)return;const L=z.dataTransfer&&z.dataTransfer.files&&z.dataTransfer.files[0];o.__latAdmit(L)}),o.__latPaint(),r.value&&r.value.file&&r.value.status==="pending"&&o.__latStartUpload(),o},read(f){return f.__latAvatar?f.__latAvatar.value:null},write(f,v){const m=f.__latAvatar;m&&(m.value=a(v),f.__latPaint&&f.__latPaint())},state(f,v){const m=f.__latAvatar;m&&(m.disabled=v.disabled===!0,m.readOnly=v.readOnly===!0,m.disabled?f.setAttribute("aria-disabled","true"):f.removeAttribute("aria-disabled"),m.readOnly?f.setAttribute("aria-readonly","true"):f.removeAttribute("aria-readonly"),f.__latPaint&&f.__latPaint())},validate(f,v,m){const g=f.__latAvatar;return g&&g.rejectedMessage?g.rejectedMessage:null},focus(f){const v=f.querySelector(".lat-form__avatar-picture");v&&v.focus()}})}),Ne("packages/modules/form/controls/togglegroup.js",function(N,Z){"use strict";const R=Z("packages/modules/form/controls/registry.js").registerControl,q=Z("packages/modules/form/controls/button.js").buildIcon,k="lat-form__togglegroup",P="lat-form__togglegroup-btn";function j(x,h){const n=x!==null&&typeof x=="object"?x:{},c=n.id!=null?String(n.id):n.value!=null?String(n.value):String(h),b=n.text!=null?String(n.text):c;return{id:c,text:b,offText:n.offText!=null?String(n.offText):b,icon:n.icon!=null?n.icon:null,offIcon:n.offIcon!=null?n.offIcon:n.icon,selected:n.selected===!0,disabled:n.disabled===!0,hidden:n.hidden===!0,full:n.full===!0}}function C(x,h){const n=h&&h.defaultView,c=n&&n.Event,b=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}};x.dispatchEvent(b)}function S(x){return typeof x=="number"&&Number.isFinite(x)&&x>=0?x:0}R("togglegroup",{kind:"field",build(x,h){const n=h.doc,c=x.props||{},b=c.multiselect===!0,_=c.full===!0,t=n.createElement("div");t.className=k,t.setAttribute("role","group"),t.setAttribute("aria-label",x.label!=null&&x.label!==""?String(x.label):h.t("form.togglegroup")),t.style.setProperty("--lat-form-gap",`${S(c.gap)}px`),_&&t.setAttribute("data-full","true");const a=(Array.isArray(x.options)?x.options:[]).map(j).filter(s=>!s.hidden),i=[],f={},v={doc:n,options:a,buttons:i,pressed:f,multiselect:b,disabled:x.disabled===!0,readOnly:x.readOnly===!0};t.__latToggleGroup=v;for(const s of a){const o=n.createElement("button");o.type="button",o.className=P,o.setAttribute("data-index",String(i.length)),s.full&&o.setAttribute("data-full","true"),o.disabled=s.disabled||v.disabled,o.__tg={opt:s,pressed:!1},t.appendChild(o),i.push(o),f[s.id]=!1}const m=s=>{const o=s.__tg,r=o.opt,l=o.pressed;s.setAttribute("aria-pressed",l?"true":"false"),s.removeAttribute("aria-label"),s.textContent="";const d=q(l?r.icon:r.offIcon,n);d&&s.appendChild(d);const T=l?r.text:r.offText;if(T!==""){const U=n.createElement("span");U.className=`${P}-label`,U.textContent=T,s.appendChild(U)}else d&&s.setAttribute("aria-label",r.id)},g=()=>{for(const s of i)s.__tg.pressed=f[s.__tg.opt.id]===!0,m(s)},H=s=>{if(s.disabled||v.disabled||v.readOnly)return!1;if(b)f[s.id]=!f[s.id];else{if(f[s.id])return!1;for(const o of a)f[o.id]=o.id===s.id}return g(),!0},u=x.value!=null&&typeof x.value=="object"?x.value:{};for(const s of a)f[s.id]=u[s.id]===!0;if(b)for(const s of a)f[s.id]=f[s.id]||s.selected===!0;else{let s=a.find(o=>f[o.id]);s||(s=a.find(o=>o.selected)),s||(s=a[0]);for(const o of a)f[o.id]=o.id===(s&&s.id)}return g(),t.addEventListener("click",s=>{const o=s.target&&s.target.closest?s.target.closest(`.${P}`):null;if(!o||!t.contains(o)||!o.__tg)return;const r=o.__tg.opt;H(r)&&(t.__latChangeDetail={id:r.id,pressed:f[r.id]},C(t,n))}),t.__latKey=s=>{if(s.key!=="ArrowLeft"&&s.key!=="ArrowRight")return;const o=i.filter(T=>!T.disabled);if(!o.length)return;const r=o.indexOf(n.activeElement),l=s.key==="ArrowRight"?1:-1,d=r===-1?l===1?0:o.length-1:r+l;d<0||d>=o.length||(s.preventDefault(),o[d].focus())},t.addEventListener("keydown",t.__latKey),t},read(x){const h=x&&x.__latToggleGroup,n={};if(!h)return n;for(const c of h.options)n[c.id]=h.pressed[c.id]===!0;return n},write(x,h){const n=x&&x.__latToggleGroup;if(!n)return;const c=h!=null&&typeof h=="object"&&!Array.isArray(h)?h:{};for(const _ of n.options)n.pressed[_.id]=c[_.id]===!0;if(!n.multiselect){const _=n.options.find(t=>n.pressed[t.id]);for(const t of n.options)n.pressed[t.id]=t.id===(_?_.id:n.options[0]&&n.options[0].id)}for(const _ of n.buttons)_.__tg.pressed=n.pressed[_.__tg.opt.id]===!0;const b=n.doc;for(const _ of n.buttons){const t=_.__tg,a=t.opt,i=t.pressed;_.setAttribute("aria-pressed",i?"true":"false"),_.removeAttribute("aria-label"),_.textContent="";const f=q(i?a.icon:a.offIcon,b);f&&_.appendChild(f);const v=i?a.text:a.offText;if(v!==""){const m=b.createElement("span");m.className=`${P}-label`,m.textContent=v,_.appendChild(m)}else f&&_.setAttribute("aria-label",a.id)}},state(x,h){const n=x&&x.__latToggleGroup;if(n){n.disabled=h.disabled===!0,n.readOnly=h.readOnly===!0,n.readOnly?x.setAttribute("aria-readonly","true"):x.removeAttribute("aria-readonly"),n.disabled?x.setAttribute("aria-disabled","true"):x.removeAttribute("aria-disabled");for(const c of n.buttons)c.disabled=n.disabled||c.__tg.opt.disabled}},focus(x){const h=x&&x.__latToggleGroup,n=h&&h.buttons.find(c=>!c.disabled);n&&typeof n.focus=="function"&&n.focus()}})}),Ne("packages/modules/form/controls/index.js",function(N,Z){"use strict";const e=Z("packages/modules/form/controls/input.js"),R=Z("packages/modules/form/controls/number.js"),$=Z("packages/modules/form/controls/textarea.js"),q=Z("packages/modules/form/controls/checkbox.js"),k=Z("packages/modules/form/controls/button.js"),P=Z("packages/modules/form/controls/buttons.js"),j=Z("packages/modules/form/controls/text.js"),C=Z("packages/modules/form/controls/combo.js"),S=Z("packages/modules/form/controls/select.js"),x=Z("packages/modules/form/controls/listbox.js"),h=Z("packages/modules/form/controls/radiogroup.js"),n=Z("packages/modules/form/controls/checkboxgroup.js"),c=Z("packages/modules/form/controls/toggle.js"),b=Z("packages/modules/form/controls/datepicker.js"),_=Z("packages/modules/form/controls/time.js"),t=Z("packages/modules/form/controls/daterange.js"),a=Z("packages/modules/form/controls/file.js"),i=Z("packages/modules/form/controls/richtext.js"),f=Z("packages/modules/form/controls/rating.js"),v=Z("packages/modules/form/controls/stage.js"),m=Z("packages/modules/form/controls/chips.js"),g=Z("packages/modules/form/controls/otp.js"),H=Z("packages/modules/form/controls/color.js"),u=Z("packages/modules/form/controls/barcode.js"),s=Z("packages/modules/form/controls/speeddial.js"),o=Z("packages/modules/form/controls/container.js"),r=Z("packages/modules/form/controls/avatar.js"),l=Z("packages/modules/form/controls/togglegroup.js")}),Ne("packages/modules/form/create.js",function(N,Z){"use strict";Object.defineProperty(N,"createForm",{enumerable:!0,get:function(){return y}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return M}});const e=Z("packages/modules/form/styles.js"),R=e.NS,$=e.injectStyles,q=Z("packages/modules/form/model.js"),k=q.resolveConfig,P=q.DENSITIES,j=q.cssSize,C=Z("packages/modules/form/view.js"),S=C.markValidation,x=C.mount,h=C.runValidation,n=C.validateItem,c=C.wizardBack,b=C.wizardGoTo,_=C.wizardNext,t=Z("packages/modules/form/emitter.js"),a=t.Emitter,i=t.FORM_EVENTS,v=Z("packages/modules/form/messages.js").createTranslator,m=Z("packages/modules/form/bind.js"),g=m.resolveBind,H=m.applyBinding,s=Z("packages/modules/form/rules.js").applyRules,r=Z("packages/modules/form/state.js").syncRecordState,l=Z("packages/modules/form/controls/container.js"),d=l.attachToContainer,T=l.attachHtmlToContainer,U=l.getContainerWidget,z=Z("packages/modules/form/controls/index.js");function L(W){if(Array.isArray(W))return W.map(L);if(W==null||typeof W!="object"||typeof W.nodeType=="number"||Object.getPrototypeOf(W)!==Object.prototype)return W;const B=W.type==="buttons"?"buttons":W.type==="speeddial"?"speedDialItems":null,ne=B!=null&&Array.isArray(W.items),Ae={};for(const we of Object.keys(W))ne&&we==="items"||(Ae[we]=L(W[we]));return ne&&(Ae[B]=W.items.map(L)),Ae}function y(W,B={}){const ne=W&&W.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,Ae=g(B);let we=B;if(Ae){if(we={...B},we.density===void 0){const G=Ae.density();G!=null&&(we.density=G)}if(!(Array.isArray(we.rows)&&we.rows.length||Array.isArray(we.cols)&&we.cols.length)){const G=Ae.items();G.length&&(we.rows=[{items:G}])}}const ce=k(L(we)),A={el:W||null,doc:ne,model:ce,config:ce,items:new Map,order:[],emitter:new a,t:v(ce.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},oe=w=>(w.facade||(w.facade={el:w.el,item:w.item,name:w.item.name,getValue(){return w.value},setValue(G){return w.def.write(w.control,G),w.value=w.def.read(w.control),w.item.value=w.value,s(A),w.facade},show(){return w.hidden=!1,w.el.hidden=!1,w.facade},hide(){return w.hidden=!0,w.el.hidden=!0,w.facade},isVisible(){return!(w.hidden||w.ruleHidden)},disable(){return w.item.disabled=!0,r(w),w.facade},enable(){return w.item.disabled=!1,r(w),w.facade},focus(){return typeof w.def.focus=="function"?w.def.focus(w.control):typeof w.control.focus=="function"&&w.control.focus(),w.facade},blur(){return typeof w.def.blur=="function"?w.def.blur(w.control):typeof w.control.blur=="function"&&w.control.blur(),w.facade},validate(){return n(A,w)},setLoading(G){return typeof w.def.setLoading=="function"&&w.def.setLoading(w.control,G===!0),w.facade},setOptions(G){const Y=w.control&&(w.control.__combo||w.control.__select);return Y&&typeof Y.setOptions=="function"&&(Y.setOptions(G),w.item.options=G),w.facade},reload(){const G=w.control&&(w.control.__combo||w.control.__select);return G&&typeof G.reload=="function"&&G.reload(),w.facade}},w.def.kind==="container"&&(w.facade.attach=(G,Y)=>(d(w.control,G,Y),w.facade),w.facade.attachHTML=G=>(T(A.doc,w.control,G),w.facade),w.facade.getWidget=()=>U(w.control))),w.facade);W&&ne&&$(ne);const te=W&&typeof W.style.cssText=="string"?W.style.cssText:"",E=new Set(["field","toggle","display"]),F={el:W||null,config:ce,getItem(w){const G=A.items.get(String(w));return G?oe(G):void 0},getValue(){const w={};for(const G of A.order)G.item.name!=null&&E.has(G.def.kind)&&(w[G.item.name]=G.value);return w},setValue(w){if(w==null||typeof w!="object")return F;for(const G of Object.keys(w)){const Y=A.items.get(G);Y&&oe(Y).setValue(w[G])}return F},clear(){for(const w of A.order)if(w.item.name!=null)if(w.def.kind==="field"){const G=w.item.props&&w.item.props.multiple===!0,Y=w.item.type==="togglegroup"?{}:w.item.type==="chips"?G?[]:null:w.item.type==="number"||w.item.type==="radiogroup"||w.item.type==="datepicker"||w.item.type==="stage"||w.item.type==="combo"&&!G?null:w.item.type==="rating"?0:w.item.type==="file"||w.item.type==="checkboxgroup"||(w.item.type==="select"||w.item.type==="combo")&&G?[]:"";w.value=Y,w.item.value=Y,w.def.write(w.control,Y)}else w.def.kind==="toggle"&&(w.value=!1,w.item.value=!1,w.def.write(w.control,!1));return s(A),F},validate(){const w=[];let G=!0;for(const Y of A.order){if(Y.item.name==null||Y.def.kind!=="field"&&Y.def.kind!=="toggle"||Y.item.disabled===!0||Y.ruleHidden===!0||Y.hidden===!0||(typeof Y.def.reset=="function"&&Y.def.reset(Y.control,Y.item),Y.item.required!==!0&&Y.item.validation==null&&typeof Y.def.validate!="function"&&Y.ruleRequired!==!0))continue;const ie=h(A,Y);S(A,Y,ie),ie&&(G=!1,w.push({name:Y.item.name,rule:ie.code,message:ie.message}))}return A.emitter.emit("validated",{name:null,item:null,value:void 0,valid:G,failures:w}),G},forEach(w){for(const G of A.order)w(oe(G))},on(w,G){return w!=="*"&&!i.includes(w)?(console.warn(`lattice-form: "${w}" is not a form event and will never fire.`),()=>{}):A.emitter.on(w,G)},off(w,G){A.emitter.off(w,G)},setDensity(w){return P.includes(w)&&(ce.density=w,W&&W.setAttribute("data-density",w)),F},setReadOnly(w){for(const G of A.order)G.item.readOnly=w===!0,r(G);return F},setDisabled(w){for(const G of A.order)G.item.disabled=w===!0,r(G);return F},setSpacing(w){const G=w==null?null:j(w);return ce.spacing=G,W&&(G==null?W.style.removeProperty("--lattice-form-item-gap"):W.style.setProperty("--lattice-form-item-gap",G)),F},isDirty(w){return w==null?A.dirty.size>0:A.dirty.has(String(w))},isConflicted(w){return w==null?A.conflicts.size>0:A.conflicts.has(String(w))},save(){const w=A.bound;if(!w)return!1;if(A.dirty.size===0)return!0;const G={};for(const D of A.dirty){const J=F.getItem(D);J&&(G[D]=J.getValue())}const Y=w.save(G),ie=D=>{if(!D)return!1;for(const J of Object.keys(G))A.baseline[J]=G[J],A.dirty.delete(J),A.conflicts.delete(J);return!0};return Y&&typeof Y.then=="function"?Y.then(ie):ie(Y)},revert(){for(const w of A.dirty){if(!Object.hasOwn(A.baseline,w))continue;const G=A.items.get(w);G&&oe(G).setValue(A.baseline[w])}return A.dirty.clear(),A.conflicts.clear(),F},_bind(w){return H(A,F,w),F},_commit(w){for(const G of Object.keys(w||{}))A.baseline[G]=w[G],A.dirty.delete(G),A.conflicts.delete(G)},get steps(){return A.model.steps||[]},get activeStep(){return A.wizard?A.wizard.active:0},next(){return _(A)},back(){return c(A)},goToStep(w){return b(A,w)},__reapplyRules(){return s(A),F},destroy(){for(const G of A.disposers.splice(0))G();A.emitter.clear();const w=A.el;if(w){for(;w.firstChild;)w.removeChild(w.firstChild);w.classList.remove(R),w.removeAttribute("data-density"),w.removeAttribute("data-lattice-standalone"),w.style.cssText=te,w.__latticeForm===F&&(w.__latticeForm=null)}A.items.clear(),A.order.length=0,A.dirty.clear(),A.conflicts.clear(),A.baseline={},A.bound=null}};return W&&(W.__latticeForm=F),A.form=F,W&&ne&&x(A),Ae&&H(A,F,Ae),F}const M=y}),Ne("packages/modules/form/group.js",function(N,Z){"use strict";Object.defineProperty(N,"GROUP_EVENTS",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return a}});const R=Z("packages/modules/form/emitter.js").Emitter,q=Z("packages/modules/form/bind-router.js").routerBinding,k=Z("packages/modules/form/group-rules.js"),P=k.attachRuleResolver,j=k.detachRuleResolver,C=k.makeRuleResolver,S=k.reapplyMembers,x=Object.freeze(["change","validated"]),h=new Set;function n(i){const f={},v=i.getValue();for(const m of Object.keys(v))i.isDirty(m)===!0&&(f[m]=v[m]);return f}function c(i,f){h.has(i)||(h.add(i),console.warn("[lattice]",f))}const b=new WeakMap;function _(i,f){let v=b.get(i);if(!v){const m=i.destroy;v={original:m,watchers:new Set},b.set(i,v),i.destroy=function(){const H=b.get(i)||v;for(const u of[...H.watchers])u.detach(i);return m.call(i)}}v.watchers.add(f)}function t(i,f={}){const v=[],m=new Map,g=new Map,H=new R,u=f&&typeof f.bind=="object"&&f.bind.router!=null?f.bind:null,s=u?q(u):null,o=()=>{m.clear(),g.clear();for(const U of v){const z=Object.keys(U.form.getValue());for(const L of z)m.has(L)?c(`form.group.duplicate-field:${L}`,`form group: the field "${L}" is owned by more than one form; the first one added wins.`):m.set(L,U);U.id!=null&&!g.has(U.id)&&g.set(U.id,U)}},r=C({owners:m,byId:g,warnOnce:c}),l=U=>{const z=v.findIndex(M=>M.form===U);if(z===-1)return!1;const[L]=v.splice(z,1);for(const M of L.unsubs)M();o();const y=b.get(U);return y&&(y.watchers.delete(d),y.watchers.size===0&&(b.delete(U),U.destroy=y.original)),j(U),typeof U.__reapplyRules=="function"&&U.__reapplyRules(),S(v),!0},d={detach:l},T={get forms(){return v.map(U=>U.form)},add(U,z){if(!U||typeof U!="object"||typeof U.getValue!="function"||v.some(W=>W.form===U))return T;const L={form:U,id:z&&z.id,unsubs:[],lastFailures:[]};v.push(L),s&&typeof U._bind=="function"&&U._bind(s);const y=W=>{H.emit("change",{form:U,name:W.name,value:W.value}),S(v)},M=W=>{L.lastFailures=W.failures||[],H.emit("validated",{form:U,valid:W.valid})};return L.unsubs.push(U.on("change",y)),L.unsubs.push(U.on("validated",M)),_(U,d),o(),P(U,r),S(v),T},remove(U){return l(U),T},getValue(){const U={};for(const z of v)Object.assign(U,z.form.getValue());return f.transform&&typeof f.transform.get=="function"?f.transform.get(U):U},setValue(U){if(f.transform&&typeof f.transform.set=="function")f.transform.set(U);else if(U!=null&&typeof U=="object")for(const z of Object.keys(U)){const L=m.get(z);L&&L.form.setValue({[z]:U[z]})}return S(v),T},getItem(U){const z=m.get(String(U));return z?z.form.getItem(U):void 0},validate(){let U=!0;const z=[];for(const L of v){L.form.validate()===!1&&(U=!1);for(const M of L.lastFailures||[])z.push({form:L.form,name:M.name})}if(!U){const L=z.find(y=>y.name!=null);if(L){const y=L.form.getItem(L.name);y&&(y.focus(),y.el&&typeof y.el.scrollIntoView=="function"&&y.el.scrollIntoView({block:"nearest"}))}}return U},setReadOnly(U){for(const z of v)z.form.setReadOnly(U===!0);return T},setDisabled(U){for(const z of v)z.form.setDisabled(U===!0);return T},clear(){for(const U of v)U.form.clear();return T},reset(){for(const U of v)typeof U.form.revert=="function"&&U.form.revert();return T},save(){if(!s)return!1;const U=v.map(M=>({member:M,changes:n(M.form)})),z={};for(const M of U)Object.assign(z,M.changes);if(!Object.keys(z).length)return!0;const L=s.save(z),y=M=>{if(!M)return!1;for(const W of U)W.member.form&&typeof W.member.form._commit=="function"&&W.member.form._commit(W.changes);return!0};return L&&typeof L.then=="function"?L.then(y):y(L)},isDirty(){return v.some(U=>U.form.isDirty()===!0)},on(U,z){return U!=="*"&&!x.includes(U)?(console.warn(`lattice-form: "${U}" is not a form group event and will never fire.`),()=>{}):H.on(U,z)},off(U,z){H.off(U,z)},destroy(){for(;v.length;){const U=v[v.length-1].form;l(U)}H.clear()}};if(Array.isArray(i))for(const U of i)T.add(U);else i&&typeof i=="object"&&typeof i.getValue=="function"&&T.add(i);return T}const a=t}),Ne("packages/modules/form/enhance.js",function(N,Z){"use strict";Object.defineProperty(N,"itemForField",{enumerable:!0,get:function(){return C}}),Object.defineProperty(N,"configForForm",{enumerable:!0,get:function(){return S}}),Object.defineProperty(N,"enhanceForm",{enumerable:!0,get:function(){return x}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return h}});const R=Z("packages/modules/form/create.js").createForm,$=Object.freeze(["text","email","password","url"]);function q(n){const c=n&&n.type?String(n.type).toLowerCase():"";return c==="submit"||c==="image"||n&&n.tagName==="BUTTON"&&c!=="button"}function k(n){if(!n||!n.name)return!1;const c=n&&n.type?String(n.type).toLowerCase():"";return!(c==="submit"||c==="button"||c==="reset"||c==="image"||c==="hidden"||c==="file"||n.tagName==="BUTTON")}function P(n,c){if(typeof n.getAttribute=="function"){const b=n.getAttribute("data-label");if(b!=null&&b!=="")return b;const _=n.getAttribute("aria-label");if(_!=null&&_!=="")return _}if(n.id&&typeof c.querySelector=="function"){const b=c.querySelector(`label[for="${n.id}"]`);if(b&&b.textContent!=null){const _=String(b.textContent).trim();if(_)return _}}return String(n.name||"")}function j(n){return n.type==="checkbox"?n.checked===!0:n.value==null?"":n.value}function C(n,c){if(q(n)||!k(n))return null;const b=n.type?String(n.type).toLowerCase():"text",_={type:"input",name:n.name,label:P(n,c),value:j(n)};if(b==="number")_.type="number",n.min!=null&&n.min!==""&&(_.min=Number(n.min)),n.max!=null&&n.max!==""&&(_.max=Number(n.max)),n.step!=null&&n.step!==""&&(_.step=Number(n.step));else if(b==="checkbox")_.type="checkbox";else if(n.tagName==="TEXTAREA")_.type="textarea";else if($.includes(b))_.subtype=b,(b==="email"||b==="url")&&(_.validation=b);else return null;if(n.placeholder!=null&&n.placeholder!==""&&(_.placeholder=n.placeholder),n.required===!0&&(_.required=!0),n.disabled===!0&&(_.disabled=!0),n.readOnly===!0&&(_.readOnly=!0),typeof n.getAttribute=="function"){const t=n.getAttribute("data-validation")||n.getAttribute("data-rule");t&&(_.validation=t);const a=n.getAttribute("data-error-message");a&&(_.errorMessage=a);const i=n.getAttribute("data-help");i&&(_.helpMessage=i)}return _}function S(n,c){const b=n&&n.ownerDocument||(typeof document<"u"?document:null),_=[],t=n&&n.elements?n.elements:[];for(const a of t){const i=C(a,b);i&&_.push(i)}return{...c||{},rows:_}}function x(n,c){if(!n)return null;if(n.__latticeForm)return n.__latticeForm;const b=n.ownerDocument||(typeof document<"u"?document:null),_=[],t=n.elements?n.elements:[];for(const i of t)q(i)&&_.push(i);const a=R(n,S(n,c));n.__latticeForm=a;for(const i of _)i.parentNode!==n&&n.appendChild(i);return typeof n.addEventListener=="function"&&b&&n.addEventListener("submit",i=>{a.validate()||(i.preventDefault(),i.stopImmediatePropagation())},!0),a}const h=x}),Ne("packages/modules/form/index.js",function(N,Z){"use strict";Object.defineProperty(N,"registerControl",{enumerable:!0,get:function(){return h}}),Object.defineProperty(N,"createForm",{enumerable:!0,get:function(){return P}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return n}});const R=Z("packages/modules/form/styles.js").NS,q=Z("packages/modules/form/controls/registry.js").registerControl,P=Z("packages/modules/form/create.js").createForm,j=Z("packages/modules/form/controls/combo.js");Object.defineProperty(N,"createCombo",{enumerable:!0,get:function(){return j.createCombo}});const C=Z("packages/modules/form/controls/speeddial.js");Object.defineProperty(N,"createSpeedDial",{enumerable:!0,get:function(){return C.createSpeedDial}});const S=Z("packages/modules/form/group.js");Object.defineProperty(N,"createFormGroup",{enumerable:!0,get:function(){return S.createFormGroup}});const x=Z("packages/modules/form/enhance.js");Object.defineProperty(N,"enhanceForm",{enumerable:!0,get:function(){return x.enhanceForm}});function h(c,b){if(b===null||typeof b!="object"||typeof b.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const _=typeof b.getValue=="function"?b.getValue:()=>null,t=typeof b.setValue=="function"?b.setValue:()=>{};q(String(c),{kind:"field",custom:!0,validate:typeof b.validate=="function"?(a,i,f)=>b.validate(f,i,a):void 0,destroy:typeof b.destroy=="function"?a=>b.destroy(a):void 0,build(a,i){const f=i.doc.createElement("div");f.className=`${R}__custom`;const v={name:a.name,item:a,getValue(){return v._read?v._read():void 0},setValue(m){v._write&&v._write(m)},onChange(m){v._commit&&v._commit(m===void 0?_():m)},onInput(m){v._input&&v._input(m===void 0?_():m)}};return f.__latticeFormApi=v,b.create(f,a,v),t(f,a.value),f},read(a){return _(a)},write(a,i){t(a,i)},state(a,i){a.setAttribute("data-disabled",i.disabled===!0?"true":"false"),a.setAttribute("data-readonly",i.readOnly===!0?"true":"false")}})}const n=P});var zt=Gt("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=zt:typeof define=="function"&&define.amd?define(function(){return zt}):qt.LatticeGridForm=zt})(typeof globalThis<"u"?globalThis:this);
2194
+ ${f}
2195
+ `.trim()}function t(l){const f=l&&l.documentElement;if(!f||f.getAttribute(k))return;f.setAttribute(k,"1");const T=l.createElement("style");T.textContent=v(),(l.head||l.body||f).appendChild(T)}function a(l){return n.includes(l)?l:"bottom-right"}function s(l){return u.includes(l)?l:"primary"}function p(l,f){return b.includes(f)?f:l.startsWith("top-")?"down":l.startsWith("bottom-")?"up":l==="middle-left"?"right":"left"}function y(l){switch(l){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 m(l,f){const T=f&&typeof f=="object"?f:{},V=y(l),D=typeof T.startAngle=="number"?T.startAngle:V.startAngle,M=typeof T.endAngle=="number"?T.endAngle:V.endAngle,w=typeof T.offset=="number"&&T.offset>0?T.offset:0;return{startAngle:D,endAngle:M,offset:w,defaulted:T.startAngle==null&&T.endAngle==null}}function h(l,f){const T=A[f];if(!T)return null;const V=l.createElementNS(g,"svg");V.setAttribute("viewBox",T.viewBox||"0 0 16 16"),V.setAttribute("aria-hidden","true"),V.setAttribute("focusable","false");const D=T.paint==="stroke";for(const M of T.paths||[]){const w=l.createElementNS(g,"path");w.setAttribute("d",M),D?(w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","1.5"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round")):w.setAttribute("fill","currentColor"),V.appendChild(w)}return V}function R(l,f){if(l==null)return null;if(typeof l=="object"&&l.nodeType)return l;if(typeof l!="string"||l==="")return null;const T=l;if(/^(https?:)?\/\//i.test(T)||/^data:/i.test(T)){const V=f.createElement("img");return V.src=T,V.alt="",V}return h(f,T)}function d(l,f,T){const V=l&&l.defaultView;return V&&V.CustomEvent?new V.CustomEvent(f,{bubbles:!0,detail:T}):{type:f,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:T,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function c(l){return Array.isArray(l)?l.map(f=>{const T=f&&typeof f=="object"?f:{};return{id:T.id,icon:T.icon,text:T.text,disabled:T.disabled===!0,render:typeof T.render=="function"?T.render:null}}):[]}function i(l,f){const T="var(--lat-sd-size)",V="var(--lat-sd-gap)",D="var(--lat-sd-pad)";if(f==="up"||f==="down"){const I={flexDirection:"column"};return l.endsWith("-left")?(I.insetInlineStart=D,I.alignItems="flex-start"):l.endsWith("-right")?(I.insetInlineEnd=D,I.alignItems="flex-end"):(I.left="50%",I.transform="translateX(-50%)",I.alignItems="center"),f==="down"?I.top=`calc(${D} + ${T} + ${V})`:I.bottom=`calc(${D} + ${T} + ${V})`,I}const w={flexDirection:"row"};return l.startsWith("top-")?(w.top=D,w.alignItems="flex-start"):l.startsWith("bottom-")?(w.bottom=D,w.alignItems="flex-end"):(w.top="50%",w.transform="translateY(-50%)",w.alignItems="center"),f==="right"?w.insetInlineStart=`calc(${D} + ${T} + ${V})`:w.insetInlineEnd=`calc(${D} + ${T} + ${V})`,w}function r(l,f={}){const T=f.doc||l&&l.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;T&&t(T);const V=typeof f.t=="function"?f.t:X,D=f.inForm===!0,M=f.emitter||null,w=f.itemName!=null?String(f.itemName):"",I=f.formItem||null,W=a(f.position),G=f.fixed===!0,ne=f.openOnHover===!0,be=f.mode==="radial"?"radial":"linear",Ae=s(f.variant),le=p(W,f.direction),$=f.modal===!0,ie=f.text!=null?String(f.text):"",q=f.openIcon!=null?f.openIcon:"plus",E=f.closeIcon!=null?f.closeIcon:"close",H=be==="radial"?m(W,f.radial):null;let x=f.disabled===!0,U=c(f.items);const ee=T.createElement("div");ee.className=j,ee.setAttribute("data-variant",Ae),ee.setAttribute("data-fixed",G?"true":"false"),D||ee.setAttribute("data-lattice-standalone","true");const te=z("lat-speeddial-menu"),ue=T.createElement("button");ue.type="button",ue.className=`${j}__fab`,ue.setAttribute("data-position",W),ue.setAttribute("aria-haspopup","menu"),ue.setAttribute("aria-expanded","false"),ue.setAttribute("aria-controls",te),ie&&ue.setAttribute("data-text","true");const ae=T.createElement("span");if(ae.className=`${j}__fab-icon`,ae.setAttribute("aria-hidden","true"),ue.appendChild(ae),ie){const he=T.createElement("span");he.className=`${j}__fab-text`,he.textContent=ie,ue.appendChild(he)}const de=T.createElement("div");de.className=`${j}__backdrop`,de.hidden=!0;const _=T.createElement("div");_.className=`${j}__menu`,_.setAttribute("role","menu"),_.setAttribute("aria-label",V("form.speeddial.menu")),_.id=te,_.setAttribute("data-mode",be),be==="linear"&&_.setAttribute("data-direction",le),_.hidden=!0,ee.appendChild(de),ee.appendChild(_),ee.appendChild(ue);let re=!1;const F=[];let o=!1;const L=(he,Re)=>{M?M.emit(he,{name:w,item:I,...Re}):l.dispatchEvent(d(T,he,Re))},Y=()=>ie||V(re?"form.speeddial.close":"form.speeddial.open"),Q=()=>{for(;ae.firstChild;)ae.removeChild(ae.firstChild);const he=R(re?E:q,T);he&&ae.appendChild(he)},me=(he,Re)=>{const Te=T.createElement("button");Te.type="button",Te.className=`${j}__item`,Te.setAttribute("role","menuitem"),Te.setAttribute("tabindex","-1"),Te.dataset.index=String(Re);const Ge=he.text!=null&&String(he.text)!==""?String(he.text):he.id!=null?String(he.id):"";Ge&&Te.setAttribute("aria-label",Ge),he.disabled&&Te.setAttribute("aria-disabled","true");const Ke=R(he.icon,T),We=he.text!=null?String(he.text):"";if(typeof he.render=="function"){const _e=he.render(he,Re);_e&&typeof _e=="object"&&_e.nodeType?Te.appendChild(_e):Te.textContent=_e!=null?String(_e):""}else{if(Ke){const _e=T.createElement("span");_e.className=`${j}__item-icon`,_e.setAttribute("aria-hidden","true"),_e.appendChild(Ke),Te.appendChild(_e)}if(We!==""){const _e=T.createElement("span");_e.className=`${j}__item-text`,_e.textContent=We,Te.appendChild(_e)}}Te.setAttribute("data-icon-only",Ke!=null&&We===""?"true":"false"),Te.setAttribute("data-text-only",Ke==null&&We!==""?"true":"false");const fe=_e=>{_e.stopPropagation(),!(he.disabled||x)&&(L("itemClick",{item:he,index:Re}),Pe(!1),ue.focus())};Te.addEventListener("click",fe),F.push(()=>Te.removeEventListener("click",fe));const Me=_e=>{_e.key==="Escape"?(_e.preventDefault(),_e.stopPropagation(),Pe(!1),ue.focus()):_e.key==="ArrowDown"||_e.key==="ArrowRight"?(_e.preventDefault(),ke(Re,1)):(_e.key==="ArrowUp"||_e.key==="ArrowLeft")&&(_e.preventDefault(),ke(Re,-1))};return Te.addEventListener("keydown",Me),F.push(()=>Te.removeEventListener("keydown",Me)),Te};let ge=[];const $e=()=>{for(;_.firstChild;)_.removeChild(_.firstChild);ge=U.map((he,Re)=>me(he,Re));for(const he of ge)_.appendChild(he);Q()},je=()=>{if(be!=="radial"||!H)return;const he=ue.getBoundingClientRect(),Re=G?0:ee.getBoundingClientRect().left,Te=G?0:ee.getBoundingClientRect().top,Ge=he.left+he.width/2-Re,Ke=he.top+he.height/2-Te,We=H.offset||Math.round(he.width/2+28);let fe=H.startAngle,Me=H.endAngle;if(H.defaulted&&getComputedStyle(ee).direction==="rtl"){const Ee=180-Me;Me=180-fe,fe=Ee}const _e=ge.length;ge.forEach((Ee,ot)=>{const qe=(_e<=1?(fe+Me)/2:fe+(Me-fe)*(ot/(_e-1)))*Math.PI/180;Ee.style.left=`${Math.round(Ge+We*Math.cos(qe))}px`,Ee.style.top=`${Math.round(Ke-We*Math.sin(qe))}px`})},Pe=(he,Re={})=>{o||x||re===he||(re=he,ue.setAttribute("aria-expanded",re?"true":"false"),ue.setAttribute("aria-label",Y()),_.hidden=!re,$&&(de.hidden=!re),Q(),re?(L("open",{}),je(),Re.focusItems!==!1&&ke(-1,1)):L("close",{}))},ke=(he,Re)=>{const Te=ge.length;if(Te===0)return;let Ge=he===-1?Re>0?0:Te-1:(he+Re+Te)%Te;for(let Ke=0;Ke<Te;Ke+=1){if(!U[Ge].disabled){ge[Ge].focus();return}Ge=(Ge+Re+Te)%Te}},O=()=>{Pe(!0,{focusItems:!1})},J=()=>{re&&(Pe(!1),ue.focus())},pe=()=>{Pe(!re,{focusItems:!1})};if(be==="linear"){const he=i(W,le);for(const Re of Object.keys(he))_.style[Re]=he[Re]}const K=()=>{x||pe()};ue.addEventListener("click",K),F.push(()=>ue.removeEventListener("click",K));const oe=()=>{ne&&!x&&Pe(!0,{focusItems:!1})};ue.addEventListener("pointerenter",oe),F.push(()=>ue.removeEventListener("pointerenter",oe));const ve=()=>{ne&&re&&Pe(!1)};ee.addEventListener("pointerleave",ve),F.push(()=>ee.removeEventListener("pointerleave",ve));const xe=he=>{he.stopPropagation(),J()};de.addEventListener("click",xe),F.push(()=>de.removeEventListener("click",xe));const we=he=>{if(!re)return;const Re=he.target;Re&&ee.contains(Re)||J()};T.addEventListener("pointerdown",we,!0),F.push(()=>T.removeEventListener("pointerdown",we,!0));const Ie=he=>{!re||he.key!=="Escape"||(he.preventDefault(),J())};T.addEventListener("keydown",Ie,!0),F.push(()=>T.removeEventListener("keydown",Ie,!0));const He=he=>{he.key==="Escape"?re&&(he.preventDefault(),he.stopPropagation(),J()):he.key==="ArrowDown"||he.key==="ArrowRight"?(he.preventDefault(),Pe(!0),ke(-1,1)):(he.key==="ArrowUp"||he.key==="ArrowLeft")&&(he.preventDefault(),Pe(!0),ke(-1,-1))};ue.addEventListener("keydown",He),F.push(()=>ue.removeEventListener("keydown",He));const Se=he=>{x=he===!0,ue.disabled=x,ue.setAttribute("aria-disabled",x?"true":"false"),x&&re&&Pe(!1)},De={el:ee,fab:ue,menu:_,open:O,close:J,toggle:pe,setItems(he){U=c(he),$e()},setDisabled:Se,destroy(){o=!0;for(const he of F.splice(0))he();for(;ee.firstChild;)ee.removeChild(ee.firstChild);ee.parentNode&&ee.parentNode.removeChild(ee)}};return Se(x),$e(),l.appendChild(ee),l.__latSpeedDial=De,De}B("speeddial",{kind:"button",action:!0,build(l,f){const T=l.props||{},V=f.doc.createElement("div"),D=r(V,{items:T.speedDialItems||T.items,position:T.position,fixed:T.fixed,openOnHover:T.openOnHover,direction:T.direction,mode:l.mode,radial:T.radial,modal:T.modal,openIcon:T.openIcon,closeIcon:T.closeIcon,text:T.text!=null?T.text:l.label,variant:T.variant,disabled:l.disabled,t:f.t,doc:f.doc,inForm:!0,emitter:f.emitter,itemName:l.name,formItem:l});return f.disposers.push(()=>D.destroy()),V},read(){return null},write(){},state(l,f){const T=l&&l.__latSpeedDial;T&&T.setDisabled(f.disabled===!0)}})}),Ne("packages/modules/form/controls/multipart-upload.js",function(N,Z){"use strict";Object.defineProperty(N,"uploadMultipart",{enumerable:!0,get:function(){return e}});function e(B,S,X={}){return new Promise((C,z)=>{const P=new XMLHttpRequest,A=new FormData,j=S.fieldName||"file";if(S.params)for(const[k,g]of Object.entries(S.params))A.append(k,String(g));if(A.append(j,B,B.name),P.open("POST",S.target,!0),S.headers)for(const[k,g]of Object.entries(S.headers))P.setRequestHeader(k,g);if(P.upload.addEventListener("progress",k=>{X.onProgress&&k.lengthComputable&&X.onProgress(Math.round(k.loaded/k.total*100))}),P.addEventListener("load",()=>{if(P.status>=200&&P.status<300){let k=P.responseText;try{k=JSON.parse(P.responseText)}catch{}C(k)}else z(new Error(`upload failed with status ${P.status}`))}),P.addEventListener("error",()=>z(new Error("upload failed"))),P.addEventListener("abort",()=>z(new Error("upload aborted"))),X.signal){if(X.signal.aborted){P.abort();return}X.signal.addEventListener("abort",()=>P.abort())}P.send(A)})}}),Ne("packages/modules/form/controls/avatar.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,S=Z("packages/modules/form/controls/field-icon.js"),X=S.makeFieldIcon,C=S.injectFieldIconStyles,z=Z("packages/modules/form/controls/file.js"),P=z.accepts,A=z.formatSize,k=Z("packages/modules/form/controls/multipart-upload.js").uploadMultipart,g=Object.freeze({small:40,medium:64,large:96}),n=Object.freeze({photo:"M3 4.5h2l1-1.5h4l1 1.5h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM8 7a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"});function u(p){return p}function b(p,y){const m="http://www.w3.org/2000/svg",h=p.createElementNS(m,"svg");h.setAttribute("viewBox","0 0 16 16"),h.setAttribute("focusable","false"),h.setAttribute("aria-hidden","true");const R=p.createElementNS(m,"path");return R.setAttribute("d",y),R.setAttribute("fill","currentColor"),h.appendChild(R),h}function v(p){return typeof p=="number"&&Number.isFinite(p)&&p>0?p:typeof p=="string"&&g[p]?g[p]:g.medium}function t(p,y){const m=y&&y.defaultView,h=m&&m.Event,R=h?new h("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(R)}function a(p){if(!p||typeof p!="object")return null;const y=p;return y.src==null||y.src===""?null:y}function s(p){return new Promise((y,m)=>{const h=new FileReader;h.onload=()=>y(String(h.result)),h.onerror=()=>m(h.error||new Error("could not read the file")),h.readAsDataURL(p)})}B("avatar",{kind:"field",build(p,y){const m=y.doc,h=y.t||u;C(m);const R=p.props||{},d=Array.isArray(R.accept)&&R.accept.length?R.accept.map(String):["image/*"],c=Number(R.maxSize)||0,i=m.createElement("div");i.className="lat-form__avatar";const r={value:a(p.value),rejectedMessage:null,accept:d,maxSize:c,size:v(R.size),circle:R.circle===!0,alt:R.alt!=null?String(R.alt):"",preview:R.preview!=null&&R.preview!==""?String(R.preview):null,icon:R.icon,placeholder:p.placeholder!=null&&p.placeholder!==""?String(p.placeholder):h("form.avatar.placeholder"),removeIcon:R.removeIcon!==!1,upload:R.upload&&typeof R.upload=="object"?R.upload:null,disabled:p.disabled===!0,readOnly:p.readOnly===!0,label:p.label!=null&&p.label!==""?String(p.label):null};i.__latAvatar=r;const l=m.createElement("input");l.type="file",l.className="lat-form__avatar-input",l.tabIndex=-1,l.setAttribute("aria-hidden","true"),d.length&&(l.accept=d.join(",")),i.appendChild(l);const f=m.createElement("button");f.type="button",f.className="lat-form__avatar-picture",i.appendChild(f);const T=m.createElement("button");T.type="button",T.className="lat-form__avatar-remove",T.setAttribute("aria-label",h("form.avatar.remove")),T.title=h("form.avatar.remove"),T.appendChild(X(m,"close")||b(m,n.photo)),i.appendChild(T);const V=m.createElement("span");return V.className="lat-form__avatar-status",i.appendChild(V),i.style.setProperty("--lat-avatar-size",`${r.size}px`),i.__latPaint=()=>{i.style.setProperty("--lat-avatar-size",`${r.size}px`),f.classList.toggle("lat-form__avatar-picture--circle",r.circle);const D=r.disabled||r.readOnly;f.disabled=D,f.tabIndex=D?-1:0,f.setAttribute("aria-label",r.label||h("form.avatar.choose")),f.textContent="";const M=r.value&&r.value.src?r.value.src:null;if(M){const I=m.createElement("img");I.className="lat-form__avatar-img",I.src=M,I.alt=r.alt,f.appendChild(I)}else if(r.preview){const I=m.createElement("img");I.className="lat-form__avatar-img",I.src=r.preview,I.alt=r.alt,f.appendChild(I)}else if(r.icon!=null&&r.icon!==!1){if(typeof r.icon=="object"&&r.icon.nodeType)f.appendChild(r.icon);else if(typeof r.icon=="string"){const I=m.createElement("img");I.className="lat-form__avatar-img",I.src=r.icon,I.alt=r.alt,f.appendChild(I)}}else{const I=m.createElement("span");I.className="lat-form__avatar-placeholder",I.appendChild(b(m,n.photo));const W=m.createElement("span");W.className="lat-form__avatar-placeholder-text",W.textContent=r.placeholder,I.appendChild(W),f.appendChild(I)}const w=!!(r.value&&r.value.src);T.hidden=!w||!r.removeIcon||r.disabled||r.readOnly,T.disabled=r.disabled||r.readOnly,V.textContent="",V.className="lat-form__avatar-status",r.value&&r.value.status==="uploading"?(V.classList.add("lat-form__avatar-status--uploading"),V.textContent=`${Math.round(r.value.progress||0)}%`):r.value&&r.value.status==="failed"&&(V.classList.add("lat-form__avatar-status--failed"),V.textContent=r.value.message||h("form.avatar.uploadFailed"))},i.__latStartUpload=()=>{const D=r.upload,M=r.value;!D||!M||!M.file||D.autosend===!1||(M.status="uploading",M.progress=0,i.__latPaint(),k(M.file,D,{onProgress(w){r.value===M&&(M.progress=w,i.__latPaint())}}).then(w=>{r.value===M&&(M.status="done",M.progress=100,D.updateFromResponse!==!1&&w&&typeof w=="object"&&(w.src!=null&&(M.src=String(w.src)),w.id!=null&&(M.id=w.id)),i.__latPaint(),t(i,m))},w=>{r.value===M&&(M.status="failed",M.message=w&&w.message?String(w.message):h("form.avatar.uploadFailed"),i.__latPaint(),t(i,m))}))},i.__latAdmit=D=>{if(!(!D||r.disabled||r.readOnly)){if(r.maxSize&&D.size>r.maxSize){r.rejectedMessage=h("form.avatar.rejected.size",{size:A(r.maxSize)});return}if(!P(D,r.accept)){r.rejectedMessage=h("form.avatar.rejected.type");return}r.rejectedMessage=null,s(D).then(M=>{r.value={src:M,file:D,name:D.name,size:D.size,status:"pending"},i.__latPaint(),t(i,m),i.__latStartUpload()})}},i.__latRemove=()=>{r.disabled||r.readOnly||(r.value=null,i.__latPaint(),t(i,m))},l.addEventListener("change",()=>{const D=l.files&&l.files[0];i.__latAdmit(D),l.value=""}),f.addEventListener("click",()=>{r.disabled||r.readOnly||l.click()}),f.addEventListener("keydown",D=>{r.disabled||r.readOnly||(D.key==="Enter"||D.key===" "||D.key==="Spacebar")&&(D.preventDefault(),l.click())}),T.addEventListener("click",D=>{D.stopPropagation(),i.__latRemove()}),["dragenter","dragover"].forEach(D=>f.addEventListener(D,M=>{r.disabled||r.readOnly||(M.preventDefault(),f.classList.add("lat-form__avatar-picture--dragover"))})),f.addEventListener("dragleave",()=>{f.classList.remove("lat-form__avatar-picture--dragover")}),f.addEventListener("drop",D=>{if(D.preventDefault(),f.classList.remove("lat-form__avatar-picture--dragover"),r.disabled||r.readOnly)return;const M=D.dataTransfer&&D.dataTransfer.files&&D.dataTransfer.files[0];i.__latAdmit(M)}),i.__latPaint(),r.value&&r.value.file&&r.value.status==="pending"&&i.__latStartUpload(),i},read(p){return p.__latAvatar?p.__latAvatar.value:null},write(p,y){const m=p.__latAvatar;m&&(m.value=a(y),p.__latPaint&&p.__latPaint())},state(p,y){const m=p.__latAvatar;m&&(m.disabled=y.disabled===!0,m.readOnly=y.readOnly===!0,m.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"),m.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly"),p.__latPaint&&p.__latPaint())},validate(p,y,m){const h=p.__latAvatar;return h&&h.rejectedMessage?h.rejectedMessage:null},focus(p){const y=p.querySelector(".lat-form__avatar-picture");y&&y.focus()}})}),Ne("packages/modules/form/controls/togglegroup.js",function(N,Z){"use strict";const B=Z("packages/modules/form/controls/registry.js").registerControl,X=Z("packages/modules/form/controls/button.js").buildIcon,C="lat-form__togglegroup",z="lat-form__togglegroup-btn";function P(k,g){const n=k!==null&&typeof k=="object"?k:{},u=n.id!=null?String(n.id):n.value!=null?String(n.value):String(g),b=n.text!=null?String(n.text):u;return{id:u,text:b,offText:n.offText!=null?String(n.offText):b,icon:n.icon!=null?n.icon:null,offIcon:n.offIcon!=null?n.offIcon:n.icon,selected:n.selected===!0,disabled:n.disabled===!0,hidden:n.hidden===!0,full:n.full===!0}}function A(k,g){const n=g&&g.defaultView,u=n&&n.Event,b=u?new u("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};k.dispatchEvent(b)}function j(k){return typeof k=="number"&&Number.isFinite(k)&&k>=0?k:0}B("togglegroup",{kind:"field",build(k,g){const n=g.doc,u=k.props||{},b=u.multiselect===!0,v=u.full===!0,t=n.createElement("div");t.className=C,t.setAttribute("role","group"),t.setAttribute("aria-label",k.label!=null&&k.label!==""?String(k.label):g.t("form.togglegroup")),t.style.setProperty("--lat-form-gap",`${j(u.gap)}px`),v&&t.setAttribute("data-full","true");const a=(Array.isArray(k.options)?k.options:[]).map(P).filter(c=>!c.hidden),s=[],p={},y={doc:n,options:a,buttons:s,pressed:p,multiselect:b,disabled:k.disabled===!0,readOnly:k.readOnly===!0};t.__latToggleGroup=y;for(const c of a){const i=n.createElement("button");i.type="button",i.className=z,i.setAttribute("data-index",String(s.length)),c.full&&i.setAttribute("data-full","true"),i.disabled=c.disabled||y.disabled,i.__tg={opt:c,pressed:!1},t.appendChild(i),s.push(i),p[c.id]=!1}const m=c=>{const i=c.__tg,r=i.opt,l=i.pressed;c.setAttribute("aria-pressed",l?"true":"false"),c.removeAttribute("aria-label"),c.textContent="";const f=X(l?r.icon:r.offIcon,n);f&&c.appendChild(f);const T=l?r.text:r.offText;if(T!==""){const V=n.createElement("span");V.className=`${z}-label`,V.textContent=T,c.appendChild(V)}else f&&c.setAttribute("aria-label",r.id)},h=()=>{for(const c of s)c.__tg.pressed=p[c.__tg.opt.id]===!0,m(c)},R=c=>{if(c.disabled||y.disabled||y.readOnly)return!1;if(b)p[c.id]=!p[c.id];else{if(p[c.id])return!1;for(const i of a)p[i.id]=i.id===c.id}return h(),!0},d=k.value!=null&&typeof k.value=="object"?k.value:{};for(const c of a)p[c.id]=d[c.id]===!0;if(b)for(const c of a)p[c.id]=p[c.id]||c.selected===!0;else{let c=a.find(i=>p[i.id]);c||(c=a.find(i=>i.selected)),c||(c=a[0]);for(const i of a)p[i.id]=i.id===(c&&c.id)}return h(),t.addEventListener("click",c=>{const i=c.target&&c.target.closest?c.target.closest(`.${z}`):null;if(!i||!t.contains(i)||!i.__tg)return;const r=i.__tg.opt;R(r)&&(t.__latChangeDetail={id:r.id,pressed:p[r.id]},A(t,n))}),t.__latKey=c=>{if(c.key!=="ArrowLeft"&&c.key!=="ArrowRight")return;const i=s.filter(T=>!T.disabled);if(!i.length)return;const r=i.indexOf(n.activeElement),l=c.key==="ArrowRight"?1:-1,f=r===-1?l===1?0:i.length-1:r+l;f<0||f>=i.length||(c.preventDefault(),i[f].focus())},t.addEventListener("keydown",t.__latKey),t},read(k){const g=k&&k.__latToggleGroup,n={};if(!g)return n;for(const u of g.options)n[u.id]=g.pressed[u.id]===!0;return n},write(k,g){const n=k&&k.__latToggleGroup;if(!n)return;const u=g!=null&&typeof g=="object"&&!Array.isArray(g)?g:{};for(const v of n.options)n.pressed[v.id]=u[v.id]===!0;if(!n.multiselect){const v=n.options.find(t=>n.pressed[t.id]);for(const t of n.options)n.pressed[t.id]=t.id===(v?v.id:n.options[0]&&n.options[0].id)}for(const v of n.buttons)v.__tg.pressed=n.pressed[v.__tg.opt.id]===!0;const b=n.doc;for(const v of n.buttons){const t=v.__tg,a=t.opt,s=t.pressed;v.setAttribute("aria-pressed",s?"true":"false"),v.removeAttribute("aria-label"),v.textContent="";const p=X(s?a.icon:a.offIcon,b);p&&v.appendChild(p);const y=s?a.text:a.offText;if(y!==""){const m=b.createElement("span");m.className=`${z}-label`,m.textContent=y,v.appendChild(m)}else p&&v.setAttribute("aria-label",a.id)}},state(k,g){const n=k&&k.__latToggleGroup;if(n){n.disabled=g.disabled===!0,n.readOnly=g.readOnly===!0,n.readOnly?k.setAttribute("aria-readonly","true"):k.removeAttribute("aria-readonly"),n.disabled?k.setAttribute("aria-disabled","true"):k.removeAttribute("aria-disabled");for(const u of n.buttons)u.disabled=n.disabled||u.__tg.opt.disabled}},focus(k){const g=k&&k.__latToggleGroup,n=g&&g.buttons.find(u=>!u.disabled);n&&typeof n.focus=="function"&&n.focus()}})}),Ne("packages/modules/form/controls/index.js",function(N,Z){"use strict";const e=Z("packages/modules/form/controls/input.js"),B=Z("packages/modules/form/controls/number.js"),S=Z("packages/modules/form/controls/textarea.js"),X=Z("packages/modules/form/controls/checkbox.js"),C=Z("packages/modules/form/controls/button.js"),z=Z("packages/modules/form/controls/buttons.js"),P=Z("packages/modules/form/controls/text.js"),A=Z("packages/modules/form/controls/combo.js"),j=Z("packages/modules/form/controls/select.js"),k=Z("packages/modules/form/controls/listbox.js"),g=Z("packages/modules/form/controls/radiogroup.js"),n=Z("packages/modules/form/controls/checkboxgroup.js"),u=Z("packages/modules/form/controls/toggle.js"),b=Z("packages/modules/form/controls/datepicker.js"),v=Z("packages/modules/form/controls/time.js"),t=Z("packages/modules/form/controls/daterange.js"),a=Z("packages/modules/form/controls/file.js"),s=Z("packages/modules/form/controls/richtext.js"),p=Z("packages/modules/form/controls/rating.js"),y=Z("packages/modules/form/controls/stage.js"),m=Z("packages/modules/form/controls/chips.js"),h=Z("packages/modules/form/controls/otp.js"),R=Z("packages/modules/form/controls/color.js"),d=Z("packages/modules/form/controls/barcode.js"),c=Z("packages/modules/form/controls/speeddial.js"),i=Z("packages/modules/form/controls/container.js"),r=Z("packages/modules/form/controls/avatar.js"),l=Z("packages/modules/form/controls/togglegroup.js")}),Ne("packages/modules/form/create.js",function(N,Z){"use strict";Object.defineProperty(N,"createForm",{enumerable:!0,get:function(){return w}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return I}});const e=Z("packages/modules/form/styles.js"),B=e.NS,S=e.injectStyles,X=Z("packages/modules/form/model.js"),C=X.resolveConfig,z=X.DENSITIES,P=X.cssSize,A=Z("packages/modules/form/view.js"),j=A.markValidation,k=A.mount,g=A.runValidation,n=A.validateItem,u=A.wizardBack,b=A.wizardGoTo,v=A.wizardNext,t=Z("packages/modules/form/emitter.js"),a=t.Emitter,s=t.FORM_EVENTS,y=Z("packages/modules/form/messages.js").createTranslator,m=Z("packages/modules/form/bind.js"),h=m.resolveBind,R=m.applyBinding,c=Z("packages/modules/form/rules.js").applyRules,r=Z("packages/modules/form/state.js").syncRecordState,l=Z("packages/modules/form/controls/container.js"),f=l.attachToContainer,T=l.attachHtmlToContainer,V=l.getContainerWidget,D=Z("packages/modules/form/controls/index.js");function M(W){if(Array.isArray(W))return W.map(M);if(W==null||typeof W!="object"||typeof W.nodeType=="number"||Object.getPrototypeOf(W)!==Object.prototype)return W;const G=W.type==="buttons"?"buttons":W.type==="speeddial"?"speedDialItems":null,ne=G!=null&&Array.isArray(W.items),be={};for(const Ae of Object.keys(W))ne&&Ae==="items"||(be[Ae]=M(W[Ae]));return ne&&(be[G]=W.items.map(M)),be}function w(W,G={}){const ne=W&&W.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,be=h(G);let Ae=G;if(be){if(Ae={...G},Ae.density===void 0){const U=be.density();U!=null&&(Ae.density=U)}if(!(Array.isArray(Ae.rows)&&Ae.rows.length||Array.isArray(Ae.cols)&&Ae.cols.length)){const U=be.items();U.length&&(Ae.rows=[{items:U}])}}const le=C(M(Ae)),$={el:W||null,doc:ne,model:le,config:le,items:new Map,order:[],emitter:new a,t:y(le.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ie=x=>(x.facade||(x.facade={el:x.el,item:x.item,name:x.item.name,getValue(){return x.value},setValue(U){return x.def.write(x.control,U),x.value=x.def.read(x.control),x.item.value=x.value,c($),x.facade},show(){return x.hidden=!1,x.el.hidden=!1,x.facade},hide(){return x.hidden=!0,x.el.hidden=!0,x.facade},isVisible(){return!(x.hidden||x.ruleHidden)},disable(){return x.item.disabled=!0,r(x),x.facade},enable(){return x.item.disabled=!1,r(x),x.facade},focus(){return typeof x.def.focus=="function"?x.def.focus(x.control):typeof x.control.focus=="function"&&x.control.focus(),x.facade},blur(){return typeof x.def.blur=="function"?x.def.blur(x.control):typeof x.control.blur=="function"&&x.control.blur(),x.facade},validate(){return n($,x)},setLoading(U){return typeof x.def.setLoading=="function"&&x.def.setLoading(x.control,U===!0),x.facade},setOptions(U){const ee=x.control&&(x.control.__combo||x.control.__select);return ee&&typeof ee.setOptions=="function"&&(ee.setOptions(U),x.item.options=U),x.facade},reload(){const U=x.control&&(x.control.__combo||x.control.__select);return U&&typeof U.reload=="function"&&U.reload(),x.facade}},x.def.kind==="container"&&(x.facade.attach=(U,ee)=>(f(x.control,U,ee),x.facade),x.facade.attachHTML=U=>(T($.doc,x.control,U),x.facade),x.facade.getWidget=()=>V(x.control))),x.facade);W&&ne&&S(ne);const q=W&&typeof W.style.cssText=="string"?W.style.cssText:"",E=new Set(["field","toggle","display"]),H={el:W||null,config:le,getItem(x){const U=$.items.get(String(x));return U?ie(U):void 0},getValue(){const x={};for(const U of $.order)U.item.name!=null&&E.has(U.def.kind)&&(x[U.item.name]=U.value);return x},setValue(x){if(x==null||typeof x!="object")return H;for(const U of Object.keys(x)){const ee=$.items.get(U);ee&&ie(ee).setValue(x[U])}return H},clear(){for(const x of $.order)if(x.item.name!=null)if(x.def.kind==="field"){const U=x.item.props&&x.item.props.multiple===!0,ee=x.item.type==="togglegroup"?{}:x.item.type==="chips"?U?[]:null:x.item.type==="number"||x.item.type==="radiogroup"||x.item.type==="datepicker"||x.item.type==="stage"||x.item.type==="combo"&&!U?null:x.item.type==="rating"?0:x.item.type==="file"||x.item.type==="checkboxgroup"||(x.item.type==="select"||x.item.type==="combo")&&U?[]:"";x.value=ee,x.item.value=ee,x.def.write(x.control,ee)}else x.def.kind==="toggle"&&(x.value=!1,x.item.value=!1,x.def.write(x.control,!1));return c($),H},validate(){const x=[];let U=!0;for(const ee of $.order){if(ee.item.name==null||ee.def.kind!=="field"&&ee.def.kind!=="toggle"||ee.item.disabled===!0||ee.ruleHidden===!0||ee.hidden===!0||(typeof ee.def.reset=="function"&&ee.def.reset(ee.control,ee.item),ee.item.required!==!0&&ee.item.validation==null&&typeof ee.def.validate!="function"&&ee.ruleRequired!==!0))continue;const te=g($,ee);j($,ee,te),te&&(U=!1,x.push({name:ee.item.name,rule:te.code,message:te.message}))}return $.emitter.emit("validated",{name:null,item:null,value:void 0,valid:U,failures:x}),U},forEach(x){for(const U of $.order)x(ie(U))},on(x,U){return x!=="*"&&!s.includes(x)?(console.warn(`lattice-form: "${x}" is not a form event and will never fire.`),()=>{}):$.emitter.on(x,U)},off(x,U){$.emitter.off(x,U)},setDensity(x){return z.includes(x)&&(le.density=x,W&&W.setAttribute("data-density",x)),H},setReadOnly(x){for(const U of $.order)U.item.readOnly=x===!0,r(U);return H},setDisabled(x){for(const U of $.order)U.item.disabled=x===!0,r(U);return H},setSpacing(x){const U=x==null?null:P(x);return le.spacing=U,W&&(U==null?W.style.removeProperty("--lattice-form-item-gap"):W.style.setProperty("--lattice-form-item-gap",U)),H},isDirty(x){return x==null?$.dirty.size>0:$.dirty.has(String(x))},isConflicted(x){return x==null?$.conflicts.size>0:$.conflicts.has(String(x))},save(){const x=$.bound;if(!x)return!1;if($.dirty.size===0)return!0;const U={};for(const ue of $.dirty){const ae=H.getItem(ue);ae&&(U[ue]=ae.getValue())}const ee=x.save(U),te=ue=>{if(!ue)return!1;for(const ae of Object.keys(U))$.baseline[ae]=U[ae],$.dirty.delete(ae),$.conflicts.delete(ae);return!0};return ee&&typeof ee.then=="function"?ee.then(te):te(ee)},revert(){for(const x of $.dirty){if(!Object.hasOwn($.baseline,x))continue;const U=$.items.get(x);U&&ie(U).setValue($.baseline[x])}return $.dirty.clear(),$.conflicts.clear(),H},_bind(x){return R($,H,x),H},_commit(x){for(const U of Object.keys(x||{}))$.baseline[U]=x[U],$.dirty.delete(U),$.conflicts.delete(U)},get steps(){return $.model.steps||[]},get activeStep(){return $.wizard?$.wizard.active:0},next(){return v($)},back(){return u($)},goToStep(x){return b($,x)},__reapplyRules(){return c($),H},destroy(){for(const U of $.disposers.splice(0))U();$.emitter.clear();const x=$.el;if(x){for(;x.firstChild;)x.removeChild(x.firstChild);x.classList.remove(B),x.removeAttribute("data-density"),x.removeAttribute("data-lattice-standalone"),x.style.cssText=q,x.__latticeForm===H&&(x.__latticeForm=null)}$.items.clear(),$.order.length=0,$.dirty.clear(),$.conflicts.clear(),$.baseline={},$.bound=null}};return W&&(W.__latticeForm=H),$.form=H,W&&ne&&k($),be&&R($,H,be),H}const I=w}),Ne("packages/modules/form/group.js",function(N,Z){"use strict";Object.defineProperty(N,"GROUP_EVENTS",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return a}});const B=Z("packages/modules/form/emitter.js").Emitter,X=Z("packages/modules/form/bind-router.js").routerBinding,C=Z("packages/modules/form/group-rules.js"),z=C.attachRuleResolver,P=C.detachRuleResolver,A=C.makeRuleResolver,j=C.reapplyMembers,k=Object.freeze(["change","validated"]),g=new Set;function n(s){const p={},y=s.getValue();for(const m of Object.keys(y))s.isDirty(m)===!0&&(p[m]=y[m]);return p}function u(s,p){g.has(s)||(g.add(s),console.warn("[lattice]",p))}const b=new WeakMap;function v(s,p){let y=b.get(s);if(!y){const m=s.destroy;y={original:m,watchers:new Set},b.set(s,y),s.destroy=function(){const R=b.get(s)||y;for(const d of[...R.watchers])d.detach(s);return m.call(s)}}y.watchers.add(p)}function t(s,p={}){const y=[],m=new Map,h=new Map,R=new B,d=p&&typeof p.bind=="object"&&p.bind.router!=null?p.bind:null,c=d?X(d):null,i=()=>{m.clear(),h.clear();for(const V of y){const D=Object.keys(V.form.getValue());for(const M of D)m.has(M)?u(`form.group.duplicate-field:${M}`,`form group: the field "${M}" is owned by more than one form; the first one added wins.`):m.set(M,V);V.id!=null&&!h.has(V.id)&&h.set(V.id,V)}},r=A({owners:m,byId:h,warnOnce:u}),l=V=>{const D=y.findIndex(I=>I.form===V);if(D===-1)return!1;const[M]=y.splice(D,1);for(const I of M.unsubs)I();i();const w=b.get(V);return w&&(w.watchers.delete(f),w.watchers.size===0&&(b.delete(V),V.destroy=w.original)),P(V),typeof V.__reapplyRules=="function"&&V.__reapplyRules(),j(y),!0},f={detach:l},T={get forms(){return y.map(V=>V.form)},add(V,D){if(!V||typeof V!="object"||typeof V.getValue!="function"||y.some(W=>W.form===V))return T;const M={form:V,id:D&&D.id,unsubs:[],lastFailures:[]};y.push(M),c&&typeof V._bind=="function"&&V._bind(c);const w=W=>{R.emit("change",{form:V,name:W.name,value:W.value}),j(y)},I=W=>{M.lastFailures=W.failures||[],R.emit("validated",{form:V,valid:W.valid})};return M.unsubs.push(V.on("change",w)),M.unsubs.push(V.on("validated",I)),v(V,f),i(),z(V,r),j(y),T},remove(V){return l(V),T},getValue(){const V={};for(const D of y)Object.assign(V,D.form.getValue());return p.transform&&typeof p.transform.get=="function"?p.transform.get(V):V},setValue(V){if(p.transform&&typeof p.transform.set=="function")p.transform.set(V);else if(V!=null&&typeof V=="object")for(const D of Object.keys(V)){const M=m.get(D);M&&M.form.setValue({[D]:V[D]})}return j(y),T},getItem(V){const D=m.get(String(V));return D?D.form.getItem(V):void 0},validate(){let V=!0;const D=[];for(const M of y){M.form.validate()===!1&&(V=!1);for(const I of M.lastFailures||[])D.push({form:M.form,name:I.name})}if(!V){const M=D.find(w=>w.name!=null);if(M){const w=M.form.getItem(M.name);w&&(w.focus(),w.el&&typeof w.el.scrollIntoView=="function"&&w.el.scrollIntoView({block:"nearest"}))}}return V},setReadOnly(V){for(const D of y)D.form.setReadOnly(V===!0);return T},setDisabled(V){for(const D of y)D.form.setDisabled(V===!0);return T},clear(){for(const V of y)V.form.clear();return T},reset(){for(const V of y)typeof V.form.revert=="function"&&V.form.revert();return T},save(){if(!c)return!1;const V=y.map(I=>({member:I,changes:n(I.form)})),D={};for(const I of V)Object.assign(D,I.changes);if(!Object.keys(D).length)return!0;const M=c.save(D),w=I=>{if(!I)return!1;for(const W of V)W.member.form&&typeof W.member.form._commit=="function"&&W.member.form._commit(W.changes);return!0};return M&&typeof M.then=="function"?M.then(w):w(M)},isDirty(){return y.some(V=>V.form.isDirty()===!0)},on(V,D){return V!=="*"&&!k.includes(V)?(console.warn(`lattice-form: "${V}" is not a form group event and will never fire.`),()=>{}):R.on(V,D)},off(V,D){R.off(V,D)},destroy(){for(;y.length;){const V=y[y.length-1].form;l(V)}R.clear()}};if(Array.isArray(s))for(const V of s)T.add(V);else s&&typeof s=="object"&&typeof s.getValue=="function"&&T.add(s);return T}const a=t}),Ne("packages/modules/form/enhance.js",function(N,Z){"use strict";Object.defineProperty(N,"itemForField",{enumerable:!0,get:function(){return A}}),Object.defineProperty(N,"configForForm",{enumerable:!0,get:function(){return j}}),Object.defineProperty(N,"enhanceForm",{enumerable:!0,get:function(){return k}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return g}});const B=Z("packages/modules/form/create.js").createForm,S=Object.freeze(["text","email","password","url"]);function X(n){const u=n&&n.type?String(n.type).toLowerCase():"";return u==="submit"||u==="image"||n&&n.tagName==="BUTTON"&&u!=="button"}function C(n){if(!n||!n.name)return!1;const u=n&&n.type?String(n.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||n.tagName==="BUTTON")}function z(n,u){if(typeof n.getAttribute=="function"){const b=n.getAttribute("data-label");if(b!=null&&b!=="")return b;const v=n.getAttribute("aria-label");if(v!=null&&v!=="")return v}if(n.id&&typeof u.querySelector=="function"){const b=u.querySelector(`label[for="${n.id}"]`);if(b&&b.textContent!=null){const v=String(b.textContent).trim();if(v)return v}}return String(n.name||"")}function P(n){return n.type==="checkbox"?n.checked===!0:n.value==null?"":n.value}function A(n,u){if(X(n)||!C(n))return null;const b=n.type?String(n.type).toLowerCase():"text",v={type:"input",name:n.name,label:z(n,u),value:P(n)};if(b==="number")v.type="number",n.min!=null&&n.min!==""&&(v.min=Number(n.min)),n.max!=null&&n.max!==""&&(v.max=Number(n.max)),n.step!=null&&n.step!==""&&(v.step=Number(n.step));else if(b==="checkbox")v.type="checkbox";else if(n.tagName==="TEXTAREA")v.type="textarea";else if(S.includes(b))v.subtype=b,(b==="email"||b==="url")&&(v.validation=b);else return null;if(n.placeholder!=null&&n.placeholder!==""&&(v.placeholder=n.placeholder),n.required===!0&&(v.required=!0),n.disabled===!0&&(v.disabled=!0),n.readOnly===!0&&(v.readOnly=!0),typeof n.getAttribute=="function"){const t=n.getAttribute("data-validation")||n.getAttribute("data-rule");t&&(v.validation=t);const a=n.getAttribute("data-error-message");a&&(v.errorMessage=a);const s=n.getAttribute("data-help");s&&(v.helpMessage=s)}return v}function j(n,u){const b=n&&n.ownerDocument||(typeof document<"u"?document:null),v=[],t=n&&n.elements?n.elements:[];for(const a of t){const s=A(a,b);s&&v.push(s)}return{...u||{},rows:v}}function k(n,u){if(!n)return null;if(n.__latticeForm)return n.__latticeForm;const b=n.ownerDocument||(typeof document<"u"?document:null),v=[],t=n.elements?n.elements:[];for(const s of t)X(s)&&v.push(s);const a=B(n,j(n,u));n.__latticeForm=a;for(const s of v)s.parentNode!==n&&n.appendChild(s);return typeof n.addEventListener=="function"&&b&&n.addEventListener("submit",s=>{a.validate()||(s.preventDefault(),s.stopImmediatePropagation())},!0),a}const g=k}),Ne("packages/modules/form/index.js",function(N,Z){"use strict";Object.defineProperty(N,"registerControl",{enumerable:!0,get:function(){return g}}),Object.defineProperty(N,"createForm",{enumerable:!0,get:function(){return z}}),Object.defineProperty(N,"default",{enumerable:!0,get:function(){return n}});const B=Z("packages/modules/form/styles.js").NS,X=Z("packages/modules/form/controls/registry.js").registerControl,z=Z("packages/modules/form/create.js").createForm,P=Z("packages/modules/form/controls/combo.js");Object.defineProperty(N,"createCombo",{enumerable:!0,get:function(){return P.createCombo}});const A=Z("packages/modules/form/controls/speeddial.js");Object.defineProperty(N,"createSpeedDial",{enumerable:!0,get:function(){return A.createSpeedDial}});const j=Z("packages/modules/form/group.js");Object.defineProperty(N,"createFormGroup",{enumerable:!0,get:function(){return j.createFormGroup}});const k=Z("packages/modules/form/enhance.js");Object.defineProperty(N,"enhanceForm",{enumerable:!0,get:function(){return k.enhanceForm}});function g(u,b){if(b===null||typeof b!="object"||typeof b.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const v=typeof b.getValue=="function"?b.getValue:()=>null,t=typeof b.setValue=="function"?b.setValue:()=>{};X(String(u),{kind:"field",custom:!0,validate:typeof b.validate=="function"?(a,s,p)=>b.validate(p,s,a):void 0,destroy:typeof b.destroy=="function"?a=>b.destroy(a):void 0,build(a,s){const p=s.doc.createElement("div");p.className=`${B}__custom`;const y={name:a.name,item:a,getValue(){return y._read?y._read():void 0},setValue(m){y._write&&y._write(m)},onChange(m){y._commit&&y._commit(m===void 0?v():m)},onInput(m){y._input&&y._input(m===void 0?v():m)}};return p.__latticeFormApi=y,b.create(p,a,y),t(p,a.value),p},read(a){return v(a)},write(a,s){t(a,s)},state(a,s){a.setAttribute("data-disabled",s.disabled===!0?"true":"false"),a.setAttribute("data-readonly",s.readOnly===!0?"true":"false")}})}const n=z});var zt=Gt("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=zt:typeof define=="function"&&define.amd?define(function(){return zt}):er.LatticeGridForm=zt})(typeof globalThis<"u"?globalThis:this);
2166
2196
 
2167
2197
  //# sourceMappingURL=form.min.js.map