@toclocoinc/lattice-grid 1.101.2 → 1.101.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -1
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +115 -17
  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 +114 -14
  15. package/docs/api/gantt.html +1 -1
  16. package/docs/api/geometry.html +1 -1
  17. package/docs/api/grid.html +2 -2
  18. package/docs/api/index.html +2 -2
  19. package/docs/api/kanban.html +1 -1
  20. package/docs/api/kpi.html +1 -1
  21. package/docs/api/layout.html +1 -1
  22. package/docs/api/leaflet.html +1 -1
  23. package/docs/api/list.html +1 -1
  24. package/docs/api/mapview.html +1 -1
  25. package/docs/api/mock-socket.html +1 -1
  26. package/docs/api/presets.html +1 -1
  27. package/docs/api/scheduler.html +1 -1
  28. package/docs/api/shell.html +1 -1
  29. package/docs/api/tabs.html +1 -1
  30. package/docs/api/types.html +1 -1
  31. package/docs/api-detail.html +9 -6
  32. package/docs/warnings.json +1 -1
  33. package/lattice-grid.d.ts +1 -1
  34. package/lattice-grid.esm.min.js +2 -2
  35. package/lattice-grid.min.cjs +2 -2
  36. package/lattice-grid.min.js +2 -2
  37. package/locales/all.d.ts +1 -1
  38. package/locales/all.esm.min.js +1 -1
  39. package/locales/all.min.cjs +1 -1
  40. package/locales/all.min.js +1 -1
  41. package/locales/ar.d.ts +1 -1
  42. package/locales/ar.esm.min.js +1 -1
  43. package/locales/ar.min.cjs +1 -1
  44. package/locales/ar.min.js +1 -1
  45. package/locales/cs-CZ.d.ts +1 -1
  46. package/locales/cs-CZ.esm.min.js +1 -1
  47. package/locales/cs-CZ.min.cjs +1 -1
  48. package/locales/cs-CZ.min.js +1 -1
  49. package/locales/da-DK.d.ts +1 -1
  50. package/locales/da-DK.esm.min.js +1 -1
  51. package/locales/da-DK.min.cjs +1 -1
  52. package/locales/da-DK.min.js +1 -1
  53. package/locales/de-DE.d.ts +1 -1
  54. package/locales/de-DE.esm.min.js +1 -1
  55. package/locales/de-DE.min.cjs +1 -1
  56. package/locales/de-DE.min.js +1 -1
  57. package/locales/el-GR.d.ts +1 -1
  58. package/locales/el-GR.esm.min.js +1 -1
  59. package/locales/el-GR.min.cjs +1 -1
  60. package/locales/el-GR.min.js +1 -1
  61. package/locales/en-US.d.ts +1 -1
  62. package/locales/en-US.esm.min.js +1 -1
  63. package/locales/en-US.min.cjs +1 -1
  64. package/locales/en-US.min.js +1 -1
  65. package/locales/es-ES.d.ts +1 -1
  66. package/locales/es-ES.esm.min.js +1 -1
  67. package/locales/es-ES.min.cjs +1 -1
  68. package/locales/es-ES.min.js +1 -1
  69. package/locales/fi-FI.d.ts +1 -1
  70. package/locales/fi-FI.esm.min.js +1 -1
  71. package/locales/fi-FI.min.cjs +1 -1
  72. package/locales/fi-FI.min.js +1 -1
  73. package/locales/fr-CA.d.ts +1 -1
  74. package/locales/fr-CA.esm.min.js +1 -1
  75. package/locales/fr-CA.min.cjs +1 -1
  76. package/locales/fr-CA.min.js +1 -1
  77. package/locales/fr-FR.d.ts +1 -1
  78. package/locales/fr-FR.esm.min.js +1 -1
  79. package/locales/fr-FR.min.cjs +1 -1
  80. package/locales/fr-FR.min.js +1 -1
  81. package/locales/hu-HU.d.ts +1 -1
  82. package/locales/hu-HU.esm.min.js +1 -1
  83. package/locales/hu-HU.min.cjs +1 -1
  84. package/locales/hu-HU.min.js +1 -1
  85. package/locales/it-IT.d.ts +1 -1
  86. package/locales/it-IT.esm.min.js +1 -1
  87. package/locales/it-IT.min.cjs +1 -1
  88. package/locales/it-IT.min.js +1 -1
  89. package/locales/ja-JP.d.ts +1 -1
  90. package/locales/ja-JP.esm.min.js +1 -1
  91. package/locales/ja-JP.min.cjs +1 -1
  92. package/locales/ja-JP.min.js +1 -1
  93. package/locales/nb-NO.d.ts +1 -1
  94. package/locales/nb-NO.esm.min.js +1 -1
  95. package/locales/nb-NO.min.cjs +1 -1
  96. package/locales/nb-NO.min.js +1 -1
  97. package/locales/nl-NL.d.ts +1 -1
  98. package/locales/nl-NL.esm.min.js +1 -1
  99. package/locales/nl-NL.min.cjs +1 -1
  100. package/locales/nl-NL.min.js +1 -1
  101. package/locales/pl-PL.d.ts +1 -1
  102. package/locales/pl-PL.esm.min.js +1 -1
  103. package/locales/pl-PL.min.cjs +1 -1
  104. package/locales/pl-PL.min.js +1 -1
  105. package/locales/pt-BR.d.ts +1 -1
  106. package/locales/pt-BR.esm.min.js +1 -1
  107. package/locales/pt-BR.min.cjs +1 -1
  108. package/locales/pt-BR.min.js +1 -1
  109. package/locales/ro-RO.d.ts +1 -1
  110. package/locales/ro-RO.esm.min.js +1 -1
  111. package/locales/ro-RO.min.cjs +1 -1
  112. package/locales/ro-RO.min.js +1 -1
  113. package/locales/sv-SE.d.ts +1 -1
  114. package/locales/sv-SE.esm.min.js +1 -1
  115. package/locales/sv-SE.min.cjs +1 -1
  116. package/locales/sv-SE.min.js +1 -1
  117. package/locales/uk-UA.d.ts +1 -1
  118. package/locales/uk-UA.esm.min.js +1 -1
  119. package/locales/uk-UA.min.cjs +1 -1
  120. package/locales/uk-UA.min.js +1 -1
  121. package/modules/ai.d.ts +1 -1
  122. package/modules/ai.esm.min.js +1 -1
  123. package/modules/ai.min.cjs +1 -1
  124. package/modules/ai.min.js +1 -1
  125. package/modules/alarms.d.ts +1 -1
  126. package/modules/alarms.esm.min.js +1 -1
  127. package/modules/alarms.min.cjs +1 -1
  128. package/modules/alarms.min.js +1 -1
  129. package/modules/angular.d.ts +1 -1
  130. package/modules/angular.esm.min.js +1 -1
  131. package/modules/angular.min.cjs +1 -1
  132. package/modules/angular.min.js +1 -1
  133. package/modules/calendar.d.ts +1 -1
  134. package/modules/calendar.esm.min.js +1 -1
  135. package/modules/calendar.min.cjs +1 -1
  136. package/modules/calendar.min.js +1 -1
  137. package/modules/chart-alluvial.d.ts +1 -1
  138. package/modules/chart-alluvial.esm.min.js +1 -1
  139. package/modules/chart-alluvial.min.cjs +1 -1
  140. package/modules/chart-alluvial.min.js +1 -1
  141. package/modules/chart-arc.d.ts +1 -1
  142. package/modules/chart-arc.esm.min.js +1 -1
  143. package/modules/chart-arc.min.cjs +1 -1
  144. package/modules/chart-arc.min.js +1 -1
  145. package/modules/chart-barrace.d.ts +1 -1
  146. package/modules/chart-barrace.esm.min.js +1 -1
  147. package/modules/chart-barrace.min.cjs +1 -1
  148. package/modules/chart-barrace.min.js +1 -1
  149. package/modules/chart-bubblemap.d.ts +1 -1
  150. package/modules/chart-bubblemap.esm.min.js +1 -1
  151. package/modules/chart-bubblemap.min.cjs +1 -1
  152. package/modules/chart-bubblemap.min.js +1 -1
  153. package/modules/chart-bump.d.ts +1 -1
  154. package/modules/chart-bump.esm.min.js +1 -1
  155. package/modules/chart-bump.min.cjs +1 -1
  156. package/modules/chart-bump.min.js +1 -1
  157. package/modules/chart-calendar.d.ts +1 -1
  158. package/modules/chart-calendar.esm.min.js +1 -1
  159. package/modules/chart-calendar.min.cjs +1 -1
  160. package/modules/chart-calendar.min.js +1 -1
  161. package/modules/chart-choropleth.d.ts +1 -1
  162. package/modules/chart-choropleth.esm.min.js +1 -1
  163. package/modules/chart-choropleth.min.cjs +1 -1
  164. package/modules/chart-choropleth.min.js +1 -1
  165. package/modules/chart-decomposition.d.ts +1 -1
  166. package/modules/chart-decomposition.esm.min.js +1 -1
  167. package/modules/chart-decomposition.min.cjs +1 -1
  168. package/modules/chart-decomposition.min.js +1 -1
  169. package/modules/chart-diverging.d.ts +1 -1
  170. package/modules/chart-diverging.esm.min.js +1 -1
  171. package/modules/chart-diverging.min.cjs +1 -1
  172. package/modules/chart-diverging.min.js +1 -1
  173. package/modules/chart-dumbbell.d.ts +1 -1
  174. package/modules/chart-dumbbell.esm.min.js +1 -1
  175. package/modules/chart-dumbbell.min.cjs +1 -1
  176. package/modules/chart-dumbbell.min.js +1 -1
  177. package/modules/chart-fan.d.ts +1 -1
  178. package/modules/chart-fan.esm.min.js +1 -1
  179. package/modules/chart-fan.min.cjs +1 -1
  180. package/modules/chart-fan.min.js +1 -1
  181. package/modules/chart-forcetree.d.ts +1 -1
  182. package/modules/chart-forcetree.esm.min.js +1 -1
  183. package/modules/chart-forcetree.min.cjs +1 -1
  184. package/modules/chart-forcetree.min.js +1 -1
  185. package/modules/chart-hexbin.d.ts +1 -1
  186. package/modules/chart-hexbin.esm.min.js +1 -1
  187. package/modules/chart-hexbin.min.cjs +1 -1
  188. package/modules/chart-hexbin.min.js +1 -1
  189. package/modules/chart-hexmap.d.ts +1 -1
  190. package/modules/chart-hexmap.esm.min.js +1 -1
  191. package/modules/chart-hexmap.min.cjs +1 -1
  192. package/modules/chart-hexmap.min.js +1 -1
  193. package/modules/chart-icicle.d.ts +1 -1
  194. package/modules/chart-icicle.esm.min.js +1 -1
  195. package/modules/chart-icicle.min.cjs +1 -1
  196. package/modules/chart-icicle.min.js +1 -1
  197. package/modules/chart-markermap.d.ts +1 -1
  198. package/modules/chart-markermap.esm.min.js +1 -1
  199. package/modules/chart-markermap.min.cjs +1 -1
  200. package/modules/chart-markermap.min.js +1 -1
  201. package/modules/chart-motion.d.ts +1 -1
  202. package/modules/chart-motion.esm.min.js +1 -1
  203. package/modules/chart-motion.min.cjs +1 -1
  204. package/modules/chart-motion.min.js +1 -1
  205. package/modules/chart-pack.d.ts +1 -1
  206. package/modules/chart-pack.esm.min.js +1 -1
  207. package/modules/chart-pack.min.cjs +1 -1
  208. package/modules/chart-pack.min.js +1 -1
  209. package/modules/chart-parallel.d.ts +1 -1
  210. package/modules/chart-parallel.esm.min.js +1 -1
  211. package/modules/chart-parallel.min.cjs +1 -1
  212. package/modules/chart-parallel.min.js +1 -1
  213. package/modules/chart-pictorial.d.ts +1 -1
  214. package/modules/chart-pictorial.esm.min.js +1 -1
  215. package/modules/chart-pictorial.min.cjs +1 -1
  216. package/modules/chart-pictorial.min.js +1 -1
  217. package/modules/chart-polararea.d.ts +1 -1
  218. package/modules/chart-polararea.esm.min.js +1 -1
  219. package/modules/chart-polararea.min.cjs +1 -1
  220. package/modules/chart-polararea.min.js +1 -1
  221. package/modules/chart-polarscatter.d.ts +1 -1
  222. package/modules/chart-polarscatter.esm.min.js +1 -1
  223. package/modules/chart-polarscatter.min.cjs +1 -1
  224. package/modules/chart-polarscatter.min.js +1 -1
  225. package/modules/chart-pyramid.d.ts +1 -1
  226. package/modules/chart-pyramid.esm.min.js +1 -1
  227. package/modules/chart-pyramid.min.cjs +1 -1
  228. package/modules/chart-pyramid.min.js +1 -1
  229. package/modules/chart-radialbar.d.ts +1 -1
  230. package/modules/chart-radialbar.esm.min.js +1 -1
  231. package/modules/chart-radialbar.min.cjs +1 -1
  232. package/modules/chart-radialbar.min.js +1 -1
  233. package/modules/chart-ridgeline.d.ts +1 -1
  234. package/modules/chart-ridgeline.esm.min.js +1 -1
  235. package/modules/chart-ridgeline.min.cjs +1 -1
  236. package/modules/chart-ridgeline.min.js +1 -1
  237. package/modules/chart-roc.d.ts +1 -1
  238. package/modules/chart-roc.esm.min.js +1 -1
  239. package/modules/chart-roc.min.cjs +1 -1
  240. package/modules/chart-roc.min.js +1 -1
  241. package/modules/chart-scatter3d.d.ts +1 -1
  242. package/modules/chart-scatter3d.esm.min.js +1 -1
  243. package/modules/chart-scatter3d.min.cjs +1 -1
  244. package/modules/chart-scatter3d.min.js +1 -1
  245. package/modules/chart-serpentine.d.ts +1 -1
  246. package/modules/chart-serpentine.esm.min.js +1 -1
  247. package/modules/chart-serpentine.min.cjs +1 -1
  248. package/modules/chart-serpentine.min.js +1 -1
  249. package/modules/chart-slope.d.ts +1 -1
  250. package/modules/chart-slope.esm.min.js +1 -1
  251. package/modules/chart-slope.min.cjs +1 -1
  252. package/modules/chart-slope.min.js +1 -1
  253. package/modules/chart-spiral.d.ts +1 -1
  254. package/modules/chart-spiral.esm.min.js +1 -1
  255. package/modules/chart-spiral.min.cjs +1 -1
  256. package/modules/chart-spiral.min.js +1 -1
  257. package/modules/chart-splom.d.ts +1 -1
  258. package/modules/chart-splom.esm.min.js +1 -1
  259. package/modules/chart-splom.min.cjs +1 -1
  260. package/modules/chart-splom.min.js +1 -1
  261. package/modules/chart-tree.d.ts +1 -1
  262. package/modules/chart-tree.esm.min.js +1 -1
  263. package/modules/chart-tree.min.cjs +1 -1
  264. package/modules/chart-tree.min.js +1 -1
  265. package/modules/chart-venn.d.ts +1 -1
  266. package/modules/chart-venn.esm.min.js +1 -1
  267. package/modules/chart-venn.min.cjs +1 -1
  268. package/modules/chart-venn.min.js +1 -1
  269. package/modules/chart-voronoi.d.ts +1 -1
  270. package/modules/chart-voronoi.esm.min.js +1 -1
  271. package/modules/chart-voronoi.min.cjs +1 -1
  272. package/modules/chart-voronoi.min.js +1 -1
  273. package/modules/chart-waffle.d.ts +1 -1
  274. package/modules/chart-waffle.esm.min.js +1 -1
  275. package/modules/chart-waffle.min.cjs +1 -1
  276. package/modules/chart-waffle.min.js +1 -1
  277. package/modules/chart-wordcloud.d.ts +1 -1
  278. package/modules/chart-wordcloud.esm.min.js +1 -1
  279. package/modules/chart-wordcloud.min.cjs +1 -1
  280. package/modules/chart-wordcloud.min.js +1 -1
  281. package/modules/charts.d.ts +1 -1
  282. package/modules/charts.esm.min.js +1 -1
  283. package/modules/charts.min.cjs +1 -1
  284. package/modules/charts.min.js +1 -1
  285. package/modules/dashboard.d.ts +1 -1
  286. package/modules/dashboard.esm.min.js +1 -1
  287. package/modules/dashboard.min.cjs +1 -1
  288. package/modules/dashboard.min.js +1 -1
  289. package/modules/data-router.d.ts +1 -1
  290. package/modules/data-router.esm.min.js +1 -1
  291. package/modules/data-router.min.cjs +1 -1
  292. package/modules/data-router.min.js +1 -1
  293. package/modules/deckgl.d.ts +1 -1
  294. package/modules/deckgl.esm.min.js +1 -1
  295. package/modules/deckgl.min.cjs +1 -1
  296. package/modules/deckgl.min.js +1 -1
  297. package/modules/designer.d.ts +1 -1
  298. package/modules/designer.esm.min.js +1 -1
  299. package/modules/designer.min.cjs +1 -1
  300. package/modules/designer.min.js +1 -1
  301. package/modules/devtools.d.ts +1 -1
  302. package/modules/devtools.esm.min.js +1 -1
  303. package/modules/devtools.min.cjs +1 -1
  304. package/modules/devtools.min.js +1 -1
  305. package/modules/dhtmlx-compat.d.ts +1 -1
  306. package/modules/dhtmlx-compat.esm.min.js +1 -1
  307. package/modules/dhtmlx-compat.min.cjs +1 -1
  308. package/modules/dhtmlx-compat.min.js +1 -1
  309. package/modules/form.d.ts +5 -3
  310. package/modules/form.esm.min.js +167 -150
  311. package/modules/form.esm.min.js.map +2 -2
  312. package/modules/form.min.cjs +167 -150
  313. package/modules/form.min.js +167 -150
  314. package/modules/form.min.js.map +2 -2
  315. package/modules/gantt.d.ts +1 -1
  316. package/modules/gantt.esm.min.js +1 -1
  317. package/modules/gantt.min.cjs +1 -1
  318. package/modules/gantt.min.js +1 -1
  319. package/modules/geo-europe-nuts.d.ts +1 -1
  320. package/modules/geo-europe-nuts.esm.min.js +1 -1
  321. package/modules/geo-europe-nuts.min.cjs +1 -1
  322. package/modules/geo-europe-nuts.min.js +1 -1
  323. package/modules/geo-uk.d.ts +1 -1
  324. package/modules/geo-uk.esm.min.js +1 -1
  325. package/modules/geo-uk.min.cjs +1 -1
  326. package/modules/geo-uk.min.js +1 -1
  327. package/modules/geo-us-states.d.ts +1 -1
  328. package/modules/geo-us-states.esm.min.js +1 -1
  329. package/modules/geo-us-states.min.cjs +1 -1
  330. package/modules/geo-us-states.min.js +1 -1
  331. package/modules/geo-world-110m.d.ts +1 -1
  332. package/modules/geo-world-110m.esm.min.js +1 -1
  333. package/modules/geo-world-110m.min.cjs +1 -1
  334. package/modules/geo-world-110m.min.js +1 -1
  335. package/modules/geo-world-50m.d.ts +1 -1
  336. package/modules/geo-world-50m.esm.min.js +1 -1
  337. package/modules/geo-world-50m.min.cjs +1 -1
  338. package/modules/geo-world-50m.min.js +1 -1
  339. package/modules/geometry.d.ts +1 -1
  340. package/modules/geometry.esm.min.js +1 -1
  341. package/modules/geometry.min.cjs +1 -1
  342. package/modules/geometry.min.js +1 -1
  343. package/modules/htmx.d.ts +1 -1
  344. package/modules/htmx.esm.min.js +2 -2
  345. package/modules/htmx.min.cjs +2 -2
  346. package/modules/htmx.min.js +2 -2
  347. package/modules/kanban.d.ts +1 -1
  348. package/modules/kanban.esm.min.js +1 -1
  349. package/modules/kanban.min.cjs +1 -1
  350. package/modules/kanban.min.js +1 -1
  351. package/modules/kpi.d.ts +1 -1
  352. package/modules/kpi.esm.min.js +1 -1
  353. package/modules/kpi.min.cjs +1 -1
  354. package/modules/kpi.min.js +1 -1
  355. package/modules/layout.d.ts +1 -1
  356. package/modules/layout.esm.min.js +1 -1
  357. package/modules/layout.min.cjs +1 -1
  358. package/modules/layout.min.js +1 -1
  359. package/modules/leaflet.d.ts +1 -1
  360. package/modules/leaflet.esm.min.js +1 -1
  361. package/modules/leaflet.min.cjs +1 -1
  362. package/modules/leaflet.min.js +1 -1
  363. package/modules/list.d.ts +1 -1
  364. package/modules/list.esm.min.js +1 -1
  365. package/modules/list.min.cjs +1 -1
  366. package/modules/list.min.js +1 -1
  367. package/modules/mapview.d.ts +1 -1
  368. package/modules/mapview.esm.min.js +1 -1
  369. package/modules/mapview.min.cjs +1 -1
  370. package/modules/mapview.min.js +1 -1
  371. package/modules/mock-socket.d.ts +1 -1
  372. package/modules/mock-socket.esm.min.js +1 -1
  373. package/modules/mock-socket.min.cjs +1 -1
  374. package/modules/mock-socket.min.js +1 -1
  375. package/modules/presets.d.ts +1 -1
  376. package/modules/presets.esm.min.js +1 -1
  377. package/modules/presets.min.cjs +1 -1
  378. package/modules/presets.min.js +1 -1
  379. package/modules/react.d.ts +1 -1
  380. package/modules/react.esm.min.js +1 -1
  381. package/modules/react.min.cjs +1 -1
  382. package/modules/react.min.js +1 -1
  383. package/modules/scheduler.d.ts +1 -1
  384. package/modules/scheduler.esm.min.js +1 -1
  385. package/modules/scheduler.min.cjs +1 -1
  386. package/modules/scheduler.min.js +1 -1
  387. package/modules/shell.d.ts +1 -1
  388. package/modules/shell.esm.min.js +1 -1
  389. package/modules/shell.min.cjs +1 -1
  390. package/modules/shell.min.js +1 -1
  391. package/modules/svelte.d.ts +1 -1
  392. package/modules/svelte.esm.min.js +1 -1
  393. package/modules/svelte.min.cjs +1 -1
  394. package/modules/svelte.min.js +1 -1
  395. package/modules/tabs.d.ts +1 -1
  396. package/modules/tabs.esm.min.js +1 -1
  397. package/modules/tabs.min.cjs +1 -1
  398. package/modules/tabs.min.js +1 -1
  399. package/modules/vue.d.ts +1 -1
  400. package/modules/vue.esm.min.js +1 -1
  401. package/modules/vue.min.cjs +1 -1
  402. package/modules/vue.min.js +1 -1
  403. package/modules/webcomponent.d.ts +1 -1
  404. package/modules/webcomponent.esm.min.js +2 -2
  405. package/modules/webcomponent.min.cjs +2 -2
  406. package/modules/webcomponent.min.js +2 -2
  407. package/package.json +1 -1
@@ -1,9 +1,15 @@
1
1
  /*!
2
- * Lattice Grid 1.101.2, form module
2
+ * Lattice Grid 1.101.3, form module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- (function(Gt){"use strict";var ur=!0,It=Object.create(null),Rt=Object.create(null);function je(M,X){It[M]=X}function Bt(M){var X=Rt[M];if(X)return X;var e=Object.create(null);Rt[M]=e;var U=It[M];if(!U)throw new Error("[lattice] missing module: "+M);return U(e,Bt),e}je("packages/modules/form/styles.js",function(M,X){"use strict";Object.defineProperty(M,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"css",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"injectStyles",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"injectColsBreakpoint",{enumerable:!0,get:function(){return g}});const e="lat-form",U="data-lattice-form-styles";function O(){return`
6
+ (function(Yt){"use strict";var mr=!0,Bt=Object.create(null),Ft=Object.create(null);function Ne(S,q){Bt[S]=q}function Ht(S){var q=Ft[S];if(q)return q;var e=Object.create(null);Ft[S]=e;var U=Bt[S];if(!U)throw new Error("[lattice] missing module: "+S);return U(e,Ht),e}Ne("packages/modules/form/styles.js",function(S,q){"use strict";Object.defineProperty(S,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"css",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"injectStyles",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"injectColsBreakpoint",{enumerable:!0,get:function(){return N}});const e="lat-form",U="lat-cols-never",$="data-lattice-form-styles";function Q(){return`
7
+ /* The shared top-level layer host (BACKLOG-0002291): select, combo and the
8
+ date picker each reparent their own popup in here while it is open, so an
9
+ ancestor's \`overflow: hidden\` or fixed height never clips it. One host per
10
+ document; it carries no box of its own, each popup positions itself
11
+ \`fixed\` against its field. */
12
+ .lat-form__layer-host{ position:static; }
7
13
  .${e}{
8
14
  --lattice-density-scale:1;
9
15
  --lattice-presentation-scale:1;
@@ -66,7 +72,10 @@
66
72
  and __cols runs side by side (the top-level form and the fieldset body add
67
73
  the same class). __cols shares the width among its children by default and
68
74
  stacks them into one column once its own width drops below the breakpoint
69
- (BACKLOG-0002196). */
75
+ (BACKLOG-0002196); a colsBreakpoint of 0 or false renames the container to a
76
+ name with no matching @container rule, so it never stacks. A fullWidth button
77
+ fills its own column via min-width:0 here plus the button's own data-full
78
+ width, so two fullWidth buttons keep sharing the row. */
70
79
  .${e}__rows{
71
80
  display:flex; flex-direction:column; box-sizing:border-box; min-width:0; min-height:0;
72
81
  gap:var(--lattice-form-item-gap); align-items:stretch;
@@ -295,6 +304,10 @@
295
304
  box-shadow:0 6px 20px rgba(0,0,0,.16); color:var(--lattice-foreground);
296
305
  }
297
306
  .lat-combo__popup[hidden]{ display:none; }
307
+ /* While open the popup lives in the shared layer host, positioned \`fixed\`
308
+ against the control (BACKLOG-0002291): the JS sets \`top\`/\`left\`/\`width\`
309
+ inline, this only supplies the flipped side's class. */
310
+ .lat-combo__popup--above{ top:auto; bottom:100%; margin-top:0; margin-bottom:2px; }
298
311
  .lat-combo__list{
299
312
  position:relative; box-sizing:border-box; max-height:calc(var(--lattice-row-height) * 8);
300
313
  overflow-y:auto; overflow-x:hidden;
@@ -663,6 +676,10 @@
663
676
  box-shadow:0 4px 12px color-mix(in srgb, var(--lattice-foreground) 20%, transparent);
664
677
  }
665
678
  .${e}__datepicker-popup[hidden]{ display:none; }
679
+ /* While open the popup lives in the shared layer host, positioned \`fixed\`
680
+ against the picker (BACKLOG-0002291): the JS sets \`top\`/\`left\`/\`min-width\`
681
+ inline, this only supplies the flipped side's class. */
682
+ .${e}__datepicker-popup--above{ top:auto; bottom:calc(100% + var(--lattice-space) / 2); }
666
683
  .${e}__datepicker-head{ display:flex; flex-direction:row; align-items:center; gap:calc(var(--lattice-space) / 2); }
667
684
  .${e}__datepicker .${e}__datepicker-nav{ flex:0 0 auto; width:var(--lattice-row-height); cursor:pointer; padding:0; }
668
685
  .${e}__datepicker-title{ flex:1 1 auto; text-align:center; font-weight:600; }
@@ -1080,13 +1097,13 @@
1080
1097
  font:inherit; cursor:pointer; padding:0 calc(var(--lattice-space) * 1.25);
1081
1098
  }
1082
1099
  .${e}__color-select{ margin-left:auto; background:var(--lattice-accent); border-color:var(--lattice-accent); color:#fff; }
1083
- `.trim()}function re(L){const C=L&&L.documentElement;if(!C||C.getAttribute(U))return;C.setAttribute(U,"1");const A=L.createElement("style");A.textContent=O(),(L.head||L.body||C).appendChild(A)}function g(L,C){const A=`lat-cols-bp-${String(C).replace(/[^0-9]/g,"")}`,H=`data-lattice-cols-breakpoint-${A}`,T=L&&L.documentElement;if(T&&!T.querySelector(`style[${H}]`)){const v=L.createElement("style");v.setAttribute(H,"1"),v.textContent=`@container ${A} (max-width:${C}px){.${e}__cols > *{flex:1 1 100%}}`,(L.head||L.body||T).appendChild(v)}return A}}),je("packages/modules/form/controls/registry.js",function(M,X){"use strict";Object.defineProperty(M,"registerControl",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"resolveControl",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"controlTypes",{enumerable:!0,get:function(){return re}});const e=new Map;function U(g,L){e.set(g,L)}function O(g){return e.get(g)||null}function re(){return[...e.keys()]}}),je("packages/modules/form/validation.js",function(M,X){"use strict";Object.defineProperty(M,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"BUILTIN_RULES",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"isEmpty",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"resolveValidationMode",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"validateValue",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"normalizeHookResult",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["change","blur","submit"]),U=Object.freeze(["email","number","integer","url"]),O=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function re(f){return f==null||f===""||f===!1||Array.isArray(f)&&f.length===0}function g(f){return e.includes(f)?f:"submit"}function L(f){return Object.prototype.toString.call(f)==="[object RegExp]"}function C(f,u){if(f==="email")return typeof u=="string"&&O.test(u);if(f==="number")return Number.isFinite(Number(u));if(f==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(f==="url"){if(typeof u!="string")return!1;try{const h=new URL(u);return h.protocol==="http:"||h.protocol==="https:"}catch{return!1}}return!0}function A(f,u){return typeof f.errorMessage=="string"&&f.errorMessage!==""?f.errorMessage:u}function H(f,u,h,x){let t;try{t=f(u,h)}catch{return{code:"custom",message:A(h,x("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:A(h,x("form.validation.custom"))}:{code:"custom",message:String(t)}}function T(f,u,h,x){if((f.required===!0||x===!0)&&re(u))return{code:"required",message:A(f,h("form.validation.required"))};const t=f.validation;return t==null?null:typeof t=="function"?H(t,u,f,h):L(t)?re(u)||t.test(String(u))?null:{code:"pattern",message:A(f,h("form.validation.pattern"))}:typeof t=="string"&&U.includes(t)?re(u)||C(t,u)?null:{code:t,message:A(f,h(`form.validation.${t}`))}:null}function v(f,u,h){return f==null||f===!0?null:f===!1?{code:"custom",message:A(u,h("form.validation.custom"))}:typeof f=="string"?{code:"custom",message:f}:typeof f=="object"?{code:f.code||"custom",message:f.message!=null?String(f.message):A(u,h("form.validation.custom"))}:null}}),je("packages/modules/form/model.js",function(M,X){"use strict";Object.defineProperty(M,"isEmpty",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"DENSITIES",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"CONTROL_TYPES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"cssSize",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"resolveLabelPosition",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"resolveDensity",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"resolveColsBreakpoint",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"axisOf",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"normalizeItem",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"normalizeBlock",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"resolveConfig",{enumerable:!0,get:function(){return h}});const U=X("packages/modules/form/validation.js").resolveValidationMode;function O(t){return t!==null&&typeof t=="object"}function re(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const g=Object.freeze(["compact","standard","comfortable"]),L=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial"]);function C(t){return typeof t=="number"?`${t}px`:String(t)}function A(t){return t==="left"||t==="hidden"?t:"top"}function H(t){return g.includes(t)?t:"standard"}function T(t){return typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function v(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 f(t,n){const a=t.text!=null&&t.type===void 0,m=a?"text":t.type!=null&&t.type!==""?String(t.type):"input",E=a?t.text:t.value,_={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:m,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:E,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:U(t.validationMode),props:O(t.props)?Object.assign({},t.props):{},path:n};for(const c of Object.keys(t))!(c in _)&&c!=="text"&&c!=="value"&&c!=="type"&&(_.props[c]=t[c]);return _}function u(t,n){if(!O(t))return null;if(t.fieldset!=null){const m=O(t.fieldset)?t.fieldset:t,E=O(t.fieldset)?t.fieldset.legend:t.fieldset,_=v(m),c=_==="items"?m.items:_==="rows"?m.rows:_==="cols"?m.cols:[];return{kind:"fieldset",legend:E==null?null:String(E),axis:_,spacing:m.spacing==null?null:C(m.spacing),labelPosition:m.labelPosition==null?null:A(m.labelPosition),labelWidth:m.labelWidth,blocks:c.filter(O).map((S,o)=>u(S,`${n}/${o}`)).filter(Boolean),css:m.css,hidden:m.hidden===!0}}if(t.container!=null){const m=O(t.container)?t.container:t,E=v(m),_=E==="items"?m.items:E==="rows"?m.rows:E==="cols"?m.cols:[];return{kind:"container",axis:E,spacing:m.spacing==null?null:C(m.spacing),labelPosition:m.labelPosition==null?null:A(m.labelPosition),labelWidth:m.labelWidth,blocks:_.filter(O).map((c,S)=>u(c,`${n}/${S}`)).filter(Boolean),css:m.css,hidden:m.hidden===!0}}if(t.panel!=null){const m=O(t.panel)?t.panel:{},E=O(t.panel)&&v(t.panel)?t.panel:t,_=v(E),c=_==="items"?E.items:_==="rows"?E.rows:_==="cols"?E.cols:[],S=Array.isArray(m.actions)?m.actions.filter(O).map(o=>({icon:o.icon,ariaLabel:o.ariaLabel!=null&&o.ariaLabel!==""?String(o.ariaLabel):null,onClick:typeof o.onClick=="function"?o.onClick:null})):[];return{kind:"panel",title:m.title!=null&&m.title!==""?String(m.title):null,subtitle:m.subtitle!=null&&m.subtitle!==""?String(m.subtitle):null,actions:S,collapsible:m.collapsible===!0,axis:_,spacing:E.spacing==null?null:C(E.spacing),labelPosition:E.labelPosition==null?null:A(E.labelPosition),labelWidth:E.labelWidth,blocks:c.filter(O).map((o,d)=>u(o,`${n}/${d}`)).filter(Boolean),css:E.css,hidden:E.hidden===!0}}const a=v(t);if(a){const m=a==="items"?t.items:a==="rows"?t.rows:t.cols;return{kind:"container",axis:a,spacing:t.spacing==null?null:C(t.spacing),labelPosition:t.labelPosition==null?null:A(t.labelPosition),labelWidth:t.labelWidth,blocks:m.filter(O).map((E,_)=>u(E,`${n}/${_}`)).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}:f(t,n)}function h(t={}){const n=O(t)?t:{},a=Array.isArray(n.steps)?n.steps.filter(O).map((o,d)=>x(o,d)).filter(Boolean):[],m=a.length>0,E=!m&&Array.isArray(n.rows)&&n.rows.length,_=!m&&!E&&Array.isArray(n.cols)&&n.cols.length,c=E||m?"rows":"cols",S=m?[]:E?n.rows:_?n.cols:[];return{axis:c,density:H(n.density),css:n.css,messages:n.messages,colsBreakpoint:T(n.colsBreakpoint),spacing:n.spacing==null?null:C(n.spacing),labelGap:n.labelGap==null?null:C(n.labelGap),labelPosition:n.labelPosition==null?null:A(n.labelPosition),labelWidth:n.labelWidth,requiredHint:n.requiredHint,blocks:S.filter(O).map((o,d)=>u(o,String(d))).filter(Boolean),steps:a,stepOrientation:n.stepOrientation==="vertical"?"vertical":"horizontal"}}function x(t,n){const m=(Array.isArray(t.rows)?t.rows:[]).filter(O).map((E,_)=>u(E,`step${n}/${_}`)).filter(Boolean);return m.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${n}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:m,css:t.css}}}),je("packages/modules/form/state.js",function(M,X){"use strict";Object.defineProperty(M,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"guardBooleanInput",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"syncRootAria",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"syncRecordState",{enumerable:!0,get:function(){return re}});function e(g,L,C){g.disabled=L===!0,g.__latReadOnly=C===!0,C===!0?g.setAttribute("aria-readonly","true"):g.removeAttribute("aria-readonly")}function U(g){const L=()=>g.__latReadOnly===!0,C=v=>{L()&&v.preventDefault()},A=v=>{L()&&(v.preventDefault(),v.stopPropagation())},H=v=>{L()&&(v.key===" "||v.key==="Enter")&&v.preventDefault()},T=v=>{L()&&v.key===" "&&v.preventDefault()};g.addEventListener("pointerdown",C),g.addEventListener("click",A),g.addEventListener("keydown",H),g.addEventListener("keyup",T)}function O(g,L,C){L?g.setAttribute("aria-disabled","true"):g.removeAttribute("aria-disabled"),C?g.setAttribute("aria-readonly","true"):g.removeAttribute("aria-readonly")}function re(g){const L=g.item,C=L.disabled===!0,A=L.readOnly===!0||g.ruleReadOnly===!0;g.controlWrap&&(g.controlWrap.setAttribute("data-disabled",C?"true":"false"),g.controlWrap.setAttribute("data-readonly",A?"true":"false")),g.def.state(g.control,{...L,readOnly:A}),typeof g.syncLock=="function"&&g.syncLock(),typeof g.syncAddons=="function"&&g.syncAddons()}}),je("packages/modules/form/group-rules.js",function(M,X){"use strict";Object.defineProperty(M,"attachRuleResolver",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"detachRuleResolver",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"ruleResolverFor",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"makeRuleResolver",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"reapplyMembers",{enumerable:!0,get:function(){return L}});const e=new WeakMap;function U(C,A){e.set(C,A)}function O(C){e.delete(C)}function re(C){return e.get(C)}function g(C){const{owners:A,byId:H,warnOnce:T}=C;return function(f,u){if(f==null||typeof f!="object")return;const h=f.name;if(f.form!=null){const t=H.get(f.form);if(!t){T(`form.group.unknown-member:${String(f.form)}`,`form group: a rule pins the member "${f.form}", but no member has that id; the rule reads an empty value.`);return}return h!=null?t.form.getValue()[h]:void 0}if(h==null)return;if(Object.prototype.hasOwnProperty.call(u,h))return u[h];const x=A.get(String(h));if(x)return x.form.getValue()[h]}}function L(C){for(const A of C)A.form&&typeof A.form.__reapplyRules=="function"&&A.form.__reapplyRules()}}),je("packages/modules/form/rules.js",function(M,X){"use strict";Object.defineProperty(M,"evalRule",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"applyRules",{enumerable:!0,get:function(){return A}});const U=X("packages/modules/form/model.js").isEmpty,re=X("packages/modules/form/state.js").syncRecordState,L=X("packages/modules/form/group-rules.js").ruleResolverFor;function C(T,v,f){if(T==null)return null;if(typeof T=="function")return!!T(v);if(typeof T=="boolean")return T;if(typeof T=="object"){const u=f?f(T,v):T.name!=null?v[T.name]:void 0;if(typeof T.fn=="function")return!!T.fn(u,v);let h=!0,x=!1;return Object.prototype.hasOwnProperty.call(T,"equals")&&(x=!0,h=h&&u===T.equals),Object.prototype.hasOwnProperty.call(T,"in")&&(x=!0,h=h&&Array.isArray(T.in)&&T.in.includes(u)),Object.prototype.hasOwnProperty.call(T,"empty")&&(x=!0,h=h&&U(u)===!!T.empty),x?h:!1}return!1}function A(T){const v={};for(const u of T.order)u.item.name!=null&&(v[u.item.name]=u.value);const f=T.form?L(T.form):void 0;for(const u of T.order){const h=u.item;u.ruleHidden=C(h.visibleWhen,v,f)===!1,u.ruleReadOnly=C(h.readOnlyWhen,v,f)===!0,u.ruleRequired=C(h.requiredWhen,v,f)===!0,u.el.hidden=u.hidden||u.ruleHidden,re(u);const x=h.required===!0||u.ruleRequired,t=u.labelEl!=null&&u.labelPosition!=="hidden",n=u.placeholderEl||u.control;x?n.setAttribute("aria-required","true"):n.removeAttribute("aria-required"),x&&t?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),H(u,x,t,a=>T.t(a))}}function H(T,v,f,u){const h=T.placeholderEl;if(!h)return;const x=T.placeholderBase;if(v&&!f&&x!==""){const t=T.requiredHint,n=t===!1?"":typeof t=="string"?u(t):" *";h.placeholder=x+n}else h.placeholder=x}}),je("packages/modules/form/stepper.js",function(M,X){"use strict";Object.defineProperty(M,"createStepper",{enumerable:!0,get:function(){return re}});const U=X("packages/modules/form/styles.js").NS;function O(g,L,C){return Math.min(C,Math.max(L,g))}function re(g,L){const C=L.doc,A=L.steps||[],H=L.t||(_=>_),T=L.orientation==="vertical"?"vertical":"horizontal";let v=O(Number(L.active)||0,0,Math.max(0,A.length-1));const f=[];g.className=`${U}__stepper ${U}__stepper--${T}`,g.setAttribute("data-orientation",T),g.setAttribute("role","navigation"),g.setAttribute("aria-label",H("form.steps"));const u=C.createElement("ol");u.className=`${U}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",T),g.appendChild(u);let h=[];const x=_=>f[_]?f[_]:_<v?"complete":_===v?"active":"pending",t=_=>_<=v+1,n=()=>{u.textContent="",h=A.map((_,c)=>{const S=x(c),o=C.createElement("li");o.className=`${U}__stepper-item is-${S}`+(c===v?" is-active":"")+(t(c)?"":" is-locked");const d=C.createElement("button");d.type="button",d.className=`${U}__stepper-step`,d.setAttribute("role","tab"),d.setAttribute("aria-selected",c===v?"true":"false"),c===v&&d.setAttribute("aria-current","step"),d.tabIndex=c===v?0:-1,d.setAttribute("aria-disabled",t(c)?"false":"true");const l=C.createElement("span");l.className=`${U}__stepper-marker`,l.setAttribute("aria-hidden","true"),l.textContent=S==="complete"?"✓":S==="error"?"!":String(c+1),d.appendChild(l);const s=C.createElement("span");return s.className=`${U}__stepper-label`,s.textContent=_.label!=null&&_.label!==""?_.label:`${H("form.step")} ${c+1}`,d.appendChild(s),o.appendChild(d),u.appendChild(o),d})},a=_=>{typeof L.onGoTo=="function"&&t(_)&&L.onGoTo(_)},m=_=>{const c=_.target&&_.target.closest?_.target.closest(`.${U}__stepper-step`):null;if(!c||!u.contains(c))return;const S=h.indexOf(c);S>=0&&a(S)},E=_=>{const c=_.target&&_.target.closest?_.target.closest(`.${U}__stepper-step`):null;if(!c||!u.contains(c))return;const S=A.length;let o=h.indexOf(c);if(o<0)return;if(_.key==="ArrowRight"||_.key==="ArrowDown")o=(o+1)%S;else if(_.key==="ArrowLeft"||_.key==="ArrowUp")o=(o-1+S)%S;else if(_.key==="Home")o=0;else if(_.key==="End")o=S-1;else if(_.key==="Enter"||_.key===" "){_.preventDefault(),a(o);return}else return;_.preventDefault();const d=h[o];d&&d.focus()};return u.addEventListener("click",m),u.addEventListener("keydown",E),n(),{el:g,setActive(_){v=O(Number(_)||0,0,Math.max(0,A.length-1)),n()},setStatus(_,c){f[_]=c,n()},statusOf:x}}}),je("packages/core/src/internal/icon-builtins.js",function(M,X){"use strict";Object.defineProperty(M,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"normaliseIcon",{enumerable:!0,get:function(){return U}});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 U(O){return typeof O=="string"?{viewBox:"0 0 16 16",paths:[O],paint:"fill"}:Array.isArray(O)?{viewBox:"0 0 16 16",paths:O.slice(),paint:"fill"}:{viewBox:O&&O.viewBox||"0 0 16 16",paths:O&&Array.isArray(O.paths)?O.paths.slice():O&&O.path?[O.path]:[],paint:O&&O.paint==="stroke"?"stroke":"fill"}}}),je("packages/modules/form/controls/field-icon.js",function(M,X){"use strict";Object.defineProperty(M,"fieldIconStylesheet",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"injectFieldIconStyles",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"makeFieldIcon",{enumerable:!0,get:function(){return C}});const U=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,O="http://www.w3.org/2000/svg",re="data-lattice-form-field-icon-styles";function g(){return`
1100
+ `.trim()}function b(y){const C=y&&y.documentElement;if(!C||C.getAttribute($))return;C.setAttribute($,"1");const F=y.createElement("style");F.textContent=Q(),(y.head||y.body||C).appendChild(F)}function N(y,C){const F=`lat-cols-bp-${String(C).replace(/[^0-9]/g,"")}`,O=`data-lattice-cols-breakpoint-${F}`,v=y&&y.documentElement;if(v&&!v.querySelector(`style[${O}]`)){const f=y.createElement("style");f.setAttribute(O,"1"),f.textContent=`@container ${F} (max-width:${C}px){.${e}__cols > *{flex:1 1 100%}}`,(y.head||y.body||v).appendChild(f)}return F}}),Ne("packages/modules/form/controls/registry.js",function(S,q){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"resolveControl",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"controlTypes",{enumerable:!0,get:function(){return Q}});const e=new Map;function U(b,N){e.set(b,N)}function $(b){return e.get(b)||null}function Q(){return[...e.keys()]}}),Ne("packages/modules/form/validation.js",function(S,q){"use strict";Object.defineProperty(S,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"BUILTIN_RULES",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"resolveValidationMode",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"validateValue",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"normalizeHookResult",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["change","blur","submit"]),U=Object.freeze(["email","number","integer","url"]),$=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Q(f){return f==null||f===""||f===!1||Array.isArray(f)&&f.length===0}function b(f){return e.includes(f)?f:"submit"}function N(f){return Object.prototype.toString.call(f)==="[object RegExp]"}function y(f,u){if(f==="email")return typeof u=="string"&&$.test(u);if(f==="number")return Number.isFinite(Number(u));if(f==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(f==="url"){if(typeof u!="string")return!1;try{const d=new URL(u);return d.protocol==="http:"||d.protocol==="https:"}catch{return!1}}return!0}function C(f,u){return typeof f.errorMessage=="string"&&f.errorMessage!==""?f.errorMessage:u}function F(f,u,d,_){let t;try{t=f(u,d)}catch{return{code:"custom",message:C(d,_("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:C(d,_("form.validation.custom"))}:{code:"custom",message:String(t)}}function O(f,u,d,_){if((f.required===!0||_===!0)&&Q(u))return{code:"required",message:C(f,d("form.validation.required"))};const t=f.validation;return t==null?null:typeof t=="function"?F(t,u,f,d):N(t)?Q(u)||t.test(String(u))?null:{code:"pattern",message:C(f,d("form.validation.pattern"))}:typeof t=="string"&&U.includes(t)?Q(u)||y(t,u)?null:{code:t,message:C(f,d(`form.validation.${t}`))}:null}function v(f,u,d){return f==null||f===!0?null:f===!1?{code:"custom",message:C(u,d("form.validation.custom"))}:typeof f=="string"?{code:"custom",message:f}:typeof f=="object"?{code:f.code||"custom",message:f.message!=null?String(f.message):C(u,d("form.validation.custom"))}:null}}),Ne("packages/modules/form/model.js",function(S,q){"use strict";Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"DENSITIES",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"CONTROL_TYPES",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"cssSize",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"resolveLabelPosition",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"resolveDensity",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"resolveColsBreakpoint",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"axisOf",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"normalizeItem",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"normalizeBlock",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"resolveConfig",{enumerable:!0,get:function(){return d}});const U=q("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 b=Object.freeze(["compact","standard","comfortable"]),N=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial"]);function y(t){return typeof t=="number"?`${t}px`:String(t)}function C(t){return t==="left"||t==="hidden"?t:"top"}function F(t){return b.includes(t)?t:"standard"}function O(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function v(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 f(t,r){const o=t.text!=null&&t.type===void 0,p=o?"text":t.type!=null&&t.type!==""?String(t.type):"input",A=o?t.text:t.value,g={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:p,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:A,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:U(t.validationMode),props:$(t.props)?Object.assign({},t.props):{},path:r};for(const h of Object.keys(t))!(h in g)&&h!=="text"&&h!=="value"&&h!=="type"&&(g.props[h]=t[h]);return g}function u(t,r){if(!$(t))return null;if(t.fieldset!=null){const p=$(t.fieldset)?t.fieldset:t,A=$(t.fieldset)?t.fieldset.legend:t.fieldset,g=v(p),h=g==="items"?p.items:g==="rows"?p.rows:g==="cols"?p.cols:[];return{kind:"fieldset",legend:A==null?null:String(A),axis:g,spacing:p.spacing==null?null:y(p.spacing),labelPosition:p.labelPosition==null?null:C(p.labelPosition),labelWidth:p.labelWidth,blocks:h.filter($).map((T,c)=>u(T,`${r}/${c}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.container!=null){const p=$(t.container)?t.container:t,A=v(p),g=A==="items"?p.items:A==="rows"?p.rows:A==="cols"?p.cols:[];return{kind:"container",axis:A,spacing:p.spacing==null?null:y(p.spacing),labelPosition:p.labelPosition==null?null:C(p.labelPosition),labelWidth:p.labelWidth,blocks:g.filter($).map((h,T)=>u(h,`${r}/${T}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}if(t.panel!=null){const p=$(t.panel)?t.panel:{},A=$(t.panel)&&v(t.panel)?t.panel:t,g=v(A),h=g==="items"?A.items:g==="rows"?A.rows:g==="cols"?A.cols:[],T=Array.isArray(p.actions)?p.actions.filter($).map(c=>({icon:c.icon,ariaLabel:c.ariaLabel!=null&&c.ariaLabel!==""?String(c.ariaLabel):null,onClick:typeof c.onClick=="function"?c.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:T,collapsible:p.collapsible===!0,axis:g,spacing:A.spacing==null?null:y(A.spacing),labelPosition:A.labelPosition==null?null:C(A.labelPosition),labelWidth:A.labelWidth,blocks:h.filter($).map((c,l)=>u(c,`${r}/${l}`)).filter(Boolean),css:A.css,hidden:A.hidden===!0}}const o=v(t);if(o){const p=o==="items"?t.items:o==="rows"?t.rows:t.cols;return{kind:"container",axis:o,spacing:t.spacing==null?null:y(t.spacing),labelPosition:t.labelPosition==null?null:C(t.labelPosition),labelWidth:t.labelWidth,blocks:p.filter($).map((A,g)=>u(A,`${r}/${g}`)).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}:f(t,r)}function d(t={}){const r=$(t)?t:{},o=Array.isArray(r.steps)?r.steps.filter($).map((c,l)=>_(c,l)).filter(Boolean):[],p=o.length>0,A=!p&&Array.isArray(r.rows)&&r.rows.length,g=!p&&!A&&Array.isArray(r.cols)&&r.cols.length,h=A||p?"rows":"cols",T=p?[]:A?r.rows:g?r.cols:[];return{axis:h,density:F(r.density),css:r.css,messages:r.messages,colsBreakpoint:O(r.colsBreakpoint),spacing:r.spacing==null?null:y(r.spacing),labelGap:r.labelGap==null?null:y(r.labelGap),labelPosition:r.labelPosition==null?null:C(r.labelPosition),labelWidth:r.labelWidth,requiredHint:r.requiredHint,blocks:T.filter($).map((c,l)=>u(c,String(l))).filter(Boolean),steps:o,stepOrientation:r.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:r.validateSteps!==!1}}function _(t,r){const p=(Array.isArray(t.rows)?t.rows:[]).filter($).map((A,g)=>u(A,`step${r}/${g}`)).filter(Boolean);return p.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${r}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:p,css:t.css}}}),Ne("packages/modules/form/state.js",function(S,q){"use strict";Object.defineProperty(S,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"guardBooleanInput",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"syncRootAria",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"syncRecordState",{enumerable:!0,get:function(){return Q}});function e(b,N,y){b.disabled=N===!0,b.__latReadOnly=y===!0,y===!0?b.setAttribute("aria-readonly","true"):b.removeAttribute("aria-readonly")}function U(b){const N=()=>b.__latReadOnly===!0,y=v=>{N()&&v.preventDefault()},C=v=>{N()&&(v.preventDefault(),v.stopPropagation())},F=v=>{N()&&(v.key===" "||v.key==="Enter")&&v.preventDefault()},O=v=>{N()&&v.key===" "&&v.preventDefault()};b.addEventListener("pointerdown",y),b.addEventListener("click",C),b.addEventListener("keydown",F),b.addEventListener("keyup",O)}function $(b,N,y){N?b.setAttribute("aria-disabled","true"):b.removeAttribute("aria-disabled"),y?b.setAttribute("aria-readonly","true"):b.removeAttribute("aria-readonly")}function Q(b){const N=b.item,y=N.disabled===!0,C=N.readOnly===!0||b.ruleReadOnly===!0;b.controlWrap&&(b.controlWrap.setAttribute("data-disabled",y?"true":"false"),b.controlWrap.setAttribute("data-readonly",C?"true":"false")),b.def.state(b.control,{...N,readOnly:C}),typeof b.syncLock=="function"&&b.syncLock(),typeof b.syncAddons=="function"&&b.syncAddons()}}),Ne("packages/modules/form/group-rules.js",function(S,q){"use strict";Object.defineProperty(S,"attachRuleResolver",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"detachRuleResolver",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"ruleResolverFor",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"makeRuleResolver",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"reapplyMembers",{enumerable:!0,get:function(){return N}});const e=new WeakMap;function U(y,C){e.set(y,C)}function $(y){e.delete(y)}function Q(y){return e.get(y)}function b(y){const{owners:C,byId:F,warnOnce:O}=y;return function(f,u){if(f==null||typeof f!="object")return;const d=f.name;if(f.form!=null){const t=F.get(f.form);if(!t){O(`form.group.unknown-member:${String(f.form)}`,`form group: a rule pins the member "${f.form}", but no member has that id; the rule reads an empty value.`);return}return d!=null?t.form.getValue()[d]:void 0}if(d==null)return;if(Object.prototype.hasOwnProperty.call(u,d))return u[d];const _=C.get(String(d));if(_)return _.form.getValue()[d]}}function N(y){for(const C of y)C.form&&typeof C.form.__reapplyRules=="function"&&C.form.__reapplyRules()}}),Ne("packages/modules/form/rules.js",function(S,q){"use strict";Object.defineProperty(S,"evalRule",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"applyRules",{enumerable:!0,get:function(){return C}});const U=q("packages/modules/form/model.js").isEmpty,Q=q("packages/modules/form/state.js").syncRecordState,N=q("packages/modules/form/group-rules.js").ruleResolverFor;function y(O,v,f){if(O==null)return null;if(typeof O=="function")return!!O(v);if(typeof O=="boolean")return O;if(typeof O=="object"){const u=f?f(O,v):O.name!=null?v[O.name]:void 0;if(typeof O.fn=="function")return!!O.fn(u,v);let d=!0,_=!1;return Object.prototype.hasOwnProperty.call(O,"equals")&&(_=!0,d=d&&u===O.equals),Object.prototype.hasOwnProperty.call(O,"in")&&(_=!0,d=d&&Array.isArray(O.in)&&O.in.includes(u)),Object.prototype.hasOwnProperty.call(O,"empty")&&(_=!0,d=d&&U(u)===!!O.empty),_?d:!1}return!1}function C(O){const v={};for(const u of O.order)u.item.name!=null&&(v[u.item.name]=u.value);const f=O.form?N(O.form):void 0;for(const u of O.order){const d=u.item;u.ruleHidden=y(d.visibleWhen,v,f)===!1,u.ruleReadOnly=y(d.readOnlyWhen,v,f)===!0,u.ruleRequired=y(d.requiredWhen,v,f)===!0,u.el.hidden=u.hidden||u.ruleHidden,Q(u);const _=d.required===!0||u.ruleRequired,t=u.labelEl!=null&&u.labelPosition!=="hidden",r=u.placeholderEl||u.control;_?r.setAttribute("aria-required","true"):r.removeAttribute("aria-required"),_&&t?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),F(u,_,t,o=>O.t(o))}}function F(O,v,f,u){const d=O.placeholderEl;if(!d)return;const _=O.placeholderBase;if(v&&!f&&_!==""){const t=O.requiredHint,r=t===!1?"":typeof t=="string"?u(t):" *";d.placeholder=_+r}else d.placeholder=_}}),Ne("packages/modules/form/stepper.js",function(S,q){"use strict";Object.defineProperty(S,"createStepper",{enumerable:!0,get:function(){return Q}});const U=q("packages/modules/form/styles.js").NS;function $(b,N,y){return Math.min(y,Math.max(N,b))}function Q(b,N){const y=N.doc,C=N.steps||[],F=N.t||(g=>g),O=N.orientation==="vertical"?"vertical":"horizontal";let v=$(Number(N.active)||0,0,Math.max(0,C.length-1));const f=[];b.className=`${U}__stepper ${U}__stepper--${O}`,b.setAttribute("data-orientation",O),b.setAttribute("role","navigation"),b.setAttribute("aria-label",F("form.steps"));const u=y.createElement("ol");u.className=`${U}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",O),b.appendChild(u);let d=[];const _=g=>f[g]?f[g]:g<v?"complete":g===v?"active":"pending",t=g=>g<=v+1,r=()=>{u.textContent="",d=C.map((g,h)=>{const T=_(h),c=y.createElement("li");c.className=`${U}__stepper-item is-${T}`+(h===v?" is-active":"")+(t(h)?"":" is-locked");const l=y.createElement("button");l.type="button",l.className=`${U}__stepper-step`,l.setAttribute("role","tab"),l.setAttribute("aria-selected",h===v?"true":"false"),h===v&&l.setAttribute("aria-current","step"),l.tabIndex=h===v?0:-1,l.setAttribute("aria-disabled",t(h)?"false":"true");const a=y.createElement("span");a.className=`${U}__stepper-marker`,a.setAttribute("aria-hidden","true"),a.textContent=T==="complete"?"✓":T==="error"?"!":String(h+1),l.appendChild(a);const i=y.createElement("span");return i.className=`${U}__stepper-label`,i.textContent=g.label!=null&&g.label!==""?g.label:`${F("form.step")} ${h+1}`,l.appendChild(i),c.appendChild(l),u.appendChild(c),l})},o=g=>{typeof N.onGoTo=="function"&&t(g)&&N.onGoTo(g)},p=g=>{const h=g.target&&g.target.closest?g.target.closest(`.${U}__stepper-step`):null;if(!h||!u.contains(h))return;const T=d.indexOf(h);T>=0&&o(T)},A=g=>{const h=g.target&&g.target.closest?g.target.closest(`.${U}__stepper-step`):null;if(!h||!u.contains(h))return;const T=C.length;let c=d.indexOf(h);if(c<0)return;if(g.key==="ArrowRight"||g.key==="ArrowDown")c=(c+1)%T;else if(g.key==="ArrowLeft"||g.key==="ArrowUp")c=(c-1+T)%T;else if(g.key==="Home")c=0;else if(g.key==="End")c=T-1;else if(g.key==="Enter"||g.key===" "){g.preventDefault(),o(c);return}else return;g.preventDefault();const l=d[c];l&&l.focus()};return u.addEventListener("click",p),u.addEventListener("keydown",A),r(),{el:b,setActive(g){v=$(Number(g)||0,0,Math.max(0,C.length-1)),r()},setStatus(g,h){f[g]=h,r()},statusOf:_}}}),Ne("packages/core/src/internal/icon-builtins.js",function(S,q){"use strict";Object.defineProperty(S,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"normaliseIcon",{enumerable:!0,get:function(){return U}});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 U($){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(S,q){"use strict";Object.defineProperty(S,"fieldIconStylesheet",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"injectFieldIconStyles",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"makeFieldIcon",{enumerable:!0,get:function(){return y}});const U=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,$="http://www.w3.org/2000/svg",Q="data-lattice-form-field-icon-styles";function b(){return`
1084
1101
  .lat-form__field-icon{
1085
1102
  display:block; flex:0 0 auto;
1086
1103
  width:calc(var(--lattice-control-size) * var(--lattice-scale));
1087
1104
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1088
1105
  }
1089
- `.trim()}function L(A){const H=A&&A.documentElement;if(!H||H.getAttribute(re))return;H.setAttribute(re,"1");const T=A.createElement("style");T.textContent=g(),(A.head||A.body||H).appendChild(T)}function C(A,H){const T=U[H];if(!T)return null;const v=A.createElementNS(O,"svg");v.setAttribute("class","lat-form__field-icon"),v.setAttribute("viewBox",T.viewBox||"0 0 16 16"),v.setAttribute("aria-hidden","true"),v.setAttribute("focusable","false");const f=T.paint==="stroke";for(const u of T.paths||[]){const h=A.createElementNS(O,"path");h.setAttribute("d",u),f?(h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","1.5"),h.setAttribute("stroke-linecap","round"),h.setAttribute("stroke-linejoin","round")):h.setAttribute("fill","currentColor"),v.appendChild(h)}return v}}),je("packages/modules/form/messages.js",function(M,X){"use strict";Object.defineProperty(M,"FALLBACK_EN",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"createTranslator",{enumerable:!0,get:function(){return L}});const e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.combo.toggle":"Show options","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.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"}),U=Object.freeze({...e});function O(C,A={}){const H=e[C];return H===void 0?C:H.replace(/\{(\w+)\}/g,(T,v)=>A[v]===void 0?T:String(A[v]))}const re={t(C,A={}){return O(C,A)}};function g(C,A={}){return re.t(C,A)}function L(C){return{t(A,H={}){const T=C&&typeof C.t=="function"?C.t(A,H):A;return T===A?O(A,H):T}}}}),je("packages/dom/src/editors/sanitize-richtext.js",function(M,X){"use strict";Object.defineProperty(M,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"escapeHtml",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"sanitizeRichText",{enumerable:!0,get:function(){return T}});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"]},U={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$/},O=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),re=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],g=/^(data:image\/|https?:\/\/|\/)/i,L={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function C(v){const f=v==null?"":String(v);return/[&<>"']/.test(f)?f.replace(/[&<>"']/g,u=>L[u]):f}function A(v,f){const u=String(v).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(f&&u.startsWith("data:image/")):!1}function H(v){if(v.__latRtCanParse!==void 0)return v.__latRtCanParse;try{const f=v.createElement("template");f.innerHTML="<p>x</p>";const u=!!(f.content&&f.content.childNodes&&f.content.childNodes.length);return v.__latRtCanParse=u,u}catch{return v.__latRtCanParse=!1,!1}}function T(v,f,u=e,h={}){const x=u||e,t=String(f??"");if(!H(v))return C(t.replace(/<[^>]*>/g,""));const n=h.imageSrcPattern||g,a=v.createElement("template");a.innerHTML=t;const m=E=>{[...E.childNodes].forEach(_=>{if(_.nodeType===8){_.remove();return}if(_.nodeType!==1)return;const c=_.tagName.toLowerCase();if(O.has(c)){_.remove();return}if(m(_),!x[c]){const S=re.includes(c)?v.createElement("p"):null;if(S){for(;_.firstChild;)S.appendChild(_.firstChild);_.replaceWith(S)}else{for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.remove()}return}if([..._.attributes].forEach(S=>{const o=S.name.toLowerCase();if(/^on/i.test(o)||o==="srcdoc"||o==="id"||o==="name"){_.removeAttribute(S.name);return}if(!x[c].includes(o)){_.removeAttribute(S.name);return}if(o==="href"){const d=S.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(d)||A(d))&&_.removeAttribute("href")}else if(o==="src"){const d=S.value.trim();(!n.test(d)||A(d,!0))&&_.removeAttribute("src")}else if(o==="style"){if(h.stripStyles&&c!=="img"){_.removeAttribute("style");return}const d=S.value.split(";").map(l=>l.trim()).filter(Boolean).map(l=>{const s=l.indexOf(":");return[l.slice(0,s).trim().toLowerCase(),l.slice(s+1).trim()]}).filter(([l,s])=>U[l]&&U[l].test(s)).map(([l,s])=>`${l}: ${s}`).join("; ");d?_.setAttribute("style",d):_.removeAttribute("style")}else if(o==="target"&&S.value!=="_blank")_.removeAttribute("target");else if(o==="class"){const d=S.value.split(/\s+/).filter(l=>/^lat-/.test(l)||/^dfc-/.test(l)).join(" ");d?_.setAttribute("class",d):_.removeAttribute("class")}}),c==="div"){const S=v.createElement("p");for([..._.attributes].forEach(o=>S.setAttribute(o.name,o.value));_.firstChild;)S.appendChild(_.firstChild);_.replaceWith(S)}if(c==="img"&&!_.getAttribute("src")&&_.remove(),c==="a")if(_.getAttribute("href"))_.getAttribute("target")==="_blank"&&_.setAttribute("rel","noopener noreferrer");else{for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.remove()}})};return m(a.content),a.innerHTML}}),je("packages/modules/form/controls/combo.js",function(M,X){"use strict";Object.defineProperty(M,"adornmentStylesheet",{enumerable:!0,get:function(){return c}}),Object.defineProperty(M,"injectAdornmentStyles",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"isImageUrl",{enumerable:!0,get:function(){return o}}),Object.defineProperty(M,"initialsFor",{enumerable:!0,get:function(){return d}}),Object.defineProperty(M,"stableHash",{enumerable:!0,get:function(){return l}}),Object.defineProperty(M,"avatarColor",{enumerable:!0,get:function(){return s}}),Object.defineProperty(M,"applyAvatarTint",{enumerable:!0,get:function(){return r}}),Object.defineProperty(M,"makeIcon",{enumerable:!0,get:function(){return i}}),Object.defineProperty(M,"renderIcon",{enumerable:!0,get:function(){return B}}),Object.defineProperty(M,"renderAvatar",{enumerable:!0,get:function(){return z}}),Object.defineProperty(M,"renderDot",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(M,"renderAdornment",{enumerable:!0,get:function(){return se}}),Object.defineProperty(M,"renderTemplateContent",{enumerable:!0,get:function(){return k}}),Object.defineProperty(M,"createCombo",{enumerable:!0,get:function(){return N}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,L=X("packages/modules/form/styles.js").injectStyles,A=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,T=X("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,v=X("packages/modules/form/controls/field-icon.js"),f=v.makeFieldIcon,u=v.injectFieldIconStyles,h=250,x=20,t=48,n="data-lattice-combo-chip-row-styles";function a(){return`
1106
+ `.trim()}function N(C){const F=C&&C.documentElement;if(!F||F.getAttribute(Q))return;F.setAttribute(Q,"1");const O=C.createElement("style");O.textContent=b(),(C.head||C.body||F).appendChild(O)}function y(C,F){const O=U[F];if(!O)return null;const v=C.createElementNS($,"svg");v.setAttribute("class","lat-form__field-icon"),v.setAttribute("viewBox",O.viewBox||"0 0 16 16"),v.setAttribute("aria-hidden","true"),v.setAttribute("focusable","false");const f=O.paint==="stroke";for(const u of O.paths||[]){const d=C.createElementNS($,"path");d.setAttribute("d",u),f?(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round")):d.setAttribute("fill","currentColor"),v.appendChild(d)}return v}}),Ne("packages/modules/form/messages.js",function(S,q){"use strict";Object.defineProperty(S,"FALLBACK_EN",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"t",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"createTranslator",{enumerable:!0,get:function(){return N}});const e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.combo.toggle":"Show options","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.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"}),U=Object.freeze({...e});function $(y,C={}){const F=e[y];return F===void 0?y:F.replace(/\{(\w+)\}/g,(O,v)=>C[v]===void 0?O:String(C[v]))}const Q={t(y,C={}){return $(y,C)}};function b(y,C={}){return Q.t(y,C)}function N(y){return{t(C,F={}){const O=y&&typeof y.t=="function"?y.t(C,F):C;return O===C?$(C,F):O}}}}),Ne("packages/dom/src/editors/sanitize-richtext.js",function(S,q){"use strict";Object.defineProperty(S,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"sanitizeRichText",{enumerable:!0,get:function(){return O}});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"]},U={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"],b=/^(data:image\/|https?:\/\/|\/)/i,N={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function y(v){const f=v==null?"":String(v);return/[&<>"']/.test(f)?f.replace(/[&<>"']/g,u=>N[u]):f}function C(v,f){const u=String(v).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(f&&u.startsWith("data:image/")):!1}function F(v){if(v.__latRtCanParse!==void 0)return v.__latRtCanParse;try{const f=v.createElement("template");f.innerHTML="<p>x</p>";const u=!!(f.content&&f.content.childNodes&&f.content.childNodes.length);return v.__latRtCanParse=u,u}catch{return v.__latRtCanParse=!1,!1}}function O(v,f,u=e,d={}){const _=u||e,t=String(f??"");if(!F(v))return y(t.replace(/<[^>]*>/g,""));const r=d.imageSrcPattern||b,o=v.createElement("template");o.innerHTML=t;const p=A=>{[...A.childNodes].forEach(g=>{if(g.nodeType===8){g.remove();return}if(g.nodeType!==1)return;const h=g.tagName.toLowerCase();if($.has(h)){g.remove();return}if(p(g),!_[h]){const T=Q.includes(h)?v.createElement("p"):null;if(T){for(;g.firstChild;)T.appendChild(g.firstChild);g.replaceWith(T)}else{for(;g.firstChild;)g.parentNode.insertBefore(g.firstChild,g);g.remove()}return}if([...g.attributes].forEach(T=>{const c=T.name.toLowerCase();if(/^on/i.test(c)||c==="srcdoc"||c==="id"||c==="name"){g.removeAttribute(T.name);return}if(!_[h].includes(c)){g.removeAttribute(T.name);return}if(c==="href"){const l=T.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(l)||C(l))&&g.removeAttribute("href")}else if(c==="src"){const l=T.value.trim();(!r.test(l)||C(l,!0))&&g.removeAttribute("src")}else if(c==="style"){if(d.stripStyles&&h!=="img"){g.removeAttribute("style");return}const l=T.value.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{const i=a.indexOf(":");return[a.slice(0,i).trim().toLowerCase(),a.slice(i+1).trim()]}).filter(([a,i])=>U[a]&&U[a].test(i)).map(([a,i])=>`${a}: ${i}`).join("; ");l?g.setAttribute("style",l):g.removeAttribute("style")}else if(c==="target"&&T.value!=="_blank")g.removeAttribute("target");else if(c==="class"){const l=T.value.split(/\s+/).filter(a=>/^lat-/.test(a)||/^dfc-/.test(a)).join(" ");l?g.setAttribute("class",l):g.removeAttribute("class")}}),h==="div"){const T=v.createElement("p");for([...g.attributes].forEach(c=>T.setAttribute(c.name,c.value));g.firstChild;)T.appendChild(g.firstChild);g.replaceWith(T)}if(h==="img"&&!g.getAttribute("src")&&g.remove(),h==="a")if(g.getAttribute("href"))g.getAttribute("target")==="_blank"&&g.setAttribute("rel","noopener noreferrer");else{for(;g.firstChild;)g.parentNode.insertBefore(g.firstChild,g);g.remove()}})};return p(o.content),o.innerHTML}}),Ne("packages/dom/src/themeof.js",function(S,q){"use strict";Object.defineProperty(S,"themeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"carryTheme",{enumerable:!0,get:function(){return U}});function e($){for(let Q=$;Q;Q=Q.parentNode){if(typeof Q.getAttribute!="function")continue;const b=Q.getAttribute("data-theme");if(b)return b}return null}function U($,Q){if(!$||typeof $.setAttribute!="function")return;const b=e(Q);b?$.setAttribute("data-theme",b):typeof $.removeAttribute=="function"&&$.removeAttribute("data-theme")}}),Ne("packages/modules/form/controls/popup-layer.js",function(S,q){"use strict";Object.defineProperty(S,"getLayerHost",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"placeAgainstField",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"openInLayer",{enumerable:!0,get:function(){return u}});const U=q("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-control-size","--lattice-border-color","--lattice-border-width","--lattice-background","--lattice-foreground","--lattice-foreground-muted","--lattice-accent","--lattice-accent-contrast","--lattice-switch-track-on","--lattice-switch-track-off","--lattice-switch-handle","--lattice-switch-label","--lattice-focus-ring","--lattice-danger","--lattice-success","--lattice-radius","--lattice-form-item-gap","--lattice-form-label-gap","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border"]);function b(d,_){const t=_.ownerDocument&&_.ownerDocument.defaultView;if(!t||typeof t.getComputedStyle!="function")return;const r=t.getComputedStyle(_);for(const o of Q){const p=r.getPropertyValue(o);p&&d.style.setProperty(o,p)}}const N=new WeakMap,y=new WeakMap;function C(d){const _=N.get(d);if(_&&_.isConnected!==!1)return _;const t=d.body||d.documentElement,r=t&&typeof t.querySelector=="function"?t.querySelector(`.${$}`):null,o=r||d.createElement("div");return r||(o.className=$,t.appendChild(o)),N.set(d,o),o}function F(d,_,t){return d.bottom<=0||d.top>=t||d.right<=0||d.left>=_}function O(d,_,t={}){const r=_.ownerDocument,o=r&&r.defaultView,p=o?o.innerWidth:0,A=o?o.innerHeight:0;d.style.position="fixed";const g=_.getBoundingClientRect();if(F(g,p,A))return!0;d.style.marginTop="0",d.style.marginBottom="0",t.matchWidth===!1?d.style.minWidth=`${g.width}px`:d.style.width=`${g.width}px`;let h=g.left;const T=d.offsetWidth||g.width;p&&h+T>p&&(h=Math.max(0,p-T)),d.style.left=`${h}px`,d.style.right="auto";const c=d.offsetHeight||0;return A-g.bottom<c+4&&g.top>c+4?(d.style.top="auto",d.style.bottom=`${Math.max(0,A-g.top)}px`,t.aboveClass&&d.classList.add(t.aboveClass)):(d.style.bottom="auto",d.style.top=`${g.bottom}px`,t.aboveClass&&d.classList.remove(t.aboveClass)),!1}function v(d,_){let t=y.get(d);if(!t){const r=d.defaultView;t={entries:new Set,onTrack(){for(const o of[...t.entries])o.reposition()}},r&&(r.addEventListener("scroll",t.onTrack,!0),r.addEventListener("resize",t.onTrack)),y.set(d,t)}t.entries.add(_)}function f(d,_){const t=y.get(d);if(t&&(t.entries.delete(_),t.entries.size===0)){const r=d.defaultView;r&&(r.removeEventListener("scroll",t.onTrack,!0),r.removeEventListener("resize",t.onTrack)),y.delete(d)}}function u(d,_,t={}){const r=_.ownerDocument,o=C(r),p=d.parentNode,A=d.nextSibling;let g=!1;o.appendChild(d),U(d,_),b(d,_);const h={reposition(){if(g)return;O(d,_,t)&&typeof t.onOffscreen=="function"&&t.onOffscreen()},close(){g||(g=!0,f(r,h),p&&(A&&A.parentNode===p?p.insertBefore(d,A):p.appendChild(d)))}};return v(r,h),h.reposition(),h}}),Ne("packages/modules/form/controls/combo.js",function(S,q){"use strict";Object.defineProperty(S,"adornmentStylesheet",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"injectAdornmentStyles",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"isImageUrl",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"initialsFor",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"stableHash",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"avatarColor",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"applyAvatarTint",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"makeIcon",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(S,"renderIcon",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"renderAvatar",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"renderDot",{enumerable:!0,get:function(){return M}}),Object.defineProperty(S,"renderAdornment",{enumerable:!0,get:function(){return D}}),Object.defineProperty(S,"renderTemplateContent",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return V}});const U=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,N=q("packages/modules/form/styles.js").injectStyles,C=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,O=q("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,v=q("packages/modules/form/controls/field-icon.js"),f=v.makeFieldIcon,u=v.injectFieldIconStyles,_=q("packages/modules/form/controls/popup-layer.js").openInLayer,t=250,r="lat-combo__popup--above",o=20,p=48,A="data-lattice-combo-chip-row-styles";function g(){return`
1090
1107
  .lat-combo__control{ position:relative; }
1091
1108
  .lat-combo__chip-row{
1092
1109
  display:flex;flex-wrap:wrap;align-items:flex-start;
@@ -1101,7 +1118,7 @@
1101
1118
  .lat-combo[data-chip-placement] .lat-combo__summary{
1102
1119
  flex:0 0 auto;margin-top:calc(var(--lattice-space)/4);
1103
1120
  }
1104
- `.trim()}function m(y){const $=y&&y.documentElement;if(!$||$.getAttribute(n))return;$.setAttribute(n,"1");const w=y.createElement("style");w.textContent=a(),(y.head||y.body||$).appendChild(w)}const E="data-lattice-form-adornment-styles",_="http://www.w3.org/2000/svg";function c(){return`
1121
+ `.trim()}function h(E){const W=E&&E.documentElement;if(!W||W.getAttribute(A))return;W.setAttribute(A,"1");const R=E.createElement("style");R.textContent=g(),(E.head||E.body||W).appendChild(R)}const T="data-lattice-form-adornment-styles",c="http://www.w3.org/2000/svg";function l(){return`
1105
1122
  .lat-combo__value{
1106
1123
  flex:0 0 auto; display:inline-flex; align-items:center; min-width:0;
1107
1124
  gap:calc(var(--lattice-space) / 2);
@@ -1140,7 +1157,7 @@
1140
1157
  .lat-select__value{ display:flex; align-items:center; gap:calc(var(--lattice-space) / 2); }
1141
1158
  .lat-select__value[data-placeholder='true']{ display:block; }
1142
1159
  .lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
1143
- `.trim()}function S(y){const $=y&&y.documentElement;if(!$||$.getAttribute(E))return;$.setAttribute(E,"1");const w=y.createElement("style");w.textContent=c(),(y.head||y.body||$).appendChild(w)}function o(y){return/^(https?:|data:image\/|\/)/i.test(y)}function d(y){const $=String(y??"").trim();if(!$)return"";const w=$.split(/\s+/);return w.length>=2?(w[0][0]+w[1][0]).toUpperCase():$.slice(0,2).toUpperCase()}function l(y){let $=5381;const w=String(y??"");for(let V=0;V<w.length;V++)$=($<<5)+$+w.charCodeAt(V)>>>0;return $}function s(y){if(y&&y.color!=null&&String(y.color)!=="")return String(y.color);const $=y&&y.label!=null?String(y.label):y&&y.value!=null?String(y.value):"";return`hsl(${l($)%360}, 62%, 45%)`}function r(y,$){y.style.background=s($),y.style.color="#fff"}function i(y,$){const w=A[$];if(!w)return null;const V=y.createElementNS(_,"svg");V.setAttribute("class","lat-combo__icon"),V.setAttribute("viewBox",w.viewBox||"0 0 16 16"),V.setAttribute("aria-hidden","true"),V.setAttribute("focusable","false");const oe=w.paint==="stroke";for(const ie of w.paths||[]){const _e=y.createElementNS(_,"path");_e.setAttribute("d",ie),oe?(_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"),V.appendChild(_e)}return V}function B(y,$,w){if($==null||$==="")return null;let V;if($.nodeType)V=$.cloneNode(!0),V.setAttribute&&V.setAttribute("aria-hidden","true");else{const oe=String($),ie=i(y,oe);ie?V=ie:(V=y.createElement("span"),V.className="lat-combo__icon lat-combo__icon--glyph",V.setAttribute("aria-hidden","true"),V.textContent=oe.slice(0,2))}return w!=null&&String(w)!==""&&V&&V.style&&(V.style.color=String(w)),V}function z(y,$){const w=y.createElement("span");w.className="lat-combo__avatar",w.setAttribute("aria-hidden","true");const V=String($.avatar);if(o(V)){const oe=y.createElement("img");return oe.className="lat-combo__avatar-img",oe.alt="",oe.src=V,oe.addEventListener("error",()=>{for(;w.firstChild;)w.removeChild(w.firstChild);w.classList.add("lat-combo__avatar--initials"),w.textContent=d($.label),r(w,$)}),w.appendChild(oe),w}return w.classList.add("lat-combo__avatar--initials"),w.textContent=V.slice(0,2),r(w,$),w}const W={r:255,g:255,b:255},b={r:20,g:24,b:28},J=3;function Q(y){const $=y.split(/[,/\s]+/).filter(Boolean).map(Number);return $.length<3||$.some(w=>Number.isNaN(w))?null:{r:$[0],g:$[1],b:$[2]}}function ne(y,$){const w=String($).trim();if(!w)return null;if(y&&y.createElement)try{const oe=y.defaultView;if(oe&&oe.getComputedStyle){const ie=y.createElement("span");ie.style.color=w;const _e=/rgba?\(([^)]+)\)/.exec(oe.getComputedStyle(ie).color||"");if(_e)return Q(_e[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(w)){let oe=w.slice(1);return(oe.length===3||oe.length===4)&&(oe=oe.split("").map(ie=>ie+ie).join("")),{r:parseInt(oe.slice(0,2),16),g:parseInt(oe.slice(2,4),16),b:parseInt(oe.slice(4,6),16)}}const V=/rgba?\(([^)]+)\)/.exec(w);return V?Q(V[1]):null}function Z(y){const $=w=>{const V=w/255;return V<=.03928?V/12.92:((V+.055)/1.055)**2.4};return .2126*$(y.r)+.7152*$(y.g)+.0722*$(y.b)}function Y(y,$){const w=Z(y),V=Z($),oe=Math.max(w,V),ie=Math.min(w,V);return(oe+.05)/(ie+.05)}function Ne(y,$){const w=ne(y,$);return w?Y(w,W)<J||Y(w,b)<J:!0}function ve(y,$){const w=y.createElement("span");w.className="lat-combo__dot",w.setAttribute("aria-hidden","true");const V=String($.dot);return w.style.background=V,Ne(y,V)&&w.setAttribute("data-ring","true"),w}function se(y,$){const w=$&&$.dot;if(w!=null&&w!=="")return ve(y,$);const V=$&&$.icon;if(V!=null&&V!=="")return B(y,V,$.color);const oe=$&&$.avatar;return oe!=null&&oe!==""?z(y,$):null}function k(y,$,w){if(typeof w!="function")return null;const V=w($);if(V==null||V===!1)return null;if(V.nodeType)return V.cloneNode(!0);const oe=y.createElement("span");oe.className="lat-combo__template";const ie=String(V);return ie.includes("<")?oe.innerHTML=T(y,ie):oe.textContent=ie,oe}function I(y){return y!=null&&typeof y=="object"?y.value:y}function F(y){return y==null?"":typeof y!="object"?String(y):y.label!=null?String(y.label):y.title!=null?String(y.title):y.value==null?"":String(y.value)}function p(y){return y==null||typeof y!="object"?null:y.description!=null?String(y.description):y.subtitle!=null?String(y.subtitle):null}function D(y){return p(y)!=null||y!=null&&typeof y=="object"&&(y.avatar!=null||y.icon!=null)}function G(y){const $=y!=null&&typeof y=="object"?y:{};return{value:I(y),label:F(y),description:p(y),avatar:$.avatar,icon:$.icon,color:$.color,dot:$.dot,disabled:$.disabled===!0}}function R(y){if(Array.isArray(y))return{items:y,total:y.length,hasMore:!1};if(y&&typeof y=="object"){const $=Array.isArray(y.items)?y.items:[];return{items:$,total:typeof y.total=="number"?y.total:$.length,hasMore:y.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function ee(y,$){return y===$?!0:y!=null&&$!=null&&String(y)===String($)}function P(y,$,w={}){const V=y&&y.defaultView;return V&&V.Event?new V.Event($,w):{type:$,bubbles:w.bubbles!==!1,cancelable:w.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function N(y,$={}){const w=$.doc||y&&y.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;w&&(L(w),S(w),u(w));const V=typeof $.t=="function"?$.t:re,oe=$.multiple===!0,ie=oe&&["above","below"].includes($.chipPlacement)?$.chipPlacement:"inside";w&&ie!=="inside"&&m(w);const _e=typeof $.debounce=="number"&&$.debounce>=0?$.debounce:h,Oe=typeof $.pageSize=="number"&&$.pageSize>0?$.pageSize:x,Se=$.selectAll===!0,j=oe?Array.isArray($.value)?$.value:$.value==null?[]:[$.value]:$.value==null?null:$.value,te=w.createElement("div");te.className="lat-combo",oe&&te.setAttribute("data-multiple","true"),ie!=="inside"&&te.setAttribute("data-chip-placement",ie),$.inForm||(te.setAttribute("data-lattice-standalone","true"),te.setAttribute("data-density",["compact","standard","comfortable"].includes($.density)?$.density:"standard"));const ce=w.createElement("div");ce.className="lat-combo__control";const K=w.createElement("div");K.className="lat-combo__chips";const de=w.createElement("span");de.className="lat-combo__summary",de.hidden=!0;const ue=w.createElement("div");ue.className="lat-combo__chip-row",ue.setAttribute("role","group"),ue.hidden=!0;const be=ie==="inside"?K:ue;typeof $.maxHeight=="number"&&(be.style.maxHeight=`${$.maxHeight}px`);const Ce=w.createElement("span");Ce.className="lat-combo__value",Ce.setAttribute("aria-hidden","true"),Ce.hidden=!0;const Ae=w.createElement("input");Ae.className="lat-combo__input",Ae.type="text",Ae.setAttribute("role","combobox"),Ae.setAttribute("aria-autocomplete","list"),Ae.setAttribute("aria-haspopup","listbox"),oe&&Ae.setAttribute("aria-multiselectable","true"),$.placeholder!=null&&(Ae.placeholder=String($.placeholder)),$.inForm&&$.ariaLabel!=null&&Ae.setAttribute("aria-label",String($.ariaLabel));const ye=w.createElement("button");ye.type="button",ye.className="lat-combo__toggle",ye.setAttribute("aria-label",V("form.combo.toggle")),ye.setAttribute("aria-haspopup","listbox");const me=f(w,"chevronDown");me&&ye.appendChild(me);const we=w.createElement("div");we.className="lat-combo__popup",we.hidden=!0;const q=w.createElement("div");q.className="lat-combo__list",q.setAttribute("role","listbox");const $e=w.createElement("div");$e.className="lat-combo__spacer",q.appendChild($e);const he=w.createElement("div");he.className="lat-combo__status",he.setAttribute("role","status"),he.setAttribute("aria-live","polite");const Me=w.createElement("div");Me.className="lat-combo__option lat-combo__option--create",Me.setAttribute("role","option"),Me.hidden=!0,q.insertBefore(Me,$e),we.appendChild(q),we.appendChild(he),ce.appendChild(we),ie!=="inside"?(ce.appendChild(Ae),ce.appendChild(ye),ue.appendChild(K),ue.appendChild(de),ie==="above"&&te.appendChild(ue),te.appendChild(ce),ie==="below"&&te.appendChild(ue)):(ce.appendChild(K),ce.appendChild(de),ce.appendChild(Ce),ce.appendChild(Ae),ce.appendChild(ye),te.appendChild(ce));const Fe=`lat-combo-lb-${gt()}`;q.id=Fe,Ae.setAttribute("aria-controls",Fe);let fe=[],xe=[];const Te=new Map;let Ue=0,qe=0,Qe=!1,Ge=!1,Je=!1,Le="",We=!1,Ze=-1,at=null,st=0,rt=null;const nt=new Map,$t=Array.isArray($.options)?$.options:[],et=[],Ye=[];let ct=0,ft=0;const Et=gt(),_t=[];let ot=!1;function gt(){return gt.n=(gt.n||0)+1,gt.n}function tt(le,ke,Pe){le.addEventListener(ke,Pe),_t.push(()=>le.removeEventListener(ke,Pe))}function it(le){const ke=Te.get(String(le));if(ke)return ke;if(le!=null){for(const Pe of Te.values())if(ee(Pe.value,le))return Pe}return null}function St(le){const ke=it(le);return ke?ke.label:le==null?"":String(le)}function pt(le){le.value!=null&&Te.set(String(le.value),le)}function jt(le){if(typeof $.resolveLabels!="function")return;const ke=le.filter(He=>He!=null&&!it(He));if(ke.length===0)return;const Pe=$.resolveLabels(ke),ze=He=>{if(!(ot||!Array.isArray(He))){for(const Ve of He){const Ie=G(Ve);Ie.value!=null&&pt(Ie)}xe=xe.map(Ve=>it(Ve.value)||Ve),Ee(),pe()}};Pe&&typeof Pe.then=="function"?Pe.then(ze):ze(Pe)}function vt(){y.dispatchEvent(P(w,"change",{bubbles:!0}))}function Lt(){return oe?xe.map(le=>le.value):xe.length?xe[0].value:null}function Nt(le){let ke;if(oe)ke=Array.isArray(le)?le:le==null?[]:[le];else{const ze=Array.isArray(le)?le.length?le[0]:null:le;ke=ze==null?[]:[ze]}const Pe=ke.filter(ze=>ze!=null&&(ze!==""||it(ze)!=null));xe=Pe.map(ze=>it(ze)||{value:ze,label:ze==null?"":String(ze),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),jt(Pe),Ee(),xt(),Ct()}function ut(){return $.readOnly===!0}function Pt(){xe.length!==0&&(xe=[],Ee(),xt(),Ct(),vt())}function lt(le){const ke=w.createElement("span");ke.className="lat-combo__chip",ke.dataset.value=String(le.value);const Pe=k(w,le,$.selectedTemplate);if(Pe){const ze=w.createElement("span");ze.className="lat-combo__chip-label",ze.appendChild(Pe),ke.appendChild(ze)}else{const ze=se(w,le);ze&&ke.appendChild(ze);const He=w.createElement("span");He.className="lat-combo__chip-label",He.textContent=St(le.value),ke.appendChild(He)}if(!le.disabled&&!ut()){const ze=w.createElement("button");ze.type="button",ze.className="lat-combo__chip-remove",ze.setAttribute("aria-label",V("form.combo.remove",{label:St(le.value)})),ze.textContent="×",tt(ze,"click",Ve=>{Ve.stopPropagation(),De(le.value)}),ke.appendChild(ze)}return ke}function ae(){oe||(Ae.value=xe.length?St(xe[0].value):"")}function pe(){if(oe){Ce.hidden=!0;return}for(;Ce.firstChild;)Ce.removeChild(Ce.firstChild);if(xe.length===0){Ce.hidden=!0;return}const le=xe[0],Pe=k(w,le,$.selectedTemplate)||se(w,le);Pe?(Ce.appendChild(Pe),Ce.hidden=!1):Ce.hidden=!0}function ge(le){const ke=V("form.combo.selected",{count:le});return ke==="form.combo.selected"?`Selected: ${le}`:ke}function Ee(){for(;K.firstChild;)K.removeChild(K.firstChild);if(oe){for(const le of xe)K.appendChild(lt(le));K.hidden=xe.length===0}else K.hidden=!0;ie!=="inside"&&(ue.hidden=!oe||xe.length===0,ue.setAttribute("aria-label",ge(xe.length))),ae(),pe(),Be()}function Be(){if(!oe||xe.length===0){de.hidden=!0;return}const le=be.getBoundingClientRect().bottom;let ke=0;const Pe=[...K.children];for(const ze of Pe)ze.getBoundingClientRect().top>=le-1&&(ke+=1);ke>0?(de.hidden=!1,de.textContent=V("form.combo.more",{count:ke})):de.hidden=!0}function De(le){if(ut())return;const ke=xe.length;xe=xe.filter(Pe=>!ee(Pe.value,le)),xe.length!==ke&&(Ee(),xt(),Ct(),vt())}function Re(le){if(ut())return;const ke=it(le)||{value:le,label:le==null?"":String(le),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(pt(ke),oe){if(xe.some(Pe=>ee(Pe.value,le)))return;xe=[...xe,ke]}else{if(xe.length&&ee(xe[0].value,le))return;xe=[ke]}Ee(),xt(),Ct(),vt()}function Xe(){if(ut())return;const le=fe.filter(ke=>!ke.disabled).map(ke=>({...ke}));if(!(le.length===0&&xe.length===0)){for(const ke of le)pt(ke);xe=le,Ee(),xt(),Ct(),vt()}}function dt(){return fe.length>0&&fe.every(le=>xe.some(ke=>ee(ke.value,le.value)))}function xt(){const le=te.querySelector(".lat-combo__select-all");if(!le)return;const ke=dt();le.setAttribute("aria-selected",ke?"true":"false"),le.textContent=V("form.combo.selectAll")}function yt(){We||ot||$.disabled||(We=!0,we.hidden=!1,Ae.setAttribute("aria-expanded","true"),ye.setAttribute("aria-expanded","true"),qt(),fe.length===0&&$.load&&!Ge&&!Je?At(0):kt())}function ht(){We&&(We=!1,we.hidden=!0,Ae.setAttribute("aria-expanded","false"),ye.setAttribute("aria-expanded","false"),Ae.removeAttribute("aria-activedescendant"))}function Kt(){ot||(Ae.focus(),yt())}function Zt(){Ae.blur()}function wt(le){if(Ze=le,!We)return;const ke=le===-1?`${Me.id}`:`${Fe}-opt-${le}`;Ae.setAttribute("aria-activedescendant",ke)}function Mt(le){const ke=Me.hidden===!1,Pe=ke?-1:0,ze=Math.max(Pe,fe.length-1);if(fe.length===0&&!ke){wt(-1);return}wt(Math.max(Pe,Math.min(ze,Ze+le))),zt()}function zt(){if(Ze<0)return;const le=Ye[Ze]||0,ke=le+(et[Ze]||Ft(fe[Ze]));le<ft?q.scrollTop=le:ke>ft+ct&&(q.scrollTop=ke-ct)}function Ft(le){return D(le)?52:30}function Ht(le){return`${Fe}-opt-${le}`}function Yt(le,ke){const Pe=w.createElement("div");Pe.className="lat-combo__option",Pe.setAttribute("role","option"),Pe.id=Ht(ke);const ze=xe.some(Ie=>ee(Ie.value,le.value));Pe.setAttribute("aria-selected",ze?"true":"false"),le.disabled&&Pe.setAttribute("aria-disabled","true");const He=k(w,le,$.optionTemplate);if(He)Pe.appendChild(He);else{const Ie=se(w,le);Ie&&Pe.appendChild(Ie);const Ke=w.createElement("span");Ke.className="lat-combo__text";const bt=w.createElement("span");if(bt.className="lat-combo__title",bt.textContent=le.label,Ke.appendChild(bt),le.description!=null){const Dt=w.createElement("span");Dt.className="lat-combo__subtitle",Dt.textContent=le.description,Ke.appendChild(Dt)}Pe.appendChild(Ke)}return tt(Pe,"click",Ie=>{Ie.stopPropagation(),Wt(ke)}),Pe}function Xt(){const le=$.newOptions&&!ut()&&Le.trim()!=="",ke=fe.some(Pe=>ee(Pe.value,Le)||Pe.label===Le);if(!le||ke){Me.hidden=!0;return}Me.hidden=!1,Me.id=`${Fe}-create`,Me.textContent=V("form.combo.create",{query:Le}),Ze===-1&&wt(-1)}function kt(){if(Xt(),We&&(ct=q.clientHeight||ct),fe.length===0){$e.style.height="0px",Ot();return}let le=!1;for(let Ie=0;Ie<fe.length;Ie++)et[Ie]==null&&(et[Ie]=Ft(fe[Ie]));Ye.length=0,Ye[0]=0;for(let Ie=1;Ie<=fe.length;Ie++)Ye[Ie]=Ye[Ie-1]+et[Ie-1];const ke=Ye[fe.length];$e.style.height=`${ke}px`;const Pe=ft,ze=ft+ct;let He=0;for(;He<fe.length-1&&Ye[He+1]<Pe;)He+=1;let Ve=He;for(;Ve<fe.length&&Ye[Ve]<ze;)Ve+=1;for(Ve=Math.min(fe.length,Ve+2);$e.firstChild;)$e.removeChild($e.firstChild);for(let Ie=He;Ie<Ve;Ie++){const Ke=Yt(fe[Ie],Ie);Ke.style.position="absolute",Ke.style.left="0",Ke.style.right="0",Ke.style.top="0",Ke.style.transform=`translateY(${Ye[Ie]}px)`,$e.appendChild(Ke)}for(let Ie=He;Ie<Ve;Ie++){const Ke=w.getElementById(Ht(Ie));if(!Ke)continue;const bt=Ke.getBoundingClientRect().height;bt>0&&Math.abs(bt-et[Ie])>.5&&(et[Ie]=bt,le=!0)}le?kt():Ot()}function Ot(){for(;he.firstChild;)he.removeChild(he.firstChild);if(Ge)he.textContent=V("form.combo.loading"),he.dataset.state="loading";else if(Je){he.textContent=V("form.combo.error"),he.dataset.state="error";const le=w.createElement("button");le.type="button",le.className="lat-combo__retry",le.textContent=V("form.combo.retry"),tt(le,"click",Pe=>{Pe.stopPropagation(),Ut()}),he.appendChild(le)}else fe.length===0&&!$.load&&$t.length===0?he.textContent="":fe.length===0?(he.textContent=V("form.combo.empty"),he.dataset.state="empty"):(he.textContent=V("form.combo.results",{count:qe}),he.dataset.state="results")}function Ct(){const le=`${Fe}-opt-`;for(const ke of q.querySelectorAll('.lat-combo__option[role="option"]')){const Pe=ke.id||"";if(!Pe.startsWith(le))continue;const ze=Number(Pe.slice(le.length));if(Number.isNaN(ze))continue;const He=fe[ze];He&&ke.setAttribute("aria-selected",xe.some(Ve=>ee(Ve.value,He.value))?"true":"false")}xt()}function qt(){ct=q.clientHeight||240}function Jt(){if(Se&&oe){const le=w.createElement("div");le.className="lat-combo__select-all",le.setAttribute("role","option"),tt(le,"click",Pe=>{Pe.stopPropagation(),!ut()&&(dt()?(xe=[],Ee(),Ct(),vt()):Xe())}),we.insertBefore(le,q)}}function At(le){if(ot)return;if(typeof $.load!="function"){const Ve=Le.trim().toLowerCase(),Ie=$t.map(G).filter(Ke=>Ve===""||Ke.label.toLowerCase().includes(Ve));fe=Ie,qe=Ie.length,Qe=!1,Ue=1,et.length=0,Ye.length=0;for(const Ke of fe)pt(Ke);kt();return}if(Ge)return;Ge=!0,Je=!1,st+=1;const ke=st;at&&at.abort(),at=new AbortController;const Pe=at.signal;Ot();let ze;try{ze=$.load({search:Le,page:le,signal:Pe,pageSize:Oe})}catch{Ge=!1,Je=!0,Ot();return}const He=Ve=>{if(ot||ke!==st)return;Ge=!1;const Ie=R(Ve),Ke=Ie.items.map(G);le===0?(fe=Ke,et.length=0,Ye.length=0,nt.set(Le,{items:Ke,total:Ie.total,hasMore:Ie.hasMore,nextPage:1})):fe=fe.concat(Ke),qe=typeof Ie.total=="number"?Ie.total:fe.length,Qe=Ie.hasMore,Ue=le+1;for(const bt of Ke)pt(bt);et.length=fe.length,kt(),Vt()};ze&&typeof ze.then=="function"?ze.then(He).catch(Ve=>{ot||ke!==st||Ve&&Ve.name==="AbortError"||(Ge=!1,Je=!0,Ot())}):He(ze)}function Vt(){if(!Qe||Ge||!We)return;(Ye[fe.length]||0)<ct+t&&At(Ue)}function Ut(){ot||(rt&&(clearTimeout(rt),rt=null),at&&at.abort(),st+=1,nt.delete(Le),fe=[],qe=0,Qe=!1,Ge=!1,Je=!1,Ue=0,et.length=0,Ye.length=0,Ze=-1,At(0))}function Qt(){Le=Ae.value,at&&at.abort(),st+=1;const le=nt.get(Le);if(le&&typeof $.load=="function"){fe=le.items.map(G),qe=le.total,Qe=le.hasMore,Ue=le.nextPage,Ge=!1,Je=!1,et.length=0,Ye.length=0,Ze=-1;for(const ke of fe)pt(ke);kt(),Vt();return}fe=[],qe=0,Qe=!1,Ge=!1,Je=!1,Ue=0,et.length=0,Ye.length=0,Ze=-1,At(0)}function er(){rt&&clearTimeout(rt),rt=setTimeout(()=>{rt=null,Qt()},_e)}function tr(le){const ke=Me.hidden===!1,Pe=fe.length+(ke?1:0);if(le.key==="ArrowDown"){if(le.preventDefault(),yt(),Pe===0)return;Ze===-1?wt(fe.length?0:-1):Mt(1)}else if(le.key==="ArrowUp"){if(le.preventDefault(),!We){yt();return}if(Ze===-1){fe.length&&wt(0);return}Mt(-1)}else if(le.key==="Home"){if(!We)return;le.preventDefault(),wt(ke?-1:0),zt()}else if(le.key==="End"){if(!We)return;le.preventDefault(),wt(fe.length-1),zt()}else if(le.key==="PageDown"){if(!We)return;le.preventDefault(),Mt(Math.max(1,Math.floor(Math.max(ct,60)/30)))}else if(le.key==="PageUp"){if(!We)return;le.preventDefault(),Mt(-Math.max(1,Math.floor(Math.max(ct,60)/30)))}else if(le.key==="Enter"){if(!We){yt();return}Ze===-1&&ke?(le.preventDefault(),rr()):Ze>=0&&fe[Ze]&&(le.preventDefault(),Wt(Ze))}else le.key==="Escape"?We&&(le.preventDefault(),ht()):le.key==="Backspace"&&oe&&Ae.value===""&&xe.length?(le.preventDefault(),De(xe[xe.length-1].value)):le.key==="Tab"&&ht()}function rr(){if(!$.newOptions||ut())return;const le=Le.trim();if(le==="")return;let ke;typeof $.newOptions=="object"&&typeof $.newOptions.create=="function"?ke=$.newOptions.create(le):ke={value:le,label:le};const Pe=G(ke);pt(Pe),Re(Pe.value),ht()}function Wt(le){if(ut())return;const ke=fe[le];!ke||ke.disabled||(oe?(xe.some(Pe=>ee(Pe.value,ke.value))?De(ke.value):Re(ke.value),Ae.focus()):(Re(ke.value),ht(),Ae.value=ke.label))}const nr=()=>{We||(Ae.focus(),yt())},or=le=>{le.stopPropagation(),We?ht():(Ae.focus(),yt())},ar=()=>{er()},ir=le=>{le.stopPropagation()},lr=()=>{ft=q.scrollTop,kt(),Qe&&!Ge&&q.scrollTop+q.clientHeight>=q.scrollHeight-t&&At(Ue)},sr=()=>{y.dispatchEvent(P(w,"focus"))},cr=()=>{y.dispatchEvent(P(w,"blur")),ht()};tt(ce,"click",nr),tt(ye,"click",or),tt(Ae,"input",ar),tt(Ae,"change",ir),tt(Ae,"keydown",tr),tt(Ae,"focus",sr),tt(Ae,"blur",cr),tt(q,"scroll",lr),tt(q,"mousedown",le=>le.preventDefault()),Jt(),$t.length&&typeof $.load!="function"&&(Le="",At(0)),Nt(j);const mt={el:y,root:te,input:Ae,getValue:Lt,setValue(le){return Nt(le),mt},reload(){return Ut(),mt},clear(){return Pt(),mt},open(){return yt(),mt},close(){return ht(),mt},focus(){return Kt(),mt},blur(){return Zt(),mt},setDisabled(le){$.disabled=le,Ae.disabled=le,ye.disabled=le,le&&ht()},setReadOnly(le){$.readOnly=le,Ae.readOnly=le,le?Ae.setAttribute("aria-readonly","true"):Ae.removeAttribute("aria-readonly"),Ee()},destroy(){ot=!0,rt&&clearTimeout(rt),at&&at.abort();for(const le of _t.splice(0))le();for(;te.firstChild;)te.removeChild(te.firstChild)}};return y.appendChild(te),y.__combo=mt,mt}U("combo",{kind:"field",build(y,$){const w=$.doc.createElement("div"),V=y.props||{},oe=N(w,{load:V.load,options:y.options,multiple:V.multiple,value:y.value,resolveLabels:V.resolveLabels,newOptions:V.newOptions,optionTemplate:V.optionTemplate,selectedTemplate:V.selectedTemplate,selectAll:V.selectAll,debounce:V.debounce,pageSize:V.pageSize,maxHeight:V.maxHeight,chipPlacement:V.chipPlacement,placeholder:y.placeholder,ariaLabel:y.label,t:$.t,doc:$.doc,inForm:!0});if($.disposers.push(()=>oe.destroy()),Array.isArray(V.dependsOn))for(const ie of V.dependsOn){const _e=Se=>{Se.name===ie&&(oe.clear(),oe.reload())},Oe=$.emitter.on("change",_e);$.disposers.push(Oe)}return w.focus=()=>oe.focus(),w.blur=()=>oe.blur(),w},read(y){return y.__combo?y.__combo.getValue():null},write(y,$){y.__combo&&y.__combo.setValue($)},state(y,$){y.__combo&&(y.__combo.setDisabled($.disabled===!0),y.__combo.setReadOnly($.readOnly===!0))}})}),je("packages/modules/form/extras.js",function(M,X){"use strict";Object.defineProperty(M,"injectChromeStyles",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"buildTooltip",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"renderAvatarAddon",{enumerable:!0,get:function(){return m}}),Object.defineProperty(M,"buildAddons",{enumerable:!0,get:function(){return E}}),Object.defineProperty(M,"buildPanel",{enumerable:!0,get:function(){return _}});const U=X("packages/modules/form/styles.js").NS,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/combo.js"),C=L.initialsFor,A=L.renderAvatar,H="data-lattice-form-chrome-styles";function T(c){return c==="cols"?`${U}__cols`:c==="items"?`${U}__items`:`${U}__rows`}function v(){return`
1160
+ `.trim()}function a(E){const W=E&&E.documentElement;if(!W||W.getAttribute(T))return;W.setAttribute(T,"1");const R=E.createElement("style");R.textContent=l(),(E.head||E.body||W).appendChild(R)}function i(E){return/^(https?:|data:image\/|\/)/i.test(E)}function n(E){const W=String(E??"").trim();if(!W)return"";const R=W.split(/\s+/);return R.length>=2?(R[0][0]+R[1][0]).toUpperCase():W.slice(0,2).toUpperCase()}function s(E){let W=5381;const R=String(E??"");for(let ce=0;ce<R.length;ce++)W=(W<<5)+W+R.charCodeAt(ce)>>>0;return W}function I(E){if(E&&E.color!=null&&String(E.color)!=="")return String(E.color);const W=E&&E.label!=null?String(E.label):E&&E.value!=null?String(E.value):"";return`hsl(${s(W)%360}, 62%, 45%)`}function z(E,W){E.style.background=I(W),E.style.color="#fff"}function Y(E,W){const R=C[W];if(!R)return null;const ce=E.createElementNS(c,"svg");ce.setAttribute("class","lat-combo__icon"),ce.setAttribute("viewBox",R.viewBox||"0 0 16 16"),ce.setAttribute("aria-hidden","true"),ce.setAttribute("focusable","false");const me=R.paint==="stroke";for(const xe of R.paths||[]){const k=E.createElementNS(c,"path");k.setAttribute("d",xe),me?(k.setAttribute("fill","none"),k.setAttribute("stroke","currentColor"),k.setAttribute("stroke-width","1.5"),k.setAttribute("stroke-linecap","round"),k.setAttribute("stroke-linejoin","round")):k.setAttribute("fill","currentColor"),ce.appendChild(k)}return ce}function B(E,W,R){if(W==null||W==="")return null;let ce;if(W.nodeType)ce=W.cloneNode(!0),ce.setAttribute&&ce.setAttribute("aria-hidden","true");else{const me=String(W),xe=Y(E,me);xe?ce=xe:(ce=E.createElement("span"),ce.className="lat-combo__icon lat-combo__icon--glyph",ce.setAttribute("aria-hidden","true"),ce.textContent=me.slice(0,2))}return R!=null&&String(R)!==""&&ce&&ce.style&&(ce.style.color=String(R)),ce}function ee(E,W){const R=E.createElement("span");R.className="lat-combo__avatar",R.setAttribute("aria-hidden","true");const ce=String(W.avatar);if(i(ce)){const me=E.createElement("img");return me.className="lat-combo__avatar-img",me.alt="",me.src=ce,me.addEventListener("error",()=>{for(;R.firstChild;)R.removeChild(R.firstChild);R.classList.add("lat-combo__avatar--initials"),R.textContent=n(W.label),z(R,W)}),R.appendChild(me),R}return R.classList.add("lat-combo__avatar--initials"),R.textContent=ce.slice(0,2),z(R,W),R}const oe={r:255,g:255,b:255},H={r:20,g:24,b:28},Z=3;function G(E){const W=E.split(/[,/\s]+/).filter(Boolean).map(Number);return W.length<3||W.some(R=>Number.isNaN(R))?null:{r:W[0],g:W[1],b:W[2]}}function ge(E,W){const R=String(W).trim();if(!R)return null;if(E&&E.createElement)try{const me=E.defaultView;if(me&&me.getComputedStyle){const xe=E.createElement("span");xe.style.color=R;const k=/rgba?\(([^)]+)\)/.exec(me.getComputedStyle(xe).color||"");if(k)return G(k[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(R)){let me=R.slice(1);return(me.length===3||me.length===4)&&(me=me.split("").map(xe=>xe+xe).join("")),{r:parseInt(me.slice(0,2),16),g:parseInt(me.slice(2,4),16),b:parseInt(me.slice(4,6),16)}}const ce=/rgba?\(([^)]+)\)/.exec(R);return ce?G(ce[1]):null}function ye(E){const W=R=>{const ce=R/255;return ce<=.03928?ce/12.92:((ce+.055)/1.055)**2.4};return .2126*W(E.r)+.7152*W(E.g)+.0722*W(E.b)}function le(E,W){const R=ye(E),ce=ye(W),me=Math.max(R,ce),xe=Math.min(R,ce);return(me+.05)/(xe+.05)}function w(E,W){const R=ge(E,W);return R?le(R,oe)<Z||le(R,H)<Z:!0}function M(E,W){const R=E.createElement("span");R.className="lat-combo__dot",R.setAttribute("aria-hidden","true");const ce=String(W.dot);return R.style.background=ce,w(E,ce)&&R.setAttribute("data-ring","true"),R}function D(E,W){const R=W&&W.dot;if(R!=null&&R!=="")return M(E,W);const ce=W&&W.icon;if(ce!=null&&ce!=="")return B(E,ce,W.color);const me=W&&W.avatar;return me!=null&&me!==""?ee(E,W):null}function m(E,W,R){if(typeof R!="function")return null;const ce=R(W);if(ce==null||ce===!1)return null;if(ce.nodeType)return ce.cloneNode(!0);const me=E.createElement("span");me.className="lat-combo__template";const xe=String(ce);return xe.includes("<")?me.innerHTML=O(E,xe):me.textContent=xe,me}function P(E){return E!=null&&typeof E=="object"?E.value:E}function X(E){return E==null?"":typeof E!="object"?String(E):E.label!=null?String(E.label):E.title!=null?String(E.title):E.value==null?"":String(E.value)}function L(E){return E==null||typeof E!="object"?null:E.description!=null?String(E.description):E.subtitle!=null?String(E.subtitle):null}function te(E){return L(E)!=null||E!=null&&typeof E=="object"&&(E.avatar!=null||E.icon!=null)}function re(E){const W=E!=null&&typeof E=="object"?E:{};return{value:P(E),label:X(E),description:L(E),avatar:W.avatar,icon:W.icon,color:W.color,dot:W.dot,disabled:W.disabled===!0}}function j(E){if(Array.isArray(E))return{items:E,total:E.length,hasMore:!1};if(E&&typeof E=="object"){const W=Array.isArray(E.items)?E.items:[];return{items:W,total:typeof E.total=="number"?E.total:W.length,hasMore:E.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function x(E,W){return E===W?!0:E!=null&&W!=null&&String(E)===String(W)}function K(E,W,R={}){const ce=E&&E.defaultView;return ce&&ce.Event?new ce.Event(W,R):{type:W,bubbles:R.bubbles!==!1,cancelable:R.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function V(E,W={}){const R=W.doc||E&&E.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;R&&(N(R),a(R),u(R));const ce=typeof W.t=="function"?W.t:Q,me=W.multiple===!0,xe=me&&["above","below"].includes(W.chipPlacement)?W.chipPlacement:"inside";R&&xe!=="inside"&&h(R);const k=typeof W.debounce=="number"&&W.debounce>=0?W.debounce:t,ne=typeof W.pageSize=="number"&&W.pageSize>0?W.pageSize:o,se=W.selectAll===!0,J=me?Array.isArray(W.value)?W.value:W.value==null?[]:[W.value]:W.value==null?null:W.value,ue=R.createElement("div");ue.className="lat-combo",me&&ue.setAttribute("data-multiple","true"),xe!=="inside"&&ue.setAttribute("data-chip-placement",xe),W.inForm||(ue.setAttribute("data-lattice-standalone","true"),ue.setAttribute("data-density",["compact","standard","comfortable"].includes(W.density)?W.density:"standard"));const he=R.createElement("div");he.className="lat-combo__control";const be=R.createElement("div");be.className="lat-combo__chips";const Ee=R.createElement("span");Ee.className="lat-combo__summary",Ee.hidden=!0;const Se=R.createElement("div");Se.className="lat-combo__chip-row",Se.setAttribute("role","group"),Se.hidden=!0;const Ae=xe==="inside"?be:Se;typeof W.maxHeight=="number"&&(Ae.style.maxHeight=`${W.maxHeight}px`);const Ce=R.createElement("span");Ce.className="lat-combo__value",Ce.setAttribute("aria-hidden","true"),Ce.hidden=!0;const we=R.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"),W.placeholder!=null&&(we.placeholder=String(W.placeholder)),W.inForm&&W.ariaLabel!=null&&we.setAttribute("aria-label",String(W.ariaLabel));const ke=R.createElement("button");ke.type="button",ke.className="lat-combo__toggle",ke.setAttribute("aria-label",ce("form.combo.toggle")),ke.setAttribute("aria-haspopup","listbox");const Le=f(R,"chevronDown");Le&&ke.appendChild(Le);const De=R.createElement("div");De.className="lat-combo__popup lat-combo",De.hidden=!0;const He=R.createElement("div");He.className="lat-combo__list",He.setAttribute("role","listbox");const de=R.createElement("div");de.className="lat-combo__spacer",He.appendChild(de);const fe=R.createElement("div");fe.className="lat-combo__status",fe.setAttribute("role","status"),fe.setAttribute("aria-live","polite");const _e=R.createElement("div");_e.className="lat-combo__option lat-combo__option--create",_e.setAttribute("role","option"),_e.hidden=!0,He.insertBefore(_e,de),De.appendChild(He),De.appendChild(fe),he.appendChild(De),xe!=="inside"?(he.appendChild(we),he.appendChild(ke),Se.appendChild(be),Se.appendChild(Ee),xe==="above"&&ue.appendChild(Se),ue.appendChild(he),xe==="below"&&ue.appendChild(Se)):(he.appendChild(be),he.appendChild(Ee),he.appendChild(Ce),he.appendChild(we),he.appendChild(ke),ue.appendChild(he));const Oe=`lat-combo-lb-${wt()}`;He.id=Oe,we.setAttribute("aria-controls",Oe);let Te=[],Pe=[];const tt=new Map;let Ze=0,Je=0,Be=!1,Qe=!1,lt=!1,ot="",Ye=!1,Xe=-1,qe=null,_t=0,st=null;const pt=new Map,St=Array.isArray(W.options)?W.options:[],rt=[],et=[];let it=0,ut=0;const Lt=wt(),Ot=[];let at=!1,dt=null;function wt(){return wt.n=(wt.n||0)+1,wt.n}function nt(ie,$e,Me){ie.addEventListener($e,Me),Ot.push(()=>ie.removeEventListener($e,Me))}function vt(ie){const $e=tt.get(String(ie));if($e)return $e;if(ie!=null){for(const Me of tt.values())if(x(Me.value,ie))return Me}return null}function jt(ie){const $e=vt(ie);return $e?$e.label:ie==null?"":String(ie)}function mt(ie){ie.value!=null&&tt.set(String(ie.value),ie)}function Pt(ie){if(typeof W.resolveLabels!="function")return;const $e=ie.filter(We=>We!=null&&!vt(We));if($e.length===0)return;const Me=W.resolveLabels($e),ze=We=>{if(!(at||!Array.isArray(We))){for(const Ge of We){const Re=re(Ge);Re.value!=null&&mt(Re)}Pe=Pe.map(Ge=>vt(Ge.value)||Ge),Ue(),Ie()}};Me&&typeof Me.then=="function"?Me.then(ze):ze(Me)}function yt(){E.dispatchEvent(K(R,"change",{bubbles:!0}))}function ct(){return me?Pe.map(ie=>ie.value):Pe.length?Pe[0].value:null}function ae(ie){let $e;if(me)$e=Array.isArray(ie)?ie:ie==null?[]:[ie];else{const ze=Array.isArray(ie)?ie.length?ie[0]:null:ie;$e=ze==null?[]:[ze]}const Me=$e.filter(ze=>ze!=null&&(ze!==""||vt(ze)!=null));Pe=Me.map(ze=>vt(ze)||{value:ze,label:ze==null?"":String(ze),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Pt(Me),Ue(),Ct(),$t()}function pe(){return W.readOnly===!0}function ve(){Pe.length!==0&&(Pe=[],Ue(),Ct(),$t(),yt())}function je(ie){const $e=R.createElement("span");$e.className="lat-combo__chip",$e.dataset.value=String(ie.value);const Me=m(R,ie,W.selectedTemplate);if(Me){const ze=R.createElement("span");ze.className="lat-combo__chip-label",ze.appendChild(Me),$e.appendChild(ze)}else{const ze=D(R,ie);ze&&$e.appendChild(ze);const We=R.createElement("span");We.className="lat-combo__chip-label",We.textContent=jt(ie.value),$e.appendChild(We)}if(!ie.disabled&&!pe()){const ze=R.createElement("button");ze.type="button",ze.className="lat-combo__chip-remove",ze.setAttribute("aria-label",ce("form.combo.remove",{label:jt(ie.value)})),ze.textContent="×",nt(ze,"click",Ge=>{Ge.stopPropagation(),zt(ie.value)}),$e.appendChild(ze)}return $e}function Ve(){me||(we.value=Pe.length?jt(Pe[0].value):"")}function Ie(){if(me){Ce.hidden=!0;return}for(;Ce.firstChild;)Ce.removeChild(Ce.firstChild);if(Pe.length===0){Ce.hidden=!0;return}const ie=Pe[0],Me=m(R,ie,W.selectedTemplate)||D(R,ie);Me?(Ce.appendChild(Me),Ce.hidden=!1):Ce.hidden=!0}function Fe(ie){const $e=ce("form.combo.selected",{count:ie});return $e==="form.combo.selected"?`Selected: ${ie}`:$e}function Ue(){for(;be.firstChild;)be.removeChild(be.firstChild);if(me){for(const ie of Pe)be.appendChild(je(ie));be.hidden=Pe.length===0}else be.hidden=!0;xe!=="inside"&&(Se.hidden=!me||Pe.length===0,Se.setAttribute("aria-label",Fe(Pe.length))),Ve(),Ie(),bt()}function bt(){if(!me||Pe.length===0){Ee.hidden=!0;return}const ie=Ae.getBoundingClientRect().bottom;let $e=0;const Me=[...be.children];for(const ze of Me)ze.getBoundingClientRect().top>=ie-1&&($e+=1);$e>0?(Ee.hidden=!1,Ee.textContent=ce("form.combo.more",{count:$e})):Ee.hidden=!0}function zt(ie){if(pe())return;const $e=Pe.length;Pe=Pe.filter(Me=>!x(Me.value,ie)),Pe.length!==$e&&(Ue(),Ct(),$t(),yt())}function Dt(ie){if(pe())return;const $e=vt(ie)||{value:ie,label:ie==null?"":String(ie),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(mt($e),me){if(Pe.some(Me=>x(Me.value,ie)))return;Pe=[...Pe,$e]}else{if(Pe.length&&x(Pe[0].value,ie))return;Pe=[$e]}Ue(),Ct(),$t(),yt()}function Xt(){if(pe())return;const ie=Te.filter($e=>!$e.disabled).map($e=>({...$e}));if(!(ie.length===0&&Pe.length===0)){for(const $e of ie)mt($e);Pe=ie,Ue(),Ct(),$t(),yt()}}function Vt(){return Te.length>0&&Te.every(ie=>Pe.some($e=>x($e.value,ie.value)))}function Ct(){const ie=ue.querySelector(".lat-combo__select-all");if(!ie)return;const $e=Vt();ie.setAttribute("aria-selected",$e?"true":"false"),ie.textContent=ce("form.combo.selectAll")}function xt(){Ye||at||W.disabled||(Ye=!0,De.hidden=!1,we.setAttribute("aria-expanded","true"),ke.setAttribute("aria-expanded","true"),dt=_(De,he,{aboveClass:r,onOffscreen:ft}),tr(),Te.length===0&&W.load&&!Qe&&!lt?Et(0):At())}function ft(){Ye&&(Ye=!1,De.hidden=!0,De.classList.remove(r),dt&&(dt.close(),dt=null),we.setAttribute("aria-expanded","false"),ke.setAttribute("aria-expanded","false"),we.removeAttribute("aria-activedescendant"))}function qt(){at||(we.focus(),xt())}function Jt(){we.blur()}function kt(ie){if(Xe=ie,!Ye)return;const $e=ie===-1?`${_e.id}`:`${Oe}-opt-${ie}`;we.setAttribute("aria-activedescendant",$e)}function Tt(ie){const $e=_e.hidden===!1,Me=$e?-1:0,ze=Math.max(Me,Te.length-1);if(Te.length===0&&!$e){kt(-1);return}kt(Math.max(Me,Math.min(ze,Xe+ie))),It()}function It(){if(Xe<0)return;const ie=et[Xe]||0,$e=ie+(rt[Xe]||Ut(Te[Xe]));ie<ut?He.scrollTop=ie:$e>ut+it&&(He.scrollTop=$e-it)}function Ut(ie){return te(ie)?52:30}function Wt(ie){return`${Oe}-opt-${ie}`}function Qt(ie,$e){const Me=R.createElement("div");Me.className="lat-combo__option",Me.setAttribute("role","option"),Me.id=Wt($e);const ze=Pe.some(Re=>x(Re.value,ie.value));Me.setAttribute("aria-selected",ze?"true":"false"),ie.disabled&&Me.setAttribute("aria-disabled","true");const We=m(R,ie,W.optionTemplate);if(We)Me.appendChild(We);else{const Re=D(R,ie);Re&&Me.appendChild(Re);const Ke=R.createElement("span");Ke.className="lat-combo__text";const ht=R.createElement("span");if(ht.className="lat-combo__title",ht.textContent=ie.label,Ke.appendChild(ht),ie.description!=null){const Rt=R.createElement("span");Rt.className="lat-combo__subtitle",Rt.textContent=ie.description,Ke.appendChild(Rt)}Me.appendChild(Ke)}return nt(Me,"click",Re=>{Re.stopPropagation(),Zt($e)}),Me}function er(){const ie=W.newOptions&&!pe()&&ot.trim()!=="",$e=Te.some(Me=>x(Me.value,ot)||Me.label===ot);if(!ie||$e){_e.hidden=!0;return}_e.hidden=!1,_e.id=`${Oe}-create`,_e.textContent=ce("form.combo.create",{query:ot}),Xe===-1&&kt(-1)}function At(){if(er(),Ye&&(it=He.clientHeight||it),Te.length===0){de.style.height="0px",Nt(),dt&&dt.reposition();return}let ie=!1;for(let Re=0;Re<Te.length;Re++)rt[Re]==null&&(rt[Re]=Ut(Te[Re]));et.length=0,et[0]=0;for(let Re=1;Re<=Te.length;Re++)et[Re]=et[Re-1]+rt[Re-1];const $e=et[Te.length];de.style.height=`${$e}px`;const Me=ut,ze=ut+it;let We=0;for(;We<Te.length-1&&et[We+1]<Me;)We+=1;let Ge=We;for(;Ge<Te.length&&et[Ge]<ze;)Ge+=1;for(Ge=Math.min(Te.length,Ge+2);de.firstChild;)de.removeChild(de.firstChild);for(let Re=We;Re<Ge;Re++){const Ke=Qt(Te[Re],Re);Ke.style.position="absolute",Ke.style.left="0",Ke.style.right="0",Ke.style.top="0",Ke.style.transform=`translateY(${et[Re]}px)`,de.appendChild(Ke)}for(let Re=We;Re<Ge;Re++){const Ke=R.getElementById(Wt(Re));if(!Ke)continue;const ht=Ke.getBoundingClientRect().height;ht>0&&Math.abs(ht-rt[Re])>.5&&(rt[Re]=ht,ie=!0)}if(ie){At();return}Nt(),dt&&dt.reposition()}function Nt(){for(;fe.firstChild;)fe.removeChild(fe.firstChild);if(Qe)fe.textContent=ce("form.combo.loading"),fe.dataset.state="loading";else if(lt){fe.textContent=ce("form.combo.error"),fe.dataset.state="error";const ie=R.createElement("button");ie.type="button",ie.className="lat-combo__retry",ie.textContent=ce("form.combo.retry"),nt(ie,"click",Me=>{Me.stopPropagation(),Kt()}),fe.appendChild(ie)}else Te.length===0&&!W.load&&St.length===0?fe.textContent="":Te.length===0?(fe.textContent=ce("form.combo.empty"),fe.dataset.state="empty"):(fe.textContent=ce("form.combo.results",{count:Je}),fe.dataset.state="results")}function $t(){const ie=`${Oe}-opt-`;for(const $e of He.querySelectorAll('.lat-combo__option[role="option"]')){const Me=$e.id||"";if(!Me.startsWith(ie))continue;const ze=Number(Me.slice(ie.length));if(Number.isNaN(ze))continue;const We=Te[ze];We&&$e.setAttribute("aria-selected",Pe.some(Ge=>x(Ge.value,We.value))?"true":"false")}Ct()}function tr(){it=He.clientHeight||240}function rr(){if(se&&me){const ie=R.createElement("div");ie.className="lat-combo__select-all",ie.setAttribute("role","option"),nt(ie,"click",Me=>{Me.stopPropagation(),!pe()&&(Vt()?(Pe=[],Ue(),$t(),yt()):Xt())}),De.insertBefore(ie,He)}}function Et(ie){if(at)return;if(typeof W.load!="function"){const Ge=ot.trim().toLowerCase(),Re=St.map(re).filter(Ke=>Ge===""||Ke.label.toLowerCase().includes(Ge));Te=Re,Je=Re.length,Be=!1,Ze=1,rt.length=0,et.length=0;for(const Ke of Te)mt(Ke);At();return}if(Qe)return;Qe=!0,lt=!1,_t+=1;const $e=_t;qe&&qe.abort(),qe=new AbortController;const Me=qe.signal;Nt();let ze;try{ze=W.load({search:ot,page:ie,signal:Me,pageSize:ne})}catch{Qe=!1,lt=!0,Nt();return}const We=Ge=>{if(at||$e!==_t)return;Qe=!1;const Re=j(Ge),Ke=Re.items.map(re);ie===0?(Te=Ke,rt.length=0,et.length=0,pt.set(ot,{items:Ke,total:Re.total,hasMore:Re.hasMore,nextPage:1})):Te=Te.concat(Ke),Je=typeof Re.total=="number"?Re.total:Te.length,Be=Re.hasMore,Ze=ie+1;for(const ht of Ke)mt(ht);rt.length=Te.length,At(),Gt()};ze&&typeof ze.then=="function"?ze.then(We).catch(Ge=>{at||$e!==_t||Ge&&Ge.name==="AbortError"||(Qe=!1,lt=!0,Nt())}):We(ze)}function Gt(){if(!Be||Qe||!Ye)return;(et[Te.length]||0)<it+p&&Et(Ze)}function Kt(){at||(st&&(clearTimeout(st),st=null),qe&&qe.abort(),_t+=1,pt.delete(ot),Te=[],Je=0,Be=!1,Qe=!1,lt=!1,Ze=0,rt.length=0,et.length=0,Xe=-1,Et(0))}function nr(){ot=we.value,qe&&qe.abort(),_t+=1;const ie=pt.get(ot);if(ie&&typeof W.load=="function"){Te=ie.items.map(re),Je=ie.total,Be=ie.hasMore,Ze=ie.nextPage,Qe=!1,lt=!1,rt.length=0,et.length=0,Xe=-1;for(const $e of Te)mt($e);At(),Gt();return}Te=[],Je=0,Be=!1,Qe=!1,lt=!1,Ze=0,rt.length=0,et.length=0,Xe=-1,Et(0)}function or(){st&&clearTimeout(st),st=setTimeout(()=>{st=null,nr()},k)}function ar(ie){const $e=_e.hidden===!1,Me=Te.length+($e?1:0);if(ie.key==="ArrowDown"){if(ie.preventDefault(),xt(),Me===0)return;Xe===-1?kt(Te.length?0:-1):Tt(1)}else if(ie.key==="ArrowUp"){if(ie.preventDefault(),!Ye){xt();return}if(Xe===-1){Te.length&&kt(0);return}Tt(-1)}else if(ie.key==="Home"){if(!Ye)return;ie.preventDefault(),kt($e?-1:0),It()}else if(ie.key==="End"){if(!Ye)return;ie.preventDefault(),kt(Te.length-1),It()}else if(ie.key==="PageDown"){if(!Ye)return;ie.preventDefault(),Tt(Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="PageUp"){if(!Ye)return;ie.preventDefault(),Tt(-Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="Enter"){if(!Ye){xt();return}Xe===-1&&$e?(ie.preventDefault(),ir()):Xe>=0&&Te[Xe]&&(ie.preventDefault(),Zt(Xe))}else ie.key==="Escape"?Ye&&(ie.preventDefault(),ft()):ie.key==="Backspace"&&me&&we.value===""&&Pe.length?(ie.preventDefault(),zt(Pe[Pe.length-1].value)):ie.key==="Tab"&&ft()}function ir(){if(!W.newOptions||pe())return;const ie=ot.trim();if(ie==="")return;let $e;typeof W.newOptions=="object"&&typeof W.newOptions.create=="function"?$e=W.newOptions.create(ie):$e={value:ie,label:ie};const Me=re($e);mt(Me),Dt(Me.value),ft()}function Zt(ie){if(pe())return;const $e=Te[ie];!$e||$e.disabled||(me?(Pe.some(Me=>x(Me.value,$e.value))?zt($e.value):Dt($e.value),we.focus()):(Dt($e.value),ft(),we.value=$e.label))}const lr=()=>{Ye||(we.focus(),xt())},sr=ie=>{ie.stopPropagation(),Ye?ft():(we.focus(),xt())},cr=()=>{or()},ur=ie=>{ie.stopPropagation()},dr=()=>{ut=He.scrollTop,At(),Be&&!Qe&&He.scrollTop+He.clientHeight>=He.scrollHeight-p&&Et(Ze)},fr=()=>{E.dispatchEvent(K(R,"focus"))},pr=()=>{E.dispatchEvent(K(R,"blur")),ft()};nt(he,"click",lr),nt(ke,"click",sr),nt(we,"input",cr),nt(we,"change",ur),nt(we,"keydown",ar),nt(we,"focus",fr),nt(we,"blur",pr),nt(He,"scroll",dr),nt(He,"mousedown",ie=>ie.preventDefault()),rr(),St.length&&typeof W.load!="function"&&(ot="",Et(0)),ae(J);const gt={el:E,root:ue,input:we,getValue:ct,setValue(ie){return ae(ie),gt},reload(){return Kt(),gt},clear(){return ve(),gt},open(){return xt(),gt},close(){return ft(),gt},focus(){return qt(),gt},blur(){return Jt(),gt},setDisabled(ie){W.disabled=ie,we.disabled=ie,ke.disabled=ie,ie&&ft()},setReadOnly(ie){W.readOnly=ie,we.readOnly=ie,ie?we.setAttribute("aria-readonly","true"):we.removeAttribute("aria-readonly"),Ue()},destroy(){ft(),at=!0,st&&clearTimeout(st),qe&&qe.abort();for(const ie of Ot.splice(0))ie();for(;ue.firstChild;)ue.removeChild(ue.firstChild)}};return E.appendChild(ue),E.__combo=gt,gt}U("combo",{kind:"field",build(E,W){const R=W.doc.createElement("div"),ce=E.props||{},me=V(R,{load:ce.load,options:E.options,multiple:ce.multiple,value:E.value,resolveLabels:ce.resolveLabels,newOptions:ce.newOptions,optionTemplate:ce.optionTemplate,selectedTemplate:ce.selectedTemplate,selectAll:ce.selectAll,debounce:ce.debounce,pageSize:ce.pageSize,maxHeight:ce.maxHeight,chipPlacement:ce.chipPlacement,placeholder:E.placeholder,ariaLabel:E.label,t:W.t,doc:W.doc,inForm:!0});if(W.disposers.push(()=>me.destroy()),Array.isArray(ce.dependsOn))for(const xe of ce.dependsOn){const k=se=>{se.name===xe&&(me.clear(),me.reload())},ne=W.emitter.on("change",k);W.disposers.push(ne)}return R.focus=()=>me.focus(),R.blur=()=>me.blur(),R},read(E){return E.__combo?E.__combo.getValue():null},write(E,W){E.__combo&&E.__combo.setValue(W)},state(E,W){E.__combo&&(E.__combo.setDisabled(W.disabled===!0),E.__combo.setReadOnly(W.readOnly===!0))}})}),Ne("packages/modules/form/extras.js",function(S,q){"use strict";Object.defineProperty(S,"injectChromeStyles",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"buildTooltip",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"renderAvatarAddon",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"buildAddons",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"buildPanel",{enumerable:!0,get:function(){return g}});const U=q("packages/modules/form/styles.js").NS,$=q("packages/modules/form/controls/field-icon.js"),Q=$.makeFieldIcon,b=$.injectFieldIconStyles,N=q("packages/modules/form/controls/combo.js"),y=N.initialsFor,C=N.renderAvatar,F="data-lattice-form-chrome-styles";function O(h){return h==="cols"?`${U}__cols`:h==="items"?`${U}__items`:`${U}__rows`}function v(){return`
1144
1161
  .${U}__label-group{
1145
1162
  display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
1146
1163
  min-width:0; box-sizing:border-box;
@@ -1254,7 +1271,7 @@
1254
1271
  .${U}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1255
1272
  .${U}__panel-body{ min-width:0; min-height:0; }
1256
1273
  .${U}__panel-body[hidden]{ display:none; }
1257
- `.trim()}function f(c){const S=c&&c.documentElement;if(!S||(g(c),S.getAttribute(H)))return;S.setAttribute(H,"1");const o=c.createElement("style");o.textContent=v(),(c.head||c.body||S).appendChild(o)}function u(c,S,o,d){S.addEventListener(o,d),c.disposers.push(()=>S.removeEventListener(o,d))}function h(c,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=re(c,String(S));if(o)return o;const d=c.createElement("span");return d.className=`${U}__icon-glyph`,d.setAttribute("aria-hidden","true"),d.textContent=String(S).slice(0,2),d}function x(c,S){const{labelEl:o,item:d,labelPosition:l,labelWidth:s}=S,r=d.tooltip;if(typeof r!="string"||r===""||l==="hidden")return null;f(c.doc);const i=c.doc,B=i.createElement("div");B.className=`${U}__label-group`,l==="left"&&s!=null&&(B.style.flex=`0 0 ${typeof s=="number"?`${s}px`:String(s)}`),B.appendChild(o);const z=`lat-form-tip-${x.seq=(x.seq||0)+1}`,W=i.createElement("span");W.className=`${U}__tooltip-wrap`;const b=i.createElement("button");b.type="button",b.className=`${U}__tooltip-trigger`,b.setAttribute("aria-label",c.t("form.tooltip.help")),b.setAttribute("aria-expanded","false"),b.setAttribute("aria-controls",z),b.textContent="?";const J=i.createElement("span");J.className=`${U}__tooltip`,J.setAttribute("id",z),J.setAttribute("role","tooltip"),J.textContent=r,W.appendChild(b),W.appendChild(J),B.appendChild(W);let Q=!1;const ne=()=>{b.setAttribute("aria-expanded","true"),J.classList.add(`${U}__tooltip--open`)},Z=()=>{Q||(b.setAttribute("aria-expanded","false"),J.classList.remove(`${U}__tooltip--open`))};return u(c,b,"mouseenter",ne),u(c,b,"mouseleave",Z),u(c,b,"focus",ne),u(c,b,"blur",Z),u(c,b,"click",Y=>{Y.stopPropagation(),Q=!Q,Q?ne():Z()}),{group:B,tooltipId:z}}function t(c,S,o,d){const l=d&&d.tagName;if(!(o.lockIcon!==!1&&(l==="INPUT"||l==="TEXTAREA")&&(o.readOnly===!0||o.readOnlyWhen!=null)))return null;f(c.doc);const r=c.doc.createElement("span");r.className=`${U}__lock`,r.setAttribute("aria-hidden","true"),r.title=c.t("form.readonly");const i=re(c.doc,"lock");return i&&r.appendChild(i),S.appendChild(r),{el:r}}function n(c,S){if(!Array.isArray(c))return null;const o=S==null?"":String(S);for(const d of c){if(d!=null&&typeof d=="object"&&Array.isArray(d.options)){const l=n(d.options,S);if(l)return l;continue}if(d!=null&&typeof d=="object"){const l=d.value==null?"":String(d.value);if(l===o)return{label:d.label!=null?String(d.label):l,avatar:d.avatar,color:d.color}}else{const l=String(d);if(l===o)return{label:l,avatar:void 0,color:void 0}}}return null}function a(c,S,o){let d=null,l=S==null?"":String(S),s;if(typeof c=="function")d=c(S,o);else if(c===!0){const r=n(o.options,S);r&&(l=r.label,s=r.color,r.avatar!=null&&r.avatar!==""&&(d=String(r.avatar)))}else d=String(c);if(d==null||d===""){if(l==null||l==="")return null;d=C(l)}return{avatar:d,label:l,color:s}}function m(c,S,o,d,l){for(;S.firstChild;)S.removeChild(S.firstChild);const s=a(o.avatar,d,l);s&&S.appendChild(A(c,s))}function E(c,S){const o=S.addons;if(!Array.isArray(o)||o.length===0)return null;f(c.doc);const d=c.doc,l=d.createElement("div");l.className=`${U}__addons`;const s=[];for(const r of o){if(r==null||typeof r!="object")continue;if(r.avatar!==void 0&&r.avatar!==null&&r.avatar!==!1){const b=d.createElement("span");b.className=`${U}__addon-avatar`,b.setAttribute("aria-hidden","true"),l.appendChild(b),s.push({el:b,spec:r,avatar:!0});continue}const B=r.href,z=d.createElement(B!=null?"a":"button");z.className=`${U}__addon`,B==null?z.type="button":z.href=String(B),r.ariaLabel!=null&&r.ariaLabel!==""&&(z.setAttribute("aria-label",String(r.ariaLabel)),z.title=r.tooltip!=null&&r.tooltip!==""?String(r.tooltip):String(r.ariaLabel));const W=h(d,r.icon);W&&z.appendChild(W),l.appendChild(z),s.push({el:z,spec:r,avatar:!1})}return{bar:l,entries:s}}function _(c,S,o,d,l){f(c.doc);const s=c.doc,r=s.createElement("section");r.className=`${U}__panel`;const i=s.createElement("div");i.className=`${U}__panel-header`;const B=s.createElement("div");if(B.className=`${U}__panel-heading`,S.title!=null){const b=s.createElement("h3");b.className=`${U}__panel-title`,b.textContent=S.title,B.appendChild(b)}if(S.subtitle!=null){const b=s.createElement("p");b.className=`${U}__panel-subtitle`,b.textContent=S.subtitle,B.appendChild(b)}i.appendChild(B);const z=s.createElement("div");z.className=`${U}__panel-actions`,i.appendChild(z),r.appendChild(i);const W=s.createElement("div");W.className=`${U}__panel-body`,S.axis&&(W.classList.add(T(S.axis)),l.buildChildren(c,W,S.blocks,S.axis,d)),r.appendChild(W);for(const b of S.actions){const J=s.createElement("button");J.type="button",J.className=`${U}__panel-action`,b.ariaLabel!=null&&b.ariaLabel!==""&&(J.setAttribute("aria-label",String(b.ariaLabel)),J.title=String(b.ariaLabel));const Q=h(s,b.icon);Q&&J.appendChild(Q),typeof b.onClick=="function"&&u(c,J,"click",()=>{b.onClick()}),z.appendChild(J)}if(S.collapsible){const b=s.createElement("button");b.type="button",b.className=`${U}__panel-action ${U}__panel-collapse`,b.setAttribute("aria-expanded","true");const J=c.t("form.panel.collapse");b.setAttribute("aria-label",J),b.title=J;const Q=re(s,"chevronUp");Q&&b.appendChild(Q);let ne=!1;u(c,b,"click",()=>{ne=!ne,W.hidden=ne,b.setAttribute("aria-expanded",ne?"false":"true");const Z=c.t(ne?"form.panel.expand":"form.panel.collapse");for(b.setAttribute("aria-label",Z),b.title=Z;b.firstChild;)b.removeChild(b.firstChild);const Y=re(s,ne?"chevronDown":"chevronUp");Y&&b.appendChild(Y)}),z.appendChild(b)}return l.applyCss(r,S.css),S.spacing!=null&&r.style.setProperty("--lattice-form-item-gap",S.spacing),S.hidden&&(r.hidden=!0),o.appendChild(r),r}}),je("packages/modules/form/view.js",function(M,X){"use strict";Object.defineProperty(M,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return l}}),Object.defineProperty(M,"applyCss",{enumerable:!0,get:function(){return s}}),Object.defineProperty(M,"runValidation",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(M,"markValidation",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(M,"validateItem",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(M,"buildItem",{enumerable:!0,get:function(){return k}}),Object.defineProperty(M,"buildBlock",{enumerable:!0,get:function(){return I}}),Object.defineProperty(M,"buildChildren",{enumerable:!0,get:function(){return F}}),Object.defineProperty(M,"mount",{enumerable:!0,get:function(){return p}}),Object.defineProperty(M,"wizardGoTo",{enumerable:!0,get:function(){return G}}),Object.defineProperty(M,"wizardNext",{enumerable:!0,get:function(){return R}}),Object.defineProperty(M,"wizardBack",{enumerable:!0,get:function(){return ee}});const e=X("packages/modules/form/styles.js"),U=e.NS,O=e.injectColsBreakpoint,re=X("packages/modules/form/model.js"),g=re.cssSize,L=re.isEmpty,A=X("packages/modules/form/controls/registry.js").resolveControl,T=X("packages/modules/form/rules.js").applyRules,f=X("packages/modules/form/state.js").syncRecordState,h=X("packages/modules/form/stepper.js").createStepper,x=X("packages/modules/form/validation.js"),t=x.normalizeHookResult,n=x.validateValue,a=X("packages/modules/form/extras.js"),m=a.buildTooltip,E=a.buildLock,_=a.buildAddons,c=a.renderAvatarAddon,S=a.buildPanel,o="data-lattice-separator-label-styles";function d(){return`
1274
+ `.trim()}function f(h){const T=h&&h.documentElement;if(!T||(b(h),T.getAttribute(F)))return;T.setAttribute(F,"1");const c=h.createElement("style");c.textContent=v(),(h.head||h.body||T).appendChild(c)}function u(h,T,c,l){T.addEventListener(c,l),h.disposers.push(()=>T.removeEventListener(c,l))}function d(h,T){if(T==null||T==="")return null;if(T.nodeType){const a=T.cloneNode(!0);return a.setAttribute&&a.setAttribute("aria-hidden","true"),a}const c=Q(h,String(T));if(c)return c;const l=h.createElement("span");return l.className=`${U}__icon-glyph`,l.setAttribute("aria-hidden","true"),l.textContent=String(T).slice(0,2),l}function _(h,T){const{labelEl:c,item:l,labelPosition:a,labelWidth:i}=T,n=l.tooltip;if(typeof n!="string"||n===""||a==="hidden")return null;f(h.doc);const s=h.doc,I=s.createElement("div");I.className=`${U}__label-group`,a==="left"&&i!=null&&(I.style.flex=`0 0 ${typeof i=="number"?`${i}px`:String(i)}`),I.appendChild(c);const z=`lat-form-tip-${_.seq=(_.seq||0)+1}`,Y=s.createElement("span");Y.className=`${U}__tooltip-wrap`;const B=s.createElement("button");B.type="button",B.className=`${U}__tooltip-trigger`,B.setAttribute("aria-label",h.t("form.tooltip.help")),B.setAttribute("aria-expanded","false"),B.setAttribute("aria-controls",z),B.textContent="?";const ee=s.createElement("span");ee.className=`${U}__tooltip`,ee.setAttribute("id",z),ee.setAttribute("role","tooltip"),ee.textContent=n,Y.appendChild(B),Y.appendChild(ee),I.appendChild(Y);let oe=!1;const H=()=>{B.setAttribute("aria-expanded","true"),ee.classList.add(`${U}__tooltip--open`)},Z=()=>{oe||(B.setAttribute("aria-expanded","false"),ee.classList.remove(`${U}__tooltip--open`))};return u(h,B,"mouseenter",H),u(h,B,"mouseleave",Z),u(h,B,"focus",H),u(h,B,"blur",Z),u(h,B,"click",G=>{G.stopPropagation(),oe=!oe,oe?H():Z()}),{group:I,tooltipId:z}}function t(h,T,c,l){const a=l&&l.tagName;if(!(c.lockIcon!==!1&&(a==="INPUT"||a==="TEXTAREA")&&(c.readOnly===!0||c.readOnlyWhen!=null)))return null;f(h.doc);const n=h.doc.createElement("span");n.className=`${U}__lock`,n.setAttribute("aria-hidden","true"),n.title=h.t("form.readonly");const s=Q(h.doc,"lock");return s&&n.appendChild(s),T.appendChild(n),{el:n}}function r(h,T){if(!Array.isArray(h))return null;const c=T==null?"":String(T);for(const l of h){if(l!=null&&typeof l=="object"&&Array.isArray(l.options)){const a=r(l.options,T);if(a)return a;continue}if(l!=null&&typeof l=="object"){const a=l.value==null?"":String(l.value);if(a===c)return{label:l.label!=null?String(l.label):a,avatar:l.avatar,color:l.color}}else{const a=String(l);if(a===c)return{label:a,avatar:void 0,color:void 0}}}return null}function o(h,T,c){let l=null,a=T==null?"":String(T),i;if(typeof h=="function")l=h(T,c);else if(h===!0){const n=r(c.options,T);n&&(a=n.label,i=n.color,n.avatar!=null&&n.avatar!==""&&(l=String(n.avatar)))}else l=String(h);if(l==null||l===""){if(a==null||a==="")return null;l=y(a)}return{avatar:l,label:a,color:i}}function p(h,T,c,l,a){for(;T.firstChild;)T.removeChild(T.firstChild);const i=o(c.avatar,l,a);i&&T.appendChild(C(h,i))}function A(h,T){const c=T.addons;if(!Array.isArray(c)||c.length===0)return null;f(h.doc);const l=h.doc,a=l.createElement("div");a.className=`${U}__addons`;const i=[];for(const n of c){if(n==null||typeof n!="object")continue;if(n.avatar!==void 0&&n.avatar!==null&&n.avatar!==!1){const B=l.createElement("span");B.className=`${U}__addon-avatar`,B.setAttribute("aria-hidden","true"),a.appendChild(B),i.push({el:B,spec:n,avatar:!0});continue}const I=n.href,z=l.createElement(I!=null?"a":"button");z.className=`${U}__addon`,I==null?z.type="button":z.href=String(I),n.ariaLabel!=null&&n.ariaLabel!==""&&(z.setAttribute("aria-label",String(n.ariaLabel)),z.title=n.tooltip!=null&&n.tooltip!==""?String(n.tooltip):String(n.ariaLabel));const Y=d(l,n.icon);Y&&z.appendChild(Y),a.appendChild(z),i.push({el:z,spec:n,avatar:!1})}return{bar:a,entries:i}}function g(h,T,c,l,a){f(h.doc);const i=h.doc,n=i.createElement("section");n.className=`${U}__panel`;const s=i.createElement("div");s.className=`${U}__panel-header`;const I=i.createElement("div");if(I.className=`${U}__panel-heading`,T.title!=null){const B=i.createElement("h3");B.className=`${U}__panel-title`,B.textContent=T.title,I.appendChild(B)}if(T.subtitle!=null){const B=i.createElement("p");B.className=`${U}__panel-subtitle`,B.textContent=T.subtitle,I.appendChild(B)}s.appendChild(I);const z=i.createElement("div");z.className=`${U}__panel-actions`,s.appendChild(z),n.appendChild(s);const Y=i.createElement("div");Y.className=`${U}__panel-body`,T.axis&&(Y.classList.add(O(T.axis)),a.buildChildren(h,Y,T.blocks,T.axis,l)),n.appendChild(Y);for(const B of T.actions){const ee=i.createElement("button");ee.type="button",ee.className=`${U}__panel-action`,B.ariaLabel!=null&&B.ariaLabel!==""&&(ee.setAttribute("aria-label",String(B.ariaLabel)),ee.title=String(B.ariaLabel));const oe=d(i,B.icon);oe&&ee.appendChild(oe),typeof B.onClick=="function"&&u(h,ee,"click",()=>{B.onClick()}),z.appendChild(ee)}if(T.collapsible){const B=i.createElement("button");B.type="button",B.className=`${U}__panel-action ${U}__panel-collapse`,B.setAttribute("aria-expanded","true");const ee=h.t("form.panel.collapse");B.setAttribute("aria-label",ee),B.title=ee;const oe=Q(i,"chevronUp");oe&&B.appendChild(oe);let H=!1;u(h,B,"click",()=>{H=!H,Y.hidden=H,B.setAttribute("aria-expanded",H?"false":"true");const Z=h.t(H?"form.panel.expand":"form.panel.collapse");for(B.setAttribute("aria-label",Z),B.title=Z;B.firstChild;)B.removeChild(B.firstChild);const G=Q(i,H?"chevronDown":"chevronUp");G&&B.appendChild(G)}),z.appendChild(B)}return a.applyCss(n,T.css),T.spacing!=null&&n.style.setProperty("--lattice-form-item-gap",T.spacing),T.hidden&&(n.hidden=!0),c.appendChild(n),n}}),Ne("packages/modules/form/view.js",function(S,q){"use strict";Object.defineProperty(S,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"applyCss",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"runValidation",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"markValidation",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(S,"validateItem",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(S,"buildItem",{enumerable:!0,get:function(){return M}}),Object.defineProperty(S,"buildBlock",{enumerable:!0,get:function(){return D}}),Object.defineProperty(S,"buildChildren",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"mount",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"wizardGoTo",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"wizardNext",{enumerable:!0,get:function(){return te}}),Object.defineProperty(S,"wizardBack",{enumerable:!0,get:function(){return re}});const e=q("packages/modules/form/styles.js"),U=e.NS,$=e.injectColsBreakpoint,Q=e.NEVER_STACK_COLS_CONTAINER,b=q("packages/modules/form/model.js"),N=b.cssSize,y=b.isEmpty,F=q("packages/modules/form/controls/registry.js").resolveControl,v=q("packages/modules/form/rules.js").applyRules,u=q("packages/modules/form/state.js").syncRecordState,_=q("packages/modules/form/stepper.js").createStepper,t=q("packages/modules/form/validation.js"),r=t.normalizeHookResult,o=t.validateValue,p=q("packages/modules/form/extras.js"),A=p.buildTooltip,g=p.buildLock,h=p.buildAddons,T=p.renderAvatarAddon,c=p.buildPanel,l="data-lattice-separator-label-styles";function a(){return`
1258
1275
  .${U}__separator--labelled{
1259
1276
  display:flex; align-items:center; gap:var(--lattice-space);
1260
1277
  border-top:0; margin:var(--lattice-space) 0; width:100%;
@@ -1267,7 +1284,7 @@
1267
1284
  color:var(--lattice-foreground-muted);
1268
1285
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
1269
1286
  }
1270
- `.trim()}function l(P){const N=P&&P.documentElement;if(!N||N.getAttribute(o))return;N.setAttribute(o,"1");const y=P.createElement("style");y.textContent=d(),(P.head||P.body||N).appendChild(y)}function s(P,N){if(N!=null){if(typeof N=="string"){if(N.trim()){const y=typeof P.style.cssText=="string"?P.style.cssText:"";P.style.cssText=y?`${y};${N}`:N}return}for(const y of Object.keys(N))P.style[y]=N[y]}}function r(P){return P==="cols"?`${U}__cols`:P==="items"?`${U}__items`:`${U}__rows`}function i(P,N,y,$){N.addEventListener(y,$),P.disposers.push(()=>N.removeEventListener(y,$))}function B(P){return P.uidSeq+=1,`lat-form-${P.uidSeq}`}function z(P){if(P==null)return null;const N=P.tagName;return N==="INPUT"||N==="TEXTAREA"||N==="SELECT"?P:typeof P.querySelector=="function"?P.querySelector("input, textarea, select"):null}function W(P,N,y){const $={name:N.item.name,value:y,previousValue:N.value,item:N.item},w=P.emitter.emitBefore("beforeChange",$,"user"),V=()=>{N.value=y,N.item.value=y,ne(N),P.emitter.emit("change",{name:N.item.name,value:y,previousValue:$.previousValue,item:N.item}),T(P),N.item.validationMode==="change"&&Ne(P,N)},oe=_e=>{N.def.write(N.control,N.value),Q(P,N,_e)},ie=_e=>{if(!_e){N.def.write(N.control,N.value);return}const Oe=b(P,N,y);Oe&&typeof Oe.then=="function"?Oe.then(Se=>{Se.ok?V():oe(Se.message)}):Oe.ok?V():oe(Oe.message)};w&&typeof w.then=="function"?w.then(ie):ie(w)}function b(P,N,y){if(N.ruleRequired&&L(y))return{ok:!1,message:P.t("form.required")};const $=N.def;if(typeof $.validate!="function")return{ok:!0,message:null};const w=$.validate(N.control,N.item,y);return w&&typeof w.then=="function"?w.then(V=>J(P,V)):J(P,w)}function J(P,N){return N===!1?{ok:!1,message:P.t("form.invalid")}:typeof N=="string"?{ok:!1,message:N}:{ok:!0,message:null}}function Q(P,N,y){let $=N.errorEl;$||($=P.doc.createElement("div"),$.className=`${U}__error`,$.id=B(P),N.controlWrap.appendChild($),N.errorEl=$);const w=y==null||y===""?P.t("form.invalid"):String(y);$.textContent=w,N.el.setAttribute("data-invalid","true"),N.control.setAttribute("aria-invalid","true");const V=(N.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!N.validationEl.hidden&&N.validationEl.textContent===w&&V.includes(N.validationEl.id))&&!V.includes($.id)&&(V.push($.id),N.control.setAttribute("aria-describedby",V.join(" ")))}function ne(P){P.errorEl&&(P.errorEl.remove(),P.errorEl=null),P.el.removeAttribute("data-invalid"),P.control.removeAttribute("aria-invalid")}function Z(P,N){const y=N.value,$=N.item;if(typeof N.def.validate=="function"){const w=t(N.def.validate(N.control,$,y),$,P.t);if(w)return w}return n($,y,P.t,N.ruleRequired===!0)}function Y(P,N,y){const $=N.item,w=N.validationEl;if(N.validation.pristine=!1,N.preEl&&(N.preEl.hidden=!0),y){N.validation.valid=!1,N.validation.code=y.code,N.validation.message=y.message,N.control.setAttribute("aria-invalid","true");const V=N.tooltipId?`${N.tooltipId} ${w.id}`:w.id;N.control.setAttribute("aria-describedby",V),w.textContent=y.message,w.className=`${U}__validation ${U}__validation--error`,w.hidden=!1;return}N.validation.valid=!0,N.validation.code=null,N.validation.message=null,N.control.removeAttribute("aria-invalid"),N.tooltipId?N.control.setAttribute("aria-describedby",N.tooltipId):N.control.removeAttribute("aria-describedby"),typeof $.successMessage=="string"&&$.successMessage!==""?(w.textContent=$.successMessage,w.className=`${U}__validation ${U}__validation--success`,w.hidden=!1):(w.textContent="",w.className=`${U}__validation`,w.hidden=!0)}function Ne(P,N){typeof N.def.reset=="function"&&N.def.reset(N.control,N.item);const y=Z(P,N);Y(P,N,y);const $=y==null;return P.emitter.emit("validated",{name:N.item.name,item:N.item,value:N.value,valid:$,failures:y?[{name:N.item.name,rule:y.code,message:y.message}]:[]}),$}function ve(P,N){const y=N.control,$=N.item,w=N.def,V=oe=>()=>{P.emitter.emit(oe,{name:$.name,item:$}),oe==="blur"&&$.validationMode==="blur"&&Ne(P,N)};if(w.kind==="field"){const oe=()=>{P.emitter.emit("input",{name:$.name,value:w.read(y,$),item:$})},ie=()=>{W(P,N,w.read(y,$))};i(P,y,"input",oe),i(P,y,"change",ie);for(const _e of w.domEvents||[])i(P,y,_e,Se=>{const j=Se&&typeof Se=="object"&&Se.detail&&typeof Se.detail=="object"?Se.detail:null;P.emitter.emit(_e,j?{name:$.name,item:$,...j}:{name:$.name,value:w.read(y,$),item:$})})}else w.kind==="toggle"?i(P,y,"change",()=>{W(P,N,w.read(y,$))}):w.kind==="button"&&i(P,y,"click",()=>{y.disabled||y.getAttribute("aria-disabled")==="true"||P.emitter.emit("click",{name:$.name,item:$,value:null})});w.kind!=="display"&&(i(P,y,"focus",V("focus")),i(P,y,"blur",V("blur")))}function se(P,N){if(typeof P=="string"&&/%$/.test(P.trim())){const y=parseFloat(P);if(Number.isFinite(y)){const $=Math.round(y*N/100*1e6)/1e6;return`0 0 calc(${y}% - ${$} * var(--lattice-space))`}}return`0 0 ${g(P)}`}function k(P,N,y,$={}){const w=A(N.type)||A("text"),V=N.labelPosition!=null?N.labelPosition:$.labelPosition!=null?$.labelPosition:"top",oe=N.labelWidth!=null?N.labelWidth:$.labelWidth,ie=N.requiredHint!==void 0?N.requiredHint:$.requiredHint,_e=P.doc.createElement("div");_e.className=`${U}__item`,_e.setAttribute("data-label-position",V);const Oe=w.build(N,P),Se=w.action===!0,j=!Se&&N.label!=null&&N.label!=="";let te=null,ce=null;if(j){te=P.doc.createElement("label"),te.className=`${U}__label`,te.textContent=String(N.label);const we=B(P);te.setAttribute("for",we),(z(Oe)||Oe).id=we,V==="hidden"&&te.classList.add(`${U}__label--hidden`);const q=m(P,{labelEl:te,item:N,labelPosition:V,labelWidth:oe});q?(ce=q.tooltipId,_e.appendChild(q.group)):(V==="left"&&oe!=null&&(te.style.flex=`0 0 ${g(oe)}`),_e.appendChild(te))}else if(V==="hidden"&&!Se){const we=z(Oe);we&&N.placeholder!=null&&N.placeholder!==""&&we.setAttribute("aria-label",String(N.placeholder))}const K=P.doc.createElement("div");K.className=`${U}__control`,K.appendChild(Oe);const de=E(P,K,N,Oe),ue=_(P,N);let be=K;if(ue&&(be=P.doc.createElement("div"),be.className=`${U}__field`,be.appendChild(K),be.appendChild(ue.bar)),_e.appendChild(be),!Se&&N.helpMessage!=null&&N.helpMessage!==""){const we=P.doc.createElement("div");we.className=`${U}__help`,we.textContent=String(N.helpMessage),K.appendChild(we)}let Ce=null;!Se&&N.preMessage!=null&&N.preMessage!==""&&(Ce=P.doc.createElement("div"),Ce.className=`${U}__pre`,Ce.textContent=String(N.preMessage),K.appendChild(Ce));const Ae=P.doc.createElement("div");Ae.className=`${U}__validation`,Ae.id=B(P),Ae.hidden=!0,K.appendChild(Ae),N.width!=null&&($.colsGapCount!=null?_e.style.setProperty("--lattice-item-flex",se(N.width,$.colsGapCount)):_e.style.flex=`0 0 ${g(N.width)}`),V==="left"&&(be.style.flex="1 1 auto"),Se&&V==="left"&&oe!=null&&!(N.props&&N.props.fullWidth===!0)&&(be.style.paddingLeft=`calc(${g(oe)} + var(--lattice-space))`),s(_e,N.css);const ye=w.read(Oe,N),me={item:N,el:_e,control:Oe,controlWrap:K,def:w,value:ye,hidden:N.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ae,preEl:Ce,labelEl:te,labelPosition:V,requiredHint:ie,placeholderEl:z(Oe),placeholderBase:N.placeholder!=null?String(N.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:ce,lockEl:de?de.el:null};if(N.value=ye,ce&&me.control.setAttribute("aria-describedby",ce),ue)for(const we of ue.entries){if(we.avatar){c(P.doc,we.el,we.spec,me.value,me.item);continue}typeof we.spec.onClick=="function"&&i(P,we.el,"click",()=>{we.spec.onClick(me.value,me.item)})}if(me.syncLock=()=>{if(!me.lockEl)return;const we=me.item.readOnly===!0||me.ruleReadOnly;me.lockEl.hidden=!we,me.lockEl.parentElement.classList.toggle(`${U}__control--lock`,we)},me.syncAddons=()=>{if(!ue)return;const we=me.item.disabled===!0;for(const q of ue.entries){if(q.avatar){c(P.doc,q.el,q.spec,me.value,me.item);continue}q.el.tagName==="A"?q.el.setAttribute("aria-disabled",we?"true":"false"):q.el.disabled=we}},f(me),me.hidden&&(_e.hidden=!0),w.custom&&Oe.__latticeFormApi){const we=Oe.__latticeFormApi;we._read=()=>me.value,we._write=q=>{me.value=q,me.item.value=q,w.write(Oe,q),T(P)},we._commit=q=>{W(P,me,q)},we._input=q=>{P.emitter.emit("input",{name:me.item.name,value:q,item:me.item})}}return typeof w.destroy=="function"&&P.disposers.push(()=>w.destroy(Oe)),ve(P,me),P.order.push(me),N.name!=null&&P.items.set(N.name,me),y.appendChild(_e),me}function I(P,N,y,$={}){const w={labelPosition:N.labelPosition!=null?N.labelPosition:$.labelPosition,labelWidth:N.labelWidth!=null?N.labelWidth:$.labelWidth,requiredHint:$.requiredHint};if(N.kind==="panel")return S(P,N,y,w,{buildChildren:F,applyCss:s});if(N.kind==="spacer"){const oe=P.doc.createElement("div");return oe.className=`${U}__spacer`,s(oe,N.css),N.hidden&&(oe.hidden=!0),y.appendChild(oe),oe}if(N.kind==="separator"){const oe=P.doc.createElement("div");oe.className=`${U}__separator`,oe.setAttribute("role","separator");const ie=N.label;if(ie!=null){l(P.doc),oe.classList.add(`${U}__separator--labelled`);const _e=P.t(ie);oe.setAttribute("aria-label",_e);const Oe=P.doc.createElement("span");Oe.className=`${U}__separator-rule`,Oe.setAttribute("aria-hidden","true");const Se=P.doc.createElement("span");Se.className=`${U}__separator-label`,Se.textContent=_e;const j=P.doc.createElement("span");j.className=`${U}__separator-rule`,j.setAttribute("aria-hidden","true"),oe.appendChild(Oe),oe.appendChild(Se),oe.appendChild(j)}else oe.setAttribute("aria-label",P.t("form.separator"));return s(oe,N.css),N.hidden&&(oe.hidden=!0),y.appendChild(oe),oe}if(N.kind==="fieldset"){const oe=P.doc.createElement("fieldset");if(oe.className=`${U}__fieldset`,N.legend!=null){const _e=P.doc.createElement("legend");_e.className=`${U}__legend`,_e.textContent=N.legend,oe.appendChild(_e)}const ie=P.doc.createElement("div");return ie.className=`${U}__fieldset-body`,N.axis&&ie.classList.add(r(N.axis)),N.axis&&F(P,ie,N.blocks,N.axis,w),oe.appendChild(ie),s(oe,N.css),N.spacing!=null&&oe.style.setProperty("--lattice-form-item-gap",N.spacing),N.hidden&&(oe.hidden=!0),y.appendChild(oe),oe}const V=P.doc.createElement("div");return V.className=r(N.axis),N.axis&&F(P,V,N.blocks,N.axis,w),s(V,N.css),N.spacing!=null&&V.style.setProperty("--lattice-form-item-gap",N.spacing),N.hidden&&(V.hidden=!0),y.appendChild(V),V}function F(P,N,y,$,w={}){const V=$==="cols"?{...w,colsGapCount:y.length-1}:w;for(const oe of y)oe.kind==="item"?k(P,oe,N,V):I(P,oe,N,w)}function p(P){const N=P.el;for(;N.firstChild;)N.removeChild(N.firstChild);P.items.clear(),P.order.length=0;const y=P.model;N.classList.add(U,r(y.axis)),N.setAttribute("data-density",y.density),y.colsBreakpoint!==480&&N.style.setProperty("--lattice-cols-container",O(P.doc,y.colsBreakpoint)),P.disposers.push(()=>{N.classList.remove(`${U}__rows`,`${U}__cols`,`${U}__items`)}),s(N,y.css),y.spacing!=null&&N.style.setProperty("--lattice-form-item-gap",y.spacing),y.labelGap!=null&&N.style.setProperty("--lattice-form-label-gap",y.labelGap);const $={labelPosition:y.labelPosition,labelWidth:y.labelWidth,requiredHint:y.requiredHint};y.steps&&y.steps.length?D(P,$):F(P,N,y.blocks,y.axis==="cols"?"cols":"rows",$),T(P)}function D(P,N={}){const y=P.model,$=y.steps,w=P.doc,V=P.el,oe=w.createElement("div");V.appendChild(oe);const ie=h(oe,{doc:w,t:P.t,steps:$.map(ue=>({id:ue.id,label:ue.label})),active:0,orientation:y.stepOrientation,onGoTo:ue=>{G(P,ue)}}),_e=[];let Oe=P.order.length;for(const ue of $){const be=w.createElement("div");be.className=`${U}__step`,be.hidden=!0,F(P,be,ue.blocks,ue.axis,N),ue.css&&s(be,ue.css),V.appendChild(be);const Ce=P.order.length;be.__records=P.order.slice(Oe,Ce),Oe=Ce,_e.push(be)}const Se=w.createElement("div");Se.className=`${U}__step-nav`;const j=w.createElement("button");j.type="button",j.className=`${U}__step-back`,j.textContent=P.t("form.back");const te=w.createElement("button");te.type="button",te.className=`${U}__step-next`,te.textContent=P.t("form.next"),Se.appendChild(j),Se.appendChild(te),V.appendChild(Se);const ce={steps:$,bodies:_e,stepper:ie,back:j,next:te,active:0};P.wizard=ce;const K=()=>{ie.setActive(ce.active),_e.forEach((ue,be)=>{ue.hidden=be!==ce.active}),j.disabled=ce.active===0,te.textContent=ce.active===$.length-1?P.t("form.finish"):P.t("form.next")},de=async ue=>{const be=_e[ue].__records||[];for(const Ce of be){if(Ce.item.name==null||Ce.def.kind==="button")continue;const Ae=await Promise.resolve(b(P,Ce,Ce.value));if(!Ae.ok)return Q(P,Ce,Ae.message),!1;ne(Ce)}return!0};ce._stepValid=de,ce._render=K,j.addEventListener("click",()=>{ee(P)}),te.addEventListener("click",()=>{R(P)}),K()}async function G(P,N){const y=P.wizard;if(!y)return!1;const $=y.steps.length,w=Number(N);if(!Number.isFinite(w)||w<0||w>=$)return!1;const V=y.active;if(w===V)return!1;if(w>V)for(let oe=V;oe<w;oe+=1){if(!await y._stepValid(oe))return y.stepper.setStatus(oe,"error"),!1;y.stepper.setStatus(oe,"complete")}return y.active=w,y._render(),!0}function R(P){const N=P.wizard;return N?N.active>=N.steps.length-1?N._stepValid(N.active).then(y=>(N.stepper.setStatus(N.active,y?"complete":"error"),y)):G(P,N.active+1):Promise.resolve(!1)}function ee(P){const N=P.wizard;return N?G(P,N.active-1):Promise.resolve(!1)}}),je("packages/modules/form/emitter.js",function(M,X){"use strict";Object.defineProperty(M,"FORM_EVENTS",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"Emitter",{enumerable:!0,get:function(){return O}});const e=new Set(["api","user"]),U=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class O{#e=new Map;on(g,L){if(typeof L!="function")return()=>{};let C=this.#e.get(g);return C||(C=new Set,this.#e.set(g,C)),C.add(L),()=>this.off(g,L)}off(g,L){const C=this.#e.get(g);C&&C.delete(L)}emit(g,L){const C=this.#e.get(g),A=this.#e.get("*");if((!C||C.size===0)&&(!A||A.size===0))return;const H={...L||null,type:g},T=(v,f)=>{for(const u of[...v])try{u(H)}catch(h){console.warn(`lattice-form: a '${f}' handler threw; other handlers were unaffected.`,h)}};C&&C.size&&T(C,g),A&&A.size&&T(A,"*")}emitBefore(g,L,C){const A=this.#e.get(g);if(!A||A.size===0)return!0;let H=!1,T=null;const v=n=>{H=!0,n!=null&&T===null&&(T=String(n))},f=C||L&&L.origin,u={...L||null,type:g,origin:e.has(f)?f:"user",get defaultPrevented(){return H},get reason(){return T},preventDefault(n){v(n)}},h=[...A],x=()=>(H&&T===null&&(T="prevented"),H&&L&&typeof L=="object"&&(L.reason=T),!H),t=[];for(let n=0;n<h.length;n++){const a=h[n];try{const m=a(u);m&&typeof m.then=="function"?t.push(m):m===!1&&v("prevented")}catch(m){v("error"),console.warn(`lattice-form: a '${g}' before-handler threw; the commit was cancelled.`,m)}}return t.length===0?x():Promise.allSettled(t).then(n=>{for(const a of n)a.status==="rejected"?(v("error"),console.warn(`lattice-form: a '${g}' before-handler rejected; the commit was cancelled.`,a.reason)):a.value===!1&&v("prevented");return x()})}clear(){this.#e.clear()}}}),je("packages/modules/form/bind-router.js",function(M,X){"use strict";Object.defineProperty(M,"routerBinding",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"writeRouterRecord",{enumerable:!0,get:function(){return O}});function e(re){return re!==null&&typeof re=="object"&&!Array.isArray(re)}function U(re){const{router:g,route:L,key:C}=re,A=f=>f!=null&&String(f.rowKey??f.id)===String(C);return{kind:"router",record:()=>g&&typeof g.get=="function"?g.get(L,C):void 0,items:()=>[],density:()=>{},subscribe:f=>{if(!g||typeof g.subscribe!="function")return()=>{};const u=x=>{if(x){for(const t of x.add||[])A(t)&&f(null,null,t);for(const t of x.update||[])A(t)&&f(null,null,t)}},h=g.subscribe(L,u);return typeof h=="function"?h:()=>{}},save:f=>O(re,f)}}function O(re,g){const{router:L,route:C,key:A,onSave:H}=re;if(!Object.keys(g||{}).length)return!0;const v=()=>L&&typeof L.get=="function"?L.get(C,A):void 0,f=n=>{!L||typeof L.apply!="function"||L.apply([{op:"upsert",row:n}])},u=()=>{!L||typeof L.apply!="function"||(e(h)?L.apply([{op:"upsert",row:h}]):L.apply([{op:"delete",row:x}]))},h=v(),x={...e(h)?h:{},...g};if(f(x),typeof H!="function")return!0;let t;try{t=H(g,x)}catch{return u(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(u(),!1)):!0}}),je("packages/modules/form/bind.js",function(M,X){"use strict";Object.defineProperty(M,"resolveBind",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"isBound",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"applyBinding",{enumerable:!0,get:function(){return t}});const U=X("packages/modules/form/model.js").DENSITIES,re=X("packages/modules/form/bind-router.js").routerBinding,g=new Set(["number","currency","percent","integer","decimal","duration"]);function L(n){const a=n&&n.dataType;if(a&&(a.unitConfig||a.temperatureConfig))return!0;const m=n&&n.edit?n.edit.editor:null;return m==="unit"||m==="temperature"}function C(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function A(n){const a=n&&n.edit?n.edit.editor:null,m=n&&n.type;return a==="checkbox"||m==="boolean"?"checkbox":a==="number"||m!=null&&g.has(m)||L(n)?"number":"input"}function H(n){const a=n&&n.columns&&typeof n.columns.all=="function"?n.columns.all():[],m=[];for(const E of a){if(!E||!E.field||E.generated||E.computed)continue;const _={type:A(E),name:E.field,label:E.title,format:E.format},c=E.dataType,S=c&&c.unitConfig,o=c&&c.temperatureConfig;S?Object.assign(_,{system:S.system,unit:S.unit,binary:S.binary,decimals:S.decimals,minDecimals:S.minDecimals,maxDecimals:S.maxDecimals,display:S.display,group:S.group,space:S.space,placement:S.placement,significantFigures:S.significantFigures,compound:S.compound,nullDisplay:S.nullDisplay}):o&&Object.assign(_,{scale:o.scale,display:o.display,decimals:o.decimals,minDecimals:o.minDecimals,maxDecimals:o.maxDecimals,space:o.space,nullDisplay:o.nullDisplay}),m.push(_)}return m}function T(n,a){const m=n&&n.columns&&typeof n.columns.all=="function"?n.columns.all():[];for(const E of m)if(E&&E.field===a)return E;return null}function v(n){const a=n&&typeof n.get=="function"?n.get("density"):void 0;return U.includes(a)?a:void 0}function f(n){const{grid:a,rowKey:m}=n,E=()=>{const o=a&&a.rows&&typeof a.rows.byKey=="function"?a.rows.byKey(m):null;return o&&C(o.data)?{...o.data}:{}},_=o=>{const d=T(a,o);return d?d.id:o};return{kind:"grid",record:E,items:()=>H(a),density:()=>v(a),subscribe:o=>{if(!a||typeof a.on!="function")return()=>{};const d=l=>{if(!l||l.key!==m)return;const s=a.columns&&typeof a.columns.get=="function"?a.columns.get(l.colId):null,r=s?s.field:l.colId;r&&o(r,l.value)};return a.on("cell:changed",d)},save:o=>{const d=Object.keys(o);if(!d.length)return!0;if(!a||!a.edit||typeof a.edit.setCells!="function")return!1;const l=d.map(r=>({key:m,colId:_(r),value:o[r]})),s=a.edit.setCells(l,"cell",{origin:"form"});return s&&typeof s.then=="function"?s.then(r=>r>0):s>0}}}function u(n){return{kind:"values",record:()=>({...n}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:E=>{for(const _ of Object.keys(E))n[_]=E[_];return!0}}}function h(n){const a=n&&n.bind;return a==null||typeof a!="object"?null:a.grid!=null&&C(a.grid)?f(a):a.router!=null?re(a):u(a)}function x(n){return!!(n&&n.bind!=null&&typeof n.bind=="object")}function t(n,a,m){n.bound=m;const E=(S,o)=>{const d=a.getItem(S);d&&d.setValue(o)},_=(S,o,d)=>{if(d!=null){for(const l of Object.keys(d))if(n.items.has(l)){if(n.dirty.has(l)){n.conflicts.add(l);continue}n.baseline[l]=d[l],E(l,d[l])}return}if(n.items.has(S)){if(n.dirty.has(S)){n.conflicts.add(S);return}n.baseline[S]=o,E(S,o)}},c=m.record();if(c!=null&&typeof c=="object")for(const S of Object.keys(c))n.items.has(S)&&(n.baseline[S]=c[S],E(S,c[S]));n.disposers.push(a.on("change",S=>{n.dirty.add(S.name),n.conflicts.delete(S.name)})),n.disposers.push(m.subscribe(_))}}),je("packages/modules/form/controls/input.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=Object.freeze(["text","email","password","url"]),re=Object.freeze({viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"],paint:"fill"}),g=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 L(v){return O.includes(v)?v:"text"}function C(v){return!(v.props&&v.props.reveal===!1)}function A(v,f){const u=f?g:re,h=v.createElementNS("http://www.w3.org/2000/svg","svg");h.setAttribute("viewBox",u.viewBox),h.setAttribute("focusable","false"),h.setAttribute("aria-hidden","true"),u.paint==="stroke"?(h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","1.5"),h.setAttribute("stroke-linecap","round"),h.setAttribute("stroke-linejoin","round")):h.setAttribute("fill","currentColor");for(const x of u.paths){const t=v.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",x),h.appendChild(t)}return h}function H(v){return v.__latPassword?v.__latPassword.input:v}function T(v,f,u){const h=f&&f.defaultView,x=h&&h.Event,t=x?new x(u,{bubbles:!0}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};v.dispatchEvent(t)}U("input",{kind:"field",build(v,f){const u=f.doc,h=L(v.subtype);if(h!=="password"||!C(v)){const c=u.createElement("input");return c.type=h,v.name&&(c.name=v.name),v.placeholder!=null&&(c.placeholder=String(v.placeholder)),c.value=v.value==null?"":String(v.value),c}const x=u.createElement("div");x.className="lat-form__password";const t=u.createElement("input");t.type="password",v.name&&(t.name=v.name),v.placeholder!=null&&(t.placeholder=String(v.placeholder)),t.value=v.value==null?"":String(v.value),x.appendChild(t);const n=u.createElement("button");n.type="button",n.className="lat-form__password-btn",n.setAttribute("aria-pressed","false");const a=f.t("form.password.show");n.setAttribute("aria-label",a),n.title=a,n.appendChild(A(u,!1)),x.appendChild(n);const m={revealed:!1,disabled:!1,input:t,btn:n};x.__latPassword=m;const E=c=>{m.revealed=c===!0,t.type=m.revealed?"text":"password",n.setAttribute("aria-pressed",m.revealed?"true":"false");const S=f.t(m.revealed?"form.password.hide":"form.password.show");n.setAttribute("aria-label",S),n.title=S,n.replaceChild(A(u,m.revealed),n.firstChild)};m.setRevealed=E,n.addEventListener("click",()=>{m.disabled||E(!m.revealed)});let _=!1;return x.addEventListener("focusin",()=>{_||(_=!0,T(x,u,"focus"))}),x.addEventListener("focusout",c=>{x.contains(c.relatedTarget)||(_=!1,E(!1),T(x,u,"blur"))}),x},read(v){return H(v).value},write(v,f){H(v).value=f==null?"":String(f)},state(v,f){const u=H(v);u.disabled=f.disabled===!0,u.readOnly=f.readOnly===!0;const h=v.__latPassword;h&&(h.disabled=f.disabled===!0,h.btn&&(h.btn.disabled=h.disabled))},reset(v){const f=v.__latPassword;f&&typeof f.setRevealed=="function"&&f.setRevealed(!1)}})}),je("packages/core/src/internal/predicates.js",function(M,X){"use strict";Object.defineProperty(M,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"isFunction",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"isBlank",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"isCtor",{enumerable:!0,get:function(){return g}});function e(L){return L!==null&&typeof L=="object"&&!Array.isArray(L)}function U(L){return typeof L=="function"}function O(L){return L==null}function re(L){return L==null||L===""}function g(L){return typeof L!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(L))?!0:!!(L.prototype&&Object.getOwnPropertyNames(L.prototype).length>1)}}),je("packages/core/src/internal/warn.js",function(M,X){"use strict";Object.defineProperty(M,"reportedWarnings",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"warnOnce",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"infoOnce",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"resetWarnings",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"invariant",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"DEV",{enumerable:!0,get:function(){return x}});const e=new Set,U=2e3;function O(t){if(e.add(t),e.size>U){const n=e.values().next().value;n!==void 0&&e.delete(n)}}const re=[],g=500;function L(t,n,a){re.push({key:t,level:n,message:a.map(m=>typeof m=="string"?m:C(m)).join(" "),at:Date.now()}),re.length>g&&re.shift()}function C(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function A(){return re.map(t=>({...t}))}function H(t){if(t.length===0||typeof t[0]!="string")return t;const n=t[0].replace(/^\[lattice\]\s*/,"");return n===t[0]?t:[n,...t.slice(1)]}function T(t,...n){if(e.has(t))return;O(t);const a=H(n);L(t,"warn",a),console.warn("[lattice]",...a)}function v(t,...n){if(e.has(t))return;O(t);const a=H(n);L(t,"info",a),console.info("[lattice]",...a)}function f(){e.clear(),re.length=0}function u(t,n){const a=new Error(`[lattice] ${t}`);throw n!==void 0&&(a.cause=n),a}function h(t,n){t||u(n)}const x=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),je("packages/core/src/format/mask.js",function(M,X){"use strict";Object.defineProperty(M,"splitSections",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"parseSection",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"compileMask",{enumerable:!0,get:function(){return L}});const e=new Set(["0","#","?",",","."]),U="\0";function O(A){const H=[];let T="",v=!1;for(let f=0;f<A.length;f++){const u=A[f];if(u==="\\"){T+=u+(A[f+1]??""),f+=1;continue}if(u==='"'){v=!v,T+=u;continue}if(u===";"&&!v){H.push(T),T="";continue}T+=u}return H.push(T),H}function re(A){let H="",T="",v="",f=1,u=!1,h=!1;const x=o=>{h?T+=o:H+=o};for(let o=0;o<A.length;o++){const d=A[o];if(d==="\\"){x(A[o+1]??""),o+=1;continue}if(d==='"'){const l=A.indexOf('"',o+1);x(l===-1?A.slice(o+1):A.slice(o+1,l)),o=l===-1?A.length:l;continue}if(d==="%"){f*=100,x("%");continue}if(d==="@"){u=!0,x("\0");continue}if(e.has(d)){v+=d,h=!0;continue}x(d)}let t=-1;for(let o=v.length-1;o>=0;o--){const d=v[o];if(d==="0"||d==="#"||d==="?"){t=o;break}}let n=!1,a="";for(let o=0;o<v.length;o++){const d=v[o];if(d===","){o>t?f/=1e3:n=!0;continue}a+=d}const m=a.indexOf("."),E=m===-1?a:a.slice(0,m),_=m===-1?"":a.slice(m+1);let c=0;for(const o of E)o==="0"&&(c+=1);let S=0;for(const o of _)o==="0"&&(S+=1);return{prefix:H,suffix:T,minInt:c,minDec:S,maxDec:_.length,grouping:n,scale:f,hasNumber:t!==-1,isText:u}}function g(A,H){const T=new Intl.NumberFormat(H,{minimumIntegerDigits:Math.max(A.minInt,1),minimumFractionDigits:A.minDec,maximumFractionDigits:Math.max(A.maxDec,A.minDec),useGrouping:A.grouping}),{prefix:v,suffix:f,scale:u,hasNumber:h}=A;return x=>{if(!h)return v+f;const t=u===1?x:x*u;return v+T.format(t)+f}}function L(A,H){const v=O(String(A)).map(re),f=v.map(a=>g(a,H)),u=0,h=v.length>1?1:-1,x=v.length>2?2:-1,t=v.length>3?3:-1,n=a=>{if(a==null||a==="")return"";if(typeof a!="number"||Number.isNaN(a)){const m=Number(a);if(Number.isNaN(m))return t===-1?String(a):(v[t].prefix+v[t].suffix).split("\0").join(String(a));a=m}return a===0&&x!==-1?f[x](0):a<0&&h!==-1?f[h](-a):f[u](a)};return n.spec={mask:A},{format:n,ooxml:C(String(A))}}function C(A){return A.trim()}}),je("packages/core/src/format/pattern.js",function(M,X){"use strict";Object.defineProperty(M,"parseNumberPattern",{enumerable:!0,get:function(){return g}});const U=X("packages/core/src/format/mask.js").splitSections;function O(L){let C="",A="",H="",T="",v=!1,f=!1,u=!1,h=!1;const x=n=>{u?A+=n:C+=n};for(let n=0;n<L.length;n++){const a=L[n];if(a==="\\"){x(L[n+1]??""),n+=1;continue}if(a==='"'){const m=L.indexOf('"',n+1);x(m===-1?L.slice(n+1):L.slice(n+1,m)),n=m===-1?L.length:m;continue}if(a==="%"){f=!0;continue}if(a==="0"||a==="#"){u=!0,h?T+=a:H+=a;continue}if(a===","){h||(v=!0);continue}if(a==="."&&!h){h=!0;continue}x(a)}if(!u)return{hasDigit:!1,prefix:C,suffix:A,minDec:0,maxDec:0,grouping:!1,percent:f};let t=0;for(const n of T)n==="0"&&(t+=1);return{hasDigit:!0,prefix:C,suffix:A,minDec:t,maxDec:T.length,grouping:v,percent:f}}function re(L,C){const A=C.trim(),H=L.trim();return A.startsWith("(")&&A.endsWith(")")&&A.slice(1,-1).trim()===H?"parentheses":A.endsWith("-")?"suffix":"minus"}function g(L){if(typeof L!="string")return null;const C=U(L);if(C.length===0)return null;const A=O(C[0]);if(!A.hasDigit)return null;const H={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(C.length>1&&(H.negative=re(C[0],C[1])),C.length>2){const T=O(C[2]);T.hasDigit||(H.zeroDisplay=T.prefix+T.suffix)}return H}}),je("packages/core/src/format/number.js",function(M,X){"use strict";Object.defineProperty(M,"compileNumber",{enumerable:!0,get:function(){return C}});const U=X("packages/core/src/internal/predicates.js").isNil,re=X("packages/core/src/internal/warn.js").warnOnce,L=X("packages/core/src/format/pattern.js").parseNumberPattern;function C(A,H){const T=typeof A=="string"?{pattern:A}:A||{};let v=T;if(typeof T.pattern=="string"){const W=L(T.pattern);if(W){const{pattern:b,...J}=T;v={...W,...J}}else re(`format:pattern:${T.pattern}`,`invalid number format pattern "${T.pattern}"; the value will use the default number format`)}const f=v.locale||H||void 0,u=v.style||"decimal",h=typeof v.scale=="number"?v.scale:1,x=v.nullDisplay??"",t=v.zeroDisplay,n=v.prefix||"",a=v.suffix||"",m=v.negative||"minus",E=v.signed===!0,_={style:u,notation:v.notation||"standard"};u==="currency"&&(_.currency=v.currency||"USD",v.currencyDisplay&&(_.currencyDisplay=v.currencyDisplay)),typeof v.decimals=="number"?(_.minimumFractionDigits=v.decimals,_.maximumFractionDigits=v.decimals):(typeof v.minDecimals=="number"&&(_.minimumFractionDigits=v.minDecimals),typeof v.maxDecimals=="number"&&(_.maximumFractionDigits=v.maxDecimals),_.minimumFractionDigits>(_.maximumFractionDigits??20)&&(_.maximumFractionDigits=_.minimumFractionDigits)),v.thousandsSeparator===!1&&(_.useGrouping=!1),_.notation==="compact"&&(_.compactDisplay=v.compactDisplay||"short");const c=new Intl.NumberFormat(f,_),S=typeof v.thousandsSeparator=="string"?v.thousandsSeparator:null,o=typeof v.decimalSeparator=="string"?v.decimalSeparator:null;let d=",",l=".";if(S||o)for(const W of c.formatToParts(12345.6))W.type==="group"?d=W.value:W.type==="decimal"&&(l=W.value);const s=W=>{let b=W;return S&&(b=b.split(d).join("")),o&&(b=b.split(l).join("")),S&&(b=b.split("").join(S)),o&&(b=b.split("").join(o)),b},r=!!(S||o),i=n!==""&&u==="currency",B=W=>{let b;if(i){const J=c.formatToParts(W);let Q=!1;b="";for(const ne of J)b+=ne.value,!Q&&ne.type==="currency"&&(b+=n,Q=!0);Q||(b=n+b)}else b=n+c.format(W);return r&&(b=s(b)),b+a},z=W=>{if(U(W)||W==="")return x;const b=typeof W=="number"?W:Number(W);if(Number.isNaN(b))return x;const J=h===1?b:b*h;return J===0&&t!==void 0?t:J<0?m==="parentheses"?`(${B(-J)})`:m==="suffix"?`${B(-J)}-`:B(J):E&&J>0?`+${B(J)}`:B(J)};return z.negativeClass=v.negativeClass||null,z.spec=v,z}}),je("packages/core/src/columns/types/unit.js",function(M,X){"use strict";Object.defineProperty(M,"defineUnit",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"registerUnitSystem",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"unitSystemNames",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"unitsOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"localeSeparators",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"parseUnit",{enumerable:!0,get:function(){return z}}),Object.defineProperty(M,"formatUnit",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(M,"createUnitType",{enumerable:!0,get:function(){return k}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return I}});const U=X("packages/core/src/internal/predicates.js").isNil,re=X("packages/core/src/internal/warn.js").warnOnce;function g(F,p,D,G){return Object.freeze({symbol:F,factor:p,aliases:Object.freeze(D||[]),binary:!!(G&&G.binary),prefix:G&&G.prefix||null,auto:!(G&&G.auto===!1)})}function L(F,p,D,G){return g(F,p,D,G)}const C=Object.freeze({data:Object.freeze([g("B",1,["byte","bytes"]),g("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),g("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),g("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),g("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),g("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),g("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),g("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),g("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),g("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([g("bps",1,["bit","bits","bit/s","b/s"]),g("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),g("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),g("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),g("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([g("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),g("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),g("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),g("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),g("in",.0254,["inch","inches"],{auto:!1}),g("ft",.3048,["foot","feet"],{auto:!1}),g("yd",.9144,["yard","yards"],{auto:!1}),g("m",1,["metre","metres","meter","meters"]),g("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),g("mi",1609.344,["mile","miles"],{auto:!1}),g("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([g("mg",.001,["milligram","milligrams"]),g("g",1,["gram","grams"]),g("oz",28.349523125,["ounce","ounces"],{auto:!1}),g("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),g("kg",1e3,["kilogram","kilograms"]),g("st",6350.29318,["stone"],{auto:!1}),g("t",1e6,["tonne","tonnes","ton"],{auto:!1}),g("ton (US)",907184.74,["ton","shortton"],{auto:!1}),g("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([g("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),g("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),g("ms",.001,["msec","msecs","millisecond","milliseconds"]),g("s",1,["sec","secs","second","seconds"]),g("m",60,["min","mins","minute","minutes"]),g("h",3600,["hr","hrs","hour","hours"]),g("d",86400,["day","days"])]),speed:Object.freeze([g("mm/s",.001,["millimetre/s","millimeter/s"]),g("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),g("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),g("mph",.44704,["mile/h","miles/h"],{auto:!1}),g("kn",1852/3600,["knot","knots"],{auto:!1}),g("m/s",1,["metre/s","meter/s","mps"]),g("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([g("mm/s²",.001,["mm/s2"]),g("ft/s²",.3048,["ft/s2"],{auto:!1}),g("m/s²",1,["m/s2","metre/s2","meter/s2"]),g("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([g("mm²",1e-6,["mm2"]),g("cm²",1e-4,["cm2"]),g("in²",64516e-8,["in2","sqin"],{auto:!1}),g("ft²",.09290304,["ft2","sqft"],{auto:!1}),g("yd²",.83612736,["yd2","sqyd"],{auto:!1}),g("m²",1,["m2","sqm"]),g("ha",1e4,["hectare","hectares"],{auto:!1}),g("ac",4046.8564224,["acre","acres"],{auto:!1}),g("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([g("µL",1e-6,["ul","microlitre","microliter"]),g("mL",.001,["millilitre","milliliter"]),g("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),g("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),g("L",1,["litre","litres","liter","liters"]),g("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),g("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),g("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),g("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([g("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),g("J",1,["joule","joules"]),g("cal",4.184,["calorie","calories"],{auto:!1}),g("kJ",1e3,["kilojoule","kilojoules"]),g("BTU",1055.05585262,["btu"],{auto:!1}),g("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),g("MJ",1e6,["megajoule","megajoules"]),g("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),g("GJ",1e9,["gigajoule","gigajoules"]),g("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([g("mW",.001,["milliwatt","milliwatts"]),g("W",1,["watt","watts"]),g("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),g("kW",1e3,["kilowatt","kilowatts"]),g("hp",745.6998715822702,["horsepower"],{auto:!1}),g("MW",1e6,["megawatt","megawatts"]),g("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([g("mN",.001,["millinewton","millinewtons"]),g("N",1,["newton","newtons"]),g("lbf",4.4482216152605,["poundforce"],{auto:!1}),g("kgf",9.80665,["kilogramforce"],{auto:!1}),g("kN",1e3,["kilonewton","kilonewtons"]),g("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([g("Pa",1,["pascal","pascals"]),g("mbar",100,["millibar"],{auto:!1}),g("inH₂O",249.0889,["inh2o"],{auto:!1}),g("mmHg",133.322387415,["torr"],{auto:!1}),g("kPa",1e3,["kilopascal","kilopascals"]),g("inHg",3386.388640341,["inhg"],{auto:!1}),g("psi",6894.757293168361,["lbf/in2"],{auto:!1}),g("bar",1e5,[],{auto:!1}),g("atm",101325,["atmosphere","atmospheres"],{auto:!1}),g("MPa",1e6,["megapascal","megapascals"]),g("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([g("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),g("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),g("kN·m",1e3,["knm","kn.m"],{auto:!1}),g("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([g("kg/m³",1,["kg/m3"]),g("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),g("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),g("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([g("L/min",1/6e4,["lpm","l/min"],{auto:!1}),g("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),g("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),g("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),g("cfm",.0004719474432,["ft3/min"],{auto:!1}),g("L/s",.001,["lps","l/s"],{auto:!1}),g("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([g("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),g("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),g("mrad",.001,["milliradian","milliradians"],{auto:!1}),g("mil",Math.PI/3200,["nato-mil"],{auto:!1}),g("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),g("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),g("rad",1,["radian","radians"]),g("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([g("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),g("rad/s",1,["radps","radians/s"]),g("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),g("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([g("ppt",1e-12,["partspertrillion"],{auto:!1}),g("ppb",1e-9,["partsperbillion"]),g("ppm",1e-6,["partspermillion"]),g("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),g("‰",.001,["permille","permil"],{auto:!1}),g("%",.01,["pct","percent"]),g("×",1,["x","ratio","times"])]),molarity:Object.freeze([g("pM",1e-12,["picomolar","picomolarity"]),g("nM",1e-9,["nanomolar","nanomolarity"]),g("µM",1e-6,["um-molar","micromolar","micromolarity"]),g("mM",.001,["millimolar","millimolarity"]),g("M",1,["molar","mol/l","mol/L","molarity"]),g("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([g("mg/s",1e-6,["milligrams/s"]),g("g/s",.001,["grams/s"]),g("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),g("kg/s",1,["kilograms/s","kgps"]),g("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),g("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),g("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([g("µPa·s",1e-6,["upas","micropascalsecond"]),g("cP",.001,["centipoise"],{auto:!1}),g("mPa·s",.001,["mpas","millipascalsecond"]),g("P",.1,["poise"],{auto:!1}),g("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([g("cSt",1e-6,["centistokes","centistoke"]),g("mm²/s",1e-6,["mm2/s"],{auto:!1}),g("St",1e-4,["stokes","stoke"],{auto:!1}),g("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([g("mW/(m·K)",.001,["mw/mk"]),g("W/(m·K)",1,["w/mk","wmk"]),g("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),g("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([g("J/(kg·K)",1,["j/kgk","jkgk"]),g("kJ/(kg·K)",1e3,["kj/kgk"]),g("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([g("nSv/h",1e-9,["nsvh"]),g("µSv/h",1e-6,["usv/h","usvh"]),g("mSv/h",.001,["msvh"]),g("Sv/h",1,["svh"]),g("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),A=Symbol("ambiguous"),H=new Map,T=new Map;function v(F,p){const D=String(F||"").trim();if(!D)throw new Error("[lattice] a unit system needs a name");if(C[D]||T.has(D))throw new Error(`[lattice] unit system "${D}" already exists`);const G=[...p||[]];if(!G.length)throw new Error(`[lattice] unit system "${D}" has no units`);if(!G.some(ee=>ee.factor===1))throw new Error(`[lattice] unit system "${D}" has no base unit (none with factor 1)`);const R=new Set;for(const ee of G){if(R.has(ee.symbol))throw new Error(`[lattice] unit system "${D}" declares "${ee.symbol}" twice`);R.add(ee.symbol)}return T.set(D,Object.freeze(G)),H.delete(D),D}function f(){return[...Object.keys(C),...T.keys()]}function u(F){const p=h(F);return p?p.units:[]}function h(F){const p=String(F||""),D=H.get(p);if(D!==void 0)return D;const G=C[p]||T.get(p);if(!G)return H.set(p,null),null;const R=Object.freeze([...G].sort(($,w)=>$.factor-w.factor)),ee=new Map,P=new Map,N=($,w)=>{const V=ee.get($);V===void 0?ee.set($,w):V!==w&&ee.set($,A)};for(const $ of R){N($.symbol.toLowerCase(),$);for(const w of $.aliases)N(w.toLowerCase(),$);if($.prefix){const w=P.get($.prefix)||[];w.push($),P.set($.prefix,w)}}const y={units:R,byToken:ee,byPrefix:P,decimal:R.filter($=>!$.binary&&$.auto),binary:R.some($=>$.binary)?R.filter($=>($.binary||$.factor===1)&&$.auto):null};return H.set(p,y),y}function x(F,p){return p&&F.binary||F.decimal}function t(F,p){const D=h(F);if(!D||U(p))return null;const G=D.units.find(ee=>ee.symbol===String(p));if(G)return G;const R=D.byToken.get(String(p).trim().toLowerCase());return R&&R!==A?R:null}const n=new WeakMap;function a(F){const p=F||{};if(typeof p=="object"&&p!==null){const ee=n.get(p);if(ee!==void 0)return ee}const D=p.system||"data",G=h(D);let R=null;if(!G)re(`unit:system:${D}`,`unknown unit system "${D}"; known systems are ${f().join(", ")}`);else{let ee=p.unit?t(D,p.unit):null;ee||(p.unit&&re(`unit:unit:${D}:${p.unit}`,`unknown unit "${p.unit}" in system "${D}"; falling back to ${G.units[0].symbol}`),ee=G.units.find(P=>P.factor===1)||G.units[0]),R={index:G,base:ee,binary:p.binary===!0}}return typeof p=="object"&&p!==null&&n.set(p,R),R}const m=new WeakMap;function E(F,p){if(!F||!p||!Array.isArray(F.compound)||F.compound.length===0)return null;const D=m.get(F);if(D!==void 0)return D;const G=new Set,R=[];for(const P of F.compound){const N=t(F.system||"data",P);if(!N){re(`unit:compound:${F.system}:${P}`,`unknown compound unit "${P}" in system "${F.system||"data"}"; ignoring it`);continue}G.has(N.symbol)||(G.add(N.symbol),R.push(N))}R.sort((P,N)=>N.factor-P.factor);const ee=R.length>=2?R:null;return m.set(F,ee),ee}function _(F,p,D){return p===D||p.factor===D.factor?F:F*p.factor/D.factor}const c=new Map;function S(F){const p=F||"",D=c.get(p);if(D)return D;const G={group:",",decimal:"."};try{for(const R of new Intl.NumberFormat(F||void 0).formatToParts(12345.6))R.type==="group"?G.group=R.value:R.type==="decimal"&&(G.decimal=R.value)}catch{}return c.set(p,G),G}const o=/[\s   ]/g,d=/^[+-]?[\d   '’ .,]*(?:[eE][+-]?\d+)?/,l=/^[^\d+\-(.,\s]+\s*/,s=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function r(F,p){const{group:D,decimal:G}=S(p);let R=String(F).replace(o,"");if(R==="")return null;const ee=G?R.indexOf(G):-1;if(D&&D!==G){if(ee>=0&&R.indexOf(D,ee+G.length)>=0)return null;R=R.split(D).join("")}if(G&&G!=="."&&(R=R.split(G).join(".")),!s.test(R))return null;const P=Number(R);return Number.isFinite(P)?P:null}function i(F,p,D){const G=String(F).trim().replace(/\.$/,"");if(G==="")return null;const R=p.units.find(w=>w.symbol===G);if(R)return R;const ee=G.toLowerCase(),P=p.byToken.get(ee);if(P===A)return null;if(P)return P;const N=p.byPrefix.get(ee);if(!N||!N.length)return null;const y=x(p,D),$=N.filter(w=>y.includes(w));return $.length===1?$[0]:null}function B(F,p,D,G){let R=F,ee=0,P=!1,N=!1;for(;R!=="";){const y=d.exec(R)[0];if(y==="")return null;const $=r(y,G&&G.locale);if($===null)return null;R=R.slice(y.length).trim();const w=R.search(/[+-]?[\d]/),V=(w>=0?R.slice(0,w):R).trim();if(R=w>=0?R.slice(w).trim():"",V===""){if(P)return null;N=!0,ee+=_($,D[0],p.base)}else{const oe=i(V,p.index,p.binary);if(!oe)return null;ee+=_($,oe,p.base)}if(P=!0,N&&R!=="")return null}return P?ee:null}function z(F,p){if(U(F))return null;if(typeof F=="number")return Number.isFinite(F)?F:null;const D=a(p);if(!D)return null;let G=String(F).trim();if(G==="")return null;let R=!1;G.startsWith("(")&&G.endsWith(")")&&(R=!0,G=G.slice(1,-1).trim());const ee=E(p,D);if(ee){G.startsWith("-")&&(R=!0,G=G.slice(1).trim());const ie=B(G,D,ee,p);return ie===null?null:R?-ie:ie}let P=null;const N=l.exec(G);if(N&&N[0]){const ie=i(N[0].trim(),D.index,D.binary);ie&&(P=ie,G=G.slice(N[0].length).trim())}const y=d.exec(G)[0],$=r(y,p&&p.locale);if($===null)return null;const w=G.slice(y.length).trim();if(P&&w!=="")return null;const V=P||(w===""?D.base:i(w,D.index,D.binary));if(!V)return null;const oe=_($,V,D.base);return R?-oe:oe}const W=new Map;function b(F,p,D,G){const R=`${F||""}|${p}|${D}|${G?1:0}`;let ee=W.get(R);return ee||(ee=new Intl.NumberFormat(F||void 0,{minimumFractionDigits:p,maximumFractionDigits:D,useGrouping:G}),W.set(R,ee)),ee}function J(F,p){if(!Number.isFinite(F)||F===0)return Math.max(0,p-1);const D=Math.floor(Math.log10(Math.abs(F)));return Math.min(20,Math.max(0,p-1-D))}function Q(F,p){if(!Number.isFinite(F)||F===0)return F;const D=Math.ceil(Math.log10(Math.abs(F))),G=10**(p-D);return Math.round(F*G)/G}function ne(F,p,D){if(!D||D===p.base.symbol)return p.base;if(D!=="auto")return Z(p,D);if(F===0||!Number.isFinite(F))return p.base;const G=Math.abs(F)*p.base.factor,R=x(p.index,p.binary);let ee=R[0];for(const y of R)G>=y.factor&&(ee=y);if(G>=ee.factor)return ee;let P=ee;for(const y of p.index.units)y.binary!==p.binary&&y.factor!==1||y.factor<=G&&y.factor>(P===ee?0:P.factor)&&(P=y);if(P!==ee)return P;let N=ee;for(const y of p.index.units)y.binary!==p.binary&&y.factor!==1||y.factor<N.factor&&(N=y);return N.factor<p.base.factor?N:p.base}function Z(F,p){const D=F.index.units.find(R=>R.symbol===p);if(D)return D;const G=F.index.byToken.get(String(p).toLowerCase());return G&&G!==A?G:(re(`unit:display:${p}`,`unknown display unit "${p}"; rendering in ${F.base.symbol}`),F.base)}function Y(F,p,D,G){const R=F<0;let ee=Math.abs(F)*p.base.factor;const P=typeof G.decimals=="number"?G.decimals:G.minDecimals??0,N=typeof G.decimals=="number"?G.decimals:G.maxDecimals??Math.max(P,2),y=G.space??" ",$=[];for(let V=0;V<D.length;V++){const oe=D[V],ie=V===D.length-1;let _e=ie?ee/oe.factor:Math.floor(ee/oe.factor);if(ee-=_e*oe.factor,ie){const Se=10**N;_e=Math.round(_e*Se)/Se+0}const Oe=ie?b(G.locale,P,N,G.group!==!1):b(G.locale,0,0,G.group!==!1);$.push(`${Oe.format(_e)}${y}${oe.symbol}`)}const w=$.join(" ");return R?`-${w}`:w}function Ne(F,p){const D=p||{},G=D.nullDisplay??"";if(U(F)||F==="")return G;const R=typeof F=="number"?F:Number(F);if(!Number.isFinite(R))return G;const ee=a(D);if(!ee)return String(R);const P=E(D,ee);if(P)return Y(R,ee,P,D);const N=typeof D.significantFigures=="number"&&D.significantFigures>0?D.significantFigures:0,y=N?Q(R,N):R,$=ne(y,ee,D.display),w=_(y,ee.base,$);let V=typeof D.decimals=="number"?D.decimals:D.minDecimals??0,oe=typeof D.decimals=="number"?D.decimals:D.maxDecimals??Math.max(V,2);N&&(V=J(w,N),oe=V);const ie=b(D.locale,V,oe,D.group!==!1).format(w),_e=D.space??" ";return D.placement==="prefix"?`${$.symbol}${D.space??""}${ie}`:`${ie}${_e}${$.symbol}`}function ve(F,p){const D=U(F)||Number.isNaN(F)?null:Number(F),G=U(p)||Number.isNaN(p)?null:Number(p);return D===null||Number.isNaN(D)?G===null||Number.isNaN(G)?0:1:G===null||Number.isNaN(G)||D<G?-1:D>G?1:0}function se(F){const p=typeof F.decimals=="number"&&F.decimals>0?`.${"0".repeat(F.decimals)}`:"";return`${typeof F.decimals=="number"?`#,##0${p}`:"#,##0.##"}" ${F.symbol}"`}function k(F){const p={system:"data",...F||{}},D=a(p),G=D?D.base.symbol:String(p.unit||""),R=Object.freeze({...p,unit:G}),ee=Object.freeze({...R,display:G,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),P=new Map([[R.locale||"",R]]),N=y=>{const $=y||"";let w=P.get($);return w||(w=Object.freeze({...R,locale:y||void 0}),P.set($,w)),w};return{base:"number",extends:"number",storage:"float64",unitConfig:R,format:y=>Ne(y.value,y.locale?N(y.locale):R),parse:y=>z(y.text,y.locale?N(y.locale):R),compare:ve,defaults:{filter:"number",editor:"unit",align:"end",total:p.total||"sum"},...p.totals?{totals:p.totals}:{},excel:p.excel||se({decimals:p.decimals,symbol:G}),toStorage:y=>typeof y=="number"?Number.isFinite(y)?y:null:typeof y=="string"?z(y,R):U(y)?null:z(String(y),R),toClipboard:y=>Ne(y,ee),fromClipboard:y=>z(y,R)}}const I=k}),je("packages/core/src/columns/types/temperature.js",function(M,X){"use strict";Object.defineProperty(M,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"findScale",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"convertTemperature",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"formatTemperature",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"parseTemperature",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"createTemperatureType",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return h}});const U=X("packages/core/src/internal/predicates.js").isNil,O=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:x=>x+273.15,fromKelvin:x=>x-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:x=>(x+459.67)*(5/9),fromKelvin:x=>x*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:x=>x,fromKelvin:x=>x}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:x=>x*(5/9),fromKelvin:x=>x*(9/5)})});function re(x){if(U(x))return null;const t=String(x).trim();if(t==="")return null;for(const[a,m]of Object.entries(O))if(t===a||t===m.symbol)return{key:a,scale:m};const n=t.toLowerCase();for(const[a,m]of Object.entries(O))if(m.aliases.includes(n))return{key:a,scale:m};return null}function g(x,t,n){const a=re(t),m=re(n);return!a||!m||!Number.isFinite(Number(x))?null:a.key===m.key?Number(x):m.scale.fromKelvin(a.scale.toKelvin(Number(x)))}const L=new Map;function C(x,t,n){const a=`${x||""}|${t}|${n}`;let m=L.get(a);return m||(m=new Intl.NumberFormat(x||void 0,{minimumFractionDigits:t,maximumFractionDigits:n}),L.set(a,m)),m}function A(x,t){const n=t||{},a=n.nullDisplay??"";if(U(x)||x==="")return a;const m=Number(x);if(!Number.isFinite(m))return a;const E=re(n.scale||"C");if(!E)return String(m);const _=re(n.display||n.scale||"C")||E,c=_.key===E.key?m:_.scale.fromKelvin(E.scale.toKelvin(m)),S=typeof n.decimals=="number"?n.decimals:null,o=S??n.minDecimals??0,d=S??n.maxDecimals??1;return`${C(n.locale,o,d).format(c)}${n.space??" "}${_.scale.symbol}`}const H=/^[+-]?[\d\s.,  ]*\d/;function T(x,t){const n=String(x).trim();if(n==="")return null;const a=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(c=>c.type==="decimal")?.value||".",m=a===","?".":",",E=n.split(m).join("").split(/[\s  ]/).join("").replace(a,"."),_=Number(E);return Number.isFinite(_)?_:null}function v(x,t){if(U(x))return null;const n=t||{},a=re(n.scale||"C");if(!a)return null;if(typeof x=="number")return Number.isFinite(x)?x:null;let m=String(x).trim();if(m==="")return null;let E=!1;m.startsWith("(")&&m.endsWith(")")&&(E=!0,m=m.slice(1,-1).trim());const _=H.exec(m);if(!_)return null;const c=T(_[0],n.locale);if(c===null)return null;const S=m.slice(_[0].length).trim();if(S==="")return E?-c:c;const o=re(S);if(!o)return null;const d=o.key===a.key?c:a.scale.fromKelvin(o.scale.toKelvin(c));return E?-d:d}function f(x){const t=Object.freeze({scale:"C",...x||{}}),a=(re(t.scale)||re("C")).scale.symbol,m=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),E=new Map([[t.locale||"",t]]),_=c=>{const S=c||"";let o=E.get(S);return o||(o=Object.freeze({...t,locale:c||void 0}),E.set(S,o)),o};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:c=>A(c.value,c.locale?_(c.locale):t),parse:c=>v(c.text,c.locale?_(c.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)}`:".#"}" ${a}"`,toStorage:c=>typeof c=="number"?Number.isFinite(c)?c:null:typeof c=="string"?v(c,t):U(c)?null:v(String(c),t),toClipboard:c=>A(c,m),fromClipboard:c=>v(c,t)}}const u=Object.freeze({celsius:f({scale:"C"}),fahrenheit:f({scale:"F"}),kelvin:f({scale:"K"})}),h=f}),je("packages/modules/form/controls/number.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,L=X("packages/core/src/format/number.js").compileNumber,C=X("packages/core/src/columns/types/unit.js"),A=C.parseUnit,H=C.formatUnit,T=C.findUnit,v=C.unitsOf,f=X("packages/core/src/columns/types/temperature.js"),u=f.parseTemperature,h=f.formatTemperature,x=f.findScale,t="data-lattice-form-number-styles";function n(){return`
1287
+ `.trim()}function i(j){const x=j&&j.documentElement;if(!x||x.getAttribute(l))return;x.setAttribute(l,"1");const K=j.createElement("style");K.textContent=a(),(j.head||j.body||x).appendChild(K)}function n(j,x){if(x!=null){if(typeof x=="string"){if(x.trim()){const K=typeof j.style.cssText=="string"?j.style.cssText:"";j.style.cssText=K?`${K};${x}`:x}return}for(const K of Object.keys(x))j.style[K]=x[K]}}function s(j){return j==="cols"?`${U}__cols`:j==="items"?`${U}__items`:`${U}__rows`}function I(j,x,K,V){x.addEventListener(K,V),j.disposers.push(()=>x.removeEventListener(K,V))}function z(j){return j.uidSeq+=1,`lat-form-${j.uidSeq}`}function Y(j){if(j==null)return null;const x=j.tagName;return x==="INPUT"||x==="TEXTAREA"||x==="SELECT"?j:typeof j.querySelector=="function"?j.querySelector("input, textarea, select"):null}function B(j,x,K){const V={name:x.item.name,value:K,previousValue:x.value,item:x.item},E=j.emitter.emitBefore("beforeChange",V,"user"),W=()=>{x.value=K,x.item.value=K,Z(x),j.emitter.emit("change",{name:x.item.name,value:K,previousValue:V.previousValue,item:x.item}),v(j),x.item.validationMode==="change"&&ye(j,x)},R=me=>{x.def.write(x.control,x.value),H(j,x,me)},ce=me=>{if(!me){x.def.write(x.control,x.value);return}const xe=ee(j,x,K);xe&&typeof xe.then=="function"?xe.then(k=>{k.ok?W():R(k.message)}):xe.ok?W():R(xe.message)};E&&typeof E.then=="function"?E.then(ce):ce(E)}function ee(j,x,K){if(x.ruleRequired&&y(K))return{ok:!1,message:j.t("form.required")};const V=x.def;if(typeof V.validate!="function")return{ok:!0,message:null};const E=V.validate(x.control,x.item,K);return E&&typeof E.then=="function"?E.then(W=>oe(j,W)):oe(j,E)}function oe(j,x){return x===!1?{ok:!1,message:j.t("form.invalid")}:typeof x=="string"?{ok:!1,message:x}:{ok:!0,message:null}}function H(j,x,K){let V=x.errorEl;V||(V=j.doc.createElement("div"),V.className=`${U}__error`,V.id=z(j),x.controlWrap.appendChild(V),x.errorEl=V);const E=K==null||K===""?j.t("form.invalid"):String(K);V.textContent=E,x.el.setAttribute("data-invalid","true"),x.control.setAttribute("aria-invalid","true");const W=(x.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!x.validationEl.hidden&&x.validationEl.textContent===E&&W.includes(x.validationEl.id))&&!W.includes(V.id)&&(W.push(V.id),x.control.setAttribute("aria-describedby",W.join(" ")))}function Z(j){j.errorEl&&(j.errorEl.remove(),j.errorEl=null),j.el.removeAttribute("data-invalid"),j.control.removeAttribute("aria-invalid")}function G(j,x){const K=x.value,V=x.item;if(typeof x.def.validate=="function"){const E=r(x.def.validate(x.control,V,K),V,j.t);if(E)return E}return o(V,K,j.t,x.ruleRequired===!0)}function ge(j,x,K){const V=x.item,E=x.validationEl;if(x.validation.pristine=!1,x.preEl&&(x.preEl.hidden=!0),K){x.validation.valid=!1,x.validation.code=K.code,x.validation.message=K.message,x.control.setAttribute("aria-invalid","true");const W=x.tooltipId?`${x.tooltipId} ${E.id}`:E.id;x.control.setAttribute("aria-describedby",W),E.textContent=K.message,E.className=`${U}__validation ${U}__validation--error`,E.hidden=!1;return}x.validation.valid=!0,x.validation.code=null,x.validation.message=null,x.control.removeAttribute("aria-invalid"),x.tooltipId?x.control.setAttribute("aria-describedby",x.tooltipId):x.control.removeAttribute("aria-describedby"),typeof V.successMessage=="string"&&V.successMessage!==""?(E.textContent=V.successMessage,E.className=`${U}__validation ${U}__validation--success`,E.hidden=!1):(E.textContent="",E.className=`${U}__validation`,E.hidden=!0)}function ye(j,x){typeof x.def.reset=="function"&&x.def.reset(x.control,x.item);const K=G(j,x);ge(j,x,K);const V=K==null;return j.emitter.emit("validated",{name:x.item.name,item:x.item,value:x.value,valid:V,failures:K?[{name:x.item.name,rule:K.code,message:K.message}]:[]}),V}function le(j,x){const K=x.control,V=x.item,E=x.def,W=R=>()=>{j.emitter.emit(R,{name:V.name,item:V}),R==="blur"&&V.validationMode==="blur"&&ye(j,x)};if(E.kind==="field"){const R=()=>{j.emitter.emit("input",{name:V.name,value:E.read(K,V),item:V})},ce=()=>{B(j,x,E.read(K,V))};I(j,K,"input",R),I(j,K,"change",ce);for(const me of E.domEvents||[])I(j,K,me,k=>{const ne=k&&typeof k=="object"&&k.detail&&typeof k.detail=="object"?k.detail:null;j.emitter.emit(me,ne?{name:V.name,item:V,...ne}:{name:V.name,value:E.read(K,V),item:V})})}else E.kind==="toggle"?I(j,K,"change",()=>{B(j,x,E.read(K,V))}):E.kind==="button"&&I(j,K,"click",()=>{K.disabled||K.getAttribute("aria-disabled")==="true"||j.emitter.emit("click",{name:V.name,item:V,value:null})});E.kind!=="display"&&(I(j,K,"focus",W("focus")),I(j,K,"blur",W("blur")))}function w(j,x){if(typeof j=="string"&&/%$/.test(j.trim())){const K=parseFloat(j);if(Number.isFinite(K)){const V=Math.round(K*x/100*1e6)/1e6;return`0 0 calc(${K}% - ${V} * var(--lattice-space))`}}return`0 0 ${N(j)}`}function M(j,x,K,V={}){const E=F(x.type)||F("text"),W=x.labelPosition!=null?x.labelPosition:V.labelPosition!=null?V.labelPosition:"top",R=x.labelWidth!=null?x.labelWidth:V.labelWidth,ce=x.requiredHint!==void 0?x.requiredHint:V.requiredHint,me=j.doc.createElement("div");me.className=`${U}__item`,me.setAttribute("data-label-position",W);const xe=E.build(x,j),k=E.action===!0,ne=!k&&x.label!=null&&x.label!=="";let se=null,J=null;if(ne){se=j.doc.createElement("label"),se.className=`${U}__label`,se.textContent=String(x.label);const ke=z(j);se.setAttribute("for",ke),(Y(xe)||xe).id=ke,W==="hidden"&&se.classList.add(`${U}__label--hidden`);const Le=A(j,{labelEl:se,item:x,labelPosition:W,labelWidth:R});Le?(J=Le.tooltipId,me.appendChild(Le.group)):(W==="left"&&R!=null&&(se.style.flex=`0 0 ${N(R)}`),me.appendChild(se))}else if(W==="hidden"&&!k){const ke=Y(xe);ke&&x.placeholder!=null&&x.placeholder!==""&&ke.setAttribute("aria-label",String(x.placeholder))}const ue=j.doc.createElement("div");ue.className=`${U}__control`,ue.appendChild(xe);const he=g(j,ue,x,xe),be=h(j,x);let Ee=ue;if(be&&(Ee=j.doc.createElement("div"),Ee.className=`${U}__field`,Ee.appendChild(ue),Ee.appendChild(be.bar)),me.appendChild(Ee),!k&&x.helpMessage!=null&&x.helpMessage!==""){const ke=j.doc.createElement("div");ke.className=`${U}__help`,ke.textContent=String(x.helpMessage),ue.appendChild(ke)}let Se=null;!k&&x.preMessage!=null&&x.preMessage!==""&&(Se=j.doc.createElement("div"),Se.className=`${U}__pre`,Se.textContent=String(x.preMessage),ue.appendChild(Se));const Ae=j.doc.createElement("div");Ae.className=`${U}__validation`,Ae.id=z(j),Ae.hidden=!0,ue.appendChild(Ae),x.width!=null&&(V.colsGapCount!=null?me.style.setProperty("--lattice-item-flex",w(x.width,V.colsGapCount)):me.style.flex=`0 0 ${N(x.width)}`),W==="left"&&(Ee.style.flex="1 1 auto"),k&&W==="left"&&R!=null&&!(x.props&&x.props.fullWidth===!0)&&(Ee.style.paddingLeft=`calc(${N(R)} + var(--lattice-space))`),n(me,x.css);const Ce=E.read(xe,x),we={item:x,el:me,control:xe,controlWrap:ue,def:E,value:Ce,hidden:x.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ae,preEl:Se,labelEl:se,labelPosition:W,requiredHint:ce,placeholderEl:Y(xe),placeholderBase:x.placeholder!=null?String(x.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:J,lockEl:he?he.el:null};if(x.value=Ce,J&&we.control.setAttribute("aria-describedby",J),be)for(const ke of be.entries){if(ke.avatar){T(j.doc,ke.el,ke.spec,we.value,we.item);continue}typeof ke.spec.onClick=="function"&&I(j,ke.el,"click",()=>{ke.spec.onClick(we.value,we.item)})}if(we.syncLock=()=>{if(!we.lockEl)return;const ke=we.item.readOnly===!0||we.ruleReadOnly;we.lockEl.hidden=!ke,we.lockEl.parentElement.classList.toggle(`${U}__control--lock`,ke)},we.syncAddons=()=>{if(!be)return;const ke=we.item.disabled===!0;for(const Le of be.entries){if(Le.avatar){T(j.doc,Le.el,Le.spec,we.value,we.item);continue}Le.el.tagName==="A"?Le.el.setAttribute("aria-disabled",ke?"true":"false"):Le.el.disabled=ke}},u(we),we.hidden&&(me.hidden=!0),E.custom&&xe.__latticeFormApi){const ke=xe.__latticeFormApi;ke._read=()=>we.value,ke._write=Le=>{we.value=Le,we.item.value=Le,E.write(xe,Le),v(j)},ke._commit=Le=>{B(j,we,Le)},ke._input=Le=>{j.emitter.emit("input",{name:we.item.name,value:Le,item:we.item})}}return typeof E.destroy=="function"&&j.disposers.push(()=>E.destroy(xe)),le(j,we),j.order.push(we),x.name!=null&&j.items.set(x.name,we),K.appendChild(me),we}function D(j,x,K,V={}){const E={labelPosition:x.labelPosition!=null?x.labelPosition:V.labelPosition,labelWidth:x.labelWidth!=null?x.labelWidth:V.labelWidth,requiredHint:V.requiredHint};if(x.kind==="panel")return c(j,x,K,E,{buildChildren:m,applyCss:n});if(x.kind==="spacer"){const R=j.doc.createElement("div");return R.className=`${U}__spacer`,n(R,x.css),x.hidden&&(R.hidden=!0),K.appendChild(R),R}if(x.kind==="separator"){const R=j.doc.createElement("div");R.className=`${U}__separator`,R.setAttribute("role","separator");const ce=x.label;if(ce!=null){i(j.doc),R.classList.add(`${U}__separator--labelled`);const me=j.t(ce);R.setAttribute("aria-label",me);const xe=j.doc.createElement("span");xe.className=`${U}__separator-rule`,xe.setAttribute("aria-hidden","true");const k=j.doc.createElement("span");k.className=`${U}__separator-label`,k.textContent=me;const ne=j.doc.createElement("span");ne.className=`${U}__separator-rule`,ne.setAttribute("aria-hidden","true"),R.appendChild(xe),R.appendChild(k),R.appendChild(ne)}else R.setAttribute("aria-label",j.t("form.separator"));return n(R,x.css),x.hidden&&(R.hidden=!0),K.appendChild(R),R}if(x.kind==="fieldset"){const R=j.doc.createElement("fieldset");if(R.className=`${U}__fieldset`,x.legend!=null){const me=j.doc.createElement("legend");me.className=`${U}__legend`,me.textContent=x.legend,R.appendChild(me)}const ce=j.doc.createElement("div");return ce.className=`${U}__fieldset-body`,x.axis&&ce.classList.add(s(x.axis)),x.axis&&m(j,ce,x.blocks,x.axis,E),R.appendChild(ce),n(R,x.css),x.spacing!=null&&R.style.setProperty("--lattice-form-item-gap",x.spacing),x.hidden&&(R.hidden=!0),K.appendChild(R),R}const W=j.doc.createElement("div");return W.className=s(x.axis),x.axis&&m(j,W,x.blocks,x.axis,E),n(W,x.css),x.spacing!=null&&W.style.setProperty("--lattice-form-item-gap",x.spacing),x.hidden&&(W.hidden=!0),K.appendChild(W),W}function m(j,x,K,V,E={}){const W=V==="cols"?{...E,colsGapCount:K.length-1}:E;for(const R of K)R.kind==="item"?M(j,R,x,W):D(j,R,x,E)}function P(j){const x=j.el;for(;x.firstChild;)x.removeChild(x.firstChild);j.items.clear(),j.order.length=0;const K=j.model;x.classList.add(U,s(K.axis)),x.setAttribute("data-density",K.density),K.colsBreakpoint===!1?x.style.setProperty("--lattice-cols-container",Q):K.colsBreakpoint!==480&&x.style.setProperty("--lattice-cols-container",$(j.doc,K.colsBreakpoint)),j.disposers.push(()=>{x.classList.remove(`${U}__rows`,`${U}__cols`,`${U}__items`)}),n(x,K.css),K.spacing!=null&&x.style.setProperty("--lattice-form-item-gap",K.spacing),K.labelGap!=null&&x.style.setProperty("--lattice-form-label-gap",K.labelGap);const V={labelPosition:K.labelPosition,labelWidth:K.labelWidth,requiredHint:K.requiredHint};K.steps&&K.steps.length?X(j,V):m(j,x,K.blocks,K.axis==="cols"?"cols":"rows",V),v(j)}function X(j,x={}){const K=j.model,V=K.steps,E=j.doc,W=j.el,R=E.createElement("div");W.appendChild(R);const ce=_(R,{doc:E,t:j.t,steps:V.map(be=>({id:be.id,label:be.label})),active:0,orientation:K.stepOrientation,onGoTo:be=>{L(j,be)}}),me=[];let xe=j.order.length;for(const be of V){const Ee=E.createElement("div");Ee.className=`${U}__step`,Ee.hidden=!0,m(j,Ee,be.blocks,be.axis,x),be.css&&n(Ee,be.css),W.appendChild(Ee);const Se=j.order.length;Ee.__records=j.order.slice(xe,Se),xe=Se,me.push(Ee)}const k=E.createElement("div");k.className=`${U}__step-nav`;const ne=E.createElement("button");ne.type="button",ne.className=`${U}__step-back`,ne.textContent=j.t("form.back");const se=E.createElement("button");se.type="button",se.className=`${U}__step-next`,se.textContent=j.t("form.next"),k.appendChild(ne),k.appendChild(se),W.appendChild(k);const J={steps:V,bodies:me,stepper:ce,back:ne,next:se,active:0};j.wizard=J;const ue=()=>{ce.setActive(J.active),me.forEach((be,Ee)=>{be.hidden=Ee!==J.active}),ne.disabled=J.active===0,se.textContent=J.active===V.length-1?j.t("form.finish"):j.t("form.next")},he=be=>{const Ee=me[be].__records||[];for(const Se of Ee)if(Se.item.name!=null&&!(Se.def.kind!=="field"&&Se.def.kind!=="toggle")&&Se.item.disabled!==!0&&!(Se.ruleHidden===!0||Se.hidden===!0)&&!(Se.item.required!==!0&&Se.item.validation==null&&typeof Se.def.validate!="function"&&Se.ruleRequired!==!0)&&!ye(j,Se))return typeof Se.def.focus=="function"?Se.def.focus(Se.control):typeof Se.control.focus=="function"&&Se.control.focus(),Se;return null};J._stepInvalid=he,J._render=ue,ne.addEventListener("click",()=>{re(j)}),se.addEventListener("click",()=>{te(j)}),ue()}async function L(j,x){const K=j.wizard;if(!K)return!1;const V=K.steps.length,E=Number(x);if(!Number.isFinite(E)||E<0||E>=V)return!1;const W=K.active;if(E===W)return!1;if(E>W&&j.model.validateSteps!==!1)for(let R=W;R<E;R+=1){if(K._stepInvalid(R))return K.stepper.setStatus(R,"error"),!1;K.stepper.setStatus(R,"complete")}return K.active=E,K._render(),!0}function te(j){const x=j.wizard;if(!x)return Promise.resolve(!1);if(x.active>=x.steps.length-1){if(j.model.validateSteps===!1)return Promise.resolve(!0);const K=x._stepInvalid(x.active);return x.stepper.setStatus(x.active,K?"error":"complete"),Promise.resolve(K==null)}return L(j,x.active+1)}function re(j){const x=j.wizard;return x?L(j,x.active-1):Promise.resolve(!1)}}),Ne("packages/modules/form/emitter.js",function(S,q){"use strict";Object.defineProperty(S,"FORM_EVENTS",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"Emitter",{enumerable:!0,get:function(){return $}});const e=new Set(["api","user"]),U=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class ${#e=new Map;on(b,N){if(typeof N!="function")return()=>{};let y=this.#e.get(b);return y||(y=new Set,this.#e.set(b,y)),y.add(N),()=>this.off(b,N)}off(b,N){const y=this.#e.get(b);y&&y.delete(N)}emit(b,N){const y=this.#e.get(b),C=this.#e.get("*");if((!y||y.size===0)&&(!C||C.size===0))return;const F={...N||null,type:b},O=(v,f)=>{for(const u of[...v])try{u(F)}catch(d){console.warn(`lattice-form: a '${f}' handler threw; other handlers were unaffected.`,d)}};y&&y.size&&O(y,b),C&&C.size&&O(C,"*")}emitBefore(b,N,y){const C=this.#e.get(b);if(!C||C.size===0)return!0;let F=!1,O=null;const v=r=>{F=!0,r!=null&&O===null&&(O=String(r))},f=y||N&&N.origin,u={...N||null,type:b,origin:e.has(f)?f:"user",get defaultPrevented(){return F},get reason(){return O},preventDefault(r){v(r)}},d=[...C],_=()=>(F&&O===null&&(O="prevented"),F&&N&&typeof N=="object"&&(N.reason=O),!F),t=[];for(let r=0;r<d.length;r++){const o=d[r];try{const p=o(u);p&&typeof p.then=="function"?t.push(p):p===!1&&v("prevented")}catch(p){v("error"),console.warn(`lattice-form: a '${b}' before-handler threw; the commit was cancelled.`,p)}}return t.length===0?_():Promise.allSettled(t).then(r=>{for(const o of r)o.status==="rejected"?(v("error"),console.warn(`lattice-form: a '${b}' before-handler rejected; the commit was cancelled.`,o.reason)):o.value===!1&&v("prevented");return _()})}clear(){this.#e.clear()}}}),Ne("packages/modules/form/bind-router.js",function(S,q){"use strict";Object.defineProperty(S,"routerBinding",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"writeRouterRecord",{enumerable:!0,get:function(){return $}});function e(Q){return Q!==null&&typeof Q=="object"&&!Array.isArray(Q)}function U(Q){const{router:b,route:N,key:y}=Q,C=f=>f!=null&&String(f.rowKey??f.id)===String(y);return{kind:"router",record:()=>b&&typeof b.get=="function"?b.get(N,y):void 0,items:()=>[],density:()=>{},subscribe:f=>{if(!b||typeof b.subscribe!="function")return()=>{};const u=_=>{if(_){for(const t of _.add||[])C(t)&&f(null,null,t);for(const t of _.update||[])C(t)&&f(null,null,t)}},d=b.subscribe(N,u);return typeof d=="function"?d:()=>{}},save:f=>$(Q,f)}}function $(Q,b){const{router:N,route:y,key:C,onSave:F}=Q;if(!Object.keys(b||{}).length)return!0;const v=()=>N&&typeof N.get=="function"?N.get(y,C):void 0,f=r=>{!N||typeof N.apply!="function"||N.apply([{op:"upsert",row:r}])},u=()=>{!N||typeof N.apply!="function"||(e(d)?N.apply([{op:"upsert",row:d}]):N.apply([{op:"delete",row:_}]))},d=v(),_={...e(d)?d:{},...b};if(f(_),typeof F!="function")return!0;let t;try{t=F(b,_)}catch{return u(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(u(),!1)):!0}}),Ne("packages/modules/form/bind.js",function(S,q){"use strict";Object.defineProperty(S,"resolveBind",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"isBound",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"applyBinding",{enumerable:!0,get:function(){return t}});const U=q("packages/modules/form/model.js").DENSITIES,Q=q("packages/modules/form/bind-router.js").routerBinding,b=new Set(["number","currency","percent","integer","decimal","duration"]);function N(r){const o=r&&r.dataType;if(o&&(o.unitConfig||o.temperatureConfig))return!0;const p=r&&r.edit?r.edit.editor:null;return p==="unit"||p==="temperature"}function y(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}function C(r){const o=r&&r.edit?r.edit.editor:null,p=r&&r.type;return o==="checkbox"||p==="boolean"?"checkbox":o==="number"||p!=null&&b.has(p)||N(r)?"number":"input"}function F(r){const o=r&&r.columns&&typeof r.columns.all=="function"?r.columns.all():[],p=[];for(const A of o){if(!A||!A.field||A.generated||A.computed)continue;const g={type:C(A),name:A.field,label:A.title,format:A.format},h=A.dataType,T=h&&h.unitConfig,c=h&&h.temperatureConfig;T?Object.assign(g,{system:T.system,unit:T.unit,binary:T.binary,decimals:T.decimals,minDecimals:T.minDecimals,maxDecimals:T.maxDecimals,display:T.display,group:T.group,space:T.space,placement:T.placement,significantFigures:T.significantFigures,compound:T.compound,nullDisplay:T.nullDisplay}):c&&Object.assign(g,{scale:c.scale,display:c.display,decimals:c.decimals,minDecimals:c.minDecimals,maxDecimals:c.maxDecimals,space:c.space,nullDisplay:c.nullDisplay}),p.push(g)}return p}function O(r,o){const p=r&&r.columns&&typeof r.columns.all=="function"?r.columns.all():[];for(const A of p)if(A&&A.field===o)return A;return null}function v(r){const o=r&&typeof r.get=="function"?r.get("density"):void 0;return U.includes(o)?o:void 0}function f(r){const{grid:o,rowKey:p}=r,A=()=>{const c=o&&o.rows&&typeof o.rows.byKey=="function"?o.rows.byKey(p):null;return c&&y(c.data)?{...c.data}:{}},g=c=>{const l=O(o,c);return l?l.id:c};return{kind:"grid",record:A,items:()=>F(o),density:()=>v(o),subscribe:c=>{if(!o||typeof o.on!="function")return()=>{};const l=a=>{if(!a||a.key!==p)return;const i=o.columns&&typeof o.columns.get=="function"?o.columns.get(a.colId):null,n=i?i.field:a.colId;n&&c(n,a.value)};return o.on("cell:changed",l)},save:c=>{const l=Object.keys(c);if(!l.length)return!0;if(!o||!o.edit||typeof o.edit.setCells!="function")return!1;const a=l.map(n=>({key:p,colId:g(n),value:c[n]})),i=o.edit.setCells(a,"cell",{origin:"form"});return i&&typeof i.then=="function"?i.then(n=>n>0):i>0}}}function u(r){return{kind:"values",record:()=>({...r}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:A=>{for(const g of Object.keys(A))r[g]=A[g];return!0}}}function d(r){const o=r&&r.bind;return o==null||typeof o!="object"?null:o.grid!=null&&y(o.grid)?f(o):o.router!=null?Q(o):u(o)}function _(r){return!!(r&&r.bind!=null&&typeof r.bind=="object")}function t(r,o,p){r.bound=p;const A=(T,c)=>{const l=o.getItem(T);l&&l.setValue(c)},g=(T,c,l)=>{if(l!=null){for(const a of Object.keys(l))if(r.items.has(a)){if(r.dirty.has(a)){r.conflicts.add(a);continue}r.baseline[a]=l[a],A(a,l[a])}return}if(r.items.has(T)){if(r.dirty.has(T)){r.conflicts.add(T);return}r.baseline[T]=c,A(T,c)}},h=p.record();if(h!=null&&typeof h=="object")for(const T of Object.keys(h))r.items.has(T)&&(r.baseline[T]=h[T],A(T,h[T]));r.disposers.push(o.on("change",T=>{r.dirty.add(T.name),r.conflicts.delete(T.name)})),r.disposers.push(p.subscribe(g))}}),Ne("packages/modules/form/controls/input.js",function(S,q){"use strict";const U=q("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"}),b=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 N(v){return $.includes(v)?v:"text"}function y(v){return!(v.props&&v.props.reveal===!1)}function C(v,f){const u=f?b:Q,d=v.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("viewBox",u.viewBox),d.setAttribute("focusable","false"),d.setAttribute("aria-hidden","true"),u.paint==="stroke"?(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round")):d.setAttribute("fill","currentColor");for(const _ of u.paths){const t=v.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",_),d.appendChild(t)}return d}function F(v){return v.__latPassword?v.__latPassword.input:v}function O(v,f,u){const d=f&&f.defaultView,_=d&&d.Event,t=_?new _(u,{bubbles:!0}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};v.dispatchEvent(t)}U("input",{kind:"field",build(v,f){const u=f.doc,d=N(v.subtype);if(d!=="password"||!y(v)){const h=u.createElement("input");return h.type=d,v.name&&(h.name=v.name),v.placeholder!=null&&(h.placeholder=String(v.placeholder)),h.value=v.value==null?"":String(v.value),h}const _=u.createElement("div");_.className="lat-form__password";const t=u.createElement("input");t.type="password",v.name&&(t.name=v.name),v.placeholder!=null&&(t.placeholder=String(v.placeholder)),t.value=v.value==null?"":String(v.value),_.appendChild(t);const r=u.createElement("button");r.type="button",r.className="lat-form__password-btn",r.setAttribute("aria-pressed","false");const o=f.t("form.password.show");r.setAttribute("aria-label",o),r.title=o,r.appendChild(C(u,!1)),_.appendChild(r);const p={revealed:!1,disabled:!1,input:t,btn:r};_.__latPassword=p;const A=h=>{p.revealed=h===!0,t.type=p.revealed?"text":"password",r.setAttribute("aria-pressed",p.revealed?"true":"false");const T=f.t(p.revealed?"form.password.hide":"form.password.show");r.setAttribute("aria-label",T),r.title=T,r.replaceChild(C(u,p.revealed),r.firstChild)};p.setRevealed=A,r.addEventListener("click",()=>{p.disabled||A(!p.revealed)});let g=!1;return _.addEventListener("focusin",()=>{g||(g=!0,O(_,u,"focus"))}),_.addEventListener("focusout",h=>{_.contains(h.relatedTarget)||(g=!1,A(!1),O(_,u,"blur"))}),_},read(v){return F(v).value},write(v,f){F(v).value=f==null?"":String(f)},state(v,f){const u=F(v);u.disabled=f.disabled===!0,u.readOnly=f.readOnly===!0;const d=v.__latPassword;d&&(d.disabled=f.disabled===!0,d.btn&&(d.btn.disabled=d.disabled))},reset(v){const f=v.__latPassword;f&&typeof f.setRevealed=="function"&&f.setRevealed(!1)}})}),Ne("packages/core/src/internal/predicates.js",function(S,q){"use strict";Object.defineProperty(S,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"isFunction",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"isNil",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"isBlank",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"isCtor",{enumerable:!0,get:function(){return b}});function e(N){return N!==null&&typeof N=="object"&&!Array.isArray(N)}function U(N){return typeof N=="function"}function $(N){return N==null}function Q(N){return N==null||N===""}function b(N){return typeof N!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(N))?!0:!!(N.prototype&&Object.getOwnPropertyNames(N.prototype).length>1)}}),Ne("packages/core/src/internal/warn.js",function(S,q){"use strict";Object.defineProperty(S,"reportedWarnings",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"infoOnce",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"resetWarnings",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"invariant",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"DEV",{enumerable:!0,get:function(){return _}});const e=new Set,U=2e3;function $(t){if(e.add(t),e.size>U){const r=e.values().next().value;r!==void 0&&e.delete(r)}}const Q=[],b=500;function N(t,r,o){Q.push({key:t,level:r,message:o.map(p=>typeof p=="string"?p:y(p)).join(" "),at:Date.now()}),Q.length>b&&Q.shift()}function y(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 F(t){if(t.length===0||typeof t[0]!="string")return t;const r=t[0].replace(/^\[lattice\]\s*/,"");return r===t[0]?t:[r,...t.slice(1)]}function O(t,...r){if(e.has(t))return;$(t);const o=F(r);N(t,"warn",o),console.warn("[lattice]",...o)}function v(t,...r){if(e.has(t))return;$(t);const o=F(r);N(t,"info",o),console.info("[lattice]",...o)}function f(){e.clear(),Q.length=0}function u(t,r){const o=new Error(`[lattice] ${t}`);throw r!==void 0&&(o.cause=r),o}function d(t,r){t||u(r)}const _=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Ne("packages/core/src/format/mask.js",function(S,q){"use strict";Object.defineProperty(S,"splitSections",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"parseSection",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"compileMask",{enumerable:!0,get:function(){return N}});const e=new Set(["0","#","?",",","."]),U="\0";function $(C){const F=[];let O="",v=!1;for(let f=0;f<C.length;f++){const u=C[f];if(u==="\\"){O+=u+(C[f+1]??""),f+=1;continue}if(u==='"'){v=!v,O+=u;continue}if(u===";"&&!v){F.push(O),O="";continue}O+=u}return F.push(O),F}function Q(C){let F="",O="",v="",f=1,u=!1,d=!1;const _=c=>{d?O+=c:F+=c};for(let c=0;c<C.length;c++){const l=C[c];if(l==="\\"){_(C[c+1]??""),c+=1;continue}if(l==='"'){const a=C.indexOf('"',c+1);_(a===-1?C.slice(c+1):C.slice(c+1,a)),c=a===-1?C.length:a;continue}if(l==="%"){f*=100,_("%");continue}if(l==="@"){u=!0,_("\0");continue}if(e.has(l)){v+=l,d=!0;continue}_(l)}let t=-1;for(let c=v.length-1;c>=0;c--){const l=v[c];if(l==="0"||l==="#"||l==="?"){t=c;break}}let r=!1,o="";for(let c=0;c<v.length;c++){const l=v[c];if(l===","){c>t?f/=1e3:r=!0;continue}o+=l}const p=o.indexOf("."),A=p===-1?o:o.slice(0,p),g=p===-1?"":o.slice(p+1);let h=0;for(const c of A)c==="0"&&(h+=1);let T=0;for(const c of g)c==="0"&&(T+=1);return{prefix:F,suffix:O,minInt:h,minDec:T,maxDec:g.length,grouping:r,scale:f,hasNumber:t!==-1,isText:u}}function b(C,F){const O=new Intl.NumberFormat(F,{minimumIntegerDigits:Math.max(C.minInt,1),minimumFractionDigits:C.minDec,maximumFractionDigits:Math.max(C.maxDec,C.minDec),useGrouping:C.grouping}),{prefix:v,suffix:f,scale:u,hasNumber:d}=C;return _=>{if(!d)return v+f;const t=u===1?_:_*u;return v+O.format(t)+f}}function N(C,F){const v=$(String(C)).map(Q),f=v.map(o=>b(o,F)),u=0,d=v.length>1?1:-1,_=v.length>2?2:-1,t=v.length>3?3:-1,r=o=>{if(o==null||o==="")return"";if(typeof o!="number"||Number.isNaN(o)){const p=Number(o);if(Number.isNaN(p))return t===-1?String(o):(v[t].prefix+v[t].suffix).split("\0").join(String(o));o=p}return o===0&&_!==-1?f[_](0):o<0&&d!==-1?f[d](-o):f[u](o)};return r.spec={mask:C},{format:r,ooxml:y(String(C))}}function y(C){return C.trim()}}),Ne("packages/core/src/format/pattern.js",function(S,q){"use strict";Object.defineProperty(S,"parseNumberPattern",{enumerable:!0,get:function(){return b}});const U=q("packages/core/src/format/mask.js").splitSections;function $(N){let y="",C="",F="",O="",v=!1,f=!1,u=!1,d=!1;const _=r=>{u?C+=r:y+=r};for(let r=0;r<N.length;r++){const o=N[r];if(o==="\\"){_(N[r+1]??""),r+=1;continue}if(o==='"'){const p=N.indexOf('"',r+1);_(p===-1?N.slice(r+1):N.slice(r+1,p)),r=p===-1?N.length:p;continue}if(o==="%"){f=!0;continue}if(o==="0"||o==="#"){u=!0,d?O+=o:F+=o;continue}if(o===","){d||(v=!0);continue}if(o==="."&&!d){d=!0;continue}_(o)}if(!u)return{hasDigit:!1,prefix:y,suffix:C,minDec:0,maxDec:0,grouping:!1,percent:f};let t=0;for(const r of O)r==="0"&&(t+=1);return{hasDigit:!0,prefix:y,suffix:C,minDec:t,maxDec:O.length,grouping:v,percent:f}}function Q(N,y){const C=y.trim(),F=N.trim();return C.startsWith("(")&&C.endsWith(")")&&C.slice(1,-1).trim()===F?"parentheses":C.endsWith("-")?"suffix":"minus"}function b(N){if(typeof N!="string")return null;const y=U(N);if(y.length===0)return null;const C=$(y[0]);if(!C.hasDigit)return null;const F={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(y.length>1&&(F.negative=Q(y[0],y[1])),y.length>2){const O=$(y[2]);O.hasDigit||(F.zeroDisplay=O.prefix+O.suffix)}return F}}),Ne("packages/core/src/format/number.js",function(S,q){"use strict";Object.defineProperty(S,"compileNumber",{enumerable:!0,get:function(){return y}});const U=q("packages/core/src/internal/predicates.js").isNil,Q=q("packages/core/src/internal/warn.js").warnOnce,N=q("packages/core/src/format/pattern.js").parseNumberPattern;function y(C,F){const O=typeof C=="string"?{pattern:C}:C||{};let v=O;if(typeof O.pattern=="string"){const Y=N(O.pattern);if(Y){const{pattern:B,...ee}=O;v={...Y,...ee}}else Q(`format:pattern:${O.pattern}`,`invalid number format pattern "${O.pattern}"; the value will use the default number format`)}const f=v.locale||F||void 0,u=v.style||"decimal",d=typeof v.scale=="number"?v.scale:1,_=v.nullDisplay??"",t=v.zeroDisplay,r=v.prefix||"",o=v.suffix||"",p=v.negative||"minus",A=v.signed===!0,g={style:u,notation:v.notation||"standard"};u==="currency"&&(g.currency=v.currency||"USD",v.currencyDisplay&&(g.currencyDisplay=v.currencyDisplay)),typeof v.decimals=="number"?(g.minimumFractionDigits=v.decimals,g.maximumFractionDigits=v.decimals):(typeof v.minDecimals=="number"&&(g.minimumFractionDigits=v.minDecimals),typeof v.maxDecimals=="number"&&(g.maximumFractionDigits=v.maxDecimals),g.minimumFractionDigits>(g.maximumFractionDigits??20)&&(g.maximumFractionDigits=g.minimumFractionDigits)),v.thousandsSeparator===!1&&(g.useGrouping=!1),g.notation==="compact"&&(g.compactDisplay=v.compactDisplay||"short");const h=new Intl.NumberFormat(f,g),T=typeof v.thousandsSeparator=="string"?v.thousandsSeparator:null,c=typeof v.decimalSeparator=="string"?v.decimalSeparator:null;let l=",",a=".";if(T||c)for(const Y of h.formatToParts(12345.6))Y.type==="group"?l=Y.value:Y.type==="decimal"&&(a=Y.value);const i=Y=>{let B=Y;return T&&(B=B.split(l).join("")),c&&(B=B.split(a).join("")),T&&(B=B.split("").join(T)),c&&(B=B.split("").join(c)),B},n=!!(T||c),s=r!==""&&u==="currency",I=Y=>{let B;if(s){const ee=h.formatToParts(Y);let oe=!1;B="";for(const H of ee)B+=H.value,!oe&&H.type==="currency"&&(B+=r,oe=!0);oe||(B=r+B)}else B=r+h.format(Y);return n&&(B=i(B)),B+o},z=Y=>{if(U(Y)||Y==="")return _;const B=typeof Y=="number"?Y:Number(Y);if(Number.isNaN(B))return _;const ee=d===1?B:B*d;return ee===0&&t!==void 0?t:ee<0?p==="parentheses"?`(${I(-ee)})`:p==="suffix"?`${I(-ee)}-`:I(ee):A&&ee>0?`+${I(ee)}`:I(ee)};return z.negativeClass=v.negativeClass||null,z.spec=v,z}}),Ne("packages/core/src/columns/types/unit.js",function(S,q){"use strict";Object.defineProperty(S,"defineUnit",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"registerUnitSystem",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"unitSystemNames",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"unitsOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"localeSeparators",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"parseUnit",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"formatUnit",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(S,"createUnitType",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return M}});const U=q("packages/core/src/internal/predicates.js").isNil,Q=q("packages/core/src/internal/warn.js").warnOnce;function b(D,m,P,X){return Object.freeze({symbol:D,factor:m,aliases:Object.freeze(P||[]),binary:!!(X&&X.binary),prefix:X&&X.prefix||null,auto:!(X&&X.auto===!1)})}function N(D,m,P,X){return b(D,m,P,X)}const y=Object.freeze({data:Object.freeze([b("B",1,["byte","bytes"]),b("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),b("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),b("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),b("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),b("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),b("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),b("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),b("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),b("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([b("bps",1,["bit","bits","bit/s","b/s"]),b("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),b("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),b("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),b("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([b("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),b("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),b("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),b("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),b("in",.0254,["inch","inches"],{auto:!1}),b("ft",.3048,["foot","feet"],{auto:!1}),b("yd",.9144,["yard","yards"],{auto:!1}),b("m",1,["metre","metres","meter","meters"]),b("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),b("mi",1609.344,["mile","miles"],{auto:!1}),b("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([b("mg",.001,["milligram","milligrams"]),b("g",1,["gram","grams"]),b("oz",28.349523125,["ounce","ounces"],{auto:!1}),b("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),b("kg",1e3,["kilogram","kilograms"]),b("st",6350.29318,["stone"],{auto:!1}),b("t",1e6,["tonne","tonnes","ton"],{auto:!1}),b("ton (US)",907184.74,["ton","shortton"],{auto:!1}),b("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([b("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),b("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),b("ms",.001,["msec","msecs","millisecond","milliseconds"]),b("s",1,["sec","secs","second","seconds"]),b("m",60,["min","mins","minute","minutes"]),b("h",3600,["hr","hrs","hour","hours"]),b("d",86400,["day","days"])]),speed:Object.freeze([b("mm/s",.001,["millimetre/s","millimeter/s"]),b("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),b("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),b("mph",.44704,["mile/h","miles/h"],{auto:!1}),b("kn",1852/3600,["knot","knots"],{auto:!1}),b("m/s",1,["metre/s","meter/s","mps"]),b("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([b("mm/s²",.001,["mm/s2"]),b("ft/s²",.3048,["ft/s2"],{auto:!1}),b("m/s²",1,["m/s2","metre/s2","meter/s2"]),b("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([b("mm²",1e-6,["mm2"]),b("cm²",1e-4,["cm2"]),b("in²",64516e-8,["in2","sqin"],{auto:!1}),b("ft²",.09290304,["ft2","sqft"],{auto:!1}),b("yd²",.83612736,["yd2","sqyd"],{auto:!1}),b("m²",1,["m2","sqm"]),b("ha",1e4,["hectare","hectares"],{auto:!1}),b("ac",4046.8564224,["acre","acres"],{auto:!1}),b("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([b("µL",1e-6,["ul","microlitre","microliter"]),b("mL",.001,["millilitre","milliliter"]),b("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),b("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),b("L",1,["litre","litres","liter","liters"]),b("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),b("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),b("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),b("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([b("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),b("J",1,["joule","joules"]),b("cal",4.184,["calorie","calories"],{auto:!1}),b("kJ",1e3,["kilojoule","kilojoules"]),b("BTU",1055.05585262,["btu"],{auto:!1}),b("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),b("MJ",1e6,["megajoule","megajoules"]),b("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),b("GJ",1e9,["gigajoule","gigajoules"]),b("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([b("mW",.001,["milliwatt","milliwatts"]),b("W",1,["watt","watts"]),b("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),b("kW",1e3,["kilowatt","kilowatts"]),b("hp",745.6998715822702,["horsepower"],{auto:!1}),b("MW",1e6,["megawatt","megawatts"]),b("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([b("mN",.001,["millinewton","millinewtons"]),b("N",1,["newton","newtons"]),b("lbf",4.4482216152605,["poundforce"],{auto:!1}),b("kgf",9.80665,["kilogramforce"],{auto:!1}),b("kN",1e3,["kilonewton","kilonewtons"]),b("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([b("Pa",1,["pascal","pascals"]),b("mbar",100,["millibar"],{auto:!1}),b("inH₂O",249.0889,["inh2o"],{auto:!1}),b("mmHg",133.322387415,["torr"],{auto:!1}),b("kPa",1e3,["kilopascal","kilopascals"]),b("inHg",3386.388640341,["inhg"],{auto:!1}),b("psi",6894.757293168361,["lbf/in2"],{auto:!1}),b("bar",1e5,[],{auto:!1}),b("atm",101325,["atmosphere","atmospheres"],{auto:!1}),b("MPa",1e6,["megapascal","megapascals"]),b("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([b("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),b("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),b("kN·m",1e3,["knm","kn.m"],{auto:!1}),b("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([b("kg/m³",1,["kg/m3"]),b("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),b("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),b("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([b("L/min",1/6e4,["lpm","l/min"],{auto:!1}),b("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),b("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),b("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),b("cfm",.0004719474432,["ft3/min"],{auto:!1}),b("L/s",.001,["lps","l/s"],{auto:!1}),b("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([b("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),b("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),b("mrad",.001,["milliradian","milliradians"],{auto:!1}),b("mil",Math.PI/3200,["nato-mil"],{auto:!1}),b("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),b("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),b("rad",1,["radian","radians"]),b("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([b("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),b("rad/s",1,["radps","radians/s"]),b("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),b("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([b("ppt",1e-12,["partspertrillion"],{auto:!1}),b("ppb",1e-9,["partsperbillion"]),b("ppm",1e-6,["partspermillion"]),b("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),b("‰",.001,["permille","permil"],{auto:!1}),b("%",.01,["pct","percent"]),b("×",1,["x","ratio","times"])]),molarity:Object.freeze([b("pM",1e-12,["picomolar","picomolarity"]),b("nM",1e-9,["nanomolar","nanomolarity"]),b("µM",1e-6,["um-molar","micromolar","micromolarity"]),b("mM",.001,["millimolar","millimolarity"]),b("M",1,["molar","mol/l","mol/L","molarity"]),b("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([b("mg/s",1e-6,["milligrams/s"]),b("g/s",.001,["grams/s"]),b("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),b("kg/s",1,["kilograms/s","kgps"]),b("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),b("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),b("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([b("µPa·s",1e-6,["upas","micropascalsecond"]),b("cP",.001,["centipoise"],{auto:!1}),b("mPa·s",.001,["mpas","millipascalsecond"]),b("P",.1,["poise"],{auto:!1}),b("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([b("cSt",1e-6,["centistokes","centistoke"]),b("mm²/s",1e-6,["mm2/s"],{auto:!1}),b("St",1e-4,["stokes","stoke"],{auto:!1}),b("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([b("mW/(m·K)",.001,["mw/mk"]),b("W/(m·K)",1,["w/mk","wmk"]),b("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),b("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([b("J/(kg·K)",1,["j/kgk","jkgk"]),b("kJ/(kg·K)",1e3,["kj/kgk"]),b("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([b("nSv/h",1e-9,["nsvh"]),b("µSv/h",1e-6,["usv/h","usvh"]),b("mSv/h",.001,["msvh"]),b("Sv/h",1,["svh"]),b("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),C=Symbol("ambiguous"),F=new Map,O=new Map;function v(D,m){const P=String(D||"").trim();if(!P)throw new Error("[lattice] a unit system needs a name");if(y[P]||O.has(P))throw new Error(`[lattice] unit system "${P}" already exists`);const X=[...m||[]];if(!X.length)throw new Error(`[lattice] unit system "${P}" has no units`);if(!X.some(te=>te.factor===1))throw new Error(`[lattice] unit system "${P}" has no base unit (none with factor 1)`);const L=new Set;for(const te of X){if(L.has(te.symbol))throw new Error(`[lattice] unit system "${P}" declares "${te.symbol}" twice`);L.add(te.symbol)}return O.set(P,Object.freeze(X)),F.delete(P),P}function f(){return[...Object.keys(y),...O.keys()]}function u(D){const m=d(D);return m?m.units:[]}function d(D){const m=String(D||""),P=F.get(m);if(P!==void 0)return P;const X=y[m]||O.get(m);if(!X)return F.set(m,null),null;const L=Object.freeze([...X].sort((K,V)=>K.factor-V.factor)),te=new Map,re=new Map,j=(K,V)=>{const E=te.get(K);E===void 0?te.set(K,V):E!==V&&te.set(K,C)};for(const K of L){j(K.symbol.toLowerCase(),K);for(const V of K.aliases)j(V.toLowerCase(),K);if(K.prefix){const V=re.get(K.prefix)||[];V.push(K),re.set(K.prefix,V)}}const x={units:L,byToken:te,byPrefix:re,decimal:L.filter(K=>!K.binary&&K.auto),binary:L.some(K=>K.binary)?L.filter(K=>(K.binary||K.factor===1)&&K.auto):null};return F.set(m,x),x}function _(D,m){return m&&D.binary||D.decimal}function t(D,m){const P=d(D);if(!P||U(m))return null;const X=P.units.find(te=>te.symbol===String(m));if(X)return X;const L=P.byToken.get(String(m).trim().toLowerCase());return L&&L!==C?L:null}const r=new WeakMap;function o(D){const m=D||{};if(typeof m=="object"&&m!==null){const te=r.get(m);if(te!==void 0)return te}const P=m.system||"data",X=d(P);let L=null;if(!X)Q(`unit:system:${P}`,`unknown unit system "${P}"; known systems are ${f().join(", ")}`);else{let te=m.unit?t(P,m.unit):null;te||(m.unit&&Q(`unit:unit:${P}:${m.unit}`,`unknown unit "${m.unit}" in system "${P}"; falling back to ${X.units[0].symbol}`),te=X.units.find(re=>re.factor===1)||X.units[0]),L={index:X,base:te,binary:m.binary===!0}}return typeof m=="object"&&m!==null&&r.set(m,L),L}const p=new WeakMap;function A(D,m){if(!D||!m||!Array.isArray(D.compound)||D.compound.length===0)return null;const P=p.get(D);if(P!==void 0)return P;const X=new Set,L=[];for(const re of D.compound){const j=t(D.system||"data",re);if(!j){Q(`unit:compound:${D.system}:${re}`,`unknown compound unit "${re}" in system "${D.system||"data"}"; ignoring it`);continue}X.has(j.symbol)||(X.add(j.symbol),L.push(j))}L.sort((re,j)=>j.factor-re.factor);const te=L.length>=2?L:null;return p.set(D,te),te}function g(D,m,P){return m===P||m.factor===P.factor?D:D*m.factor/P.factor}const h=new Map;function T(D){const m=D||"",P=h.get(m);if(P)return P;const X={group:",",decimal:"."};try{for(const L of new Intl.NumberFormat(D||void 0).formatToParts(12345.6))L.type==="group"?X.group=L.value:L.type==="decimal"&&(X.decimal=L.value)}catch{}return h.set(m,X),X}const c=/[\s   ]/g,l=/^[+-]?[\d   '’ .,]*(?:[eE][+-]?\d+)?/,a=/^[^\d+\-(.,\s]+\s*/,i=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function n(D,m){const{group:P,decimal:X}=T(m);let L=String(D).replace(c,"");if(L==="")return null;const te=X?L.indexOf(X):-1;if(P&&P!==X){if(te>=0&&L.indexOf(P,te+X.length)>=0)return null;L=L.split(P).join("")}if(X&&X!=="."&&(L=L.split(X).join(".")),!i.test(L))return null;const re=Number(L);return Number.isFinite(re)?re:null}function s(D,m,P){const X=String(D).trim().replace(/\.$/,"");if(X==="")return null;const L=m.units.find(V=>V.symbol===X);if(L)return L;const te=X.toLowerCase(),re=m.byToken.get(te);if(re===C)return null;if(re)return re;const j=m.byPrefix.get(te);if(!j||!j.length)return null;const x=_(m,P),K=j.filter(V=>x.includes(V));return K.length===1?K[0]:null}function I(D,m,P,X){let L=D,te=0,re=!1,j=!1;for(;L!=="";){const x=l.exec(L)[0];if(x==="")return null;const K=n(x,X&&X.locale);if(K===null)return null;L=L.slice(x.length).trim();const V=L.search(/[+-]?[\d]/),E=(V>=0?L.slice(0,V):L).trim();if(L=V>=0?L.slice(V).trim():"",E===""){if(re)return null;j=!0,te+=g(K,P[0],m.base)}else{const W=s(E,m.index,m.binary);if(!W)return null;te+=g(K,W,m.base)}if(re=!0,j&&L!=="")return null}return re?te:null}function z(D,m){if(U(D))return null;if(typeof D=="number")return Number.isFinite(D)?D:null;const P=o(m);if(!P)return null;let X=String(D).trim();if(X==="")return null;let L=!1;X.startsWith("(")&&X.endsWith(")")&&(L=!0,X=X.slice(1,-1).trim());const te=A(m,P);if(te){X.startsWith("-")&&(L=!0,X=X.slice(1).trim());const R=I(X,P,te,m);return R===null?null:L?-R:R}let re=null;const j=a.exec(X);if(j&&j[0]){const R=s(j[0].trim(),P.index,P.binary);R&&(re=R,X=X.slice(j[0].length).trim())}const x=l.exec(X)[0],K=n(x,m&&m.locale);if(K===null)return null;const V=X.slice(x.length).trim();if(re&&V!=="")return null;const E=re||(V===""?P.base:s(V,P.index,P.binary));if(!E)return null;const W=g(K,E,P.base);return L?-W:W}const Y=new Map;function B(D,m,P,X){const L=`${D||""}|${m}|${P}|${X?1:0}`;let te=Y.get(L);return te||(te=new Intl.NumberFormat(D||void 0,{minimumFractionDigits:m,maximumFractionDigits:P,useGrouping:X}),Y.set(L,te)),te}function ee(D,m){if(!Number.isFinite(D)||D===0)return Math.max(0,m-1);const P=Math.floor(Math.log10(Math.abs(D)));return Math.min(20,Math.max(0,m-1-P))}function oe(D,m){if(!Number.isFinite(D)||D===0)return D;const P=Math.ceil(Math.log10(Math.abs(D))),X=10**(m-P);return Math.round(D*X)/X}function H(D,m,P){if(!P||P===m.base.symbol)return m.base;if(P!=="auto")return Z(m,P);if(D===0||!Number.isFinite(D))return m.base;const X=Math.abs(D)*m.base.factor,L=_(m.index,m.binary);let te=L[0];for(const x of L)X>=x.factor&&(te=x);if(X>=te.factor)return te;let re=te;for(const x of m.index.units)x.binary!==m.binary&&x.factor!==1||x.factor<=X&&x.factor>(re===te?0:re.factor)&&(re=x);if(re!==te)return re;let j=te;for(const x of m.index.units)x.binary!==m.binary&&x.factor!==1||x.factor<j.factor&&(j=x);return j.factor<m.base.factor?j:m.base}function Z(D,m){const P=D.index.units.find(L=>L.symbol===m);if(P)return P;const X=D.index.byToken.get(String(m).toLowerCase());return X&&X!==C?X:(Q(`unit:display:${m}`,`unknown display unit "${m}"; rendering in ${D.base.symbol}`),D.base)}function G(D,m,P,X){const L=D<0;let te=Math.abs(D)*m.base.factor;const re=typeof X.decimals=="number"?X.decimals:X.minDecimals??0,j=typeof X.decimals=="number"?X.decimals:X.maxDecimals??Math.max(re,2),x=X.space??" ",K=[];for(let E=0;E<P.length;E++){const W=P[E],R=E===P.length-1;let ce=R?te/W.factor:Math.floor(te/W.factor);if(te-=ce*W.factor,R){const xe=10**j;ce=Math.round(ce*xe)/xe+0}const me=R?B(X.locale,re,j,X.group!==!1):B(X.locale,0,0,X.group!==!1);K.push(`${me.format(ce)}${x}${W.symbol}`)}const V=K.join(" ");return L?`-${V}`:V}function ge(D,m){const P=m||{},X=P.nullDisplay??"";if(U(D)||D==="")return X;const L=typeof D=="number"?D:Number(D);if(!Number.isFinite(L))return X;const te=o(P);if(!te)return String(L);const re=A(P,te);if(re)return G(L,te,re,P);const j=typeof P.significantFigures=="number"&&P.significantFigures>0?P.significantFigures:0,x=j?oe(L,j):L,K=H(x,te,P.display),V=g(x,te.base,K);let E=typeof P.decimals=="number"?P.decimals:P.minDecimals??0,W=typeof P.decimals=="number"?P.decimals:P.maxDecimals??Math.max(E,2);j&&(E=ee(V,j),W=E);const R=B(P.locale,E,W,P.group!==!1).format(V),ce=P.space??" ";return P.placement==="prefix"?`${K.symbol}${P.space??""}${R}`:`${R}${ce}${K.symbol}`}function ye(D,m){const P=U(D)||Number.isNaN(D)?null:Number(D),X=U(m)||Number.isNaN(m)?null:Number(m);return P===null||Number.isNaN(P)?X===null||Number.isNaN(X)?0:1:X===null||Number.isNaN(X)||P<X?-1:P>X?1:0}function le(D){const m=typeof D.decimals=="number"&&D.decimals>0?`.${"0".repeat(D.decimals)}`:"";return`${typeof D.decimals=="number"?`#,##0${m}`:"#,##0.##"}" ${D.symbol}"`}function w(D){const m={system:"data",...D||{}},P=o(m),X=P?P.base.symbol:String(m.unit||""),L=Object.freeze({...m,unit:X}),te=Object.freeze({...L,display:X,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),re=new Map([[L.locale||"",L]]),j=x=>{const K=x||"";let V=re.get(K);return V||(V=Object.freeze({...L,locale:x||void 0}),re.set(K,V)),V};return{base:"number",extends:"number",storage:"float64",unitConfig:L,format:x=>ge(x.value,x.locale?j(x.locale):L),parse:x=>z(x.text,x.locale?j(x.locale):L),compare:ye,defaults:{filter:"number",editor:"unit",align:"end",total:m.total||"sum"},...m.totals?{totals:m.totals}:{},excel:m.excel||le({decimals:m.decimals,symbol:X}),toStorage:x=>typeof x=="number"?Number.isFinite(x)?x:null:typeof x=="string"?z(x,L):U(x)?null:z(String(x),L),toClipboard:x=>ge(x,te),fromClipboard:x=>z(x,L)}}const M=w}),Ne("packages/core/src/columns/types/temperature.js",function(S,q){"use strict";Object.defineProperty(S,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"findScale",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"convertTemperature",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"formatTemperature",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"parseTemperature",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"createTemperatureType",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return d}});const U=q("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(U(_))return null;const t=String(_).trim();if(t==="")return null;for(const[o,p]of Object.entries($))if(t===o||t===p.symbol)return{key:o,scale:p};const r=t.toLowerCase();for(const[o,p]of Object.entries($))if(p.aliases.includes(r))return{key:o,scale:p};return null}function b(_,t,r){const o=Q(t),p=Q(r);return!o||!p||!Number.isFinite(Number(_))?null:o.key===p.key?Number(_):p.scale.fromKelvin(o.scale.toKelvin(Number(_)))}const N=new Map;function y(_,t,r){const o=`${_||""}|${t}|${r}`;let p=N.get(o);return p||(p=new Intl.NumberFormat(_||void 0,{minimumFractionDigits:t,maximumFractionDigits:r}),N.set(o,p)),p}function C(_,t){const r=t||{},o=r.nullDisplay??"";if(U(_)||_==="")return o;const p=Number(_);if(!Number.isFinite(p))return o;const A=Q(r.scale||"C");if(!A)return String(p);const g=Q(r.display||r.scale||"C")||A,h=g.key===A.key?p:g.scale.fromKelvin(A.scale.toKelvin(p)),T=typeof r.decimals=="number"?r.decimals:null,c=T??r.minDecimals??0,l=T??r.maxDecimals??1;return`${y(r.locale,c,l).format(h)}${r.space??" "}${g.scale.symbol}`}const F=/^[+-]?[\d\s.,  ]*\d/;function O(_,t){const r=String(_).trim();if(r==="")return null;const o=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(h=>h.type==="decimal")?.value||".",p=o===","?".":",",A=r.split(p).join("").split(/[\s  ]/).join("").replace(o,"."),g=Number(A);return Number.isFinite(g)?g:null}function v(_,t){if(U(_))return null;const r=t||{},o=Q(r.scale||"C");if(!o)return null;if(typeof _=="number")return Number.isFinite(_)?_:null;let p=String(_).trim();if(p==="")return null;let A=!1;p.startsWith("(")&&p.endsWith(")")&&(A=!0,p=p.slice(1,-1).trim());const g=F.exec(p);if(!g)return null;const h=O(g[0],r.locale);if(h===null)return null;const T=p.slice(g[0].length).trim();if(T==="")return A?-h:h;const c=Q(T);if(!c)return null;const l=c.key===o.key?h:o.scale.fromKelvin(c.scale.toKelvin(h));return A?-l:l}function f(_){const t=Object.freeze({scale:"C",..._||{}}),o=(Q(t.scale)||Q("C")).scale.symbol,p=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),A=new Map([[t.locale||"",t]]),g=h=>{const T=h||"";let c=A.get(T);return c||(c=Object.freeze({...t,locale:h||void 0}),A.set(T,c)),c};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:h=>C(h.value,h.locale?g(h.locale):t),parse:h=>v(h.text,h.locale?g(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)}`:".#"}" ${o}"`,toStorage:h=>typeof h=="number"?Number.isFinite(h)?h:null:typeof h=="string"?v(h,t):U(h)?null:v(String(h),t),toClipboard:h=>C(h,p),fromClipboard:h=>v(h,t)}}const u=Object.freeze({celsius:f({scale:"C"}),fahrenheit:f({scale:"F"}),kelvin:f({scale:"K"})}),d=f}),Ne("packages/modules/form/controls/number.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,N=q("packages/core/src/format/number.js").compileNumber,y=q("packages/core/src/columns/types/unit.js"),C=y.parseUnit,F=y.formatUnit,O=y.findUnit,v=y.unitsOf,f=q("packages/core/src/columns/types/temperature.js"),u=f.parseTemperature,d=f.formatTemperature,_=f.findScale,t="data-lattice-form-number-styles";function r(){return`
1271
1288
  .lat-form__control .lat-form__number{
1272
1289
  text-align:right; font-variant-numeric:tabular-nums;
1273
1290
  }
@@ -1308,7 +1325,7 @@
1308
1325
  font:inherit; line-height:inherit; cursor:pointer;
1309
1326
  }
1310
1327
  .lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
1311
- `.trim()}function a(d){const l=d&&d.documentElement;if(!l||l.getAttribute(t))return;l.setAttribute(t,"1");const s=d.createElement("style");s.textContent=n(),(d.head||d.body||l).appendChild(s)}function m(d){let l="",s=".";try{for(const r of new Intl.NumberFormat(d||void 0).formatToParts(12345.6))r.type==="group"?l=r.value:r.type==="decimal"&&(s=r.value)}catch{}return{group:l,decimal:s}}function E(d,l){if(d==null)return null;let s=String(d).trim();if(s==="")return null;const{group:r,decimal:i}=m(l);let B=!1;if(/^\(.*\)$/.test(s)&&(B=!0,s=s.slice(1,-1)),s=s.replace(/[\s   ]/g,""),r&&r!=="."&&(s=s.split(r).join("")),s=s.replace(/[^0-9eE+\-.,]/g,""),i===","?(s=s.split(".").join(""),s=s.replace(",",".")):s=s.split(",").join(""),s===""||s==="-"||s==="+")return NaN;s.startsWith("-")&&(B=!B,s=s.slice(1));const z=Number(s);return Number.isFinite(z)?B?-z:z:NaN}function _(d){if(d==null||d==="")return"";const l=typeof d=="number"?d:Number(d);return Number.isFinite(l)?String(l):""}function c(d){return d&&d.__latNumber?d.__latNumber.input:d}function S(d){if(typeof d=="number")return Number.isFinite(d)?d:null;if(d==null||d==="")return null;const l=Number(d);return Number.isFinite(l)?l:null}function o(d){const l=d&&d.props||{};return typeof l.system=="string"&&l.system!==""?{kind:"unit",opts:{system:l.system,unit:l.unit,binary:l.binary===!0,decimals:l.decimals,minDecimals:l.minDecimals,maxDecimals:l.maxDecimals,display:l.display,locale:d.locale||l.locale,group:l.group,space:l.space,placement:l.placement,compound:l.compound,significantFigures:l.significantFigures,nullDisplay:l.nullDisplay}}:typeof l.scale=="string"&&l.scale!==""?{kind:"temperature",opts:{scale:l.scale,display:l.display,decimals:l.decimals,minDecimals:l.minDecimals,maxDecimals:l.maxDecimals,space:l.space,locale:d.locale||l.locale,nullDisplay:l.nullDisplay}}:null}U("number",{kind:"field",build(d,l){const s=l.doc;a(s);const r=d.props&&d.props.format&&(typeof d.props.format=="object"||typeof d.props.format=="string")?d.props.format:null,i=d.locale||void 0,B=r?L(r,i):null,z=typeof l.t=="function"?l.t:re,W=o(d),b=S(d.step),J=S(d.min),Q=S(d.max);let ne="";if(W&&W.kind==="unit"){const ee=T(W.opts.system,W.opts.unit);ne=ee?ee.symbol:String(W.opts.unit||"")}else if(W&&W.kind==="temperature"){const ee=x(W.opts.scale);ne=ee?ee.scale.symbol:""}const Z=s.createElement("input");Z.type="text",Z.inputMode="decimal",Z.className="lat-form__number",d.name&&(Z.name=d.name),d.placeholder!=null&&(Z.placeholder=String(d.placeholder));const Y={input:Z,format:B,t:z,locale:i,step:b,min:J,max:Q,unit:W,unitSymbol:ne,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},Ne=()=>Y.displayUnit!=null?{...W.opts,display:Y.displayUnit}:W.opts,ve=ee=>Y.unit&&Y.unit.kind==="unit"?H(ee,Ne()):Y.unit&&Y.unit.kind==="temperature"?h(ee,Y.unit.opts):Y.format&&Number.isFinite(ee)?Y.format(ee):_(ee),se=ee=>{if(!Y.unit)return E(ee,Y.locale);const P=ee==null?"":String(ee);if(P.trim()==="")return null;const N=Y.unit.kind==="temperature"?u(P,Y.unit.opts):A(P,Y.unit.opts);return N===null?Number.NaN:N},k=()=>Y.unit&&typeof Y.unit.opts.nullDisplay=="string"?Y.unit.opts.nullDisplay:"",I=ee=>{if(ee==null||ee===""){Y.value=null,Y.invalid=!1,Z.value=k();return}const P=typeof ee=="number"?ee:Number(ee);if(!Number.isFinite(P)){Y.value=null,Y.invalid=!1,Z.value=k();return}Y.value=P,Y.invalid=!1,Z.value=Y.focused?_(P):ve(P)},F=()=>{const ee=Z.value;ee===""?Z.removeAttribute("aria-valuetext"):Z.setAttribute("aria-valuetext",ee)},p=ee=>{const P=se(Z.value);let y=(P==null||Number.isNaN(P)?0:P)+ee;typeof J=="number"&&y<J&&(y=J),typeof Q=="number"&&y>Q&&(y=Q),Z.value=Y.unit&&!Y.focused?ve(y):_(y)},D=()=>{Y.focused=!0,Y.value!=null&&(Z.value=_(Y.value)),F()},G=()=>{Y.focused=!1;const ee=se(Z.value);ee==null?(Y.value=null,Y.invalid=!1,Z.value=k()):Number.isNaN(ee)?(Y.invalid=!0,Y.value!=null?Z.value=ve(Y.value):Z.value=""):(Y.invalid=!1,Y.value=ee,Z.value=ve(ee)),F()},R=ee=>{if(ee.key!=="ArrowUp"&&ee.key!=="ArrowDown")return;typeof ee.preventDefault=="function"&&ee.preventDefault();const P=typeof b=="number"&&b>0?b:1;p(ee.key==="ArrowUp"?P:-P)};if(Z.addEventListener("focus",D),Z.addEventListener("blur",G),Z.addEventListener("keydown",R),Y.disposers.push(()=>Z.removeEventListener("focus",D),()=>Z.removeEventListener("blur",G),()=>Z.removeEventListener("keydown",R)),I(d.value),typeof J=="number"&&Z.setAttribute("aria-valuemin",String(J)),typeof Q=="number"&&Z.setAttribute("aria-valuemax",String(Q)),F(),Z.__latNumber=Y,W&&W.kind==="unit"&&d.props&&d.props.unitPicker===!0){const ee=s.createElement("div");ee.className="lat-form__number-unit";const P=s.createElement("select");P.className="lat-form__number-unitpick",P.setAttribute("aria-label",z("form.number.unitPicker"));const N=v(W.opts.system);for(const V of N){const oe=s.createElement("option");oe.value=V.symbol,oe.textContent=V.symbol,P.appendChild(oe)}const y=W.opts.display&&W.opts.display!=="auto"?W.opts.display:ne,$=N.some(V=>V.symbol===y)?y:ne;P.value=$,Y.displayUnit=$;const w=()=>{Y.displayUnit=P.value,!Y.focused&&Y.value!=null&&(Z.value=ve(Y.value)),F()};return P.addEventListener("change",w),Y.disposers.push(()=>P.removeEventListener("change",w)),Y.picker=P,ee.appendChild(Z),ee.appendChild(P),ee.__latNumber=Y,ee}if(d.props&&d.props.spinner===!0){const ee=s.createElement("div");ee.className="lat-form__number-spinner";const P=($,w)=>{const V=s.createElement("button");return V.type="button",V.tabIndex=-1,V.className="lat-form__number-step",V.textContent=$,V.addEventListener("mousedown",oe=>{typeof oe.preventDefault=="function"&&oe.preventDefault();const ie=typeof b=="number"&&b>0?b:1;p(w*ie)}),V},N=P("−",-1),y=P("+",1);return Y.buttons=[N,y],ee.appendChild(N),ee.appendChild(Z),ee.appendChild(y),ee.__latNumber=Y,ee}return Z},read(d){const l=d&&d.__latNumber,s=l?l.input:d;if(l&&!l.focused)return l.unit&&l.invalid?Number.NaN:l.value;if(l&&l.unit){const r=s.value;if(String(r).trim()==="")return null;const i=l.unit.kind==="temperature"?u(r,l.unit.opts):A(r,l.unit.opts);return i===null?Number.NaN:i}return E(s.value,l?l.locale:void 0)},write(d,l){const s=d&&d.__latNumber,r=s?s.input:d,i=s&&s.unit&&typeof s.unit.opts.nullDisplay=="string"?s.unit.opts.nullDisplay:"";if(l==null||l===""){s&&(s.value=null,s.invalid=!1),r.value=i;return}const B=typeof l=="number"?l:Number(l);if(!Number.isFinite(B)){s&&(s.value=null,s.invalid=!1),r.value=i;return}s&&(s.value=B,s.invalid=!1),s&&s.focused?r.value=_(B):s&&s.unit?r.value=s.unit.kind==="unit"?H(B,s.displayUnit!=null?{...s.unit.opts,display:s.displayUnit}:s.unit.opts):h(B,s.unit.opts):s&&s.format?r.value=s.format(B):r.value=_(B),r.value===""?r.removeAttribute("aria-valuetext"):r.setAttribute("aria-valuetext",r.value)},state(d,l){const s=d&&d.__latNumber,r=s?s.input:d;r.disabled=l.disabled===!0,r.readOnly=l.readOnly===!0;const i=l.disabled===!0||l.readOnly===!0;for(const B of s?s.buttons:[])B.disabled=i;s&&s.picker&&(s.picker.disabled=i)},validate(d,l,s){const r=d&&d.__latNumber,i=r&&r.t?r.t:re;if(s==null||s==="")return null;if(typeof s!="number"||Number.isNaN(s))return r&&r.unit?i("form.validation.unit",{unit:r.unitSymbol}):i("form.validation.number");const B=z=>r&&r.unit&&r.unit.kind==="unit"?H(z,{...r.unit.opts,display:r.unit.opts.unit,group:!0}):r&&r.unit&&r.unit.kind==="temperature"?h(z,r.unit.opts):String(z);if(r&&typeof r.min=="number"&&s<r.min)return i("form.validation.min",{min:B(r.min)});if(r&&typeof r.max=="number"&&s>r.max)return i("form.validation.max",{max:B(r.max)});if(r&&typeof r.step=="number"&&r.step>0){const z=typeof r.min=="number"?r.min:0,W=(s-z)/r.step;if(Math.abs(W-Math.round(W))>1e-9)return i("form.validation.step",{step:String(r.step)})}return null},focus(d){const l=c(d);typeof l.focus=="function"&&l.focus()},blur(d){const l=c(d);typeof l.blur=="function"&&l.blur()},destroy(d){const l=d&&d.__latNumber;if(l)for(const s of l.disposers.splice(0))s()}})}),je("packages/modules/form/controls/textarea.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl;U("textarea",{kind:"field",build(O,re){const g=re.doc.createElement("textarea");return O.name&&(g.name=O.name),O.placeholder!=null&&(g.placeholder=String(O.placeholder)),O.rows!=null&&(g.rows=Number(O.rows)||2),g.value=O.value==null?"":String(O.value),g},read(O){return O.value},write(O,re){O.value=re==null?"":String(re)},state(O,re){O.disabled=re.disabled===!0,O.readOnly=re.readOnly===!0}})}),je("packages/modules/form/controls/checkbox.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/state.js"),re=O.applyBooleanInputState,g=O.guardBooleanInput;U("checkbox",{kind:"toggle",build(L,C){const A=C.doc.createElement("input");return A.type="checkbox",L.name&&(A.name=L.name),A.checked=L.value===!0,g(A),A},read(L){return L.checked},write(L,C){L.checked=C===!0},state(L,C){re(L,C.disabled===!0,C.readOnly===!0)}})}),je("packages/modules/form/controls/button.js",function(M,X){"use strict";Object.defineProperty(M,"injectButtonStyles",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"buttonItemFrom",{enumerable:!0,get:function(){return o}}),Object.defineProperty(M,"buildButton",{enumerable:!0,get:function(){return d}});const U=X("packages/modules/form/controls/registry.js").registerControl,O="lat-button",re="data-lattice-button-styles",g="http://www.w3.org/2000/svg",L=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"}}),C=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),A=Object.freeze(["sm","md","lg"]),H=Object.freeze(["button","submit","reset"]);function T(){const l=`
1328
+ `.trim()}function o(l){const a=l&&l.documentElement;if(!a||a.getAttribute(t))return;a.setAttribute(t,"1");const i=l.createElement("style");i.textContent=r(),(l.head||l.body||a).appendChild(i)}function p(l){let a="",i=".";try{for(const n of new Intl.NumberFormat(l||void 0).formatToParts(12345.6))n.type==="group"?a=n.value:n.type==="decimal"&&(i=n.value)}catch{}return{group:a,decimal:i}}function A(l,a){if(l==null)return null;let i=String(l).trim();if(i==="")return null;const{group:n,decimal:s}=p(a);let I=!1;if(/^\(.*\)$/.test(i)&&(I=!0,i=i.slice(1,-1)),i=i.replace(/[\s   ]/g,""),n&&n!=="."&&(i=i.split(n).join("")),i=i.replace(/[^0-9eE+\-.,]/g,""),s===","?(i=i.split(".").join(""),i=i.replace(",",".")):i=i.split(",").join(""),i===""||i==="-"||i==="+")return NaN;i.startsWith("-")&&(I=!I,i=i.slice(1));const z=Number(i);return Number.isFinite(z)?I?-z:z:NaN}function g(l){if(l==null||l==="")return"";const a=typeof l=="number"?l:Number(l);return Number.isFinite(a)?String(a):""}function h(l){return l&&l.__latNumber?l.__latNumber.input:l}function T(l){if(typeof l=="number")return Number.isFinite(l)?l:null;if(l==null||l==="")return null;const a=Number(l);return Number.isFinite(a)?a:null}function c(l){const a=l&&l.props||{};return typeof a.system=="string"&&a.system!==""?{kind:"unit",opts:{system:a.system,unit:a.unit,binary:a.binary===!0,decimals:a.decimals,minDecimals:a.minDecimals,maxDecimals:a.maxDecimals,display:a.display,locale:l.locale||a.locale,group:a.group,space:a.space,placement:a.placement,compound:a.compound,significantFigures:a.significantFigures,nullDisplay:a.nullDisplay}}:typeof a.scale=="string"&&a.scale!==""?{kind:"temperature",opts:{scale:a.scale,display:a.display,decimals:a.decimals,minDecimals:a.minDecimals,maxDecimals:a.maxDecimals,space:a.space,locale:l.locale||a.locale,nullDisplay:a.nullDisplay}}:null}U("number",{kind:"field",build(l,a){const i=a.doc;o(i);const n=l.props&&l.props.format&&(typeof l.props.format=="object"||typeof l.props.format=="string")?l.props.format:null,s=l.locale||void 0,I=n?N(n,s):null,z=typeof a.t=="function"?a.t:Q,Y=c(l),B=T(l.step),ee=T(l.min),oe=T(l.max);let H="";if(Y&&Y.kind==="unit"){const te=O(Y.opts.system,Y.opts.unit);H=te?te.symbol:String(Y.opts.unit||"")}else if(Y&&Y.kind==="temperature"){const te=_(Y.opts.scale);H=te?te.scale.symbol:""}const Z=i.createElement("input");Z.type="text",Z.inputMode="decimal",Z.className="lat-form__number",l.name&&(Z.name=l.name),l.placeholder!=null&&(Z.placeholder=String(l.placeholder));const G={input:Z,format:I,t:z,locale:s,step:B,min:ee,max:oe,unit:Y,unitSymbol:H,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},ge=()=>G.displayUnit!=null?{...Y.opts,display:G.displayUnit}:Y.opts,ye=te=>G.unit&&G.unit.kind==="unit"?F(te,ge()):G.unit&&G.unit.kind==="temperature"?d(te,G.unit.opts):G.format&&Number.isFinite(te)?G.format(te):g(te),le=te=>{if(!G.unit)return A(te,G.locale);const re=te==null?"":String(te);if(re.trim()==="")return null;const j=G.unit.kind==="temperature"?u(re,G.unit.opts):C(re,G.unit.opts);return j===null?Number.NaN:j},w=()=>G.unit&&typeof G.unit.opts.nullDisplay=="string"?G.unit.opts.nullDisplay:"",M=te=>{if(te==null||te===""){G.value=null,G.invalid=!1,Z.value=w();return}const re=typeof te=="number"?te:Number(te);if(!Number.isFinite(re)){G.value=null,G.invalid=!1,Z.value=w();return}G.value=re,G.invalid=!1,Z.value=G.focused?g(re):ye(re)},D=()=>{const te=Z.value;te===""?Z.removeAttribute("aria-valuetext"):Z.setAttribute("aria-valuetext",te)},m=te=>{const re=le(Z.value);let x=(re==null||Number.isNaN(re)?0:re)+te;typeof ee=="number"&&x<ee&&(x=ee),typeof oe=="number"&&x>oe&&(x=oe),Z.value=G.unit&&!G.focused?ye(x):g(x)},P=()=>{G.focused=!0,G.value!=null&&(Z.value=g(G.value)),D()},X=()=>{G.focused=!1;const te=le(Z.value);te==null?(G.value=null,G.invalid=!1,Z.value=w()):Number.isNaN(te)?(G.invalid=!0,G.value!=null?Z.value=ye(G.value):Z.value=""):(G.invalid=!1,G.value=te,Z.value=ye(te)),D()},L=te=>{if(te.key!=="ArrowUp"&&te.key!=="ArrowDown")return;typeof te.preventDefault=="function"&&te.preventDefault();const re=typeof B=="number"&&B>0?B:1;m(te.key==="ArrowUp"?re:-re)};if(Z.addEventListener("focus",P),Z.addEventListener("blur",X),Z.addEventListener("keydown",L),G.disposers.push(()=>Z.removeEventListener("focus",P),()=>Z.removeEventListener("blur",X),()=>Z.removeEventListener("keydown",L)),M(l.value),typeof ee=="number"&&Z.setAttribute("aria-valuemin",String(ee)),typeof oe=="number"&&Z.setAttribute("aria-valuemax",String(oe)),D(),Z.__latNumber=G,Y&&Y.kind==="unit"&&l.props&&l.props.unitPicker===!0){const te=i.createElement("div");te.className="lat-form__number-unit";const re=i.createElement("select");re.className="lat-form__number-unitpick",re.setAttribute("aria-label",z("form.number.unitPicker"));const j=v(Y.opts.system);for(const E of j){const W=i.createElement("option");W.value=E.symbol,W.textContent=E.symbol,re.appendChild(W)}const x=Y.opts.display&&Y.opts.display!=="auto"?Y.opts.display:H,K=j.some(E=>E.symbol===x)?x:H;re.value=K,G.displayUnit=K;const V=()=>{G.displayUnit=re.value,!G.focused&&G.value!=null&&(Z.value=ye(G.value)),D()};return re.addEventListener("change",V),G.disposers.push(()=>re.removeEventListener("change",V)),G.picker=re,te.appendChild(Z),te.appendChild(re),te.__latNumber=G,te}if(l.props&&l.props.spinner===!0){const te=i.createElement("div");te.className="lat-form__number-spinner";const re=(K,V)=>{const E=i.createElement("button");return E.type="button",E.tabIndex=-1,E.className="lat-form__number-step",E.textContent=K,E.addEventListener("mousedown",W=>{typeof W.preventDefault=="function"&&W.preventDefault();const R=typeof B=="number"&&B>0?B:1;m(V*R)}),E},j=re("−",-1),x=re("+",1);return G.buttons=[j,x],te.appendChild(j),te.appendChild(Z),te.appendChild(x),te.__latNumber=G,te}return Z},read(l){const a=l&&l.__latNumber,i=a?a.input:l;if(a&&!a.focused)return a.unit&&a.invalid?Number.NaN:a.value;if(a&&a.unit){const n=i.value;if(String(n).trim()==="")return null;const s=a.unit.kind==="temperature"?u(n,a.unit.opts):C(n,a.unit.opts);return s===null?Number.NaN:s}return A(i.value,a?a.locale:void 0)},write(l,a){const i=l&&l.__latNumber,n=i?i.input:l,s=i&&i.unit&&typeof i.unit.opts.nullDisplay=="string"?i.unit.opts.nullDisplay:"";if(a==null||a===""){i&&(i.value=null,i.invalid=!1),n.value=s;return}const I=typeof a=="number"?a:Number(a);if(!Number.isFinite(I)){i&&(i.value=null,i.invalid=!1),n.value=s;return}i&&(i.value=I,i.invalid=!1),i&&i.focused?n.value=g(I):i&&i.unit?n.value=i.unit.kind==="unit"?F(I,i.displayUnit!=null?{...i.unit.opts,display:i.displayUnit}:i.unit.opts):d(I,i.unit.opts):i&&i.format?n.value=i.format(I):n.value=g(I),n.value===""?n.removeAttribute("aria-valuetext"):n.setAttribute("aria-valuetext",n.value)},state(l,a){const i=l&&l.__latNumber,n=i?i.input:l;n.disabled=a.disabled===!0,n.readOnly=a.readOnly===!0;const s=a.disabled===!0||a.readOnly===!0;for(const I of i?i.buttons:[])I.disabled=s;i&&i.picker&&(i.picker.disabled=s)},validate(l,a,i){const n=l&&l.__latNumber,s=n&&n.t?n.t:Q;if(i==null||i==="")return null;if(typeof i!="number"||Number.isNaN(i))return n&&n.unit?s("form.validation.unit",{unit:n.unitSymbol}):s("form.validation.number");const I=z=>n&&n.unit&&n.unit.kind==="unit"?F(z,{...n.unit.opts,display:n.unit.opts.unit,group:!0}):n&&n.unit&&n.unit.kind==="temperature"?d(z,n.unit.opts):String(z);if(n&&typeof n.min=="number"&&i<n.min)return s("form.validation.min",{min:I(n.min)});if(n&&typeof n.max=="number"&&i>n.max)return s("form.validation.max",{max:I(n.max)});if(n&&typeof n.step=="number"&&n.step>0){const z=typeof n.min=="number"?n.min:0,Y=(i-z)/n.step;if(Math.abs(Y-Math.round(Y))>1e-9)return s("form.validation.step",{step:String(n.step)})}return null},focus(l){const a=h(l);typeof a.focus=="function"&&a.focus()},blur(l){const a=h(l);typeof a.blur=="function"&&a.blur()},destroy(l){const a=l&&l.__latNumber;if(a)for(const i of a.disposers.splice(0))i()}})}),Ne("packages/modules/form/controls/textarea.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl;U("textarea",{kind:"field",build($,Q){const b=Q.doc.createElement("textarea");return $.name&&(b.name=$.name),$.placeholder!=null&&(b.placeholder=String($.placeholder)),$.rows!=null&&(b.rows=Number($.rows)||2),b.value=$.value==null?"":String($.value),b},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(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/state.js"),Q=$.applyBooleanInputState,b=$.guardBooleanInput;U("checkbox",{kind:"toggle",build(N,y){const C=y.doc.createElement("input");return C.type="checkbox",N.name&&(C.name=N.name),C.checked=N.value===!0,b(C),C},read(N){return N.checked},write(N,y){N.checked=y===!0},state(N,y){Q(N,y.disabled===!0,y.readOnly===!0)}})}),Ne("packages/modules/form/controls/button.js",function(S,q){"use strict";Object.defineProperty(S,"injectButtonStyles",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"buttonItemFrom",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"buildButton",{enumerable:!0,get:function(){return l}});const U=q("packages/modules/form/controls/registry.js").registerControl,$="lat-button",Q="data-lattice-button-styles",b="http://www.w3.org/2000/svg",N=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"}}),y=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),C=Object.freeze(["sm","md","lg"]),F=Object.freeze(["button","submit","reset"]);function O(){const a=`
1312
1329
  .lat-form{
1313
1330
  --lattice-button-primary-bg:var(--lattice-accent);
1314
1331
  --lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
@@ -1369,18 +1386,18 @@
1369
1386
  --lattice-button-danger-border-disabled:var(--lattice-button-danger-bg-disabled);
1370
1387
  --lattice-button-danger-text:var(--lattice-background);
1371
1388
  --lattice-button-danger-text-disabled:var(--lattice-foreground-muted);
1372
- }`,s=C.map(r=>`
1373
- .lat-form__control .${O}[data-variant='${r}']{ background:var(--lattice-button-${r}-bg); border-color:var(--lattice-button-${r}-border); color:var(--lattice-button-${r}-text); }
1374
- .lat-form__control .${O}[data-variant='${r}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${r}-bg-hover); }
1375
- .lat-form__control .${O}[data-variant='${r}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${r}-bg-active); }
1376
- .lat-form__control .${O}[data-variant='${r}'][aria-pressed='true']{ background:var(--lattice-button-${r}-bg-toggled); }
1377
- .lat-form__control .${O}[data-variant='${r}']:disabled:not([aria-busy='true']),
1378
- .lat-form__control .${O}[data-variant='${r}'][aria-disabled='true']:not([aria-busy='true']){
1379
- background:var(--lattice-button-${r}-bg-disabled); border-color:var(--lattice-button-${r}-border-disabled); color:var(--lattice-button-${r}-text-disabled); cursor:not-allowed; opacity:1;
1389
+ }`,i=y.map(n=>`
1390
+ .lat-form__control .${$}[data-variant='${n}']{ background:var(--lattice-button-${n}-bg); border-color:var(--lattice-button-${n}-border); color:var(--lattice-button-${n}-text); }
1391
+ .lat-form__control .${$}[data-variant='${n}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${n}-bg-hover); }
1392
+ .lat-form__control .${$}[data-variant='${n}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${n}-bg-active); }
1393
+ .lat-form__control .${$}[data-variant='${n}'][aria-pressed='true']{ background:var(--lattice-button-${n}-bg-toggled); }
1394
+ .lat-form__control .${$}[data-variant='${n}']:disabled:not([aria-busy='true']),
1395
+ .lat-form__control .${$}[data-variant='${n}'][aria-disabled='true']:not([aria-busy='true']){
1396
+ background:var(--lattice-button-${n}-bg-disabled); border-color:var(--lattice-button-${n}-border-disabled); color:var(--lattice-button-${n}-text-disabled); cursor:not-allowed; opacity:1;
1380
1397
  }`).join(`
1381
1398
  `);return`
1382
- .lat-form__control .${O},
1383
- .lat-form__control a.${O}{
1399
+ .lat-form__control .${$},
1400
+ .lat-form__control a.${$}{
1384
1401
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
1385
1402
  /* The icon-text gap: about 0.5em at standard density (about 6.5px), and it
1386
1403
  follows the density-scaled font size up and down. An icon-only button has a
@@ -1394,34 +1411,34 @@
1394
1411
  background:transparent;color:var(--lattice-foreground);
1395
1412
  font:inherit;line-height:1.2;text-decoration:none;cursor:pointer;
1396
1413
  }
1397
- .lat-form__control .${O}[data-size='sm']{ --lat-btn-h:calc(var(--lattice-row-height) * 0.8); font-size:calc(var(--lattice-font-size) - 1px); }
1398
- .lat-form__control .${O}[data-size='lg']{ --lat-btn-h:calc(var(--lattice-row-height) * 1.3); }
1399
- .lat-form__control .${O}[data-full='true']{ width:100%; }
1400
- .lat-form__control .${O}[data-icon-only='true']{ width:var(--lat-btn-h); padding:0; }
1401
- .lat-form__control .${O}[data-text-transform='uppercase']{ text-transform:uppercase; }
1402
- .lat-form__control .${O} svg,
1403
- .lat-form__control .${O} img{
1414
+ .lat-form__control .${$}[data-size='sm']{ --lat-btn-h:calc(var(--lattice-row-height) * 0.8); font-size:calc(var(--lattice-font-size) - 1px); }
1415
+ .lat-form__control .${$}[data-size='lg']{ --lat-btn-h:calc(var(--lattice-row-height) * 1.3); }
1416
+ .lat-form__control .${$}[data-full='true']{ width:100%; }
1417
+ .lat-form__control .${$}[data-icon-only='true']{ width:var(--lat-btn-h); padding:0; }
1418
+ .lat-form__control .${$}[data-text-transform='uppercase']{ text-transform:uppercase; }
1419
+ .lat-form__control .${$} svg,
1420
+ .lat-form__control .${$} img{
1404
1421
  width:var(--lattice-control-size);height:var(--lattice-control-size);flex:0 0 auto;display:block;
1405
1422
  }
1406
- .lat-form__control .${O} img{ object-fit:contain; }
1407
- .lat-form__control .${O} .${O}__spinner{ animation:${O}-spin .8s linear infinite; }
1408
- @keyframes ${O}-spin{ to{ transform:rotate(360deg); } }
1409
- @media (prefers-reduced-motion: reduce){ .lat-form__control .${O} .${O}__spinner{ animation:none; } }
1423
+ .lat-form__control .${$} img{ object-fit:contain; }
1424
+ .lat-form__control .${$} .${$}__spinner{ animation:${$}-spin .8s linear infinite; }
1425
+ @keyframes ${$}-spin{ to{ transform:rotate(360deg); } }
1426
+ @media (prefers-reduced-motion: reduce){ .lat-form__control .${$} .${$}__spinner{ animation:none; } }
1410
1427
 
1411
- ${l}
1412
- ${s}
1428
+ ${a}
1429
+ ${i}
1413
1430
 
1414
- .lat-form__control .${O}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1415
- .lat-form__control .${O}[aria-busy='true']{ cursor:default; pointer-events:none; }
1416
- `.trim()}function v(l){const s=l&&l.documentElement;if(!s||s.getAttribute(re))return;s.setAttribute(re,"1");const r=l.createElement("style");r.textContent=T(),(l.head||l.body||s).appendChild(r)}function f(l){return C.includes(l)?l:"secondary"}function u(l){return A.includes(l)?l:"md"}function h(l){return H.includes(l)?l:"button"}function x(l){return l==="end"?"end":"start"}function t(l){return l==="uppercase"?"uppercase":"none"}function n(l){const s=l.props&&l.props.href;return typeof s=="string"&&s!==""}function a(l,s){const r=l.createElementNS(g,"svg");r.setAttribute("viewBox",s.viewBox),r.setAttribute("focusable","false"),r.setAttribute("aria-hidden","true"),s.paint==="stroke"?(r.setAttribute("fill","none"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-width","1.5"),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round")):r.setAttribute("fill","currentColor");for(const i of s.paths){const B=l.createElementNS(g,"path");B.setAttribute("d",i),r.appendChild(B)}return r}function m(l,s){if(l==null)return null;if(typeof l=="object"&&l.nodeType)return l;if(typeof l!="string"||l==="")return null;const r=l;if(/^(https?:)?\/\//i.test(r)||/^data:/i.test(r)){const B=s.createElement("img");return B.src=r,B.alt="",B}const i=L[r];return i?a(s,i):null}function E(l){const s=l.createElementNS(g,"svg");s.setAttribute("viewBox","0 0 16 16"),s.setAttribute("focusable","false"),s.setAttribute("aria-hidden","true"),s.setAttribute("class",`${O}__spinner`);const r=l.createElementNS(g,"circle");return r.setAttribute("cx","8"),r.setAttribute("cy","8"),r.setAttribute("r","6"),r.setAttribute("fill","none"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-width","2"),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-dasharray","28"),r.setAttribute("stroke-dashoffset","10"),s.appendChild(r),s}function _(l,s,r){const i=s&&s.defaultView,B=i&&i.CustomEvent,z=B?new B("submit",{bubbles:!0,detail:{values:r}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:r},preventDefault(){this.defaultPrevented=!0}};l.dispatchEvent(z)}function c(l){const s=l.loading===!0,r=l.disabled===!0&&l.focusableWhenDisabled!==!0||s;l.el.disabled=r,l.el.setAttribute("aria-disabled",l.disabled===!0||s?"true":"false")}function S(l,s){l.loading=s===!0,l.el.setAttribute("aria-busy",l.loading?"true":"false"),c(l);const r=l.iconSlot;if(!r)return;for(;r.firstChild;)r.removeChild(r.firstChild);const i=l.loading?E(l.doc):l.iconEl;i?(r.appendChild(i),r.parentNode||(l.position==="end"?l.el.appendChild(r):l.el.insertBefore(r,l.el.firstChild))):r.parentNode&&r.parentNode.removeChild(r)}function o(l){return{kind:"item",type:"button",name:l.name!=null&&l.name!==""?String(l.name):null,label:l.label,disabled:l.disabled===!0,props:{icon:l.icon,iconPosition:l.iconPosition,variant:l.variant,fullWidth:l.fullWidth,size:l.size,textTransform:l.textTransform,buttonType:l.buttonType,loading:l.loading,href:l.href,ariaLabel:l.ariaLabel,toggle:l.toggle,focusableWhenDisabled:l.focusableWhenDisabled}}}function d(l,s){const r=s.doc,i=l.props||{},B=l.label!=null?String(l.label):"",z=m(i.icon,r),W=z!=null&&B==="",b=n(l)?r.createElement("a"):r.createElement("button");b.className=O,b.setAttribute("data-variant",f(i.variant)),b.setAttribute("data-size",u(i.size)),b.setAttribute("data-text-transform",t(i.textTransform)),i.fullWidth===!0&&b.setAttribute("data-full","true"),W&&b.setAttribute("data-icon-only","true"),l.name&&!n(l)&&(b.name=l.name),n(l)?b.setAttribute("href",i.href):b.type="button";const J=i.ariaLabel!=null?String(i.ariaLabel):W?String(l.name||""):"";J&&b.setAttribute("aria-label",J);const Q=r.createElement("span");Q.className=`${O}__icon`,Q.setAttribute("aria-hidden","true"),z&&Q.appendChild(z);let ne=null;W||(ne=r.createElement("span"),ne.className=`${O}__label`,ne.textContent=B!==""?B:String(l.name||""));const Z=x(i.iconPosition);Z==="end"?(ne&&b.appendChild(ne),Q.firstChild&&b.appendChild(Q)):(Q.firstChild&&b.appendChild(Q),ne&&b.appendChild(ne));const Y={el:b,doc:r,iconSlot:Q,iconEl:z,label:ne,position:Z,loading:!1,disabled:l.disabled===!0,toggle:i.toggle===!0,pressed:i.toggle===!0&&l.value===!0,focusableWhenDisabled:i.focusableWhenDisabled===!0};b.__latButton=Y,Y.toggle&&b.setAttribute("aria-pressed",Y.pressed?"true":"false");const Ne=()=>{if(Y.loading||Y.disabled)return;if(Y.toggle){const se=Y.pressed;Y.pressed=!Y.pressed,b.setAttribute("aria-pressed",Y.pressed?"true":"false"),s.emitter.emit("change",{name:l.name,value:Y.pressed,previousValue:se,item:l})}const ve=h(i.buttonType);ve==="submit"?(typeof s.form.validate!="function"||s.form.validate())&&_(s.el,r,typeof s.form.getValue=="function"?s.form.getValue():{}):ve==="reset"&&typeof s.form.clear=="function"&&s.form.clear()};return b.addEventListener("click",Ne),s.disposers.push(()=>b.removeEventListener("click",Ne)),S(Y,i.loading===!0),b}U("button",{kind:"button",action:!0,build(l,s){return v(s.doc),d(l,s)},read(l){const s=l&&l.__latButton;return s&&s.toggle?s.pressed:null},write(){},state(l,s){const r=l.__latButton;r&&(r.disabled=s.disabled===!0,c(r))},setLoading(l,s){const r=l.__latButton;r&&S(r,s)}})}),je("packages/modules/form/controls/buttons.js",function(M,X){"use strict";Object.defineProperty(M,"injectButtonsStyles",{enumerable:!0,get:function(){return v}});const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/button.js"),re=O.buildButton,g=O.buttonItemFrom,L=O.injectButtonStyles,C="lat-button-row",A="data-lattice-button-row-styles",H=Object.freeze(["start","end","center","stretch","space-between"]);function T(){return`
1417
- .lat-form__control .${C}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
1418
- .lat-form__control .${C}[data-align='start']{ justify-content:flex-start; }
1419
- .lat-form__control .${C}[data-align='end']{ justify-content:flex-end; }
1420
- .lat-form__control .${C}[data-align='center']{ justify-content:center; }
1421
- .lat-form__control .${C}[data-align='space-between']{ justify-content:space-between; }
1422
- .lat-form__control .${C}[data-align='stretch']{ justify-content:flex-start; }
1423
- .lat-form__control .${C}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
1424
- `.trim()}function v(u){const h=u&&u.documentElement;if(!h||h.getAttribute(A))return;h.setAttribute(A,"1");const x=u.createElement("style");x.textContent=T(),(u.head||u.body||h).appendChild(x)}function f(u){return H.includes(u)?u:"start"}U("buttons",{kind:"display",action:!0,build(u,h){L(h.doc),v(h.doc);const x=u.props||{},t=Array.isArray(x.buttons)?x.buttons:Array.isArray(x.items)?x.items:[],n=h.doc.createElement("div");n.className=C,n.setAttribute("data-align",f(x.align));const a=[];return t.forEach((m,E)=>{if(m==null||typeof m!="object")return;const _=g(m),c=re(_,h),S=()=>{c.disabled||c.getAttribute("aria-disabled")==="true"||h.emitter.emit("click",{name:_.name,item:_,value:null})};c.addEventListener("click",S),a.push(()=>c.removeEventListener("click",S)),n.appendChild(c)}),h.disposers.push(()=>{for(const m of a)m()}),n},read(){return null},write(){},state(){}})}),je("packages/modules/form/controls/text.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl;U("text",{kind:"display",build(O,re){const g=re.doc.createElement("span");return g.className="lat-form__text",g.textContent=O.value==null?"":String(O.value),g},read(O){return O.textContent},write(O,re){O.textContent=re==null?"":String(re)},state(){}})}),je("packages/modules/form/controls/select.js",function(M,X){"use strict";Object.defineProperty(M,"createSelect",{enumerable:!0,get:function(){return E}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,g=X("packages/modules/form/controls/combo.js"),L=g.renderAdornment,C=g.renderTemplateContent,A=g.injectAdornmentStyles,H=X("packages/modules/form/controls/field-icon.js"),T=H.makeFieldIcon,v=H.injectFieldIconStyles,f=700;function u(c,S){const o=c&&c.defaultView;return o&&o.Event?new o.Event(S,{bubbles:!0}):{type:S,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function h(c){return c!=null&&typeof c=="object"?c.value==null?"":String(c.value):c==null?"":String(c)}function x(c){return c==null?"":typeof c!="object"?String(c):c.label!=null?String(c.label):c.text!=null?String(c.text):c.value==null?"":String(c.value)}function t(c){return c!=null&&typeof c=="object"&&Array.isArray(c.options)}function n(c){const S=[];if(!Array.isArray(c))return S;for(const o of c)if(t(o)){const d=x(o);S.push({group:!0,label:d});for(const l of o.options)if(t(l)){S.push({group:!0,label:x(l)});for(const s of l.options)S.push(a(s))}else S.push(a(l))}else S.push(a(o));return S}function a(c){const S=c!=null&&typeof c=="object"?c:{},o=S.description!=null?String(S.description):S.subtitle!=null?String(S.subtitle):null;return{group:!1,value:h(c),label:x(c),icon:S.icon,avatar:S.avatar,color:S.color,dot:S.dot,description:o,disabled:S.disabled===!0}}function m(c,S){return c===S?!0:c!=null&&S!=null&&String(c)===String(S)}function E(c,S={}){const o=S.doc||c&&c.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;o&&(A(o),v(o));const d=typeof S.t=="function"?S.t:re,l=S.multiple===!0,s=n(S.options),r=s.filter(q=>!q.group);let i=[];const B=o.createElement("div");B.className="lat-combo lat-select",l&&B.setAttribute("data-multiple","true");const z=o.createElement("button");z.type="button",z.className="lat-select__trigger",z.setAttribute("role","combobox"),z.setAttribute("aria-haspopup","listbox"),z.setAttribute("aria-expanded","false"),l&&z.setAttribute("aria-multiselectable","true"),z.setAttribute("aria-label",S.ariaLabel||d("form.select.toggle"));const W=o.createElement("span");W.className="lat-select__value";const b=o.createElement("span");b.className="lat-select__arrow",b.setAttribute("aria-hidden","true");const J=T(o,"chevronDown");J&&b.appendChild(J),z.appendChild(W),z.appendChild(b);const Q=o.createElement("div");Q.className="lat-combo__popup lat-select__popup",Q.hidden=!0;const ne=o.createElement("div");ne.className="lat-combo__list lat-select__list",ne.setAttribute("role","listbox"),Q.appendChild(ne),B.appendChild(z),B.appendChild(Q);const Z=`lat-select-lb-${p()}`;ne.id=Z,z.setAttribute("aria-controls",Z);const Y=[];let Ne=-1,ve=!1,se="",k=null;const I=[];let F=!1;function p(){return p.n=(p.n||0)+1,p.n}function D(q,$e,he){q.addEventListener($e,he),I.push(()=>q.removeEventListener($e,he))}function G(q){return r.find($e=>m($e.value,q))||null}function R(){c.dispatchEvent(u(o,"change"))}function ee(){return l?i.slice():i.length?i[0]:""}function P(){if(!l){for(;W.firstChild;)W.removeChild(W.firstChild);if(i.length){const q=G(i[0]),$e=C(o,q,S.selectedTemplate);if($e)W.appendChild($e);else{const he=L(o,q);he&&W.appendChild(he);const Me=o.createElement("span");Me.className="lat-select__label",Me.textContent=q?q.label:i[0],W.appendChild(Me)}W.removeAttribute("data-placeholder")}else W.textContent=S.placeholder!=null?String(S.placeholder):"",W.setAttribute("data-placeholder","true");return}i.length===0?(W.textContent=S.placeholder!=null?String(S.placeholder):"",W.setAttribute("data-placeholder","true")):(W.textContent=i.map(q=>{const $e=G(q);return $e?$e.label:q}).join(", "),W.removeAttribute("data-placeholder"))}function N(q){let $e;if(l)$e=Array.isArray(q)?q.map(String):q==null||q===""?[]:[String(q)];else{const he=Array.isArray(q)?q.length?q[0]:null:q;$e=he==null||he===""?[]:[String(he)]}i=$e.filter(he=>r.some(Me=>Me.value===he)),P(),y()}function y(){for(const q of Y){const $e=q.dataset.value||"",he=i.some(Fe=>Fe===$e);q.setAttribute("aria-selected",he?"true":"false");const Me=q.querySelector(".lat-select__check");Me&&(Me.textContent=he?"✓":"")}}function $(q){for(let $e=Math.max(0,q);$e<r.length;$e++)if(!r[$e].disabled)return $e;return-1}function w(q){for(let $e=Math.min(r.length-1,q);$e>=0;$e--)if(!r[$e].disabled)return $e;return-1}function V(q){Ne=q;for(const $e of Y)$e.classList.remove("lat-select__option--active");q>=0&&q<Y.length?(Y[q].classList.add("lat-select__option--active"),z.setAttribute("aria-activedescendant",Y[q].id)):z.removeAttribute("aria-activedescendant")}function oe(){if(Ne<0||Ne>=Y.length)return;const q=Y[Ne];q.offsetTop<ne.scrollTop?ne.scrollTop=q.offsetTop:q.offsetTop+q.offsetHeight>ne.scrollTop+ne.clientHeight&&(ne.scrollTop=q.offsetTop+q.offsetHeight-ne.clientHeight)}function ie(q){const $e=Ne<0?q>0?-1:r.length:Ne,he=q>0?$($e+1):w($e-1);he!==-1&&V(he),oe()}function _e(){if(ve||F||S.disabled)return;ve=!0,Q.hidden=!1,z.setAttribute("aria-expanded","true");const q=o&&o.defaultView,$e=z.getBoundingClientRect(),he=q?q.innerHeight:0,Me=Q.offsetHeight||ne.offsetHeight||0;if(he-$e.bottom<Me+4&&$e.top>Me+4?Q.classList.add("lat-select__popup--above"):Q.classList.remove("lat-select__popup--above"),Ne<0&&r.length){const fe=l?-1:i.length?r.findIndex(xe=>m(xe.value,i[0])):-1;V($(fe>=0?fe:0))}}function Oe(){ve&&(ve=!1,Q.hidden=!0,Q.classList.remove("lat-select__popup--above"),z.setAttribute("aria-expanded","false"),V(-1),se="")}function Se(){ve?Oe():_e()}function j(q){if(S.readOnly)return;if(!l){const he=i.length===0||i[0]!==q;i=[q],P(),y(),Oe(),he&&R();return}i=i.some(he=>he===q)?i.filter(he=>he!==q):[...i,q],P(),y(),z.focus(),R()}function te(){Ne<0||Ne>=r.length||r[Ne].disabled||j(r[Ne].value)}function ce(q){k&&clearTimeout(k),se+=q.toLowerCase(),k=setTimeout(()=>{se="",k=null},f),ve||_e();const $e=Ne>-1?Ne+1:0;let he=-1;for(let Me=$e;Me<r.length;Me++)if(!r[Me].disabled&&r[Me].label.toLowerCase().startsWith(se)){he=Me;break}if(he===-1){for(let Me=0;Me<$e;Me++)if(!r[Me].disabled&&r[Me].label.toLowerCase().startsWith(se)){he=Me;break}}he!==-1&&(V(he),oe())}function K(q){const $e=q.altKey===!0;if(q.key==="ArrowDown"||$e&&q.key==="ArrowDown")q.preventDefault(),ve?ie(1):(_e(),Ne===-1&&r.length&&V($(0)));else if(q.key==="ArrowUp")q.preventDefault(),ve?ie(-1):(_e(),r.length&&V(w(r.length-1)));else if(q.key==="Home"){if(!ve)return;q.preventDefault();const he=$(0);he!==-1&&V(he),oe()}else if(q.key==="End"){if(!ve)return;q.preventDefault();const he=w(r.length-1);he!==-1&&V(he),oe()}else q.key==="Enter"||q.key===" "?(q.preventDefault(),ve?te():_e()):q.key==="Escape"?ve&&(q.preventDefault(),Oe()):q.key==="Tab"?ve&&te():q.key.length===1&&!q.ctrlKey&&!q.metaKey&&!$e&&(q.preventDefault(),ce(q.key))}function de(q){q<0||q>=r.length||r[q].disabled||j(r[q].value)}function ue(q,$e){const he=o.createElement("div");if(he.className="lat-combo__option",he.setAttribute("role","option"),he.id=`${Z}-opt-${$e}`,he.setAttribute("data-value",q.value),he.setAttribute("aria-selected","false"),q.disabled&&(he.setAttribute("aria-disabled","true"),he.classList.add("lat-select__option--disabled")),l){const fe=o.createElement("span");fe.className="lat-select__check",fe.setAttribute("aria-hidden","true"),he.appendChild(fe)}const Me=C(o,q,S.optionTemplate);if(Me)he.appendChild(Me);else{const fe=L(o,q);fe&&he.appendChild(fe);const xe=o.createElement("span");xe.className="lat-combo__text";const Te=o.createElement("span");if(Te.className="lat-combo__title",Te.textContent=q.label,xe.appendChild(Te),q.description!=null){const Ue=o.createElement("span");Ue.className="lat-combo__subtitle",Ue.textContent=q.description,xe.appendChild(Ue)}he.appendChild(xe)}return D(he,"click",fe=>{fe.stopPropagation(),de($e)}),Y.push(he),he}function be(){let q=0,$e=0,he=null,Me=null;for(const Fe of s)if(Fe.group)he=o.createElement("div"),he.setAttribute("role","group"),Me=o.createElement("div"),Me.id=`${Z}-grp-${$e}`,Me.className="lat-select__group",Me.textContent=Fe.label||"",he.setAttribute("aria-labelledby",Me.id),he.appendChild(Me),ne.appendChild(he),$e+=1;else{const fe=ue(Fe,q);q+=1,he?he.appendChild(fe):ne.appendChild(fe)}}const Ce=()=>{S.disabled||Se()},Ae=()=>{c.dispatchEvent(u(o,"focus"))},ye=()=>{c.dispatchEvent(u(o,"blur")),Oe()},me=q=>{B.contains(q.target)||Oe()};D(z,"click",Ce),D(z,"keydown",K),D(z,"focus",Ae),D(z,"blur",ye),D(ne,"mousedown",q=>q.preventDefault()),o&&D(o,"mousedown",me),be(),N(S.value);const we={el:c,root:B,trigger:z,getValue:ee,setValue(q){return N(q),we},open(){return _e(),we},close(){return Oe(),we},focus(){return z.focus(),we},blur(){return z.blur(),we},setDisabled(q){S.disabled=q,z.disabled=q,q&&Oe()},setReadOnly(q){S.readOnly=q,q?z.setAttribute("aria-readonly","true"):z.removeAttribute("aria-readonly")},destroy(){F=!0,k&&clearTimeout(k);for(const q of I.splice(0))q();for(;B.firstChild;)B.removeChild(B.firstChild)}};return c.appendChild(B),c.__select=we,we}function _(c,S){const o=S.doc.createElement("select");c.name&&(o.name=c.name);const d=c.props&&c.props.multiple===!0;d&&(o.multiple=!0),o.__multiple=d;const l=n(c.options),s=l.filter(z=>!z.group),r=S.doc.createElement("option");r.value="",r.textContent=c.placeholder!=null?String(c.placeholder):"",d||o.appendChild(r);let i=null;for(const z of l)if(z.group)i=S.doc.createElement("optgroup"),i.label=z.label||"",o.appendChild(i);else{const W=S.doc.createElement("option");W.value=z.value,W.textContent=z.label,z.disabled&&(W.disabled=!0),(i||o).appendChild(W)}const B=c.value==null?"":String(c.value);if(!d)o.value=s.some(z=>z.value===B)?B:"";else{const z=Array.isArray(c.value)?c.value.map(String):[];for(const W of o.options)W.selected=z.includes(W.value)}return o.__select={getValue(){return d?[...o.selectedOptions].map(z=>z.value):o.value},setValue(z){if(!d){const b=z==null?"":String(z);o.value=s.some(J=>J.value===b)?b:"";return}const W=Array.isArray(z)?z.map(String):[];for(const b of o.options)b.selected=W.includes(b.value)},setDisabled(z){o.disabled=z},setReadOnly(z){z&&(o.disabled=!0)},focus(){o.focus()},blur(){o.blur()},destroy(){}},o}U("select",{kind:"field",build(c,S){const o=c.props||{};if(o.native===!0)return _(c,S);const d=S.doc.createElement("div");return E(d,{options:c.options,multiple:o.multiple===!0,value:c.value,placeholder:c.placeholder,ariaLabel:c.label,optionTemplate:o.optionTemplate,selectedTemplate:o.selectedTemplate,t:S.t,doc:S.doc}),S.disposers.push(()=>{d.__select&&d.__select.destroy()}),d},read(c){return c.__select?c.__select.getValue():""},write(c,S){c.__select&&c.__select.setValue(S)},state(c,S){c.__select&&(c.__select.setDisabled(S.disabled===!0),c.__select.setReadOnly(S.readOnly===!0))},focus(c){c.__select&&c.__select.focus()},blur(c){c.__select&&c.__select.blur()}})}),je("packages/modules/form/controls/listbox.js",function(M,X){"use strict";Object.defineProperty(M,"createListBox",{enumerable:!0,get:function(){return l}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,g=X("packages/modules/form/controls/combo.js"),L=g.renderAdornment,C=g.renderTemplateContent,A=g.injectAdornmentStyles,H="data-lattice-form-listbox-styles",T=30,v=46,f=48,u=250,h=700;function x(){return`
1431
+ .lat-form__control .${$}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1432
+ .lat-form__control .${$}[aria-busy='true']{ cursor:default; pointer-events:none; }
1433
+ `.trim()}function v(a){const i=a&&a.documentElement;if(!i||i.getAttribute(Q))return;i.setAttribute(Q,"1");const n=a.createElement("style");n.textContent=O(),(a.head||a.body||i).appendChild(n)}function f(a){return y.includes(a)?a:"secondary"}function u(a){return C.includes(a)?a:"md"}function d(a){return F.includes(a)?a:"button"}function _(a){return a==="end"?"end":"start"}function t(a){return a==="uppercase"?"uppercase":"none"}function r(a){const i=a.props&&a.props.href;return typeof i=="string"&&i!==""}function o(a,i){const n=a.createElementNS(b,"svg");n.setAttribute("viewBox",i.viewBox),n.setAttribute("focusable","false"),n.setAttribute("aria-hidden","true"),i.paint==="stroke"?(n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","1.5"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round")):n.setAttribute("fill","currentColor");for(const s of i.paths){const I=a.createElementNS(b,"path");I.setAttribute("d",s),n.appendChild(I)}return n}function p(a,i){if(a==null)return null;if(typeof a=="object"&&a.nodeType)return a;if(typeof a!="string"||a==="")return null;const n=a;if(/^(https?:)?\/\//i.test(n)||/^data:/i.test(n)){const I=i.createElement("img");return I.src=n,I.alt="",I}const s=N[n];return s?o(i,s):null}function A(a){const i=a.createElementNS(b,"svg");i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("focusable","false"),i.setAttribute("aria-hidden","true"),i.setAttribute("class",`${$}__spinner`);const n=a.createElementNS(b,"circle");return n.setAttribute("cx","8"),n.setAttribute("cy","8"),n.setAttribute("r","6"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","2"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-dasharray","28"),n.setAttribute("stroke-dashoffset","10"),i.appendChild(n),i}function g(a,i,n){const s=i&&i.defaultView,I=s&&s.CustomEvent,z=I?new I("submit",{bubbles:!0,detail:{values:n}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:n},preventDefault(){this.defaultPrevented=!0}};a.dispatchEvent(z)}function h(a){const i=a.loading===!0,n=a.disabled===!0&&a.focusableWhenDisabled!==!0||i;a.el.disabled=n,a.el.setAttribute("aria-disabled",a.disabled===!0||i?"true":"false")}function T(a,i){a.loading=i===!0,a.el.setAttribute("aria-busy",a.loading?"true":"false"),h(a);const n=a.iconSlot;if(!n)return;for(;n.firstChild;)n.removeChild(n.firstChild);const s=a.loading?A(a.doc):a.iconEl;s?(n.appendChild(s),n.parentNode||(a.position==="end"?a.el.appendChild(n):a.el.insertBefore(n,a.el.firstChild))):n.parentNode&&n.parentNode.removeChild(n)}function c(a){return{kind:"item",type:"button",name:a.name!=null&&a.name!==""?String(a.name):null,label:a.label,disabled:a.disabled===!0,props:{icon:a.icon,iconPosition:a.iconPosition,variant:a.variant,fullWidth:a.fullWidth,size:a.size,textTransform:a.textTransform,buttonType:a.buttonType,loading:a.loading,href:a.href,ariaLabel:a.ariaLabel,toggle:a.toggle,focusableWhenDisabled:a.focusableWhenDisabled}}}function l(a,i){const n=i.doc,s=a.props||{},I=a.label!=null?String(a.label):"",z=p(s.icon,n),Y=z!=null&&I==="",B=r(a)?n.createElement("a"):n.createElement("button");B.className=$,B.setAttribute("data-variant",f(s.variant)),B.setAttribute("data-size",u(s.size)),B.setAttribute("data-text-transform",t(s.textTransform)),s.fullWidth===!0&&B.setAttribute("data-full","true"),Y&&B.setAttribute("data-icon-only","true"),a.name&&!r(a)&&(B.name=a.name),r(a)?B.setAttribute("href",s.href):B.type="button";const ee=s.ariaLabel!=null?String(s.ariaLabel):Y?String(a.name||""):"";ee&&B.setAttribute("aria-label",ee);const oe=n.createElement("span");oe.className=`${$}__icon`,oe.setAttribute("aria-hidden","true"),z&&oe.appendChild(z);let H=null;Y||(H=n.createElement("span"),H.className=`${$}__label`,H.textContent=I!==""?I:String(a.name||""));const Z=_(s.iconPosition);Z==="end"?(H&&B.appendChild(H),oe.firstChild&&B.appendChild(oe)):(oe.firstChild&&B.appendChild(oe),H&&B.appendChild(H));const G={el:B,doc:n,iconSlot:oe,iconEl:z,label:H,position:Z,loading:!1,disabled:a.disabled===!0,toggle:s.toggle===!0,pressed:s.toggle===!0&&a.value===!0,focusableWhenDisabled:s.focusableWhenDisabled===!0};B.__latButton=G,G.toggle&&B.setAttribute("aria-pressed",G.pressed?"true":"false");const ge=()=>{if(G.loading||G.disabled)return;if(G.toggle){const le=G.pressed;G.pressed=!G.pressed,B.setAttribute("aria-pressed",G.pressed?"true":"false"),i.emitter.emit("change",{name:a.name,value:G.pressed,previousValue:le,item:a})}const ye=d(s.buttonType);ye==="submit"?(typeof i.form.validate!="function"||i.form.validate())&&g(i.el,n,typeof i.form.getValue=="function"?i.form.getValue():{}):ye==="reset"&&typeof i.form.clear=="function"&&i.form.clear()};return B.addEventListener("click",ge),i.disposers.push(()=>B.removeEventListener("click",ge)),T(G,s.loading===!0),B}U("button",{kind:"button",action:!0,build(a,i){return v(i.doc),l(a,i)},read(a){const i=a&&a.__latButton;return i&&i.toggle?i.pressed:null},write(){},state(a,i){const n=a.__latButton;n&&(n.disabled=i.disabled===!0,h(n))},setLoading(a,i){const n=a.__latButton;n&&T(n,i)}})}),Ne("packages/modules/form/controls/buttons.js",function(S,q){"use strict";Object.defineProperty(S,"injectButtonsStyles",{enumerable:!0,get:function(){return v}});const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/button.js"),Q=$.buildButton,b=$.buttonItemFrom,N=$.injectButtonStyles,y="lat-button-row",C="data-lattice-button-row-styles",F=Object.freeze(["start","end","center","stretch","space-between"]);function O(){return`
1434
+ .lat-form__control .${y}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
1435
+ .lat-form__control .${y}[data-align='start']{ justify-content:flex-start; }
1436
+ .lat-form__control .${y}[data-align='end']{ justify-content:flex-end; }
1437
+ .lat-form__control .${y}[data-align='center']{ justify-content:center; }
1438
+ .lat-form__control .${y}[data-align='space-between']{ justify-content:space-between; }
1439
+ .lat-form__control .${y}[data-align='stretch']{ justify-content:flex-start; }
1440
+ .lat-form__control .${y}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
1441
+ `.trim()}function v(u){const d=u&&u.documentElement;if(!d||d.getAttribute(C))return;d.setAttribute(C,"1");const _=u.createElement("style");_.textContent=O(),(u.head||u.body||d).appendChild(_)}function f(u){return F.includes(u)?u:"start"}U("buttons",{kind:"display",action:!0,build(u,d){N(d.doc),v(d.doc);const _=u.props||{},t=Array.isArray(_.buttons)?_.buttons:Array.isArray(_.items)?_.items:[],r=d.doc.createElement("div");r.className=y,r.setAttribute("data-align",f(_.align));const o=[];return t.forEach((p,A)=>{if(p==null||typeof p!="object")return;const g=b(p),h=Q(g,d),T=()=>{h.disabled||h.getAttribute("aria-disabled")==="true"||d.emitter.emit("click",{name:g.name,item:g,value:null})};h.addEventListener("click",T),o.push(()=>h.removeEventListener("click",T)),r.appendChild(h)}),d.disposers.push(()=>{for(const p of o)p()}),r},read(){return null},write(){},state(){}})}),Ne("packages/modules/form/controls/text.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl;U("text",{kind:"display",build($,Q){const b=Q.doc.createElement("span");return b.className="lat-form__text",b.textContent=$.value==null?"":String($.value),b},read($){return $.textContent},write($,Q){$.textContent=Q==null?"":String(Q)},state(){}})}),Ne("packages/modules/form/controls/select.js",function(S,q){"use strict";Object.defineProperty(S,"createSelect",{enumerable:!0,get:function(){return T}});const U=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,b=q("packages/modules/form/controls/combo.js"),N=b.renderAdornment,y=b.renderTemplateContent,C=b.injectAdornmentStyles,F=q("packages/modules/form/controls/field-icon.js"),O=F.makeFieldIcon,v=F.injectFieldIconStyles,u=q("packages/modules/form/controls/popup-layer.js").openInLayer,d="lat-select__popup--above",_=700;function t(l,a){const i=l&&l.defaultView;return i&&i.Event?new i.Event(a,{bubbles:!0}):{type:a,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function r(l){return l!=null&&typeof l=="object"?"value"in l?l.value:"":l??""}function o(l){return l==null?"":typeof l!="object"?String(l):l.label!=null?String(l.label):l.text!=null?String(l.text):l.value==null?"":String(l.value)}function p(l){return l!=null&&typeof l=="object"&&Array.isArray(l.options)}function A(l){const a=[];if(!Array.isArray(l))return a;for(const i of l)if(p(i)){const n=o(i);a.push({group:!0,label:n});for(const s of i.options)if(p(s)){a.push({group:!0,label:o(s)});for(const I of s.options)a.push(g(I))}else a.push(g(s))}else a.push(g(i));return a}function g(l){const a=l!=null&&typeof l=="object"?l:{},i=a.description!=null?String(a.description):a.subtitle!=null?String(a.subtitle):null;return{group:!1,value:r(l),label:o(l),icon:a.icon,avatar:a.avatar,color:a.color,dot:a.dot,description:i,disabled:a.disabled===!0}}function h(l,a){return l===a?!0:l!=null&&a!=null&&String(l)===String(a)}function T(l,a={}){const i=a.doc||l&&l.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;i&&(C(i),v(i));const n=typeof a.t=="function"?a.t:Q,s=a.multiple===!0,I=A(a.options),z=I.filter(de=>!de.group);let Y=[];const B=i.createElement("div");B.className="lat-combo lat-select",s&&B.setAttribute("data-multiple","true");const ee=i.createElement("button");ee.type="button",ee.className="lat-select__trigger",ee.setAttribute("role","combobox"),ee.setAttribute("aria-haspopup","listbox"),ee.setAttribute("aria-expanded","false"),s&&ee.setAttribute("aria-multiselectable","true"),ee.setAttribute("aria-label",a.ariaLabel||n("form.select.toggle"));const oe=i.createElement("span");oe.className="lat-select__value";const H=i.createElement("span");H.className="lat-select__arrow",H.setAttribute("aria-hidden","true");const Z=O(i,"chevronDown");Z&&H.appendChild(Z),ee.appendChild(oe),ee.appendChild(H);const G=i.createElement("div");G.className="lat-combo__popup lat-select__popup",G.hidden=!0;const ge=i.createElement("div");ge.className="lat-combo__list lat-select__list",ge.setAttribute("role","listbox"),G.appendChild(ge),B.appendChild(ee),B.appendChild(G);const ye=`lat-select-lb-${te()}`;ge.id=ye,ee.setAttribute("aria-controls",ye);const le=[];let w=-1,M=!1,D="",m=null;const P=[];let X=!1,L=null;function te(){return te.n=(te.n||0)+1,te.n}function re(de,fe,_e){de.addEventListener(fe,_e),P.push(()=>de.removeEventListener(fe,_e))}function j(de){return z.find(fe=>h(fe.value,de))||null}function x(){l.dispatchEvent(t(i,"change"))}function K(){return s?Y.slice():Y.length?Y[0]:""}function V(){if(!s){for(;oe.firstChild;)oe.removeChild(oe.firstChild);if(Y.length){const de=j(Y[0]),fe=y(i,de,a.selectedTemplate);if(fe)oe.appendChild(fe);else{const _e=N(i,de);_e&&oe.appendChild(_e);const Oe=i.createElement("span");Oe.className="lat-select__label",Oe.textContent=de?de.label:Y[0],oe.appendChild(Oe)}oe.removeAttribute("data-placeholder")}else oe.textContent=a.placeholder!=null?String(a.placeholder):"",oe.setAttribute("data-placeholder","true");return}Y.length===0?(oe.textContent=a.placeholder!=null?String(a.placeholder):"",oe.setAttribute("data-placeholder","true")):(oe.textContent=Y.map(de=>{const fe=j(de);return fe?fe.label:de}).join(", "),oe.removeAttribute("data-placeholder"))}function E(de){let fe;if(s)fe=Array.isArray(de)?de:de==null||de===""?[]:[de];else{const _e=Array.isArray(de)?de.length?de[0]:null:de;fe=_e==null||_e===""?[]:[_e]}Y=[];for(const _e of fe){const Oe=z.find(Te=>h(Te.value,_e));Oe&&Y.push(Oe.value)}V(),W()}function W(){for(let de=0;de<le.length;de++){const fe=le[de],_e=z[de],Oe=!!_e&&Y.some(Pe=>h(Pe,_e.value));fe.setAttribute("aria-selected",Oe?"true":"false");const Te=fe.querySelector(".lat-select__check");Te&&(Te.textContent=Oe?"✓":"")}}function R(de){for(let fe=Math.max(0,de);fe<z.length;fe++)if(!z[fe].disabled)return fe;return-1}function ce(de){for(let fe=Math.min(z.length-1,de);fe>=0;fe--)if(!z[fe].disabled)return fe;return-1}function me(de){w=de;for(const fe of le)fe.classList.remove("lat-select__option--active");de>=0&&de<le.length?(le[de].classList.add("lat-select__option--active"),ee.setAttribute("aria-activedescendant",le[de].id)):ee.removeAttribute("aria-activedescendant")}function xe(){if(w<0||w>=le.length)return;const de=le[w];de.offsetTop<ge.scrollTop?ge.scrollTop=de.offsetTop:de.offsetTop+de.offsetHeight>ge.scrollTop+ge.clientHeight&&(ge.scrollTop=de.offsetTop+de.offsetHeight-ge.clientHeight)}function k(de){const fe=w<0?de>0?-1:z.length:w,_e=de>0?R(fe+1):ce(fe-1);_e!==-1&&me(_e),xe()}function ne(){if(!(M||X||a.disabled)&&(M=!0,G.hidden=!1,ee.setAttribute("aria-expanded","true"),L=u(G,ee,{aboveClass:d,onOffscreen:se}),w<0&&z.length)){const de=s?-1:Y.length?z.findIndex(fe=>h(fe.value,Y[0])):-1;me(R(de>=0?de:0))}}function se(){M&&(M=!1,G.hidden=!0,G.classList.remove(d),L&&(L.close(),L=null),ee.setAttribute("aria-expanded","false"),me(-1),D="")}function J(){M?se():ne()}function ue(de){if(a.readOnly)return;if(!s){const _e=Y.length===0||Y[0]!==de;Y=[de],V(),W(),se(),_e&&x();return}Y=Y.some(_e=>_e===de)?Y.filter(_e=>_e!==de):[...Y,de],V(),W(),ee.focus(),x()}function he(){w<0||w>=z.length||z[w].disabled||ue(z[w].value)}function be(de){m&&clearTimeout(m),D+=de.toLowerCase(),m=setTimeout(()=>{D="",m=null},_),M||ne();const fe=w>-1?w+1:0;let _e=-1;for(let Oe=fe;Oe<z.length;Oe++)if(!z[Oe].disabled&&z[Oe].label.toLowerCase().startsWith(D)){_e=Oe;break}if(_e===-1){for(let Oe=0;Oe<fe;Oe++)if(!z[Oe].disabled&&z[Oe].label.toLowerCase().startsWith(D)){_e=Oe;break}}_e!==-1&&(me(_e),xe())}function Ee(de){const fe=de.altKey===!0;if(de.key==="ArrowDown"||fe&&de.key==="ArrowDown")de.preventDefault(),M?k(1):(ne(),w===-1&&z.length&&me(R(0)));else if(de.key==="ArrowUp")de.preventDefault(),M?k(-1):(ne(),z.length&&me(ce(z.length-1)));else if(de.key==="Home"){if(!M)return;de.preventDefault();const _e=R(0);_e!==-1&&me(_e),xe()}else if(de.key==="End"){if(!M)return;de.preventDefault();const _e=ce(z.length-1);_e!==-1&&me(_e),xe()}else de.key==="Enter"||de.key===" "?(de.preventDefault(),M?he():ne()):de.key==="Escape"?M&&(de.preventDefault(),se()):de.key==="Tab"?M&&he():de.key.length===1&&!de.ctrlKey&&!de.metaKey&&!fe&&(de.preventDefault(),be(de.key))}function Se(de){de<0||de>=z.length||z[de].disabled||ue(z[de].value)}function Ae(de,fe){const _e=i.createElement("div");if(_e.className="lat-combo__option",_e.setAttribute("role","option"),_e.id=`${ye}-opt-${fe}`,_e.setAttribute("data-value",de.value),_e.setAttribute("aria-selected","false"),de.disabled&&(_e.setAttribute("aria-disabled","true"),_e.classList.add("lat-select__option--disabled")),s){const Pe=i.createElement("span");Pe.className="lat-select__check",Pe.setAttribute("aria-hidden","true"),_e.appendChild(Pe)}const Oe=y(i,de,a.optionTemplate);if(Oe)_e.appendChild(Oe);else{const Pe=N(i,de);Pe&&_e.appendChild(Pe);const tt=i.createElement("span");tt.className="lat-combo__text";const Ze=i.createElement("span");if(Ze.className="lat-combo__title",Ze.textContent=de.label,tt.appendChild(Ze),de.description!=null){const Je=i.createElement("span");Je.className="lat-combo__subtitle",Je.textContent=de.description,tt.appendChild(Je)}_e.appendChild(tt)}return re(_e,"click",Pe=>{Pe.stopPropagation(),Se(fe)}),le.push(_e),_e}function Ce(){let de=0,fe=0,_e=null,Oe=null;for(const Te of I)if(Te.group)_e=i.createElement("div"),_e.setAttribute("role","group"),Oe=i.createElement("div"),Oe.id=`${ye}-grp-${fe}`,Oe.className="lat-select__group",Oe.textContent=Te.label||"",_e.setAttribute("aria-labelledby",Oe.id),_e.appendChild(Oe),ge.appendChild(_e),fe+=1;else{const Pe=Ae(Te,de);de+=1,_e?_e.appendChild(Pe):ge.appendChild(Pe)}}const we=()=>{a.disabled||J()},ke=()=>{l.dispatchEvent(t(i,"focus"))},Le=()=>{l.dispatchEvent(t(i,"blur")),se()},De=de=>{B.contains(de.target)||G.contains(de.target)||se()};re(ee,"click",we),re(ee,"keydown",Ee),re(ee,"focus",ke),re(ee,"blur",Le),re(ge,"mousedown",de=>de.preventDefault()),i&&re(i,"mousedown",De),Ce(),E(a.value);const He={el:l,root:B,trigger:ee,getValue:K,setValue(de){return E(de),He},open(){return ne(),He},close(){return se(),He},focus(){return ee.focus(),He},blur(){return ee.blur(),He},setDisabled(de){a.disabled=de,ee.disabled=de,de&&se()},setReadOnly(de){a.readOnly=de,de?ee.setAttribute("aria-readonly","true"):ee.removeAttribute("aria-readonly")},destroy(){se(),X=!0,m&&clearTimeout(m);for(const de of P.splice(0))de();for(;B.firstChild;)B.removeChild(B.firstChild)}};return l.appendChild(B),l.__select=He,He}function c(l,a){const i=a.doc.createElement("select");l.name&&(i.name=l.name);const n=l.props&&l.props.multiple===!0;n&&(i.multiple=!0),i.__multiple=n;const s=A(l.options),I=s.filter(B=>!B.group),z=a.doc.createElement("option");z.value="",z.textContent=l.placeholder!=null?String(l.placeholder):"",n||i.appendChild(z);let Y=null;for(const B of s)if(B.group)Y=a.doc.createElement("optgroup"),Y.label=B.label||"",i.appendChild(Y);else{const ee=a.doc.createElement("option");ee.value=String(B.value),ee.textContent=B.label,B.disabled&&(ee.disabled=!0),ee.__value=B.value,ee.__typed=!0,(Y||i).appendChild(ee)}if(n){const B=(Array.isArray(l.value)?l.value:[]).filter(ee=>ee!=null&&ee!=="");for(const ee of i.options)ee.__typed&&(ee.selected=B.some(oe=>h(oe,ee.__value)))}else{const B=l.value==null||l.value===""?null:l.value,ee=B==null?null:I.find(oe=>h(oe.value,B));i.value=ee?String(ee.value):""}return i.__select={getValue(){if(!n){if(i.selectedOptions&&i.selectedOptions.length){const ee=i.selectedOptions[0];if(ee&&ee.__typed)return ee.__value}const B=I.find(ee=>h(ee.value,i.value));return B?B.value:i.value}return[...i.selectedOptions].map(B=>B.__typed?B.__value:B.value)},setValue(B){if(!n){const oe=B==null||B===""?null:B,H=oe==null?null:I.find(Z=>h(Z.value,oe));i.value=H?String(H.value):"";return}const ee=(Array.isArray(B)?B:[]).filter(oe=>oe!=null&&oe!=="");for(const oe of i.options)oe.__typed&&(oe.selected=ee.some(H=>h(H,oe.__value)))},setDisabled(B){i.disabled=B},setReadOnly(B){B&&(i.disabled=!0)},focus(){i.focus()},blur(){i.blur()},destroy(){}},i}U("select",{kind:"field",build(l,a){const i=l.props||{};if(i.native===!0)return c(l,a);const n=a.doc.createElement("div");return T(n,{options:l.options,multiple:i.multiple===!0,value:l.value,placeholder:l.placeholder,ariaLabel:l.label,optionTemplate:i.optionTemplate,selectedTemplate:i.selectedTemplate,t:a.t,doc:a.doc}),a.disposers.push(()=>{n.__select&&n.__select.destroy()}),n},read(l){return l.__select?l.__select.getValue():""},write(l,a){l.__select&&l.__select.setValue(a)},state(l,a){l.__select&&(l.__select.setDisabled(a.disabled===!0),l.__select.setReadOnly(a.readOnly===!0))},focus(l){l.__select&&l.__select.focus()},blur(l){l.__select&&l.__select.blur()}})}),Ne("packages/modules/form/controls/listbox.js",function(S,q){"use strict";Object.defineProperty(S,"createListBox",{enumerable:!0,get:function(){return a}});const U=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,b=q("packages/modules/form/controls/combo.js"),N=b.renderAdornment,y=b.renderTemplateContent,C=b.injectAdornmentStyles,F="data-lattice-form-listbox-styles",O=30,v=46,f=48,u=250,d=700;function _(){return`
1425
1442
  .lat-listbox{
1426
1443
  display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 2); min-width:0; box-sizing:border-box;
1427
1444
  font-size:var(--lattice-font-size); color:var(--lattice-foreground);
@@ -1494,7 +1511,7 @@ ${s}
1494
1511
  }
1495
1512
  .lat-listbox__status{ padding:calc(var(--lattice-space) / 2) var(--lattice-space); color:var(--lattice-foreground-muted); }
1496
1513
  .lat-listbox__status[hidden]{ display:none; }
1497
- `.trim()}function t(s){const r=s&&s.documentElement;if(!r||r.getAttribute(H))return;r.setAttribute(H,"1");const i=s.createElement("style");i.textContent=x(),(s.head||s.body||r).appendChild(i)}function n(s){return s==null||typeof s!="object"?{value:s,label:s==null?"":String(s),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:s.value,label:s.label!=null?String(s.label):s.title!=null?String(s.title):s.value==null?"":String(s.value),description:s.description!=null?String(s.description):s.subtitle!=null?String(s.subtitle):null,icon:s.icon,avatar:s.avatar,color:s.color,dot:s.dot,disabled:s.disabled===!0,group:s.group!=null?String(s.group):null}}function a(s){if(Array.isArray(s))return{items:s,total:s.length,hasMore:!1};if(s&&typeof s=="object"){const r=Array.isArray(s.items)?s.items:[];return{items:r,total:typeof s.total=="number"?s.total:r.length,hasMore:s.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function m(s,r){return s===r?!0:s!=null&&r!=null&&String(s)===String(r)}function E(s){return String(s)}function _(s,r){const i=s&&s.defaultView;return i&&i.Event?new i.Event(r,{bubbles:!0}):{type:r,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}let c=0;function S(){return c+=1,c}function o(s){return s.__latListboxRegistry||(s.__latListboxRegistry=new Map),s.__latListboxRegistry}let d=null;function l(s,r={}){const i=r.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;i&&(t(i),A(i));const B=typeof r.t=="function"?r.t:re,z=["single","multiple","checkbox"].includes(r.selection)?r.selection:"single",W=z!=="single",b=r.reorder===!0,J=typeof r.connect=="string"&&r.connect!==""?r.connect:null,Q=typeof r.name=="string"&&r.name!==""?r.name:null,ne=r.sort==="asc"||r.sort==="desc"?r.sort:!1,Z=r.groupBy===!0,Y=r.filter===!0,ve=`lat-listbox-${S()}`,se=i.createElement("div");se.className="lat-listbox",r.inForm||(se.setAttribute("data-lattice-standalone","true"),se.setAttribute("data-density",["compact","standard","comfortable"].includes(r.density)?r.density:"standard"));let k=null;Y&&(k=i.createElement("input"),k.type="text",k.className="lat-listbox__filter",k.placeholder=B("form.listbox.filterPlaceholder"),k.setAttribute("aria-label",B("form.listbox.filterPlaceholder")),se.appendChild(k));let I=null,F=null,p=null,D=null,G=null;(b||J)&&(I=i.createElement("div"),I.className="lat-listbox__toolbar",I.setAttribute("role","group"),I.setAttribute("aria-label",B("form.listbox.toolbar")),b&&(F=i.createElement("button"),F.type="button",F.className="lat-listbox__toolbar-btn",F.textContent=B("form.listbox.moveUp"),p=i.createElement("button"),p.type="button",p.className="lat-listbox__toolbar-btn",p.textContent=B("form.listbox.moveDown"),I.appendChild(F),I.appendChild(p)),J&&(D=i.createElement("button"),D.type="button",D.className="lat-listbox__toolbar-btn",D.textContent=B("form.listbox.moveSelected"),G=i.createElement("button"),G.type="button",G.className="lat-listbox__toolbar-btn",G.textContent=B("form.listbox.moveAll"),I.appendChild(D),I.appendChild(G)),se.appendChild(I));const R=i.createElement("div");R.className="lat-listbox__viewport",R.id=`${ve}-lb`,R.setAttribute("role","listbox"),R.setAttribute("tabindex","0"),W&&R.setAttribute("aria-multiselectable","true"),R.setAttribute("aria-label",r.ariaLabel!=null?String(r.ariaLabel):"");const ee=typeof r.rows=="number"&&r.rows>0?r.rows:8;typeof r.height=="number"&&r.height>0?R.style.height=`${r.height}px`:R.style.height=`calc(var(--lattice-row-height) * ${ee})`;let P=null;if(z==="checkbox"){const ae=i.createElement("div");ae.className="lat-listbox__option lat-listbox__select-all",P=i.createElement("input"),P.type="checkbox",P.className="lat-listbox__checkbox",P.id=`${ve}-select-all`,ae.appendChild(P);const pe=i.createElement("label");pe.className="lat-listbox__title",pe.textContent=B("form.listbox.selectAll"),pe.setAttribute("for",P.id),ae.appendChild(pe),R.appendChild(ae)}const N=i.createElement("div");N.className="lat-listbox__spacer",R.appendChild(N);const y=i.createElement("div");y.className="lat-listbox__status",y.setAttribute("role","status"),y.setAttribute("aria-live","polite"),y.hidden=!0,R.appendChild(y),se.appendChild(R);let $=[];const w=new Set;let V=[],oe=-1,ie=null,_e="";const Oe=[],Se=[];let j=0,te="",ce=null,K=null,de=null,ue=0,be=!1,Ce=0,Ae=!1;const ye=[];let me=!1;function we(ae,pe,ge){ae.addEventListener(pe,ge),ye.push(()=>ae.removeEventListener(pe,ge))}function q(){return r.readOnly===!0||r.disabled===!0}function $e(){s.dispatchEvent(_(i,"change"))}function he(){if(z==="single"){const ae=$.find(pe=>w.has(E(pe.value)));return ae?ae.value:null}return b||J?$.map(ae=>ae.value):$.filter(ae=>w.has(E(ae.value))).map(ae=>ae.value)}function Me(){const ae=V.filter(pe=>!pe.disabled);return ae.length>0&&ae.every(pe=>w.has(E(pe.value)))}function Fe(){const ae=_e.trim().toLowerCase();let pe=ae===""?$.slice():$.filter(ge=>ge.label.toLowerCase().includes(ae)||(ge.description||"").toLowerCase().includes(ae));ne&&(pe=pe.slice().sort((ge,Ee)=>ge.label.localeCompare(Ee.label)*(ne==="desc"?-1:1))),V=pe,Oe.length=0,Se.length=0,oe>=V.length&&(oe=V.length-1)}function fe(ae){const pe=[],ge=new Map;for(const Ee of ae){const Be=Ee.group||"";let De=ge.get(Be);De||(De={group:Ee.group||null,items:[]},ge.set(Be,De),pe.push(De)),De.items.push(Ee)}return pe}function xe(ae){return`${ve}-opt-${ae}`}function Te(ae){return ae.description!=null||ae.icon!=null||ae.avatar!=null?v:T}function Ue(ae){const pe=V[ae];return!!pe&&w.has(E(pe.value))}function qe(ae,pe){const ge=i.createElement("div");if(ge.className="lat-listbox__option",ge.setAttribute("role","option"),ge.id=xe(pe),ge.setAttribute("aria-selected",Ue(pe)?"true":"false"),ae.disabled&&ge.setAttribute("aria-disabled","true"),z==="checkbox"){const De=i.createElement("input");De.type="checkbox",De.className="lat-listbox__checkbox",De.tabIndex=-1,De.checked=Ue(pe),De.disabled=ae.disabled||q(),ge.appendChild(De)}const Ee=C(i,ae,r.render);if(Ee)ge.appendChild(Ee);else{const De=L(i,ae);De&&ge.appendChild(De);const Re=i.createElement("span");Re.className="lat-listbox__text";const Xe=i.createElement("span");if(Xe.className="lat-listbox__title",Xe.textContent=ae.label,Re.appendChild(Xe),ae.description!=null){const dt=i.createElement("span");dt.className="lat-listbox__subtitle",dt.textContent=ae.description,Re.appendChild(dt)}ge.appendChild(Re)}return(b||J)&&!ae.disabled&&!q()&&(ge.draggable=!0,we(ge,"dragstart",()=>Qe(ae)),we(ge,"dragover",De=>{De.preventDefault()}),we(ge,"drop",De=>{De.preventDefault(),Ge(ae)})),we(ge,"click",De=>{ae.disabled||q()||(R.focus(),it(pe,{shift:De.shiftKey,ctrl:De.ctrlKey||De.metaKey,touch:De.pointerType==="touch"}))}),ge}function Qe(ae){const pe=w.has(E(ae.value))?$.filter(ge=>w.has(E(ge.value))).map(ge=>ge.value):[ae.value];d={source:lt,values:pe}}function Ge(ae){if(!d||q())return;const{source:pe,values:ge}=d;d=null;const Ee=$.findIndex(Be=>m(Be.value,ae.value));if(Ee!==-1){if(pe===lt){if(!b)return;Je(ge,Ee),nt(),$e();return}if(J){const Be=pe.__removeValues(ge);if(Be.length===0)return;$.splice(Ee,0,...Be);for(const De of Be)w.add(E(De.value));Fe(),nt(),$e()}}}function Je(ae,pe){const ge=new Set(ae.map(E)),Ee=$.filter(Xe=>ge.has(E(Xe.value)));if(Ee.length===0)return;const Be=$[pe]?E($[pe].value):null,De=$.filter(Xe=>!ge.has(E(Xe.value)));let Re=Be==null?De.length:De.findIndex(Xe=>E(Xe.value)===Be);Re===-1&&(Re=De.length),De.splice(Re,0,...Ee),$=De}function Le(ae){const pe=new Set(ae.map(E)),ge=$.filter(Ee=>pe.has(E(Ee.value)));if(ge.length===0)return ge;$=$.filter(Ee=>!pe.has(E(Ee.value)));for(const Ee of ge)w.delete(E(Ee.value));return Fe(),nt(),$e(),ge}function We(ae){ae.length!==0&&($=$.concat(ae),Fe(),nt(),$e())}function Ze(){return!J||!i?null:o(i).get(J)||null}function at(){const ae=Ze();if(!ae||q())return;const pe=$.filter(Ee=>w.has(E(Ee.value))).map(Ee=>Ee.value);if(pe.length===0)return;const ge=Le(pe);ae.__receiveItems(ge)}function st(){const ae=Ze();if(!ae||q()||$.length===0)return;const pe=Le($.map(ge=>ge.value));ae.__receiveItems(pe)}function rt(ae){if(q())return;const pe=[];for(let ge=0;ge<$.length;ge++)w.has(E($[ge].value))&&pe.push(ge);if(pe.length!==0){if(ae<0)for(const ge of pe)ge===0||w.has(E($[ge-1].value))||([$[ge-1],$[ge]]=[$[ge],$[ge-1]]);else for(let ge=pe.length-1;ge>=0;ge--){const Ee=pe[ge];Ee===$.length-1||w.has(E($[Ee+1].value))||([$[Ee+1],$[Ee]]=[$[Ee],$[Ee+1]])}Fe(),nt(),$e()}}function nt(){for(;N.firstChild;)N.removeChild(N.firstChild);N.style.height="",N.style.position="",Z?$t():et(),ct(),Et(),I&&_t()}function $t(){let ae=0;for(const pe of fe(V))if(pe.group!=null){const ge=i.createElement("div");ge.setAttribute("role","group");const Ee=i.createElement("div");Ee.className="lat-listbox__group-header",Ee.id=`${ve}-grp-${ae}`,Ee.textContent=pe.group,ge.setAttribute("aria-labelledby",Ee.id),ge.appendChild(Ee);for(const Be of pe.items)ge.appendChild(qe(Be,ae)),ae+=1;N.appendChild(ge)}else for(const ge of pe.items)N.appendChild(qe(ge,ae)),ae+=1}function et(){if(N.style.position="relative",j=R.clientHeight||j||240,V.length===0){N.style.height="0px";return}for(let Re=0;Re<V.length;Re++)Oe[Re]==null&&(Oe[Re]=Te(V[Re]));Se.length=0,Se[0]=0;for(let Re=1;Re<=V.length;Re++)Se[Re]=Se[Re-1]+Oe[Re-1];N.style.height=`${Se[V.length]}px`;const ae=R.scrollTop,pe=ae,ge=ae+j;let Ee=0;for(;Ee<V.length-1&&Se[Ee+1]<pe;)Ee+=1;let Be=Ee;for(;Be<V.length&&Se[Be]<ge;)Be+=1;for(Be=Math.min(V.length,Be+2);N.firstChild;)N.removeChild(N.firstChild);for(let Re=Ee;Re<Be;Re++){const Xe=qe(V[Re],Re);Xe.style.position="absolute",Xe.style.insetInlineStart="0",Xe.style.insetInlineEnd="0",Xe.style.top="0",Xe.style.transform=`translateY(${Se[Re]}px)`,N.appendChild(Xe)}let De=!1;for(let Re=Ee;Re<Be;Re++){const Xe=i.getElementById(xe(Re));if(!Xe)continue;const dt=Xe.getBoundingClientRect().height;dt>0&&Math.abs(dt-Oe[Re])>.5&&(Oe[Re]=dt,De=!0)}De&&et()}function Ye(){if(oe<0||Z)return;const ae=Se[oe]||0,pe=ae+(Oe[oe]||Te(V[oe]));ae<R.scrollTop?R.scrollTop=ae:pe>R.scrollTop+j&&(R.scrollTop=pe-j),nt()}function ct(){V.length===0?(y.hidden=!1,y.textContent=B("form.listbox.empty")):(y.hidden=!0,y.textContent="")}function ft(){for(const ae of N.querySelectorAll('.lat-listbox__option[role="option"]')){const pe=ae.id||"",ge=Number(pe.slice(`${ve}-opt-`.length));if(Number.isNaN(ge))continue;const Ee=V[ge];if(!Ee)continue;const Be=w.has(E(Ee.value));ae.setAttribute("aria-selected",Be?"true":"false");const De=ae.querySelector(".lat-listbox__checkbox");De&&(De.checked=Be)}Et(),I&&_t()}function Et(){if(!P)return;const ae=V.filter(ge=>!ge.disabled),pe=ae.filter(ge=>w.has(E(ge.value))).length;P.checked=ae.length>0&&pe===ae.length,P.indeterminate=pe>0&&pe<ae.length,P.disabled=q()||ae.length===0}function _t(){const ae=w.size>0,pe=q();F&&(F.disabled=pe||!ae),p&&(p.disabled=pe||!ae),D&&(D.disabled=pe||!ae),G&&(G.disabled=pe||$.length===0)}function ot(ae){oe=ae,ae>=0&&ae<V.length?R.setAttribute("aria-activedescendant",xe(ae)):R.removeAttribute("aria-activedescendant")}function gt(ae){for(let pe=Math.max(0,ae);pe<V.length;pe++)if(!V[pe].disabled)return pe;return-1}function tt(ae){for(let pe=Math.min(V.length-1,ae);pe>=0;pe--)if(!V[pe].disabled)return pe;return-1}function it(ae,pe={}){const ge=V[ae];if(!ge||ge.disabled||q())return;ot(ae);const Ee=new Set(w);if(z==="single")w.clear(),w.add(E(ge.value)),ie=ae;else if(z==="checkbox")w.has(E(ge.value))?w.delete(E(ge.value)):w.add(E(ge.value)),ie=ae;else if(pe.shift&&ie!=null){const Be=Math.min(ie,ae),De=Math.max(ie,ae);w.clear();for(let Re=Be;Re<=De;Re++)V[Re].disabled||w.add(E(V[Re].value))}else pe.ctrl||pe.touch?(w.has(E(ge.value))?w.delete(E(ge.value)):w.add(E(ge.value)),ie=ae):(w.clear(),w.add(E(ge.value)),ie=ae);Ye(),ft(),St(Ee,w)||$e()}function St(ae,pe){if(ae.size!==pe.size)return!1;for(const ge of ae)if(!pe.has(ge))return!1;return!0}function pt(){if(q())return;const ae=!Me();for(const pe of V)pe.disabled||(ae?w.add(E(pe.value)):w.delete(E(pe.value)));ft(),$e()}function jt(ae,pe){if(V.length===0)return;const ge=oe<0?ae>0?-1:V.length:oe,Ee=ae>0?gt(ge+1):tt(ge-1);if(Ee!==-1){if(ot(Ee),Ye(),z==="single"){it(Ee,{});return}pe&&W&&(ie==null&&(ie=Ee),it(Ee,{shift:!0}))}}function vt(ae){ce&&clearTimeout(ce),te+=ae.toLowerCase(),ce=setTimeout(()=>{te="",ce=null},h);const pe=oe>-1?oe+1:0;let ge=-1;for(let Ee=pe;Ee<V.length;Ee++)if(!V[Ee].disabled&&V[Ee].label.toLowerCase().startsWith(te)){ge=Ee;break}if(ge===-1){for(let Ee=0;Ee<pe;Ee++)if(!V[Ee].disabled&&V[Ee].label.toLowerCase().startsWith(te)){ge=Ee;break}}ge!==-1&&(ot(ge),Ye())}function Lt(ae){if(ae.altKey&&ae.key==="ArrowUp"&&b)ae.preventDefault(),rt(-1);else if(ae.altKey&&ae.key==="ArrowDown"&&b)ae.preventDefault(),rt(1);else if(ae.key==="ArrowDown")ae.preventDefault(),jt(1,ae.shiftKey);else if(ae.key==="ArrowUp")ae.preventDefault(),jt(-1,ae.shiftKey);else if(ae.key==="Home"){ae.preventDefault();const pe=gt(0);pe!==-1&&(ot(pe),Ye(),z==="single"&&it(pe,{}))}else if(ae.key==="End"){ae.preventDefault();const pe=tt(V.length-1);pe!==-1&&(ot(pe),Ye(),z==="single"&&it(pe,{}))}else if(ae.key===" ")ae.preventDefault(),oe>=0&&it(oe,{ctrl:W});else if((ae.ctrlKey||ae.metaKey)&&(ae.key==="a"||ae.key==="A")&&W){if(ae.preventDefault(),q())return;for(const pe of V)pe.disabled||w.add(E(pe.value));ft(),$e()}else ae.key.length===1&&!ae.ctrlKey&&!ae.metaKey&&!ae.altKey&&vt(ae.key)}function Nt(){if(_e=k.value||"",typeof r.load!="function"){Fe(),nt();return}K&&clearTimeout(K),K=setTimeout(()=>ut(),u)}function ut(){if(me||typeof r.load!="function")return;be=!0,ue+=1;const ae=ue;de&&de.abort(),de=typeof AbortController<"u"?new AbortController:null;let pe;try{pe=r.load({search:_e,page:0,signal:de?de.signal:void 0})}catch{be=!1;return}const ge=Ee=>{if(me||ae!==ue)return;be=!1;const Be=a(Ee);$=Be.items.map(n),Ae=Be.hasMore,Ce=1,Fe(),nt()};pe&&typeof pe.then=="function"?pe.then(ge,()=>{be=!1}):ge(pe)}we(R,"keydown",Lt),we(R,"scroll",()=>{Z||et()}),k&&we(k,"input",Nt),F&&we(F,"click",()=>rt(-1)),p&&we(p,"click",()=>rt(1)),D&&we(D,"click",()=>at()),G&&we(G,"click",()=>st()),P&&we(P,"change",()=>pt()),we(R,"dragover",ae=>{d&&ae.preventDefault()}),we(R,"drop",ae=>{if(ae.preventDefault(),!d||d.source===lt||!J)return;const pe=d.source.__removeValues(d.values);d=null,We(pe)});function Pt(ae){if(w.clear(),z==="single")ae!=null&&w.add(E(ae));else if((b||J)&&Array.isArray(ae)){const pe=new Map($.map(ge=>[E(ge.value),ge]));$=ae.map(ge=>pe.get(E(ge))||n(ge));for(const ge of $)w.add(E(ge.value))}else{const pe=Array.isArray(ae)?ae:ae==null?[]:[ae];for(const ge of pe)w.add(E(ge))}Fe(),nt()}typeof r.load!="function"&&($=(Array.isArray(r.options)?r.options:[]).map(n)),Fe(),Pt(r.value),typeof r.load=="function"&&ut();const lt={el:s,root:se,viewport:R,getValue:he,setValue(ae){return Pt(ae),lt},focus(){return R.focus(),lt},blur(){return R.blur(),lt},setDisabled(ae){r.disabled=ae,R.setAttribute("aria-disabled",ae?"true":"false"),k&&(k.disabled=ae),Et(),_t()},setReadOnly(ae){r.readOnly=ae,ae?R.setAttribute("aria-readonly","true"):R.removeAttribute("aria-readonly"),Et(),_t()},__removeValues:Le,__receiveItems:We,destroy(){me=!0,ce&&clearTimeout(ce),K&&clearTimeout(K),de&&de.abort();for(const ae of ye.splice(0))ae();if(i&&Q){const ae=o(i);ae.get(Q)===lt&&ae.delete(Q)}for(;se.firstChild;)se.removeChild(se.firstChild)}};return i&&Q&&o(i).set(Q,lt),nt(),s.appendChild(se),s.__listbox=lt,lt}U("listbox",{kind:"field",build(s,r){const i=s.props||{},B=r.doc.createElement("div");return l(B,{options:s.options,load:i.load,selection:i.selection,value:s.value,filter:i.filter===!0,groupBy:i.groupBy===!0,sort:i.sort,render:i.render,reorder:i.reorder===!0,connect:i.connect,name:s.name,min:s.min,max:s.max,height:i.height,rows:s.rows,disabled:s.disabled===!0,readOnly:s.readOnly===!0,ariaLabel:s.label,t:r.t,doc:r.doc,inForm:!0}),B.__listboxT=r.t,r.disposers.push(()=>{B.__listbox&&B.__listbox.destroy()}),B},read(s){return s.__listbox?s.__listbox.getValue():null},write(s,r){s.__listbox&&s.__listbox.setValue(r)},validate(s,r,i){if(!s.__listbox)return null;const z=s.__listboxT||re,W=Array.isArray(i)?i.length:i==null?0:1,b=r.min!=null&&Number.isFinite(Number(r.min))?Number(r.min):null,J=r.max!=null&&Number.isFinite(Number(r.max))?Number(r.max):null;return b!=null&&W<b?{code:"min",message:z("form.listbox.min",{min:String(b)})}:J!=null&&W>J?{code:"max",message:z("form.listbox.max",{max:String(J)})}:null},state(s,r){s.__listbox&&(s.__listbox.setDisabled(r.disabled===!0),s.__listbox.setReadOnly(r.readOnly===!0))},focus(s){s.__listbox&&s.__listbox.focus()},blur(s){s.__listbox&&s.__listbox.blur()}})}),je("packages/modules/form/controls/options.js",function(M,X){"use strict";Object.defineProperty(M,"normalizeOptions",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"resolveChoiceLayout",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"choiceLayoutCss",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return C}});const U=X("packages/modules/form/styles.js").NS;function O(A){return Array.isArray(A)?A.map(H=>{if(typeof H=="string")return{value:H,label:H};if(H&&typeof H=="object"){const T=H.value==null?"":String(H.value),v=H.label!=null?String(H.label):H.text!=null?String(H.text):T;return{value:T,label:v}}return{value:"",label:""}}):[]}function re(A){const H=A&&A.props?A.props:{},T=A&&A.orientation!=null?A.orientation:H.orientation;let v=A&&A.columns!=null?A.columns:H.columns;return v=typeof v=="number"&&Number.isFinite(v)&&v>=1?Math.floor(v):0,v>0?{orientation:"vertical",columns:v}:{orientation:T==="horizontal"?"horizontal":"vertical",columns:0}}function g(){return`
1514
+ `.trim()}function t(i){const n=i&&i.documentElement;if(!n||n.getAttribute(F))return;n.setAttribute(F,"1");const s=i.createElement("style");s.textContent=_(),(i.head||i.body||n).appendChild(s)}function r(i){return i==null||typeof i!="object"?{value:i,label:i==null?"":String(i),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:i.value,label:i.label!=null?String(i.label):i.title!=null?String(i.title):i.value==null?"":String(i.value),description:i.description!=null?String(i.description):i.subtitle!=null?String(i.subtitle):null,icon:i.icon,avatar:i.avatar,color:i.color,dot:i.dot,disabled:i.disabled===!0,group:i.group!=null?String(i.group):null}}function o(i){if(Array.isArray(i))return{items:i,total:i.length,hasMore:!1};if(i&&typeof i=="object"){const n=Array.isArray(i.items)?i.items:[];return{items:n,total:typeof i.total=="number"?i.total:n.length,hasMore:i.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function p(i,n){return i===n?!0:i!=null&&n!=null&&String(i)===String(n)}function A(i){return String(i)}function g(i,n){const s=i&&i.defaultView;return s&&s.Event?new s.Event(n,{bubbles:!0}):{type:n,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}let h=0;function T(){return h+=1,h}function c(i){return i.__latListboxRegistry||(i.__latListboxRegistry=new Map),i.__latListboxRegistry}let l=null;function a(i,n={}){const s=n.doc||i&&i.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;s&&(t(s),C(s));const I=typeof n.t=="function"?n.t:Q,z=["single","multiple","checkbox"].includes(n.selection)?n.selection:"single",Y=z!=="single",B=n.reorder===!0,ee=typeof n.connect=="string"&&n.connect!==""?n.connect:null,oe=typeof n.name=="string"&&n.name!==""?n.name:null,H=n.sort==="asc"||n.sort==="desc"?n.sort:!1,Z=n.groupBy===!0,G=n.filter===!0,ye=`lat-listbox-${T()}`,le=s.createElement("div");le.className="lat-listbox",n.inForm||(le.setAttribute("data-lattice-standalone","true"),le.setAttribute("data-density",["compact","standard","comfortable"].includes(n.density)?n.density:"standard"));let w=null;G&&(w=s.createElement("input"),w.type="text",w.className="lat-listbox__filter",w.placeholder=I("form.listbox.filterPlaceholder"),w.setAttribute("aria-label",I("form.listbox.filterPlaceholder")),le.appendChild(w));let M=null,D=null,m=null,P=null,X=null;(B||ee)&&(M=s.createElement("div"),M.className="lat-listbox__toolbar",M.setAttribute("role","group"),M.setAttribute("aria-label",I("form.listbox.toolbar")),B&&(D=s.createElement("button"),D.type="button",D.className="lat-listbox__toolbar-btn",D.textContent=I("form.listbox.moveUp"),m=s.createElement("button"),m.type="button",m.className="lat-listbox__toolbar-btn",m.textContent=I("form.listbox.moveDown"),M.appendChild(D),M.appendChild(m)),ee&&(P=s.createElement("button"),P.type="button",P.className="lat-listbox__toolbar-btn",P.textContent=I("form.listbox.moveSelected"),X=s.createElement("button"),X.type="button",X.className="lat-listbox__toolbar-btn",X.textContent=I("form.listbox.moveAll"),M.appendChild(P),M.appendChild(X)),le.appendChild(M));const L=s.createElement("div");L.className="lat-listbox__viewport",L.id=`${ye}-lb`,L.setAttribute("role","listbox"),L.setAttribute("tabindex","0"),Y&&L.setAttribute("aria-multiselectable","true"),L.setAttribute("aria-label",n.ariaLabel!=null?String(n.ariaLabel):"");const te=typeof n.rows=="number"&&n.rows>0?n.rows:8;typeof n.height=="number"&&n.height>0?L.style.height=`${n.height}px`:L.style.height=`calc(var(--lattice-row-height) * ${te})`;let re=null;if(z==="checkbox"){const ae=s.createElement("div");ae.className="lat-listbox__option lat-listbox__select-all",re=s.createElement("input"),re.type="checkbox",re.className="lat-listbox__checkbox",re.id=`${ye}-select-all`,ae.appendChild(re);const pe=s.createElement("label");pe.className="lat-listbox__title",pe.textContent=I("form.listbox.selectAll"),pe.setAttribute("for",re.id),ae.appendChild(pe),L.appendChild(ae)}const j=s.createElement("div");j.className="lat-listbox__spacer",L.appendChild(j);const x=s.createElement("div");x.className="lat-listbox__status",x.setAttribute("role","status"),x.setAttribute("aria-live","polite"),x.hidden=!0,L.appendChild(x),le.appendChild(L);let K=[];const V=new Set;let E=[],W=-1,R=null,ce="";const me=[],xe=[];let k=0,ne="",se=null,J=null,ue=null,he=0,be=!1,Ee=0,Se=!1;const Ae=[];let Ce=!1;function we(ae,pe,ve){ae.addEventListener(pe,ve),Ae.push(()=>ae.removeEventListener(pe,ve))}function ke(){return n.readOnly===!0||n.disabled===!0}function Le(){i.dispatchEvent(g(s,"change"))}function De(){if(z==="single"){const ae=K.find(pe=>V.has(A(pe.value)));return ae?ae.value:null}return B||ee?K.map(ae=>ae.value):K.filter(ae=>V.has(A(ae.value))).map(ae=>ae.value)}function He(){const ae=E.filter(pe=>!pe.disabled);return ae.length>0&&ae.every(pe=>V.has(A(pe.value)))}function de(){const ae=ce.trim().toLowerCase();let pe=ae===""?K.slice():K.filter(ve=>ve.label.toLowerCase().includes(ae)||(ve.description||"").toLowerCase().includes(ae));H&&(pe=pe.slice().sort((ve,je)=>ve.label.localeCompare(je.label)*(H==="desc"?-1:1))),E=pe,me.length=0,xe.length=0,W>=E.length&&(W=E.length-1)}function fe(ae){const pe=[],ve=new Map;for(const je of ae){const Ve=je.group||"";let Ie=ve.get(Ve);Ie||(Ie={group:je.group||null,items:[]},ve.set(Ve,Ie),pe.push(Ie)),Ie.items.push(je)}return pe}function _e(ae){return`${ye}-opt-${ae}`}function Oe(ae){return ae.description!=null||ae.icon!=null||ae.avatar!=null?v:O}function Te(ae){const pe=E[ae];return!!pe&&V.has(A(pe.value))}function Pe(ae,pe){const ve=s.createElement("div");if(ve.className="lat-listbox__option",ve.setAttribute("role","option"),ve.id=_e(pe),ve.setAttribute("aria-selected",Te(pe)?"true":"false"),ae.disabled&&ve.setAttribute("aria-disabled","true"),z==="checkbox"){const Ie=s.createElement("input");Ie.type="checkbox",Ie.className="lat-listbox__checkbox",Ie.tabIndex=-1,Ie.checked=Te(pe),Ie.disabled=ae.disabled||ke(),ve.appendChild(Ie)}const je=y(s,ae,n.render);if(je)ve.appendChild(je);else{const Ie=N(s,ae);Ie&&ve.appendChild(Ie);const Fe=s.createElement("span");Fe.className="lat-listbox__text";const Ue=s.createElement("span");if(Ue.className="lat-listbox__title",Ue.textContent=ae.label,Fe.appendChild(Ue),ae.description!=null){const bt=s.createElement("span");bt.className="lat-listbox__subtitle",bt.textContent=ae.description,Fe.appendChild(bt)}ve.appendChild(Fe)}return(B||ee)&&!ae.disabled&&!ke()&&(ve.draggable=!0,we(ve,"dragstart",()=>tt(ae)),we(ve,"dragover",Ie=>{Ie.preventDefault()}),we(ve,"drop",Ie=>{Ie.preventDefault(),Ze(ae)})),we(ve,"click",Ie=>{ae.disabled||ke()||(L.focus(),at(pe,{shift:Ie.shiftKey,ctrl:Ie.ctrlKey||Ie.metaKey,touch:Ie.pointerType==="touch"}))}),ve}function tt(ae){const pe=V.has(A(ae.value))?K.filter(ve=>V.has(A(ve.value))).map(ve=>ve.value):[ae.value];l={source:ct,values:pe}}function Ze(ae){if(!l||ke())return;const{source:pe,values:ve}=l;l=null;const je=K.findIndex(Ve=>p(Ve.value,ae.value));if(je!==-1){if(pe===ct){if(!B)return;Je(ve,je),qe(),Le();return}if(ee){const Ve=pe.__removeValues(ve);if(Ve.length===0)return;K.splice(je,0,...Ve);for(const Ie of Ve)V.add(A(Ie.value));de(),qe(),Le()}}}function Je(ae,pe){const ve=new Set(ae.map(A)),je=K.filter(Ue=>ve.has(A(Ue.value)));if(je.length===0)return;const Ve=K[pe]?A(K[pe].value):null,Ie=K.filter(Ue=>!ve.has(A(Ue.value)));let Fe=Ve==null?Ie.length:Ie.findIndex(Ue=>A(Ue.value)===Ve);Fe===-1&&(Fe=Ie.length),Ie.splice(Fe,0,...je),K=Ie}function Be(ae){const pe=new Set(ae.map(A)),ve=K.filter(je=>pe.has(A(je.value)));if(ve.length===0)return ve;K=K.filter(je=>!pe.has(A(je.value)));for(const je of ve)V.delete(A(je.value));return de(),qe(),Le(),ve}function Qe(ae){ae.length!==0&&(K=K.concat(ae),de(),qe(),Le())}function lt(){return!ee||!s?null:c(s).get(ee)||null}function ot(){const ae=lt();if(!ae||ke())return;const pe=K.filter(je=>V.has(A(je.value))).map(je=>je.value);if(pe.length===0)return;const ve=Be(pe);ae.__receiveItems(ve)}function Ye(){const ae=lt();if(!ae||ke()||K.length===0)return;const pe=Be(K.map(ve=>ve.value));ae.__receiveItems(pe)}function Xe(ae){if(ke())return;const pe=[];for(let ve=0;ve<K.length;ve++)V.has(A(K[ve].value))&&pe.push(ve);if(pe.length!==0){if(ae<0)for(const ve of pe)ve===0||V.has(A(K[ve-1].value))||([K[ve-1],K[ve]]=[K[ve],K[ve-1]]);else for(let ve=pe.length-1;ve>=0;ve--){const je=pe[ve];je===K.length-1||V.has(A(K[je+1].value))||([K[je+1],K[je]]=[K[je],K[je+1]])}de(),qe(),Le()}}function qe(){for(;j.firstChild;)j.removeChild(j.firstChild);j.style.height="",j.style.position="",Z?_t():st(),St(),et(),M&&it()}function _t(){let ae=0;for(const pe of fe(E))if(pe.group!=null){const ve=s.createElement("div");ve.setAttribute("role","group");const je=s.createElement("div");je.className="lat-listbox__group-header",je.id=`${ye}-grp-${ae}`,je.textContent=pe.group,ve.setAttribute("aria-labelledby",je.id),ve.appendChild(je);for(const Ve of pe.items)ve.appendChild(Pe(Ve,ae)),ae+=1;j.appendChild(ve)}else for(const ve of pe.items)j.appendChild(Pe(ve,ae)),ae+=1}function st(){if(j.style.position="relative",k=L.clientHeight||k||240,E.length===0){j.style.height="0px";return}for(let Fe=0;Fe<E.length;Fe++)me[Fe]==null&&(me[Fe]=Oe(E[Fe]));xe.length=0,xe[0]=0;for(let Fe=1;Fe<=E.length;Fe++)xe[Fe]=xe[Fe-1]+me[Fe-1];j.style.height=`${xe[E.length]}px`;const ae=L.scrollTop,pe=ae,ve=ae+k;let je=0;for(;je<E.length-1&&xe[je+1]<pe;)je+=1;let Ve=je;for(;Ve<E.length&&xe[Ve]<ve;)Ve+=1;for(Ve=Math.min(E.length,Ve+2);j.firstChild;)j.removeChild(j.firstChild);for(let Fe=je;Fe<Ve;Fe++){const Ue=Pe(E[Fe],Fe);Ue.style.position="absolute",Ue.style.insetInlineStart="0",Ue.style.insetInlineEnd="0",Ue.style.top="0",Ue.style.transform=`translateY(${xe[Fe]}px)`,j.appendChild(Ue)}let Ie=!1;for(let Fe=je;Fe<Ve;Fe++){const Ue=s.getElementById(_e(Fe));if(!Ue)continue;const bt=Ue.getBoundingClientRect().height;bt>0&&Math.abs(bt-me[Fe])>.5&&(me[Fe]=bt,Ie=!0)}Ie&&st()}function pt(){if(W<0||Z)return;const ae=xe[W]||0,pe=ae+(me[W]||Oe(E[W]));ae<L.scrollTop?L.scrollTop=ae:pe>L.scrollTop+k&&(L.scrollTop=pe-k),qe()}function St(){E.length===0?(x.hidden=!1,x.textContent=I("form.listbox.empty")):(x.hidden=!0,x.textContent="")}function rt(){for(const ae of j.querySelectorAll('.lat-listbox__option[role="option"]')){const pe=ae.id||"",ve=Number(pe.slice(`${ye}-opt-`.length));if(Number.isNaN(ve))continue;const je=E[ve];if(!je)continue;const Ve=V.has(A(je.value));ae.setAttribute("aria-selected",Ve?"true":"false");const Ie=ae.querySelector(".lat-listbox__checkbox");Ie&&(Ie.checked=Ve)}et(),M&&it()}function et(){if(!re)return;const ae=E.filter(ve=>!ve.disabled),pe=ae.filter(ve=>V.has(A(ve.value))).length;re.checked=ae.length>0&&pe===ae.length,re.indeterminate=pe>0&&pe<ae.length,re.disabled=ke()||ae.length===0}function it(){const ae=V.size>0,pe=ke();D&&(D.disabled=pe||!ae),m&&(m.disabled=pe||!ae),P&&(P.disabled=pe||!ae),X&&(X.disabled=pe||K.length===0)}function ut(ae){W=ae,ae>=0&&ae<E.length?L.setAttribute("aria-activedescendant",_e(ae)):L.removeAttribute("aria-activedescendant")}function Lt(ae){for(let pe=Math.max(0,ae);pe<E.length;pe++)if(!E[pe].disabled)return pe;return-1}function Ot(ae){for(let pe=Math.min(E.length-1,ae);pe>=0;pe--)if(!E[pe].disabled)return pe;return-1}function at(ae,pe={}){const ve=E[ae];if(!ve||ve.disabled||ke())return;ut(ae);const je=new Set(V);if(z==="single")V.clear(),V.add(A(ve.value)),R=ae;else if(z==="checkbox")V.has(A(ve.value))?V.delete(A(ve.value)):V.add(A(ve.value)),R=ae;else if(pe.shift&&R!=null){const Ve=Math.min(R,ae),Ie=Math.max(R,ae);V.clear();for(let Fe=Ve;Fe<=Ie;Fe++)E[Fe].disabled||V.add(A(E[Fe].value))}else pe.ctrl||pe.touch?(V.has(A(ve.value))?V.delete(A(ve.value)):V.add(A(ve.value)),R=ae):(V.clear(),V.add(A(ve.value)),R=ae);pt(),rt(),dt(je,V)||Le()}function dt(ae,pe){if(ae.size!==pe.size)return!1;for(const ve of ae)if(!pe.has(ve))return!1;return!0}function wt(){if(ke())return;const ae=!He();for(const pe of E)pe.disabled||(ae?V.add(A(pe.value)):V.delete(A(pe.value)));rt(),Le()}function nt(ae,pe){if(E.length===0)return;const ve=W<0?ae>0?-1:E.length:W,je=ae>0?Lt(ve+1):Ot(ve-1);if(je!==-1){if(ut(je),pt(),z==="single"){at(je,{});return}pe&&Y&&(R==null&&(R=je),at(je,{shift:!0}))}}function vt(ae){se&&clearTimeout(se),ne+=ae.toLowerCase(),se=setTimeout(()=>{ne="",se=null},d);const pe=W>-1?W+1:0;let ve=-1;for(let je=pe;je<E.length;je++)if(!E[je].disabled&&E[je].label.toLowerCase().startsWith(ne)){ve=je;break}if(ve===-1){for(let je=0;je<pe;je++)if(!E[je].disabled&&E[je].label.toLowerCase().startsWith(ne)){ve=je;break}}ve!==-1&&(ut(ve),pt())}function jt(ae){if(ae.altKey&&ae.key==="ArrowUp"&&B)ae.preventDefault(),Xe(-1);else if(ae.altKey&&ae.key==="ArrowDown"&&B)ae.preventDefault(),Xe(1);else if(ae.key==="ArrowDown")ae.preventDefault(),nt(1,ae.shiftKey);else if(ae.key==="ArrowUp")ae.preventDefault(),nt(-1,ae.shiftKey);else if(ae.key==="Home"){ae.preventDefault();const pe=Lt(0);pe!==-1&&(ut(pe),pt(),z==="single"&&at(pe,{}))}else if(ae.key==="End"){ae.preventDefault();const pe=Ot(E.length-1);pe!==-1&&(ut(pe),pt(),z==="single"&&at(pe,{}))}else if(ae.key===" ")ae.preventDefault(),W>=0&&at(W,{ctrl:Y});else if((ae.ctrlKey||ae.metaKey)&&(ae.key==="a"||ae.key==="A")&&Y){if(ae.preventDefault(),ke())return;for(const pe of E)pe.disabled||V.add(A(pe.value));rt(),Le()}else ae.key.length===1&&!ae.ctrlKey&&!ae.metaKey&&!ae.altKey&&vt(ae.key)}function mt(){if(ce=w.value||"",typeof n.load!="function"){de(),qe();return}J&&clearTimeout(J),J=setTimeout(()=>Pt(),u)}function Pt(){if(Ce||typeof n.load!="function")return;be=!0,he+=1;const ae=he;ue&&ue.abort(),ue=typeof AbortController<"u"?new AbortController:null;let pe;try{pe=n.load({search:ce,page:0,signal:ue?ue.signal:void 0})}catch{be=!1;return}const ve=je=>{if(Ce||ae!==he)return;be=!1;const Ve=o(je);K=Ve.items.map(r),Se=Ve.hasMore,Ee=1,de(),qe()};pe&&typeof pe.then=="function"?pe.then(ve,()=>{be=!1}):ve(pe)}we(L,"keydown",jt),we(L,"scroll",()=>{Z||st()}),w&&we(w,"input",mt),D&&we(D,"click",()=>Xe(-1)),m&&we(m,"click",()=>Xe(1)),P&&we(P,"click",()=>ot()),X&&we(X,"click",()=>Ye()),re&&we(re,"change",()=>wt()),we(L,"dragover",ae=>{l&&ae.preventDefault()}),we(L,"drop",ae=>{if(ae.preventDefault(),!l||l.source===ct||!ee)return;const pe=l.source.__removeValues(l.values);l=null,Qe(pe)});function yt(ae){if(V.clear(),z==="single")ae!=null&&V.add(A(ae));else if((B||ee)&&Array.isArray(ae)){const pe=new Map(K.map(ve=>[A(ve.value),ve]));K=ae.map(ve=>pe.get(A(ve))||r(ve));for(const ve of K)V.add(A(ve.value))}else{const pe=Array.isArray(ae)?ae:ae==null?[]:[ae];for(const ve of pe)V.add(A(ve))}de(),qe()}typeof n.load!="function"&&(K=(Array.isArray(n.options)?n.options:[]).map(r)),de(),yt(n.value),typeof n.load=="function"&&Pt();const ct={el:i,root:le,viewport:L,getValue:De,setValue(ae){return yt(ae),ct},focus(){return L.focus(),ct},blur(){return L.blur(),ct},setDisabled(ae){n.disabled=ae,L.setAttribute("aria-disabled",ae?"true":"false"),w&&(w.disabled=ae),et(),it()},setReadOnly(ae){n.readOnly=ae,ae?L.setAttribute("aria-readonly","true"):L.removeAttribute("aria-readonly"),et(),it()},__removeValues:Be,__receiveItems:Qe,destroy(){Ce=!0,se&&clearTimeout(se),J&&clearTimeout(J),ue&&ue.abort();for(const ae of Ae.splice(0))ae();if(s&&oe){const ae=c(s);ae.get(oe)===ct&&ae.delete(oe)}for(;le.firstChild;)le.removeChild(le.firstChild)}};return s&&oe&&c(s).set(oe,ct),qe(),i.appendChild(le),i.__listbox=ct,ct}U("listbox",{kind:"field",build(i,n){const s=i.props||{},I=n.doc.createElement("div");return a(I,{options:i.options,load:s.load,selection:s.selection,value:i.value,filter:s.filter===!0,groupBy:s.groupBy===!0,sort:s.sort,render:s.render,reorder:s.reorder===!0,connect:s.connect,name:i.name,min:i.min,max:i.max,height:s.height,rows:i.rows,disabled:i.disabled===!0,readOnly:i.readOnly===!0,ariaLabel:i.label,t:n.t,doc:n.doc,inForm:!0}),I.__listboxT=n.t,n.disposers.push(()=>{I.__listbox&&I.__listbox.destroy()}),I},read(i){return i.__listbox?i.__listbox.getValue():null},write(i,n){i.__listbox&&i.__listbox.setValue(n)},validate(i,n,s){if(!i.__listbox)return null;const z=i.__listboxT||Q,Y=Array.isArray(s)?s.length:s==null?0:1,B=n.min!=null&&Number.isFinite(Number(n.min))?Number(n.min):null,ee=n.max!=null&&Number.isFinite(Number(n.max))?Number(n.max):null;return B!=null&&Y<B?{code:"min",message:z("form.listbox.min",{min:String(B)})}:ee!=null&&Y>ee?{code:"max",message:z("form.listbox.max",{max:String(ee)})}:null},state(i,n){i.__listbox&&(i.__listbox.setDisabled(n.disabled===!0),i.__listbox.setReadOnly(n.readOnly===!0))},focus(i){i.__listbox&&i.__listbox.focus()},blur(i){i.__listbox&&i.__listbox.blur()}})}),Ne("packages/modules/form/controls/options.js",function(S,q){"use strict";Object.defineProperty(S,"normalizeOptions",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"resolveChoiceLayout",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"choiceLayoutCss",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return y}});const U=q("packages/modules/form/styles.js").NS;function $(C){return Array.isArray(C)?C.map(F=>{if(typeof F=="string")return{value:F,label:F};if(F&&typeof F=="object"){const O=F.value==null?"":String(F.value),v=F.label!=null?String(F.label):F.text!=null?String(F.text):O;return{value:O,label:v}}return{value:"",label:""}}):[]}function Q(C){const F=C&&C.props?C.props:{},O=C&&C.orientation!=null?C.orientation:F.orientation;let v=C&&C.columns!=null?C.columns:F.columns;return v=typeof v=="number"&&Number.isFinite(v)&&v>=1?Math.floor(v):0,v>0?{orientation:"vertical",columns:v}:{orientation:O==="horizontal"?"horizontal":"vertical",columns:0}}function b(){return`
1498
1515
  .${U}__radiogroup--horizontal,
1499
1516
  .${U}__checkboxgroup--horizontal{
1500
1517
  flex-direction:row; flex-wrap:wrap; align-items:center;
@@ -1505,23 +1522,23 @@ ${s}
1505
1522
  display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
1506
1523
  gap:var(--lattice-space);
1507
1524
  }
1508
- `.trim()}const L="data-lattice-form-choice-styles";function C(A){const H=A&&A.documentElement;if(!H||H.getAttribute(L))return;H.setAttribute(L,"1");const T=A.createElement("style");T.textContent=g(),(A.head||A.body||H).appendChild(T)}}),je("packages/modules/form/controls/radiogroup.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/options.js"),re=O.normalizeOptions,g=O.resolveChoiceLayout,L=O.injectChoiceLayoutStyles,C=X("packages/modules/form/state.js"),A=C.applyBooleanInputState,H=C.guardBooleanInput;U("radiogroup",{kind:"field",build(T,v){const f=v.doc.createElement("div");f.className="lat-form__radiogroup",f.setAttribute("role","radiogroup"),T.label!=null&&T.label!==""&&f.setAttribute("aria-label",String(T.label));const u=g(T);u.columns>0?(L(v.doc),f.classList.add("lat-form__radiogroup--columns"),f.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(L(v.doc),f.classList.add("lat-form__radiogroup--horizontal")),f.setAttribute("aria-orientation",u.orientation);const h=[];for(const x of re(T.options)){const t=v.doc.createElement("label");t.className="lat-form__choice";const n=v.doc.createElement("input");n.type="radio",T.name&&(n.name=T.name),n.value=x.value,n.checked=T.value!=null&&String(T.value)===x.value,H(n),t.appendChild(n);const a=v.doc.createElement("span");a.textContent=x.label,t.appendChild(a),f.appendChild(t),h.push(n)}return f.__radios=h,f},read(T){const v=T.__radios.find(f=>f.checked);return v?v.value:null},write(T,v){const f=v==null?null:String(v);for(const u of T.__radios)u.checked=f!==null&&u.value===f},state(T,v){const f=v.readOnly===!0;for(const u of T.__radios)A(u,v.disabled===!0,f);f?T.setAttribute("aria-readonly","true"):T.removeAttribute("aria-readonly")},focus(T){const v=T.__radios.find(f=>!f.disabled);v&&v.focus()}})}),je("packages/modules/form/controls/checkboxgroup.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/options.js"),re=O.normalizeOptions,g=O.resolveChoiceLayout,L=O.injectChoiceLayoutStyles,C=X("packages/modules/form/state.js"),A=C.applyBooleanInputState,H=C.guardBooleanInput;U("checkboxgroup",{kind:"field",build(T,v){const f=v.doc.createElement("div");f.className="lat-form__checkboxgroup",f.setAttribute("role","group"),T.label!=null&&T.label!==""&&f.setAttribute("aria-label",String(T.label));const u=g(T);u.columns>0?(L(v.doc),f.classList.add("lat-form__checkboxgroup--columns"),f.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(L(v.doc),f.classList.add("lat-form__checkboxgroup--horizontal"));const h=[],x=Array.isArray(T.value)?T.value.map(String):[];for(const t of re(T.options)){const n=v.doc.createElement("label");n.className="lat-form__choice";const a=v.doc.createElement("input");a.type="checkbox",T.name&&(a.name=T.name),a.value=t.value,a.checked=x.includes(t.value),H(a),n.appendChild(a);const m=v.doc.createElement("span");m.textContent=t.label,n.appendChild(m),f.appendChild(n),h.push(a)}return f.__boxes=h,f},read(T){return T.__boxes.filter(v=>v.checked).map(v=>v.value)},write(T,v){const f=Array.isArray(v)?v.map(String):[];for(const u of T.__boxes)u.checked=f.includes(u.value)},state(T,v){const f=v.readOnly===!0;for(const u of T.__boxes)A(u,v.disabled===!0,f);f?T.setAttribute("aria-readonly","true"):T.removeAttribute("aria-readonly")},focus(T){const v=T.__boxes.find(f=>!f.disabled);v&&v.focus()}})}),je("packages/modules/form/controls/toggle.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/state.js"),re=O.applyBooleanInputState,g=O.guardBooleanInput,L=Object.freeze(["small","default","large"]),C=Object.freeze(["round","square","slim"]),A=Object.freeze(["inside","before","after"]);function H(t){return L.includes(t)?t:"default"}function T(t){return C.includes(t)?t:"round"}function v(t){return A.includes(t)?t:"inside"}function f(t){return t==null?"":String(t)}function u(t){return t.__latToggle?t.__latToggle.input:t}function h(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function x(t,n,a){const m=n&&n.defaultView,E=m&&m.Event,_=E?new E(a,{bubbles:!0}):{type:a,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(_)}U("toggle",{kind:"toggle",build(t,n){const a=t.props||{},m=n.doc.createElement("input");m.type="checkbox",m.className="lat-form__toggle",m.setAttribute("role","switch"),t.name&&(m.name=t.name),m.checked=t.value===!0,g(m),a.size!=null&&m.setAttribute("data-size",H(a.size)),a.variant!=null&&m.setAttribute("data-variant",T(a.variant));const E=f(a.onLabel),_=f(a.offLabel);if(E===""&&_==="")return m;const c=n.doc.createElement("span");c.className="lat-form__toggle-field",c.setAttribute("data-label-position",v(a.labelPosition)),c.appendChild(m);const S=n.doc.createElement("span");S.className="lat-form__toggle-label",c.appendChild(S);const o={input:m,label:S,onLabel:E,offLabel:_};c.__latToggle=o,h(o),m.addEventListener("change",()=>h(o));let d=!1;return c.addEventListener("focusin",()=>{d||(d=!0,x(c,n.doc,"focus"))}),c.addEventListener("focusout",l=>{c.contains(l.relatedTarget)||(d=!1,x(c,n.doc,"blur"))}),c},read(t){return u(t).checked},write(t,n){const a=u(t);a.checked=n===!0,h(t.__latToggle)},state(t,n){re(u(t),n.disabled===!0,n.readOnly===!0)},focus(t){const n=u(t);typeof n.focus=="function"&&n.focus()},blur(t){const n=u(t);typeof n.blur=="function"&&n.blur()}})}),je("packages/modules/form/controls/date-shared.js",function(M,X){"use strict";Object.defineProperty(M,"pad",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"echoKey",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"modeOf",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"daysInMonth",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"fieldsOfDate",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"parseValue",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"isoOf",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"displayOf",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"withinRange",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"weekdayName",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"monthTitle",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"yearTitle",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"dispatchChange",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"is12Hour",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"dayPeriods",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"to24Hour",{enumerable:!0,get:function(){return n}}),Object.defineProperty(M,"parseDay",{enumerable:!0,get:function(){return a}}),Object.defineProperty(M,"dayISO",{enumerable:!0,get:function(){return m}}),Object.defineProperty(M,"dayNumber",{enumerable:!0,get:function(){return E}}),Object.defineProperty(M,"dayNumberOf",{enumerable:!0,get:function(){return _}}),Object.defineProperty(M,"dayOfNumber",{enumerable:!0,get:function(){return c}}),Object.defineProperty(M,"parseMonth",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"monthISO",{enumerable:!0,get:function(){return o}}),Object.defineProperty(M,"monthIndex",{enumerable:!0,get:function(){return d}}),Object.defineProperty(M,"monthOfIndex",{enumerable:!0,get:function(){return l}}),Object.defineProperty(M,"isoWeek",{enumerable:!0,get:function(){return s}});function e(r){return String(r).padStart(2,"0")}function U(r){return r}function O(r){return r.mode==="date-time"||r.mode==="time"?r.mode:"date"}function re(r,i){return new Date(r,i,0).getDate()}function g(r,i){if(!(i instanceof Date)||Number.isNaN(i.getTime()))return null;const B={y:i.getFullYear(),mo:i.getMonth()+1,d:i.getDate(),h:i.getHours(),mi:i.getMinutes()},z=r.timeZone;if(!z)return B;try{const W=new Intl.DateTimeFormat("en-US",{timeZone:z,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(i),b={y:0,mo:1,d:1,h:0,mi:0};for(const J of W)J.type==="year"?b.y=Number(J.value):J.type==="month"?b.mo=Number(J.value):J.type==="day"?b.d=Number(J.value):J.type==="hour"?b.h=Number(J.value)%24:J.type==="minute"&&(b.mi=Number(J.value));return b}catch{return B}}function L(r,i){if(i==null||i==="")return null;if(typeof i=="number")return g(r,new Date(i));if(i instanceof Date)return g(r,i);if(typeof i=="string"){const B=i.trim();if(O(r)==="time"){const W=/^(\d{1,2}):(\d{2})/.exec(B);return W?{y:null,mo:null,d:null,h:Number(W[1]),mi:Number(W[2])}:null}const z=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(B);return z?{y:Number(z[1]),mo:Number(z[2]),d:Number(z[3]),h:z[4]!=null?Number(z[4]):0,mi:z[5]!=null?Number(z[5]):0}:null}return null}function C(r,i){if(!i)return null;if(O(r)==="time")return`${e(i.h)}:${e(i.mi)}`;const B=`${e(i.y)}-${e(i.mo)}-${e(i.d)}`;return O(r)==="date"?B:`${B}T${e(i.h)}:${e(i.mi)}`}function A(r,i){if(!i)return"";const B=O(r);if(B==="time")return`${e(i.h)}:${e(i.mi)}`;const z=r.locale||void 0,W={dateStyle:"medium"};return B==="date-time"&&(W.timeStyle="short"),new Intl.DateTimeFormat(z,W).format(new Date(i.y,i.mo-1,i.d,i.h,i.mi))}function H(r,i){return i==null?!0:!(r.min!=null&&i<String(r.min)||r.max!=null&&i>String(r.max))}function T(r,i){return new Intl.DateTimeFormat(r.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+i))}function v(r,i){return new Intl.DateTimeFormat(r.locale||void 0,{month:"long",year:"numeric"}).format(new Date(i.y,i.mo-1,1))}function f(r){return String(r.y)}function u(r){const i=r.ownerDocument&&r.ownerDocument.defaultView,B=i&&typeof i.Event=="function"?i.Event:null;r.dispatchEvent(B?new B("change",{bubbles:!0}):{type:"change",bubbles:!0})}function h(r){try{const i=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return i==="h11"||i==="h12"}catch{return!1}}function x(r){try{const i=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric",hour12:!0}),B=i.formatToParts(new Date(2021,0,1,9)).find(W=>W.type==="dayPeriod"),z=i.formatToParts(new Date(2021,0,1,15)).find(W=>W.type==="dayPeriod");if(B&&z)return{am:B.value,pm:z.value}}catch{}return null}function t(r){const i=r%12;return i===0?12:i}function n(r,i){return i?r===12?12:r+12:r===12?0:r}function a(r){if(typeof r!="string")return null;const i=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r.trim());if(!i)return null;const B={y:Number(i[1]),mo:Number(i[2]),d:Number(i[3])};return B.mo<1||B.mo>12||B.d<1||B.d>re(B.y,B.mo)?null:B}function m(r,i,B){return`${e(r)}-${e(i)}-${e(B)}`}function E(r,i,B){return Date.UTC(r,i-1,B)/864e5}function _(r){const i=a(r);return i?E(i.y,i.mo,i.d):NaN}function c(r){const i=new Date(r*864e5);return{y:i.getUTCFullYear(),mo:i.getUTCMonth()+1,d:i.getUTCDate()}}function S(r){if(typeof r!="string")return null;const i=/^(\d{4})-(\d{2})$/.exec(r.trim());if(!i)return null;const B={y:Number(i[1]),mo:Number(i[2])};return B.mo<1||B.mo>12?null:B}function o(r,i){return`${e(r)}-${e(i)}`}function d(r,i){return r*12+(i-1)}function l(r){return{y:Math.floor(r/12),mo:r%12+1}}function s(r,i,B){const z=new Date(Date.UTC(r,i-1,B)),W=z.getUTCDay()||7;z.setUTCDate(z.getUTCDate()+4-W);const b=new Date(Date.UTC(z.getUTCFullYear(),0,1));return Math.ceil(((z-b)/864e5+1)/7)}}),je("packages/modules/form/controls/datepicker.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/date-shared.js"),C=L.pad,A=L.echoKey,H=L.modeOf,T=L.daysInMonth,v=L.parseValue,f=L.isoOf,u=L.displayOf,h=L.withinRange,x=L.weekdayName,t=L.monthTitle,n=L.dispatchChange,a=L.is12Hour,m=L.dayPeriods,E=L.to12Hour,_=L.to24Hour,c=Object.freeze(["date","date-time","time"]);function S(b,J){b.__fields=J,b.__input.value=u(b.__item,J),n(b)}function o(b,J){let{y:Q,mo:ne}=b.__view,Z=b.__cursor+J;for(;Z<1;)ne-=1,ne<1&&(ne=12,Q-=1),Z+=T(Q,ne);let Y=T(Q,ne);for(;Z>Y;)Z-=Y,ne+=1,ne>12&&(ne=1,Q+=1),Y=T(Q,ne);b.__view={y:Q,mo:ne},b.__cursor=Z,d(b)}function d(b){const J=b.__item,Q=b.ownerDocument,ne=b.__popup,Z=b.__view,Y=H(J),Ne=b.__fields;for(;ne.firstChild;)ne.removeChild(ne.firstChild);if(Y!=="time"){const ve=Q.createElement("div");ve.className="lat-form__datepicker-head";const se=Q.createElement("button");se.type="button",se.className="lat-form__datepicker-nav",se.setAttribute("aria-label",b.__t("form.datepicker.prev")),se.textContent="‹",se.addEventListener("click",()=>{l(b,-1)});const k=Q.createElement("span");k.className="lat-form__datepicker-title",k.textContent=t(J,Z);const I=Q.createElement("button");I.type="button",I.className="lat-form__datepicker-nav",I.setAttribute("aria-label",b.__t("form.datepicker.next")),I.textContent="›",I.addEventListener("click",()=>{l(b,1)}),ve.appendChild(se),ve.appendChild(k),ve.appendChild(I),ne.appendChild(ve);const F=Q.createElement("div");F.className="lat-form__datepicker-weekdays";for(let R=0;R<7;R+=1){const ee=Q.createElement("span");ee.textContent=x(J,R),F.appendChild(ee)}ne.appendChild(F);const p=Q.createElement("div");p.className="lat-form__datepicker-grid",p.setAttribute("role","grid"),p.tabIndex=0,b.__grid=p;const D=new Date(Z.y,Z.mo-1,1).getDay();for(let R=0;R<D;R+=1){const ee=Q.createElement("span");ee.className="lat-form__datepicker-blank",p.appendChild(ee)}const G=T(Z.y,Z.mo);for(let R=1;R<=G;R+=1){const ee=Q.createElement("button");ee.type="button",ee.className="lat-form__datepicker-day",ee.setAttribute("role","gridcell"),ee.textContent=String(R);const P=f(J,{y:Z.y,mo:Z.mo,d:R,h:0,mi:0});h(J,P)||(ee.disabled=!0),Ne&&Ne.y===Z.y&&Ne.mo===Z.mo&&Ne.d===R&&ee.classList.add("is-selected"),b.__cursor===R&&ee.classList.add("is-focus"),ee.addEventListener("click",()=>{const N={y:Z.y,mo:Z.mo,d:R,h:Ne?Ne.h:0,mi:Ne?Ne.mi:0};Y==="date"?(b.__cursor=R,S(b,N),W(b)):(b.__cursor=R,b.__fields=N,d(b))}),p.appendChild(ee)}ne.appendChild(p),p.addEventListener("keydown",R=>{R.key==="ArrowLeft"?(R.preventDefault(),o(b,-1)):R.key==="ArrowRight"?(R.preventDefault(),o(b,1)):R.key==="ArrowUp"?(R.preventDefault(),o(b,-7)):R.key==="ArrowDown"?(R.preventDefault(),o(b,7)):R.key==="Home"?(R.preventDefault(),b.__cursor=1,d(b)):R.key==="End"?(R.preventDefault(),b.__cursor=T(Z.y,Z.mo),d(b)):(R.key==="Enter"||R.key===" ")&&(R.preventDefault(),B(b))})}if(Y!=="date"){const ve=a(J)?m(J):null,se=!!ve,k=Q.createElement("div");k.className="lat-form__datepicker-time";const I=Q.createElement("input");I.type="number",I.className="lat-form__datepicker-hour",I.min=se?"1":"0",I.max=se?"12":"23",I.step="1",I.setAttribute("aria-label",b.__t("form.datepicker.hour"));const F=Q.createElement("span");F.textContent=":";const p=Q.createElement("input");if(p.type="number",p.className="lat-form__datepicker-minute",p.min="0",p.max="59",p.step="1",p.setAttribute("aria-label",b.__t("form.datepicker.minute")),k.appendChild(I),k.appendChild(F),k.appendChild(p),ne.appendChild(k),b.__hour=I,b.__minute=p,I.addEventListener("change",()=>{s(b)}),p.addEventListener("change",()=>{s(b)}),b.__periods=ve,b.__ampm=null,se){const G=Q.createElement("button");G.type="button",G.className="lat-form__datepicker-ampm",b.__ampm=G;const R=()=>{b.__pm=!b.__pm,G.textContent=b.__pm?b.__periods.pm:b.__periods.am,s(b)};G.addEventListener("click",R),k.appendChild(G)}const D=Q.createElement("button");D.type="button",D.className="lat-form__datepicker-done",D.textContent=b.__t("form.datepicker.done"),D.addEventListener("click",()=>{r(b)}),k.appendChild(D)}i(b)}function l(b,J){let{y:Q,mo:ne}=b.__view;ne+=J,ne<1&&(ne=12,Q-=1),ne>12&&(ne=1,Q+=1),b.__view={y:Q,mo:ne},b.__cursor=Math.min(b.__cursor,T(Q,ne)),d(b)}function s(b){const J=b.__fields;let Q=b.__hour&&Number(b.__hour.value)||0;const ne=b.__minute&&Number(b.__minute.value)||0;b.__ampm&&(Q=_(Q,b.__pm===!0));const Z=H(b.__item)==="time"?{y:null,mo:null,d:null,h:Q,mi:ne}:{y:J?J.y:b.__view.y,mo:J?J.mo:b.__view.mo,d:J?J.d:b.__cursor,h:Q,mi:ne};b.__cursor=J?J.d:b.__cursor,S(b,Z)}function r(b){b.__popup.hidden||(H(b.__item)!=="date"&&s(b),W(b))}function i(b){const J=b.__fields,Q=b.__ampm&&b.__periods;if(b.__hour){const ne=J?J.h:0;b.__hour.value=String(Q?E(ne):ne)}b.__minute&&(b.__minute.value=J?String(J.mi):"0"),b.__ampm&&b.__periods&&(b.__pm=J?J.h>=12:!1,b.__ampm.textContent=b.__pm?b.__periods.pm:b.__periods.am)}function B(b){const J=b.__view,Q=b.__fields,ne={y:J.y,mo:J.mo,d:b.__cursor,h:Q?Q.h:0,mi:Q?Q.mi:0};S(b,ne),W(b)}function z(b){if(b.__popup.hidden===!1||b.__item.disabled===!0||b.__item.readOnly===!0)return;const J=b.__fields,Q=new Date;b.__view=J&&J.y!=null?{y:J.y,mo:J.mo}:{y:Q.getFullYear(),mo:Q.getMonth()+1},b.__cursor=J&&J.d!=null?J.d:Q.getDate(),b.__popup.hidden=!1,d(b)}function W(b){b.__popup.hidden=!0}U("datepicker",{kind:"field",build(b,J){const Q=J.doc;g(Q);const ne=Q.createElement("div");ne.className="lat-form__datepicker",ne.__item=b,ne.__t=J.t||A,ne.__mode=H(b),ne.__fields=v(b,b.value),ne.__cursor=ne.__fields&&ne.__fields.d!=null?ne.__fields.d:new Date().getDate(),ne.__view=ne.__fields&&ne.__fields.y!=null?{y:ne.__fields.y,mo:ne.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const Z=Q.createElement("input");Z.type="text",Z.className="lat-form__datepicker-input",b.name&&(Z.name=b.name),b.placeholder!=null&&(Z.placeholder=String(b.placeholder)),b.label!=null&&b.label!==""&&Z.setAttribute("aria-label",String(b.label)),Z.setAttribute("autocomplete","off"),Z.value=u(b,ne.__fields),ne.__input=Z;const Y=Q.createElement("button");Y.type="button",Y.className="lat-form__datepicker-toggle";const Ne=H(b)==="date";Y.setAttribute("aria-label",ne.__t(Ne?"form.datepicker.open":"form.datepicker.openTime"));const ve=re(Q,Ne?"calendar":"clock");ve&&Y.appendChild(ve),ne.__toggle=Y;const se=Q.createElement("div");se.className="lat-form__datepicker-popup",se.hidden=!0,ne.__popup=se,ne.appendChild(Z),ne.appendChild(Y),ne.appendChild(se),Z.addEventListener("focus",()=>{z(ne)}),Y.addEventListener("click",()=>{z(ne)}),Z.addEventListener("change",()=>{const p=v(b,Z.value);p?ne.__fields=p:Z.value=u(b,ne.__fields)}),Z.addEventListener("keydown",p=>{p.key==="Escape"&&W(ne)}),ne.__ampm=null,ne.__periods=null,ne.__pm=!1;const k=p=>{ne.contains(p.target)||r(ne)},I=p=>{p.relatedTarget&&ne.contains(p.relatedTarget)||r(ne)},F=p=>{p.key==="Escape"&&(p.preventDefault(),r(ne),ne.__toggle.focus())};return Q.addEventListener("pointerdown",k),ne.addEventListener("focusout",I),se.addEventListener("keydown",F),Array.isArray(J.disposers)&&J.disposers.push(()=>{Q.removeEventListener("pointerdown",k),ne.removeEventListener("focusout",I),se.removeEventListener("keydown",F)}),ne},read(b){return f(b.__item,b.__fields)},write(b,J){b.__fields=v(b.__item,J),b.__input.value=u(b.__item,b.__fields),b.__fields&&b.__fields.y!=null&&(b.__view={y:b.__fields.y,mo:b.__fields.mo},b.__cursor=b.__fields.d)},state(b,J){b.__input.disabled=J.disabled===!0,b.__input.readOnly=J.readOnly===!0,b.__toggle.disabled=J.disabled===!0||J.readOnly===!0},validate(b,J,Q){return h(J,Q)?!0:typeof J.errorMessage=="string"&&J.errorMessage!==""?J.errorMessage:!1},focus(b){b.__input.focus()}})}),je("packages/modules/form/controls/daterange.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/date-shared.js"),C=L.echoKey,A=L.daysInMonth,H=L.weekdayName,T=L.monthTitle,v=L.yearTitle,f=L.dispatchChange,u=L.parseDay,h=L.dayISO,x=L.dayNumber,t=L.dayNumberOf,n=L.dayOfNumber,a=L.parseMonth,m=L.monthISO,E=L.monthIndex,_=L.monthOfIndex,c=L.isoWeek,S=" – ";function o(j){return j.props&&j.props.granularity==="month"?"month":"day"}function d(j){return j.props&&typeof j.props=="object"?j.props:{}}function l(j){return d(j).applyButton!==!1}function s(j){return d(j).weekNumbers===!0}function r(j){return d(j).clearable===!0}function i(j){const te=d(j).firstDay;if(te!=null){const ce=Number(te);if(Number.isFinite(ce))return(ce%7+7)%7}try{const ce=new Intl.Locale(j.locale||void 0).weekInfo;if(ce&&ce.firstDay)return ce.firstDay%7}catch{}return 0}function B(j){const te=d(j).disabledDates;if(Array.isArray(te)){const ce=new Set(te.map(String));return K=>ce.has(K)}return typeof te=="function"?ce=>te(ce)===!0:null}function z(j,te){return j.min!=null&&te<String(j.min)||j.max!=null&&te>String(j.max)}function W(j,te,ce){return!!(z(j,te)||ce&&ce(te))}function b(j,te,ce){if(j==null||te==null)return null;if(ce==="month"){const ue=a(j),be=a(te);return!ue||!be?null:E(be.y,be.mo)-E(ue.y,ue.mo)}const K=t(j),de=t(te);return Number.isNaN(K)||Number.isNaN(de)?null:de-K}function J(j,te){return o(j)==="month"?te("form.daterange.months"):te("form.daterange.days")}function Q(j,te){if(o(j)==="month")return[{label:te("form.daterange.monthThisMonth"),range:K=>[m(K.getFullYear(),K.getMonth()+1),m(K.getFullYear(),K.getMonth()+1)]},{label:te("form.daterange.monthLastMonth"),range:K=>{const de=_(E(K.getFullYear(),K.getMonth()+1)-1);return[m(de.y,de.mo),m(de.y,de.mo)]}},{label:te("form.daterange.monthLast3"),range:K=>{const de=E(K.getFullYear(),K.getMonth()+1),ue=_(de-2),be=_(de);return[m(ue.y,ue.mo),m(be.y,be.mo)]}},{label:te("form.daterange.monthLast6"),range:K=>{const de=E(K.getFullYear(),K.getMonth()+1),ue=_(de-5),be=_(de);return[m(ue.y,ue.mo),m(be.y,be.mo)]}},{label:te("form.daterange.monthLast12"),range:K=>{const de=E(K.getFullYear(),K.getMonth()+1),ue=_(de-11),be=_(de);return[m(ue.y,ue.mo),m(be.y,be.mo)]}},{label:te("form.daterange.monthThisYear"),range:K=>[m(K.getFullYear(),1),m(K.getFullYear(),12)]},{label:te("form.daterange.monthLastYear"),range:K=>[m(K.getFullYear()-1,1),m(K.getFullYear()-1,12)]}];const ce=K=>h(K.getFullYear(),K.getMonth()+1,K.getDate());return[{label:te("form.daterange.today"),range:K=>[ce(K),ce(K)]},{label:te("form.daterange.yesterday"),range:K=>{const de=n(x(K.getFullYear(),K.getMonth()+1,K.getDate())-1);return[h(de.y,de.mo,de.d),h(de.y,de.mo,de.d)]}},{label:te("form.daterange.last7"),range:K=>{const de=x(K.getFullYear(),K.getMonth()+1,K.getDate()),ue=n(de-6);return[h(ue.y,ue.mo,ue.d),ce(K)]}},{label:te("form.daterange.last30"),range:K=>{const de=x(K.getFullYear(),K.getMonth()+1,K.getDate()),ue=n(de-29);return[h(ue.y,ue.mo,ue.d),ce(K)]}},{label:te("form.daterange.thisMonth"),range:K=>[h(K.getFullYear(),K.getMonth()+1,1),h(K.getFullYear(),K.getMonth()+1,A(K.getFullYear(),K.getMonth()+1))]},{label:te("form.daterange.lastMonth"),range:K=>{const de=_(E(K.getFullYear(),K.getMonth()+1)-1);return[h(de.y,de.mo,1),h(de.y,de.mo,A(de.y,de.mo))]}}]}function ne(j,te){const ce=d(j).presets;return ce===!1?null:Array.isArray(ce)&&ce.length?ce.map(K=>({label:K&&K.label!=null?String(K.label):"",range:K&&K.range!=null?K.range:["",""]})):Q(j,te)}function Z(j,te){return j==null&&te==null?"":te==null?`${j}${S}`:`${j}${S}${te}`}function Y(j,te){const ce=String(te??"").trim();if(!ce)return{start:null,end:null};const K=o(j)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,de=[];let ue;for(;(ue=K.exec(ce))!==null;)de.push(ue[1]);if(de.length===0)return null;const be=de[0],Ce=de.length>1?de[de.length-1]:null;if(o(j)==="month"){if(!a(be)||Ce&&!a(Ce))return null}else if(!u(be)||Ce&&!u(Ce))return null;return Ce&&be>Ce?{start:Ce,end:be}:{start:be,end:Ce}}function Ne(j,te){return new Intl.DateTimeFormat(j.locale||void 0,{month:"short"}).format(new Date(2021,te-1,1))}function ve(j){const te=j.__draftStart,ce=j.__draftEnd;return te!=null&&ce!=null?[te,ce]:te!=null&&j.__hover!=null&&j.__granularity==="day"?[te,j.__hover]:te!=null&&j.__hover!=null&&j.__granularity==="month"?[te,j.__hover]:null}function se(j,te){return j>=te[0]&&j<=te[1]}function k(j,te){if(j.__granularity==="month"){const de=E(j.__cursor.y,j.__cursor.mo)+te,ue=_(de);j.__cursor=ue,I(j),ie(j);return}const ce=x(j.__cursor.y,j.__cursor.mo,j.__cursor.d)+te,K=n(ce);j.__cursor=K,I(j),ie(j)}function I(j){if(j.__granularity==="month"){j.__cursor.y<j.__view.y?j.__view={y:j.__cursor.y}:j.__cursor.y>j.__view.y+1&&(j.__view={y:j.__cursor.y-1});return}const ce=E(j.__cursor.y,j.__cursor.mo),K=E(j.__view.y,j.__view.mo);ce<K?j.__view={y:j.__cursor.y,mo:j.__cursor.mo}:ce>K+1&&(j.__view=_(ce-1))}function F(j,te){if(j.__granularity==="month"){j.__view={y:j.__view.y+te},ie(j);return}const ce=E(j.__view.y,j.__view.mo)+te,K=_(ce);j.__view=K,ie(j)}function p(j,te){return j&&te&&j.y===te.y&&j.mo===te.mo&&(j.d==null||j.d===te.d)}function D(j,te){return j.__granularity==="month"?m(te.y,te.mo):h(te.y,te.mo,te.d)}function G(j,te){const ce=D(j,te);j.__phase!=="started"?(j.__draftStart=ce,j.__draftEnd=null,j.__phase="started"):ce<j.__draftStart?(j.__draftStart=ce,j.__draftEnd=null):(j.__draftEnd=ce,j.__phase="idle",l(j.__item)||R(j,!0)),j.__cursor=te,j.__hover=null,ie(j)}function R(j,te){j.__start=j.__draftStart,j.__end=j.__draftEnd,j.__phase="idle",j.__input.value=Z(j.__start,j.__end),f(j),te&&Se(j)}function ee(j){j.__draftStart=j.__start,j.__draftEnd=j.__end,j.__phase="idle",j.__hover=null,Se(j)}function P(j){j.__start=null,j.__end=null,j.__draftStart=null,j.__draftEnd=null,j.__phase="idle",j.__input.value="",f(j)}function N(j,te,ce){for(;ce.firstChild;)ce.removeChild(ce.firstChild);const K=B(j.__item);if(j.__granularity==="month")V(j,te,ce,j.__view.y,K),V(j,te,ce,j.__view.y+1,K);else{y(j,te,ce,j.__view.y,j.__view.mo,K);const de=_(E(j.__view.y,j.__view.mo)+1);y(j,te,ce,de.y,de.mo,K)}}function y(j,te,ce,K,de,ue){const be=j.__item,Ce=te.createElement("div");Ce.className="lat-form__daterange-panel";const Ae=te.createElement("div");Ae.className="lat-form__daterange-title",Ae.textContent=T(be,{y:K,mo:de}),Ce.appendChild(Ae);const ye=i(be),me=s(be),we=te.createElement("div");if(we.className=me?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",me){const xe=te.createElement("span");xe.className="lat-form__daterange-weeknum-head",we.appendChild(xe)}for(let xe=0;xe<7;xe+=1){const Te=te.createElement("span");Te.textContent=H(be,(ye+xe)%7),we.appendChild(Te)}Ce.appendChild(we);const q=te.createElement("div");q.className=me?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",q.setAttribute("role","grid"),q.setAttribute("aria-label",T(be,{y:K,mo:de})),q.tabIndex=0,Ce.appendChild(q);const he=(new Date(K,de-1,1).getDay()-ye+7)%7,Me=A(K,de),Fe=x(K,de,1)-he,fe=[];for(let xe=0;xe<he;xe+=1){me&&xe%7===0&&q.appendChild($(j,te,Fe));const Te=te.createElement("span");Te.className="lat-form__daterange-blank",q.appendChild(Te)}for(let xe=1;xe<=Me;xe+=1){me&&(he+xe-1)%7===0&&q.appendChild($(j,te,Fe+(he+xe-1)));const Te=w(j,te,K,de,xe,ue);fe.push(Te),q.appendChild(Te)}oe(j,q,fe),ce.appendChild(Ce)}function $(j,te,ce){const K=te.createElement("span");K.className="lat-form__daterange-weeknum";const de=new Date(ce*864e5),ue=ce-(de.getUTCDay()+6)%7,be=new Date(ue*864e5);return K.textContent=String(c(be.getUTCFullYear(),be.getUTCMonth()+1,be.getUTCDate())),K}function w(j,te,ce,K,de,ue){const be=h(ce,K,de),Ce=te.createElement("button");Ce.type="button",Ce.className="lat-form__daterange-day",Ce.setAttribute("role","gridcell"),Ce.textContent=String(de);const Ae=ve(j),ye=Ae?se(be,Ae):!1,me=W(j.__item,be,ue);return me&&(Ce.disabled=!0),ye&&Ce.classList.add("is-in-range"),j.__draftStart===be&&Ce.classList.add("is-start"),j.__draftEnd===be&&Ce.classList.add("is-end"),Ce.setAttribute("aria-selected",ye&&!me?"true":"false"),j.__cursor&&j.__cursor.y===ce&&j.__cursor.mo===K&&j.__cursor.d===de&&Ce.classList.add("is-focus"),Ce.addEventListener("click",()=>{G(j,{y:ce,mo:K,d:de})}),Ce.addEventListener("mouseover",()=>{j.__draftStart!=null&&j.__draftEnd==null&&!me&&j.__hover!==be&&(j.__hover=be,ie(j))}),Ce}function V(j,te,ce,K,de){const ue=j.__item,be=te.createElement("div");be.className="lat-form__daterange-panel";const Ce=te.createElement("div");Ce.className="lat-form__daterange-title",Ce.textContent=v({y:K}),be.appendChild(Ce);const Ae=te.createElement("div");Ae.className="lat-form__daterange-grid lat-form__daterange-grid--months",Ae.setAttribute("role","grid"),Ae.setAttribute("aria-label",v({y:K})),be.appendChild(Ae);const ye=[];for(let me=1;me<=12;me+=1){const we=m(K,me),q=te.createElement("button");q.type="button",q.className="lat-form__daterange-month",q.setAttribute("role","gridcell"),q.textContent=Ne(ue,me);const $e=ve(j),he=$e?se(we,$e):!1,Me=W(ue,we,de);Me&&(q.disabled=!0),he&&q.classList.add("is-in-range"),j.__draftStart===we&&q.classList.add("is-start"),j.__draftEnd===we&&q.classList.add("is-end"),q.setAttribute("aria-selected",he&&!Me?"true":"false"),j.__cursor&&j.__cursor.y===K&&j.__cursor.mo===me&&j.__cursor.d==null&&q.classList.add("is-focus"),q.addEventListener("click",()=>{G(j,{y:K,mo:me})}),ye.push(q),Ae.appendChild(q)}Ae.addEventListener("keydown",me=>{if(me.key==="ArrowLeft")me.preventDefault(),k(j,-1);else if(me.key==="ArrowRight")me.preventDefault(),k(j,1);else if(me.key==="ArrowUp")me.preventDefault(),k(j,-3);else if(me.key==="ArrowDown")me.preventDefault(),k(j,3);else if(me.key==="PageUp")me.preventDefault(),F(j,-1);else if(me.key==="PageDown")me.preventDefault(),F(j,1);else if(me.key==="Enter"||me.key===" "){me.preventDefault();const we=D(j,j.__cursor);W(j.__item,we,de)||G(j,j.__cursor)}}),ce.appendChild(be)}function oe(j,te,ce){te.addEventListener("keydown",K=>{const de=j.__cursor;if(K.key==="ArrowLeft")K.preventDefault(),k(j,-1);else if(K.key==="ArrowRight")K.preventDefault(),k(j,1);else if(K.key==="ArrowUp")K.preventDefault(),k(j,-7);else if(K.key==="ArrowDown")K.preventDefault(),k(j,7);else if(K.key==="PageUp")K.shiftKey?(K.preventDefault(),F(j,-12)):(K.preventDefault(),F(j,-1));else if(K.key==="PageDown")K.shiftKey?(K.preventDefault(),F(j,12)):(K.preventDefault(),F(j,1));else if((K.key==="Enter"||K.key===" ")&&(K.preventDefault(),de&&de.d!=null)){const ue=h(de.y,de.mo,de.d);W(j.__item,ue,B(j.__item))||G(j,de)}})}function ie(j){const te=j.ownerDocument,ce=j.__popup,K=j.__item;for(;ce.firstChild;)ce.removeChild(ce.firstChild);const de=te.createElement("div");de.className="lat-form__daterange-head";const ue=te.createElement("button");ue.type="button",ue.className="lat-form__daterange-nav",ue.setAttribute("aria-label",j.__t("form.daterange.prev")),ue.textContent="‹",ue.addEventListener("click",()=>{F(j,-1)});const be=te.createElement("button");be.type="button",be.className="lat-form__daterange-nav",be.setAttribute("aria-label",j.__t("form.daterange.next")),be.textContent="›",be.addEventListener("click",()=>{F(j,1)}),de.appendChild(ue);const Ce=te.createElement("div");Ce.className="lat-form__daterange-body";const Ae=ne(K,j.__t);if(Ae){const me=te.createElement("div");me.className="lat-form__daterange-presets";const we=te.createElement("div");we.className="lat-form__daterange-presets-title",we.textContent=j.__t("form.daterange.presets"),me.appendChild(we);for(const q of Ae){const $e=te.createElement("button");$e.type="button",$e.className="lat-form__daterange-preset",$e.textContent=q.label,$e.addEventListener("click",()=>{_e(j,q.range)}),me.appendChild($e)}Ce.appendChild(me)}const ye=te.createElement("div");if(ye.className="lat-form__daterange-panels",N(j,te,ye),Ce.appendChild(ye),de.appendChild(Ce),de.appendChild(be),ce.appendChild(de),l(K)){const me=te.createElement("div");me.className="lat-form__daterange-footer";const we=te.createElement("button");we.type="button",we.className="lat-form__daterange-cancel",we.textContent=j.__t("form.daterange.cancel"),we.addEventListener("click",()=>{ee(j)});const q=te.createElement("button");q.type="button",q.className="lat-form__daterange-apply",q.textContent=j.__t("form.daterange.apply"),q.addEventListener("click",()=>{R(j,!0)}),me.appendChild(we),me.appendChild(q),ce.appendChild(me)}}function _e(j,te){const ce=typeof te=="function"?te(new Date):te;if(!(!Array.isArray(ce)||ce.length<2)){if(j.__draftStart=ce[0],j.__draftEnd=ce[1],j.__phase="idle",j.__hover=null,j.__granularity==="day"){const K=u(ce[0]);K&&(j.__view={y:K.y,mo:K.mo}),j.__cursor=K||j.__cursor}else{const K=a(ce[0]);K&&(j.__view={y:K.y}),j.__cursor=K||j.__cursor}ie(j)}}function Oe(j){if(j.__popup.hidden===!1||j.__item.disabled===!0||j.__item.readOnly===!0)return;j.__draftStart=j.__start,j.__draftEnd=j.__end,j.__phase="idle",j.__hover=null;const te=new Date;if(j.__granularity==="month"){const ce=a(j.__start)||{y:te.getFullYear(),mo:te.getMonth()+1};j.__view={y:ce.y},j.__cursor=ce}else{const ce=u(j.__start)||{y:te.getFullYear(),mo:te.getMonth()+1,d:te.getDate()};j.__view={y:ce.y,mo:ce.mo},j.__cursor=ce}j.__popup.hidden=!1,ie(j)}function Se(j){j.__popup.hidden=!0}U("daterange",{kind:"field",build(j,te){const ce=te.doc;g(ce);const K=ce.createElement("div");K.className="lat-form__daterange",K.__item=j,K.__t=te.t||C,K.__granularity=o(j),K.__start=null,K.__end=null,K.__draftStart=null,K.__draftEnd=null,K.__hover=null,K.__phase="idle";const de=typeof j.value=="object"&&j.value!=null?j.value:{};de&&de.start!=null&&(K.__start=String(de.start)),de&&de.end!=null&&(K.__end=String(de.end));const ue=ce.createElement("input");ue.type="text",ue.className="lat-form__daterange-input",j.name&&(ue.name=j.name),j.placeholder!=null&&(ue.placeholder=String(j.placeholder)),j.label!=null&&j.label!==""&&ue.setAttribute("aria-label",String(j.label)),ue.setAttribute("autocomplete","off"),ue.value=Z(K.__start,K.__end),K.__input=ue;const be=ce.createElement("button");be.type="button",be.className="lat-form__daterange-toggle",be.setAttribute("aria-label",K.__t("form.daterange.open"));const Ce=re(ce,"calendar");Ce&&be.appendChild(Ce),K.__toggle=be;const Ae=ce.createElement("button");Ae.type="button",Ae.className="lat-form__daterange-clear",Ae.setAttribute("aria-label",K.__t("form.daterange.clear"));const ye=re(ce,"close");ye&&Ae.appendChild(ye),Ae.hidden=!r(j)||K.__start==null&&K.__end==null,K.__clear=Ae;const me=ce.createElement("div");me.className="lat-form__daterange-popup",me.hidden=!0,K.__popup=me,K.appendChild(ue),K.appendChild(Ae),K.appendChild(be),K.appendChild(me),ue.addEventListener("focus",()=>{Oe(K)}),be.addEventListener("click",()=>{Oe(K)}),Ae.addEventListener("click",()=>{P(K)}),ue.addEventListener("change",()=>{const he=Y(j,ue.value);he?(K.__start=he.start,K.__end=he.end,ue.value=Z(he.start,he.end)):ue.value=Z(K.__start,K.__end)}),ue.addEventListener("keydown",he=>{he.key==="Escape"&&(ee(K),K.__toggle.focus())});const we=he=>{K.contains(he.target)||ee(K)},q=he=>{he.relatedTarget&&K.contains(he.relatedTarget)||ee(K)},$e=he=>{he.key==="Escape"&&(he.preventDefault(),ee(K),K.__toggle.focus())};return ce.addEventListener("pointerdown",we),K.addEventListener("focusout",q),me.addEventListener("keydown",$e),Array.isArray(te.disposers)&&te.disposers.push(()=>{ce.removeEventListener("pointerdown",we),K.removeEventListener("focusout",q),me.removeEventListener("keydown",$e)}),K},read(j){return{start:j.__start,end:j.__end}},write(j,te){const ce=te&&typeof te=="object"?te:{};j.__start=ce.start!=null?String(ce.start):null,j.__end=ce.end!=null?String(ce.end):null,j.__input.value=Z(j.__start,j.__end),j.__clear&&(j.__clear.hidden=!r(j.__item)||j.__start==null&&j.__end==null)},state(j,te){j.__input.disabled=te.disabled===!0,j.__input.readOnly=te.readOnly===!0,j.__toggle.disabled=te.disabled===!0||te.readOnly===!0},validate(j,te,ce){const K=ce&&typeof ce=="object"?ce:{start:null,end:null},de=K.start!=null?String(K.start):null,ue=K.end!=null?String(K.end):null,be=j.__t;if(te.required===!0&&de==null&&ue==null)return be("form.validation.required");if(de==null&&ue==null)return!0;if(de==null||ue==null)return be("form.daterange.invalid");if(z(te,de)||z(te,ue))return be("form.daterange.bounds");const Ce=b(de,ue,j.__granularity);if(Ce==null)return be("form.daterange.invalid");const Ae=d(te).minSpan,ye=d(te).maxSpan;return Ae!=null&&Ce<Number(Ae)?be("form.daterange.minSpan",{min:String(Ae),unit:J(te,be)}):ye!=null&&Ce>Number(ye)?be("form.daterange.maxSpan",{max:String(ye),unit:J(te,be)}):!0},focus(j){j.__input.focus()}})}),je("packages/modules/form/controls/file.js",function(M,X){"use strict";Object.defineProperty(M,"formatSize",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"accepts",{enumerable:!0,get:function(){return v}});const U=X("packages/modules/form/controls/registry.js").registerControl,O="lat-uploader",re="http://www.w3.org/2000/svg",g="data-lattice-uploader-styles";function L(){return`
1509
- .${O}{
1525
+ `.trim()}const N="data-lattice-form-choice-styles";function y(C){const F=C&&C.documentElement;if(!F||F.getAttribute(N))return;F.setAttribute(N,"1");const O=C.createElement("style");O.textContent=b(),(C.head||C.body||F).appendChild(O)}}),Ne("packages/modules/form/controls/radiogroup.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/options.js"),Q=$.normalizeOptions,b=$.resolveChoiceLayout,N=$.injectChoiceLayoutStyles,y=q("packages/modules/form/state.js"),C=y.applyBooleanInputState,F=y.guardBooleanInput;U("radiogroup",{kind:"field",build(O,v){const f=v.doc.createElement("div");f.className="lat-form__radiogroup",f.setAttribute("role","radiogroup"),O.label!=null&&O.label!==""&&f.setAttribute("aria-label",String(O.label));const u=b(O);u.columns>0?(N(v.doc),f.classList.add("lat-form__radiogroup--columns"),f.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(N(v.doc),f.classList.add("lat-form__radiogroup--horizontal")),f.setAttribute("aria-orientation",u.orientation);const d=[];for(const _ of Q(O.options)){const t=v.doc.createElement("label");t.className="lat-form__choice";const r=v.doc.createElement("input");r.type="radio",O.name&&(r.name=O.name),r.value=_.value,r.checked=O.value!=null&&String(O.value)===_.value,F(r),t.appendChild(r);const o=v.doc.createElement("span");o.textContent=_.label,t.appendChild(o),f.appendChild(t),d.push(r)}return f.__radios=d,f},read(O){const v=O.__radios.find(f=>f.checked);return v?v.value:null},write(O,v){const f=v==null?null:String(v);for(const u of O.__radios)u.checked=f!==null&&u.value===f},state(O,v){const f=v.readOnly===!0;for(const u of O.__radios)C(u,v.disabled===!0,f);f?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly")},focus(O){const v=O.__radios.find(f=>!f.disabled);v&&v.focus()}})}),Ne("packages/modules/form/controls/checkboxgroup.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/options.js"),Q=$.normalizeOptions,b=$.resolveChoiceLayout,N=$.injectChoiceLayoutStyles,y=q("packages/modules/form/state.js"),C=y.applyBooleanInputState,F=y.guardBooleanInput;U("checkboxgroup",{kind:"field",build(O,v){const f=v.doc.createElement("div");f.className="lat-form__checkboxgroup",f.setAttribute("role","group"),O.label!=null&&O.label!==""&&f.setAttribute("aria-label",String(O.label));const u=b(O);u.columns>0?(N(v.doc),f.classList.add("lat-form__checkboxgroup--columns"),f.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(N(v.doc),f.classList.add("lat-form__checkboxgroup--horizontal"));const d=[],_=Array.isArray(O.value)?O.value.map(String):[];for(const t of Q(O.options)){const r=v.doc.createElement("label");r.className="lat-form__choice";const o=v.doc.createElement("input");o.type="checkbox",O.name&&(o.name=O.name),o.value=t.value,o.checked=_.includes(t.value),F(o),r.appendChild(o);const p=v.doc.createElement("span");p.textContent=t.label,r.appendChild(p),f.appendChild(r),d.push(o)}return f.__boxes=d,f},read(O){return O.__boxes.filter(v=>v.checked).map(v=>v.value)},write(O,v){const f=Array.isArray(v)?v.map(String):[];for(const u of O.__boxes)u.checked=f.includes(u.value)},state(O,v){const f=v.readOnly===!0;for(const u of O.__boxes)C(u,v.disabled===!0,f);f?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly")},focus(O){const v=O.__boxes.find(f=>!f.disabled);v&&v.focus()}})}),Ne("packages/modules/form/controls/toggle.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/state.js"),Q=$.applyBooleanInputState,b=$.guardBooleanInput,N=Object.freeze(["small","default","large"]),y=Object.freeze(["round","square","slim"]),C=Object.freeze(["inside","before","after"]);function F(t){return N.includes(t)?t:"default"}function O(t){return y.includes(t)?t:"round"}function v(t){return C.includes(t)?t:"inside"}function f(t){return t==null?"":String(t)}function u(t){return t.__latToggle?t.__latToggle.input:t}function d(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function _(t,r,o){const p=r&&r.defaultView,A=p&&p.Event,g=A?new A(o,{bubbles:!0}):{type:o,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(g)}U("toggle",{kind:"toggle",build(t,r){const o=t.props||{},p=r.doc.createElement("input");p.type="checkbox",p.className="lat-form__toggle",p.setAttribute("role","switch"),t.name&&(p.name=t.name),p.checked=t.value===!0,b(p),o.size!=null&&p.setAttribute("data-size",F(o.size)),o.variant!=null&&p.setAttribute("data-variant",O(o.variant));const A=f(o.onLabel),g=f(o.offLabel);if(A===""&&g==="")return p;const h=r.doc.createElement("span");h.className="lat-form__toggle-field",h.setAttribute("data-label-position",v(o.labelPosition)),h.appendChild(p);const T=r.doc.createElement("span");T.className="lat-form__toggle-label",h.appendChild(T);const c={input:p,label:T,onLabel:A,offLabel:g};h.__latToggle=c,d(c),p.addEventListener("change",()=>d(c));let l=!1;return h.addEventListener("focusin",()=>{l||(l=!0,_(h,r.doc,"focus"))}),h.addEventListener("focusout",a=>{h.contains(a.relatedTarget)||(l=!1,_(h,r.doc,"blur"))}),h},read(t){return u(t).checked},write(t,r){const o=u(t);o.checked=r===!0,d(t.__latToggle)},state(t,r){Q(u(t),r.disabled===!0,r.readOnly===!0)},focus(t){const r=u(t);typeof r.focus=="function"&&r.focus()},blur(t){const r=u(t);typeof r.blur=="function"&&r.blur()}})}),Ne("packages/modules/form/controls/date-shared.js",function(S,q){"use strict";Object.defineProperty(S,"pad",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"echoKey",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"modeOf",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"daysInMonth",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"fieldsOfDate",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"parseValue",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"isoOf",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"displayOf",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"withinRange",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"weekdayName",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"monthTitle",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"yearTitle",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"dispatchChange",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"is12Hour",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"dayPeriods",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"to24Hour",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"parseDay",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"dayISO",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"dayNumber",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"dayNumberOf",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"dayOfNumber",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"parseMonth",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"monthISO",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"monthIndex",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"monthOfIndex",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"isoWeek",{enumerable:!0,get:function(){return i}});function e(n){return String(n).padStart(2,"0")}function U(n){return n}function $(n){return n.mode==="date-time"||n.mode==="time"?n.mode:"date"}function Q(n,s){return new Date(n,s,0).getDate()}function b(n,s){if(!(s instanceof Date)||Number.isNaN(s.getTime()))return null;const I={y:s.getFullYear(),mo:s.getMonth()+1,d:s.getDate(),h:s.getHours(),mi:s.getMinutes()},z=n.timeZone;if(!z)return I;try{const Y=new Intl.DateTimeFormat("en-US",{timeZone:z,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(s),B={y:0,mo:1,d:1,h:0,mi:0};for(const ee of Y)ee.type==="year"?B.y=Number(ee.value):ee.type==="month"?B.mo=Number(ee.value):ee.type==="day"?B.d=Number(ee.value):ee.type==="hour"?B.h=Number(ee.value)%24:ee.type==="minute"&&(B.mi=Number(ee.value));return B}catch{return I}}function N(n,s){if(s==null||s==="")return null;if(typeof s=="number")return b(n,new Date(s));if(s instanceof Date)return b(n,s);if(typeof s=="string"){const I=s.trim();if($(n)==="time"){const Y=/^(\d{1,2}):(\d{2})/.exec(I);return Y?{y:null,mo:null,d:null,h:Number(Y[1]),mi:Number(Y[2])}:null}const z=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(I);return z?{y:Number(z[1]),mo:Number(z[2]),d:Number(z[3]),h:z[4]!=null?Number(z[4]):0,mi:z[5]!=null?Number(z[5]):0}:null}return null}function y(n,s){if(!s)return null;if($(n)==="time")return`${e(s.h)}:${e(s.mi)}`;const I=`${e(s.y)}-${e(s.mo)}-${e(s.d)}`;return $(n)==="date"?I:`${I}T${e(s.h)}:${e(s.mi)}`}function C(n,s){if(!s)return"";const I=$(n);if(I==="time")return`${e(s.h)}:${e(s.mi)}`;const z=n.locale||void 0,Y={dateStyle:"medium"};return I==="date-time"&&(Y.timeStyle="short"),new Intl.DateTimeFormat(z,Y).format(new Date(s.y,s.mo-1,s.d,s.h,s.mi))}function F(n,s){return s==null?!0:!(n.min!=null&&s<String(n.min)||n.max!=null&&s>String(n.max))}function O(n,s){return new Intl.DateTimeFormat(n.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+s))}function v(n,s){return new Intl.DateTimeFormat(n.locale||void 0,{month:"long",year:"numeric"}).format(new Date(s.y,s.mo-1,1))}function f(n){return String(n.y)}function u(n){const s=n.ownerDocument&&n.ownerDocument.defaultView,I=s&&typeof s.Event=="function"?s.Event:null;n.dispatchEvent(I?new I("change",{bubbles:!0}):{type:"change",bubbles:!0})}function d(n){try{const s=new Intl.DateTimeFormat(n.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return s==="h11"||s==="h12"}catch{return!1}}function _(n){try{const s=new Intl.DateTimeFormat(n.locale||void 0,{hour:"numeric",hour12:!0}),I=s.formatToParts(new Date(2021,0,1,9)).find(Y=>Y.type==="dayPeriod"),z=s.formatToParts(new Date(2021,0,1,15)).find(Y=>Y.type==="dayPeriod");if(I&&z)return{am:I.value,pm:z.value}}catch{}return null}function t(n){const s=n%12;return s===0?12:s}function r(n,s){return s?n===12?12:n+12:n===12?0:n}function o(n){if(typeof n!="string")return null;const s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n.trim());if(!s)return null;const I={y:Number(s[1]),mo:Number(s[2]),d:Number(s[3])};return I.mo<1||I.mo>12||I.d<1||I.d>Q(I.y,I.mo)?null:I}function p(n,s,I){return`${e(n)}-${e(s)}-${e(I)}`}function A(n,s,I){return Date.UTC(n,s-1,I)/864e5}function g(n){const s=o(n);return s?A(s.y,s.mo,s.d):NaN}function h(n){const s=new Date(n*864e5);return{y:s.getUTCFullYear(),mo:s.getUTCMonth()+1,d:s.getUTCDate()}}function T(n){if(typeof n!="string")return null;const s=/^(\d{4})-(\d{2})$/.exec(n.trim());if(!s)return null;const I={y:Number(s[1]),mo:Number(s[2])};return I.mo<1||I.mo>12?null:I}function c(n,s){return`${e(n)}-${e(s)}`}function l(n,s){return n*12+(s-1)}function a(n){return{y:Math.floor(n/12),mo:n%12+1}}function i(n,s,I){const z=new Date(Date.UTC(n,s-1,I)),Y=z.getUTCDay()||7;z.setUTCDate(z.getUTCDate()+4-Y);const B=new Date(Date.UTC(z.getUTCFullYear(),0,1));return Math.ceil(((z-B)/864e5+1)/7)}}),Ne("packages/modules/form/controls/datepicker.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),Q=$.makeFieldIcon,b=$.injectFieldIconStyles,N=q("packages/modules/form/controls/date-shared.js"),y=N.pad,C=N.echoKey,F=N.modeOf,O=N.daysInMonth,v=N.parseValue,f=N.isoOf,u=N.displayOf,d=N.withinRange,_=N.weekdayName,t=N.monthTitle,r=N.dispatchChange,o=N.is12Hour,p=N.dayPeriods,A=N.to12Hour,g=N.to24Hour,T=q("packages/modules/form/controls/popup-layer.js").openInLayer,c=Object.freeze(["date","date-time","time"]),l="lat-form__datepicker-popup--above";function a(H,Z){H.__fields=Z,H.__input.value=u(H.__item,Z),r(H)}function i(H,Z){let{y:G,mo:ge}=H.__view,ye=H.__cursor+Z;for(;ye<1;)ge-=1,ge<1&&(ge=12,G-=1),ye+=O(G,ge);let le=O(G,ge);for(;ye>le;)ye-=le,ge+=1,ge>12&&(ge=1,G+=1),le=O(G,ge);H.__view={y:G,mo:ge},H.__cursor=ye,n(H)}function n(H){const Z=H.__item,G=H.ownerDocument,ge=H.__popup,ye=H.__view,le=F(Z),w=H.__fields;for(;ge.firstChild;)ge.removeChild(ge.firstChild);if(le!=="time"){const M=G.createElement("div");M.className="lat-form__datepicker-head";const D=G.createElement("button");D.type="button",D.className="lat-form__datepicker-nav",D.setAttribute("aria-label",H.__t("form.datepicker.prev")),D.textContent="‹",D.addEventListener("click",()=>{s(H,-1)});const m=G.createElement("span");m.className="lat-form__datepicker-title",m.textContent=t(Z,ye);const P=G.createElement("button");P.type="button",P.className="lat-form__datepicker-nav",P.setAttribute("aria-label",H.__t("form.datepicker.next")),P.textContent="›",P.addEventListener("click",()=>{s(H,1)}),M.appendChild(D),M.appendChild(m),M.appendChild(P),ge.appendChild(M);const X=G.createElement("div");X.className="lat-form__datepicker-weekdays";for(let j=0;j<7;j+=1){const x=G.createElement("span");x.textContent=_(Z,j),X.appendChild(x)}ge.appendChild(X);const L=G.createElement("div");L.className="lat-form__datepicker-grid",L.setAttribute("role","grid"),L.tabIndex=0,H.__grid=L;const te=new Date(ye.y,ye.mo-1,1).getDay();for(let j=0;j<te;j+=1){const x=G.createElement("span");x.className="lat-form__datepicker-blank",L.appendChild(x)}const re=O(ye.y,ye.mo);for(let j=1;j<=re;j+=1){const x=G.createElement("button");x.type="button",x.className="lat-form__datepicker-day",x.setAttribute("role","gridcell"),x.textContent=String(j);const K=f(Z,{y:ye.y,mo:ye.mo,d:j,h:0,mi:0});d(Z,K)||(x.disabled=!0),w&&w.y===ye.y&&w.mo===ye.mo&&w.d===j&&x.classList.add("is-selected"),H.__cursor===j&&x.classList.add("is-focus"),x.addEventListener("click",()=>{const V={y:ye.y,mo:ye.mo,d:j,h:w?w.h:0,mi:w?w.mi:0};le==="date"?(H.__cursor=j,a(H,V),oe(H)):(H.__cursor=j,H.__fields=V,n(H))}),L.appendChild(x)}ge.appendChild(L),L.addEventListener("keydown",j=>{j.key==="ArrowLeft"?(j.preventDefault(),i(H,-1)):j.key==="ArrowRight"?(j.preventDefault(),i(H,1)):j.key==="ArrowUp"?(j.preventDefault(),i(H,-7)):j.key==="ArrowDown"?(j.preventDefault(),i(H,7)):j.key==="Home"?(j.preventDefault(),H.__cursor=1,n(H)):j.key==="End"?(j.preventDefault(),H.__cursor=O(ye.y,ye.mo),n(H)):(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),B(H))})}if(le!=="date"){const M=o(Z)?p(Z):null,D=!!M,m=G.createElement("div");m.className="lat-form__datepicker-time";const P=G.createElement("input");P.type="number",P.className="lat-form__datepicker-hour",P.min=D?"1":"0",P.max=D?"12":"23",P.step="1",P.setAttribute("aria-label",H.__t("form.datepicker.hour"));const X=G.createElement("span");X.textContent=":";const L=G.createElement("input");if(L.type="number",L.className="lat-form__datepicker-minute",L.min="0",L.max="59",L.step="1",L.setAttribute("aria-label",H.__t("form.datepicker.minute")),m.appendChild(P),m.appendChild(X),m.appendChild(L),ge.appendChild(m),H.__hour=P,H.__minute=L,P.addEventListener("change",()=>{I(H)}),L.addEventListener("change",()=>{I(H)}),H.__periods=M,H.__ampm=null,D){const re=G.createElement("button");re.type="button",re.className="lat-form__datepicker-ampm",H.__ampm=re;const j=()=>{H.__pm=!H.__pm,re.textContent=H.__pm?H.__periods.pm:H.__periods.am,I(H)};re.addEventListener("click",j),m.appendChild(re)}const te=G.createElement("button");te.type="button",te.className="lat-form__datepicker-done",te.textContent=H.__t("form.datepicker.done"),te.addEventListener("click",()=>{z(H)}),m.appendChild(te)}Y(H)}function s(H,Z){let{y:G,mo:ge}=H.__view;ge+=Z,ge<1&&(ge=12,G-=1),ge>12&&(ge=1,G+=1),H.__view={y:G,mo:ge},H.__cursor=Math.min(H.__cursor,O(G,ge)),n(H)}function I(H){const Z=H.__fields;let G=H.__hour&&Number(H.__hour.value)||0;const ge=H.__minute&&Number(H.__minute.value)||0;H.__ampm&&(G=g(G,H.__pm===!0));const ye=F(H.__item)==="time"?{y:null,mo:null,d:null,h:G,mi:ge}:{y:Z?Z.y:H.__view.y,mo:Z?Z.mo:H.__view.mo,d:Z?Z.d:H.__cursor,h:G,mi:ge};H.__cursor=Z?Z.d:H.__cursor,a(H,ye),Y(H)}function z(H){H.__popup.hidden||(F(H.__item)!=="date"&&I(H),oe(H))}function Y(H){const Z=H.__fields,G=H.__ampm&&H.__periods;if(H.__hour){const ge=Z?Z.h:0;H.__hour.value=y(G?A(ge):ge)}H.__minute&&(H.__minute.value=y(Z?Z.mi:0)),H.__ampm&&H.__periods&&(H.__pm=Z?Z.h>=12:!1,H.__ampm.textContent=H.__pm?H.__periods.pm:H.__periods.am)}function B(H){const Z=H.__view,G=H.__fields,ge={y:Z.y,mo:Z.mo,d:H.__cursor,h:G?G.h:0,mi:G?G.mi:0};a(H,ge),oe(H)}function ee(H){if(H.__popup.hidden===!1||H.__item.disabled===!0||H.__item.readOnly===!0)return;const Z=H.__fields,G=new Date;H.__view=Z&&Z.y!=null?{y:Z.y,mo:Z.mo}:{y:G.getFullYear(),mo:G.getMonth()+1},H.__cursor=Z&&Z.d!=null?Z.d:G.getDate(),H.__popup.hidden=!1,n(H),H.__layer=T(H.__popup,H,{aboveClass:l,matchWidth:!1,onOffscreen:()=>oe(H)})}function oe(H){H.__popup.hidden=!0,H.__popup.classList.remove(l),H.__layer&&(H.__layer.close(),H.__layer=null)}U("datepicker",{kind:"field",build(H,Z){const G=Z.doc;b(G);const ge=G.createElement("div");ge.className="lat-form__datepicker",ge.__item=H,ge.__t=Z.t||C,ge.__mode=F(H),ge.__fields=v(H,H.value),ge.__cursor=ge.__fields&&ge.__fields.d!=null?ge.__fields.d:new Date().getDate(),ge.__view=ge.__fields&&ge.__fields.y!=null?{y:ge.__fields.y,mo:ge.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const ye=G.createElement("input");ye.type="text",ye.className="lat-form__datepicker-input",H.name&&(ye.name=H.name),H.placeholder!=null&&(ye.placeholder=String(H.placeholder)),H.label!=null&&H.label!==""&&ye.setAttribute("aria-label",String(H.label)),ye.setAttribute("autocomplete","off"),ye.value=u(H,ge.__fields),ge.__input=ye;const le=G.createElement("button");le.type="button",le.className="lat-form__datepicker-toggle";const w=F(H)==="date";le.setAttribute("aria-label",ge.__t(w?"form.datepicker.open":"form.datepicker.openTime"));const M=Q(G,w?"calendar":"clock");M&&le.appendChild(M),ge.__toggle=le;const D=G.createElement("div");D.className="lat-form__datepicker-popup lat-form__datepicker",D.hidden=!0,ge.__popup=D,ge.appendChild(ye),ge.appendChild(le),ge.appendChild(D),ye.addEventListener("focus",()=>{ee(ge)}),le.addEventListener("click",()=>{ee(ge)}),ye.addEventListener("change",()=>{const L=v(H,ye.value);L?ge.__fields=L:ye.value=u(H,ge.__fields)}),ye.addEventListener("keydown",L=>{L.key==="Escape"&&oe(ge)}),ge.__ampm=null,ge.__periods=null,ge.__pm=!1;const m=L=>{ge.contains(L.target)||D.contains(L.target)||z(ge)},P=L=>{(ge.contains(L.target)||D.contains(L.target))&&(L.relatedTarget&&(ge.contains(L.relatedTarget)||D.contains(L.relatedTarget))||z(ge))},X=L=>{L.key==="Escape"&&(L.preventDefault(),z(ge),ge.__toggle.focus())};return G.addEventListener("pointerdown",m),G.addEventListener("focusout",P),D.addEventListener("keydown",X),Array.isArray(Z.disposers)&&Z.disposers.push(()=>{oe(ge),G.removeEventListener("pointerdown",m),G.removeEventListener("focusout",P),D.removeEventListener("keydown",X)}),ge},read(H){return f(H.__item,H.__fields)},write(H,Z){H.__fields=v(H.__item,Z),H.__input.value=u(H.__item,H.__fields),H.__fields&&H.__fields.y!=null&&(H.__view={y:H.__fields.y,mo:H.__fields.mo},H.__cursor=H.__fields.d)},state(H,Z){H.__input.disabled=Z.disabled===!0,H.__input.readOnly=Z.readOnly===!0,H.__toggle.disabled=Z.disabled===!0||Z.readOnly===!0},validate(H,Z,G){return d(Z,G)?!0:typeof Z.errorMessage=="string"&&Z.errorMessage!==""?Z.errorMessage:!1},focus(H){H.__input.focus()}})}),Ne("packages/modules/form/controls/daterange.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),Q=$.makeFieldIcon,b=$.injectFieldIconStyles,N=q("packages/modules/form/controls/date-shared.js"),y=N.echoKey,C=N.daysInMonth,F=N.weekdayName,O=N.monthTitle,v=N.yearTitle,f=N.dispatchChange,u=N.parseDay,d=N.dayISO,_=N.dayNumber,t=N.dayNumberOf,r=N.dayOfNumber,o=N.parseMonth,p=N.monthISO,A=N.monthIndex,g=N.monthOfIndex,h=N.isoWeek,T=" – ";function c(k){return k.props&&k.props.granularity==="month"?"month":"day"}function l(k){return k.props&&typeof k.props=="object"?k.props:{}}function a(k){return l(k).applyButton!==!1}function i(k){return l(k).weekNumbers===!0}function n(k){return l(k).clearable===!0}function s(k){const ne=l(k).firstDay;if(ne!=null){const se=Number(ne);if(Number.isFinite(se))return(se%7+7)%7}try{const se=new Intl.Locale(k.locale||void 0).weekInfo;if(se&&se.firstDay)return se.firstDay%7}catch{}return 0}function I(k){const ne=l(k).disabledDates;if(Array.isArray(ne)){const se=new Set(ne.map(String));return J=>se.has(J)}return typeof ne=="function"?se=>ne(se)===!0:null}function z(k,ne){return k.min!=null&&ne<String(k.min)||k.max!=null&&ne>String(k.max)}function Y(k,ne,se){return!!(z(k,ne)||se&&se(ne))}function B(k,ne,se){if(k==null||ne==null)return null;if(se==="month"){const he=o(k),be=o(ne);return!he||!be?null:A(be.y,be.mo)-A(he.y,he.mo)}const J=t(k),ue=t(ne);return Number.isNaN(J)||Number.isNaN(ue)?null:ue-J}function ee(k,ne){return c(k)==="month"?ne("form.daterange.months"):ne("form.daterange.days")}function oe(k,ne){if(c(k)==="month")return[{label:ne("form.daterange.monthThisMonth"),range:J=>[p(J.getFullYear(),J.getMonth()+1),p(J.getFullYear(),J.getMonth()+1)]},{label:ne("form.daterange.monthLastMonth"),range:J=>{const ue=g(A(J.getFullYear(),J.getMonth()+1)-1);return[p(ue.y,ue.mo),p(ue.y,ue.mo)]}},{label:ne("form.daterange.monthLast3"),range:J=>{const ue=A(J.getFullYear(),J.getMonth()+1),he=g(ue-2),be=g(ue);return[p(he.y,he.mo),p(be.y,be.mo)]}},{label:ne("form.daterange.monthLast6"),range:J=>{const ue=A(J.getFullYear(),J.getMonth()+1),he=g(ue-5),be=g(ue);return[p(he.y,he.mo),p(be.y,be.mo)]}},{label:ne("form.daterange.monthLast12"),range:J=>{const ue=A(J.getFullYear(),J.getMonth()+1),he=g(ue-11),be=g(ue);return[p(he.y,he.mo),p(be.y,be.mo)]}},{label:ne("form.daterange.monthThisYear"),range:J=>[p(J.getFullYear(),1),p(J.getFullYear(),12)]},{label:ne("form.daterange.monthLastYear"),range:J=>[p(J.getFullYear()-1,1),p(J.getFullYear()-1,12)]}];const se=J=>d(J.getFullYear(),J.getMonth()+1,J.getDate());return[{label:ne("form.daterange.today"),range:J=>[se(J),se(J)]},{label:ne("form.daterange.yesterday"),range:J=>{const ue=r(_(J.getFullYear(),J.getMonth()+1,J.getDate())-1);return[d(ue.y,ue.mo,ue.d),d(ue.y,ue.mo,ue.d)]}},{label:ne("form.daterange.last7"),range:J=>{const ue=_(J.getFullYear(),J.getMonth()+1,J.getDate()),he=r(ue-6);return[d(he.y,he.mo,he.d),se(J)]}},{label:ne("form.daterange.last30"),range:J=>{const ue=_(J.getFullYear(),J.getMonth()+1,J.getDate()),he=r(ue-29);return[d(he.y,he.mo,he.d),se(J)]}},{label:ne("form.daterange.thisMonth"),range:J=>[d(J.getFullYear(),J.getMonth()+1,1),d(J.getFullYear(),J.getMonth()+1,C(J.getFullYear(),J.getMonth()+1))]},{label:ne("form.daterange.lastMonth"),range:J=>{const ue=g(A(J.getFullYear(),J.getMonth()+1)-1);return[d(ue.y,ue.mo,1),d(ue.y,ue.mo,C(ue.y,ue.mo))]}}]}function H(k,ne){const se=l(k).presets;return se===!1?null:Array.isArray(se)&&se.length?se.map(J=>({label:J&&J.label!=null?String(J.label):"",range:J&&J.range!=null?J.range:["",""]})):oe(k,ne)}function Z(k,ne){return k==null&&ne==null?"":ne==null?`${k}${T}`:`${k}${T}${ne}`}function G(k,ne){const se=String(ne??"").trim();if(!se)return{start:null,end:null};const J=c(k)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,ue=[];let he;for(;(he=J.exec(se))!==null;)ue.push(he[1]);if(ue.length===0)return null;const be=ue[0],Ee=ue.length>1?ue[ue.length-1]:null;if(c(k)==="month"){if(!o(be)||Ee&&!o(Ee))return null}else if(!u(be)||Ee&&!u(Ee))return null;return Ee&&be>Ee?{start:Ee,end:be}:{start:be,end:Ee}}function ge(k,ne){return new Intl.DateTimeFormat(k.locale||void 0,{month:"short"}).format(new Date(2021,ne-1,1))}function ye(k){const ne=k.__draftStart,se=k.__draftEnd;return ne!=null&&se!=null?[ne,se]:ne!=null&&k.__hover!=null&&k.__granularity==="day"?[ne,k.__hover]:ne!=null&&k.__hover!=null&&k.__granularity==="month"?[ne,k.__hover]:null}function le(k,ne){return k>=ne[0]&&k<=ne[1]}function w(k,ne){if(k.__granularity==="month"){const ue=A(k.__cursor.y,k.__cursor.mo)+ne,he=g(ue);k.__cursor=he,M(k),R(k);return}const se=_(k.__cursor.y,k.__cursor.mo,k.__cursor.d)+ne,J=r(se);k.__cursor=J,M(k),R(k)}function M(k){if(k.__granularity==="month"){k.__cursor.y<k.__view.y?k.__view={y:k.__cursor.y}:k.__cursor.y>k.__view.y+1&&(k.__view={y:k.__cursor.y-1});return}const se=A(k.__cursor.y,k.__cursor.mo),J=A(k.__view.y,k.__view.mo);se<J?k.__view={y:k.__cursor.y,mo:k.__cursor.mo}:se>J+1&&(k.__view=g(se-1))}function D(k,ne){if(k.__granularity==="month"){k.__view={y:k.__view.y+ne},R(k);return}const se=A(k.__view.y,k.__view.mo)+ne,J=g(se);k.__view=J,R(k)}function m(k,ne){return k&&ne&&k.y===ne.y&&k.mo===ne.mo&&(k.d==null||k.d===ne.d)}function P(k,ne){return k.__granularity==="month"?p(ne.y,ne.mo):d(ne.y,ne.mo,ne.d)}function X(k,ne){const se=P(k,ne);k.__phase!=="started"?(k.__draftStart=se,k.__draftEnd=null,k.__phase="started"):se<k.__draftStart?(k.__draftStart=se,k.__draftEnd=null):(k.__draftEnd=se,k.__phase="idle",a(k.__item)||L(k,!0)),k.__cursor=ne,k.__hover=null,R(k)}function L(k,ne){k.__start=k.__draftStart,k.__end=k.__draftEnd,k.__phase="idle",k.__input.value=Z(k.__start,k.__end),f(k),ne&&xe(k)}function te(k){k.__draftStart=k.__start,k.__draftEnd=k.__end,k.__phase="idle",k.__hover=null,xe(k)}function re(k){k.__start=null,k.__end=null,k.__draftStart=null,k.__draftEnd=null,k.__phase="idle",k.__input.value="",f(k)}function j(k,ne,se){for(;se.firstChild;)se.removeChild(se.firstChild);const J=I(k.__item);if(k.__granularity==="month")E(k,ne,se,k.__view.y,J),E(k,ne,se,k.__view.y+1,J);else{x(k,ne,se,k.__view.y,k.__view.mo,J);const ue=g(A(k.__view.y,k.__view.mo)+1);x(k,ne,se,ue.y,ue.mo,J)}}function x(k,ne,se,J,ue,he){const be=k.__item,Ee=ne.createElement("div");Ee.className="lat-form__daterange-panel";const Se=ne.createElement("div");Se.className="lat-form__daterange-title",Se.textContent=O(be,{y:J,mo:ue}),Ee.appendChild(Se);const Ae=s(be),Ce=i(be),we=ne.createElement("div");if(we.className=Ce?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Ce){const _e=ne.createElement("span");_e.className="lat-form__daterange-weeknum-head",we.appendChild(_e)}for(let _e=0;_e<7;_e+=1){const Oe=ne.createElement("span");Oe.textContent=F(be,(Ae+_e)%7),we.appendChild(Oe)}Ee.appendChild(we);const ke=ne.createElement("div");ke.className=Ce?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",ke.setAttribute("role","grid"),ke.setAttribute("aria-label",O(be,{y:J,mo:ue})),ke.tabIndex=0,Ee.appendChild(ke);const De=(new Date(J,ue-1,1).getDay()-Ae+7)%7,He=C(J,ue),de=_(J,ue,1)-De,fe=[];for(let _e=0;_e<De;_e+=1){Ce&&_e%7===0&&ke.appendChild(K(k,ne,de));const Oe=ne.createElement("span");Oe.className="lat-form__daterange-blank",ke.appendChild(Oe)}for(let _e=1;_e<=He;_e+=1){Ce&&(De+_e-1)%7===0&&ke.appendChild(K(k,ne,de+(De+_e-1)));const Oe=V(k,ne,J,ue,_e,he);fe.push(Oe),ke.appendChild(Oe)}W(k,ke,fe),se.appendChild(Ee)}function K(k,ne,se){const J=ne.createElement("span");J.className="lat-form__daterange-weeknum";const ue=new Date(se*864e5),he=se-(ue.getUTCDay()+6)%7,be=new Date(he*864e5);return J.textContent=String(h(be.getUTCFullYear(),be.getUTCMonth()+1,be.getUTCDate())),J}function V(k,ne,se,J,ue,he){const be=d(se,J,ue),Ee=ne.createElement("button");Ee.type="button",Ee.className="lat-form__daterange-day",Ee.setAttribute("role","gridcell"),Ee.textContent=String(ue);const Se=ye(k),Ae=Se?le(be,Se):!1,Ce=Y(k.__item,be,he);return Ce&&(Ee.disabled=!0),Ae&&Ee.classList.add("is-in-range"),k.__draftStart===be&&Ee.classList.add("is-start"),k.__draftEnd===be&&Ee.classList.add("is-end"),Ee.setAttribute("aria-selected",Ae&&!Ce?"true":"false"),k.__cursor&&k.__cursor.y===se&&k.__cursor.mo===J&&k.__cursor.d===ue&&Ee.classList.add("is-focus"),Ee.addEventListener("click",()=>{X(k,{y:se,mo:J,d:ue})}),Ee.addEventListener("mouseover",()=>{k.__draftStart!=null&&k.__draftEnd==null&&!Ce&&k.__hover!==be&&(k.__hover=be,R(k))}),Ee}function E(k,ne,se,J,ue){const he=k.__item,be=ne.createElement("div");be.className="lat-form__daterange-panel";const Ee=ne.createElement("div");Ee.className="lat-form__daterange-title",Ee.textContent=v({y:J}),be.appendChild(Ee);const Se=ne.createElement("div");Se.className="lat-form__daterange-grid lat-form__daterange-grid--months",Se.setAttribute("role","grid"),Se.setAttribute("aria-label",v({y:J})),be.appendChild(Se);const Ae=[];for(let Ce=1;Ce<=12;Ce+=1){const we=p(J,Ce),ke=ne.createElement("button");ke.type="button",ke.className="lat-form__daterange-month",ke.setAttribute("role","gridcell"),ke.textContent=ge(he,Ce);const Le=ye(k),De=Le?le(we,Le):!1,He=Y(he,we,ue);He&&(ke.disabled=!0),De&&ke.classList.add("is-in-range"),k.__draftStart===we&&ke.classList.add("is-start"),k.__draftEnd===we&&ke.classList.add("is-end"),ke.setAttribute("aria-selected",De&&!He?"true":"false"),k.__cursor&&k.__cursor.y===J&&k.__cursor.mo===Ce&&k.__cursor.d==null&&ke.classList.add("is-focus"),ke.addEventListener("click",()=>{X(k,{y:J,mo:Ce})}),Ae.push(ke),Se.appendChild(ke)}Se.addEventListener("keydown",Ce=>{if(Ce.key==="ArrowLeft")Ce.preventDefault(),w(k,-1);else if(Ce.key==="ArrowRight")Ce.preventDefault(),w(k,1);else if(Ce.key==="ArrowUp")Ce.preventDefault(),w(k,-3);else if(Ce.key==="ArrowDown")Ce.preventDefault(),w(k,3);else if(Ce.key==="PageUp")Ce.preventDefault(),D(k,-1);else if(Ce.key==="PageDown")Ce.preventDefault(),D(k,1);else if(Ce.key==="Enter"||Ce.key===" "){Ce.preventDefault();const we=P(k,k.__cursor);Y(k.__item,we,ue)||X(k,k.__cursor)}}),se.appendChild(be)}function W(k,ne,se){ne.addEventListener("keydown",J=>{const ue=k.__cursor;if(J.key==="ArrowLeft")J.preventDefault(),w(k,-1);else if(J.key==="ArrowRight")J.preventDefault(),w(k,1);else if(J.key==="ArrowUp")J.preventDefault(),w(k,-7);else if(J.key==="ArrowDown")J.preventDefault(),w(k,7);else if(J.key==="PageUp")J.shiftKey?(J.preventDefault(),D(k,-12)):(J.preventDefault(),D(k,-1));else if(J.key==="PageDown")J.shiftKey?(J.preventDefault(),D(k,12)):(J.preventDefault(),D(k,1));else if((J.key==="Enter"||J.key===" ")&&(J.preventDefault(),ue&&ue.d!=null)){const he=d(ue.y,ue.mo,ue.d);Y(k.__item,he,I(k.__item))||X(k,ue)}})}function R(k){const ne=k.ownerDocument,se=k.__popup,J=k.__item;for(;se.firstChild;)se.removeChild(se.firstChild);const ue=ne.createElement("div");ue.className="lat-form__daterange-head";const he=ne.createElement("button");he.type="button",he.className="lat-form__daterange-nav",he.setAttribute("aria-label",k.__t("form.daterange.prev")),he.textContent="‹",he.addEventListener("click",()=>{D(k,-1)});const be=ne.createElement("button");be.type="button",be.className="lat-form__daterange-nav",be.setAttribute("aria-label",k.__t("form.daterange.next")),be.textContent="›",be.addEventListener("click",()=>{D(k,1)}),ue.appendChild(he);const Ee=ne.createElement("div");Ee.className="lat-form__daterange-body";const Se=H(J,k.__t);if(Se){const Ce=ne.createElement("div");Ce.className="lat-form__daterange-presets";const we=ne.createElement("div");we.className="lat-form__daterange-presets-title",we.textContent=k.__t("form.daterange.presets"),Ce.appendChild(we);for(const ke of Se){const Le=ne.createElement("button");Le.type="button",Le.className="lat-form__daterange-preset",Le.textContent=ke.label,Le.addEventListener("click",()=>{ce(k,ke.range)}),Ce.appendChild(Le)}Ee.appendChild(Ce)}const Ae=ne.createElement("div");if(Ae.className="lat-form__daterange-panels",j(k,ne,Ae),Ee.appendChild(Ae),ue.appendChild(Ee),ue.appendChild(be),se.appendChild(ue),a(J)){const Ce=ne.createElement("div");Ce.className="lat-form__daterange-footer";const we=ne.createElement("button");we.type="button",we.className="lat-form__daterange-cancel",we.textContent=k.__t("form.daterange.cancel"),we.addEventListener("click",()=>{te(k)});const ke=ne.createElement("button");ke.type="button",ke.className="lat-form__daterange-apply",ke.textContent=k.__t("form.daterange.apply"),ke.addEventListener("click",()=>{L(k,!0)}),Ce.appendChild(we),Ce.appendChild(ke),se.appendChild(Ce)}}function ce(k,ne){const se=typeof ne=="function"?ne(new Date):ne;if(!(!Array.isArray(se)||se.length<2)){if(k.__draftStart=se[0],k.__draftEnd=se[1],k.__phase="idle",k.__hover=null,k.__granularity==="day"){const J=u(se[0]);J&&(k.__view={y:J.y,mo:J.mo}),k.__cursor=J||k.__cursor}else{const J=o(se[0]);J&&(k.__view={y:J.y}),k.__cursor=J||k.__cursor}R(k)}}function me(k){if(k.__popup.hidden===!1||k.__item.disabled===!0||k.__item.readOnly===!0)return;k.__draftStart=k.__start,k.__draftEnd=k.__end,k.__phase="idle",k.__hover=null;const ne=new Date;if(k.__granularity==="month"){const se=o(k.__start)||{y:ne.getFullYear(),mo:ne.getMonth()+1};k.__view={y:se.y},k.__cursor=se}else{const se=u(k.__start)||{y:ne.getFullYear(),mo:ne.getMonth()+1,d:ne.getDate()};k.__view={y:se.y,mo:se.mo},k.__cursor=se}k.__popup.hidden=!1,R(k)}function xe(k){k.__popup.hidden=!0}U("daterange",{kind:"field",build(k,ne){const se=ne.doc;b(se);const J=se.createElement("div");J.className="lat-form__daterange",J.__item=k,J.__t=ne.t||y,J.__granularity=c(k),J.__start=null,J.__end=null,J.__draftStart=null,J.__draftEnd=null,J.__hover=null,J.__phase="idle";const ue=typeof k.value=="object"&&k.value!=null?k.value:{};ue&&ue.start!=null&&(J.__start=String(ue.start)),ue&&ue.end!=null&&(J.__end=String(ue.end));const he=se.createElement("input");he.type="text",he.className="lat-form__daterange-input",k.name&&(he.name=k.name),k.placeholder!=null&&(he.placeholder=String(k.placeholder)),k.label!=null&&k.label!==""&&he.setAttribute("aria-label",String(k.label)),he.setAttribute("autocomplete","off"),he.value=Z(J.__start,J.__end),J.__input=he;const be=se.createElement("button");be.type="button",be.className="lat-form__daterange-toggle",be.setAttribute("aria-label",J.__t("form.daterange.open"));const Ee=Q(se,"calendar");Ee&&be.appendChild(Ee),J.__toggle=be;const Se=se.createElement("button");Se.type="button",Se.className="lat-form__daterange-clear",Se.setAttribute("aria-label",J.__t("form.daterange.clear"));const Ae=Q(se,"close");Ae&&Se.appendChild(Ae),Se.hidden=!n(k)||J.__start==null&&J.__end==null,J.__clear=Se;const Ce=se.createElement("div");Ce.className="lat-form__daterange-popup",Ce.hidden=!0,J.__popup=Ce,J.appendChild(he),J.appendChild(Se),J.appendChild(be),J.appendChild(Ce),he.addEventListener("focus",()=>{me(J)}),be.addEventListener("click",()=>{me(J)}),Se.addEventListener("click",()=>{re(J)}),he.addEventListener("change",()=>{const De=G(k,he.value);De?(J.__start=De.start,J.__end=De.end,he.value=Z(De.start,De.end)):he.value=Z(J.__start,J.__end)}),he.addEventListener("keydown",De=>{De.key==="Escape"&&(te(J),J.__toggle.focus())});const we=De=>{J.contains(De.target)||te(J)},ke=De=>{De.relatedTarget&&J.contains(De.relatedTarget)||te(J)},Le=De=>{De.key==="Escape"&&(De.preventDefault(),te(J),J.__toggle.focus())};return se.addEventListener("pointerdown",we),J.addEventListener("focusout",ke),Ce.addEventListener("keydown",Le),Array.isArray(ne.disposers)&&ne.disposers.push(()=>{se.removeEventListener("pointerdown",we),J.removeEventListener("focusout",ke),Ce.removeEventListener("keydown",Le)}),J},read(k){return{start:k.__start,end:k.__end}},write(k,ne){const se=ne&&typeof ne=="object"?ne:{};k.__start=se.start!=null?String(se.start):null,k.__end=se.end!=null?String(se.end):null,k.__input.value=Z(k.__start,k.__end),k.__clear&&(k.__clear.hidden=!n(k.__item)||k.__start==null&&k.__end==null)},state(k,ne){k.__input.disabled=ne.disabled===!0,k.__input.readOnly=ne.readOnly===!0,k.__toggle.disabled=ne.disabled===!0||ne.readOnly===!0},validate(k,ne,se){const J=se&&typeof se=="object"?se:{start:null,end:null},ue=J.start!=null?String(J.start):null,he=J.end!=null?String(J.end):null,be=k.__t;if(ne.required===!0&&ue==null&&he==null)return be("form.validation.required");if(ue==null&&he==null)return!0;if(ue==null||he==null)return be("form.daterange.invalid");if(z(ne,ue)||z(ne,he))return be("form.daterange.bounds");const Ee=B(ue,he,k.__granularity);if(Ee==null)return be("form.daterange.invalid");const Se=l(ne).minSpan,Ae=l(ne).maxSpan;return Se!=null&&Ee<Number(Se)?be("form.daterange.minSpan",{min:String(Se),unit:ee(ne,be)}):Ae!=null&&Ee>Number(Ae)?be("form.daterange.maxSpan",{max:String(Ae),unit:ee(ne,be)}):!0},focus(k){k.__input.focus()}})}),Ne("packages/modules/form/controls/file.js",function(S,q){"use strict";Object.defineProperty(S,"formatSize",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"accepts",{enumerable:!0,get:function(){return v}});const U=q("packages/modules/form/controls/registry.js").registerControl,$="lat-uploader",Q="http://www.w3.org/2000/svg",b="data-lattice-uploader-styles";function N(){return`
1526
+ .${$}{
1510
1527
  --lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
1511
1528
  --lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
1512
1529
  --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #b45309));
1513
1530
  --lat-up-warning-soft:color-mix(in srgb, var(--lat-up-warning) 12%, var(--lattice-background));
1514
1531
  display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2);min-width:0;
1515
1532
  }
1516
- @scope ([data-theme="dark"]){ .${O}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } }
1517
- @media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${O}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } } }
1533
+ @scope ([data-theme="dark"]){ .${$}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } }
1534
+ @media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${$}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } } }
1518
1535
 
1519
- .${O} input.${O}__input{
1536
+ .${$} input.${$}__input{
1520
1537
  position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;
1521
1538
  margin:0;padding:0;border:0;clip:rect(0 0 0 0);
1522
1539
  }
1523
1540
 
1524
- .${O}__zone{
1541
+ .${$}__zone{
1525
1542
  display:flex;flex-direction:column;align-items:center;justify-content:center;
1526
1543
  gap:calc(var(--lattice-space)/2);box-sizing:border-box;min-width:0;
1527
1544
  min-height:calc(140px * var(--lattice-scale));
@@ -1534,106 +1551,106 @@ ${s}
1534
1551
  background-color var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease),
1535
1552
  box-shadow var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease);
1536
1553
  }
1537
- .${O}__zone:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-2px; }
1538
- .${O}__zone[hidden]{ display:none; }
1554
+ .${$}__zone:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-2px; }
1555
+ .${$}__zone[hidden]{ display:none; }
1539
1556
 
1540
- .${O}__icon{ width:calc(28px * var(--lattice-scale)); height:calc(28px * var(--lattice-scale)); flex:0 0 auto; color:var(--lattice-accent); }
1541
- .${O}__title{ display:flex; align-items:baseline; justify-content:center; gap:0.2em; flex-wrap:wrap; color:var(--lattice-foreground); font-weight:600; }
1542
- .${O} button.${O}__browse{
1557
+ .${$}__icon{ width:calc(28px * var(--lattice-scale)); height:calc(28px * var(--lattice-scale)); flex:0 0 auto; color:var(--lattice-accent); }
1558
+ .${$}__title{ display:flex; align-items:baseline; justify-content:center; gap:0.2em; flex-wrap:wrap; color:var(--lattice-foreground); font-weight:600; }
1559
+ .${$} button.${$}__browse{
1543
1560
  box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;
1544
1561
  border:0;border-radius:0;background:transparent;color:var(--lattice-accent);
1545
1562
  font:inherit;line-height:inherit;font-weight:600;cursor:pointer;
1546
1563
  text-decoration:underline;text-underline-offset:2px;
1547
1564
  }
1548
- .${O} button.${O}__browse:hover{ color:var(--lattice-focus-ring, var(--lattice-accent)); }
1549
- .${O} button.${O}__browse:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1550
- .${O}__drop{ display:none; color:var(--lattice-foreground); font-weight:600; }
1551
- .${O}__hint{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); }
1552
- .${O}__compact{ display:none; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-foreground); }
1553
- .${O}__compact svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-accent); }
1565
+ .${$} button.${$}__browse:hover{ color:var(--lattice-focus-ring, var(--lattice-accent)); }
1566
+ .${$} button.${$}__browse:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1567
+ .${$}__drop{ display:none; color:var(--lattice-foreground); font-weight:600; }
1568
+ .${$}__hint{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); }
1569
+ .${$}__compact{ display:none; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-foreground); }
1570
+ .${$}__compact svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-accent); }
1554
1571
 
1555
- .${O}__zone.is-compact{
1572
+ .${$}__zone.is-compact{
1556
1573
  flex-direction:row;justify-content:flex-start;text-align:left;min-height:0;
1557
1574
  padding:calc(var(--lattice-space) * 1.25);gap:calc(var(--lattice-space)/2);
1558
1575
  }
1559
- .${O}__zone.is-compact .${O}__icon,
1560
- .${O}__zone.is-compact .${O}__title,
1561
- .${O}__zone.is-compact .${O}__hint{ display:none; }
1562
- .${O}__zone.is-compact .${O}__compact{ display:inline-flex; }
1576
+ .${$}__zone.is-compact .${$}__icon,
1577
+ .${$}__zone.is-compact .${$}__title,
1578
+ .${$}__zone.is-compact .${$}__hint{ display:none; }
1579
+ .${$}__zone.is-compact .${$}__compact{ display:inline-flex; }
1563
1580
 
1564
- .${O}__zone.is-dragover{
1581
+ .${$}__zone.is-dragover{
1565
1582
  border-color:var(--lattice-accent);border-style:solid;
1566
1583
  background:var(--lat-up-accent-soft);
1567
1584
  box-shadow:0 0 0 3px color-mix(in srgb, var(--lattice-accent) 18%, transparent);
1568
1585
  }
1569
- .${O}__zone.is-dragover .${O}__title{ display:none; }
1570
- .${O}__zone.is-dragover .${O}__drop{ display:block; }
1571
- .${O}__zone.is-dragover .${O}__compact{ display:none; }
1572
- .${O}__zone.is-invalid{
1586
+ .${$}__zone.is-dragover .${$}__title{ display:none; }
1587
+ .${$}__zone.is-dragover .${$}__drop{ display:block; }
1588
+ .${$}__zone.is-dragover .${$}__compact{ display:none; }
1589
+ .${$}__zone.is-invalid{
1573
1590
  border-color:var(--lat-up-warning);border-style:solid;
1574
1591
  background:var(--lat-up-warning-soft);
1575
1592
  box-shadow:0 0 0 3px color-mix(in srgb, var(--lat-up-warning) 18%, transparent);
1576
1593
  }
1577
- .${O}__zone.is-invalid .${O}__icon,
1578
- .${O}__zone.is-invalid .${O}__title,
1579
- .${O}__zone.is-invalid .${O}__drop,
1580
- .${O}__zone.is-invalid .${O}__compact{ color:var(--lat-up-warning); }
1594
+ .${$}__zone.is-invalid .${$}__icon,
1595
+ .${$}__zone.is-invalid .${$}__title,
1596
+ .${$}__zone.is-invalid .${$}__drop,
1597
+ .${$}__zone.is-invalid .${$}__compact{ color:var(--lat-up-warning); }
1581
1598
 
1582
- .${O}__list{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2); }
1583
- .${O}__list[hidden]{ display:none; }
1599
+ .${$}__list{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2); }
1600
+ .${$}__list[hidden]{ display:none; }
1584
1601
 
1585
- .${O}__item{
1602
+ .${$}__item{
1586
1603
  display:flex;align-items:center;gap:calc(var(--lattice-space)/2);box-sizing:border-box;
1587
1604
  min-height:var(--lattice-row-height);padding:calc(var(--lattice-space)/2) calc(var(--lattice-space));
1588
1605
  border:var(--lattice-border-width) solid var(--lattice-border-color);
1589
1606
  border-radius:var(--lattice-radius);background:var(--lattice-background);
1590
1607
  }
1591
- .${O}__item-icon{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1592
- .${O}__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); }
1593
- .${O}__item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(var(--lattice-space)/4); }
1594
- .${O}__item-row{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); min-width:0; }
1595
- .${O}__item-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1596
- .${O}__item-size{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); flex:0 0 auto; }
1597
- .${O}__item-state{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space)/4); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1598
- .${O}__item-state svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1599
- .${O}__item.is-done .${O}__item-state{ color:var(--lattice-success); }
1600
- .${O}__item.is-error .${O}__item-state,
1601
- .${O}__item.is-rejected .${O}__item-state{ color:var(--lattice-danger); }
1602
- .${O}__item-pct{ font-variant-numeric:tabular-nums; }
1603
- .${O}__item-bar{ display:block; height:3px; border-radius:2px; background:color-mix(in srgb, var(--lattice-border-color) 60%, transparent); overflow:hidden; }
1604
- .${O}__item-fill{ display:block; height:100%; background:var(--lattice-accent); transition:width var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease); }
1605
- .${O}__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); }
1606
- .${O} button.${O}__retry{
1608
+ .${$}__item-icon{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1609
+ .${$}__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); }
1610
+ .${$}__item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(var(--lattice-space)/4); }
1611
+ .${$}__item-row{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); min-width:0; }
1612
+ .${$}__item-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
1613
+ .${$}__item-size{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); flex:0 0 auto; }
1614
+ .${$}__item-state{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space)/4); flex:0 0 auto; color:var(--lattice-foreground-muted); }
1615
+ .${$}__item-state svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1616
+ .${$}__item.is-done .${$}__item-state{ color:var(--lattice-success); }
1617
+ .${$}__item.is-error .${$}__item-state,
1618
+ .${$}__item.is-rejected .${$}__item-state{ color:var(--lattice-danger); }
1619
+ .${$}__item-pct{ font-variant-numeric:tabular-nums; }
1620
+ .${$}__item-bar{ display:block; height:3px; border-radius:2px; background:color-mix(in srgb, var(--lattice-border-color) 60%, transparent); overflow:hidden; }
1621
+ .${$}__item-fill{ display:block; height:100%; background:var(--lattice-accent); transition:width var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease); }
1622
+ .${$}__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); }
1623
+ .${$} button.${$}__retry{
1607
1624
  box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;border:0;border-radius:0;
1608
1625
  background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;
1609
1626
  text-decoration:underline;text-underline-offset:2px;
1610
1627
  }
1611
- .${O} button.${O}__retry:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1612
- .${O} button.${O}__remove{
1628
+ .${$} button.${$}__retry:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1629
+ .${$} button.${$}__remove{
1613
1630
  display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
1614
1631
  width:calc(var(--lattice-row-height) - 8px);height:calc(var(--lattice-row-height) - 8px);
1615
1632
  min-height:0;margin:0;padding:0;border:0;border-radius:var(--lattice-radius);
1616
1633
  background:none;color:var(--lattice-foreground-muted);cursor:pointer;flex:0 0 auto;
1617
1634
  }
1618
- .${O} button.${O}__remove svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1619
- .${O} button.${O}__remove:hover{ background:color-mix(in srgb, var(--lattice-foreground) 8%, transparent); color:var(--lattice-foreground); }
1620
- .${O} button.${O}__remove:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-1px; }
1635
+ .${$} button.${$}__remove svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
1636
+ .${$} button.${$}__remove:hover{ background:color-mix(in srgb, var(--lattice-foreground) 8%, transparent); color:var(--lattice-foreground); }
1637
+ .${$} button.${$}__remove:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-1px; }
1621
1638
 
1622
- .${O}[aria-disabled='true']{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1623
- .${O}[aria-disabled='true'] .${O}__item{
1639
+ .${$}[aria-disabled='true']{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1640
+ .${$}[aria-disabled='true'] .${$}__item{
1624
1641
  background:var(--lattice-disabled-background); border-color:var(--lattice-disabled-border);
1625
1642
  }
1626
- .${O}[aria-readonly='true']{ cursor:default; }
1627
- .${O} button:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1628
- .${O}__live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
1643
+ .${$}[aria-readonly='true']{ cursor:default; }
1644
+ .${$} button:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1645
+ .${$}__live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
1629
1646
 
1630
1647
  @media (prefers-reduced-motion: reduce){
1631
- .${O}__zone{ transition:none; }
1632
- .${O}__zone.is-dragover, .${O}__zone.is-invalid{ box-shadow:none; }
1633
- .${O}__item-fill{ transition:none; }
1648
+ .${$}__zone{ transition:none; }
1649
+ .${$}__zone.is-dragover, .${$}__zone.is-invalid{ box-shadow:none; }
1650
+ .${$}__item-fill{ transition:none; }
1634
1651
  }
1635
- `.trim()}function C(o){const d=o&&o.documentElement;if(!d||d.getAttribute(g))return;d.setAttribute(g,"1");const l=o.createElement("style");l.textContent=L(),(o.head||o.body||d).appendChild(l)}function A(o,d){const l=d&&d.defaultView,s=l&&l.Event,r=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}};o.dispatchEvent(r)}function H(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function T(o){const d=Number(o)||0;return d<1024?`${d} B`:d<1048576?`${(d/1024).toFixed(d<10240?1:0)} KB`:d<1073741824?`${(d/1048576).toFixed(1)} MB`:`${(d/1073741824).toFixed(2)} GB`}function v(o,d){if(!d||!d.length)return!0;const l=(o.name||"").toLowerCase(),s=(o.type||"").toLowerCase();return d.some(r=>{const i=String(r).trim().toLowerCase();return i.startsWith(".")?l.endsWith(i):i.endsWith("/*")?s.startsWith(i.slice(0,-1)):s===i})}function f(o){return o.length?o.length===1?o[0]:o.length===2?`${o[0]} or ${o[1]}`:`${o.slice(0,-1).join(", ")} or ${o[o.length-1]}`:""}function u(o){const d={".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"},l=String(o).trim(),s=d[l.toLowerCase()];if(s)return s;if(l.startsWith("."))return l.slice(1).toUpperCase();if(l.endsWith("/*"))return`${l.slice(0,-2)}s`;const r=l.split("/")[1];return r?r.toUpperCase():l}function h(o,d,l,s){const r=[];return d&&d.length&&r.push(f(d.map(u))),l&&r.push(o("form.file.hint.size",{size:T(l)})),s&&r.push(o(s===1?"form.file.hint.file":"form.file.hint.files",{max:String(s)})),r.join(" · ")}function x(o){return{id:o.id,name:o.name,size:o.size,type:o.type,status:o.status,progress:o.progress,message:o.message||""}}function t(o,d){const l=o.createElementNS(re,"svg");l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("focusable","false"),l.setAttribute("aria-hidden","true"),l.setAttribute("fill","none"),l.setAttribute("stroke","currentColor"),l.setAttribute("stroke-width","1.5"),l.setAttribute("stroke-linecap","round"),l.setAttribute("stroke-linejoin","round");const s=o.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d",d),l.appendChild(s),l}const n=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 a(o,d){const l=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let s;for(;s=l.exec(d);)o.setAttribute(s[1],s[3]===void 0?s[4]:s[3])}function m(o,d){const l=/<svg\b([^>]*)>/i.exec(d);if(!l)return null;const s=o.createElementNS(re,"svg");a(s,l[1]);const r=d.lastIndexOf("</svg"),i=r===-1?"":d.slice(l.index+l[0].length,r),B=/<(\w+)\b([^>]*?)(\/?)>/g;let z;for(;z=B.exec(i);){const W=o.createElementNS(re,z[1]);a(W,z[2]),s.appendChild(W)}return s.setAttribute("aria-hidden","true"),s.setAttribute("focusable","false"),s}function E(o,d){if(o===!1)return null;if(o!=null&&typeof o=="object"&&o.nodeType){const s=o;return s.classList.add(`${O}__icon`),s.setAttribute("aria-hidden","true"),s}if(typeof o!="string"||o==="")return null;const l=n[o]?t(d,n[o]):m(d,o);return l?(l.setAttribute("class",`${O}__icon`),l):null}function _(o){const d=o.type||"";return d.startsWith("image/")?"image":d==="application/pdf"||/\.pdf$/i.test(o.name)?"document":"file"}function c(o){if(o.thumb)return o.thumb;if(!o.file||!/^image\//.test(o.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{o.thumb=URL.createObjectURL(o.file)}catch{o.thumb=null}return o.thumb}function S(o){if(o.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(o.thumb)}catch{}o.thumb=null}U("file",{kind:"field",build(o,d){const l=d.doc,s=d.t,r=o.props||{},i=Array.isArray(r.accept)?r.accept.map(w=>String(w)):[],B=Number(r.maxSize)||0,z=Number(r.maxFiles)||0,W=r.multiple!==!1,b=typeof r.upload=="function"?r.upload:null,J=r.dropzone!==!1,Q=r.dropText!=null?String(r.dropText):s("form.file.dropText"),ne=r.browseText!=null?String(r.browseText):s("form.file.browse"),Z=s("form.file.dropToUpload"),Y=s("form.file.addMore"),Ne=s("form.file.typeNotAccepted"),ve=r.hint!=null&&r.hint!==""?String(r.hint):h(s,i,B,z);C(l);const se=l.createElement("div");se.className=O;const k={accept:i,maxSize:B,maxFiles:z,multiple:W,upload:b,dropText:Q,browse:ne,dropToUpload:Z,addMore:Y,typeNotAccepted:Ne,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:J,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};se.__latFile=k;const I=l.createElement("input");I.type="file",I.className=`${O}__input`,I.tabIndex=-1,I.setAttribute("aria-hidden","true"),W&&(I.multiple=!0),i.length&&(I.accept=i.join(",")),se.appendChild(I),k.input=I;const F=l.createElement("div");F.className=`${O}__zone`,F.setAttribute("role","button"),F.tabIndex=0,F.setAttribute("aria-label",`${Q} ${ne}`);const p=r.icon==null?t(l,n.upload):E(r.icon,l);p&&(r.icon==null&&p.setAttribute("class",`${O}__icon`),F.appendChild(p));const D=l.createElement("span");D.className=`${O}__title`;const G=l.createElement("span");G.className=`${O}__title-rest`,G.textContent=Q,D.appendChild(G);const R=l.createElement("button");R.type="button",R.className=`${O}__browse`,R.tabIndex=-1,R.textContent=ne,D.appendChild(R),F.appendChild(D),k.titleRest=G,k.browseEl=R;const ee=l.createElement("span");if(ee.className=`${O}__drop`,ee.textContent=Z,F.appendChild(ee),ve){const w=l.createElement("span");w.className=`${O}__hint`,w.textContent=ve,F.appendChild(w)}const P=l.createElement("span");P.className=`${O}__compact`,P.appendChild(t(l,n.upload));const N=l.createElement("span");N.className=`${O}__compact-text`,N.textContent=Y,P.appendChild(N),F.appendChild(P),k.compactText=N,se.appendChild(F),k.zone=F;const y=l.createElement("ul");y.className=`${O}__list`,y.setAttribute("role","list"),y.hidden=!0,se.appendChild(y),k.list=y;const $=l.createElement("div");return $.className=`${O}__live`,$.setAttribute("role","status"),$.setAttribute("aria-live","polite"),se.appendChild($),k.live=$,se.__latAnnounce=w=>{k.live&&(k.live.textContent="",k.live.textContent=w)},se.__latDragState=w=>{k.zone.classList.toggle("is-dragover",w==="over"),k.zone.classList.toggle("is-invalid",w==="invalid"),w==="none"?(k.titleRest.textContent=k.dropText,k.browseEl.hidden=!1,k.compactText.textContent=k.addMore):w==="over"?(k.titleRest.textContent=k.dropToUpload,k.browseEl.hidden=!0,k.compactText.textContent=k.dropToUpload):(k.titleRest.textContent=k.typeNotAccepted,k.browseEl.hidden=!0,k.compactText.textContent=k.typeNotAccepted)},se.__latPaint=()=>{const w=k.disabled||k.readOnly||!k.dropzone;k.zone.hidden=w,k.zone.tabIndex=w?-1:0,w?k.zone.setAttribute("aria-disabled","true"):k.zone.removeAttribute("aria-disabled"),k.input.disabled=w;const V=k.entries.length>0;k.zone.classList.toggle("is-compact",V),k.zone.setAttribute("aria-label",V?k.addMore:`${k.dropText} ${k.browse}`),y.hidden=!k.entries.length,y.tabIndex=k.readOnly&&!k.disabled?0:-1,k.entries.some(ie=>ie.status==="rejected")?se.setAttribute("aria-invalid","true"):se.removeAttribute("aria-invalid"),y.textContent="";for(const ie of k.entries){const _e=l.createElement("li");_e.className=`${O}__item is-${ie.status}`,_e.setAttribute("data-id",ie.id),_e.setAttribute("role","listitem");const Oe=c(ie);if(Oe){const ue=l.createElement("img");ue.className=`${O}__item-thumb`,ue.src=Oe,ue.alt="",_e.appendChild(ue)}else{const ue=t(l,n[_(ie)]);ue.setAttribute("class",`${O}__item-icon`),_e.appendChild(ue)}const Se=l.createElement("div");Se.className=`${O}__item-main`,_e.appendChild(Se);const j=l.createElement("div");j.className=`${O}__item-row`,Se.appendChild(j);const te=l.createElement("span");te.className=`${O}__item-name`,te.textContent=ie.name,te.title=ie.name,j.appendChild(te);const ce=l.createElement("span");ce.className=`${O}__item-size`,ce.textContent=T(ie.size),j.appendChild(ce);const K=l.createElement("span");if(K.className=`${O}__item-state`,ie.status==="uploading"){const ue=l.createElement("span");ue.className=`${O}__item-pct`,ue.textContent=`${ie.progress}%`,K.appendChild(ue)}else ie.status==="done"?K.appendChild(t(l,n.check)):(ie.status==="error"||ie.status==="rejected")&&K.appendChild(t(l,n.warn));j.appendChild(K);const de=l.createElement("button");if(de.type="button",de.className=`${O}__remove`,de.setAttribute("aria-label",`${s("form.file.remove")} ${ie.name}`),de.title=s("form.file.remove"),de.appendChild(t(l,n.xmark)),de.setAttribute("data-remove",ie.id),de.disabled=k.disabled||k.readOnly,j.appendChild(de),ie.status==="uploading"){const ue=l.createElement("span");ue.className=`${O}__item-bar`,ue.setAttribute("role","progressbar"),ue.setAttribute("aria-valuemin","0"),ue.setAttribute("aria-valuemax","100"),ue.setAttribute("aria-valuenow",String(ie.progress));const be=l.createElement("span");be.className=`${O}__item-fill`,be.style.width=`${ie.progress}%`,ue.appendChild(be),Se.appendChild(ue)}if(ie.message){const ue=l.createElement("span");if(ue.className=`${O}__item-message`,ue.appendChild(l.createTextNode(ie.message)),ie.status==="error"){ue.appendChild(l.createTextNode(" "));const be=l.createElement("button");be.type="button",be.className=`${O}__retry`,be.textContent=s("form.file.retry"),be.setAttribute("data-retry",ie.id),be.disabled=k.disabled||k.readOnly,ue.appendChild(be)}Se.appendChild(ue)}y.appendChild(_e)}},se.__latUpload=w=>{if(!k.upload){w.status="done",w.progress=100,se.__latPaint();return}w.status="uploading",w.progress=0,w.message="";let V=null;typeof AbortController<"u"&&(V=new AbortController,k.controllers.set(w.id,V));const oe=V?V.signal:void 0,ie=Oe=>{w.progress=Math.max(0,Math.min(100,Number(Oe)||0)),w.status="uploading",se.__latPaint()};let _e;try{_e=k.upload(w.file,{onProgress:ie,signal:oe})}catch(Oe){_e=Promise.reject(Oe)}_e&&typeof _e.then=="function"&&_e.then(()=>{k.controllers.delete(w.id),w.status="done",w.progress=100,se.__latPaint(),se.__latAnnounce(s("form.file.uploaded",{name:w.name})),A(se,d.doc)},Oe=>{k.controllers.delete(w.id),w.status="error",w.message=Oe&&Oe.message?String(Oe.message):s("form.file.uploadFailed"),se.__latPaint(),se.__latAnnounce(s("form.file.failed",{name:w.name})),A(se,d.doc)})},se.__latTake=w=>{const V=[...w||[]];if(!V.length||k.disabled||k.readOnly)return;const oe=k.multiple?V:V.slice(0,1),ie=[],_e=[];let Oe=k.maxFiles?Math.max(0,k.maxFiles-k.entries.length):1/0;for(const Se of oe){if(Oe<=0){_e.push({file:Se,reason:"count"});continue}if(k.maxSize&&Se.size>k.maxSize){_e.push({file:Se,reason:"size"});continue}if(!v(Se,k.accept)){_e.push({file:Se,reason:"type"});continue}ie.push({id:H(),file:Se,name:Se.name,size:Se.size,type:Se.type,status:"selected",progress:0,message:""}),Oe-=1}if(ie.length){k.multiple||(k.entries=[]),k.entries.push(...ie),se.__latPaint(),A(se,d.doc),se.__latAnnounce(ie.length===1?s("form.file.addedOne"):s("form.file.added",{count:String(ie.length)}));for(const Se of ie)se.__latUpload(Se)}for(const Se of _e){const j=Se.reason==="size"?s("form.file.rejected.size",{size:T(k.maxSize)}):Se.reason==="type"?s("form.file.rejected.type"):s("form.file.rejected.count",{max:String(k.maxFiles)});k.entries.push({id:H(),file:Se.file,name:Se.file.name,size:Se.file.size,type:Se.file.type,status:"rejected",progress:0,message:j}),se.__latAnnounce(j)}se.__latPaint()},se.__latRemove=w=>{const V=k.controllers.get(w);V&&(V.abort(),k.controllers.delete(w));const oe=k.entries.find(ie=>ie.id===w);oe&&S(oe),k.entries=k.entries.filter(ie=>ie.id!==w),se.__latPaint(),A(se,d.doc)},se.__latRetry=w=>{if(k.disabled||k.readOnly)return;const V=k.entries.find(oe=>oe.id===w);!V||!V.file||V.status==="rejected"||(se.__latUpload(V),A(se,d.doc))},se.__latClick=w=>{if(k.disabled||k.readOnly)return;const V=w.target&&w.target.closest?w.target:null,oe=V&&V.closest?V.closest("[data-remove]"):null;if(oe&&se.contains(oe)){se.__latRemove(oe.getAttribute("data-remove"));return}const ie=V&&V.closest?V.closest("[data-retry]"):null;if(ie&&se.contains(ie)){se.__latRetry(ie.getAttribute("data-retry"));return}V&&V.closest&&V.closest(`.${O}__zone`)&&k.input.click()},se.__latKeydown=w=>{k.disabled||k.readOnly||(w.key==="Enter"||w.key===" "||w.key==="Spacebar")&&w.target===k.zone&&(w.preventDefault(),k.input.click())},se.__latChange=()=>{se.__latTake(k.input.files),k.input.value=""},se.__latDragKind=w=>{if(!k.accept.length)return"over";const V=w.dataTransfer;if(!V||!V.types||!V.types.length)return"over";const oe=Array.from(V.types);return oe.includes("Files")?"over":oe.every(ie=>!v({name:"",type:ie},k.accept))?"invalid":"over"},se.__latDrag=w=>{if(!(k.disabled||k.readOnly)){if(w.type==="dragenter"||w.type==="dragover"){w.preventDefault(),se.__latDragState(se.__latDragKind(w));return}if(w.type==="dragleave"){if(w.relatedTarget&&k.zone.contains(w.relatedTarget))return;se.__latDragState("none");return}w.type==="drop"&&(w.preventDefault(),se.__latDragState("none"),se.__latTake(w.dataTransfer&&w.dataTransfer.files))}},se.__latPaste=w=>{if(k.disabled||k.readOnly||!w.clipboardData)return;const V=[...w.clipboardData.files||[]];V.length&&(w.preventDefault(),se.__latTake(V))},I.addEventListener("change",se.__latChange),se.addEventListener("click",se.__latClick),se.addEventListener("keydown",se.__latKeydown),se.addEventListener("paste",se.__latPaste),J&&["dragenter","dragover","dragleave","drop"].forEach(w=>se.addEventListener(w,se.__latDrag)),se.__latPaint(),se},read(o){const d=o.__latFile;return d?d.entries.filter(l=>l.status!=="rejected").map(x):[]},write(o,d){const l=o.__latFile;if(!l)return;const s=Array.isArray(d)?d:[],r=l.entries.filter(i=>i.status==="rejected");for(const i of l.entries)r.includes(i)||S(i);l.entries=r;for(const i of s)l.entries.push({id:i&&i.id?String(i.id):H(),file:i&&i.file?i.file:null,name:i&&i.name!=null?String(i.name):"",size:i&&i.size!=null?Number(i.size):0,type:i&&i.type!=null?String(i.type):"",status:i&&i.status?String(i.status):"done",progress:i&&i.progress!=null?Number(i.progress):100,message:i&&i.message?String(i.message):""});o.__latPaint&&o.__latPaint()},state(o,d){const l=o.__latFile;l&&(l.disabled=d.disabled===!0,l.readOnly=d.readOnly===!0,l.disabled?o.setAttribute("aria-disabled","true"):o.removeAttribute("aria-disabled"),l.readOnly?o.setAttribute("aria-readonly","true"):o.removeAttribute("aria-readonly"),o.__latPaint&&o.__latPaint())},validate(o,d,l){const s=o.__latFile;if(!s)return null;const r=s.entries.find(i=>i.status==="rejected");return r&&r.message&&(!Array.isArray(l)||l.length===0)?r.message:s.maxFiles&&Array.isArray(l)&&l.length>s.maxFiles?`Too many files (max ${s.maxFiles})`:null}})}),je("packages/dom/src/editors/richtext-icons.js",function(M,X){"use strict";Object.defineProperty(M,"TOOL_GLYPHS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"letterGlyph",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"toolGlyph",{enumerable:!0,get:function(){return g}});const e="http://www.w3.org/2000/svg",U=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),O=Object.freeze({color:"M8 2.5l4 5.5a4 4 0 0 1-8 0zM4.5 12.5h7",alignLeft:"M3 4h10M3 8h6M3 12h10",alignCenter:"M3 4h10M5 8h6M3 12h10",alignRight:"M3 4h10M7 8h6M3 12h10",ul:"M3 5.5h.01M3 9.5h.01M3 13.5h.01M6 5.5h7M6 9.5h7M6 13.5h7",ol:"M2.5 4.5h.01M2.5 8.5h.01M2.5 12.5h.01M5 4.5h8M5 8.5h8M5 12.5h8",outdent:"M3 4h8M3 8h5M3 12h8M8 3v2M8 11v2",indent:"M5 4h8M5 8h5M5 12h8M10 3v2M10 11v2",link:"M6.5 9.5a3 3 0 0 0 3 3l2-2a3 3 0 0 0-3-3M9.5 6.5a3 3 0 0 0-3-3l-2 2a3 3 0 0 0 3 3",image:"M2 3h12v10H2zM5.5 11l2.5-3 2 2 1.5-1.5 2 2.5M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",clear:"M5 4h9M6 4l-.5 8a2 2 0 0 1-2 1.8A2 2 0 0 1 1.5 12L1 4M4 4V2.5h8V4M6 7v3M9.5 7v3",source:"M6 4L2.5 8 6 12M10 4l3.5 4L10 12",undo:"M3 7h6a3.5 3.5 0 0 1 0 7H5M3 7l2-2M3 7l2 2",redo:"M13 7H7a3.5 3.5 0 0 0 0 7h4M13 7l-2-2M13 7l-2 2"});function re(L,C){const A=U[C],H=L.createElementNS(e,"svg");H.setAttribute("viewBox","0 0 16 16"),H.setAttribute("width","16"),H.setAttribute("height","16"),H.setAttribute("focusable","false"),H.setAttribute("aria-hidden","true");const T=L.createElementNS(e,"text");return T.setAttribute("x","8"),T.setAttribute("y","12"),T.setAttribute("text-anchor","middle"),T.style.fontSize="12px",T.style.fill="currentColor",T.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',A.weight&&(T.style.fontWeight=A.weight),A.style&&(T.style.fontStyle=A.style),A.decoration&&(T.style.textDecoration=A.decoration),T.textContent=A.char,H.appendChild(T),H}function g(L,C){const A=L.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 H=L.createElementNS(e,"path");return H.setAttribute("d",O[C]),A.appendChild(H),A}}),je("packages/modules/form/controls/swatches.js",function(M,X){"use strict";Object.defineProperty(M,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"hslToHex",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"buildSwatchButton",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"buildSwatchGrid",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),U=Object.freeze([0,24,48,84,140,168,196,224,268,320]),O=Object.freeze([.82,.66,.5,.36,.22]),re=.62,g=Object.freeze([.92,.76,.56,.36,.18]);function L(f,u,h){let x=h;return x<0&&(x+=1),x>1&&(x-=1),x<1/6?f+(u-f)*6*x:x<1/2?u:x<2/3?f+(u-f)*(2/3-x)*6:f}function C(f,u,h){const x=(f%360+360)%360/360;let t,n,a;if(u===0)t=h,n=h,a=h;else{const E=h<.5?h*(1+u):h+u-h*u,_=2*h-E;t=L(_,E,x+1/3),n=L(_,E,x),a=L(_,E,x-1/3)}const m=E=>Math.round(E*255).toString(16).padStart(2,"0");return`#${m(t)}${m(n)}${m(a)}`}const A=Object.freeze(U.map(f=>Object.freeze(O.map(u=>C(f,re,u))))),H=Object.freeze(g.map(f=>C(0,0,f)));function T(f,u,h={}){const x=f.createElement("button");return x.type="button",x.className="lat-form__swatch",x.style.background=u,x.setAttribute("role","option"),x.setAttribute("data-color",u),x.setAttribute("aria-selected",h.selected?"true":"false"),h.selected&&x.classList.add("is-selected"),x.title=h.title!=null?h.title:u,x.tabIndex=-1,x}function v(f,u,h={}){const x=f.createElement("div");x.className="lat-form__swatch-grid",x.setAttribute("role","listbox");const t=[];for(const n of u){const a=f.createElement("div");a.className=h.rowClass?`lat-form__swatch-row ${h.rowClass}`:"lat-form__swatch-row";const m=[];for(const E of n){const _=T(f,E,{selected:typeof h.isSelected=="function"&&h.isSelected(E),title:typeof h.title=="function"?h.title(E):void 0});a.appendChild(_),m.push(_)}x.appendChild(a),t.push(m)}return typeof h.onPick=="function"&&x.addEventListener("click",n=>{const a=n.target&&n.target.closest?n.target.closest(".lat-form__swatch"):null;a&&x.contains(a)&&h.onPick(a.getAttribute("data-color"),a)}),{el:x,rows:t}}}),je("packages/modules/form/controls/richtext.js",function(M,X){"use strict";Object.defineProperty(M,"sanitize",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"escapeHtml",{enumerable:!0,get:function(){return g}});const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/dom/src/editors/sanitize-richtext.js"),re=O.sanitizeRichText,g=O.escapeHtml,L=X("packages/dom/src/editors/richtext-icons.js"),C=L.letterGlyph,A=L.toolGlyph,H=L.TOOL_GLYPHS,T=X("packages/modules/form/controls/swatches.js"),v=T.DEFAULT_COLORS,f=T.buildSwatchGrid,u=re,h=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"]}),x=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 n(c){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"}}[c]||null}const a=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function m(c){return Array.isArray(c)?c.map(S=>String(S)):h[c]||h.basic}function E(c){return new Promise((S,o)=>{const d=new FileReader;d.onload=()=>S(d.result),d.onerror=()=>o(d.error||new Error("read failed")),d.readAsDataURL(c)})}U("richtext",{kind:"field",build(c,S){const o=S.doc,d=c.props||{},l=m(d.toolbar),s=Array.isArray(d.headings)?d.headings:a,r=Array.isArray(d.colors)?d.colors:v,i=d.linkTarget!=null?String(d.linkTarget):"_blank",B=Number(d.minHeight)||160,z=Number(d.maxHeight)||0,W=Number(d.maxImageSize)||0,b=typeof d.onImage=="function"?d.onImage:null,J=d.sanitizePaste!==!1,Q=d.allowedTags,ne=d.placeholder!=null?String(d.placeholder):S.t("form.richtext.placeholder"),Z=o.createElement("div");Z.className="lat-form__richtext";const Y={toolbar:l,headings:s,colors:r,linkTarget:i,minHeight:B,maxHeight:z,maxImageSize:W,onImage:b,sanitizePaste:J,allowedTags:Q,placeholder:ne,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};Z.__latRt=Y;const Ne=u(o,c.value==null?"":String(c.value),Q,{});Y.history={stack:[Ne],index:0},Y.lastValue=Ne;const ve=o.createElement("div");ve.className="lat-form__richtext-toolbar",ve.setAttribute("role","toolbar"),ve.setAttribute("aria-label",S.t("form.richtext.formatting")),Y.toolbarEl=ve;for(const p of l){if(p==="|"){const G=o.createElement("span");G.className="lat-form__richtext-sep",G.setAttribute("role","separator"),ve.appendChild(G);continue}if(p==="heading"){const G=o.createElement("select");G.className="lat-form__richtext-select",G.title=S.t(t.heading),G.setAttribute("aria-label",S.t(t.heading)),G.setAttribute("data-item","heading");for(const[R,ee]of s){const P=o.createElement("option");P.value=R,P.textContent=String(ee),G.appendChild(P)}Y.buttons.heading=G,ve.appendChild(G);continue}const D=o.createElement("button");D.type="button",D.className="lat-form__richtext-btn",D.setAttribute("data-item",p),D.title=S.t(t[p]||p),D.setAttribute("aria-label",S.t(t[p]||p)),p==="lowercase"||p==="uppercase"?(D.className+=" lat-form__richtext-btntext",D.textContent=S.t(p==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):x.includes(p)?D.appendChild(C(o,p)):H[p]?D.appendChild(A(o,p)):D.textContent=p,Y.buttons[p]=D,ve.appendChild(D)}Z.appendChild(ve);const se=o.createElement("div");se.className="lat-form__richtext-popover",se.hidden=!0,Z.appendChild(se),Y.popover=se;const k=o.createElement("div");k.className="lat-form__richtext-editor",k.contentEditable=c.readOnly||c.disabled?"false":"true",k.setAttribute("role","textbox"),k.setAttribute("aria-multiline","true"),k.setAttribute("aria-label",c.label!=null?String(c.label):S.t("form.richtext.richText")),k.setAttribute("data-placeholder",ne),k.style.minHeight=`${B}px`,z&&(k.style.maxHeight=`${z}px`),k.innerHTML=Ne,Z.appendChild(k),Y.editor=k;const I=o.createElement("textarea");I.className="lat-form__richtext-source",I.setAttribute("aria-label",S.t("form.richtext.source")),I.spellcheck=!1,I.hidden=!0,Z.appendChild(I),Y.source=I;const F=o.createElement("input");return F.type="file",F.accept="image/*",F.className="lat-form__richtext-file",F.tabIndex=-1,F.setAttribute("aria-hidden","true"),Z.appendChild(F),Y.fileInput=F,Z.__latSave=()=>{const p=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;p&&p.rangeCount&&k.contains(p.anchorNode)&&(Y.range=p.getRangeAt(0).cloneRange())},Z.__latRestore=()=>{if(!Y.range)return;const p=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if(p)try{p.removeAllRanges(),p.addRange(Y.range)}catch{}},Z.__latRefresh=()=>{Object.entries(Y.buttons).forEach(([p,D])=>{const G=n(p);if(G&&G.state&&D.tagName==="BUTTON"){let R=!1;try{R=o.queryCommandState(G.state)}catch{R=!1}D.setAttribute("aria-pressed",R?"true":"false"),D.classList.toggle("is-active",R)}if(p==="heading"&&D.tagName==="SELECT"){let R="";try{R=String(o.queryCommandValue("formatBlock")||"").toLowerCase()}catch{R=""}const ee=[...D.options].some(P=>P.value===R);D.value=ee?R:"p"}})},Z.__latExec=(p,D)=>{k.focus(),Z.__latRestore();try{o.execCommand("styleWithCSS",!1,p==="foreColor")}catch{}try{o.execCommand(p,!1,D===void 0?null:D)}catch{}Z.__latAfterEdit()},Z.__latAfterEdit=()=>{const p=k.innerHTML,D=Y.history;D.stack[D.index]!==p&&(D.stack=D.stack.slice(0,D.index+1),D.stack.push(p),D.stack.length>200&&D.stack.shift(),D.index=D.stack.length-1),Z.__latRefresh();const G=u(o,p,Q,{}),R=Y.lastValue==null?u(o,D.stack[0]||"",Q,{}):Y.lastValue;Y.lastValue=G,_(Z,o,R,G)},Z.__latCaretEnd=()=>{const p=o.createRange();p.selectNodeContents(k),p.collapse(!1);const D=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;D&&(D.removeAllRanges(),D.addRange(p)),Y.range=p.cloneRange()},Z.__latUndo=()=>{const p=Y.history;if(p.index<=0)return;p.index-=1,k.innerHTML=p.stack[p.index],Z.__latCaretEnd(),Z.__latRefresh();const D=u(o,k.innerHTML,Q,{});Y.lastValue=D,_(Z,o,Y.lastValue,D)},Z.__latRedo=()=>{const p=Y.history;if(p.index>=p.stack.length-1)return;p.index+=1,k.innerHTML=p.stack[p.index],Z.__latCaretEnd(),Z.__latRefresh();const D=u(o,k.innerHTML,Q,{});Y.lastValue=D,_(Z,o,Y.lastValue,D)},Z.__latClosePopover=()=>{se.hidden=!0,se.textContent=""},Z.__latOpenPopover=(p,D)=>{if(se.textContent="",se.hidden=!1,se.style.left=`${Math.max(0,D.offsetLeft)}px`,p==="color"){const{el:G}=f(o,[r],{onPick:N=>{Z.__latRestore(),Z.__latExec("foreColor",N),Z.__latClosePopover()}});se.appendChild(G);const R=o.createElement("div");R.className="lat-form__richtext-poprow";const ee=o.createElement("input");ee.type="color",ee.className="lat-form__richtext-colorinput",ee.setAttribute("aria-label",S.t("form.richtext.colorCustom")),ee.addEventListener("input",()=>{Z.__latRestore(),Z.__latExec("foreColor",ee.value)});const P=o.createElement("button");P.type="button",P.className="lat-form__richtext-popbtn",P.textContent=S.t("form.richtext.colorRemove"),P.addEventListener("click",()=>{Z.__latRestore(),Z.__latExec("foreColor","inherit"),Z.__latClosePopover()}),R.appendChild(ee),R.appendChild(P),se.appendChild(R)}else{const G=Z.__latClosestLink(),R=o.createElement("input");R.type="url",R.className="lat-form__richtext-linkinput",R.placeholder=S.t("form.richtext.linkPlaceholder"),R.value=G&&G.getAttribute("href")||"",R.setAttribute("aria-label",S.t("form.richtext.linkLabel"));const ee=()=>{const y=R.value.trim();if(Z.__latRestore(),!y){Z.__latExec("unlink"),Z.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(y)){R.classList.add("is-invalid");return}if(G)G.setAttribute("href",y),Z.__latAfterEdit();else{const $=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if($&&$.isCollapsed){const w=i?` target="${g(i)}" rel="noopener noreferrer"`:"";Z.__latExec("insertHTML",u(o,`<a href="${g(y)}"${w}>${g(y)}</a>`,Q,{}))}else{Z.__latExec("createLink",y);const w=Z.__latClosestLink();w&&i&&(w.setAttribute("target",i),w.setAttribute("rel","noopener noreferrer"))}}Z.__latClosePopover()};R.addEventListener("keydown",y=>{y.key==="Enter"&&(y.preventDefault(),ee()),y.key==="Escape"&&Z.__latClosePopover()});const P=o.createElement("div");P.className="lat-form__richtext-poprow",P.appendChild(R);const N=o.createElement("button");if(N.type="button",N.className="lat-form__richtext-popbtn",N.textContent=G?S.t("form.richtext.linkUpdate"):S.t("form.richtext.linkAdd"),N.addEventListener("click",ee),P.appendChild(N),G){const y=o.createElement("button");y.type="button",y.className="lat-form__richtext-popbtn",y.textContent=S.t("form.richtext.linkRemove"),y.addEventListener("click",()=>{Z.__latRestore(),Z.__latExec("unlink"),Z.__latClosePopover()}),P.appendChild(y)}se.appendChild(P),setTimeout(()=>R.focus(),0)}},Z.__latClosestLink=()=>{const p=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if(!p||p.rangeCount===0)return null;let D=p.getRangeAt(0).commonAncestorContainer;D.nodeType===3&&(D=D.parentNode);const G=D.closest?D.closest("a"):null;return G&&k.contains(G)?G:null},Z.__latRun=p=>{if(Y.disabled||Y.readOnly)return;p!=="source"&&Y.sourceMode&&Z.__latToggleSource(!1),Z.__latRestore();const D=n(p);if(p==="color"||p==="link"){Z.__latOpenPopover(p,Y.buttons[p]);return}if(p==="undo"){Z.__latUndo();return}if(p==="redo"){Z.__latRedo();return}if(p==="source"){Z.__latToggleSource();return}if(p==="image"){Y.fileInput.click();return}if(p==="lowercase"||p==="uppercase"){Z.__latCase(p==="uppercase");return}if(D){Z.__latExec(D.cmd);return}},Z.__latCase=p=>{const D=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if(!D||D.rangeCount===0||D.isCollapsed)return;const G=D.toString();Z.__latExec("insertText",p?G.toUpperCase():G.toLowerCase())},Z.__latToggleSource=p=>{const D=p===void 0?!Y.sourceMode:!!p;if(D===Y.sourceMode)return;D?(Y.source.value=u(o,k.innerHTML,Q,{}).replace(/></g,`>
1636
- <`),k.hidden=!0,I.hidden=!1,I.focus()):(Y.sourceDirty&&(k.innerHTML=u(o,I.value,Q,{}),Y.sourceDirty=!1),I.hidden=!0,k.hidden=!1,k.focus()),Y.sourceMode=D;const G=Y.buttons.source;G&&(G.classList.toggle("is-active",D),G.setAttribute("aria-pressed",D?"true":"false")),Object.entries(Y.buttons).forEach(([R,ee])=>{R!=="source"&&(ee.disabled=D)}),D||Z.__latAfterEdit()},Z.__latInsertImage=async p=>{if(!/^image\//.test(p.type)||W&&p.size>W)return;let D;try{D=b?await b(p):await E(p)}catch{return}D&&Z.__latExec("insertHTML",u(o,`<img src="${g(D)}" alt="${g(p.name)}" style="max-width:100%">`,Q,{}))},Z.__latToolbarClick=p=>{const D=p.target&&p.target.closest?p.target.closest("[data-item]"):null;!D||!ve.contains(D)||D.tagName==="SELECT"||(p.preventDefault(),Z.__latRun(D.getAttribute("data-item")))},Z.__latToolbarDown=p=>{p.target&&p.target.closest&&p.target.closest(".lat-form__richtext-btn")&&p.preventDefault()},Z.__latSelect=p=>{p.target&&p.target.getAttribute&&p.target.getAttribute("data-item")==="heading"&&(Z.__latRestore(),Z.__latExec("formatBlock",p.target.value))},Z.__latInput=()=>{Z.__latAfterEdit()},Z.__latKey=p=>{if(!(p.ctrlKey||p.metaKey))return;const D=p.key.toLowerCase();D==="z"&&!p.shiftKey?(p.preventDefault(),Z.__latUndo()):D==="y"||D==="z"&&p.shiftKey?(p.preventDefault(),Z.__latRedo()):D==="k"&&Y.buttons.link&&(p.preventDefault(),Z.__latRun("link"))},Z.__latPaste=p=>{if(!J||!p.clipboardData)return;const D=p.clipboardData.getData("text/html"),G=p.clipboardData.getData("text/plain");if(!D&&!G)return;p.preventDefault();const R=D?u(o,D,Q,{stripStyles:!0}):g(G).replace(/\r?\n/g,"<br>");Z.__latExec("insertHTML",R)},Z.__latDrop=p=>{if(!J||!p.dataTransfer)return;const D=p.dataTransfer.files;if(D&&D.length){p.preventDefault();const P=D[0];P&&Z.__latInsertImage(P);return}const G=p.dataTransfer.getData("text/html"),R=p.dataTransfer.getData("text/plain");if(!G&&!R)return;p.preventDefault();const ee=G?u(o,G,Q,{stripStyles:!0}):g(R).replace(/\r?\n/g,"<br>");Z.__latExec("insertHTML",ee)},Z.__latBeforeInput=p=>{J&&(p.inputType==="insertFromDrop"||p.inputType==="insertFromPaste")&&p.preventDefault()},Z.__latSelChange=()=>{o.activeElement===k&&(Z.__latSave(),Z.__latRefresh())},Z.__latFile=()=>{const p=F.files&&F.files[0];F.value="",p&&Z.__latInsertImage(p)},Z.__latSourceInput=()=>{Y.sourceDirty=!0},Z.__latDocClick=p=>{se&&!se.hidden&&!se.contains(p.target)&&!ve.contains(p.target)&&Z.__latClosePopover()},ve.addEventListener("click",Z.__latToolbarClick),ve.addEventListener("mousedown",Z.__latToolbarDown),ve.addEventListener("change",Z.__latSelect),k.addEventListener("input",Z.__latInput),k.addEventListener("keydown",Z.__latKey),k.addEventListener("paste",Z.__latPaste),k.addEventListener("drop",Z.__latDrop),k.addEventListener("beforeinput",Z.__latBeforeInput),F.addEventListener("change",Z.__latFile),I.addEventListener("input",Z.__latSourceInput),o.addEventListener&&(o.addEventListener("selectionchange",Z.__latSelChange),o.addEventListener("mousedown",Z.__latDocClick,!0)),Z},read(c){const S=c.__latRt;return S?S.sourceMode?u(c.ownerDocument,S.source.value,S.allowedTags,{}):u(c.ownerDocument,S.editor.innerHTML,S.allowedTags,{}):""},write(c,S){const o=c.__latRt;if(!o)return;const d=c.ownerDocument,l=u(d,S==null?"":String(S),o.allowedTags,{});o.sourceMode&&(o.source.value=l),o.editor.innerHTML=l,o.history={stack:[l],index:0},o.lastValue=l},state(c,S){const o=c.__latRt;o&&(o.disabled=S.disabled===!0,o.readOnly=S.readOnly===!0,o.editor.contentEditable=o.disabled||o.readOnly?"false":"true",o.editor.tabIndex=o.readOnly?0:-1,o.readOnly?o.editor.setAttribute("aria-readonly","true"):o.editor.removeAttribute("aria-readonly"),o.disabled?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled"),o.readOnly?c.setAttribute("aria-readonly","true"):c.removeAttribute("aria-readonly"),Object.values(o.buttons).forEach(d=>{d.disabled=o.disabled||o.readOnly}))}});function _(c,S,o,d){const l=S&&S.defaultView,s=l&&l.Event,r=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}};c.dispatchEvent(r)}}),je("packages/modules/form/controls/rating.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=5,re=Object.freeze({star:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.2l-3.8 2 .7-4.3-3.1-3 4.3-.6z",heart:"M8 14s-5-3.2-5-6.3A2.9 2.9 0 0 1 8 5.7 2.9 2.9 0 0 1 13 7.7C13 10.8 8 14 8 14z"});function g(u){const h=String(u??"");return Object.hasOwn(re,h)?h:"star"}function L(u,h,x){return Math.min(Math.max(u,h),x)}function C(u,h){const x=h&&h.defaultView,t=x&&x.Event,n=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(n)}function A(u,h,x){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"),x?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const n=u.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",re[h]),t.appendChild(n),t}function H(u,h,x){const t=Number(u),n=Number.isFinite(t)?t:0,a=x?Math.round(n*2)/2:Math.round(n);return L(a,0,h)}function T(u,h){return Math.min(1,Math.max(0,u-(h-1)))}U("rating",{kind:"field",build(u,h){const x=h.doc,t=u.props||{},n=Math.max(1,Math.floor(Number(u.max!=null?u.max:t.max)||O)),a=t.allowHalf===!0,m=t.allowClear!==!1,E=t.showValue===!0,_=Array.isArray(t.labels)?t.labels:null,c=g(t.icons&&t.icons.filled?t.icons.filled:t.icon),S=g(t.icons&&t.icons.empty?t.icons.empty:`${c}-outline`),o=t.size==="lg"||t.size==="sm"?t.size:"md",d=x.createElement("div");d.className=`lat-form__rating lat-form__rating--${o}`,d.setAttribute("role","slider"),d.setAttribute("aria-valuemin","0"),d.setAttribute("aria-valuemax",String(n)),d.setAttribute("aria-label",u.label!=null?String(u.label):h.t("form.rating"));const l={value:H(u.value,n,a),max:n,allowHalf:a,allowClear:m,labels:_,showValue:E,filledName:c,emptyName:S,items:[],fills:[],valueEl:null};d.__latRating=l;const s=x.createElement("span");s.className="lat-form__rating-track",s.setAttribute("aria-hidden","true");for(let r=0;r<n;r++){const i=x.createElement("span");i.className="lat-form__rating-item",i.setAttribute("data-index",String(r)),_&&_[r]!=null&&_[r]!==""&&(i.title=String(_[r])),i.appendChild(A(x,S,!1));const B=x.createElement("span");B.className="lat-form__rating-fill",B.setAttribute("aria-hidden","true"),B.appendChild(A(x,c,!0)),i.appendChild(B),s.appendChild(i),l.items.push(i),l.fills.push(B)}if(d.appendChild(s),E){const r=x.createElement("span");r.className="lat-form__rating-value",r.setAttribute("aria-hidden","true"),d.appendChild(r),l.valueEl=r}return d.__latPaint=()=>{for(let r=0;r<l.items.length;r++){const i=T(l.value,r+1);l.items[r].setAttribute("data-fill",i>=1?"full":i>0?"half":"empty"),l.fills[r].style.width=`${(i*100).toFixed(2)}%`}d.setAttribute("aria-valuenow",String(l.value)),d.setAttribute("aria-valuetext",v(l)),l.valueEl&&(l.valueEl.textContent=f(l))},d.__latSet=r=>{l.value=H(r,n,a),d.__latPaint()},d.__latClear=()=>{l.value=0,d.__latPaint()},d.__latPick=(r,i)=>{let B=r+1;if(a&&i&&Number.isFinite(i.clientX)){const z=l.items[r].getBoundingClientRect();z&&z.width>0&&(B=i.clientX-z.left<z.width/2?r+.5:r+1)}m&&B===l.value&&(B=0),d.__latSet(B),C(d,h.doc)},d.addEventListener("click",r=>{if(l.disabled||l.readOnly)return;const i=r.target&&r.target.closest?r.target.closest(".lat-form__rating-item"):null;!i||!d.contains(i)||d.__latPick(Number(i.getAttribute("data-index")),r)}),d.__latKey=r=>{if(l.disabled||l.readOnly)return;const i=a?.5:1;let B=l.value;if(r.key==="ArrowRight"||r.key==="ArrowUp")B+=i;else if(r.key==="ArrowLeft"||r.key==="ArrowDown")B-=i;else if(r.key==="Home")B=0;else if(r.key==="End")B=n;else if(r.key==="Backspace"||r.key==="Delete")B=0;else return;r.preventDefault(),d.__latSet(B),C(d,h.doc)},d.addEventListener("keydown",d.__latKey),d.__latPaint(),d},read(u){return u.__latRating?u.__latRating.value:0},write(u,h){u.__latRating&&(u.__latRating.value=H(h,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,h){const x=u.__latRating;x&&(x.disabled=h.disabled===!0,x.readOnly=h.readOnly===!0,u.tabIndex=x.disabled?-1:0,x.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),x.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function v(u){const h=Math.round(u.value);return u.labels&&u.labels[h-1]&&u.value===h?u.labels[h-1]:`${u.value} of ${u.max}`}function f(u){return String(u.value)}}),je("packages/modules/form/controls/stage.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl;function O(L,C){const A=C&&C.defaultView,H=A&&A.Event,T=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}};L.dispatchEvent(T)}function re(L,C){return typeof C=="number"&&Number.isFinite(C)?Math.min(Math.max(Math.round(C),0),L.length-1):typeof C=="string"?L.indexOf(C):-1}function g(L,C,A){return`${L}, ${C+1} of ${A}`}U("stage",{kind:"field",build(L,C){const A=C.doc,H=L.props||{},T=Array.isArray(H.stages)?H.stages.map(a=>String(a)):[],v=H.clickable!==!1,f=H.showIcons!==!1,u=re(T,L.value!=null?L.value:H.current),h=re(T,H.completed),x=A.createElement("div");x.className="lat-form__stage",x.setAttribute("role","radiogroup"),x.setAttribute("aria-label",L.label!=null?String(L.label):C.t("form.stage"));const t=[],n={stages:T,value:u>=0?T[u]:null,index:u,completed:h,clickable:v,showIcons:f,disabled:!1,readOnly:!1,focus:u>=0?u:0};x.__latStage=n;for(let a=0;a<T.length;a++){const m=A.createElement(v?"button":"span");if(m.type=v?"button":void 0,m.className="lat-form__stage-step",m.setAttribute("data-index",String(a)),v&&(m.setAttribute("role","radio"),m.setAttribute("aria-label",g(T[a],a,T.length))),f){const _=A.createElementNS("http://www.w3.org/2000/svg","svg");_.setAttribute("viewBox","0 0 16 16"),_.setAttribute("aria-hidden","true"),_.setAttribute("class","lat-form__stage-check");const c=A.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d","M3 8.5l3 3 7-7"),c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","2"),c.setAttribute("stroke-linecap","round"),c.setAttribute("stroke-linejoin","round"),_.appendChild(c),m.appendChild(_)}const E=A.createElement("span");E.className="lat-form__stage-label",E.textContent=T[a],m.appendChild(E),x.appendChild(m),t.push(m)}return x.__latPaint=()=>{for(let a=0;a<t.length;a++){const m=a===n.index,E=!m&&n.completed>=0&&a<=n.completed;t[a].setAttribute("data-state",m?"current":E?"done":"todo"),n.clickable&&(t[a].setAttribute("aria-checked",m?"true":"false"),t[a].tabIndex=n.disabled?-1:a===n.focus?0:-1)}},x.__latSelect=a=>{const m=a>=0&&a<T.length?T[a]:null;m!==n.value&&(n.index=a>=0&&a<T.length?a:-1,n.value=m,n.focus=n.index>=0?n.index:0,x.__latPaint(),O(x,C.doc))},x.__latKey=a=>{if(n.disabled||n.readOnly||!n.clickable||!T.length)return;let m=n.focus;if(a.key==="ArrowRight"||a.key==="ArrowDown")m+=1;else if(a.key==="ArrowLeft"||a.key==="ArrowUp")m-=1;else if(a.key==="Home")m=0;else if(a.key==="End")m=T.length-1;else return;a.preventDefault();const E=Math.min(Math.max(m,0),T.length-1);n.focus=E,t[E].focus(),x.__latSelect(E)},v&&(x.addEventListener("click",a=>{if(n.disabled||n.readOnly)return;const m=a.target&&a.target.closest?a.target.closest(".lat-form__stage-step"):null;if(!m||!x.contains(m))return;const E=Number(m.getAttribute("data-index"));n.focus=E,x.__latSelect(E)}),x.addEventListener("keydown",x.__latKey)),x.__latPaint(),x},read(L){return L.__latStage?L.__latStage.value:null},write(L,C){const A=L.__latStage;if(!A)return;const H=C==null?-1:re(A.stages,C);A.index=H,A.value=H>=0?A.stages[H]:null,A.focus=H>=0?H:0,L.__latPaint()},state(L,C){const A=L.__latStage;A&&(A.disabled=C.disabled===!0,A.readOnly=C.readOnly===!0,A.readOnly?L.setAttribute("aria-readonly","true"):L.removeAttribute("aria-readonly"),A.disabled?L.setAttribute("aria-disabled","true"):L.removeAttribute("aria-disabled"),L.__latPaint())}})}),je("packages/modules/form/controls/chips.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O="M3 8.5l3 3 7-7";function re(C,A){const H=A&&A.defaultView,T=H&&H.Event,v=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(v)}function g(C){if(typeof C=="string")return{value:C,label:C,icon:null,disabled:!1};if(C!==null&&typeof C=="object"){const A=C.value===void 0?String(C.label):C.value;return{value:A,label:C.label==null?String(A):String(C.label),icon:typeof C.icon=="string"&&C.icon!==""?C.icon:null,disabled:C.disabled===!0}}return{value:C,label:String(C),icon:null,disabled:!1}}function L(C,A,H){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");const v=C.createElementNS("http://www.w3.org/2000/svg","path");return v.setAttribute("d",A),H?v.setAttribute("fill","currentColor"):(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","2"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")),T.appendChild(v),T}U("chips",{kind:"field",build(C,A){const H=A.doc,T=C.props||{},v=(Array.isArray(C.options)?C.options:[]).map(g),f=T.multiple===!0,u=T.allowEmpty===!0,h=T.wrap!==!1,x=C.max!=null&&Number.isFinite(Number(C.max))?Number(C.max):null,t=H.createElement("div");t.className=`lat-form__chips${h?"":" lat-form__chips--scroll"}`,t.setAttribute("role",f?"group":"radiogroup"),t.setAttribute("aria-label",C.label!=null?String(C.label):A.t("form.chips"));const n=[],a=new Set,m={options:v,multiple:f,allowEmpty:u,wrap:h,max:x,selected:a,disabled:!1,readOnly:!1,t:A.t};t.__latChips=m;for(let _=0;_<v.length;_++){const c=v[_],S=H.createElement("button");if(S.type="button",S.className="lat-form__chip",S.setAttribute("data-index",String(_)),S.disabled=c.disabled,f||S.setAttribute("role","radio"),c.icon){const d=L(H,c.icon,!0);d.setAttribute("class","lat-form__chip-icon"),S.appendChild(d)}const o=H.createElement("span");if(o.className="lat-form__chip-label",o.textContent=c.label,S.appendChild(o),f){const d=L(H,O,!1);d.setAttribute("class","lat-form__chip-check"),S.appendChild(d)}t.appendChild(S),n.push(S)}m.buttons=n,t.__latPaint=()=>{for(let _=0;_<n.length;_++){const c=v[_],S=a.has(c.value),o=n[_];o.disabled=c.disabled||m.disabled,f?(o.setAttribute("aria-pressed",S?"true":"false"),o.tabIndex=m.disabled?-1:0):(o.setAttribute("aria-checked",S?"true":"false"),o.tabIndex=m.disabled?-1:S?0:-1)}},t.__latValue=()=>{if(f)return v.filter(_=>a.has(_.value)).map(_=>_.value);for(const _ of v)if(a.has(_.value))return _.value;return null},t.__latToggle=_=>{const c=v[_];if(!(!c||c.disabled||m.disabled||m.readOnly)){if(f)if(a.has(c.value))a.delete(c.value);else{if(x!=null&&a.size>=x)return;a.add(c.value)}else if(a.has(c.value))if(m.allowEmpty)a.clear();else return;else a.clear(),a.add(c.value);t.__latPaint(),re(t,A.doc)}},t.addEventListener("click",_=>{const c=_.target&&_.target.closest?_.target.closest(".lat-form__chip"):null;!c||!t.contains(c)||t.__latToggle(Number(c.getAttribute("data-index")))}),t.__latKey=_=>{if(m.multiple||m.disabled||m.readOnly||!n.length)return;let c=-1;for(let l=0;l<n.length;l++)if(a.has(v[l].value)){c=l;break}let S=c;if(_.key==="ArrowRight"||_.key==="ArrowDown")S=c+1;else if(_.key==="ArrowLeft"||_.key==="ArrowUp")S=c-1;else if(_.key==="Home")S=0;else if(_.key==="End")S=v.length-1;else return;_.preventDefault();const o=_.key==="ArrowLeft"||_.key==="ArrowUp"?-1:1;let d=S;for(;d>=0&&d<v.length&&v[d].disabled;)d+=o;d<0||d>=v.length||(a.clear(),a.add(v[d].value),t.__latPaint(),n[d].focus(),re(t,A.doc))},t.addEventListener("keydown",t.__latKey);const E=C.value;if(f){const _=Array.isArray(E)?E:[];for(const c of _)v.some(S=>S.value===c)&&a.add(c)}else if(E!=null&&v.some(_=>_.value===E))a.add(E);else if(!u){const _=v.find(c=>!c.disabled)||v[0];_&&a.add(_.value)}return t.__latPaint(),t},read(C){return C.__latChips?C.__latValue():null},write(C,A){const H=C.__latChips;if(H){if(H.selected.clear(),H.multiple){const T=Array.isArray(A)?A:[];for(const v of T)H.options.some(f=>f.value===v)&&H.selected.add(v)}else if(A!=null&&H.options.some(T=>T.value===A))H.selected.add(A);else if(!H.allowEmpty){const T=H.options.find(v=>!v.disabled)||H.options[0];T&&H.selected.add(T.value)}C.__latPaint()}},validate(C,A,H){const T=C.__latChips;if(!T||!T.multiple)return null;const v=Array.isArray(H)?H.length:0,f=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 f!=null&&v<f?{code:"min",message:T.t("form.chips.min",{min:String(f)})}:u!=null&&v>u?{code:"max",message:T.t("form.chips.max",{max:String(u)})}:null},state(C,A){const H=C.__latChips;H&&(H.disabled=A.disabled===!0,H.readOnly=A.readOnly===!0,H.readOnly?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly"),H.disabled?C.setAttribute("aria-disabled","true"):C.removeAttribute("aria-disabled"),C.__latPaint())}})}),je("packages/modules/form/controls/otp.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=6;function re(u){const h=Math.floor(Number(u));return Number.isFinite(h)&&h>=1?h:O}function g(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function L(u,h){return h==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function C(u,h){for(let x=u.length-1;x>=0;x-=1)if(L(u[x],h))return u[x];return""}function A(u,h,x){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(n=>L(n,h)).slice(0,x)}function H(u,h,x){const t=h&&h.defaultView,n=t&&t.Event,a=n?new n(x,{bubbles:!0}):{type:x,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(a)}function T(u,h){const x=A(h,u.mode,u.length);for(let t=0;t<u.length;t+=1)u.boxes[t].value=x[t]||""}function v(u){u.complete=u.boxes.every(h=>h.value!=="")}function f(u){return u.boxes.map(h=>h.value).join("")}U("otp",{kind:"field",domEvents:["complete"],build(u,h){const x=h.doc,t=u.props||{},n=re(t.length),a=g(u.mode!=null?u.mode:t.mode),m=t.mask===!0,E=x.createElement("div");E.className="lat-form__otp",E.setAttribute("role","group"),E.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):h.t("form.otp.label"));const _=[],c={length:n,mode:a,mask:m,boxes:_,complete:!1,disabled:!1,readOnly:!1};E.__latOtp=c;for(let o=0;o<n;o+=1){const d=x.createElement("input");d.type="text",d.className=`lat-form__otp-input${m?" lat-form__otp-input--masked":""}`,d.setAttribute("inputmode",a==="numeric"?"numeric":"text"),d.setAttribute("pattern",a==="numeric"?"[0-9]":"[A-Za-z0-9]"),d.setAttribute("maxlength","1"),d.setAttribute("aria-label",h.t("form.otp.digit",{n:o+1,total:n})),d.autocomplete=o===0?"one-time-code":"off",_.push(d),E.appendChild(d)}const S=()=>{if(E.__latPublishing)return;E.__latPublishing=!0;try{H(E,x,"input"),H(E,x,"change")}finally{E.__latPublishing=!1}const o=_.every(d=>d.value!=="");o&&!c.complete?(c.complete=!0,H(E,x,"complete")):!o&&c.complete&&(c.complete=!1)};return E.addEventListener("input",o=>{if(E.__latPublishing)return;o.stopImmediatePropagation();const d=o.target;if(!_.includes(d))return;d.value=C(d.value,a);const l=_.indexOf(d);d.value!==""&&l<n-1&&_[l+1].focus(),S()}),E.addEventListener("change",o=>{E.__latPublishing||o.stopImmediatePropagation()}),E.addEventListener("keydown",o=>{if(c.disabled||c.readOnly)return;const d=o.target;if(!_.includes(d))return;const l=_.indexOf(d);o.key==="Backspace"?(o.preventDefault(),d.value!==""?d.value="":l>0&&(_[l-1].value="",_[l-1].focus()),S()):o.key==="ArrowLeft"&&l>0?(o.preventDefault(),_[l-1].focus()):o.key==="ArrowRight"&&l<n-1?(o.preventDefault(),_[l+1].focus()):o.key.length===1&&!L(o.key,a)&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&o.preventDefault()}),E.addEventListener("paste",o=>{if(c.disabled||c.readOnly)return;o.preventDefault();const d=o.clipboardData&&typeof o.clipboardData.getData=="function"?o.clipboardData.getData("text"):"";T(c,d),(_.find(s=>s.value==="")||_[n-1]).focus(),S()}),E.focus=()=>{const o=_.find(d=>!d.disabled&&!d.readOnly&&d.value==="")||_[0];o&&o.focus()},E.blur=()=>{for(const o of _)o.blur()},T(c,u.value),v(c),E},read(u){return u.__latOtp?f(u.__latOtp):""},write(u,h){u.__latOtp&&(T(u.__latOtp,h),v(u.__latOtp))},state(u,h){const x=u.__latOtp;if(x){x.disabled=h.disabled===!0,x.readOnly=h.readOnly===!0;for(const t of x.boxes)t.disabled=x.disabled,t.readOnly=x.readOnly;x.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),x.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),je("packages/modules/form/controls/color.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/swatches.js"),C=L.DEFAULT_PALETTE,A=L.DEFAULT_GRAY_SHADES,H=L.buildSwatchGrid,T=L.hslToHex,v=10,f=/^#?([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 h(k){return k}const x=new Set;function t(k,I){x.has(k)||(x.add(k),console.warn("[lattice]",I))}function n(k){if(typeof k!="string")return null;const I=k.trim();if(!f.test(I))return null;const F=I.replace(/^#/,"").toLowerCase();return`#${F.length===3?F.split("").map(D=>D+D).join(""):F}`}function a(k){if(typeof k!="string")return null;const I=n(k);if(I)return I;const F=u.exec(k.trim());if(!F)return null;const p=G=>Math.max(0,Math.min(255,Number(G))),D=G=>p(G).toString(16).padStart(2,"0");return`#${D(F[1])}${D(F[2])}${D(F[3])}`}function m(k){const I=n(k);return I?{r:parseInt(I.slice(1,3),16),g:parseInt(I.slice(3,5),16),b:parseInt(I.slice(5,7),16)}:null}function E(k,I,F){const p=D=>Math.max(0,Math.min(255,Math.round(D))).toString(16).padStart(2,"0");return`#${p(k)}${p(I)}${p(F)}`}function _(k,I,F){const p=k/255,D=I/255,G=F/255,R=Math.max(p,D,G),ee=Math.min(p,D,G),P=(R+ee)/2,N=R-ee;if(N===0)return{h:0,s:0,l:P};const y=P>.5?N/(2-R-ee):N/(R+ee);let $;return R===p?$=(D-G)/N%6:R===D?$=(G-p)/N+2:$=(p-D)/N+4,$*=60,$<0&&($+=360),{h:$,s:y,l:P}}function c(k){return T(k.h,k.s,k.l)}function S(k,I,F){const p=k.ownerDocument,D=p&&p.defaultView,G=D&&typeof D.CustomEvent=="function"?D.CustomEvent:null,R=G?new G(I,{bubbles:!0,detail:F}):{type:I,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:F,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};k.dispatchEvent(R)}function o(k){const I=k.props&&k.props.palette;return Array.isArray(I)&&I.length?I:C}function d(k){return!(k.props&&k.props.editable===!1)}function l(k){return!!(k.props&&k.props.clearable===!0)}function s(k){return!!(k.props&&k.props.pickerOnly===!0)}function r(k){return!(k.props&&k.props.grayShades===!1)}function i(k){const I=k.props&&k.props.icon;return typeof I=="string"&&I!==""?I:null}function B(k){const I=k.props&&k.props.customColors;return Array.isArray(I)?[...new Set(I.map(a).filter(Boolean))].slice(0,v):[]}function z(k){const I=n(k.__input.value);k.__swatchBtn.style.background=I||"transparent",k.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!I),k.__clearBtn&&(k.__clearBtn.hidden=k.__input.value.trim()==="")}function W(k,I){k.__value=I||null,k.__input.value=I||"",k.__lastCommittedText=I||"",z(k)}function b(k){if(d(k.__item)===!1)return;const I=k.__input.value.trim();if(I===k.__lastCommittedText)return;const F=n(I);(F||I==="")&&(k.__value=F,k.__lastCommittedText=I),S(k,"change")}function J(k,I){W(k,I),S(k,"change")}function Q(k,I){const F=k.__customColors,p=F.filter(G=>G!==I),D=[I,...p].slice(0,v);D.length===F.length&&D.every((G,R)=>G===F[R])||(k.__customColors=D,S(k,"customColorsChange",{colors:D}))}function ne(k){const I=k.__popover,F=k.ownerDocument,p=F&&F.defaultView,D=k.__field.getBoundingClientRect(),G=p?p.innerHeight:0,R=I.offsetHeight||0;G-D.bottom<R+4&&D.top>R+4?I.classList.add("lat-form__color-popover--above"):I.classList.remove("lat-form__color-popover--above")}function Z(k,I,F,p){let D=Math.max(0,Math.min(k.length-1,I.row+F)),G=I.col+p;if(p!==0){const R=k[D].length;G=Math.max(0,Math.min(R-1,G))}else G=Math.max(0,Math.min(k[D].length-1,G));return{row:D,col:G}}function Y(k){const I=k.__item,F=k.ownerDocument,p=k.__popover;for(;p.firstChild;)p.removeChild(p.firstChild);const D=[...o(I)];r(I)&&D.push([...A]),k.__customColors.length&&D.push([...k.__customColors]);const G=k.__value,{el:R,rows:ee}=H(F,D,{isSelected:N=>N===G,onPick:N=>{J(k,N),se(k,{restoreFocus:!0})}});R.classList.add("lat-form__color-grid"),p.appendChild(R);for(const N of ee)for(const y of N){if(y.getAttribute("aria-selected")!=="true")continue;const $=F.createElementNS("http://www.w3.org/2000/svg","svg");$.setAttribute("viewBox","0 0 16 16"),$.setAttribute("class","lat-form__color-check"),$.setAttribute("aria-hidden","true");const w=F.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),w.setAttribute("fill","none"),w.setAttribute("stroke","#fff"),w.setAttribute("stroke-width","2.6"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round"),w.setAttribute("paint-order","stroke"),$.appendChild(w);const V=F.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","#000"),V.setAttribute("stroke-width","4.2"),V.setAttribute("stroke-linecap","round"),V.setAttribute("stroke-linejoin","round"),V.setAttribute("opacity","0.35"),$.insertBefore(V,w),y.appendChild($)}let P={row:0,col:0};e:for(let N=0;N<ee.length;N++)for(let y=0;y<ee[N].length;y++)if(ee[N][y].getAttribute("aria-selected")==="true"){P={row:N,col:y};break e}for(const N of ee)for(const y of N)y.tabIndex=-1;if(ee[P.row]&&ee[P.row][P.col]&&(ee[P.row][P.col].tabIndex=0),R.addEventListener("keydown",N=>{if(N.key==="Enter"||N.key===" "){N.preventDefault(),N.stopPropagation(),ee[P.row][P.col].click();return}const $={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[N.key];if(!$)return;N.preventDefault();for(const V of ee)for(const oe of V)oe.tabIndex=-1;P=Z(ee,P,$[0],$[1]);const w=ee[P.row][P.col];w.tabIndex=0,w.focus()}),!s(I)){const N=F.createElement("button");N.type="button",N.className="lat-form__color-custombtn",N.textContent=k.__t("form.color.customColor"),N.addEventListener("click",()=>{Ne(k,G)}),p.appendChild(N)}ne(k)}function Ne(k,I){const F=k.__item,p=k.ownerDocument,D=k.__popover;for(;D.firstChild;)D.removeChild(D.firstChild);const G=m(I)||{r:0,g:0,b:0},R=_(G.r,G.g,G.b),ee=p.createElement("div");ee.className="lat-form__color-picker",D.appendChild(ee);const P=p.createElement("div");P.className="lat-form__color-plane",P.setAttribute("role","slider"),P.setAttribute("aria-label",k.__t("form.color.saturationLightness")),P.tabIndex=0;const N=p.createElement("div");N.className="lat-form__color-plane-thumb",P.appendChild(N),ee.appendChild(P);const y=p.createElement("div");y.className="lat-form__color-hue",y.setAttribute("role","slider"),y.setAttribute("aria-label",k.__t("form.color.hue")),y.tabIndex=0;const $=p.createElement("div");$.className="lat-form__color-hue-thumb",y.appendChild($),ee.appendChild(y);const w=p.createElement("div");w.className="lat-form__color-fields";const V=p.createElement("input");V.type="text",V.className="lat-form__color-hexfield",V.setAttribute("aria-label",k.__t("form.color.hexLabel"));const oe=p.createElement("input");oe.type="number",oe.min="0",oe.max="255",oe.className="lat-form__color-rgbfield",oe.setAttribute("aria-label",k.__t("form.color.redLabel"));const ie=p.createElement("input");ie.type="number",ie.min="0",ie.max="255",ie.className="lat-form__color-rgbfield",ie.setAttribute("aria-label",k.__t("form.color.greenLabel"));const _e=p.createElement("input");_e.type="number",_e.min="0",_e.max="255",_e.className="lat-form__color-rgbfield",_e.setAttribute("aria-label",k.__t("form.color.blueLabel")),w.appendChild(V),w.appendChild(oe),w.appendChild(ie),w.appendChild(_e),ee.appendChild(w);const Oe=p.createElement("div");Oe.className="lat-form__color-previewrow";const Se=p.createElement("span");Se.className="lat-form__color-preview",Oe.appendChild(Se),ee.appendChild(Oe);const j=p.createElement("div");if(j.className="lat-form__color-actions",!s(F)){const ye=p.createElement("button");ye.type="button",ye.className="lat-form__color-back",ye.textContent=k.__t("form.back"),ye.addEventListener("click",()=>{Y(k)}),j.appendChild(ye)}const te=p.createElement("button");te.type="button",te.className="lat-form__color-select",te.textContent=k.__t("form.color.select"),j.appendChild(te),ee.appendChild(j);const ce=()=>{const ye=c(R),me=m(ye);P.style.setProperty("--lat-color-hue",String(R.h)),N.style.left=`${R.s*100}%`,N.style.top=`${(1-R.l)*100}%`,$.style.left=`${R.h/360*100}%`,V.value=ye,oe.value=String(me.r),ie.value=String(me.g),_e.value=String(me.b),Se.style.background=ye,P.setAttribute("aria-valuetext",ye),y.setAttribute("aria-valuenow",String(Math.round(R.h)))};ce();const K=(ye,me,we)=>{const q=ye.getBoundingClientRect();if(!q.width||!q.height)return;const $e=Math.max(0,Math.min(1,(me.clientX-q.left)/q.width)),he=Math.max(0,Math.min(1,(me.clientY-q.top)/q.height));we($e,he)},de=(ye,me)=>{let we=!1;ye.addEventListener("pointerdown",q=>{we=!0,K(ye,q,me)}),p.addEventListener("pointermove",q=>{we&&K(ye,q,me)}),p.addEventListener("pointerup",()=>{we=!1})};de(P,(ye,me)=>{R.s=ye,R.l=1-me,ce()}),de(y,ye=>{R.h=ye*360,ce()}),P.addEventListener("keydown",ye=>{if(ye.key==="Enter"){ye.preventDefault(),ye.stopPropagation(),Ce();return}const me=ye.shiftKey?.1:.02;if(ye.key==="ArrowLeft")R.s=Math.max(0,R.s-me);else if(ye.key==="ArrowRight")R.s=Math.min(1,R.s+me);else if(ye.key==="ArrowUp")R.l=Math.min(1,R.l+me);else if(ye.key==="ArrowDown")R.l=Math.max(0,R.l-me);else return;ye.preventDefault(),ce()}),y.addEventListener("keydown",ye=>{if(ye.key==="Enter"){ye.preventDefault(),ye.stopPropagation(),Ce();return}const me=ye.shiftKey?10:2;if(ye.key==="ArrowLeft"||ye.key==="ArrowDown")R.h=(R.h-me+360)%360;else if(ye.key==="ArrowRight"||ye.key==="ArrowUp")R.h=(R.h+me)%360;else return;ye.preventDefault(),ce()});const ue=()=>{const ye=n(V.value);if(!ye){V.value=c(R);return}const me=m(ye);Object.assign(R,_(me.r,me.g,me.b)),ce()};V.addEventListener("change",ue);const be=()=>{const ye=me=>Math.max(0,Math.min(255,Number(me)||0));Object.assign(R,_(ye(oe.value),ye(ie.value),ye(_e.value))),ce()};oe.addEventListener("change",be),ie.addEventListener("change",be),_e.addEventListener("change",be);const Ce=()=>{const ye=c(R);J(k,ye),Q(k,ye),se(k,{restoreFocus:!0})};te.addEventListener("click",Ce);const Ae=ye=>me=>{me.key==="Enter"&&(me.preventDefault(),me.stopPropagation(),ye(),Ce())};V.addEventListener("keydown",Ae(ue)),oe.addEventListener("keydown",Ae(be)),ie.addEventListener("keydown",Ae(be)),_e.addEventListener("keydown",Ae(be)),ne(k)}function ve(k){k.__open||k.__item.disabled===!0||k.__item.readOnly===!0||(k.__open=!0,k.__popover.hidden=!1,s(k.__item)||k.__item.mode==="picker"?Ne(k,k.__value):Y(k))}function se(k,I={}){if(k.__open){for(k.__open=!1,k.__popover.hidden=!0,k.__popover.classList.remove("lat-form__color-popover--above");k.__popover.firstChild;)k.__popover.removeChild(k.__popover.firstChild);I.restoreFocus&&k.__input.focus()}}U("color",{kind:"field",domEvents:["customColorsChange"],build(k,I){const F=I.doc;g(F);const p=F.createElement("div");p.className="lat-form__color",p.__item=k,p.__t=I.t||h,p.__open=!1,p.__value=a(k.value),p.__customColors=B(k);const D=F.createElement("div");D.className="lat-form__color-field",p.__field=D;const G=F.createElement("button");G.type="button",G.className="lat-form__color-swatch",G.setAttribute("aria-label",p.__t("form.color.open")),p.__swatchBtn=G;const R=F.createElement("input");R.type="text",R.className="lat-form__color-input",k.name&&(R.name=k.name),k.placeholder!=null&&(R.placeholder=String(k.placeholder)),k.label!=null&&k.label!==""&&R.setAttribute("aria-label",String(k.label)),R.setAttribute("autocomplete","off"),R.readOnly=!d(k),p.__input=R,D.appendChild(G),D.appendChild(R);let ee=null;if(l(k)){ee=F.createElement("button"),ee.type="button",ee.className="lat-form__color-clear",ee.setAttribute("aria-label",p.__t("form.color.clear"));const ie=re(F,"close");ie&&ee.appendChild(ie),ee.addEventListener("click",()=>{J(p,null),R.focus()}),D.appendChild(ee)}p.__clearBtn=ee;const P=F.createElement("button");P.type="button",P.className="lat-form__color-toggle",P.setAttribute("aria-label",p.__t("form.color.open"));const N=i(k),y=N?re(F,N):re(F,"chevronDown");y&&P.appendChild(y),p.__toggleBtn=P,D.appendChild(P),p.appendChild(D);const $=F.createElement("div");$.className="lat-form__color-popover",$.hidden=!0,p.__popover=$,p.appendChild($),W(p,p.__value);const w=()=>{p.__open?se(p):ve(p)};G.addEventListener("click",w),P.addEventListener("click",w),R.addEventListener("input",()=>{z(p)}),R.addEventListener("change",ie=>{ie.stopPropagation(),b(p)}),R.addEventListener("keydown",ie=>{ie.key==="Enter"?(ie.preventDefault(),b(p)):ie.key==="Escape"&&p.__open?se(p):ie.altKey&&ie.key==="ArrowDown"&&(ie.preventDefault(),ve(p))}),p.addEventListener("keydown",ie=>{ie.target!==R&&(ie.key==="Enter"&&!p.__open||ie.altKey&&ie.key==="ArrowDown"?(ie.preventDefault(),ve(p)):ie.key==="Escape"&&p.__open&&(ie.preventDefault(),se(p,{restoreFocus:!0})))});const V=ie=>{!p.__open||p.contains(ie.target)||se(p)},oe=ie=>{p.__open&&(ie.relatedTarget&&p.contains(ie.relatedTarget)||se(p))};return F.addEventListener("pointerdown",V),p.addEventListener("focusout",oe),Array.isArray(I.disposers)&&I.disposers.push(()=>{F.removeEventListener("pointerdown",V),p.removeEventListener("focusout",oe)}),p},read(k){const I=k.__input.value.trim();return I===""?null:n(I)||I},write(k,I){if(I==null||I===""){k.__value=null,W(k,null);return}const F=a(I);if(!F){t("form.color.setValue",`form.color: "${String(I)}" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.`);return}k.__value=F,W(k,F)},state(k,I){const F=I.disabled===!0||I.readOnly===!0;k.__input.disabled=I.disabled===!0,k.__input.readOnly=I.readOnly===!0||!d(I),k.__swatchBtn.disabled=F,k.__toggleBtn.disabled=F,k.__clearBtn&&(k.__clearBtn.disabled=F),F&&se(k)},validate(k,I,F){return F==null||typeof F=="string"&&/^#[0-9a-f]{6}$/.test(F)?!0:typeof I.errorMessage=="string"&&I.errorMessage!==""?I.errorMessage:k.__t("form.color.invalidHex")},focus(k){k.__input.focus()}})}),je("packages/dom/src/cell/renderers/barcode/support.js",function(M,X){"use strict";Object.defineProperty(M,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"joinCharacters",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"buildPattern",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"mod10Weighted",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"MOD43_ORDER",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"mod43Check",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"weightedModulo",{enumerable:!0,get:function(){return C}});function e(A){const H=[];for(let T=0;T<A.length;T++){const v=T%2===0?1:0;for(let f=0;f<A[T];f++)H.push(v)}return H}function U(A,H){const T=[];return A.forEach((v,f)=>{if(f>0&&H>0)for(let u=0;u<H;u++)T.push(0);T.push(...v)}),T}function O(A,H){return U(A.map(e),H)}function re(A,H=3){let T=0,v=H;for(let f=A.length-1;f>=0;f--)T+=Number(A[f])*v,v=v===3?1:3;return(10-T%10)%10}const g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function L(A){let H=0;for(const T of A){const v=g.indexOf(T);if(v<0)return null;H+=v}return g[H%43]}function C(A,H,T=11){let v=0,f=1;for(let u=A.length-1;u>=0;u--)v+=A[u]*f,f=f===H?1:f+1;return v%T}}),je("packages/dom/src/cell/renderers/barcode/code39.js",function(M,X){"use strict";Object.defineProperty(M,"toExtendedSymbols",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"decodeExtendedSymbols",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"encodeCode39",{enumerable:!0,get:function(){return x}});const e=X("packages/dom/src/cell/renderers/barcode/support.js"),U=e.buildPattern,O=e.mod43Check,re=e.MOD43_ORDER,g=2,L=["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"],C="010010100";function A(t){return t.split("").map(n=>n==="1"?g:1)}function H(t){const n=re.indexOf(t);return n<0?null:A(L[n])}function T(){const t=new Map,n=a=>String.fromCharCode(65+a);for(let a=1;a<=26;a++)t.set(a,`$${n(a-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((a,m)=>t.set(27+m,a));for(let a=33;a<=44;a++)t.set(a,`/${n(a-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let a=59;a<=63;a++)t.set(a,`%${n(a-59+5)}`);t.set(64,"%V");for(let a=91;a<=95;a++)t.set(a,`%${n(a-91+10)}`);t.set(96,"%W");for(let a=97;a<=122;a++)t.set(a,`+${n(a-97)}`);for(let a=123;a<=127;a++)t.set(a,`%${n(a-123+15)}`);return t}const v=T(),f=new Map([...v].map(([t,n])=>[n,t]));function u(t){const n=[];for(const a of t){const m=a.codePointAt(0);if(m>127)return null;if(re.includes(a)){n.push(a);continue}const E=v.get(m);if(!E)return null;n.push(E[0],E[1])}return n}function h(t){let n="";for(let a=0;a<t.length;a++){const m=t[a]+(t[a+1]??"");if(f.has(m)){n+=String.fromCharCode(f.get(m)),a++;continue}n+=t[a]}return n}function x(t,n={}){const a=t==null?"":String(t);if(a==="")return{ok:!1,reason:"empty"};const m=n.extended?u(a):a.split("");if(!m)return{ok:!1,reason:"charset"};const E=[A(C)];for(const _ of m){const c=H(_);if(!c)return{ok:!1,reason:"charset"};E.push(c)}if(n.checkDigit){const _=O(m.join(""));return _==null?{ok:!1,reason:"charset"}:(E.push(H(_)),E.push(A(C)),{ok:!0,modules:U(E,1),text:`${a}${_}`})}return E.push(A(C)),{ok:!0,modules:U(E,1),text:a}}}),je("packages/dom/src/cell/renderers/barcode/ean.js",function(M,X){"use strict";Object.defineProperty(M,"L_PATTERNS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"G_PATTERNS",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"R_PATTERNS",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"EAN13_PARITY",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"encodeEan13",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"encodeEan8",{enumerable:!0,get:function(){return T}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,O=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],re=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],g=O.map(v=>v.split("").map(f=>f==="1"?"0":"1").join("")),L=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function C(v){return v.split("").map(Number)}function A(v,f){const u=v==null?"":String(v);if(!/^\d+$/.test(u))return null;if(u.length===f)return{digits:u,check:U(u)};if(u.length===f+1){const h=u.slice(0,f),x=Number(u[f]),t=U(h);return x!==t?null:{digits:h,check:t}}return null}function H(v){const f=A(v,12);if(!f)return{ok:!1,reason:"checkDigit"};const u=f.digits+f.check,h=L[Number(u[0])],x=u.slice(1,7).split("").map((a,m)=>(h[m]==="L"?O:re)[Number(a)]),t=u.slice(7).split("").map(a=>g[Number(a)]);return{ok:!0,modules:[...C("101"),...x.flatMap(C),...C("01010"),...t.flatMap(C),...C("101")],text:u}}function T(v){const f=A(v,7);if(!f)return{ok:!1,reason:"checkDigit"};const u=f.digits+f.check,h=u.slice(0,4).split("").map(n=>O[Number(n)]),x=u.slice(4).split("").map(n=>g[Number(n)]);return{ok:!0,modules:[...C("101"),...h.flatMap(C),...C("01010"),...x.flatMap(C),...C("101")],text:u}}}),je("packages/dom/src/cell/renderers/barcode/upc.js",function(M,X){"use strict";Object.defineProperty(M,"encodeUpcA",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"encodeUpcE",{enumerable:!0,get:function(){return v}});const e=X("packages/dom/src/cell/renderers/barcode/ean.js"),U=e.L_PATTERNS,O=e.G_PATTERNS,re=e.encodeEan13,L=X("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function C(f){return f.split("").map(Number)}function A(f){const u=f==null?"":String(f);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const h=re(`0${u}`);return h.ok?{ok:!0,modules:h.modules,text:h.text.slice(1)}:h}function H(f,u){const h=f.split(""),x=h[5];return x<="2"?`${h[0]}${h[1]}${x}0000${h[2]}${h[3]}${h[4]}`:x==="3"?`${h[0]}${h[1]}${h[2]}00000${h[3]}${h[4]}`:x==="4"?`${h[0]}${h[1]}${h[2]}${h[3]}00000${h[4]}`:`${h[0]}${h[1]}${h[2]}${h[3]}${h[4]}0000${x}`}const T={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 v(f){const u=f==null?"":String(f);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let h,x,t=null;if(u.length===6?(h="0",x=u):u.length===7?(h=u[0],x=u.slice(1)):(h=u[0],x=u.slice(1,7),t=u[7]),h!=="0"&&h!=="1")return{ok:!1,reason:"checkDigit"};const n=H(x,h),a=L(h+n);if(t!=null&&Number(t)!==a)return{ok:!1,reason:"checkDigit"};const E=T[a][Number(h)].split("").map((c,S)=>(c==="O"?U:O)[Number(x[S])]);return{ok:!0,modules:[...C("101"),...E.flatMap(C),...C("010101")],text:`${h}${x}${a}`}}}),je("packages/dom/src/cell/renderers/barcode/code93.js",function(M,X){"use strict";Object.defineProperty(M,"toExtendedSymbols",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"decodeExtendedSymbols",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"encodeCode93",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"PATTERNS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"SHIFT_ORDER",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"START_STOP",{enumerable:!0,get:function(){return re}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",U=["($)","(%)","(/)","(+)"],O=[[1,3,1,1,1,2],[1,1,1,2,1,3],[1,1,1,3,1,2],[1,1,1,4,1,1],[1,2,1,1,1,3],[1,2,1,2,1,2],[1,2,1,3,1,1],[1,1,1,1,1,4],[1,3,1,2,1,1],[1,4,1,1,1,1],[2,1,1,1,1,3],[2,1,1,2,1,2],[2,1,1,3,1,1],[2,2,1,1,1,2],[2,2,1,2,1,1],[2,3,1,1,1,1],[1,1,2,1,1,3],[1,1,2,2,1,2],[1,1,2,3,1,1],[1,2,2,1,1,2],[1,3,2,1,1,1],[1,1,1,1,2,3],[1,1,1,2,2,2],[1,1,1,3,2,1],[1,2,1,1,2,2],[1,3,1,1,2,1],[2,1,2,1,1,2],[2,1,2,2,1,1],[2,1,1,1,2,2],[2,1,1,2,2,1],[2,2,1,1,2,1],[2,2,2,1,1,1],[1,1,2,1,2,2],[1,1,2,2,2,1],[1,2,2,1,2,1],[1,2,3,1,1,1],[1,2,1,1,3,1],[3,1,1,1,1,2],[3,1,1,2,1,1],[3,2,1,1,1,1],[1,1,2,1,3,1],[1,1,3,1,2,1],[2,1,1,1,3,1],[1,2,1,2,2,1],[3,1,2,1,1,1],[3,1,1,1,2,1],[1,2,2,2,1,1]],re=[1,1,1,1,4,1];function g(t){const n=[];for(let a=0;a<t.length;a++){const m=a%2===0?1:0;for(let E=0;E<t[a];E++)n.push(m)}return n}function L(t){return O[t]}function C(t){return e.indexOf(t)}function A(){const t=new Map,n=43,a=44,m=45,E=46,_=c=>10+c;for(let c=1;c<=26;c++)t.set(c,[n,_(c-1)]);t.set(0,[a,_(20)]);for(let c=27;c<=31;c++)t.set(c,[a,_(c-27)]);for(let c=33;c<=44;c++)t.set(c,[m,_(c-33)]);t.set(47,[m,_(14)]),t.set(58,[m,_(25)]);for(let c=59;c<=63;c++)t.set(c,[a,_(c-59+5)]);t.set(64,[a,_(21)]);for(let c=91;c<=95;c++)t.set(c,[a,_(c-91+10)]);t.set(96,[a,_(22)]);for(let c=97;c<=122;c++)t.set(c,[E,_(c-97)]);for(let c=123;c<=127;c++)t.set(c,[a,_(c-123+15)]);return t}const H=A(),T=new Map([...H].map(([t,n])=>[n.join(","),t]));function v(t){const n=[];for(const a of t){const m=a.codePointAt(0);if(m>127)return null;const E=C(a);if(E>=0){n.push(E);continue}const _=H.get(m);if(!_)return null;n.push(_[0],_[1])}return n}function f(t){let n="";for(let a=0;a<t.length;a++){const m=`${t[a]},${t[a+1]??""}`;if(T.has(m)){n+=String.fromCharCode(T.get(m)),a++;continue}n+=e[t[a]]}return n}function u(t){let n=0,a=1;for(let m=t.length-1;m>=0;m--)n+=t[m]*a,a=a===20?1:a+1;return n%47}function h(t){const n=u(t),a=u([...t,n]);return{c:n,k:a}}function x(t,n={}){const a=t==null?"":String(t);if(a==="")return{ok:!1,reason:"empty"};const m=n.extended?v(a):(()=>{const o=[];for(const d of a){const l=C(d);if(l<0)return null;o.push(l)}return o})();if(!m)return{ok:!1,reason:"charset"};const{c:E,k:_}=h(m),c=[re];for(const o of m)c.push(L(o));return c.push(L(E)),c.push(L(_)),c.push(re),{ok:!0,modules:c.flatMap(g),text:a}}}),je("packages/dom/src/cell/renderers/barcode/code128.js",function(M,X){"use strict";Object.defineProperty(M,"encodeCode128",{enumerable:!0,get:function(){return t}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,O=["212222","222122","222221","121223","121322","131222","122213","122312","132212","221213","221312","231212","112232","122132","122231","113222","123122","123221","223211","221132","221231","213212","223112","312131","311222","321122","321221","312212","322112","322211","212123","212321","232121","111323","131123","131321","112313","132113","132311","211313","231113","231311","112133","112331","132131","113123","113321","133121","313121","211331","231131","213113","213311","213131","311123","311321","331121","312113","312311","332111","314111","221411","431111","111224","111422","121124","121421","141122","141221","112214","112412","122114","122411","142112","142211","241211","221114","413111","241112","134111","111242","121142","121241","114212","124112","124211","411212","421112","421211","212141","214121","412121","111143","111341","131141","114113","114311","411113","411311","113141","114131","311141","411131","211412","211214","211232","2331112"],re=103,g=104,L=105,C=106,A={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},H={A:re,B:g,C:L};function T(n){return n>=32&&n<=95?n-32:n>=0&&n<=31?n+64:null}function v(n){return n>=32&&n<=127?n-32:null}function f(n,a){const m=n.charCodeAt(a),E=n.charCodeAt(a+1);return m>=48&&m<=57&&E>=48&&E<=57}function u(n,a,m){const E=[],_=n.charCodeAt(a),c=T(_);if(c!=null){const o=m==="A"||m===null?[c]:[A[m].A,c];E.push({to:"A",symbols:o,advance:1})}const S=v(_);if(S!=null){const o=m==="B"||m===null?[S]:[A[m].B,S];E.push({to:"B",symbols:o,advance:1})}if(f(n,a)){const o=Number(n.slice(a,a+2)),d=m==="C"||m===null?[o]:[A[m].C,o];E.push({to:"C",symbols:d,advance:2})}return E}function h(n){const a=n.length,m=Array.from({length:a+1},()=>({}));m[0].start={cost:0,prev:null,symbols:[]};for(let l=0;l<=a;l++)for(const s of Object.keys(m[l])){const r=m[l][s];if(l===a)continue;const i=s==="start"?null:s;for(const B of u(n,l,i)){const z=l+B.advance,W=r.cost+B.symbols.length,b=m[z][B.to];(!b||W<b.cost)&&(m[z][B.to]={cost:W,prev:s,symbols:B.symbols,backI:l})}}const E=Object.entries(m[a]);if(E.length===0)return null;E.sort((l,s)=>l[1].cost-s[1].cost);const[,_]=E[0],c=[];let S=a,o=E[0][0],d=o;for(;S>0;){const l=m[S][o];c.push(l.symbols),d=o,S=l.backI,o=l.prev}return c.reverse(),{symbols:c.flat(),startSubset:d}}function x(n,a){let m=n;for(let E=0;E<a.length;E++)m+=a[E]*(E+1);return m%103}function t(n,a={}){const m=n==null?"":String(n);if(m==="")return{ok:!1,reason:"empty"};for(let l=0;l<m.length;l++)if(m.charCodeAt(l)>127)return{ok:!1,reason:"charset"};const E=h(m);if(!E)return{ok:!1,reason:"charset"};const _=H[E.startSubset],c=x(_,E.symbols);return{ok:!0,modules:[_,...E.symbols,c,C].map(l=>O[l].split("").map(Number)).flatMap(l=>U(l)),text:m}}}),je("packages/dom/src/cell/renderers/barcode/code11.js",function(M,X){"use strict";Object.defineProperty(M,"encodeCode11",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"ALPHABET",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"PATTERNS",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"START_STOP",{enumerable:!0,get:function(){return L}});const e=X("packages/dom/src/cell/renderers/barcode/support.js"),U=e.buildPattern,O=e.weightedModulo,re="0123456789-",g=[[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]],L=[2,1,1,1,2,1],C=f=>re.indexOf(f);function A(f){const u=C(f);return u<0?null:g[u]}function H(f){return re[O(f,10)]}function T(f){return re[O(f,9)]}function v(f,u={}){const h=f==null?"":String(f);if(h==="")return{ok:!1,reason:"empty"};const x=[];for(const _ of h){const c=C(_);if(c<0)return{ok:!1,reason:"charset"};x.push(c)}const t=H(x),n=C(t),m=h.length>=10?`${t}${T([...x,n])}`:t,E=[L];for(const _ of h)E.push(A(_));for(const _ of m)E.push(A(_));return E.push(L),{ok:!0,modules:U(E,1),text:`${h}${m}`}}}),je("packages/dom/src/cell/renderers/barcode/codabar.js",function(M,X){"use strict";Object.defineProperty(M,"MOD16_ORDER",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"encodeCodabar",{enumerable:!0,get:function(){return v}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,O=2,re={0:"nnnnnww",1:"nnnnwnw",2:"nnwnnnw",3:"wwnnnnn",4:"nnnwnwn",5:"wnnnnwn",6:"nwnnnnw",7:"nwnnwnn",8:"nwwnnnn",9:"wnnwnnn","-":"nnnwwnn",$:"nnwwnnn",":":"wnnnwnw","/":"wnwnwnn",".":"wnwwnnn","+":"nnwnwnw",A:"nnwwnwn",B:"nwnwnnw",C:"nnnwnww",D:"nnnwwwn"},g="0123456789-$:/.+",L="ABCD",C="0123456789-$:/.+ABCD";function A(f){return f.split("").map(u=>u==="w"?O:1)}function H(f){const u=re[f];return u?A(u):null}function T(f){let u=0;for(const x of f){const t=C.indexOf(x);if(t<0)return null;u+=t}const h=u%16;return h<10?String(h):null}function v(f,u={}){const h=f==null?"":String(f);if(h==="")return{ok:!1,reason:"empty"};const x=h.toUpperCase();if(x.length<2)return{ok:!1,reason:"charset"};const t=x[0],n=x[x.length-1];if(!L.includes(t)||!L.includes(n))return{ok:!1,reason:"charset"};const a=x.slice(1,-1);for(const _ of a)if(!g.includes(_))return{ok:!1,reason:"charset"};const m=[t,...a.split(""),n];if(u.checkDigit){const _=T(m);if(_==null)return{ok:!1,reason:"checkDigit"};m.splice(m.length-1,0,_);const c=m.map(H),S=`${x.slice(0,-1)}${_}${n}`;return{ok:!0,modules:U(c,1),text:S}}const E=m.map(H);return{ok:!0,modules:U(E,1),text:x}}}),je("packages/dom/src/cell/renderers/barcode/code32.js",function(M,X){"use strict";Object.defineProperty(M,"ALPHABET",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"decodeCode32Modules",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"encodeCode32",{enumerable:!0,get:function(){return u}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,O=2,re="010010100",g={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"},L="0123456789BCDFGHJKLMNPQRSTUVWXYZ",C=h=>h.split("").map(x=>x==="1"?O:1),A=h=>g[h]?C(g[h]):null,H=()=>C(re);function T(h){let x=0;for(let t=0;t<8;t++){const n=t+1;let a=Number(h[t]);n%2===0&&(a*=2,a>=10&&(a-=9)),x+=a}return x%10}function v(h,x){let t="",n=h;for(let a=0;a<x;a++)t=L[n%32]+t,n=Math.floor(n/32);return t}function f(h){const x=[];for(let E=0;E<h.length;E++)E===0||h[E]!==h[E-1]?x.push(1):x[x.length-1]++;const t=1,n=E=>E>t?"1":"0",a=[];let m=9;for(;m<x.length;){m+=1;const E=x.slice(m,m+9);if(E.length<9)break;const _=E.map(n).join(""),c=Object.keys(g).find(S=>g[S]===_);a.push(c??"?"),m+=9}return a.pop(),a}function u(h,x={}){const t=h==null?"":String(h);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const n=t.slice(0,8),a=T(n);let m;if(t.length===9){const d=Number(t[8]);if(d!==a)return{ok:!1,reason:"checkDigit"};m=d}else m=a;const E=`${n}${m}`,_=Number(E),S=`A${v(_,6)}`.split(""),o=[H()];for(const d of S){const l=A(d);if(!l)return{ok:!1,reason:"charset"};o.push(l)}return o.push(H()),{ok:!0,modules:U(o,1),text:E}}}),je("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(M,X){"use strict";Object.defineProperty(M,"gfMul",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"gfExp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"generatorPoly",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"reedSolomon",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"SIZES",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"dataCodewords",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"errorCodewords",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"dataRegionSize",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"base256Mask",{enumerable:!0,get:function(){return n}}),Object.defineProperty(M,"encodeBase256",{enumerable:!0,get:function(){return a}}),Object.defineProperty(M,"padCodewords",{enumerable:!0,get:function(){return m}}),Object.defineProperty(M,"utahPlacementOrder",{enumerable:!0,get:function(){return E}}),Object.defineProperty(M,"diagonalWalkCoverage",{enumerable:!0,get:function(){return _}}),Object.defineProperty(M,"placeCodewords",{enumerable:!0,get:function(){return c}}),Object.defineProperty(M,"buildSymbol",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"encodeDataMatrix",{enumerable:!0,get:function(){return s}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return r}});const e=301,U=new Uint8Array(512),O=new Uint8Array(256);{let i=1;for(let B=0;B<255;B++)U[B]=i,O[i]=B,i<<=1,i&256&&(i^=e);for(let B=255;B<512;B++)U[B]=U[B-255]}function re(i,B){return i===0||B===0?0:U[O[i]+O[B]]}function g(i){return U[(i%255+255)%255]}function L(i){let B=new Uint8Array([1]);for(let z=0;z<i;z++){const W=new Uint8Array(B.length+1);for(let b=0;b<B.length;b++)W[b]^=B[b],W[b+1]^=re(B[b],g(z));B=W}return B.subarray(1)}function C(i,B){const z=L(B),W=new Uint8Array(B);for(let b=0;b<i.length;b++){const J=i[b]^W[0];if(W.copyWithin(0,1),W[B-1]=0,J!==0)for(let Q=0;Q<B;Q++)W[Q]^=re(z[Q],J)}return W}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]},H=Object.keys(A).map(Number).sort((i,B)=>i-B);function T(i){const B=A[i];if(!B)throw new RangeError(`unsupported Data Matrix size ${i}`);return B[0]}function v(i){const B=A[i];if(!B)throw new RangeError(`unsupported Data Matrix size ${i}`);return B[1]}function f(i){return i-2}const u=129,h=231,x=i=>i>=48&&i<=57;function t(i){const B=[];let z=0;for(;z<i.length;){const W=i[z],b=z+1<i.length?i[z+1]:-1;if(x(W)&&x(b)){const J=W-48,Q=b-48;B.push(J*10+Q+130),z+=2}else B.push(W+1),z+=1}return B}function n(i,B){const z=149*B%255+1;return(i+z)%256}function a(i,B){if(i.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const z=[h,i.length];for(let W=0;W<i.length;W++)z.push(n(i[W],B+2+W));return z}function m(i,B){if(i.length>B)throw new RangeError(`encoded stream (${i.length} codewords) exceeds capacity (${B})`);const z=i.slice();for(;z.length<B;)z.push(u);return z}function E(i){const B=new Array(i*i).fill(null),z=[],W=(ve,se)=>ve>=0&&ve<i&&se>=0&&se<i,b=(ve,se)=>{if(!W(ve,se))return;const k=ve*i+se;if(B[k]===null){const I={row:ve,col:se};B[k]=I,z.push(I)}},J=(ve,se)=>{const k=F=>(F%i+i)%i,I=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[F,p]of I)b(k(ve+F),k(se+p))};let Q=4,ne=0,Z=0;const Y=i*i+64;do{for(;Q>=0&&ne<i;)J(Q,ne),Q-=2,ne+=2;for(Q+=1,ne+=3;Q<i&&ne>=0;)J(Q,ne),Q+=2,ne-=2;Q+=3,ne+=1}while((Q<i||ne<i)&&Z++<Y);const Ne=z.length;for(let ve=0;ve<i;ve++)for(let se=0;se<i;se++)b(ve,se);return Object.defineProperty(z,"sweptCount",{value:z.length-Ne,enumerable:!1}),z}function _(i){return E(i).sweptCount}function c(i,B){const z=E(B),W=new Uint8Array(B*B);for(let b=0;b<z.length;b++){const J=Math.floor(b/8);if(J>=i.length)break;const Q=7-b%8,ne=i[J]>>>Q&1,{row:Z,col:Y}=z[b];W[Z*B+Y]=ne}return W}function S(i,B){const z=B+2,W=new Uint8Array(z*z),b=(Q,ne,Z)=>{W[Q*z+ne]=Z},J=z-1;for(let Q=0;Q<z;Q++)b(J,Q,1);for(let Q=0;Q<z;Q++)b(Q,0,1);for(let Q=0;Q<z;Q++)b(0,Q,Q%2===0?1:0);for(let Q=0;Q<z;Q++)b(Q,z-1,Q%2===0?1:0);for(let Q=0;Q<B;Q++)for(let ne=0;ne<B;ne++)W[(Q+1)*z+(ne+1)]=i[Q*B+ne];return{size:z,modules:W}}function o(i){const B=new Uint8Array(i.length);for(let z=0;z<i.length;z++)B[z]=i.charCodeAt(z)&255;return B}function d(i){for(let B=0;B<i.length;B++)if(i[B]>127)return!1;return!0}function l(i){for(const B of H)if(T(B)>=i)return B;return 0}function s(i,B={}){if(i==null||i==="")return{ok:!1,reason:"empty"};const z=String(i),W=o(z),b=B&&B.encodation==="base256";if(!b&&!d(W))return{ok:!1,reason:"charset"};let J;if(b){if(W.length>249)return{ok:!1,reason:"capacity"};J=a(W,1)}else J=t(W);const Q=B&&B.size;let ne;if(Q!=null){if(!A[Q])return{ok:!1,reason:"capacity"};if(J.length>T(Q))return{ok:!1,reason:"capacity"};ne=Q}else if(ne=l(J.length),ne===0)return{ok:!1,reason:"capacity"};const Z=T(ne),Y=m(J,Z),Ne=C(Y,v(ne)),ve=new Uint8Array(Z+Ne.length);ve.set(Y,0),ve.set(Ne,Z);const se=f(ne),k=c(ve,se),{modules:I}=S(k,se);return{ok:!0,matrix:{size:ne,modules:I},text:z}}const r=s}),je("packages/dom/src/cell/renderers/barcode/index.js",function(M,X){"use strict";Object.defineProperty(M,"BARCODE_TYPES",{enumerable:!0,get:function(){return _}}),Object.defineProperty(M,"encodeBarcode",{enumerable:!0,get:function(){return c}});const e=X("packages/dom/src/cell/renderers/barcode/code39.js"),U=e.encodeCode39,O=X("packages/dom/src/cell/renderers/barcode/ean.js"),re=O.encodeEan13,g=O.encodeEan8,L=X("packages/dom/src/cell/renderers/barcode/upc.js"),C=L.encodeUpcA,A=L.encodeUpcE,H=X("packages/dom/src/cell/renderers/barcode/code93.js"),T=H.encodeCode93,v=X("packages/dom/src/cell/renderers/barcode/code128.js"),f=v.encodeCode128,u=X("packages/dom/src/cell/renderers/barcode/code11.js"),h=u.encodeCode11,x=X("packages/dom/src/cell/renderers/barcode/codabar.js"),t=x.encodeCodabar,n=X("packages/dom/src/cell/renderers/barcode/code32.js"),a=n.encodeCode32,m=X("packages/dom/src/cell/renderers/barcode/datamatrix.js"),E=m.encodeDataMatrix;Object.defineProperty(M,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty(M,"encodeEan13",{enumerable:!0,get:function(){return O.encodeEan13}}),Object.defineProperty(M,"encodeEan8",{enumerable:!0,get:function(){return O.encodeEan8}}),Object.defineProperty(M,"encodeUpcA",{enumerable:!0,get:function(){return L.encodeUpcA}}),Object.defineProperty(M,"encodeUpcE",{enumerable:!0,get:function(){return L.encodeUpcE}}),Object.defineProperty(M,"encodeCode93",{enumerable:!0,get:function(){return H.encodeCode93}}),Object.defineProperty(M,"encodeCode128",{enumerable:!0,get:function(){return v.encodeCode128}}),Object.defineProperty(M,"encodeCode11",{enumerable:!0,get:function(){return u.encodeCode11}}),Object.defineProperty(M,"encodeCodabar",{enumerable:!0,get:function(){return x.encodeCodabar}}),Object.defineProperty(M,"encodeCode32",{enumerable:!0,get:function(){return n.encodeCode32}}),Object.defineProperty(M,"encodeDataMatrix",{enumerable:!0,get:function(){return m.encodeDataMatrix}});const _=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function c(S,o,d={}){switch(S){case"code39":return U(o,{checkDigit:d.checkDigit});case"code39ext":return U(o,{extended:!0,checkDigit:d.checkDigit});case"ean13":return re(o);case"ean8":return g(o);case"upca":return C(o);case"upce":return A(o);case"code93":return T(o);case"code93ext":return T(o,{extended:!0});case"code128":return f(o);case"code11":return h(o);case"codabar":return t(o,{checkDigit:d.checkDigit});case"code32":return a(o);case"datamatrix":return E(o,{size:d.size,encodation:d.encodation});default:return{ok:!1,reason:"type"}}}}),je("packages/dom/src/cell/renderers/barcode/render.js",function(M,X){"use strict";Object.defineProperty(M,"warnOnce",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"barsPathData",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"matrixPathData",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"paint",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"buildSvg",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"renderBarcode",{enumerable:!0,get:function(){return t}});const U=X("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,O="http://www.w3.org/2000/svg",re=60,g=16,L=4;function C(n,a,m){m==null||m===!1?n.removeAttribute(a):n.setAttribute(a,String(m))}const A=new Set;function H(n,a){A.has(n)||(A.add(n),console.warn("[lattice]",a))}function T(n,a,m){const E=[];let _=0;for(;_<n.length;){if(!n[_]){_++;continue}let c=1;for(;_+c<n.length&&n[_+c];)c++;E.push(`M${_+a} 0h${c}v${m}h-${c}z`),_+=c}return E.join("")}function v(n,a){const{size:m,modules:E}=n,_=[];for(let c=0;c<m;c++){let S=0;for(;S<m;){if(!E[c*m+S]){S++;continue}let o=1;for(;S+o<m&&E[c*m+S+o];)o++;_.push(`M${S+a} ${c+a}h${o}v1h-${o}z`),S+=o}}return _.join("")}function f(n){const a=n&&typeof n=="object"?n:{};return{show:a.show!==!1,position:a.position==="top"?"top":"bottom",align:a.align==="left"||a.align==="right"?a.align:"center",margin:Number.isFinite(Number(a.margin))?Number(a.margin):2,font:typeof a.font=="string"&&a.font?a.font:"10px sans-serif"}}function u(n){const a=Math.floor(Number(n));return!Number.isFinite(a)||a<0?10:Math.min(40,a)}function h(n,a,m){const E=u(m.quietZone),_=f(m.text),c=_.show,S=!!a.matrix,o=S?a.matrix.size:a.modules.length,d=S?o+E*2:re,l=c&&_.position==="top"?g+L:0,s=d+(c?g+L:0),r=o+E*2,i=Number(m.moduleWidth)||0,B=i>0?r*i:Number(m.width)||200,z=Number(m.height)||Math.round(B/r*s)||60;C(n.svg,"viewBox",`0 0 ${r} ${s}`),C(n.svg,"width",B),C(n.svg,"height",z);const W=m.print?"#000000":m.foreground||"currentColor",b=m.print?"#ffffff":m.background;if(b?(C(n.background,"x",0),C(n.background,"y",0),C(n.background,"width",r),C(n.background,"height",s),n.background.setAttribute("fill",b),n.background.style.display=""):n.background.style.display="none",n.path.setAttribute("fill",W),n.path.setAttribute("transform",`translate(0 ${l})`),n.path.setAttribute("d",S?v(a.matrix,E):T(a.modules,E,re)),!c){n.text.style.display="none";return}n.text.style.display="",n.text.style.font=_.font,n.text.setAttribute("fill",W),n.text.setAttribute("text-anchor",_.align==="left"?"start":_.align==="right"?"end":"middle");const J=_.align==="left"?E:_.align==="right"?r-E:r/2,Q=_.position==="top"?g-_.margin:s-_.margin;C(n.text,"x",J),C(n.text,"y",Q),n.text.textContent=a.text}function x(n){const a=n.createElementNS(O,"svg");a.setAttribute("class","lat-barcode__svg"),a.setAttribute("focusable","false"),a.setAttribute("preserveAspectRatio","none");const m=n.createElementNS(O,"rect");m.style.display="none";const E=n.createElementNS(O,"path"),_=n.createElementNS(O,"text");return a.appendChild(m),a.appendChild(E),a.appendChild(_),{svg:a,background:m,path:E,text:_}}function t(n,a){const m=n.ownerDocument,E=x(m);n.textContent="",n.appendChild(E.svg);const _=S=>{const o=S||{},d=String(o.type||"code39"),l=U(d,o.value,{checkDigit:o.checkDigit,size:o.size,encodation:o.encodation});if(!l.ok){H(`barcode:invalid:${d}`,`column "standalone" has a value that is not valid for the "${d}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),E.path.setAttribute("d","");return}h(E,l,o)};return _(a),{update:_,destroy:()=>{n.textContent=""}}}}),je("packages/modules/form/controls/barcode.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function g(L,C){const A=L.props&&L.props.source;if(!A)return L.value;const H=typeof C.form.getItem=="function"?C.form.getItem(A):null;return H&&typeof H.getValue=="function"?H.getValue():void 0}U("barcode",{kind:"display",build(L,C){const A=C.doc.createElement("span");A.className="lat-form__barcode";const H=re(A,{...L.props,value:g(L,C)}),T=L.props&&L.props.source;if(T){const v=C.emitter.on("change",f=>{f&&f.name===T&&H.update({...L.props,value:f.value})});C.disposers.push(v)}return C.disposers.push(()=>H.destroy()),A._barcodeHandle=H,A},read(L,C,A){return g(C,A)},write(L,C,A){L._barcodeHandle&&L._barcodeHandle.update({...C.props,value:A})},state(){}})}),je("packages/modules/form/controls/speeddial.js",function(M,X){"use strict";Object.defineProperty(M,"injectSpeedDialStyles",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"createSpeedDial",{enumerable:!0,get:function(){return l}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,L=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,C="lat-speeddial",A="data-lattice-speeddial-styles",H="http://www.w3.org/2000/svg",T=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),v=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),f=Object.freeze(["up","down","left","right"]);let u=0;function h(){const s=`
1652
+ `.trim()}function y(c){const l=c&&c.documentElement;if(!l||l.getAttribute(b))return;l.setAttribute(b,"1");const a=c.createElement("style");a.textContent=N(),(c.head||c.body||l).appendChild(a)}function C(c,l){const a=l&&l.defaultView,i=a&&a.Event,n=i?new i("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(n)}function F(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function O(c){const l=Number(c)||0;return l<1024?`${l} B`:l<1048576?`${(l/1024).toFixed(l<10240?1:0)} KB`:l<1073741824?`${(l/1048576).toFixed(1)} MB`:`${(l/1073741824).toFixed(2)} GB`}function v(c,l){if(!l||!l.length)return!0;const a=(c.name||"").toLowerCase(),i=(c.type||"").toLowerCase();return l.some(n=>{const s=String(n).trim().toLowerCase();return s.startsWith(".")?a.endsWith(s):s.endsWith("/*")?i.startsWith(s.slice(0,-1)):i===s})}function f(c){return c.length?c.length===1?c[0]:c.length===2?`${c[0]} or ${c[1]}`:`${c.slice(0,-1).join(", ")} or ${c[c.length-1]}`:""}function u(c){const l={".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"},a=String(c).trim(),i=l[a.toLowerCase()];if(i)return i;if(a.startsWith("."))return a.slice(1).toUpperCase();if(a.endsWith("/*"))return`${a.slice(0,-2)}s`;const n=a.split("/")[1];return n?n.toUpperCase():a}function d(c,l,a,i){const n=[];return l&&l.length&&n.push(f(l.map(u))),a&&n.push(c("form.file.hint.size",{size:O(a)})),i&&n.push(c(i===1?"form.file.hint.file":"form.file.hint.files",{max:String(i)})),n.join(" · ")}function _(c){return{id:c.id,name:c.name,size:c.size,type:c.type,status:c.status,progress:c.progress,message:c.message||""}}function t(c,l){const a=c.createElementNS(Q,"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 i=c.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttribute("d",l),a.appendChild(i),a}const r=Object.freeze({upload:"M8 11V3m0 0L4.5 6.5M8 3l3.5 3.5M3 13h10",file:"M4 2h5l3 3v9H4zM9 2v3h3",image:"M2 3h12v10H2zM5 11l3-3 2 2 1.5-1.5L14 11M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",document:"M4 2h5l3 3v9H4zM9 2v3h3M6 9h4M6 12h4",check:"M3 8.5l3 3 7-7",xmark:"M4 4l8 8M12 4l-8 8",warn:"M8 3l6 11H2zM8 7v3M8 12.2v.1",retry:"M13.5 8A5.5 5.5 0 1 1 8 2.5M8 2.5V5m0-2.5L5.5 2.5"});function o(c,l){const a=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let i;for(;i=a.exec(l);)c.setAttribute(i[1],i[3]===void 0?i[4]:i[3])}function p(c,l){const a=/<svg\b([^>]*)>/i.exec(l);if(!a)return null;const i=c.createElementNS(Q,"svg");o(i,a[1]);const n=l.lastIndexOf("</svg"),s=n===-1?"":l.slice(a.index+a[0].length,n),I=/<(\w+)\b([^>]*?)(\/?)>/g;let z;for(;z=I.exec(s);){const Y=c.createElementNS(Q,z[1]);o(Y,z[2]),i.appendChild(Y)}return i.setAttribute("aria-hidden","true"),i.setAttribute("focusable","false"),i}function A(c,l){if(c===!1)return null;if(c!=null&&typeof c=="object"&&c.nodeType){const i=c;return i.classList.add(`${$}__icon`),i.setAttribute("aria-hidden","true"),i}if(typeof c!="string"||c==="")return null;const a=r[c]?t(l,r[c]):p(l,c);return a?(a.setAttribute("class",`${$}__icon`),a):null}function g(c){const l=c.type||"";return l.startsWith("image/")?"image":l==="application/pdf"||/\.pdf$/i.test(c.name)?"document":"file"}function h(c){if(c.thumb)return c.thumb;if(!c.file||!/^image\//.test(c.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{c.thumb=URL.createObjectURL(c.file)}catch{c.thumb=null}return c.thumb}function T(c){if(c.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(c.thumb)}catch{}c.thumb=null}U("file",{kind:"field",build(c,l){const a=l.doc,i=l.t,n=c.props||{},s=Array.isArray(n.accept)?n.accept.map(V=>String(V)):[],I=Number(n.maxSize)||0,z=Number(n.maxFiles)||0,Y=n.multiple!==!1,B=typeof n.upload=="function"?n.upload:null,ee=n.dropzone!==!1,oe=n.dropText!=null?String(n.dropText):i("form.file.dropText"),H=n.browseText!=null?String(n.browseText):i("form.file.browse"),Z=i("form.file.dropToUpload"),G=i("form.file.addMore"),ge=i("form.file.typeNotAccepted"),ye=n.hint!=null&&n.hint!==""?String(n.hint):d(i,s,I,z);y(a);const le=a.createElement("div");le.className=$;const w={accept:s,maxSize:I,maxFiles:z,multiple:Y,upload:B,dropText:oe,browse:H,dropToUpload:Z,addMore:G,typeNotAccepted:ge,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:ee,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};le.__latFile=w;const M=a.createElement("input");M.type="file",M.className=`${$}__input`,M.tabIndex=-1,M.setAttribute("aria-hidden","true"),Y&&(M.multiple=!0),s.length&&(M.accept=s.join(",")),le.appendChild(M),w.input=M;const D=a.createElement("div");D.className=`${$}__zone`,D.setAttribute("role","button"),D.tabIndex=0,D.setAttribute("aria-label",`${oe} ${H}`);const m=n.icon==null?t(a,r.upload):A(n.icon,a);m&&(n.icon==null&&m.setAttribute("class",`${$}__icon`),D.appendChild(m));const P=a.createElement("span");P.className=`${$}__title`;const X=a.createElement("span");X.className=`${$}__title-rest`,X.textContent=oe,P.appendChild(X);const L=a.createElement("button");L.type="button",L.className=`${$}__browse`,L.tabIndex=-1,L.textContent=H,P.appendChild(L),D.appendChild(P),w.titleRest=X,w.browseEl=L;const te=a.createElement("span");if(te.className=`${$}__drop`,te.textContent=Z,D.appendChild(te),ye){const V=a.createElement("span");V.className=`${$}__hint`,V.textContent=ye,D.appendChild(V)}const re=a.createElement("span");re.className=`${$}__compact`,re.appendChild(t(a,r.upload));const j=a.createElement("span");j.className=`${$}__compact-text`,j.textContent=G,re.appendChild(j),D.appendChild(re),w.compactText=j,le.appendChild(D),w.zone=D;const x=a.createElement("ul");x.className=`${$}__list`,x.setAttribute("role","list"),x.hidden=!0,le.appendChild(x),w.list=x;const K=a.createElement("div");return K.className=`${$}__live`,K.setAttribute("role","status"),K.setAttribute("aria-live","polite"),le.appendChild(K),w.live=K,le.__latAnnounce=V=>{w.live&&(w.live.textContent="",w.live.textContent=V)},le.__latDragState=V=>{w.zone.classList.toggle("is-dragover",V==="over"),w.zone.classList.toggle("is-invalid",V==="invalid"),V==="none"?(w.titleRest.textContent=w.dropText,w.browseEl.hidden=!1,w.compactText.textContent=w.addMore):V==="over"?(w.titleRest.textContent=w.dropToUpload,w.browseEl.hidden=!0,w.compactText.textContent=w.dropToUpload):(w.titleRest.textContent=w.typeNotAccepted,w.browseEl.hidden=!0,w.compactText.textContent=w.typeNotAccepted)},le.__latPaint=()=>{const V=w.disabled||w.readOnly||!w.dropzone;w.zone.hidden=V,w.zone.tabIndex=V?-1:0,V?w.zone.setAttribute("aria-disabled","true"):w.zone.removeAttribute("aria-disabled"),w.input.disabled=V;const E=w.entries.length>0;w.zone.classList.toggle("is-compact",E),w.zone.setAttribute("aria-label",E?w.addMore:`${w.dropText} ${w.browse}`),x.hidden=!w.entries.length,x.tabIndex=w.readOnly&&!w.disabled?0:-1,w.entries.some(R=>R.status==="rejected")?le.setAttribute("aria-invalid","true"):le.removeAttribute("aria-invalid"),x.textContent="";for(const R of w.entries){const ce=a.createElement("li");ce.className=`${$}__item is-${R.status}`,ce.setAttribute("data-id",R.id),ce.setAttribute("role","listitem");const me=h(R);if(me){const he=a.createElement("img");he.className=`${$}__item-thumb`,he.src=me,he.alt="",ce.appendChild(he)}else{const he=t(a,r[g(R)]);he.setAttribute("class",`${$}__item-icon`),ce.appendChild(he)}const xe=a.createElement("div");xe.className=`${$}__item-main`,ce.appendChild(xe);const k=a.createElement("div");k.className=`${$}__item-row`,xe.appendChild(k);const ne=a.createElement("span");ne.className=`${$}__item-name`,ne.textContent=R.name,ne.title=R.name,k.appendChild(ne);const se=a.createElement("span");se.className=`${$}__item-size`,se.textContent=O(R.size),k.appendChild(se);const J=a.createElement("span");if(J.className=`${$}__item-state`,R.status==="uploading"){const he=a.createElement("span");he.className=`${$}__item-pct`,he.textContent=`${R.progress}%`,J.appendChild(he)}else R.status==="done"?J.appendChild(t(a,r.check)):(R.status==="error"||R.status==="rejected")&&J.appendChild(t(a,r.warn));k.appendChild(J);const ue=a.createElement("button");if(ue.type="button",ue.className=`${$}__remove`,ue.setAttribute("aria-label",`${i("form.file.remove")} ${R.name}`),ue.title=i("form.file.remove"),ue.appendChild(t(a,r.xmark)),ue.setAttribute("data-remove",R.id),ue.disabled=w.disabled||w.readOnly,k.appendChild(ue),R.status==="uploading"){const he=a.createElement("span");he.className=`${$}__item-bar`,he.setAttribute("role","progressbar"),he.setAttribute("aria-valuemin","0"),he.setAttribute("aria-valuemax","100"),he.setAttribute("aria-valuenow",String(R.progress));const be=a.createElement("span");be.className=`${$}__item-fill`,be.style.width=`${R.progress}%`,he.appendChild(be),xe.appendChild(he)}if(R.message){const he=a.createElement("span");if(he.className=`${$}__item-message`,he.appendChild(a.createTextNode(R.message)),R.status==="error"){he.appendChild(a.createTextNode(" "));const be=a.createElement("button");be.type="button",be.className=`${$}__retry`,be.textContent=i("form.file.retry"),be.setAttribute("data-retry",R.id),be.disabled=w.disabled||w.readOnly,he.appendChild(be)}xe.appendChild(he)}x.appendChild(ce)}},le.__latUpload=V=>{if(!w.upload){V.status="done",V.progress=100,le.__latPaint();return}V.status="uploading",V.progress=0,V.message="";let E=null;typeof AbortController<"u"&&(E=new AbortController,w.controllers.set(V.id,E));const W=E?E.signal:void 0,R=me=>{V.progress=Math.max(0,Math.min(100,Number(me)||0)),V.status="uploading",le.__latPaint()};let ce;try{ce=w.upload(V.file,{onProgress:R,signal:W})}catch(me){ce=Promise.reject(me)}ce&&typeof ce.then=="function"&&ce.then(()=>{w.controllers.delete(V.id),V.status="done",V.progress=100,le.__latPaint(),le.__latAnnounce(i("form.file.uploaded",{name:V.name})),C(le,l.doc)},me=>{w.controllers.delete(V.id),V.status="error",V.message=me&&me.message?String(me.message):i("form.file.uploadFailed"),le.__latPaint(),le.__latAnnounce(i("form.file.failed",{name:V.name})),C(le,l.doc)})},le.__latTake=V=>{const E=[...V||[]];if(!E.length||w.disabled||w.readOnly)return;const W=w.multiple?E:E.slice(0,1),R=[],ce=[];let me=w.maxFiles?Math.max(0,w.maxFiles-w.entries.length):1/0;for(const xe of W){if(me<=0){ce.push({file:xe,reason:"count"});continue}if(w.maxSize&&xe.size>w.maxSize){ce.push({file:xe,reason:"size"});continue}if(!v(xe,w.accept)){ce.push({file:xe,reason:"type"});continue}R.push({id:F(),file:xe,name:xe.name,size:xe.size,type:xe.type,status:"selected",progress:0,message:""}),me-=1}if(R.length){w.multiple||(w.entries=[]),w.entries.push(...R),le.__latPaint(),C(le,l.doc),le.__latAnnounce(R.length===1?i("form.file.addedOne"):i("form.file.added",{count:String(R.length)}));for(const xe of R)le.__latUpload(xe)}for(const xe of ce){const k=xe.reason==="size"?i("form.file.rejected.size",{size:O(w.maxSize)}):xe.reason==="type"?i("form.file.rejected.type"):i("form.file.rejected.count",{max:String(w.maxFiles)});w.entries.push({id:F(),file:xe.file,name:xe.file.name,size:xe.file.size,type:xe.file.type,status:"rejected",progress:0,message:k}),le.__latAnnounce(k)}le.__latPaint()},le.__latRemove=V=>{const E=w.controllers.get(V);E&&(E.abort(),w.controllers.delete(V));const W=w.entries.find(R=>R.id===V);W&&T(W),w.entries=w.entries.filter(R=>R.id!==V),le.__latPaint(),C(le,l.doc)},le.__latRetry=V=>{if(w.disabled||w.readOnly)return;const E=w.entries.find(W=>W.id===V);!E||!E.file||E.status==="rejected"||(le.__latUpload(E),C(le,l.doc))},le.__latClick=V=>{if(w.disabled||w.readOnly)return;const E=V.target&&V.target.closest?V.target:null,W=E&&E.closest?E.closest("[data-remove]"):null;if(W&&le.contains(W)){le.__latRemove(W.getAttribute("data-remove"));return}const R=E&&E.closest?E.closest("[data-retry]"):null;if(R&&le.contains(R)){le.__latRetry(R.getAttribute("data-retry"));return}E&&E.closest&&E.closest(`.${$}__zone`)&&w.input.click()},le.__latKeydown=V=>{w.disabled||w.readOnly||(V.key==="Enter"||V.key===" "||V.key==="Spacebar")&&V.target===w.zone&&(V.preventDefault(),w.input.click())},le.__latChange=()=>{le.__latTake(w.input.files),w.input.value=""},le.__latDragKind=V=>{if(!w.accept.length)return"over";const E=V.dataTransfer;if(!E||!E.types||!E.types.length)return"over";const W=Array.from(E.types);return W.includes("Files")?"over":W.every(R=>!v({name:"",type:R},w.accept))?"invalid":"over"},le.__latDrag=V=>{if(!(w.disabled||w.readOnly)){if(V.type==="dragenter"||V.type==="dragover"){V.preventDefault(),le.__latDragState(le.__latDragKind(V));return}if(V.type==="dragleave"){if(V.relatedTarget&&w.zone.contains(V.relatedTarget))return;le.__latDragState("none");return}V.type==="drop"&&(V.preventDefault(),le.__latDragState("none"),le.__latTake(V.dataTransfer&&V.dataTransfer.files))}},le.__latPaste=V=>{if(w.disabled||w.readOnly||!V.clipboardData)return;const E=[...V.clipboardData.files||[]];E.length&&(V.preventDefault(),le.__latTake(E))},M.addEventListener("change",le.__latChange),le.addEventListener("click",le.__latClick),le.addEventListener("keydown",le.__latKeydown),le.addEventListener("paste",le.__latPaste),ee&&["dragenter","dragover","dragleave","drop"].forEach(V=>le.addEventListener(V,le.__latDrag)),le.__latPaint(),le},read(c){const l=c.__latFile;return l?l.entries.filter(a=>a.status!=="rejected").map(_):[]},write(c,l){const a=c.__latFile;if(!a)return;const i=Array.isArray(l)?l:[],n=a.entries.filter(s=>s.status==="rejected");for(const s of a.entries)n.includes(s)||T(s);a.entries=n;for(const s of i)a.entries.push({id:s&&s.id?String(s.id):F(),file:s&&s.file?s.file:null,name:s&&s.name!=null?String(s.name):"",size:s&&s.size!=null?Number(s.size):0,type:s&&s.type!=null?String(s.type):"",status:s&&s.status?String(s.status):"done",progress:s&&s.progress!=null?Number(s.progress):100,message:s&&s.message?String(s.message):""});c.__latPaint&&c.__latPaint()},state(c,l){const a=c.__latFile;a&&(a.disabled=l.disabled===!0,a.readOnly=l.readOnly===!0,a.disabled?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled"),a.readOnly?c.setAttribute("aria-readonly","true"):c.removeAttribute("aria-readonly"),c.__latPaint&&c.__latPaint())},validate(c,l,a){const i=c.__latFile;if(!i)return null;const n=i.entries.find(s=>s.status==="rejected");return n&&n.message&&(!Array.isArray(a)||a.length===0)?n.message:i.maxFiles&&Array.isArray(a)&&a.length>i.maxFiles?`Too many files (max ${i.maxFiles})`:null}})}),Ne("packages/dom/src/editors/richtext-icons.js",function(S,q){"use strict";Object.defineProperty(S,"TOOL_GLYPHS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"letterGlyph",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"toolGlyph",{enumerable:!0,get:function(){return b}});const e="http://www.w3.org/2000/svg",U=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(N,y){const C=U[y],F=N.createElementNS(e,"svg");F.setAttribute("viewBox","0 0 16 16"),F.setAttribute("width","16"),F.setAttribute("height","16"),F.setAttribute("focusable","false"),F.setAttribute("aria-hidden","true");const O=N.createElementNS(e,"text");return O.setAttribute("x","8"),O.setAttribute("y","12"),O.setAttribute("text-anchor","middle"),O.style.fontSize="12px",O.style.fill="currentColor",O.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',C.weight&&(O.style.fontWeight=C.weight),C.style&&(O.style.fontStyle=C.style),C.decoration&&(O.style.textDecoration=C.decoration),O.textContent=C.char,F.appendChild(O),F}function b(N,y){const C=N.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 F=N.createElementNS(e,"path");return F.setAttribute("d",$[y]),C.appendChild(F),C}}),Ne("packages/modules/form/controls/swatches.js",function(S,q){"use strict";Object.defineProperty(S,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"hslToHex",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"buildSwatchButton",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"buildSwatchGrid",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),U=Object.freeze([0,24,48,84,140,168,196,224,268,320]),$=Object.freeze([.82,.66,.5,.36,.22]),Q=.62,b=Object.freeze([.92,.76,.56,.36,.18]);function N(f,u,d){let _=d;return _<0&&(_+=1),_>1&&(_-=1),_<1/6?f+(u-f)*6*_:_<1/2?u:_<2/3?f+(u-f)*(2/3-_)*6:f}function y(f,u,d){const _=(f%360+360)%360/360;let t,r,o;if(u===0)t=d,r=d,o=d;else{const A=d<.5?d*(1+u):d+u-d*u,g=2*d-A;t=N(g,A,_+1/3),r=N(g,A,_),o=N(g,A,_-1/3)}const p=A=>Math.round(A*255).toString(16).padStart(2,"0");return`#${p(t)}${p(r)}${p(o)}`}const C=Object.freeze(U.map(f=>Object.freeze($.map(u=>y(f,Q,u))))),F=Object.freeze(b.map(f=>y(0,0,f)));function O(f,u,d={}){const _=f.createElement("button");return _.type="button",_.className="lat-form__swatch",_.style.background=u,_.setAttribute("role","option"),_.setAttribute("data-color",u),_.setAttribute("aria-selected",d.selected?"true":"false"),d.selected&&_.classList.add("is-selected"),_.title=d.title!=null?d.title:u,_.tabIndex=-1,_}function v(f,u,d={}){const _=f.createElement("div");_.className="lat-form__swatch-grid",_.setAttribute("role","listbox");const t=[];for(const r of u){const o=f.createElement("div");o.className=d.rowClass?`lat-form__swatch-row ${d.rowClass}`:"lat-form__swatch-row";const p=[];for(const A of r){const g=O(f,A,{selected:typeof d.isSelected=="function"&&d.isSelected(A),title:typeof d.title=="function"?d.title(A):void 0});o.appendChild(g),p.push(g)}_.appendChild(o),t.push(p)}return typeof d.onPick=="function"&&_.addEventListener("click",r=>{const o=r.target&&r.target.closest?r.target.closest(".lat-form__swatch"):null;o&&_.contains(o)&&d.onPick(o.getAttribute("data-color"),o)}),{el:_,rows:t}}}),Ne("packages/modules/form/controls/richtext.js",function(S,q){"use strict";Object.defineProperty(S,"sanitize",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return b}});const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/dom/src/editors/sanitize-richtext.js"),Q=$.sanitizeRichText,b=$.escapeHtml,N=q("packages/dom/src/editors/richtext-icons.js"),y=N.letterGlyph,C=N.toolGlyph,F=N.TOOL_GLYPHS,O=q("packages/modules/form/controls/swatches.js"),v=O.DEFAULT_COLORS,f=O.buildSwatchGrid,u=Q,d=Object.freeze({basic:["bold","italic","underline","color","lowercase","uppercase","|","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","undo","redo"],html:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","clear","source","|","undo","redo"],rich:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","image","clear","source","|","undo","redo"]}),_=Object.freeze(["bold","italic","underline","strike"]),t=Object.freeze({bold:"form.richtext.bold",italic:"form.richtext.italic",underline:"form.richtext.underline",strike:"form.richtext.strike",color:"form.richtext.color",heading:"form.richtext.heading",alignLeft:"form.richtext.alignLeft",alignCenter:"form.richtext.alignCenter",alignRight:"form.richtext.alignRight",ul:"form.richtext.ul",ol:"form.richtext.ol",outdent:"form.richtext.outdent",indent:"form.richtext.indent",link:"form.richtext.link",image:"form.richtext.image",clear:"form.richtext.clear",source:"form.richtext.source",undo:"form.richtext.undo",redo:"form.richtext.redo",lowercase:"form.richtext.lowercase",uppercase:"form.richtext.uppercase"});function r(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 o=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function p(h){return Array.isArray(h)?h.map(T=>String(T)):d[h]||d.basic}function A(h){return new Promise((T,c)=>{const l=new FileReader;l.onload=()=>T(l.result),l.onerror=()=>c(l.error||new Error("read failed")),l.readAsDataURL(h)})}U("richtext",{kind:"field",build(h,T){const c=T.doc,l=h.props||{},a=p(l.toolbar),i=Array.isArray(l.headings)?l.headings:o,n=Array.isArray(l.colors)?l.colors:v,s=l.linkTarget!=null?String(l.linkTarget):"_blank",I=Number(l.minHeight)||160,z=Number(l.maxHeight)||0,Y=Number(l.maxImageSize)||0,B=typeof l.onImage=="function"?l.onImage:null,ee=l.sanitizePaste!==!1,oe=l.allowedTags,H=l.placeholder!=null?String(l.placeholder):T.t("form.richtext.placeholder"),Z=c.createElement("div");Z.className="lat-form__richtext";const G={toolbar:a,headings:i,colors:n,linkTarget:s,minHeight:I,maxHeight:z,maxImageSize:Y,onImage:B,sanitizePaste:ee,allowedTags:oe,placeholder:H,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};Z.__latRt=G;const ge=u(c,h.value==null?"":String(h.value),oe,{});G.history={stack:[ge],index:0},G.lastValue=ge;const ye=c.createElement("div");ye.className="lat-form__richtext-toolbar",ye.setAttribute("role","toolbar"),ye.setAttribute("aria-label",T.t("form.richtext.formatting")),G.toolbarEl=ye;for(const m of a){if(m==="|"){const X=c.createElement("span");X.className="lat-form__richtext-sep",X.setAttribute("role","separator"),ye.appendChild(X);continue}if(m==="heading"){const X=c.createElement("select");X.className="lat-form__richtext-select",X.title=T.t(t.heading),X.setAttribute("aria-label",T.t(t.heading)),X.setAttribute("data-item","heading");for(const[L,te]of i){const re=c.createElement("option");re.value=L,re.textContent=String(te),X.appendChild(re)}G.buttons.heading=X,ye.appendChild(X);continue}const P=c.createElement("button");P.type="button",P.className="lat-form__richtext-btn",P.setAttribute("data-item",m),P.title=T.t(t[m]||m),P.setAttribute("aria-label",T.t(t[m]||m)),m==="lowercase"||m==="uppercase"?(P.className+=" lat-form__richtext-btntext",P.textContent=T.t(m==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):_.includes(m)?P.appendChild(y(c,m)):F[m]?P.appendChild(C(c,m)):P.textContent=m,G.buttons[m]=P,ye.appendChild(P)}Z.appendChild(ye);const le=c.createElement("div");le.className="lat-form__richtext-popover",le.hidden=!0,Z.appendChild(le),G.popover=le;const w=c.createElement("div");w.className="lat-form__richtext-editor",w.contentEditable=h.readOnly||h.disabled?"false":"true",w.setAttribute("role","textbox"),w.setAttribute("aria-multiline","true"),w.setAttribute("aria-label",h.label!=null?String(h.label):T.t("form.richtext.richText")),w.setAttribute("data-placeholder",H),w.style.minHeight=`${I}px`,z&&(w.style.maxHeight=`${z}px`),w.innerHTML=ge,Z.appendChild(w),G.editor=w;const M=c.createElement("textarea");M.className="lat-form__richtext-source",M.setAttribute("aria-label",T.t("form.richtext.source")),M.spellcheck=!1,M.hidden=!0,Z.appendChild(M),G.source=M;const D=c.createElement("input");return D.type="file",D.accept="image/*",D.className="lat-form__richtext-file",D.tabIndex=-1,D.setAttribute("aria-hidden","true"),Z.appendChild(D),G.fileInput=D,Z.__latSave=()=>{const m=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;m&&m.rangeCount&&w.contains(m.anchorNode)&&(G.range=m.getRangeAt(0).cloneRange())},Z.__latRestore=()=>{if(!G.range)return;const m=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(m)try{m.removeAllRanges(),m.addRange(G.range)}catch{}},Z.__latRefresh=()=>{Object.entries(G.buttons).forEach(([m,P])=>{const X=r(m);if(X&&X.state&&P.tagName==="BUTTON"){let L=!1;try{L=c.queryCommandState(X.state)}catch{L=!1}P.setAttribute("aria-pressed",L?"true":"false"),P.classList.toggle("is-active",L)}if(m==="heading"&&P.tagName==="SELECT"){let L="";try{L=String(c.queryCommandValue("formatBlock")||"").toLowerCase()}catch{L=""}const te=[...P.options].some(re=>re.value===L);P.value=te?L:"p"}})},Z.__latExec=(m,P)=>{w.focus(),Z.__latRestore();try{c.execCommand("styleWithCSS",!1,m==="foreColor")}catch{}try{c.execCommand(m,!1,P===void 0?null:P)}catch{}Z.__latAfterEdit()},Z.__latAfterEdit=()=>{const m=w.innerHTML,P=G.history;P.stack[P.index]!==m&&(P.stack=P.stack.slice(0,P.index+1),P.stack.push(m),P.stack.length>200&&P.stack.shift(),P.index=P.stack.length-1),Z.__latRefresh();const X=u(c,m,oe,{}),L=G.lastValue==null?u(c,P.stack[0]||"",oe,{}):G.lastValue;G.lastValue=X,g(Z,c,L,X)},Z.__latCaretEnd=()=>{const m=c.createRange();m.selectNodeContents(w),m.collapse(!1);const P=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;P&&(P.removeAllRanges(),P.addRange(m)),G.range=m.cloneRange()},Z.__latUndo=()=>{const m=G.history;if(m.index<=0)return;m.index-=1,w.innerHTML=m.stack[m.index],Z.__latCaretEnd(),Z.__latRefresh();const P=u(c,w.innerHTML,oe,{});G.lastValue=P,g(Z,c,G.lastValue,P)},Z.__latRedo=()=>{const m=G.history;if(m.index>=m.stack.length-1)return;m.index+=1,w.innerHTML=m.stack[m.index],Z.__latCaretEnd(),Z.__latRefresh();const P=u(c,w.innerHTML,oe,{});G.lastValue=P,g(Z,c,G.lastValue,P)},Z.__latClosePopover=()=>{le.hidden=!0,le.textContent=""},Z.__latOpenPopover=(m,P)=>{if(le.textContent="",le.hidden=!1,le.style.left=`${Math.max(0,P.offsetLeft)}px`,m==="color"){const{el:X}=f(c,[n],{onPick:j=>{Z.__latRestore(),Z.__latExec("foreColor",j),Z.__latClosePopover()}});le.appendChild(X);const L=c.createElement("div");L.className="lat-form__richtext-poprow";const te=c.createElement("input");te.type="color",te.className="lat-form__richtext-colorinput",te.setAttribute("aria-label",T.t("form.richtext.colorCustom")),te.addEventListener("input",()=>{Z.__latRestore(),Z.__latExec("foreColor",te.value)});const re=c.createElement("button");re.type="button",re.className="lat-form__richtext-popbtn",re.textContent=T.t("form.richtext.colorRemove"),re.addEventListener("click",()=>{Z.__latRestore(),Z.__latExec("foreColor","inherit"),Z.__latClosePopover()}),L.appendChild(te),L.appendChild(re),le.appendChild(L)}else{const X=Z.__latClosestLink(),L=c.createElement("input");L.type="url",L.className="lat-form__richtext-linkinput",L.placeholder=T.t("form.richtext.linkPlaceholder"),L.value=X&&X.getAttribute("href")||"",L.setAttribute("aria-label",T.t("form.richtext.linkLabel"));const te=()=>{const x=L.value.trim();if(Z.__latRestore(),!x){Z.__latExec("unlink"),Z.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(x)){L.classList.add("is-invalid");return}if(X)X.setAttribute("href",x),Z.__latAfterEdit();else{const K=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(K&&K.isCollapsed){const V=s?` target="${b(s)}" rel="noopener noreferrer"`:"";Z.__latExec("insertHTML",u(c,`<a href="${b(x)}"${V}>${b(x)}</a>`,oe,{}))}else{Z.__latExec("createLink",x);const V=Z.__latClosestLink();V&&s&&(V.setAttribute("target",s),V.setAttribute("rel","noopener noreferrer"))}}Z.__latClosePopover()};L.addEventListener("keydown",x=>{x.key==="Enter"&&(x.preventDefault(),te()),x.key==="Escape"&&Z.__latClosePopover()});const re=c.createElement("div");re.className="lat-form__richtext-poprow",re.appendChild(L);const j=c.createElement("button");if(j.type="button",j.className="lat-form__richtext-popbtn",j.textContent=X?T.t("form.richtext.linkUpdate"):T.t("form.richtext.linkAdd"),j.addEventListener("click",te),re.appendChild(j),X){const x=c.createElement("button");x.type="button",x.className="lat-form__richtext-popbtn",x.textContent=T.t("form.richtext.linkRemove"),x.addEventListener("click",()=>{Z.__latRestore(),Z.__latExec("unlink"),Z.__latClosePopover()}),re.appendChild(x)}le.appendChild(re),setTimeout(()=>L.focus(),0)}},Z.__latClosestLink=()=>{const m=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(!m||m.rangeCount===0)return null;let P=m.getRangeAt(0).commonAncestorContainer;P.nodeType===3&&(P=P.parentNode);const X=P.closest?P.closest("a"):null;return X&&w.contains(X)?X:null},Z.__latRun=m=>{if(G.disabled||G.readOnly)return;m!=="source"&&G.sourceMode&&Z.__latToggleSource(!1),Z.__latRestore();const P=r(m);if(m==="color"||m==="link"){Z.__latOpenPopover(m,G.buttons[m]);return}if(m==="undo"){Z.__latUndo();return}if(m==="redo"){Z.__latRedo();return}if(m==="source"){Z.__latToggleSource();return}if(m==="image"){G.fileInput.click();return}if(m==="lowercase"||m==="uppercase"){Z.__latCase(m==="uppercase");return}if(P){Z.__latExec(P.cmd);return}},Z.__latCase=m=>{const P=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(!P||P.rangeCount===0||P.isCollapsed)return;const X=P.toString();Z.__latExec("insertText",m?X.toUpperCase():X.toLowerCase())},Z.__latToggleSource=m=>{const P=m===void 0?!G.sourceMode:!!m;if(P===G.sourceMode)return;P?(G.source.value=u(c,w.innerHTML,oe,{}).replace(/></g,`>
1653
+ <`),w.hidden=!0,M.hidden=!1,M.focus()):(G.sourceDirty&&(w.innerHTML=u(c,M.value,oe,{}),G.sourceDirty=!1),M.hidden=!0,w.hidden=!1,w.focus()),G.sourceMode=P;const X=G.buttons.source;X&&(X.classList.toggle("is-active",P),X.setAttribute("aria-pressed",P?"true":"false")),Object.entries(G.buttons).forEach(([L,te])=>{L!=="source"&&(te.disabled=P)}),P||Z.__latAfterEdit()},Z.__latInsertImage=async m=>{if(!/^image\//.test(m.type)||Y&&m.size>Y)return;let P;try{P=B?await B(m):await A(m)}catch{return}P&&Z.__latExec("insertHTML",u(c,`<img src="${b(P)}" alt="${b(m.name)}" style="max-width:100%">`,oe,{}))},Z.__latToolbarClick=m=>{const P=m.target&&m.target.closest?m.target.closest("[data-item]"):null;!P||!ye.contains(P)||P.tagName==="SELECT"||(m.preventDefault(),Z.__latRun(P.getAttribute("data-item")))},Z.__latToolbarDown=m=>{m.target&&m.target.closest&&m.target.closest(".lat-form__richtext-btn")&&m.preventDefault()},Z.__latSelect=m=>{m.target&&m.target.getAttribute&&m.target.getAttribute("data-item")==="heading"&&(Z.__latRestore(),Z.__latExec("formatBlock",m.target.value))},Z.__latInput=()=>{Z.__latAfterEdit()},Z.__latKey=m=>{if(!(m.ctrlKey||m.metaKey))return;const P=m.key.toLowerCase();P==="z"&&!m.shiftKey?(m.preventDefault(),Z.__latUndo()):P==="y"||P==="z"&&m.shiftKey?(m.preventDefault(),Z.__latRedo()):P==="k"&&G.buttons.link&&(m.preventDefault(),Z.__latRun("link"))},Z.__latPaste=m=>{if(!ee||!m.clipboardData)return;const P=m.clipboardData.getData("text/html"),X=m.clipboardData.getData("text/plain");if(!P&&!X)return;m.preventDefault();const L=P?u(c,P,oe,{stripStyles:!0}):b(X).replace(/\r?\n/g,"<br>");Z.__latExec("insertHTML",L)},Z.__latDrop=m=>{if(!ee||!m.dataTransfer)return;const P=m.dataTransfer.files;if(P&&P.length){m.preventDefault();const re=P[0];re&&Z.__latInsertImage(re);return}const X=m.dataTransfer.getData("text/html"),L=m.dataTransfer.getData("text/plain");if(!X&&!L)return;m.preventDefault();const te=X?u(c,X,oe,{stripStyles:!0}):b(L).replace(/\r?\n/g,"<br>");Z.__latExec("insertHTML",te)},Z.__latBeforeInput=m=>{ee&&(m.inputType==="insertFromDrop"||m.inputType==="insertFromPaste")&&m.preventDefault()},Z.__latSelChange=()=>{c.activeElement===w&&(Z.__latSave(),Z.__latRefresh())},Z.__latFile=()=>{const m=D.files&&D.files[0];D.value="",m&&Z.__latInsertImage(m)},Z.__latSourceInput=()=>{G.sourceDirty=!0},Z.__latDocClick=m=>{le&&!le.hidden&&!le.contains(m.target)&&!ye.contains(m.target)&&Z.__latClosePopover()},ye.addEventListener("click",Z.__latToolbarClick),ye.addEventListener("mousedown",Z.__latToolbarDown),ye.addEventListener("change",Z.__latSelect),w.addEventListener("input",Z.__latInput),w.addEventListener("keydown",Z.__latKey),w.addEventListener("paste",Z.__latPaste),w.addEventListener("drop",Z.__latDrop),w.addEventListener("beforeinput",Z.__latBeforeInput),D.addEventListener("change",Z.__latFile),M.addEventListener("input",Z.__latSourceInput),c.addEventListener&&(c.addEventListener("selectionchange",Z.__latSelChange),c.addEventListener("mousedown",Z.__latDocClick,!0)),Z},read(h){const T=h.__latRt;return T?T.sourceMode?u(h.ownerDocument,T.source.value,T.allowedTags,{}):u(h.ownerDocument,T.editor.innerHTML,T.allowedTags,{}):""},write(h,T){const c=h.__latRt;if(!c)return;const l=h.ownerDocument,a=u(l,T==null?"":String(T),c.allowedTags,{});c.sourceMode&&(c.source.value=a),c.editor.innerHTML=a,c.history={stack:[a],index:0},c.lastValue=a},state(h,T){const c=h.__latRt;c&&(c.disabled=T.disabled===!0,c.readOnly=T.readOnly===!0,c.editor.contentEditable=c.disabled||c.readOnly?"false":"true",c.editor.tabIndex=c.readOnly?0:-1,c.readOnly?c.editor.setAttribute("aria-readonly","true"):c.editor.removeAttribute("aria-readonly"),c.disabled?h.setAttribute("aria-disabled","true"):h.removeAttribute("aria-disabled"),c.readOnly?h.setAttribute("aria-readonly","true"):h.removeAttribute("aria-readonly"),Object.values(c.buttons).forEach(l=>{l.disabled=c.disabled||c.readOnly}))}});function g(h,T,c,l){const a=T&&T.defaultView,i=a&&a.Event,n=i?new i("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(n)}}),Ne("packages/modules/form/controls/rating.js",function(S,q){"use strict";const U=q("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 b(u){const d=String(u??"");return Object.hasOwn(Q,d)?d:"star"}function N(u,d,_){return Math.min(Math.max(u,d),_)}function y(u,d){const _=d&&d.defaultView,t=_&&_.Event,r=t?new t("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(r)}function C(u,d,_){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"),_?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const r=u.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",Q[d]),t.appendChild(r),t}function F(u,d,_){const t=Number(u),r=Number.isFinite(t)?t:0,o=_?Math.round(r*2)/2:Math.round(r);return N(o,0,d)}function O(u,d){return Math.min(1,Math.max(0,u-(d-1)))}U("rating",{kind:"field",build(u,d){const _=d.doc,t=u.props||{},r=Math.max(1,Math.floor(Number(u.max!=null?u.max:t.max)||$)),o=t.allowHalf===!0,p=t.allowClear!==!1,A=t.showValue===!0,g=Array.isArray(t.labels)?t.labels:null,h=b(t.icons&&t.icons.filled?t.icons.filled:t.icon),T=b(t.icons&&t.icons.empty?t.icons.empty:`${h}-outline`),c=t.size==="lg"||t.size==="sm"?t.size:"md",l=_.createElement("div");l.className=`lat-form__rating lat-form__rating--${c}`,l.setAttribute("role","slider"),l.setAttribute("aria-valuemin","0"),l.setAttribute("aria-valuemax",String(r)),l.setAttribute("aria-label",u.label!=null?String(u.label):d.t("form.rating"));const a={value:F(u.value,r,o),max:r,allowHalf:o,allowClear:p,labels:g,showValue:A,filledName:h,emptyName:T,items:[],fills:[],valueEl:null};l.__latRating=a;const i=_.createElement("span");i.className="lat-form__rating-track",i.setAttribute("aria-hidden","true");for(let n=0;n<r;n++){const s=_.createElement("span");s.className="lat-form__rating-item",s.setAttribute("data-index",String(n)),g&&g[n]!=null&&g[n]!==""&&(s.title=String(g[n])),s.appendChild(C(_,T,!1));const I=_.createElement("span");I.className="lat-form__rating-fill",I.setAttribute("aria-hidden","true"),I.appendChild(C(_,h,!0)),s.appendChild(I),i.appendChild(s),a.items.push(s),a.fills.push(I)}if(l.appendChild(i),A){const n=_.createElement("span");n.className="lat-form__rating-value",n.setAttribute("aria-hidden","true"),l.appendChild(n),a.valueEl=n}return l.__latPaint=()=>{for(let n=0;n<a.items.length;n++){const s=O(a.value,n+1);a.items[n].setAttribute("data-fill",s>=1?"full":s>0?"half":"empty"),a.fills[n].style.width=`${(s*100).toFixed(2)}%`}l.setAttribute("aria-valuenow",String(a.value)),l.setAttribute("aria-valuetext",v(a)),a.valueEl&&(a.valueEl.textContent=f(a))},l.__latSet=n=>{a.value=F(n,r,o),l.__latPaint()},l.__latClear=()=>{a.value=0,l.__latPaint()},l.__latPick=(n,s)=>{let I=n+1;if(o&&s&&Number.isFinite(s.clientX)){const z=a.items[n].getBoundingClientRect();z&&z.width>0&&(I=s.clientX-z.left<z.width/2?n+.5:n+1)}p&&I===a.value&&(I=0),l.__latSet(I),y(l,d.doc)},l.addEventListener("click",n=>{if(a.disabled||a.readOnly)return;const s=n.target&&n.target.closest?n.target.closest(".lat-form__rating-item"):null;!s||!l.contains(s)||l.__latPick(Number(s.getAttribute("data-index")),n)}),l.__latKey=n=>{if(a.disabled||a.readOnly)return;const s=o?.5:1;let I=a.value;if(n.key==="ArrowRight"||n.key==="ArrowUp")I+=s;else if(n.key==="ArrowLeft"||n.key==="ArrowDown")I-=s;else if(n.key==="Home")I=0;else if(n.key==="End")I=r;else if(n.key==="Backspace"||n.key==="Delete")I=0;else return;n.preventDefault(),l.__latSet(I),y(l,d.doc)},l.addEventListener("keydown",l.__latKey),l.__latPaint(),l},read(u){return u.__latRating?u.__latRating.value:0},write(u,d){u.__latRating&&(u.__latRating.value=F(d,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,d){const _=u.__latRating;_&&(_.disabled=d.disabled===!0,_.readOnly=d.readOnly===!0,u.tabIndex=_.disabled?-1:0,_.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),_.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function v(u){const d=Math.round(u.value);return u.labels&&u.labels[d-1]&&u.value===d?u.labels[d-1]:`${u.value} of ${u.max}`}function f(u){return String(u.value)}}),Ne("packages/modules/form/controls/stage.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl;function $(N,y){const C=y&&y.defaultView,F=C&&C.Event,O=F?new F("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};N.dispatchEvent(O)}function Q(N,y){return typeof y=="number"&&Number.isFinite(y)?Math.min(Math.max(Math.round(y),0),N.length-1):typeof y=="string"?N.indexOf(y):-1}function b(N,y,C){return`${N}, ${y+1} of ${C}`}U("stage",{kind:"field",build(N,y){const C=y.doc,F=N.props||{},O=Array.isArray(F.stages)?F.stages.map(o=>String(o)):[],v=F.clickable!==!1,f=F.showIcons!==!1,u=Q(O,N.value!=null?N.value:F.current),d=Q(O,F.completed),_=C.createElement("div");_.className="lat-form__stage",_.setAttribute("role","radiogroup"),_.setAttribute("aria-label",N.label!=null?String(N.label):y.t("form.stage"));const t=[],r={stages:O,value:u>=0?O[u]:null,index:u,completed:d,clickable:v,showIcons:f,disabled:!1,readOnly:!1,focus:u>=0?u:0};_.__latStage=r;for(let o=0;o<O.length;o++){const p=C.createElement(v?"button":"span");if(p.type=v?"button":void 0,p.className="lat-form__stage-step",p.setAttribute("data-index",String(o)),v&&(p.setAttribute("role","radio"),p.setAttribute("aria-label",b(O[o],o,O.length))),f){const g=C.createElementNS("http://www.w3.org/2000/svg","svg");g.setAttribute("viewBox","0 0 16 16"),g.setAttribute("aria-hidden","true"),g.setAttribute("class","lat-form__stage-check");const h=C.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"),g.appendChild(h),p.appendChild(g)}const A=C.createElement("span");A.className="lat-form__stage-label",A.textContent=O[o],p.appendChild(A),_.appendChild(p),t.push(p)}return _.__latPaint=()=>{for(let o=0;o<t.length;o++){const p=o===r.index,A=!p&&r.completed>=0&&o<=r.completed;t[o].setAttribute("data-state",p?"current":A?"done":"todo"),r.clickable&&(t[o].setAttribute("aria-checked",p?"true":"false"),t[o].tabIndex=r.disabled?-1:o===r.focus?0:-1)}},_.__latSelect=o=>{const p=o>=0&&o<O.length?O[o]:null;p!==r.value&&(r.index=o>=0&&o<O.length?o:-1,r.value=p,r.focus=r.index>=0?r.index:0,_.__latPaint(),$(_,y.doc))},_.__latKey=o=>{if(r.disabled||r.readOnly||!r.clickable||!O.length)return;let p=r.focus;if(o.key==="ArrowRight"||o.key==="ArrowDown")p+=1;else if(o.key==="ArrowLeft"||o.key==="ArrowUp")p-=1;else if(o.key==="Home")p=0;else if(o.key==="End")p=O.length-1;else return;o.preventDefault();const A=Math.min(Math.max(p,0),O.length-1);r.focus=A,t[A].focus(),_.__latSelect(A)},v&&(_.addEventListener("click",o=>{if(r.disabled||r.readOnly)return;const p=o.target&&o.target.closest?o.target.closest(".lat-form__stage-step"):null;if(!p||!_.contains(p))return;const A=Number(p.getAttribute("data-index"));r.focus=A,_.__latSelect(A)}),_.addEventListener("keydown",_.__latKey)),_.__latPaint(),_},read(N){return N.__latStage?N.__latStage.value:null},write(N,y){const C=N.__latStage;if(!C)return;const F=y==null?-1:Q(C.stages,y);C.index=F,C.value=F>=0?C.stages[F]:null,C.focus=F>=0?F:0,N.__latPaint()},state(N,y){const C=N.__latStage;C&&(C.disabled=y.disabled===!0,C.readOnly=y.readOnly===!0,C.readOnly?N.setAttribute("aria-readonly","true"):N.removeAttribute("aria-readonly"),C.disabled?N.setAttribute("aria-disabled","true"):N.removeAttribute("aria-disabled"),N.__latPaint())}})}),Ne("packages/modules/form/controls/chips.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$="M3 8.5l3 3 7-7";function Q(y,C){const F=C&&C.defaultView,O=F&&F.Event,v=O?new O("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};y.dispatchEvent(v)}function b(y){if(typeof y=="string")return{value:y,label:y,icon:null,disabled:!1};if(y!==null&&typeof y=="object"){const C=y.value===void 0?String(y.label):y.value;return{value:C,label:y.label==null?String(C):String(y.label),icon:typeof y.icon=="string"&&y.icon!==""?y.icon:null,disabled:y.disabled===!0}}return{value:y,label:String(y),icon:null,disabled:!1}}function N(y,C,F){const O=y.createElementNS("http://www.w3.org/2000/svg","svg");O.setAttribute("viewBox","0 0 16 16"),O.setAttribute("focusable","false"),O.setAttribute("aria-hidden","true");const v=y.createElementNS("http://www.w3.org/2000/svg","path");return v.setAttribute("d",C),F?v.setAttribute("fill","currentColor"):(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","2"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")),O.appendChild(v),O}U("chips",{kind:"field",build(y,C){const F=C.doc,O=y.props||{},v=(Array.isArray(y.options)?y.options:[]).map(b),f=O.multiple===!0,u=O.allowEmpty===!0,d=O.wrap!==!1,_=y.max!=null&&Number.isFinite(Number(y.max))?Number(y.max):null,t=F.createElement("div");t.className=`lat-form__chips${d?"":" lat-form__chips--scroll"}`,t.setAttribute("role",f?"group":"radiogroup"),t.setAttribute("aria-label",y.label!=null?String(y.label):C.t("form.chips"));const r=[],o=new Set,p={options:v,multiple:f,allowEmpty:u,wrap:d,max:_,selected:o,disabled:!1,readOnly:!1,t:C.t};t.__latChips=p;for(let g=0;g<v.length;g++){const h=v[g],T=F.createElement("button");if(T.type="button",T.className="lat-form__chip",T.setAttribute("data-index",String(g)),T.disabled=h.disabled,f||T.setAttribute("role","radio"),h.icon){const l=N(F,h.icon,!0);l.setAttribute("class","lat-form__chip-icon"),T.appendChild(l)}const c=F.createElement("span");if(c.className="lat-form__chip-label",c.textContent=h.label,T.appendChild(c),f){const l=N(F,$,!1);l.setAttribute("class","lat-form__chip-check"),T.appendChild(l)}t.appendChild(T),r.push(T)}p.buttons=r,t.__latPaint=()=>{for(let g=0;g<r.length;g++){const h=v[g],T=o.has(h.value),c=r[g];c.disabled=h.disabled||p.disabled,f?(c.setAttribute("aria-pressed",T?"true":"false"),c.tabIndex=p.disabled?-1:0):(c.setAttribute("aria-checked",T?"true":"false"),c.tabIndex=p.disabled?-1:T?0:-1)}},t.__latValue=()=>{if(f)return v.filter(g=>o.has(g.value)).map(g=>g.value);for(const g of v)if(o.has(g.value))return g.value;return null},t.__latToggle=g=>{const h=v[g];if(!(!h||h.disabled||p.disabled||p.readOnly)){if(f)if(o.has(h.value))o.delete(h.value);else{if(_!=null&&o.size>=_)return;o.add(h.value)}else if(o.has(h.value))if(p.allowEmpty)o.clear();else return;else o.clear(),o.add(h.value);t.__latPaint(),Q(t,C.doc)}},t.addEventListener("click",g=>{const h=g.target&&g.target.closest?g.target.closest(".lat-form__chip"):null;!h||!t.contains(h)||t.__latToggle(Number(h.getAttribute("data-index")))}),t.__latKey=g=>{if(p.multiple||p.disabled||p.readOnly||!r.length)return;let h=-1;for(let a=0;a<r.length;a++)if(o.has(v[a].value)){h=a;break}let T=h;if(g.key==="ArrowRight"||g.key==="ArrowDown")T=h+1;else if(g.key==="ArrowLeft"||g.key==="ArrowUp")T=h-1;else if(g.key==="Home")T=0;else if(g.key==="End")T=v.length-1;else return;g.preventDefault();const c=g.key==="ArrowLeft"||g.key==="ArrowUp"?-1:1;let l=T;for(;l>=0&&l<v.length&&v[l].disabled;)l+=c;l<0||l>=v.length||(o.clear(),o.add(v[l].value),t.__latPaint(),r[l].focus(),Q(t,C.doc))},t.addEventListener("keydown",t.__latKey);const A=y.value;if(f){const g=Array.isArray(A)?A:[];for(const h of g)v.some(T=>T.value===h)&&o.add(h)}else if(A!=null&&v.some(g=>g.value===A))o.add(A);else if(!u){const g=v.find(h=>!h.disabled)||v[0];g&&o.add(g.value)}return t.__latPaint(),t},read(y){return y.__latChips?y.__latValue():null},write(y,C){const F=y.__latChips;if(F){if(F.selected.clear(),F.multiple){const O=Array.isArray(C)?C:[];for(const v of O)F.options.some(f=>f.value===v)&&F.selected.add(v)}else if(C!=null&&F.options.some(O=>O.value===C))F.selected.add(C);else if(!F.allowEmpty){const O=F.options.find(v=>!v.disabled)||F.options[0];O&&F.selected.add(O.value)}y.__latPaint()}},validate(y,C,F){const O=y.__latChips;if(!O||!O.multiple)return null;const v=Array.isArray(F)?F.length:0,f=C.min!=null&&Number.isFinite(Number(C.min))?Number(C.min):null,u=C.max!=null&&Number.isFinite(Number(C.max))?Number(C.max):null;return f!=null&&v<f?{code:"min",message:O.t("form.chips.min",{min:String(f)})}:u!=null&&v>u?{code:"max",message:O.t("form.chips.max",{max:String(u)})}:null},state(y,C){const F=y.__latChips;F&&(F.disabled=C.disabled===!0,F.readOnly=C.readOnly===!0,F.readOnly?y.setAttribute("aria-readonly","true"):y.removeAttribute("aria-readonly"),F.disabled?y.setAttribute("aria-disabled","true"):y.removeAttribute("aria-disabled"),y.__latPaint())}})}),Ne("packages/modules/form/controls/otp.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=6;function Q(u){const d=Math.floor(Number(u));return Number.isFinite(d)&&d>=1?d:$}function b(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function N(u,d){return d==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function y(u,d){for(let _=u.length-1;_>=0;_-=1)if(N(u[_],d))return u[_];return""}function C(u,d,_){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(r=>N(r,d)).slice(0,_)}function F(u,d,_){const t=d&&d.defaultView,r=t&&t.Event,o=r?new r(_,{bubbles:!0}):{type:_,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(o)}function O(u,d){const _=C(d,u.mode,u.length);for(let t=0;t<u.length;t+=1)u.boxes[t].value=_[t]||""}function v(u){u.complete=u.boxes.every(d=>d.value!=="")}function f(u){return u.boxes.map(d=>d.value).join("")}U("otp",{kind:"field",domEvents:["complete"],build(u,d){const _=d.doc,t=u.props||{},r=Q(t.length),o=b(u.mode!=null?u.mode:t.mode),p=t.mask===!0,A=_.createElement("div");A.className="lat-form__otp",A.setAttribute("role","group"),A.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):d.t("form.otp.label"));const g=[],h={length:r,mode:o,mask:p,boxes:g,complete:!1,disabled:!1,readOnly:!1};A.__latOtp=h;for(let c=0;c<r;c+=1){const l=_.createElement("input");l.type="text",l.className=`lat-form__otp-input${p?" lat-form__otp-input--masked":""}`,l.setAttribute("inputmode",o==="numeric"?"numeric":"text"),l.setAttribute("pattern",o==="numeric"?"[0-9]":"[A-Za-z0-9]"),l.setAttribute("maxlength","1"),l.setAttribute("aria-label",d.t("form.otp.digit",{n:c+1,total:r})),l.autocomplete=c===0?"one-time-code":"off",g.push(l),A.appendChild(l)}const T=()=>{if(A.__latPublishing)return;A.__latPublishing=!0;try{F(A,_,"input"),F(A,_,"change")}finally{A.__latPublishing=!1}const c=g.every(l=>l.value!=="");c&&!h.complete?(h.complete=!0,F(A,_,"complete")):!c&&h.complete&&(h.complete=!1)};return A.addEventListener("input",c=>{if(A.__latPublishing)return;c.stopImmediatePropagation();const l=c.target;if(!g.includes(l))return;l.value=y(l.value,o);const a=g.indexOf(l);l.value!==""&&a<r-1&&g[a+1].focus(),T()}),A.addEventListener("change",c=>{A.__latPublishing||c.stopImmediatePropagation()}),A.addEventListener("keydown",c=>{if(h.disabled||h.readOnly)return;const l=c.target;if(!g.includes(l))return;const a=g.indexOf(l);c.key==="Backspace"?(c.preventDefault(),l.value!==""?l.value="":a>0&&(g[a-1].value="",g[a-1].focus()),T()):c.key==="ArrowLeft"&&a>0?(c.preventDefault(),g[a-1].focus()):c.key==="ArrowRight"&&a<r-1?(c.preventDefault(),g[a+1].focus()):c.key.length===1&&!N(c.key,o)&&!c.ctrlKey&&!c.metaKey&&!c.altKey&&c.preventDefault()}),A.addEventListener("paste",c=>{if(h.disabled||h.readOnly)return;c.preventDefault();const l=c.clipboardData&&typeof c.clipboardData.getData=="function"?c.clipboardData.getData("text"):"";O(h,l),(g.find(i=>i.value==="")||g[r-1]).focus(),T()}),A.focus=()=>{const c=g.find(l=>!l.disabled&&!l.readOnly&&l.value==="")||g[0];c&&c.focus()},A.blur=()=>{for(const c of g)c.blur()},O(h,u.value),v(h),A},read(u){return u.__latOtp?f(u.__latOtp):""},write(u,d){u.__latOtp&&(O(u.__latOtp,d),v(u.__latOtp))},state(u,d){const _=u.__latOtp;if(_){_.disabled=d.disabled===!0,_.readOnly=d.readOnly===!0;for(const t of _.boxes)t.disabled=_.disabled,t.readOnly=_.readOnly;_.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),_.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),Ne("packages/modules/form/controls/color.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),Q=$.makeFieldIcon,b=$.injectFieldIconStyles,N=q("packages/modules/form/controls/swatches.js"),y=N.DEFAULT_PALETTE,C=N.DEFAULT_GRAY_SHADES,F=N.buildSwatchGrid,O=N.hslToHex,v=10,f=/^#?([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 d(w){return w}const _=new Set;function t(w,M){_.has(w)||(_.add(w),console.warn("[lattice]",M))}function r(w){if(typeof w!="string")return null;const M=w.trim();if(!f.test(M))return null;const D=M.replace(/^#/,"").toLowerCase();return`#${D.length===3?D.split("").map(P=>P+P).join(""):D}`}function o(w){if(typeof w!="string")return null;const M=r(w);if(M)return M;const D=u.exec(w.trim());if(!D)return null;const m=X=>Math.max(0,Math.min(255,Number(X))),P=X=>m(X).toString(16).padStart(2,"0");return`#${P(D[1])}${P(D[2])}${P(D[3])}`}function p(w){const M=r(w);return M?{r:parseInt(M.slice(1,3),16),g:parseInt(M.slice(3,5),16),b:parseInt(M.slice(5,7),16)}:null}function A(w,M,D){const m=P=>Math.max(0,Math.min(255,Math.round(P))).toString(16).padStart(2,"0");return`#${m(w)}${m(M)}${m(D)}`}function g(w,M,D){const m=w/255,P=M/255,X=D/255,L=Math.max(m,P,X),te=Math.min(m,P,X),re=(L+te)/2,j=L-te;if(j===0)return{h:0,s:0,l:re};const x=re>.5?j/(2-L-te):j/(L+te);let K;return L===m?K=(P-X)/j%6:L===P?K=(X-m)/j+2:K=(m-P)/j+4,K*=60,K<0&&(K+=360),{h:K,s:x,l:re}}function h(w){return O(w.h,w.s,w.l)}function T(w,M,D){const m=w.ownerDocument,P=m&&m.defaultView,X=P&&typeof P.CustomEvent=="function"?P.CustomEvent:null,L=X?new X(M,{bubbles:!0,detail:D}):{type:M,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:D,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};w.dispatchEvent(L)}function c(w){const M=w.props&&w.props.palette;return Array.isArray(M)&&M.length?M:y}function l(w){return!(w.props&&w.props.editable===!1)}function a(w){return!!(w.props&&w.props.clearable===!0)}function i(w){return!!(w.props&&w.props.pickerOnly===!0)}function n(w){return!(w.props&&w.props.grayShades===!1)}function s(w){const M=w.props&&w.props.icon;return typeof M=="string"&&M!==""?M:null}function I(w){const M=w.props&&w.props.customColors;return Array.isArray(M)?[...new Set(M.map(o).filter(Boolean))].slice(0,v):[]}function z(w){const M=r(w.__input.value);w.__swatchBtn.style.background=M||"transparent",w.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!M),w.__clearBtn&&(w.__clearBtn.hidden=w.__input.value.trim()==="")}function Y(w,M){w.__value=M||null,w.__input.value=M||"",w.__lastCommittedText=M||"",z(w)}function B(w){if(l(w.__item)===!1)return;const M=w.__input.value.trim();if(M===w.__lastCommittedText)return;const D=r(M);(D||M==="")&&(w.__value=D,w.__lastCommittedText=M),T(w,"change")}function ee(w,M){Y(w,M),T(w,"change")}function oe(w,M){const D=w.__customColors,m=D.filter(X=>X!==M),P=[M,...m].slice(0,v);P.length===D.length&&P.every((X,L)=>X===D[L])||(w.__customColors=P,T(w,"customColorsChange",{colors:P}))}function H(w){const M=w.__popover,D=w.ownerDocument,m=D&&D.defaultView,P=w.__field.getBoundingClientRect(),X=m?m.innerHeight:0,L=M.offsetHeight||0;X-P.bottom<L+4&&P.top>L+4?M.classList.add("lat-form__color-popover--above"):M.classList.remove("lat-form__color-popover--above")}function Z(w,M,D,m){let P=Math.max(0,Math.min(w.length-1,M.row+D)),X=M.col+m;if(m!==0){const L=w[P].length;X=Math.max(0,Math.min(L-1,X))}else X=Math.max(0,Math.min(w[P].length-1,X));return{row:P,col:X}}function G(w){const M=w.__item,D=w.ownerDocument,m=w.__popover;for(;m.firstChild;)m.removeChild(m.firstChild);const P=[...c(M)];n(M)&&P.push([...C]),w.__customColors.length&&P.push([...w.__customColors]);const X=w.__value,{el:L,rows:te}=F(D,P,{isSelected:j=>j===X,onPick:j=>{ee(w,j),le(w,{restoreFocus:!0})}});L.classList.add("lat-form__color-grid"),m.appendChild(L);for(const j of te)for(const x of j){if(x.getAttribute("aria-selected")!=="true")continue;const K=D.createElementNS("http://www.w3.org/2000/svg","svg");K.setAttribute("viewBox","0 0 16 16"),K.setAttribute("class","lat-form__color-check"),K.setAttribute("aria-hidden","true");const V=D.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"),K.appendChild(V);const E=D.createElementNS("http://www.w3.org/2000/svg","path");E.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),E.setAttribute("fill","none"),E.setAttribute("stroke","#000"),E.setAttribute("stroke-width","4.2"),E.setAttribute("stroke-linecap","round"),E.setAttribute("stroke-linejoin","round"),E.setAttribute("opacity","0.35"),K.insertBefore(E,V),x.appendChild(K)}let re={row:0,col:0};e:for(let j=0;j<te.length;j++)for(let x=0;x<te[j].length;x++)if(te[j][x].getAttribute("aria-selected")==="true"){re={row:j,col:x};break e}for(const j of te)for(const x of j)x.tabIndex=-1;if(te[re.row]&&te[re.row][re.col]&&(te[re.row][re.col].tabIndex=0),L.addEventListener("keydown",j=>{if(j.key==="Enter"||j.key===" "){j.preventDefault(),j.stopPropagation(),te[re.row][re.col].click();return}const K={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[j.key];if(!K)return;j.preventDefault();for(const E of te)for(const W of E)W.tabIndex=-1;re=Z(te,re,K[0],K[1]);const V=te[re.row][re.col];V.tabIndex=0,V.focus()}),!i(M)){const j=D.createElement("button");j.type="button",j.className="lat-form__color-custombtn",j.textContent=w.__t("form.color.customColor"),j.addEventListener("click",()=>{ge(w,X)}),m.appendChild(j)}H(w)}function ge(w,M){const D=w.__item,m=w.ownerDocument,P=w.__popover;for(;P.firstChild;)P.removeChild(P.firstChild);const X=p(M)||{r:0,g:0,b:0},L=g(X.r,X.g,X.b),te=m.createElement("div");te.className="lat-form__color-picker",P.appendChild(te);const re=m.createElement("div");re.className="lat-form__color-plane",re.setAttribute("role","slider"),re.setAttribute("aria-label",w.__t("form.color.saturationLightness")),re.tabIndex=0;const j=m.createElement("div");j.className="lat-form__color-plane-thumb",re.appendChild(j),te.appendChild(re);const x=m.createElement("div");x.className="lat-form__color-hue",x.setAttribute("role","slider"),x.setAttribute("aria-label",w.__t("form.color.hue")),x.tabIndex=0;const K=m.createElement("div");K.className="lat-form__color-hue-thumb",x.appendChild(K),te.appendChild(x);const V=m.createElement("div");V.className="lat-form__color-fields";const E=m.createElement("input");E.type="text",E.className="lat-form__color-hexfield",E.setAttribute("aria-label",w.__t("form.color.hexLabel"));const W=m.createElement("input");W.type="number",W.min="0",W.max="255",W.className="lat-form__color-rgbfield",W.setAttribute("aria-label",w.__t("form.color.redLabel"));const R=m.createElement("input");R.type="number",R.min="0",R.max="255",R.className="lat-form__color-rgbfield",R.setAttribute("aria-label",w.__t("form.color.greenLabel"));const ce=m.createElement("input");ce.type="number",ce.min="0",ce.max="255",ce.className="lat-form__color-rgbfield",ce.setAttribute("aria-label",w.__t("form.color.blueLabel")),V.appendChild(E),V.appendChild(W),V.appendChild(R),V.appendChild(ce),te.appendChild(V);const me=m.createElement("div");me.className="lat-form__color-previewrow";const xe=m.createElement("span");xe.className="lat-form__color-preview",me.appendChild(xe),te.appendChild(me);const k=m.createElement("div");if(k.className="lat-form__color-actions",!i(D)){const Ae=m.createElement("button");Ae.type="button",Ae.className="lat-form__color-back",Ae.textContent=w.__t("form.back"),Ae.addEventListener("click",()=>{G(w)}),k.appendChild(Ae)}const ne=m.createElement("button");ne.type="button",ne.className="lat-form__color-select",ne.textContent=w.__t("form.color.select"),k.appendChild(ne),te.appendChild(k);const se=()=>{const Ae=h(L),Ce=p(Ae);re.style.setProperty("--lat-color-hue",String(L.h)),j.style.left=`${L.s*100}%`,j.style.top=`${(1-L.l)*100}%`,K.style.left=`${L.h/360*100}%`,E.value=Ae,W.value=String(Ce.r),R.value=String(Ce.g),ce.value=String(Ce.b),xe.style.background=Ae,re.setAttribute("aria-valuetext",Ae),x.setAttribute("aria-valuenow",String(Math.round(L.h)))};se();const J=(Ae,Ce,we)=>{const ke=Ae.getBoundingClientRect();if(!ke.width||!ke.height)return;const Le=Math.max(0,Math.min(1,(Ce.clientX-ke.left)/ke.width)),De=Math.max(0,Math.min(1,(Ce.clientY-ke.top)/ke.height));we(Le,De)},ue=(Ae,Ce)=>{let we=!1;Ae.addEventListener("pointerdown",ke=>{we=!0,J(Ae,ke,Ce)}),m.addEventListener("pointermove",ke=>{we&&J(Ae,ke,Ce)}),m.addEventListener("pointerup",()=>{we=!1})};ue(re,(Ae,Ce)=>{L.s=Ae,L.l=1-Ce,se()}),ue(x,Ae=>{L.h=Ae*360,se()}),re.addEventListener("keydown",Ae=>{if(Ae.key==="Enter"){Ae.preventDefault(),Ae.stopPropagation(),Ee();return}const Ce=Ae.shiftKey?.1:.02;if(Ae.key==="ArrowLeft")L.s=Math.max(0,L.s-Ce);else if(Ae.key==="ArrowRight")L.s=Math.min(1,L.s+Ce);else if(Ae.key==="ArrowUp")L.l=Math.min(1,L.l+Ce);else if(Ae.key==="ArrowDown")L.l=Math.max(0,L.l-Ce);else return;Ae.preventDefault(),se()}),x.addEventListener("keydown",Ae=>{if(Ae.key==="Enter"){Ae.preventDefault(),Ae.stopPropagation(),Ee();return}const Ce=Ae.shiftKey?10:2;if(Ae.key==="ArrowLeft"||Ae.key==="ArrowDown")L.h=(L.h-Ce+360)%360;else if(Ae.key==="ArrowRight"||Ae.key==="ArrowUp")L.h=(L.h+Ce)%360;else return;Ae.preventDefault(),se()});const he=()=>{const Ae=r(E.value);if(!Ae){E.value=h(L);return}const Ce=p(Ae);Object.assign(L,g(Ce.r,Ce.g,Ce.b)),se()};E.addEventListener("change",he);const be=()=>{const Ae=Ce=>Math.max(0,Math.min(255,Number(Ce)||0));Object.assign(L,g(Ae(W.value),Ae(R.value),Ae(ce.value))),se()};W.addEventListener("change",be),R.addEventListener("change",be),ce.addEventListener("change",be);const Ee=()=>{const Ae=h(L);ee(w,Ae),oe(w,Ae),le(w,{restoreFocus:!0})};ne.addEventListener("click",Ee);const Se=Ae=>Ce=>{Ce.key==="Enter"&&(Ce.preventDefault(),Ce.stopPropagation(),Ae(),Ee())};E.addEventListener("keydown",Se(he)),W.addEventListener("keydown",Se(be)),R.addEventListener("keydown",Se(be)),ce.addEventListener("keydown",Se(be)),H(w)}function ye(w){w.__open||w.__item.disabled===!0||w.__item.readOnly===!0||(w.__open=!0,w.__popover.hidden=!1,i(w.__item)||w.__item.mode==="picker"?ge(w,w.__value):G(w))}function le(w,M={}){if(w.__open){for(w.__open=!1,w.__popover.hidden=!0,w.__popover.classList.remove("lat-form__color-popover--above");w.__popover.firstChild;)w.__popover.removeChild(w.__popover.firstChild);M.restoreFocus&&w.__input.focus()}}U("color",{kind:"field",domEvents:["customColorsChange"],build(w,M){const D=M.doc;b(D);const m=D.createElement("div");m.className="lat-form__color",m.__item=w,m.__t=M.t||d,m.__open=!1,m.__value=o(w.value),m.__customColors=I(w);const P=D.createElement("div");P.className="lat-form__color-field",m.__field=P;const X=D.createElement("button");X.type="button",X.className="lat-form__color-swatch",X.setAttribute("aria-label",m.__t("form.color.open")),m.__swatchBtn=X;const L=D.createElement("input");L.type="text",L.className="lat-form__color-input",w.name&&(L.name=w.name),w.placeholder!=null&&(L.placeholder=String(w.placeholder)),w.label!=null&&w.label!==""&&L.setAttribute("aria-label",String(w.label)),L.setAttribute("autocomplete","off"),L.readOnly=!l(w),m.__input=L,P.appendChild(X),P.appendChild(L);let te=null;if(a(w)){te=D.createElement("button"),te.type="button",te.className="lat-form__color-clear",te.setAttribute("aria-label",m.__t("form.color.clear"));const R=Q(D,"close");R&&te.appendChild(R),te.addEventListener("click",()=>{ee(m,null),L.focus()}),P.appendChild(te)}m.__clearBtn=te;const re=D.createElement("button");re.type="button",re.className="lat-form__color-toggle",re.setAttribute("aria-label",m.__t("form.color.open"));const j=s(w),x=j?Q(D,j):Q(D,"chevronDown");x&&re.appendChild(x),m.__toggleBtn=re,P.appendChild(re),m.appendChild(P);const K=D.createElement("div");K.className="lat-form__color-popover",K.hidden=!0,m.__popover=K,m.appendChild(K),Y(m,m.__value);const V=()=>{m.__open?le(m):ye(m)};X.addEventListener("click",V),re.addEventListener("click",V),L.addEventListener("input",()=>{z(m)}),L.addEventListener("change",R=>{R.stopPropagation(),B(m)}),L.addEventListener("keydown",R=>{R.key==="Enter"?(R.preventDefault(),B(m)):R.key==="Escape"&&m.__open?le(m):R.altKey&&R.key==="ArrowDown"&&(R.preventDefault(),ye(m))}),m.addEventListener("keydown",R=>{R.target!==L&&(R.key==="Enter"&&!m.__open||R.altKey&&R.key==="ArrowDown"?(R.preventDefault(),ye(m)):R.key==="Escape"&&m.__open&&(R.preventDefault(),le(m,{restoreFocus:!0})))});const E=R=>{!m.__open||m.contains(R.target)||le(m)},W=R=>{m.__open&&(R.relatedTarget&&m.contains(R.relatedTarget)||le(m))};return D.addEventListener("pointerdown",E),m.addEventListener("focusout",W),Array.isArray(M.disposers)&&M.disposers.push(()=>{D.removeEventListener("pointerdown",E),m.removeEventListener("focusout",W)}),m},read(w){const M=w.__input.value.trim();return M===""?null:r(M)||M},write(w,M){if(M==null||M===""){w.__value=null,Y(w,null);return}const D=o(M);if(!D){t("form.color.setValue",`form.color: "${String(M)}" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.`);return}w.__value=D,Y(w,D)},state(w,M){const D=M.disabled===!0||M.readOnly===!0;w.__input.disabled=M.disabled===!0,w.__input.readOnly=M.readOnly===!0||!l(M),w.__swatchBtn.disabled=D,w.__toggleBtn.disabled=D,w.__clearBtn&&(w.__clearBtn.disabled=D),D&&le(w)},validate(w,M,D){return D==null||typeof D=="string"&&/^#[0-9a-f]{6}$/.test(D)?!0:typeof M.errorMessage=="string"&&M.errorMessage!==""?M.errorMessage:w.__t("form.color.invalidHex")},focus(w){w.__input.focus()}})}),Ne("packages/dom/src/cell/renderers/barcode/support.js",function(S,q){"use strict";Object.defineProperty(S,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"joinCharacters",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"buildPattern",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"mod10Weighted",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"MOD43_ORDER",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"mod43Check",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"weightedModulo",{enumerable:!0,get:function(){return y}});function e(C){const F=[];for(let O=0;O<C.length;O++){const v=O%2===0?1:0;for(let f=0;f<C[O];f++)F.push(v)}return F}function U(C,F){const O=[];return C.forEach((v,f)=>{if(f>0&&F>0)for(let u=0;u<F;u++)O.push(0);O.push(...v)}),O}function $(C,F){return U(C.map(e),F)}function Q(C,F=3){let O=0,v=F;for(let f=C.length-1;f>=0;f--)O+=Number(C[f])*v,v=v===3?1:3;return(10-O%10)%10}const b="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function N(C){let F=0;for(const O of C){const v=b.indexOf(O);if(v<0)return null;F+=v}return b[F%43]}function y(C,F,O=11){let v=0,f=1;for(let u=C.length-1;u>=0;u--)v+=C[u]*f,f=f===F?1:f+1;return v%O}}),Ne("packages/dom/src/cell/renderers/barcode/code39.js",function(S,q){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return _}});const e=q("packages/dom/src/cell/renderers/barcode/support.js"),U=e.buildPattern,$=e.mod43Check,Q=e.MOD43_ORDER,b=2,N=["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"],y="010010100";function C(t){return t.split("").map(r=>r==="1"?b:1)}function F(t){const r=Q.indexOf(t);return r<0?null:C(N[r])}function O(){const t=new Map,r=o=>String.fromCharCode(65+o);for(let o=1;o<=26;o++)t.set(o,`$${r(o-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((o,p)=>t.set(27+p,o));for(let o=33;o<=44;o++)t.set(o,`/${r(o-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let o=59;o<=63;o++)t.set(o,`%${r(o-59+5)}`);t.set(64,"%V");for(let o=91;o<=95;o++)t.set(o,`%${r(o-91+10)}`);t.set(96,"%W");for(let o=97;o<=122;o++)t.set(o,`+${r(o-97)}`);for(let o=123;o<=127;o++)t.set(o,`%${r(o-123+15)}`);return t}const v=O(),f=new Map([...v].map(([t,r])=>[r,t]));function u(t){const r=[];for(const o of t){const p=o.codePointAt(0);if(p>127)return null;if(Q.includes(o)){r.push(o);continue}const A=v.get(p);if(!A)return null;r.push(A[0],A[1])}return r}function d(t){let r="";for(let o=0;o<t.length;o++){const p=t[o]+(t[o+1]??"");if(f.has(p)){r+=String.fromCharCode(f.get(p)),o++;continue}r+=t[o]}return r}function _(t,r={}){const o=t==null?"":String(t);if(o==="")return{ok:!1,reason:"empty"};const p=r.extended?u(o):o.split("");if(!p)return{ok:!1,reason:"charset"};const A=[C(y)];for(const g of p){const h=F(g);if(!h)return{ok:!1,reason:"charset"};A.push(h)}if(r.checkDigit){const g=$(p.join(""));return g==null?{ok:!1,reason:"charset"}:(A.push(F(g)),A.push(C(y)),{ok:!0,modules:U(A,1),text:`${o}${g}`})}return A.push(C(y)),{ok:!0,modules:U(A,1),text:o}}}),Ne("packages/dom/src/cell/renderers/barcode/ean.js",function(S,q){"use strict";Object.defineProperty(S,"L_PATTERNS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"G_PATTERNS",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"R_PATTERNS",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"EAN13_PARITY",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return O}});const U=q("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"],b=$.map(v=>v.split("").map(f=>f==="1"?"0":"1").join("")),N=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function y(v){return v.split("").map(Number)}function C(v,f){const u=v==null?"":String(v);if(!/^\d+$/.test(u))return null;if(u.length===f)return{digits:u,check:U(u)};if(u.length===f+1){const d=u.slice(0,f),_=Number(u[f]),t=U(d);return _!==t?null:{digits:d,check:t}}return null}function F(v){const f=C(v,12);if(!f)return{ok:!1,reason:"checkDigit"};const u=f.digits+f.check,d=N[Number(u[0])],_=u.slice(1,7).split("").map((o,p)=>(d[p]==="L"?$:Q)[Number(o)]),t=u.slice(7).split("").map(o=>b[Number(o)]);return{ok:!0,modules:[...y("101"),..._.flatMap(y),...y("01010"),...t.flatMap(y),...y("101")],text:u}}function O(v){const f=C(v,7);if(!f)return{ok:!1,reason:"checkDigit"};const u=f.digits+f.check,d=u.slice(0,4).split("").map(r=>$[Number(r)]),_=u.slice(4).split("").map(r=>b[Number(r)]);return{ok:!0,modules:[...y("101"),...d.flatMap(y),...y("01010"),..._.flatMap(y),...y("101")],text:u}}}),Ne("packages/dom/src/cell/renderers/barcode/upc.js",function(S,q){"use strict";Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return v}});const e=q("packages/dom/src/cell/renderers/barcode/ean.js"),U=e.L_PATTERNS,$=e.G_PATTERNS,Q=e.encodeEan13,N=q("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function y(f){return f.split("").map(Number)}function C(f){const u=f==null?"":String(f);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const d=Q(`0${u}`);return d.ok?{ok:!0,modules:d.modules,text:d.text.slice(1)}:d}function F(f,u){const d=f.split(""),_=d[5];return _<="2"?`${d[0]}${d[1]}${_}0000${d[2]}${d[3]}${d[4]}`:_==="3"?`${d[0]}${d[1]}${d[2]}00000${d[3]}${d[4]}`:_==="4"?`${d[0]}${d[1]}${d[2]}${d[3]}00000${d[4]}`:`${d[0]}${d[1]}${d[2]}${d[3]}${d[4]}0000${_}`}const O={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 v(f){const u=f==null?"":String(f);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let d,_,t=null;if(u.length===6?(d="0",_=u):u.length===7?(d=u[0],_=u.slice(1)):(d=u[0],_=u.slice(1,7),t=u[7]),d!=="0"&&d!=="1")return{ok:!1,reason:"checkDigit"};const r=F(_,d),o=N(d+r);if(t!=null&&Number(t)!==o)return{ok:!1,reason:"checkDigit"};const A=O[o][Number(d)].split("").map((h,T)=>(h==="O"?U:$)[Number(_[T])]);return{ok:!0,modules:[...y("101"),...A.flatMap(y),...y("010101")],text:`${d}${_}${o}`}}}),Ne("packages/dom/src/cell/renderers/barcode/code93.js",function(S,q){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"SHIFT_ORDER",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return Q}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",U=["($)","(%)","(/)","(+)"],$=[[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 b(t){const r=[];for(let o=0;o<t.length;o++){const p=o%2===0?1:0;for(let A=0;A<t[o];A++)r.push(p)}return r}function N(t){return $[t]}function y(t){return e.indexOf(t)}function C(){const t=new Map,r=43,o=44,p=45,A=46,g=h=>10+h;for(let h=1;h<=26;h++)t.set(h,[r,g(h-1)]);t.set(0,[o,g(20)]);for(let h=27;h<=31;h++)t.set(h,[o,g(h-27)]);for(let h=33;h<=44;h++)t.set(h,[p,g(h-33)]);t.set(47,[p,g(14)]),t.set(58,[p,g(25)]);for(let h=59;h<=63;h++)t.set(h,[o,g(h-59+5)]);t.set(64,[o,g(21)]);for(let h=91;h<=95;h++)t.set(h,[o,g(h-91+10)]);t.set(96,[o,g(22)]);for(let h=97;h<=122;h++)t.set(h,[A,g(h-97)]);for(let h=123;h<=127;h++)t.set(h,[o,g(h-123+15)]);return t}const F=C(),O=new Map([...F].map(([t,r])=>[r.join(","),t]));function v(t){const r=[];for(const o of t){const p=o.codePointAt(0);if(p>127)return null;const A=y(o);if(A>=0){r.push(A);continue}const g=F.get(p);if(!g)return null;r.push(g[0],g[1])}return r}function f(t){let r="";for(let o=0;o<t.length;o++){const p=`${t[o]},${t[o+1]??""}`;if(O.has(p)){r+=String.fromCharCode(O.get(p)),o++;continue}r+=e[t[o]]}return r}function u(t){let r=0,o=1;for(let p=t.length-1;p>=0;p--)r+=t[p]*o,o=o===20?1:o+1;return r%47}function d(t){const r=u(t),o=u([...t,r]);return{c:r,k:o}}function _(t,r={}){const o=t==null?"":String(t);if(o==="")return{ok:!1,reason:"empty"};const p=r.extended?v(o):(()=>{const c=[];for(const l of o){const a=y(l);if(a<0)return null;c.push(a)}return c})();if(!p)return{ok:!1,reason:"charset"};const{c:A,k:g}=d(p),h=[Q];for(const c of p)h.push(N(c));return h.push(N(A)),h.push(N(g)),h.push(Q),{ok:!0,modules:h.flatMap(b),text:o}}}),Ne("packages/dom/src/cell/renderers/barcode/code128.js",function(S,q){"use strict";Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return t}});const U=q("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,b=104,N=105,y=106,C={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},F={A:Q,B:b,C:N};function O(r){return r>=32&&r<=95?r-32:r>=0&&r<=31?r+64:null}function v(r){return r>=32&&r<=127?r-32:null}function f(r,o){const p=r.charCodeAt(o),A=r.charCodeAt(o+1);return p>=48&&p<=57&&A>=48&&A<=57}function u(r,o,p){const A=[],g=r.charCodeAt(o),h=O(g);if(h!=null){const c=p==="A"||p===null?[h]:[C[p].A,h];A.push({to:"A",symbols:c,advance:1})}const T=v(g);if(T!=null){const c=p==="B"||p===null?[T]:[C[p].B,T];A.push({to:"B",symbols:c,advance:1})}if(f(r,o)){const c=Number(r.slice(o,o+2)),l=p==="C"||p===null?[c]:[C[p].C,c];A.push({to:"C",symbols:l,advance:2})}return A}function d(r){const o=r.length,p=Array.from({length:o+1},()=>({}));p[0].start={cost:0,prev:null,symbols:[]};for(let a=0;a<=o;a++)for(const i of Object.keys(p[a])){const n=p[a][i];if(a===o)continue;const s=i==="start"?null:i;for(const I of u(r,a,s)){const z=a+I.advance,Y=n.cost+I.symbols.length,B=p[z][I.to];(!B||Y<B.cost)&&(p[z][I.to]={cost:Y,prev:i,symbols:I.symbols,backI:a})}}const A=Object.entries(p[o]);if(A.length===0)return null;A.sort((a,i)=>a[1].cost-i[1].cost);const[,g]=A[0],h=[];let T=o,c=A[0][0],l=c;for(;T>0;){const a=p[T][c];h.push(a.symbols),l=c,T=a.backI,c=a.prev}return h.reverse(),{symbols:h.flat(),startSubset:l}}function _(r,o){let p=r;for(let A=0;A<o.length;A++)p+=o[A]*(A+1);return p%103}function t(r,o={}){const p=r==null?"":String(r);if(p==="")return{ok:!1,reason:"empty"};for(let a=0;a<p.length;a++)if(p.charCodeAt(a)>127)return{ok:!1,reason:"charset"};const A=d(p);if(!A)return{ok:!1,reason:"charset"};const g=F[A.startSubset],h=_(g,A.symbols);return{ok:!0,modules:[g,...A.symbols,h,y].map(a=>$[a].split("").map(Number)).flatMap(a=>U(a)),text:p}}}),Ne("packages/dom/src/cell/renderers/barcode/code11.js",function(S,q){"use strict";Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return N}});const e=q("packages/dom/src/cell/renderers/barcode/support.js"),U=e.buildPattern,$=e.weightedModulo,Q="0123456789-",b=[[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]],N=[2,1,1,1,2,1],y=f=>Q.indexOf(f);function C(f){const u=y(f);return u<0?null:b[u]}function F(f){return Q[$(f,10)]}function O(f){return Q[$(f,9)]}function v(f,u={}){const d=f==null?"":String(f);if(d==="")return{ok:!1,reason:"empty"};const _=[];for(const g of d){const h=y(g);if(h<0)return{ok:!1,reason:"charset"};_.push(h)}const t=F(_),r=y(t),p=d.length>=10?`${t}${O([..._,r])}`:t,A=[N];for(const g of d)A.push(C(g));for(const g of p)A.push(C(g));return A.push(N),{ok:!0,modules:U(A,1),text:`${d}${p}`}}}),Ne("packages/dom/src/cell/renderers/barcode/codabar.js",function(S,q){"use strict";Object.defineProperty(S,"MOD16_ORDER",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return v}});const U=q("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"},b="0123456789-$:/.+",N="ABCD",y="0123456789-$:/.+ABCD";function C(f){return f.split("").map(u=>u==="w"?$:1)}function F(f){const u=Q[f];return u?C(u):null}function O(f){let u=0;for(const _ of f){const t=y.indexOf(_);if(t<0)return null;u+=t}const d=u%16;return d<10?String(d):null}function v(f,u={}){const d=f==null?"":String(f);if(d==="")return{ok:!1,reason:"empty"};const _=d.toUpperCase();if(_.length<2)return{ok:!1,reason:"charset"};const t=_[0],r=_[_.length-1];if(!N.includes(t)||!N.includes(r))return{ok:!1,reason:"charset"};const o=_.slice(1,-1);for(const g of o)if(!b.includes(g))return{ok:!1,reason:"charset"};const p=[t,...o.split(""),r];if(u.checkDigit){const g=O(p);if(g==null)return{ok:!1,reason:"checkDigit"};p.splice(p.length-1,0,g);const h=p.map(F),T=`${_.slice(0,-1)}${g}${r}`;return{ok:!0,modules:U(h,1),text:T}}const A=p.map(F);return{ok:!0,modules:U(A,1),text:_}}}),Ne("packages/dom/src/cell/renderers/barcode/code32.js",function(S,q){"use strict";Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"decodeCode32Modules",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return u}});const U=q("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,$=2,Q="010010100",b={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"},N="0123456789BCDFGHJKLMNPQRSTUVWXYZ",y=d=>d.split("").map(_=>_==="1"?$:1),C=d=>b[d]?y(b[d]):null,F=()=>y(Q);function O(d){let _=0;for(let t=0;t<8;t++){const r=t+1;let o=Number(d[t]);r%2===0&&(o*=2,o>=10&&(o-=9)),_+=o}return _%10}function v(d,_){let t="",r=d;for(let o=0;o<_;o++)t=N[r%32]+t,r=Math.floor(r/32);return t}function f(d){const _=[];for(let A=0;A<d.length;A++)A===0||d[A]!==d[A-1]?_.push(1):_[_.length-1]++;const t=1,r=A=>A>t?"1":"0",o=[];let p=9;for(;p<_.length;){p+=1;const A=_.slice(p,p+9);if(A.length<9)break;const g=A.map(r).join(""),h=Object.keys(b).find(T=>b[T]===g);o.push(h??"?"),p+=9}return o.pop(),o}function u(d,_={}){const t=d==null?"":String(d);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const r=t.slice(0,8),o=O(r);let p;if(t.length===9){const l=Number(t[8]);if(l!==o)return{ok:!1,reason:"checkDigit"};p=l}else p=o;const A=`${r}${p}`,g=Number(A),T=`A${v(g,6)}`.split(""),c=[F()];for(const l of T){const a=C(l);if(!a)return{ok:!1,reason:"charset"};c.push(a)}return c.push(F()),{ok:!0,modules:U(c,1),text:A}}}),Ne("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(S,q){"use strict";Object.defineProperty(S,"gfMul",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"gfExp",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"generatorPoly",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"reedSolomon",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"SIZES",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"dataCodewords",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"errorCodewords",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"dataRegionSize",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"base256Mask",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"encodeBase256",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"padCodewords",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"utahPlacementOrder",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"diagonalWalkCoverage",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"placeCodewords",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"buildSymbol",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return n}});const e=301,U=new Uint8Array(512),$=new Uint8Array(256);{let s=1;for(let I=0;I<255;I++)U[I]=s,$[s]=I,s<<=1,s&256&&(s^=e);for(let I=255;I<512;I++)U[I]=U[I-255]}function Q(s,I){return s===0||I===0?0:U[$[s]+$[I]]}function b(s){return U[(s%255+255)%255]}function N(s){let I=new Uint8Array([1]);for(let z=0;z<s;z++){const Y=new Uint8Array(I.length+1);for(let B=0;B<I.length;B++)Y[B]^=I[B],Y[B+1]^=Q(I[B],b(z));I=Y}return I.subarray(1)}function y(s,I){const z=N(I),Y=new Uint8Array(I);for(let B=0;B<s.length;B++){const ee=s[B]^Y[0];if(Y.copyWithin(0,1),Y[I-1]=0,ee!==0)for(let oe=0;oe<I;oe++)Y[oe]^=Q(z[oe],ee)}return Y}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]},F=Object.keys(C).map(Number).sort((s,I)=>s-I);function O(s){const I=C[s];if(!I)throw new RangeError(`unsupported Data Matrix size ${s}`);return I[0]}function v(s){const I=C[s];if(!I)throw new RangeError(`unsupported Data Matrix size ${s}`);return I[1]}function f(s){return s-2}const u=129,d=231,_=s=>s>=48&&s<=57;function t(s){const I=[];let z=0;for(;z<s.length;){const Y=s[z],B=z+1<s.length?s[z+1]:-1;if(_(Y)&&_(B)){const ee=Y-48,oe=B-48;I.push(ee*10+oe+130),z+=2}else I.push(Y+1),z+=1}return I}function r(s,I){const z=149*I%255+1;return(s+z)%256}function o(s,I){if(s.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const z=[d,s.length];for(let Y=0;Y<s.length;Y++)z.push(r(s[Y],I+2+Y));return z}function p(s,I){if(s.length>I)throw new RangeError(`encoded stream (${s.length} codewords) exceeds capacity (${I})`);const z=s.slice();for(;z.length<I;)z.push(u);return z}function A(s){const I=new Array(s*s).fill(null),z=[],Y=(ye,le)=>ye>=0&&ye<s&&le>=0&&le<s,B=(ye,le)=>{if(!Y(ye,le))return;const w=ye*s+le;if(I[w]===null){const M={row:ye,col:le};I[w]=M,z.push(M)}},ee=(ye,le)=>{const w=D=>(D%s+s)%s,M=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[D,m]of M)B(w(ye+D),w(le+m))};let oe=4,H=0,Z=0;const G=s*s+64;do{for(;oe>=0&&H<s;)ee(oe,H),oe-=2,H+=2;for(oe+=1,H+=3;oe<s&&H>=0;)ee(oe,H),oe+=2,H-=2;oe+=3,H+=1}while((oe<s||H<s)&&Z++<G);const ge=z.length;for(let ye=0;ye<s;ye++)for(let le=0;le<s;le++)B(ye,le);return Object.defineProperty(z,"sweptCount",{value:z.length-ge,enumerable:!1}),z}function g(s){return A(s).sweptCount}function h(s,I){const z=A(I),Y=new Uint8Array(I*I);for(let B=0;B<z.length;B++){const ee=Math.floor(B/8);if(ee>=s.length)break;const oe=7-B%8,H=s[ee]>>>oe&1,{row:Z,col:G}=z[B];Y[Z*I+G]=H}return Y}function T(s,I){const z=I+2,Y=new Uint8Array(z*z),B=(oe,H,Z)=>{Y[oe*z+H]=Z},ee=z-1;for(let oe=0;oe<z;oe++)B(ee,oe,1);for(let oe=0;oe<z;oe++)B(oe,0,1);for(let oe=0;oe<z;oe++)B(0,oe,oe%2===0?1:0);for(let oe=0;oe<z;oe++)B(oe,z-1,oe%2===0?1:0);for(let oe=0;oe<I;oe++)for(let H=0;H<I;H++)Y[(oe+1)*z+(H+1)]=s[oe*I+H];return{size:z,modules:Y}}function c(s){const I=new Uint8Array(s.length);for(let z=0;z<s.length;z++)I[z]=s.charCodeAt(z)&255;return I}function l(s){for(let I=0;I<s.length;I++)if(s[I]>127)return!1;return!0}function a(s){for(const I of F)if(O(I)>=s)return I;return 0}function i(s,I={}){if(s==null||s==="")return{ok:!1,reason:"empty"};const z=String(s),Y=c(z),B=I&&I.encodation==="base256";if(!B&&!l(Y))return{ok:!1,reason:"charset"};let ee;if(B){if(Y.length>249)return{ok:!1,reason:"capacity"};ee=o(Y,1)}else ee=t(Y);const oe=I&&I.size;let H;if(oe!=null){if(!C[oe])return{ok:!1,reason:"capacity"};if(ee.length>O(oe))return{ok:!1,reason:"capacity"};H=oe}else if(H=a(ee.length),H===0)return{ok:!1,reason:"capacity"};const Z=O(H),G=p(ee,Z),ge=y(G,v(H)),ye=new Uint8Array(Z+ge.length);ye.set(G,0),ye.set(ge,Z);const le=f(H),w=h(ye,le),{modules:M}=T(w,le);return{ok:!0,matrix:{size:H,modules:M},text:z}}const n=i}),Ne("packages/dom/src/cell/renderers/barcode/index.js",function(S,q){"use strict";Object.defineProperty(S,"BARCODE_TYPES",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"encodeBarcode",{enumerable:!0,get:function(){return h}});const e=q("packages/dom/src/cell/renderers/barcode/code39.js"),U=e.encodeCode39,$=q("packages/dom/src/cell/renderers/barcode/ean.js"),Q=$.encodeEan13,b=$.encodeEan8,N=q("packages/dom/src/cell/renderers/barcode/upc.js"),y=N.encodeUpcA,C=N.encodeUpcE,F=q("packages/dom/src/cell/renderers/barcode/code93.js"),O=F.encodeCode93,v=q("packages/dom/src/cell/renderers/barcode/code128.js"),f=v.encodeCode128,u=q("packages/dom/src/cell/renderers/barcode/code11.js"),d=u.encodeCode11,_=q("packages/dom/src/cell/renderers/barcode/codabar.js"),t=_.encodeCodabar,r=q("packages/dom/src/cell/renderers/barcode/code32.js"),o=r.encodeCode32,p=q("packages/dom/src/cell/renderers/barcode/datamatrix.js"),A=p.encodeDataMatrix;Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return $.encodeEan13}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return $.encodeEan8}}),Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return N.encodeUpcA}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return N.encodeUpcE}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return F.encodeCode93}}),Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return v.encodeCode128}}),Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return u.encodeCode11}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return _.encodeCodabar}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return r.encodeCode32}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return p.encodeDataMatrix}});const g=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function h(T,c,l={}){switch(T){case"code39":return U(c,{checkDigit:l.checkDigit});case"code39ext":return U(c,{extended:!0,checkDigit:l.checkDigit});case"ean13":return Q(c);case"ean8":return b(c);case"upca":return y(c);case"upce":return C(c);case"code93":return O(c);case"code93ext":return O(c,{extended:!0});case"code128":return f(c);case"code11":return d(c);case"codabar":return t(c,{checkDigit:l.checkDigit});case"code32":return o(c);case"datamatrix":return A(c,{size:l.size,encodation:l.encodation});default:return{ok:!1,reason:"type"}}}}),Ne("packages/dom/src/cell/renderers/barcode/render.js",function(S,q){"use strict";Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"barsPathData",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"matrixPathData",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"paint",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"buildSvg",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"renderBarcode",{enumerable:!0,get:function(){return t}});const U=q("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,$="http://www.w3.org/2000/svg",Q=60,b=16,N=4;function y(r,o,p){p==null||p===!1?r.removeAttribute(o):r.setAttribute(o,String(p))}const C=new Set;function F(r,o){C.has(r)||(C.add(r),console.warn("[lattice]",o))}function O(r,o,p){const A=[];let g=0;for(;g<r.length;){if(!r[g]){g++;continue}let h=1;for(;g+h<r.length&&r[g+h];)h++;A.push(`M${g+o} 0h${h}v${p}h-${h}z`),g+=h}return A.join("")}function v(r,o){const{size:p,modules:A}=r,g=[];for(let h=0;h<p;h++){let T=0;for(;T<p;){if(!A[h*p+T]){T++;continue}let c=1;for(;T+c<p&&A[h*p+T+c];)c++;g.push(`M${T+o} ${h+o}h${c}v1h-${c}z`),T+=c}}return g.join("")}function f(r){const o=r&&typeof r=="object"?r:{};return{show:o.show!==!1,position:o.position==="top"?"top":"bottom",align:o.align==="left"||o.align==="right"?o.align:"center",margin:Number.isFinite(Number(o.margin))?Number(o.margin):2,font:typeof o.font=="string"&&o.font?o.font:"10px sans-serif"}}function u(r){const o=Math.floor(Number(r));return!Number.isFinite(o)||o<0?10:Math.min(40,o)}function d(r,o,p){const A=u(p.quietZone),g=f(p.text),h=g.show,T=!!o.matrix,c=T?o.matrix.size:o.modules.length,l=T?c+A*2:Q,a=h&&g.position==="top"?b+N:0,i=l+(h?b+N:0),n=c+A*2,s=Number(p.moduleWidth)||0,I=s>0?n*s:Number(p.width)||200,z=Number(p.height)||Math.round(I/n*i)||60;y(r.svg,"viewBox",`0 0 ${n} ${i}`),y(r.svg,"width",I),y(r.svg,"height",z);const Y=p.print?"#000000":p.foreground||"currentColor",B=p.print?"#ffffff":p.background;if(B?(y(r.background,"x",0),y(r.background,"y",0),y(r.background,"width",n),y(r.background,"height",i),r.background.setAttribute("fill",B),r.background.style.display=""):r.background.style.display="none",r.path.setAttribute("fill",Y),r.path.setAttribute("transform",`translate(0 ${a})`),r.path.setAttribute("d",T?v(o.matrix,A):O(o.modules,A,Q)),!h){r.text.style.display="none";return}r.text.style.display="",r.text.style.font=g.font,r.text.setAttribute("fill",Y),r.text.setAttribute("text-anchor",g.align==="left"?"start":g.align==="right"?"end":"middle");const ee=g.align==="left"?A:g.align==="right"?n-A:n/2,oe=g.position==="top"?b-g.margin:i-g.margin;y(r.text,"x",ee),y(r.text,"y",oe),r.text.textContent=o.text}function _(r){const o=r.createElementNS($,"svg");o.setAttribute("class","lat-barcode__svg"),o.setAttribute("focusable","false"),o.setAttribute("preserveAspectRatio","none");const p=r.createElementNS($,"rect");p.style.display="none";const A=r.createElementNS($,"path"),g=r.createElementNS($,"text");return o.appendChild(p),o.appendChild(A),o.appendChild(g),{svg:o,background:p,path:A,text:g}}function t(r,o){const p=r.ownerDocument,A=_(p);r.textContent="",r.appendChild(A.svg);const g=T=>{const c=T||{},l=String(c.type||"code39"),a=U(l,c.value,{checkDigit:c.checkDigit,size:c.size,encodation:c.encodation});if(!a.ok){F(`barcode:invalid:${l}`,`column "standalone" has a value that is not valid for the "${l}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),A.path.setAttribute("d","");return}d(A,a,c)};return g(o),{update:g,destroy:()=>{r.textContent=""}}}}),Ne("packages/modules/form/controls/barcode.js",function(S,q){"use strict";const U=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function b(N,y){const C=N.props&&N.props.source;if(!C)return N.value;const F=typeof y.form.getItem=="function"?y.form.getItem(C):null;return F&&typeof F.getValue=="function"?F.getValue():void 0}U("barcode",{kind:"display",build(N,y){const C=y.doc.createElement("span");C.className="lat-form__barcode";const F=Q(C,{...N.props,value:b(N,y)}),O=N.props&&N.props.source;if(O){const v=y.emitter.on("change",f=>{f&&f.name===O&&F.update({...N.props,value:f.value})});y.disposers.push(v)}return y.disposers.push(()=>F.destroy()),C._barcodeHandle=F,C},read(N,y,C){return b(y,C)},write(N,y,C){N._barcodeHandle&&N._barcodeHandle.update({...y.props,value:C})},state(){}})}),Ne("packages/modules/form/controls/speeddial.js",function(S,q){"use strict";Object.defineProperty(S,"injectSpeedDialStyles",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return a}});const U=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,N=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,y="lat-speeddial",C="data-lattice-speeddial-styles",F="http://www.w3.org/2000/svg",O=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),v=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),f=Object.freeze(["up","down","left","right"]);let u=0;function d(){const i=`
1637
1654
  .lat-form,
1638
1655
  .lat-speeddial[data-lattice-standalone]{
1639
1656
  --lattice-speeddial-primary-bg:#5a46d6;
@@ -1657,7 +1674,7 @@ ${s}
1657
1674
  --lattice-speeddial-danger-bg:#c22b2b;
1658
1675
  --lattice-speeddial-danger-fg:#ffffff;
1659
1676
  --lattice-speeddial-danger-border:#c22b2b;
1660
- }`,r=`
1677
+ }`,n=`
1661
1678
  @scope ([data-theme="dark"]){.lat-form,
1662
1679
  .lat-speeddial[data-lattice-standalone]{
1663
1680
  --lattice-speeddial-primary-bg:#7c68e8;
@@ -1705,8 +1722,8 @@ ${s}
1705
1722
  --lattice-speeddial-danger-bg:#e05b5b;
1706
1723
  --lattice-speeddial-danger-fg:#1c0606;
1707
1724
  --lattice-speeddial-danger-border:#e05b5b;
1708
- }}}`,i=v.map(B=>`
1709
- .${C}[data-variant='${B}'] .${C}__fab{ background:var(--lattice-speeddial-${B}-bg); border-color:var(--lattice-speeddial-${B}-border); color:var(--lattice-speeddial-${B}-fg); }`).join(`
1725
+ }}}`,s=v.map(I=>`
1726
+ .${y}[data-variant='${I}'] .${y}__fab{ background:var(--lattice-speeddial-${I}-bg); border-color:var(--lattice-speeddial-${I}-border); color:var(--lattice-speeddial-${I}-fg); }`).join(`
1710
1727
  `);return`
1711
1728
  .lat-speeddial{
1712
1729
  position:relative; box-sizing:border-box; min-width:0;
@@ -1758,7 +1775,7 @@ ${s}
1758
1775
  /* Inside a form the control cell gives the FAB its room. */
1759
1776
  .lat-form__control .lat-speeddial{ min-height:calc(var(--lat-sd-size) + var(--lat-sd-pad) * 2); }
1760
1777
 
1761
- .${C}__fab{
1778
+ .${y}__fab{
1762
1779
  position:absolute; z-index:2; pointer-events:auto;
1763
1780
  box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
1764
1781
  gap:calc(var(--lat-sd-pad) / 2);
@@ -1768,42 +1785,42 @@ ${s}
1768
1785
  padding:0; font:inherit; line-height:1; cursor:pointer; user-select:none;
1769
1786
  box-shadow:0 2px 8px color-mix(in srgb, var(--lattice-foreground) 25%, transparent);
1770
1787
  }
1771
- .${C}__fab[data-text='true']{ width:auto; padding:0 var(--lat-sd-pad); }
1772
- .${C}__fab:disabled{ cursor:not-allowed; opacity:.55; }
1773
- .${C}__fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
1774
- .${C}__fab-icon svg,
1775
- .${C}__fab-icon img{ width:calc(var(--lattice-control-size) * 1.5); height:calc(var(--lattice-control-size) * 1.5); display:block; }
1776
- .${C}__fab-icon img{ object-fit:contain; }
1777
- .${C}__fab-text{ font-weight:600; }
1788
+ .${y}__fab[data-text='true']{ width:auto; padding:0 var(--lat-sd-pad); }
1789
+ .${y}__fab:disabled{ cursor:not-allowed; opacity:.55; }
1790
+ .${y}__fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
1791
+ .${y}__fab-icon svg,
1792
+ .${y}__fab-icon img{ width:calc(var(--lattice-control-size) * 1.5); height:calc(var(--lattice-control-size) * 1.5); display:block; }
1793
+ .${y}__fab-icon img{ object-fit:contain; }
1794
+ .${y}__fab-text{ font-weight:600; }
1778
1795
 
1779
1796
  /* The eight anchor positions, in logical properties so RTL mirrors them. */
1780
- .${C}__fab[data-position='top-left']{ inset-block-start:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1781
- .${C}__fab[data-position='top-center']{ inset-block-start:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1782
- .${C}__fab[data-position='top-right']{ inset-block-start:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1783
- .${C}__fab[data-position='middle-left']{ inset-block-start:50%; inset-inline-start:var(--lat-sd-pad); transform:translateY(-50%); }
1784
- .${C}__fab[data-position='middle-right']{ inset-block-start:50%; inset-inline-end:var(--lat-sd-pad); transform:translateY(-50%); }
1785
- .${C}__fab[data-position='bottom-left']{ inset-block-end:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1786
- .${C}__fab[data-position='bottom-center']{ inset-block-end:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1787
- .${C}__fab[data-position='bottom-right']{ inset-block-end:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1797
+ .${y}__fab[data-position='top-left']{ inset-block-start:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1798
+ .${y}__fab[data-position='top-center']{ inset-block-start:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1799
+ .${y}__fab[data-position='top-right']{ inset-block-start:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1800
+ .${y}__fab[data-position='middle-left']{ inset-block-start:50%; inset-inline-start:var(--lat-sd-pad); transform:translateY(-50%); }
1801
+ .${y}__fab[data-position='middle-right']{ inset-block-start:50%; inset-inline-end:var(--lat-sd-pad); transform:translateY(-50%); }
1802
+ .${y}__fab[data-position='bottom-left']{ inset-block-end:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
1803
+ .${y}__fab[data-position='bottom-center']{ inset-block-end:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
1804
+ .${y}__fab[data-position='bottom-right']{ inset-block-end:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
1788
1805
 
1789
- .${C}[data-fixed='true'] .${C}__fab,
1790
- .${C}[data-fixed='true'] .${C}__menu,
1791
- .${C}[data-fixed='true'] .${C}__backdrop{ position:fixed; }
1806
+ .${y}[data-fixed='true'] .${y}__fab,
1807
+ .${y}[data-fixed='true'] .${y}__menu,
1808
+ .${y}[data-fixed='true'] .${y}__backdrop{ position:fixed; }
1792
1809
 
1793
- .${C}__backdrop{
1810
+ .${y}__backdrop{
1794
1811
  position:absolute; inset:0; z-index:1; pointer-events:auto; border:0; padding:0;
1795
1812
  background:color-mix(in srgb, var(--lattice-foreground) 12%, transparent);
1796
1813
  }
1797
- .${C}__backdrop[hidden]{ display:none; }
1814
+ .${y}__backdrop[hidden]{ display:none; }
1798
1815
 
1799
- .${C}__menu{
1816
+ .${y}__menu{
1800
1817
  position:absolute; z-index:3; display:flex; gap:var(--lat-sd-gap);
1801
1818
  pointer-events:none; box-sizing:border-box; padding:0; margin:0; list-style:none;
1802
1819
  }
1803
- .${C}__menu[hidden]{ display:none; }
1804
- .${C}__menu[data-mode='radial']{ left:0; top:0; width:0; height:0; overflow:visible; }
1820
+ .${y}__menu[hidden]{ display:none; }
1821
+ .${y}__menu[data-mode='radial']{ left:0; top:0; width:0; height:0; overflow:visible; }
1805
1822
 
1806
- .${C}__item{
1823
+ .${y}__item{
1807
1824
  position:relative; pointer-events:auto; box-sizing:border-box;
1808
1825
  display:inline-flex; align-items:center; justify-content:center; gap:calc(var(--lattice-space) / 2);
1809
1826
  height:var(--lat-sd-item-h); min-height:0; padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
@@ -1812,20 +1829,20 @@ ${s}
1812
1829
  font:inherit; line-height:1.2; cursor:pointer; user-select:none; white-space:nowrap;
1813
1830
  box-shadow:0 1px 4px color-mix(in srgb, var(--lattice-foreground) 18%, transparent);
1814
1831
  }
1815
- .${C}__item[data-icon-only='true']{ width:var(--lat-sd-item-h); padding:0; }
1816
- .${C}__item[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1817
- .${C}__item-icon{ display:inline-flex; align-items:center; justify-content:center; }
1818
- .${C}__item-icon svg,
1819
- .${C}__item-icon img{ width:var(--lattice-control-size); height:var(--lattice-control-size); display:block; }
1820
- .${C}__item-icon img{ object-fit:contain; }
1821
- .${C}__menu[data-mode='radial'] .${C}__item{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
1832
+ .${y}__item[data-icon-only='true']{ width:var(--lat-sd-item-h); padding:0; }
1833
+ .${y}__item[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1834
+ .${y}__item-icon{ display:inline-flex; align-items:center; justify-content:center; }
1835
+ .${y}__item-icon svg,
1836
+ .${y}__item-icon img{ width:var(--lattice-control-size); height:var(--lattice-control-size); display:block; }
1837
+ .${y}__item-icon img{ object-fit:contain; }
1838
+ .${y}__menu[data-mode='radial'] .${y}__item{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
1822
1839
 
1823
- .${C}__fab:focus-visible,
1824
- .${C}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1840
+ .${y}__fab:focus-visible,
1841
+ .${y}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1825
1842
 
1826
- ${s}
1827
1843
  ${i}
1828
- ${r}
1829
- `.trim()}function x(s){const r=s&&s.documentElement;if(!r||r.getAttribute(A))return;r.setAttribute(A,"1");const i=s.createElement("style");i.textContent=h(),(s.head||s.body||r).appendChild(i)}function t(s){return T.includes(s)?s:"bottom-right"}function n(s){return v.includes(s)?s:"primary"}function a(s,r){return f.includes(r)?r:s.startsWith("top-")?"down":s.startsWith("bottom-")?"up":s==="middle-left"?"right":"left"}function m(s){switch(s){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 E(s,r){const i=r&&typeof r=="object"?r:{},B=m(s),z=typeof i.startAngle=="number"?i.startAngle:B.startAngle,W=typeof i.endAngle=="number"?i.endAngle:B.endAngle,b=typeof i.offset=="number"&&i.offset>0?i.offset:0;return{startAngle:z,endAngle:W,offset:b,defaulted:i.startAngle==null&&i.endAngle==null}}function _(s,r){const i=L[r];if(!i)return null;const B=s.createElementNS(H,"svg");B.setAttribute("viewBox",i.viewBox||"0 0 16 16"),B.setAttribute("aria-hidden","true"),B.setAttribute("focusable","false");const z=i.paint==="stroke";for(const W of i.paths||[]){const b=s.createElementNS(H,"path");b.setAttribute("d",W),z?(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"),B.appendChild(b)}return B}function c(s,r){if(s==null)return null;if(typeof s=="object"&&s.nodeType)return s;if(typeof s!="string"||s==="")return null;const i=s;if(/^(https?:)?\/\//i.test(i)||/^data:/i.test(i)){const B=r.createElement("img");return B.src=i,B.alt="",B}return _(r,i)}function S(s,r,i){const B=s&&s.defaultView;return B&&B.CustomEvent?new B.CustomEvent(r,{bubbles:!0,detail:i}):{type:r,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:i,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function o(s){return Array.isArray(s)?s.map(r=>{const i=r&&typeof r=="object"?r:{};return{id:i.id,icon:i.icon,text:i.text,disabled:i.disabled===!0,render:typeof i.render=="function"?i.render:null}}):[]}function d(s,r){const i="var(--lat-sd-size)",B="var(--lat-sd-gap)",z="var(--lat-sd-pad)";if(r==="up"||r==="down"){const J={flexDirection:"column"};return s.endsWith("-left")?(J.insetInlineStart=z,J.alignItems="flex-start"):s.endsWith("-right")?(J.insetInlineEnd=z,J.alignItems="flex-end"):(J.left="50%",J.transform="translateX(-50%)",J.alignItems="center"),r==="down"?J.top=`calc(${z} + ${i} + ${B})`:J.bottom=`calc(${z} + ${i} + ${B})`,J}const b={flexDirection:"row"};return s.startsWith("top-")?(b.top=z,b.alignItems="flex-start"):s.startsWith("bottom-")?(b.bottom=z,b.alignItems="flex-end"):(b.top="50%",b.transform="translateY(-50%)",b.alignItems="center"),r==="right"?b.insetInlineStart=`calc(${z} + ${i} + ${B})`:b.insetInlineEnd=`calc(${z} + ${i} + ${B})`,b}function l(s,r={}){const i=r.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;i&&x(i);const B=typeof r.t=="function"?r.t:re,z=r.inForm===!0,W=r.emitter||null,b=r.itemName!=null?String(r.itemName):"",J=r.formItem||null,Q=t(r.position),ne=r.fixed===!0,Z=r.openOnHover===!0,Y=r.mode==="radial"?"radial":"linear",Ne=n(r.variant),ve=a(Q,r.direction),se=r.modal===!0,k=r.text!=null?String(r.text):"",I=r.openIcon!=null?r.openIcon:"plus",F=r.closeIcon!=null?r.closeIcon:"close",p=Y==="radial"?E(Q,r.radial):null;let D=r.disabled===!0,G=o(r.items);const R=i.createElement("div");R.className=C,R.setAttribute("data-variant",Ne),R.setAttribute("data-fixed",ne?"true":"false"),z||R.setAttribute("data-lattice-standalone","true");const ee=`lat-speeddial-menu-${u+=1}`,P=i.createElement("button");P.type="button",P.className=`${C}__fab`,P.setAttribute("data-position",Q),P.setAttribute("aria-haspopup","menu"),P.setAttribute("aria-expanded","false"),P.setAttribute("aria-controls",ee),k&&P.setAttribute("data-text","true");const N=i.createElement("span");if(N.className=`${C}__fab-icon`,N.setAttribute("aria-hidden","true"),P.appendChild(N),k){const fe=i.createElement("span");fe.className=`${C}__fab-text`,fe.textContent=k,P.appendChild(fe)}const y=i.createElement("div");y.className=`${C}__backdrop`,y.hidden=!0;const $=i.createElement("div");$.className=`${C}__menu`,$.setAttribute("role","menu"),$.setAttribute("aria-label",B("form.speeddial.menu")),$.id=ee,$.setAttribute("data-mode",Y),Y==="linear"&&$.setAttribute("data-direction",ve),$.hidden=!0,R.appendChild(y),R.appendChild($),R.appendChild(P);let w=!1;const V=[];let oe=!1;const ie=(fe,xe)=>{W?W.emit(fe,{name:b,item:J,...xe}):s.dispatchEvent(S(i,fe,xe))},_e=()=>k||B(w?"form.speeddial.close":"form.speeddial.open"),Oe=()=>{for(;N.firstChild;)N.removeChild(N.firstChild);const fe=c(w?F:I,i);fe&&N.appendChild(fe)},Se=(fe,xe)=>{const Te=i.createElement("button");Te.type="button",Te.className=`${C}__item`,Te.setAttribute("role","menuitem"),Te.setAttribute("tabindex","-1"),Te.dataset.index=String(xe);const Ue=fe.text!=null&&String(fe.text)!==""?String(fe.text):fe.id!=null?String(fe.id):"";Ue&&Te.setAttribute("aria-label",Ue),fe.disabled&&Te.setAttribute("aria-disabled","true");const qe=c(fe.icon,i),Qe=fe.text!=null?String(fe.text):"";if(typeof fe.render=="function"){const Le=fe.render(fe,xe);Le&&typeof Le=="object"&&Le.nodeType?Te.appendChild(Le):Te.textContent=Le!=null?String(Le):""}else{if(qe){const Le=i.createElement("span");Le.className=`${C}__item-icon`,Le.setAttribute("aria-hidden","true"),Le.appendChild(qe),Te.appendChild(Le)}if(Qe!==""){const Le=i.createElement("span");Le.className=`${C}__item-text`,Le.textContent=Qe,Te.appendChild(Le)}}Te.setAttribute("data-icon-only",qe!=null&&Qe===""?"true":"false"),Te.setAttribute("data-text-only",qe==null&&Qe!==""?"true":"false");const Ge=Le=>{Le.stopPropagation(),!(fe.disabled||D)&&(ie("itemClick",{item:fe,index:xe}),K(!1),P.focus())};Te.addEventListener("click",Ge),V.push(()=>Te.removeEventListener("click",Ge));const Je=Le=>{Le.key==="Escape"?(Le.preventDefault(),Le.stopPropagation(),K(!1),P.focus()):Le.key==="ArrowDown"||Le.key==="ArrowRight"?(Le.preventDefault(),de(xe,1)):(Le.key==="ArrowUp"||Le.key==="ArrowLeft")&&(Le.preventDefault(),de(xe,-1))};return Te.addEventListener("keydown",Je),V.push(()=>Te.removeEventListener("keydown",Je)),Te};let j=[];const te=()=>{for(;$.firstChild;)$.removeChild($.firstChild);j=G.map((fe,xe)=>Se(fe,xe));for(const fe of j)$.appendChild(fe);Oe()},ce=()=>{if(Y!=="radial"||!p)return;const fe=P.getBoundingClientRect(),xe=ne?0:R.getBoundingClientRect().left,Te=ne?0:R.getBoundingClientRect().top,Ue=fe.left+fe.width/2-xe,qe=fe.top+fe.height/2-Te,Qe=p.offset||Math.round(fe.width/2+28);let Ge=p.startAngle,Je=p.endAngle;if(p.defaulted&&getComputedStyle(R).direction==="rtl"){const We=180-Je;Je=180-Ge,Ge=We}const Le=j.length;j.forEach((We,Ze)=>{const st=(Le<=1?(Ge+Je)/2:Ge+(Je-Ge)*(Ze/(Le-1)))*Math.PI/180;We.style.left=`${Math.round(Ue+Qe*Math.cos(st))}px`,We.style.top=`${Math.round(qe-Qe*Math.sin(st))}px`})},K=(fe,xe={})=>{oe||D||w===fe||(w=fe,P.setAttribute("aria-expanded",w?"true":"false"),P.setAttribute("aria-label",_e()),$.hidden=!w,se&&(y.hidden=!w),Oe(),w?(ie("open",{}),ce(),xe.focusItems!==!1&&de(-1,1)):ie("close",{}))},de=(fe,xe)=>{const Te=j.length;if(Te===0)return;let Ue=fe===-1?xe>0?0:Te-1:(fe+xe+Te)%Te;for(let qe=0;qe<Te;qe+=1){if(!G[Ue].disabled){j[Ue].focus();return}Ue=(Ue+xe+Te)%Te}},ue=()=>{K(!0,{focusItems:!1})},be=()=>{w&&(K(!1),P.focus())},Ce=()=>{K(!w,{focusItems:!1})};if(Y==="linear"){const fe=d(Q,ve);for(const xe of Object.keys(fe))$.style[xe]=fe[xe]}const Ae=()=>{D||Ce()};P.addEventListener("click",Ae),V.push(()=>P.removeEventListener("click",Ae));const ye=()=>{Z&&!D&&K(!0,{focusItems:!1})};P.addEventListener("pointerenter",ye),V.push(()=>P.removeEventListener("pointerenter",ye));const me=()=>{Z&&w&&K(!1)};R.addEventListener("pointerleave",me),V.push(()=>R.removeEventListener("pointerleave",me));const we=fe=>{fe.stopPropagation(),be()};y.addEventListener("click",we),V.push(()=>y.removeEventListener("click",we));const q=fe=>{if(!w)return;const xe=fe.target;xe&&R.contains(xe)||be()};i.addEventListener("pointerdown",q,!0),V.push(()=>i.removeEventListener("pointerdown",q,!0));const $e=fe=>{!w||fe.key!=="Escape"||(fe.preventDefault(),be())};i.addEventListener("keydown",$e,!0),V.push(()=>i.removeEventListener("keydown",$e,!0));const he=fe=>{fe.key==="Escape"?w&&(fe.preventDefault(),fe.stopPropagation(),be()):fe.key==="ArrowDown"||fe.key==="ArrowRight"?(fe.preventDefault(),K(!0),de(-1,1)):(fe.key==="ArrowUp"||fe.key==="ArrowLeft")&&(fe.preventDefault(),K(!0),de(-1,-1))};P.addEventListener("keydown",he),V.push(()=>P.removeEventListener("keydown",he));const Me=fe=>{D=fe===!0,P.disabled=D,P.setAttribute("aria-disabled",D?"true":"false"),D&&w&&K(!1)},Fe={el:R,fab:P,menu:$,open:ue,close:be,toggle:Ce,setItems(fe){G=o(fe),te()},setDisabled:Me,destroy(){oe=!0;for(const fe of V.splice(0))fe();for(;R.firstChild;)R.removeChild(R.firstChild);R.parentNode&&R.parentNode.removeChild(R)}};return Me(D),te(),s.appendChild(R),s.__latSpeedDial=Fe,Fe}U("speeddial",{kind:"button",action:!0,build(s,r){const i=s.props||{},B=r.doc.createElement("div"),z=l(B,{items:i.speedDialItems||i.items,position:i.position,fixed:i.fixed,openOnHover:i.openOnHover,direction:i.direction,mode:s.mode,radial:i.radial,modal:i.modal,openIcon:i.openIcon,closeIcon:i.closeIcon,text:i.text!=null?i.text:s.label,variant:i.variant,disabled:s.disabled,t:r.t,doc:r.doc,inForm:!0,emitter:r.emitter,itemName:s.name,formItem:s});return r.disposers.push(()=>z.destroy()),B},read(){return null},write(){},state(s,r){const i=s&&s.__latSpeedDial;i&&i.setDisabled(r.disabled===!0)}})}),je("packages/modules/form/controls/index.js",function(M,X){"use strict";const e=X("packages/modules/form/controls/input.js"),U=X("packages/modules/form/controls/number.js"),O=X("packages/modules/form/controls/textarea.js"),re=X("packages/modules/form/controls/checkbox.js"),g=X("packages/modules/form/controls/button.js"),L=X("packages/modules/form/controls/buttons.js"),C=X("packages/modules/form/controls/text.js"),A=X("packages/modules/form/controls/combo.js"),H=X("packages/modules/form/controls/select.js"),T=X("packages/modules/form/controls/listbox.js"),v=X("packages/modules/form/controls/radiogroup.js"),f=X("packages/modules/form/controls/checkboxgroup.js"),u=X("packages/modules/form/controls/toggle.js"),h=X("packages/modules/form/controls/datepicker.js"),x=X("packages/modules/form/controls/daterange.js"),t=X("packages/modules/form/controls/file.js"),n=X("packages/modules/form/controls/richtext.js"),a=X("packages/modules/form/controls/rating.js"),m=X("packages/modules/form/controls/stage.js"),E=X("packages/modules/form/controls/chips.js"),_=X("packages/modules/form/controls/otp.js"),c=X("packages/modules/form/controls/color.js"),S=X("packages/modules/form/controls/barcode.js"),o=X("packages/modules/form/controls/speeddial.js")}),je("packages/modules/form/create.js",function(M,X){"use strict";Object.defineProperty(M,"createForm",{enumerable:!0,get:function(){return B}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return z}});const e=X("packages/modules/form/styles.js"),U=e.NS,O=e.injectStyles,re=X("packages/modules/form/model.js"),g=re.resolveConfig,L=re.DENSITIES,C=re.cssSize,A=X("packages/modules/form/view.js"),H=A.markValidation,T=A.mount,v=A.runValidation,f=A.validateItem,u=A.wizardBack,h=A.wizardGoTo,x=A.wizardNext,t=X("packages/modules/form/emitter.js"),n=t.Emitter,a=t.FORM_EVENTS,E=X("packages/modules/form/messages.js").createTranslator,_=X("packages/modules/form/bind.js"),c=_.resolveBind,S=_.applyBinding,d=X("packages/modules/form/rules.js").applyRules,s=X("packages/modules/form/state.js").syncRecordState,r=X("packages/modules/form/controls/index.js");function i(W){if(Array.isArray(W))return W.map(i);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,J=b!=null&&Array.isArray(W.items),Q={};for(const ne of Object.keys(W))J&&ne==="items"||(Q[ne]=i(W[ne]));return J&&(Q[b]=W.items.map(i)),Q}function B(W,b={}){const J=W&&W.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,Q=c(b);let ne=b;if(Q){if(ne={...b},ne.density===void 0){const F=Q.density();F!=null&&(ne.density=F)}if(!(Array.isArray(ne.rows)&&ne.rows.length||Array.isArray(ne.cols)&&ne.cols.length)){const F=Q.items();F.length&&(ne.rows=[{items:F}])}}const Z=g(i(ne)),Y={el:W||null,doc:J,model:Z,config:Z,items:new Map,order:[],emitter:new n,t:E(Z.messages).t,uidSeq:0,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},Ne=I=>(I.facade||(I.facade={el:I.el,item:I.item,name:I.item.name,getValue(){return I.value},setValue(F){return I.def.write(I.control,F),I.value=I.def.read(I.control),I.item.value=I.value,d(Y),I.facade},show(){return I.hidden=!1,I.el.hidden=!1,I.facade},hide(){return I.hidden=!0,I.el.hidden=!0,I.facade},isVisible(){return!(I.hidden||I.ruleHidden)},disable(){return I.item.disabled=!0,s(I),I.facade},enable(){return I.item.disabled=!1,s(I),I.facade},focus(){return typeof I.def.focus=="function"?I.def.focus(I.control):typeof I.control.focus=="function"&&I.control.focus(),I.facade},blur(){return typeof I.def.blur=="function"?I.def.blur(I.control):typeof I.control.blur=="function"&&I.control.blur(),I.facade},validate(){return f(Y,I)},setLoading(F){return typeof I.def.setLoading=="function"&&I.def.setLoading(I.control,F===!0),I.facade}}),I.facade);W&&J&&O(J);const ve=W&&typeof W.style.cssText=="string"?W.style.cssText:"",se=new Set(["field","toggle","display"]),k={el:W||null,config:Z,getItem(I){const F=Y.items.get(String(I));return F?Ne(F):void 0},getValue(){const I={};for(const F of Y.order)F.item.name!=null&&se.has(F.def.kind)&&(I[F.item.name]=F.value);return I},setValue(I){if(I==null||typeof I!="object")return k;for(const F of Object.keys(I)){const p=Y.items.get(F);p&&Ne(p).setValue(I[F])}return k},clear(){for(const I of Y.order)if(I.item.name!=null)if(I.def.kind==="field"){const F=I.item.props&&I.item.props.multiple===!0,p=I.item.type==="chips"?F?[]:null:I.item.type==="number"||I.item.type==="radiogroup"||I.item.type==="datepicker"||I.item.type==="stage"||I.item.type==="combo"&&!F?null:I.item.type==="rating"?0:I.item.type==="file"||I.item.type==="checkboxgroup"||(I.item.type==="select"||I.item.type==="combo")&&F?[]:"";I.value=p,I.item.value=p,I.def.write(I.control,p)}else I.def.kind==="toggle"&&(I.value=!1,I.item.value=!1,I.def.write(I.control,!1));return d(Y),k},validate(){const I=[];let F=!0;for(const p of Y.order){if(p.item.name==null||p.def.kind!=="field"&&p.def.kind!=="toggle"||p.item.disabled===!0||p.ruleHidden===!0||p.hidden===!0||(typeof p.def.reset=="function"&&p.def.reset(p.control,p.item),p.item.required!==!0&&p.item.validation==null&&typeof p.def.validate!="function"&&p.ruleRequired!==!0))continue;const D=v(Y,p);H(Y,p,D),D&&(F=!1,I.push({name:p.item.name,rule:D.code,message:D.message}))}return Y.emitter.emit("validated",{name:null,item:null,value:void 0,valid:F,failures:I}),F},forEach(I){for(const F of Y.order)I(Ne(F))},on(I,F){return I!=="*"&&!a.includes(I)?(console.warn(`lattice-form: "${I}" is not a form event and will never fire.`),()=>{}):Y.emitter.on(I,F)},off(I,F){Y.emitter.off(I,F)},setDensity(I){return L.includes(I)&&(Z.density=I,W&&W.setAttribute("data-density",I)),k},setReadOnly(I){for(const F of Y.order)F.item.readOnly=I===!0,s(F);return k},setDisabled(I){for(const F of Y.order)F.item.disabled=I===!0,s(F);return k},setSpacing(I){const F=I==null?null:C(I);return Z.spacing=F,W&&(F==null?W.style.removeProperty("--lattice-form-item-gap"):W.style.setProperty("--lattice-form-item-gap",F)),k},isDirty(I){return I==null?Y.dirty.size>0:Y.dirty.has(String(I))},isConflicted(I){return I==null?Y.conflicts.size>0:Y.conflicts.has(String(I))},save(){const I=Y.bound;if(!I)return!1;if(Y.dirty.size===0)return!0;const F={};for(const G of Y.dirty){const R=k.getItem(G);R&&(F[G]=R.getValue())}const p=I.save(F),D=G=>{if(!G)return!1;for(const R of Object.keys(F))Y.baseline[R]=F[R],Y.dirty.delete(R),Y.conflicts.delete(R);return!0};return p&&typeof p.then=="function"?p.then(D):D(p)},revert(){for(const I of Y.dirty){if(!Object.hasOwn(Y.baseline,I))continue;const F=Y.items.get(I);F&&Ne(F).setValue(Y.baseline[I])}return Y.dirty.clear(),Y.conflicts.clear(),k},_bind(I){return S(Y,k,I),k},_commit(I){for(const F of Object.keys(I||{}))Y.baseline[F]=I[F],Y.dirty.delete(F),Y.conflicts.delete(F)},get steps(){return Y.model.steps||[]},get activeStep(){return Y.wizard?Y.wizard.active:0},next(){return x(Y)},back(){return u(Y)},goToStep(I){return h(Y,I)},__reapplyRules(){return d(Y),k},destroy(){for(const F of Y.disposers.splice(0))F();Y.emitter.clear();const I=Y.el;if(I){for(;I.firstChild;)I.removeChild(I.firstChild);I.classList.remove(U),I.removeAttribute("data-density"),I.style.cssText=ve,I.__latticeForm===k&&(I.__latticeForm=null)}Y.items.clear(),Y.order.length=0,Y.dirty.clear(),Y.conflicts.clear(),Y.baseline={},Y.bound=null}};return W&&(W.__latticeForm=k),Y.form=k,W&&J&&T(Y),Q&&S(Y,k,Q),k}const z=B}),je("packages/modules/form/group.js",function(M,X){"use strict";Object.defineProperty(M,"GROUP_EVENTS",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return n}});const U=X("packages/modules/form/emitter.js").Emitter,re=X("packages/modules/form/bind-router.js").routerBinding,g=X("packages/modules/form/group-rules.js"),L=g.attachRuleResolver,C=g.detachRuleResolver,A=g.makeRuleResolver,H=g.reapplyMembers,T=Object.freeze(["change","validated"]),v=new Set;function f(a){const m={},E=a.getValue();for(const _ of Object.keys(E))a.isDirty(_)===!0&&(m[_]=E[_]);return m}function u(a,m){v.has(a)||(v.add(a),console.warn("[lattice]",m))}const h=new WeakMap;function x(a,m){let E=h.get(a);if(!E){const _=a.destroy;E={original:_,watchers:new Set},h.set(a,E),a.destroy=function(){const S=h.get(a)||E;for(const o of[...S.watchers])o.detach(a);return _.call(a)}}E.watchers.add(m)}function t(a,m={}){const E=[],_=new Map,c=new Map,S=new U,o=m&&typeof m.bind=="object"&&m.bind.router!=null?m.bind:null,d=o?re(o):null,l=()=>{_.clear(),c.clear();for(const z of E){const W=Object.keys(z.form.getValue());for(const b of W)_.has(b)?u(`form.group.duplicate-field:${b}`,`form group: the field "${b}" is owned by more than one form; the first one added wins.`):_.set(b,z);z.id!=null&&!c.has(z.id)&&c.set(z.id,z)}},s=A({owners:_,byId:c,warnOnce:u}),r=z=>{const W=E.findIndex(Q=>Q.form===z);if(W===-1)return!1;const[b]=E.splice(W,1);for(const Q of b.unsubs)Q();l();const J=h.get(z);return J&&(J.watchers.delete(i),J.watchers.size===0&&(h.delete(z),z.destroy=J.original)),C(z),typeof z.__reapplyRules=="function"&&z.__reapplyRules(),H(E),!0},i={detach:r},B={get forms(){return E.map(z=>z.form)},add(z,W){if(!z||typeof z!="object"||typeof z.getValue!="function"||E.some(ne=>ne.form===z))return B;const b={form:z,id:W&&W.id,unsubs:[],lastFailures:[]};E.push(b),d&&typeof z._bind=="function"&&z._bind(d);const J=ne=>{S.emit("change",{form:z,name:ne.name,value:ne.value}),H(E)},Q=ne=>{b.lastFailures=ne.failures||[],S.emit("validated",{form:z,valid:ne.valid})};return b.unsubs.push(z.on("change",J)),b.unsubs.push(z.on("validated",Q)),x(z,i),l(),L(z,s),H(E),B},remove(z){return r(z),B},getValue(){const z={};for(const W of E)Object.assign(z,W.form.getValue());return m.transform&&typeof m.transform.get=="function"?m.transform.get(z):z},setValue(z){if(m.transform&&typeof m.transform.set=="function")m.transform.set(z);else if(z!=null&&typeof z=="object")for(const W of Object.keys(z)){const b=_.get(W);b&&b.form.setValue({[W]:z[W]})}return H(E),B},getItem(z){const W=_.get(String(z));return W?W.form.getItem(z):void 0},validate(){let z=!0;const W=[];for(const b of E){b.form.validate()===!1&&(z=!1);for(const Q of b.lastFailures||[])W.push({form:b.form,name:Q.name})}if(!z){const b=W.find(J=>J.name!=null);if(b){const J=b.form.getItem(b.name);J&&(J.focus(),J.el&&typeof J.el.scrollIntoView=="function"&&J.el.scrollIntoView({block:"nearest"}))}}return z},setReadOnly(z){for(const W of E)W.form.setReadOnly(z===!0);return B},setDisabled(z){for(const W of E)W.form.setDisabled(z===!0);return B},clear(){for(const z of E)z.form.clear();return B},reset(){for(const z of E)typeof z.form.revert=="function"&&z.form.revert();return B},save(){if(!d)return!1;const z=E.map(Q=>({member:Q,changes:f(Q.form)})),W={};for(const Q of z)Object.assign(W,Q.changes);if(!Object.keys(W).length)return!0;const b=d.save(W),J=Q=>{if(!Q)return!1;for(const ne of z)ne.member.form&&typeof ne.member.form._commit=="function"&&ne.member.form._commit(ne.changes);return!0};return b&&typeof b.then=="function"?b.then(J):J(b)},isDirty(){return E.some(z=>z.form.isDirty()===!0)},on(z,W){return z!=="*"&&!T.includes(z)?(console.warn(`lattice-form: "${z}" is not a form group event and will never fire.`),()=>{}):S.on(z,W)},off(z,W){S.off(z,W)},destroy(){for(;E.length;){const z=E[E.length-1].form;r(z)}S.clear()}};if(Array.isArray(a))for(const z of a)B.add(z);else a&&typeof a=="object"&&typeof a.getValue=="function"&&B.add(a);return B}const n=t}),je("packages/modules/form/enhance.js",function(M,X){"use strict";Object.defineProperty(M,"itemForField",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"configForForm",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"enhanceForm",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return v}});const U=X("packages/modules/form/create.js").createForm,O=Object.freeze(["text","email","password","url"]);function re(f){const u=f&&f.type?String(f.type).toLowerCase():"";return u==="submit"||u==="image"||f&&f.tagName==="BUTTON"&&u!=="button"}function g(f){if(!f||!f.name)return!1;const u=f&&f.type?String(f.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||f.tagName==="BUTTON")}function L(f,u){if(typeof f.getAttribute=="function"){const h=f.getAttribute("data-label");if(h!=null&&h!=="")return h;const x=f.getAttribute("aria-label");if(x!=null&&x!=="")return x}if(f.id&&typeof u.querySelector=="function"){const h=u.querySelector(`label[for="${f.id}"]`);if(h&&h.textContent!=null){const x=String(h.textContent).trim();if(x)return x}}return String(f.name||"")}function C(f){return f.type==="checkbox"?f.checked===!0:f.value==null?"":f.value}function A(f,u){if(re(f)||!g(f))return null;const h=f.type?String(f.type).toLowerCase():"text",x={type:"input",name:f.name,label:L(f,u),value:C(f)};if(h==="number")x.type="number",f.min!=null&&f.min!==""&&(x.min=Number(f.min)),f.max!=null&&f.max!==""&&(x.max=Number(f.max)),f.step!=null&&f.step!==""&&(x.step=Number(f.step));else if(h==="checkbox")x.type="checkbox";else if(f.tagName==="TEXTAREA")x.type="textarea";else if(O.includes(h))x.subtype=h,(h==="email"||h==="url")&&(x.validation=h);else return null;if(f.placeholder!=null&&f.placeholder!==""&&(x.placeholder=f.placeholder),f.required===!0&&(x.required=!0),f.disabled===!0&&(x.disabled=!0),f.readOnly===!0&&(x.readOnly=!0),typeof f.getAttribute=="function"){const t=f.getAttribute("data-validation")||f.getAttribute("data-rule");t&&(x.validation=t);const n=f.getAttribute("data-error-message");n&&(x.errorMessage=n);const a=f.getAttribute("data-help");a&&(x.helpMessage=a)}return x}function H(f,u){const h=f&&f.ownerDocument||(typeof document<"u"?document:null),x=[],t=f&&f.elements?f.elements:[];for(const n of t){const a=A(n,h);a&&x.push(a)}return{...u||{},rows:x}}function T(f,u){if(!f)return null;if(f.__latticeForm)return f.__latticeForm;const h=f.ownerDocument||(typeof document<"u"?document:null),x=[],t=f.elements?f.elements:[];for(const a of t)re(a)&&x.push(a);const n=U(f,H(f,u));f.__latticeForm=n;for(const a of x)a.parentNode!==f&&f.appendChild(a);return typeof f.addEventListener=="function"&&h&&f.addEventListener("submit",a=>{n.validate()||(a.preventDefault(),a.stopImmediatePropagation())},!0),n}const v=T}),je("packages/modules/form/index.js",function(M,X){"use strict";Object.defineProperty(M,"registerControl",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"createForm",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return f}});const U=X("packages/modules/form/styles.js").NS,re=X("packages/modules/form/controls/registry.js").registerControl,L=X("packages/modules/form/create.js").createForm,C=X("packages/modules/form/controls/combo.js");Object.defineProperty(M,"createCombo",{enumerable:!0,get:function(){return C.createCombo}});const A=X("packages/modules/form/controls/speeddial.js");Object.defineProperty(M,"createSpeedDial",{enumerable:!0,get:function(){return A.createSpeedDial}});const H=X("packages/modules/form/group.js");Object.defineProperty(M,"createFormGroup",{enumerable:!0,get:function(){return H.createFormGroup}});const T=X("packages/modules/form/enhance.js");Object.defineProperty(M,"enhanceForm",{enumerable:!0,get:function(){return T.enhanceForm}});function v(u,h){if(h===null||typeof h!="object"||typeof h.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const x=typeof h.getValue=="function"?h.getValue:()=>null,t=typeof h.setValue=="function"?h.setValue:()=>{};re(String(u),{kind:"field",custom:!0,validate:typeof h.validate=="function"?(n,a,m)=>h.validate(m,a,n):void 0,destroy:typeof h.destroy=="function"?n=>h.destroy(n):void 0,build(n,a){const m=a.doc.createElement("div");m.className=`${U}__custom`;const E={name:n.name,item:n,getValue(){return E._read?E._read():void 0},setValue(_){E._write&&E._write(_)},onChange(_){E._commit&&E._commit(_===void 0?x():_)},onInput(_){E._input&&E._input(_===void 0?x():_)}};return m.__latticeFormApi=E,h.create(m,n,E),t(m,n.value),m},read(n){return x(n)},write(n,a){t(n,a)},state(n,a){n.setAttribute("data-disabled",a.disabled===!0?"true":"false"),n.setAttribute("data-readonly",a.readOnly===!0?"true":"false")}})}const f=L});var Tt=Bt("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=Tt:typeof define=="function"&&define.amd?define(function(){return Tt}):Gt.LatticeGridForm=Tt})(typeof globalThis<"u"?globalThis:this);
1844
+ ${s}
1845
+ ${n}
1846
+ `.trim()}function _(i){const n=i&&i.documentElement;if(!n||n.getAttribute(C))return;n.setAttribute(C,"1");const s=i.createElement("style");s.textContent=d(),(i.head||i.body||n).appendChild(s)}function t(i){return O.includes(i)?i:"bottom-right"}function r(i){return v.includes(i)?i:"primary"}function o(i,n){return f.includes(n)?n:i.startsWith("top-")?"down":i.startsWith("bottom-")?"up":i==="middle-left"?"right":"left"}function p(i){switch(i){case"top-left":return{startAngle:0,endAngle:-90};case"top-center":return{startAngle:225,endAngle:315};case"top-right":return{startAngle:180,endAngle:270};case"middle-left":return{startAngle:90,endAngle:-90};case"middle-right":return{startAngle:270,endAngle:90};case"bottom-left":return{startAngle:0,endAngle:90};case"bottom-center":return{startAngle:135,endAngle:45};case"bottom-right":return{startAngle:180,endAngle:90};default:return{startAngle:180,endAngle:90}}}function A(i,n){const s=n&&typeof n=="object"?n:{},I=p(i),z=typeof s.startAngle=="number"?s.startAngle:I.startAngle,Y=typeof s.endAngle=="number"?s.endAngle:I.endAngle,B=typeof s.offset=="number"&&s.offset>0?s.offset:0;return{startAngle:z,endAngle:Y,offset:B,defaulted:s.startAngle==null&&s.endAngle==null}}function g(i,n){const s=N[n];if(!s)return null;const I=i.createElementNS(F,"svg");I.setAttribute("viewBox",s.viewBox||"0 0 16 16"),I.setAttribute("aria-hidden","true"),I.setAttribute("focusable","false");const z=s.paint==="stroke";for(const Y of s.paths||[]){const B=i.createElementNS(F,"path");B.setAttribute("d",Y),z?(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"),I.appendChild(B)}return I}function h(i,n){if(i==null)return null;if(typeof i=="object"&&i.nodeType)return i;if(typeof i!="string"||i==="")return null;const s=i;if(/^(https?:)?\/\//i.test(s)||/^data:/i.test(s)){const I=n.createElement("img");return I.src=s,I.alt="",I}return g(n,s)}function T(i,n,s){const I=i&&i.defaultView;return I&&I.CustomEvent?new I.CustomEvent(n,{bubbles:!0,detail:s}):{type:n,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:s,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function c(i){return Array.isArray(i)?i.map(n=>{const s=n&&typeof n=="object"?n:{};return{id:s.id,icon:s.icon,text:s.text,disabled:s.disabled===!0,render:typeof s.render=="function"?s.render:null}}):[]}function l(i,n){const s="var(--lat-sd-size)",I="var(--lat-sd-gap)",z="var(--lat-sd-pad)";if(n==="up"||n==="down"){const ee={flexDirection:"column"};return i.endsWith("-left")?(ee.insetInlineStart=z,ee.alignItems="flex-start"):i.endsWith("-right")?(ee.insetInlineEnd=z,ee.alignItems="flex-end"):(ee.left="50%",ee.transform="translateX(-50%)",ee.alignItems="center"),n==="down"?ee.top=`calc(${z} + ${s} + ${I})`:ee.bottom=`calc(${z} + ${s} + ${I})`,ee}const B={flexDirection:"row"};return i.startsWith("top-")?(B.top=z,B.alignItems="flex-start"):i.startsWith("bottom-")?(B.bottom=z,B.alignItems="flex-end"):(B.top="50%",B.transform="translateY(-50%)",B.alignItems="center"),n==="right"?B.insetInlineStart=`calc(${z} + ${s} + ${I})`:B.insetInlineEnd=`calc(${z} + ${s} + ${I})`,B}function a(i,n={}){const s=n.doc||i&&i.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;s&&_(s);const I=typeof n.t=="function"?n.t:Q,z=n.inForm===!0,Y=n.emitter||null,B=n.itemName!=null?String(n.itemName):"",ee=n.formItem||null,oe=t(n.position),H=n.fixed===!0,Z=n.openOnHover===!0,G=n.mode==="radial"?"radial":"linear",ge=r(n.variant),ye=o(oe,n.direction),le=n.modal===!0,w=n.text!=null?String(n.text):"",M=n.openIcon!=null?n.openIcon:"plus",D=n.closeIcon!=null?n.closeIcon:"close",m=G==="radial"?A(oe,n.radial):null;let P=n.disabled===!0,X=c(n.items);const L=s.createElement("div");L.className=y,L.setAttribute("data-variant",ge),L.setAttribute("data-fixed",H?"true":"false"),z||L.setAttribute("data-lattice-standalone","true");const te=`lat-speeddial-menu-${u+=1}`,re=s.createElement("button");re.type="button",re.className=`${y}__fab`,re.setAttribute("data-position",oe),re.setAttribute("aria-haspopup","menu"),re.setAttribute("aria-expanded","false"),re.setAttribute("aria-controls",te),w&&re.setAttribute("data-text","true");const j=s.createElement("span");if(j.className=`${y}__fab-icon`,j.setAttribute("aria-hidden","true"),re.appendChild(j),w){const fe=s.createElement("span");fe.className=`${y}__fab-text`,fe.textContent=w,re.appendChild(fe)}const x=s.createElement("div");x.className=`${y}__backdrop`,x.hidden=!0;const K=s.createElement("div");K.className=`${y}__menu`,K.setAttribute("role","menu"),K.setAttribute("aria-label",I("form.speeddial.menu")),K.id=te,K.setAttribute("data-mode",G),G==="linear"&&K.setAttribute("data-direction",ye),K.hidden=!0,L.appendChild(x),L.appendChild(K),L.appendChild(re);let V=!1;const E=[];let W=!1;const R=(fe,_e)=>{Y?Y.emit(fe,{name:B,item:ee,..._e}):i.dispatchEvent(T(s,fe,_e))},ce=()=>w||I(V?"form.speeddial.close":"form.speeddial.open"),me=()=>{for(;j.firstChild;)j.removeChild(j.firstChild);const fe=h(V?D:M,s);fe&&j.appendChild(fe)},xe=(fe,_e)=>{const Oe=s.createElement("button");Oe.type="button",Oe.className=`${y}__item`,Oe.setAttribute("role","menuitem"),Oe.setAttribute("tabindex","-1"),Oe.dataset.index=String(_e);const Te=fe.text!=null&&String(fe.text)!==""?String(fe.text):fe.id!=null?String(fe.id):"";Te&&Oe.setAttribute("aria-label",Te),fe.disabled&&Oe.setAttribute("aria-disabled","true");const Pe=h(fe.icon,s),tt=fe.text!=null?String(fe.text):"";if(typeof fe.render=="function"){const Be=fe.render(fe,_e);Be&&typeof Be=="object"&&Be.nodeType?Oe.appendChild(Be):Oe.textContent=Be!=null?String(Be):""}else{if(Pe){const Be=s.createElement("span");Be.className=`${y}__item-icon`,Be.setAttribute("aria-hidden","true"),Be.appendChild(Pe),Oe.appendChild(Be)}if(tt!==""){const Be=s.createElement("span");Be.className=`${y}__item-text`,Be.textContent=tt,Oe.appendChild(Be)}}Oe.setAttribute("data-icon-only",Pe!=null&&tt===""?"true":"false"),Oe.setAttribute("data-text-only",Pe==null&&tt!==""?"true":"false");const Ze=Be=>{Be.stopPropagation(),!(fe.disabled||P)&&(R("itemClick",{item:fe,index:_e}),J(!1),re.focus())};Oe.addEventListener("click",Ze),E.push(()=>Oe.removeEventListener("click",Ze));const Je=Be=>{Be.key==="Escape"?(Be.preventDefault(),Be.stopPropagation(),J(!1),re.focus()):Be.key==="ArrowDown"||Be.key==="ArrowRight"?(Be.preventDefault(),ue(_e,1)):(Be.key==="ArrowUp"||Be.key==="ArrowLeft")&&(Be.preventDefault(),ue(_e,-1))};return Oe.addEventListener("keydown",Je),E.push(()=>Oe.removeEventListener("keydown",Je)),Oe};let k=[];const ne=()=>{for(;K.firstChild;)K.removeChild(K.firstChild);k=X.map((fe,_e)=>xe(fe,_e));for(const fe of k)K.appendChild(fe);me()},se=()=>{if(G!=="radial"||!m)return;const fe=re.getBoundingClientRect(),_e=H?0:L.getBoundingClientRect().left,Oe=H?0:L.getBoundingClientRect().top,Te=fe.left+fe.width/2-_e,Pe=fe.top+fe.height/2-Oe,tt=m.offset||Math.round(fe.width/2+28);let Ze=m.startAngle,Je=m.endAngle;if(m.defaulted&&getComputedStyle(L).direction==="rtl"){const Qe=180-Je;Je=180-Ze,Ze=Qe}const Be=k.length;k.forEach((Qe,lt)=>{const Ye=(Be<=1?(Ze+Je)/2:Ze+(Je-Ze)*(lt/(Be-1)))*Math.PI/180;Qe.style.left=`${Math.round(Te+tt*Math.cos(Ye))}px`,Qe.style.top=`${Math.round(Pe-tt*Math.sin(Ye))}px`})},J=(fe,_e={})=>{W||P||V===fe||(V=fe,re.setAttribute("aria-expanded",V?"true":"false"),re.setAttribute("aria-label",ce()),K.hidden=!V,le&&(x.hidden=!V),me(),V?(R("open",{}),se(),_e.focusItems!==!1&&ue(-1,1)):R("close",{}))},ue=(fe,_e)=>{const Oe=k.length;if(Oe===0)return;let Te=fe===-1?_e>0?0:Oe-1:(fe+_e+Oe)%Oe;for(let Pe=0;Pe<Oe;Pe+=1){if(!X[Te].disabled){k[Te].focus();return}Te=(Te+_e+Oe)%Oe}},he=()=>{J(!0,{focusItems:!1})},be=()=>{V&&(J(!1),re.focus())},Ee=()=>{J(!V,{focusItems:!1})};if(G==="linear"){const fe=l(oe,ye);for(const _e of Object.keys(fe))K.style[_e]=fe[_e]}const Se=()=>{P||Ee()};re.addEventListener("click",Se),E.push(()=>re.removeEventListener("click",Se));const Ae=()=>{Z&&!P&&J(!0,{focusItems:!1})};re.addEventListener("pointerenter",Ae),E.push(()=>re.removeEventListener("pointerenter",Ae));const Ce=()=>{Z&&V&&J(!1)};L.addEventListener("pointerleave",Ce),E.push(()=>L.removeEventListener("pointerleave",Ce));const we=fe=>{fe.stopPropagation(),be()};x.addEventListener("click",we),E.push(()=>x.removeEventListener("click",we));const ke=fe=>{if(!V)return;const _e=fe.target;_e&&L.contains(_e)||be()};s.addEventListener("pointerdown",ke,!0),E.push(()=>s.removeEventListener("pointerdown",ke,!0));const Le=fe=>{!V||fe.key!=="Escape"||(fe.preventDefault(),be())};s.addEventListener("keydown",Le,!0),E.push(()=>s.removeEventListener("keydown",Le,!0));const De=fe=>{fe.key==="Escape"?V&&(fe.preventDefault(),fe.stopPropagation(),be()):fe.key==="ArrowDown"||fe.key==="ArrowRight"?(fe.preventDefault(),J(!0),ue(-1,1)):(fe.key==="ArrowUp"||fe.key==="ArrowLeft")&&(fe.preventDefault(),J(!0),ue(-1,-1))};re.addEventListener("keydown",De),E.push(()=>re.removeEventListener("keydown",De));const He=fe=>{P=fe===!0,re.disabled=P,re.setAttribute("aria-disabled",P?"true":"false"),P&&V&&J(!1)},de={el:L,fab:re,menu:K,open:he,close:be,toggle:Ee,setItems(fe){X=c(fe),ne()},setDisabled:He,destroy(){W=!0;for(const fe of E.splice(0))fe();for(;L.firstChild;)L.removeChild(L.firstChild);L.parentNode&&L.parentNode.removeChild(L)}};return He(P),ne(),i.appendChild(L),i.__latSpeedDial=de,de}U("speeddial",{kind:"button",action:!0,build(i,n){const s=i.props||{},I=n.doc.createElement("div"),z=a(I,{items:s.speedDialItems||s.items,position:s.position,fixed:s.fixed,openOnHover:s.openOnHover,direction:s.direction,mode:i.mode,radial:s.radial,modal:s.modal,openIcon:s.openIcon,closeIcon:s.closeIcon,text:s.text!=null?s.text:i.label,variant:s.variant,disabled:i.disabled,t:n.t,doc:n.doc,inForm:!0,emitter:n.emitter,itemName:i.name,formItem:i});return n.disposers.push(()=>z.destroy()),I},read(){return null},write(){},state(i,n){const s=i&&i.__latSpeedDial;s&&s.setDisabled(n.disabled===!0)}})}),Ne("packages/modules/form/controls/index.js",function(S,q){"use strict";const e=q("packages/modules/form/controls/input.js"),U=q("packages/modules/form/controls/number.js"),$=q("packages/modules/form/controls/textarea.js"),Q=q("packages/modules/form/controls/checkbox.js"),b=q("packages/modules/form/controls/button.js"),N=q("packages/modules/form/controls/buttons.js"),y=q("packages/modules/form/controls/text.js"),C=q("packages/modules/form/controls/combo.js"),F=q("packages/modules/form/controls/select.js"),O=q("packages/modules/form/controls/listbox.js"),v=q("packages/modules/form/controls/radiogroup.js"),f=q("packages/modules/form/controls/checkboxgroup.js"),u=q("packages/modules/form/controls/toggle.js"),d=q("packages/modules/form/controls/datepicker.js"),_=q("packages/modules/form/controls/daterange.js"),t=q("packages/modules/form/controls/file.js"),r=q("packages/modules/form/controls/richtext.js"),o=q("packages/modules/form/controls/rating.js"),p=q("packages/modules/form/controls/stage.js"),A=q("packages/modules/form/controls/chips.js"),g=q("packages/modules/form/controls/otp.js"),h=q("packages/modules/form/controls/color.js"),T=q("packages/modules/form/controls/barcode.js"),c=q("packages/modules/form/controls/speeddial.js")}),Ne("packages/modules/form/create.js",function(S,q){"use strict";Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return z}});const e=q("packages/modules/form/styles.js"),U=e.NS,$=e.injectStyles,Q=q("packages/modules/form/model.js"),b=Q.resolveConfig,N=Q.DENSITIES,y=Q.cssSize,C=q("packages/modules/form/view.js"),F=C.markValidation,O=C.mount,v=C.runValidation,f=C.validateItem,u=C.wizardBack,d=C.wizardGoTo,_=C.wizardNext,t=q("packages/modules/form/emitter.js"),r=t.Emitter,o=t.FORM_EVENTS,A=q("packages/modules/form/messages.js").createTranslator,g=q("packages/modules/form/bind.js"),h=g.resolveBind,T=g.applyBinding,l=q("packages/modules/form/rules.js").applyRules,i=q("packages/modules/form/state.js").syncRecordState,n=q("packages/modules/form/controls/index.js");function s(Y){if(Array.isArray(Y))return Y.map(s);if(Y==null||typeof Y!="object"||typeof Y.nodeType=="number"||Object.getPrototypeOf(Y)!==Object.prototype)return Y;const B=Y.type==="buttons"?"buttons":Y.type==="speeddial"?"speedDialItems":null,ee=B!=null&&Array.isArray(Y.items),oe={};for(const H of Object.keys(Y))ee&&H==="items"||(oe[H]=s(Y[H]));return ee&&(oe[B]=Y.items.map(s)),oe}function I(Y,B={}){const ee=Y&&Y.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,oe=h(B);let H=B;if(oe){if(H={...B},H.density===void 0){const D=oe.density();D!=null&&(H.density=D)}if(!(Array.isArray(H.rows)&&H.rows.length||Array.isArray(H.cols)&&H.cols.length)){const D=oe.items();D.length&&(H.rows=[{items:D}])}}const Z=b(s(H)),G={el:Y||null,doc:ee,model:Z,config:Z,items:new Map,order:[],emitter:new r,t:A(Z.messages).t,uidSeq:0,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ge=M=>(M.facade||(M.facade={el:M.el,item:M.item,name:M.item.name,getValue(){return M.value},setValue(D){return M.def.write(M.control,D),M.value=M.def.read(M.control),M.item.value=M.value,l(G),M.facade},show(){return M.hidden=!1,M.el.hidden=!1,M.facade},hide(){return M.hidden=!0,M.el.hidden=!0,M.facade},isVisible(){return!(M.hidden||M.ruleHidden)},disable(){return M.item.disabled=!0,i(M),M.facade},enable(){return M.item.disabled=!1,i(M),M.facade},focus(){return typeof M.def.focus=="function"?M.def.focus(M.control):typeof M.control.focus=="function"&&M.control.focus(),M.facade},blur(){return typeof M.def.blur=="function"?M.def.blur(M.control):typeof M.control.blur=="function"&&M.control.blur(),M.facade},validate(){return f(G,M)},setLoading(D){return typeof M.def.setLoading=="function"&&M.def.setLoading(M.control,D===!0),M.facade}}),M.facade);Y&&ee&&$(ee);const ye=Y&&typeof Y.style.cssText=="string"?Y.style.cssText:"",le=new Set(["field","toggle","display"]),w={el:Y||null,config:Z,getItem(M){const D=G.items.get(String(M));return D?ge(D):void 0},getValue(){const M={};for(const D of G.order)D.item.name!=null&&le.has(D.def.kind)&&(M[D.item.name]=D.value);return M},setValue(M){if(M==null||typeof M!="object")return w;for(const D of Object.keys(M)){const m=G.items.get(D);m&&ge(m).setValue(M[D])}return w},clear(){for(const M of G.order)if(M.item.name!=null)if(M.def.kind==="field"){const D=M.item.props&&M.item.props.multiple===!0,m=M.item.type==="chips"?D?[]:null:M.item.type==="number"||M.item.type==="radiogroup"||M.item.type==="datepicker"||M.item.type==="stage"||M.item.type==="combo"&&!D?null:M.item.type==="rating"?0:M.item.type==="file"||M.item.type==="checkboxgroup"||(M.item.type==="select"||M.item.type==="combo")&&D?[]:"";M.value=m,M.item.value=m,M.def.write(M.control,m)}else M.def.kind==="toggle"&&(M.value=!1,M.item.value=!1,M.def.write(M.control,!1));return l(G),w},validate(){const M=[];let D=!0;for(const m of G.order){if(m.item.name==null||m.def.kind!=="field"&&m.def.kind!=="toggle"||m.item.disabled===!0||m.ruleHidden===!0||m.hidden===!0||(typeof m.def.reset=="function"&&m.def.reset(m.control,m.item),m.item.required!==!0&&m.item.validation==null&&typeof m.def.validate!="function"&&m.ruleRequired!==!0))continue;const P=v(G,m);F(G,m,P),P&&(D=!1,M.push({name:m.item.name,rule:P.code,message:P.message}))}return G.emitter.emit("validated",{name:null,item:null,value:void 0,valid:D,failures:M}),D},forEach(M){for(const D of G.order)M(ge(D))},on(M,D){return M!=="*"&&!o.includes(M)?(console.warn(`lattice-form: "${M}" is not a form event and will never fire.`),()=>{}):G.emitter.on(M,D)},off(M,D){G.emitter.off(M,D)},setDensity(M){return N.includes(M)&&(Z.density=M,Y&&Y.setAttribute("data-density",M)),w},setReadOnly(M){for(const D of G.order)D.item.readOnly=M===!0,i(D);return w},setDisabled(M){for(const D of G.order)D.item.disabled=M===!0,i(D);return w},setSpacing(M){const D=M==null?null:y(M);return Z.spacing=D,Y&&(D==null?Y.style.removeProperty("--lattice-form-item-gap"):Y.style.setProperty("--lattice-form-item-gap",D)),w},isDirty(M){return M==null?G.dirty.size>0:G.dirty.has(String(M))},isConflicted(M){return M==null?G.conflicts.size>0:G.conflicts.has(String(M))},save(){const M=G.bound;if(!M)return!1;if(G.dirty.size===0)return!0;const D={};for(const X of G.dirty){const L=w.getItem(X);L&&(D[X]=L.getValue())}const m=M.save(D),P=X=>{if(!X)return!1;for(const L of Object.keys(D))G.baseline[L]=D[L],G.dirty.delete(L),G.conflicts.delete(L);return!0};return m&&typeof m.then=="function"?m.then(P):P(m)},revert(){for(const M of G.dirty){if(!Object.hasOwn(G.baseline,M))continue;const D=G.items.get(M);D&&ge(D).setValue(G.baseline[M])}return G.dirty.clear(),G.conflicts.clear(),w},_bind(M){return T(G,w,M),w},_commit(M){for(const D of Object.keys(M||{}))G.baseline[D]=M[D],G.dirty.delete(D),G.conflicts.delete(D)},get steps(){return G.model.steps||[]},get activeStep(){return G.wizard?G.wizard.active:0},next(){return _(G)},back(){return u(G)},goToStep(M){return d(G,M)},__reapplyRules(){return l(G),w},destroy(){for(const D of G.disposers.splice(0))D();G.emitter.clear();const M=G.el;if(M){for(;M.firstChild;)M.removeChild(M.firstChild);M.classList.remove(U),M.removeAttribute("data-density"),M.style.cssText=ye,M.__latticeForm===w&&(M.__latticeForm=null)}G.items.clear(),G.order.length=0,G.dirty.clear(),G.conflicts.clear(),G.baseline={},G.bound=null}};return Y&&(Y.__latticeForm=w),G.form=w,Y&&ee&&O(G),oe&&T(G,w,oe),w}const z=I}),Ne("packages/modules/form/group.js",function(S,q){"use strict";Object.defineProperty(S,"GROUP_EVENTS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return r}});const U=q("packages/modules/form/emitter.js").Emitter,Q=q("packages/modules/form/bind-router.js").routerBinding,b=q("packages/modules/form/group-rules.js"),N=b.attachRuleResolver,y=b.detachRuleResolver,C=b.makeRuleResolver,F=b.reapplyMembers,O=Object.freeze(["change","validated"]),v=new Set;function f(o){const p={},A=o.getValue();for(const g of Object.keys(A))o.isDirty(g)===!0&&(p[g]=A[g]);return p}function u(o,p){v.has(o)||(v.add(o),console.warn("[lattice]",p))}const d=new WeakMap;function _(o,p){let A=d.get(o);if(!A){const g=o.destroy;A={original:g,watchers:new Set},d.set(o,A),o.destroy=function(){const T=d.get(o)||A;for(const c of[...T.watchers])c.detach(o);return g.call(o)}}A.watchers.add(p)}function t(o,p={}){const A=[],g=new Map,h=new Map,T=new U,c=p&&typeof p.bind=="object"&&p.bind.router!=null?p.bind:null,l=c?Q(c):null,a=()=>{g.clear(),h.clear();for(const z of A){const Y=Object.keys(z.form.getValue());for(const B of Y)g.has(B)?u(`form.group.duplicate-field:${B}`,`form group: the field "${B}" is owned by more than one form; the first one added wins.`):g.set(B,z);z.id!=null&&!h.has(z.id)&&h.set(z.id,z)}},i=C({owners:g,byId:h,warnOnce:u}),n=z=>{const Y=A.findIndex(oe=>oe.form===z);if(Y===-1)return!1;const[B]=A.splice(Y,1);for(const oe of B.unsubs)oe();a();const ee=d.get(z);return ee&&(ee.watchers.delete(s),ee.watchers.size===0&&(d.delete(z),z.destroy=ee.original)),y(z),typeof z.__reapplyRules=="function"&&z.__reapplyRules(),F(A),!0},s={detach:n},I={get forms(){return A.map(z=>z.form)},add(z,Y){if(!z||typeof z!="object"||typeof z.getValue!="function"||A.some(H=>H.form===z))return I;const B={form:z,id:Y&&Y.id,unsubs:[],lastFailures:[]};A.push(B),l&&typeof z._bind=="function"&&z._bind(l);const ee=H=>{T.emit("change",{form:z,name:H.name,value:H.value}),F(A)},oe=H=>{B.lastFailures=H.failures||[],T.emit("validated",{form:z,valid:H.valid})};return B.unsubs.push(z.on("change",ee)),B.unsubs.push(z.on("validated",oe)),_(z,s),a(),N(z,i),F(A),I},remove(z){return n(z),I},getValue(){const z={};for(const Y of A)Object.assign(z,Y.form.getValue());return p.transform&&typeof p.transform.get=="function"?p.transform.get(z):z},setValue(z){if(p.transform&&typeof p.transform.set=="function")p.transform.set(z);else if(z!=null&&typeof z=="object")for(const Y of Object.keys(z)){const B=g.get(Y);B&&B.form.setValue({[Y]:z[Y]})}return F(A),I},getItem(z){const Y=g.get(String(z));return Y?Y.form.getItem(z):void 0},validate(){let z=!0;const Y=[];for(const B of A){B.form.validate()===!1&&(z=!1);for(const oe of B.lastFailures||[])Y.push({form:B.form,name:oe.name})}if(!z){const B=Y.find(ee=>ee.name!=null);if(B){const ee=B.form.getItem(B.name);ee&&(ee.focus(),ee.el&&typeof ee.el.scrollIntoView=="function"&&ee.el.scrollIntoView({block:"nearest"}))}}return z},setReadOnly(z){for(const Y of A)Y.form.setReadOnly(z===!0);return I},setDisabled(z){for(const Y of A)Y.form.setDisabled(z===!0);return I},clear(){for(const z of A)z.form.clear();return I},reset(){for(const z of A)typeof z.form.revert=="function"&&z.form.revert();return I},save(){if(!l)return!1;const z=A.map(oe=>({member:oe,changes:f(oe.form)})),Y={};for(const oe of z)Object.assign(Y,oe.changes);if(!Object.keys(Y).length)return!0;const B=l.save(Y),ee=oe=>{if(!oe)return!1;for(const H of z)H.member.form&&typeof H.member.form._commit=="function"&&H.member.form._commit(H.changes);return!0};return B&&typeof B.then=="function"?B.then(ee):ee(B)},isDirty(){return A.some(z=>z.form.isDirty()===!0)},on(z,Y){return z!=="*"&&!O.includes(z)?(console.warn(`lattice-form: "${z}" is not a form group event and will never fire.`),()=>{}):T.on(z,Y)},off(z,Y){T.off(z,Y)},destroy(){for(;A.length;){const z=A[A.length-1].form;n(z)}T.clear()}};if(Array.isArray(o))for(const z of o)I.add(z);else o&&typeof o=="object"&&typeof o.getValue=="function"&&I.add(o);return I}const r=t}),Ne("packages/modules/form/enhance.js",function(S,q){"use strict";Object.defineProperty(S,"itemForField",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"configForForm",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return v}});const U=q("packages/modules/form/create.js").createForm,$=Object.freeze(["text","email","password","url"]);function Q(f){const u=f&&f.type?String(f.type).toLowerCase():"";return u==="submit"||u==="image"||f&&f.tagName==="BUTTON"&&u!=="button"}function b(f){if(!f||!f.name)return!1;const u=f&&f.type?String(f.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||f.tagName==="BUTTON")}function N(f,u){if(typeof f.getAttribute=="function"){const d=f.getAttribute("data-label");if(d!=null&&d!=="")return d;const _=f.getAttribute("aria-label");if(_!=null&&_!=="")return _}if(f.id&&typeof u.querySelector=="function"){const d=u.querySelector(`label[for="${f.id}"]`);if(d&&d.textContent!=null){const _=String(d.textContent).trim();if(_)return _}}return String(f.name||"")}function y(f){return f.type==="checkbox"?f.checked===!0:f.value==null?"":f.value}function C(f,u){if(Q(f)||!b(f))return null;const d=f.type?String(f.type).toLowerCase():"text",_={type:"input",name:f.name,label:N(f,u),value:y(f)};if(d==="number")_.type="number",f.min!=null&&f.min!==""&&(_.min=Number(f.min)),f.max!=null&&f.max!==""&&(_.max=Number(f.max)),f.step!=null&&f.step!==""&&(_.step=Number(f.step));else if(d==="checkbox")_.type="checkbox";else if(f.tagName==="TEXTAREA")_.type="textarea";else if($.includes(d))_.subtype=d,(d==="email"||d==="url")&&(_.validation=d);else return null;if(f.placeholder!=null&&f.placeholder!==""&&(_.placeholder=f.placeholder),f.required===!0&&(_.required=!0),f.disabled===!0&&(_.disabled=!0),f.readOnly===!0&&(_.readOnly=!0),typeof f.getAttribute=="function"){const t=f.getAttribute("data-validation")||f.getAttribute("data-rule");t&&(_.validation=t);const r=f.getAttribute("data-error-message");r&&(_.errorMessage=r);const o=f.getAttribute("data-help");o&&(_.helpMessage=o)}return _}function F(f,u){const d=f&&f.ownerDocument||(typeof document<"u"?document:null),_=[],t=f&&f.elements?f.elements:[];for(const r of t){const o=C(r,d);o&&_.push(o)}return{...u||{},rows:_}}function O(f,u){if(!f)return null;if(f.__latticeForm)return f.__latticeForm;const d=f.ownerDocument||(typeof document<"u"?document:null),_=[],t=f.elements?f.elements:[];for(const o of t)Q(o)&&_.push(o);const r=U(f,F(f,u));f.__latticeForm=r;for(const o of _)o.parentNode!==f&&f.appendChild(o);return typeof f.addEventListener=="function"&&d&&f.addEventListener("submit",o=>{r.validate()||(o.preventDefault(),o.stopImmediatePropagation())},!0),r}const v=O}),Ne("packages/modules/form/index.js",function(S,q){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return f}});const U=q("packages/modules/form/styles.js").NS,Q=q("packages/modules/form/controls/registry.js").registerControl,N=q("packages/modules/form/create.js").createForm,y=q("packages/modules/form/controls/combo.js");Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return y.createCombo}});const C=q("packages/modules/form/controls/speeddial.js");Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return C.createSpeedDial}});const F=q("packages/modules/form/group.js");Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return F.createFormGroup}});const O=q("packages/modules/form/enhance.js");Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return O.enhanceForm}});function v(u,d){if(d===null||typeof d!="object"||typeof d.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const _=typeof d.getValue=="function"?d.getValue:()=>null,t=typeof d.setValue=="function"?d.setValue:()=>{};Q(String(u),{kind:"field",custom:!0,validate:typeof d.validate=="function"?(r,o,p)=>d.validate(p,o,r):void 0,destroy:typeof d.destroy=="function"?r=>d.destroy(r):void 0,build(r,o){const p=o.doc.createElement("div");p.className=`${U}__custom`;const A={name:r.name,item:r,getValue(){return A._read?A._read():void 0},setValue(g){A._write&&A._write(g)},onChange(g){A._commit&&A._commit(g===void 0?_():g)},onInput(g){A._input&&A._input(g===void 0?_():g)}};return p.__latticeFormApi=A,d.create(p,r,A),t(p,r.value),p},read(r){return _(r)},write(r,o){t(r,o)},state(r,o){r.setAttribute("data-disabled",o.disabled===!0?"true":"false"),r.setAttribute("data-readonly",o.readOnly===!0?"true":"false")}})}const f=N});var Mt=Ht("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=Mt:typeof define=="function"&&define.amd?define(function(){return Mt}):Yt.LatticeGridForm=Mt})(typeof globalThis<"u"?globalThis:this);
1830
1847
 
1831
1848
  //# sourceMappingURL=form.min.js.map