@toclocoinc/lattice-grid 1.101.3 → 1.101.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -1
  3. package/angular/package.json +1 -1
  4. package/docs/API.html +4 -4
  5. package/docs/THEMING.md +2 -1
  6. package/docs/api/adapters.html +1 -1
  7. package/docs/api/ai.html +1 -1
  8. package/docs/api/alarms.html +1 -1
  9. package/docs/api/calendar.html +1 -1
  10. package/docs/api/charts.html +1 -1
  11. package/docs/api/dashboard.html +1 -1
  12. package/docs/api/data-router.html +1 -1
  13. package/docs/api/deckgl.html +1 -1
  14. package/docs/api/designer.html +1 -1
  15. package/docs/api/form.html +1 -1
  16. package/docs/api/gantt.html +1 -1
  17. package/docs/api/geometry.html +1 -1
  18. package/docs/api/grid.html +2 -2
  19. package/docs/api/index.html +1 -1
  20. package/docs/api/kanban.html +1 -1
  21. package/docs/api/kpi.html +1 -1
  22. package/docs/api/layout.html +1 -1
  23. package/docs/api/leaflet.html +1 -1
  24. package/docs/api/list.html +1 -1
  25. package/docs/api/mapview.html +1 -1
  26. package/docs/api/mock-socket.html +1 -1
  27. package/docs/api/presets.html +1 -1
  28. package/docs/api/scheduler.html +1 -1
  29. package/docs/api/shell.html +1 -1
  30. package/docs/api/tabs.html +1 -1
  31. package/docs/api/types.html +1 -1
  32. package/docs/api-detail.html +4 -4
  33. package/docs/warnings.json +1 -1
  34. package/lattice-grid.d.ts +1 -1
  35. package/lattice-grid.esm.min.js +2 -2
  36. package/lattice-grid.min.cjs +2 -2
  37. package/lattice-grid.min.js +2 -2
  38. package/locales/all.d.ts +1 -1
  39. package/locales/all.esm.min.js +1 -1
  40. package/locales/all.min.cjs +1 -1
  41. package/locales/all.min.js +1 -1
  42. package/locales/ar.d.ts +1 -1
  43. package/locales/ar.esm.min.js +1 -1
  44. package/locales/ar.min.cjs +1 -1
  45. package/locales/ar.min.js +1 -1
  46. package/locales/cs-CZ.d.ts +1 -1
  47. package/locales/cs-CZ.esm.min.js +1 -1
  48. package/locales/cs-CZ.min.cjs +1 -1
  49. package/locales/cs-CZ.min.js +1 -1
  50. package/locales/da-DK.d.ts +1 -1
  51. package/locales/da-DK.esm.min.js +1 -1
  52. package/locales/da-DK.min.cjs +1 -1
  53. package/locales/da-DK.min.js +1 -1
  54. package/locales/de-DE.d.ts +1 -1
  55. package/locales/de-DE.esm.min.js +1 -1
  56. package/locales/de-DE.min.cjs +1 -1
  57. package/locales/de-DE.min.js +1 -1
  58. package/locales/el-GR.d.ts +1 -1
  59. package/locales/el-GR.esm.min.js +1 -1
  60. package/locales/el-GR.min.cjs +1 -1
  61. package/locales/el-GR.min.js +1 -1
  62. package/locales/en-US.d.ts +1 -1
  63. package/locales/en-US.esm.min.js +1 -1
  64. package/locales/en-US.min.cjs +1 -1
  65. package/locales/en-US.min.js +1 -1
  66. package/locales/es-ES.d.ts +1 -1
  67. package/locales/es-ES.esm.min.js +1 -1
  68. package/locales/es-ES.min.cjs +1 -1
  69. package/locales/es-ES.min.js +1 -1
  70. package/locales/fi-FI.d.ts +1 -1
  71. package/locales/fi-FI.esm.min.js +1 -1
  72. package/locales/fi-FI.min.cjs +1 -1
  73. package/locales/fi-FI.min.js +1 -1
  74. package/locales/fr-CA.d.ts +1 -1
  75. package/locales/fr-CA.esm.min.js +1 -1
  76. package/locales/fr-CA.min.cjs +1 -1
  77. package/locales/fr-CA.min.js +1 -1
  78. package/locales/fr-FR.d.ts +1 -1
  79. package/locales/fr-FR.esm.min.js +1 -1
  80. package/locales/fr-FR.min.cjs +1 -1
  81. package/locales/fr-FR.min.js +1 -1
  82. package/locales/hu-HU.d.ts +1 -1
  83. package/locales/hu-HU.esm.min.js +1 -1
  84. package/locales/hu-HU.min.cjs +1 -1
  85. package/locales/hu-HU.min.js +1 -1
  86. package/locales/it-IT.d.ts +1 -1
  87. package/locales/it-IT.esm.min.js +1 -1
  88. package/locales/it-IT.min.cjs +1 -1
  89. package/locales/it-IT.min.js +1 -1
  90. package/locales/ja-JP.d.ts +1 -1
  91. package/locales/ja-JP.esm.min.js +1 -1
  92. package/locales/ja-JP.min.cjs +1 -1
  93. package/locales/ja-JP.min.js +1 -1
  94. package/locales/nb-NO.d.ts +1 -1
  95. package/locales/nb-NO.esm.min.js +1 -1
  96. package/locales/nb-NO.min.cjs +1 -1
  97. package/locales/nb-NO.min.js +1 -1
  98. package/locales/nl-NL.d.ts +1 -1
  99. package/locales/nl-NL.esm.min.js +1 -1
  100. package/locales/nl-NL.min.cjs +1 -1
  101. package/locales/nl-NL.min.js +1 -1
  102. package/locales/pl-PL.d.ts +1 -1
  103. package/locales/pl-PL.esm.min.js +1 -1
  104. package/locales/pl-PL.min.cjs +1 -1
  105. package/locales/pl-PL.min.js +1 -1
  106. package/locales/pt-BR.d.ts +1 -1
  107. package/locales/pt-BR.esm.min.js +1 -1
  108. package/locales/pt-BR.min.cjs +1 -1
  109. package/locales/pt-BR.min.js +1 -1
  110. package/locales/ro-RO.d.ts +1 -1
  111. package/locales/ro-RO.esm.min.js +1 -1
  112. package/locales/ro-RO.min.cjs +1 -1
  113. package/locales/ro-RO.min.js +1 -1
  114. package/locales/sv-SE.d.ts +1 -1
  115. package/locales/sv-SE.esm.min.js +1 -1
  116. package/locales/sv-SE.min.cjs +1 -1
  117. package/locales/sv-SE.min.js +1 -1
  118. package/locales/uk-UA.d.ts +1 -1
  119. package/locales/uk-UA.esm.min.js +1 -1
  120. package/locales/uk-UA.min.cjs +1 -1
  121. package/locales/uk-UA.min.js +1 -1
  122. package/modules/ai.d.ts +1 -1
  123. package/modules/ai.esm.min.js +1 -1
  124. package/modules/ai.min.cjs +1 -1
  125. package/modules/ai.min.js +1 -1
  126. package/modules/alarms.d.ts +1 -1
  127. package/modules/alarms.esm.min.js +1 -1
  128. package/modules/alarms.min.cjs +1 -1
  129. package/modules/alarms.min.js +1 -1
  130. package/modules/angular.d.ts +1 -1
  131. package/modules/angular.esm.min.js +1 -1
  132. package/modules/angular.min.cjs +1 -1
  133. package/modules/angular.min.js +1 -1
  134. package/modules/calendar.d.ts +1 -1
  135. package/modules/calendar.esm.min.js +1 -1
  136. package/modules/calendar.min.cjs +1 -1
  137. package/modules/calendar.min.js +1 -1
  138. package/modules/chart-alluvial.d.ts +1 -1
  139. package/modules/chart-alluvial.esm.min.js +1 -1
  140. package/modules/chart-alluvial.min.cjs +1 -1
  141. package/modules/chart-alluvial.min.js +1 -1
  142. package/modules/chart-arc.d.ts +1 -1
  143. package/modules/chart-arc.esm.min.js +1 -1
  144. package/modules/chart-arc.min.cjs +1 -1
  145. package/modules/chart-arc.min.js +1 -1
  146. package/modules/chart-barrace.d.ts +1 -1
  147. package/modules/chart-barrace.esm.min.js +1 -1
  148. package/modules/chart-barrace.min.cjs +1 -1
  149. package/modules/chart-barrace.min.js +1 -1
  150. package/modules/chart-bubblemap.d.ts +1 -1
  151. package/modules/chart-bubblemap.esm.min.js +1 -1
  152. package/modules/chart-bubblemap.min.cjs +1 -1
  153. package/modules/chart-bubblemap.min.js +1 -1
  154. package/modules/chart-bump.d.ts +1 -1
  155. package/modules/chart-bump.esm.min.js +1 -1
  156. package/modules/chart-bump.min.cjs +1 -1
  157. package/modules/chart-bump.min.js +1 -1
  158. package/modules/chart-calendar.d.ts +1 -1
  159. package/modules/chart-calendar.esm.min.js +1 -1
  160. package/modules/chart-calendar.min.cjs +1 -1
  161. package/modules/chart-calendar.min.js +1 -1
  162. package/modules/chart-choropleth.d.ts +1 -1
  163. package/modules/chart-choropleth.esm.min.js +1 -1
  164. package/modules/chart-choropleth.min.cjs +1 -1
  165. package/modules/chart-choropleth.min.js +1 -1
  166. package/modules/chart-decomposition.d.ts +1 -1
  167. package/modules/chart-decomposition.esm.min.js +1 -1
  168. package/modules/chart-decomposition.min.cjs +1 -1
  169. package/modules/chart-decomposition.min.js +1 -1
  170. package/modules/chart-diverging.d.ts +1 -1
  171. package/modules/chart-diverging.esm.min.js +1 -1
  172. package/modules/chart-diverging.min.cjs +1 -1
  173. package/modules/chart-diverging.min.js +1 -1
  174. package/modules/chart-dumbbell.d.ts +1 -1
  175. package/modules/chart-dumbbell.esm.min.js +1 -1
  176. package/modules/chart-dumbbell.min.cjs +1 -1
  177. package/modules/chart-dumbbell.min.js +1 -1
  178. package/modules/chart-fan.d.ts +1 -1
  179. package/modules/chart-fan.esm.min.js +1 -1
  180. package/modules/chart-fan.min.cjs +1 -1
  181. package/modules/chart-fan.min.js +1 -1
  182. package/modules/chart-forcetree.d.ts +1 -1
  183. package/modules/chart-forcetree.esm.min.js +1 -1
  184. package/modules/chart-forcetree.min.cjs +1 -1
  185. package/modules/chart-forcetree.min.js +1 -1
  186. package/modules/chart-hexbin.d.ts +1 -1
  187. package/modules/chart-hexbin.esm.min.js +1 -1
  188. package/modules/chart-hexbin.min.cjs +1 -1
  189. package/modules/chart-hexbin.min.js +1 -1
  190. package/modules/chart-hexmap.d.ts +1 -1
  191. package/modules/chart-hexmap.esm.min.js +1 -1
  192. package/modules/chart-hexmap.min.cjs +1 -1
  193. package/modules/chart-hexmap.min.js +1 -1
  194. package/modules/chart-icicle.d.ts +1 -1
  195. package/modules/chart-icicle.esm.min.js +1 -1
  196. package/modules/chart-icicle.min.cjs +1 -1
  197. package/modules/chart-icicle.min.js +1 -1
  198. package/modules/chart-markermap.d.ts +1 -1
  199. package/modules/chart-markermap.esm.min.js +1 -1
  200. package/modules/chart-markermap.min.cjs +1 -1
  201. package/modules/chart-markermap.min.js +1 -1
  202. package/modules/chart-motion.d.ts +1 -1
  203. package/modules/chart-motion.esm.min.js +1 -1
  204. package/modules/chart-motion.min.cjs +1 -1
  205. package/modules/chart-motion.min.js +1 -1
  206. package/modules/chart-pack.d.ts +1 -1
  207. package/modules/chart-pack.esm.min.js +1 -1
  208. package/modules/chart-pack.min.cjs +1 -1
  209. package/modules/chart-pack.min.js +1 -1
  210. package/modules/chart-parallel.d.ts +1 -1
  211. package/modules/chart-parallel.esm.min.js +1 -1
  212. package/modules/chart-parallel.min.cjs +1 -1
  213. package/modules/chart-parallel.min.js +1 -1
  214. package/modules/chart-pictorial.d.ts +1 -1
  215. package/modules/chart-pictorial.esm.min.js +1 -1
  216. package/modules/chart-pictorial.min.cjs +1 -1
  217. package/modules/chart-pictorial.min.js +1 -1
  218. package/modules/chart-polararea.d.ts +1 -1
  219. package/modules/chart-polararea.esm.min.js +1 -1
  220. package/modules/chart-polararea.min.cjs +1 -1
  221. package/modules/chart-polararea.min.js +1 -1
  222. package/modules/chart-polarscatter.d.ts +1 -1
  223. package/modules/chart-polarscatter.esm.min.js +1 -1
  224. package/modules/chart-polarscatter.min.cjs +1 -1
  225. package/modules/chart-polarscatter.min.js +1 -1
  226. package/modules/chart-pyramid.d.ts +1 -1
  227. package/modules/chart-pyramid.esm.min.js +1 -1
  228. package/modules/chart-pyramid.min.cjs +1 -1
  229. package/modules/chart-pyramid.min.js +1 -1
  230. package/modules/chart-radialbar.d.ts +1 -1
  231. package/modules/chart-radialbar.esm.min.js +1 -1
  232. package/modules/chart-radialbar.min.cjs +1 -1
  233. package/modules/chart-radialbar.min.js +1 -1
  234. package/modules/chart-ridgeline.d.ts +1 -1
  235. package/modules/chart-ridgeline.esm.min.js +1 -1
  236. package/modules/chart-ridgeline.min.cjs +1 -1
  237. package/modules/chart-ridgeline.min.js +1 -1
  238. package/modules/chart-roc.d.ts +1 -1
  239. package/modules/chart-roc.esm.min.js +1 -1
  240. package/modules/chart-roc.min.cjs +1 -1
  241. package/modules/chart-roc.min.js +1 -1
  242. package/modules/chart-scatter3d.d.ts +1 -1
  243. package/modules/chart-scatter3d.esm.min.js +1 -1
  244. package/modules/chart-scatter3d.min.cjs +1 -1
  245. package/modules/chart-scatter3d.min.js +1 -1
  246. package/modules/chart-serpentine.d.ts +1 -1
  247. package/modules/chart-serpentine.esm.min.js +1 -1
  248. package/modules/chart-serpentine.min.cjs +1 -1
  249. package/modules/chart-serpentine.min.js +1 -1
  250. package/modules/chart-slope.d.ts +1 -1
  251. package/modules/chart-slope.esm.min.js +1 -1
  252. package/modules/chart-slope.min.cjs +1 -1
  253. package/modules/chart-slope.min.js +1 -1
  254. package/modules/chart-spiral.d.ts +1 -1
  255. package/modules/chart-spiral.esm.min.js +1 -1
  256. package/modules/chart-spiral.min.cjs +1 -1
  257. package/modules/chart-spiral.min.js +1 -1
  258. package/modules/chart-splom.d.ts +1 -1
  259. package/modules/chart-splom.esm.min.js +1 -1
  260. package/modules/chart-splom.min.cjs +1 -1
  261. package/modules/chart-splom.min.js +1 -1
  262. package/modules/chart-tree.d.ts +1 -1
  263. package/modules/chart-tree.esm.min.js +1 -1
  264. package/modules/chart-tree.min.cjs +1 -1
  265. package/modules/chart-tree.min.js +1 -1
  266. package/modules/chart-venn.d.ts +1 -1
  267. package/modules/chart-venn.esm.min.js +1 -1
  268. package/modules/chart-venn.min.cjs +1 -1
  269. package/modules/chart-venn.min.js +1 -1
  270. package/modules/chart-voronoi.d.ts +1 -1
  271. package/modules/chart-voronoi.esm.min.js +1 -1
  272. package/modules/chart-voronoi.min.cjs +1 -1
  273. package/modules/chart-voronoi.min.js +1 -1
  274. package/modules/chart-waffle.d.ts +1 -1
  275. package/modules/chart-waffle.esm.min.js +1 -1
  276. package/modules/chart-waffle.min.cjs +1 -1
  277. package/modules/chart-waffle.min.js +1 -1
  278. package/modules/chart-wordcloud.d.ts +1 -1
  279. package/modules/chart-wordcloud.esm.min.js +1 -1
  280. package/modules/chart-wordcloud.min.cjs +1 -1
  281. package/modules/chart-wordcloud.min.js +1 -1
  282. package/modules/charts.d.ts +1 -1
  283. package/modules/charts.esm.min.js +1 -1
  284. package/modules/charts.min.cjs +1 -1
  285. package/modules/charts.min.js +1 -1
  286. package/modules/dashboard.d.ts +1 -1
  287. package/modules/dashboard.esm.min.js +1 -1
  288. package/modules/dashboard.min.cjs +1 -1
  289. package/modules/dashboard.min.js +1 -1
  290. package/modules/data-router.d.ts +1 -1
  291. package/modules/data-router.esm.min.js +1 -1
  292. package/modules/data-router.min.cjs +1 -1
  293. package/modules/data-router.min.js +1 -1
  294. package/modules/deckgl.d.ts +1 -1
  295. package/modules/deckgl.esm.min.js +1 -1
  296. package/modules/deckgl.min.cjs +1 -1
  297. package/modules/deckgl.min.js +1 -1
  298. package/modules/designer.d.ts +1 -1
  299. package/modules/designer.esm.min.js +1 -1
  300. package/modules/designer.min.cjs +1 -1
  301. package/modules/designer.min.js +1 -1
  302. package/modules/devtools.d.ts +1 -1
  303. package/modules/devtools.esm.min.js +1 -1
  304. package/modules/devtools.min.cjs +1 -1
  305. package/modules/devtools.min.js +1 -1
  306. package/modules/dhtmlx-compat.d.ts +1 -1
  307. package/modules/dhtmlx-compat.esm.min.js +1 -1
  308. package/modules/dhtmlx-compat.min.cjs +1 -1
  309. package/modules/dhtmlx-compat.min.js +1 -1
  310. package/modules/form.d.ts +1 -1
  311. package/modules/form.esm.min.js +87 -79
  312. package/modules/form.esm.min.js.map +2 -2
  313. package/modules/form.min.cjs +87 -79
  314. package/modules/form.min.js +87 -79
  315. package/modules/form.min.js.map +2 -2
  316. package/modules/gantt.d.ts +1 -1
  317. package/modules/gantt.esm.min.js +1 -1
  318. package/modules/gantt.min.cjs +1 -1
  319. package/modules/gantt.min.js +1 -1
  320. package/modules/geo-europe-nuts.d.ts +1 -1
  321. package/modules/geo-europe-nuts.esm.min.js +1 -1
  322. package/modules/geo-europe-nuts.min.cjs +1 -1
  323. package/modules/geo-europe-nuts.min.js +1 -1
  324. package/modules/geo-uk.d.ts +1 -1
  325. package/modules/geo-uk.esm.min.js +1 -1
  326. package/modules/geo-uk.min.cjs +1 -1
  327. package/modules/geo-uk.min.js +1 -1
  328. package/modules/geo-us-states.d.ts +1 -1
  329. package/modules/geo-us-states.esm.min.js +1 -1
  330. package/modules/geo-us-states.min.cjs +1 -1
  331. package/modules/geo-us-states.min.js +1 -1
  332. package/modules/geo-world-110m.d.ts +1 -1
  333. package/modules/geo-world-110m.esm.min.js +1 -1
  334. package/modules/geo-world-110m.min.cjs +1 -1
  335. package/modules/geo-world-110m.min.js +1 -1
  336. package/modules/geo-world-50m.d.ts +1 -1
  337. package/modules/geo-world-50m.esm.min.js +1 -1
  338. package/modules/geo-world-50m.min.cjs +1 -1
  339. package/modules/geo-world-50m.min.js +1 -1
  340. package/modules/geometry.d.ts +1 -1
  341. package/modules/geometry.esm.min.js +1 -1
  342. package/modules/geometry.min.cjs +1 -1
  343. package/modules/geometry.min.js +1 -1
  344. package/modules/htmx.d.ts +1 -1
  345. package/modules/htmx.esm.min.js +2 -2
  346. package/modules/htmx.min.cjs +2 -2
  347. package/modules/htmx.min.js +2 -2
  348. package/modules/kanban.d.ts +1 -1
  349. package/modules/kanban.esm.min.js +1 -1
  350. package/modules/kanban.min.cjs +1 -1
  351. package/modules/kanban.min.js +1 -1
  352. package/modules/kpi.d.ts +1 -1
  353. package/modules/kpi.esm.min.js +1 -1
  354. package/modules/kpi.min.cjs +1 -1
  355. package/modules/kpi.min.js +1 -1
  356. package/modules/layout.d.ts +1 -1
  357. package/modules/layout.esm.min.js +1 -1
  358. package/modules/layout.min.cjs +1 -1
  359. package/modules/layout.min.js +1 -1
  360. package/modules/leaflet.d.ts +1 -1
  361. package/modules/leaflet.esm.min.js +1 -1
  362. package/modules/leaflet.min.cjs +1 -1
  363. package/modules/leaflet.min.js +1 -1
  364. package/modules/list.d.ts +1 -1
  365. package/modules/list.esm.min.js +1 -1
  366. package/modules/list.min.cjs +1 -1
  367. package/modules/list.min.js +1 -1
  368. package/modules/mapview.d.ts +1 -1
  369. package/modules/mapview.esm.min.js +1 -1
  370. package/modules/mapview.min.cjs +1 -1
  371. package/modules/mapview.min.js +1 -1
  372. package/modules/mock-socket.d.ts +1 -1
  373. package/modules/mock-socket.esm.min.js +1 -1
  374. package/modules/mock-socket.min.cjs +1 -1
  375. package/modules/mock-socket.min.js +1 -1
  376. package/modules/presets.d.ts +1 -1
  377. package/modules/presets.esm.min.js +1 -1
  378. package/modules/presets.min.cjs +1 -1
  379. package/modules/presets.min.js +1 -1
  380. package/modules/react.d.ts +1 -1
  381. package/modules/react.esm.min.js +1 -1
  382. package/modules/react.min.cjs +1 -1
  383. package/modules/react.min.js +1 -1
  384. package/modules/scheduler.d.ts +1 -1
  385. package/modules/scheduler.esm.min.js +1 -1
  386. package/modules/scheduler.min.cjs +1 -1
  387. package/modules/scheduler.min.js +1 -1
  388. package/modules/shell.d.ts +1 -1
  389. package/modules/shell.esm.min.js +1 -1
  390. package/modules/shell.min.cjs +1 -1
  391. package/modules/shell.min.js +1 -1
  392. package/modules/svelte.d.ts +1 -1
  393. package/modules/svelte.esm.min.js +1 -1
  394. package/modules/svelte.min.cjs +1 -1
  395. package/modules/svelte.min.js +1 -1
  396. package/modules/tabs.d.ts +1 -1
  397. package/modules/tabs.esm.min.js +1 -1
  398. package/modules/tabs.min.cjs +1 -1
  399. package/modules/tabs.min.js +1 -1
  400. package/modules/vue.d.ts +1 -1
  401. package/modules/vue.esm.min.js +1 -1
  402. package/modules/vue.min.cjs +1 -1
  403. package/modules/vue.min.js +1 -1
  404. package/modules/webcomponent.d.ts +1 -1
  405. package/modules/webcomponent.esm.min.js +2 -2
  406. package/modules/webcomponent.min.cjs +2 -2
  407. package/modules/webcomponent.min.js +2 -2
  408. package/package.json +1 -1
@@ -1,15 +1,20 @@
1
1
  /*!
2
- * Lattice Grid 1.101.3, form module
2
+ * Lattice Grid 1.101.4, form module
3
3
  * Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
4
4
  * https://latticegrid.dev
5
5
  */
6
- var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}function Zt(S){var q=Kt[S];if(q)return q;var e=Object.create(null);Kt[S]=e;var U=Gt[S];if(!U)throw new Error("[lattice] missing module: "+S);return U(e,Zt),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`
6
+ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}function Zt(S){var q=Kt[S];if(q)return q;var e=Object.create(null);Kt[S]=e;var V=Gt[S];if(!V)throw new Error("[lattice] missing module: "+S);return V(e,Zt),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 V}}),Object.defineProperty(S,"css",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"injectStyles",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"injectColsBreakpoint",{enumerable:!0,get:function(){return P}});const e="lat-form",V="lat-cols-never",$="data-lattice-form-styles";function ee(){return`
7
7
  /* The shared top-level layer host (BACKLOG-0002291): select, combo and the
8
8
  date picker each reparent their own popup in here while it is open, so an
9
9
  ancestor's \`overflow: hidden\` or fixed height never clips it. One host per
10
10
  document; it carries no box of its own, each popup positions itself
11
11
  \`fixed\` against its field. */
12
12
  .lat-form__layer-host{ position:static; }
13
+ /* A popup raised into the browser's top layer carries the popover attribute while open; the
14
+ browser's own popover defaults (inset, margin, padding, border, colours) must not override
15
+ the control's layout, so they are reset here at the lowest specificity and each popup's own
16
+ rules below still win. */
17
+ :where(.lat-form__layer-host) > [popover]{ inset:auto; margin:0; padding:0; border:0; overflow:visible; color:inherit; background:transparent; }
13
18
  .${e}{
14
19
  --lattice-density-scale:1;
15
20
  --lattice-presentation-scale:1;
@@ -154,6 +159,9 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
154
159
  .${e}__control textarea,
155
160
  .${e}__control select,
156
161
  .${e}__control button{
162
+ /* The whole-control rule: a button that IS the control (a button item). A control's own part
163
+ buttons (a colour swatch, a picker toggle) are styled by their own two-class rules, which
164
+ must outrank this 0,1,1 selector (BACKLOG-0002338). */
157
165
  box-sizing:border-box; width:100%; height:var(--lattice-row-height); min-height:0;
158
166
  padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.5);
159
167
  border:var(--lattice-border-width) solid var(--lattice-border-color);
@@ -1008,26 +1016,26 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1008
1016
  .${e}__color .${e}__color-input:focus{ outline:none; }
1009
1017
  .${e}__color .${e}__color-input:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
1010
1018
  .${e}__color .${e}__color-input[readonly]{ color:var(--lattice-foreground-muted); }
1011
- .${e}__color-swatch{
1019
+ .${e}__color .${e}__color-swatch{
1012
1020
  flex:0 0 auto; box-sizing:border-box; padding:0; cursor:pointer;
1013
1021
  width:calc(var(--lattice-control-size) * var(--lattice-scale));
1014
1022
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1015
1023
  border:var(--lattice-border-width) solid var(--lattice-border-color); border-radius:calc(var(--lattice-radius) / 1.5);
1016
1024
  background:transparent;
1017
1025
  }
1018
- .${e}__color-swatch--empty{
1026
+ .${e}__color .${e}__color-swatch--empty{
1019
1027
  background-image:linear-gradient(135deg, transparent 46%, var(--lattice-border-color) 48%, var(--lattice-border-color) 52%, transparent 54%);
1020
1028
  }
1021
- .${e}__color-swatch:focus-visible, .${e}__color-toggle:focus-visible, .${e}__color-clear:focus-visible{
1029
+ .${e}__color .${e}__color-swatch:focus-visible, .${e}__color .${e}__color-toggle:focus-visible, .${e}__color .${e}__color-clear:focus-visible{
1022
1030
  outline:2px solid var(--lattice-focus-ring); outline-offset:1px;
1023
1031
  }
1024
- .${e}__color-toggle, .${e}__color-clear{
1032
+ .${e}__color .${e}__color-toggle, .${e}__color .${e}__color-clear{
1025
1033
  flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
1026
1034
  width:calc(var(--lattice-control-size) * var(--lattice-scale)); height:calc(var(--lattice-control-size) * var(--lattice-scale));
1027
1035
  padding:0; margin:0; border:0; background:transparent; color:var(--lattice-foreground-muted); cursor:pointer;
1028
1036
  }
1029
- .${e}__color-toggle:hover, .${e}__color-clear:hover{ color:var(--lattice-foreground); }
1030
- .${e}__color-toggle:disabled, .${e}__color-clear:disabled, .${e}__color-swatch:disabled{ opacity:.5; cursor:not-allowed; }
1037
+ .${e}__color .${e}__color-toggle:hover, .${e}__color .${e}__color-clear:hover{ color:var(--lattice-foreground); }
1038
+ .${e}__color .${e}__color-toggle:disabled, .${e}__color .${e}__color-clear:disabled, .${e}__color .${e}__color-swatch:disabled{ opacity:.5; cursor:not-allowed; }
1031
1039
  .${e}__color-popover{
1032
1040
  position:absolute; top:100%; left:0; z-index:10; margin-top:2px; box-sizing:border-box;
1033
1041
  padding:calc(var(--lattice-space) * 1.25); min-width:220px;
@@ -1097,13 +1105,13 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1097
1105
  font:inherit; cursor:pointer; padding:0 calc(var(--lattice-space) * 1.25);
1098
1106
  }
1099
1107
  .${e}__color-select{ margin-left:auto; background:var(--lattice-accent); border-color:var(--lattice-accent); color:#fff; }
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`
1108
+ `.trim()}function h(y){const A=y&&y.documentElement;if(!A||A.getAttribute($))return;A.setAttribute($,"1");const B=y.createElement("style");B.textContent=ee(),(y.head||y.body||A).appendChild(B)}function P(y,A){const B=`lat-cols-bp-${String(A).replace(/[^0-9]/g,"")}`,O=`data-lattice-cols-breakpoint-${B}`,v=y&&y.documentElement;if(v&&!v.querySelector(`style[${O}]`)){const d=y.createElement("style");d.setAttribute(O,"1"),d.textContent=`@container ${B} (max-width:${A}px){.${e}__cols > *{flex:1 1 100%}}`,(y.head||y.body||v).appendChild(d)}return B}}),Ne("packages/modules/form/controls/registry.js",function(S,q){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"resolveControl",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"controlTypes",{enumerable:!0,get:function(){return ee}});const e=new Map;function V(h,P){e.set(h,P)}function $(h){return e.get(h)||null}function ee(){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 V}}),Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"resolveValidationMode",{enumerable:!0,get:function(){return h}}),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"]),V=Object.freeze(["email","number","integer","url"]),$=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function ee(d){return d==null||d===""||d===!1||Array.isArray(d)&&d.length===0}function h(d){return e.includes(d)?d:"submit"}function P(d){return Object.prototype.toString.call(d)==="[object RegExp]"}function y(d,u){if(d==="email")return typeof u=="string"&&$.test(u);if(d==="number")return Number.isFinite(Number(u));if(d==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(d==="url"){if(typeof u!="string")return!1;try{const _=new URL(u);return _.protocol==="http:"||_.protocol==="https:"}catch{return!1}}return!0}function A(d,u){return typeof d.errorMessage=="string"&&d.errorMessage!==""?d.errorMessage:u}function B(d,u,_,w){let t;try{t=d(u,_)}catch{return{code:"custom",message:A(_,w("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:A(_,w("form.validation.custom"))}:{code:"custom",message:String(t)}}function O(d,u,_,w){if((d.required===!0||w===!0)&&ee(u))return{code:"required",message:A(d,_("form.validation.required"))};const t=d.validation;return t==null?null:typeof t=="function"?B(t,u,d,_):P(t)?ee(u)||t.test(String(u))?null:{code:"pattern",message:A(d,_("form.validation.pattern"))}:typeof t=="string"&&V.includes(t)?ee(u)||y(t,u)?null:{code:t,message:A(d,_(`form.validation.${t}`))}:null}function v(d,u,_){return d==null||d===!0?null:d===!1?{code:"custom",message:A(u,_("form.validation.custom"))}:typeof d=="string"?{code:"custom",message:d}:typeof d=="object"?{code:d.code||"custom",message:d.message!=null?String(d.message):A(u,_("form.validation.custom"))}:null}}),Ne("packages/modules/form/model.js",function(S,q){"use strict";Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"DENSITIES",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"CONTROL_TYPES",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"cssSize",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"resolveLabelPosition",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"resolveDensity",{enumerable:!0,get:function(){return B}}),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 d}}),Object.defineProperty(S,"normalizeBlock",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"resolveConfig",{enumerable:!0,get:function(){return _}});const V=q("packages/modules/form/validation.js").resolveValidationMode;function $(t){return t!==null&&typeof t=="object"}function ee(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const h=Object.freeze(["compact","standard","comfortable"]),P=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial"]);function y(t){return typeof t=="number"?`${t}px`:String(t)}function A(t){return t==="left"||t==="hidden"?t:"top"}function B(t){return h.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 d(t,o){const l=t.text!=null&&t.type===void 0,b=l?"text":t.type!=null&&t.type!==""?String(t.type):"input",p=l?t.text:t.value,m={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:b,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:p,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:V(t.validationMode),props:$(t.props)?Object.assign({},t.props):{},path:o};for(const f of Object.keys(t))!(f in m)&&f!=="text"&&f!=="value"&&f!=="type"&&(m.props[f]=t[f]);return m}function u(t,o){if(!$(t))return null;if(t.fieldset!=null){const b=$(t.fieldset)?t.fieldset:t,p=$(t.fieldset)?t.fieldset.legend:t.fieldset,m=v(b),f=m==="items"?b.items:m==="rows"?b.rows:m==="cols"?b.cols:[];return{kind:"fieldset",legend:p==null?null:String(p),axis:m,spacing:b.spacing==null?null:y(b.spacing),labelPosition:b.labelPosition==null?null:A(b.labelPosition),labelWidth:b.labelWidth,blocks:f.filter($).map((N,c)=>u(N,`${o}/${c}`)).filter(Boolean),css:b.css,hidden:b.hidden===!0}}if(t.container!=null){const b=$(t.container)?t.container:t,p=v(b),m=p==="items"?b.items:p==="rows"?b.rows:p==="cols"?b.cols:[];return{kind:"container",axis:p,spacing:b.spacing==null?null:y(b.spacing),labelPosition:b.labelPosition==null?null:A(b.labelPosition),labelWidth:b.labelWidth,blocks:m.filter($).map((f,N)=>u(f,`${o}/${N}`)).filter(Boolean),css:b.css,hidden:b.hidden===!0}}if(t.panel!=null){const b=$(t.panel)?t.panel:{},p=$(t.panel)&&v(t.panel)?t.panel:t,m=v(p),f=m==="items"?p.items:m==="rows"?p.rows:m==="cols"?p.cols:[],N=Array.isArray(b.actions)?b.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:b.title!=null&&b.title!==""?String(b.title):null,subtitle:b.subtitle!=null&&b.subtitle!==""?String(b.subtitle):null,actions:N,collapsible:b.collapsible===!0,axis:m,spacing:p.spacing==null?null:y(p.spacing),labelPosition:p.labelPosition==null?null:A(p.labelPosition),labelWidth:p.labelWidth,blocks:f.filter($).map((c,i)=>u(c,`${o}/${i}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}const l=v(t);if(l){const b=l==="items"?t.items:l==="rows"?t.rows:t.cols;return{kind:"container",axis:l,spacing:t.spacing==null?null:y(t.spacing),labelPosition:t.labelPosition==null?null:A(t.labelPosition),labelWidth:t.labelWidth,blocks:b.filter($).map((p,m)=>u(p,`${o}/${m}`)).filter(Boolean),css:t.css,hidden:t.hidden===!0}}return t.spacer===!0||t.type==="spacer"?{kind:"spacer",css:t.css,hidden:t.hidden===!0}:t.separator===!0||t.type==="separator"?{kind:"separator",label:t.label!=null&&t.label!==""?String(t.label):null,css:t.css,hidden:t.hidden===!0}:d(t,o)}function _(t={}){const o=$(t)?t:{},l=Array.isArray(o.steps)?o.steps.filter($).map((c,i)=>w(c,i)).filter(Boolean):[],b=l.length>0,p=!b&&Array.isArray(o.rows)&&o.rows.length,m=!b&&!p&&Array.isArray(o.cols)&&o.cols.length,f=p||b?"rows":"cols",N=b?[]:p?o.rows:m?o.cols:[];return{axis:f,density:B(o.density),css:o.css,messages:o.messages,colsBreakpoint:O(o.colsBreakpoint),spacing:o.spacing==null?null:y(o.spacing),labelGap:o.labelGap==null?null:y(o.labelGap),labelPosition:o.labelPosition==null?null:A(o.labelPosition),labelWidth:o.labelWidth,requiredHint:o.requiredHint,blocks:N.filter($).map((c,i)=>u(c,String(i))).filter(Boolean),steps:l,stepOrientation:o.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:o.validateSteps!==!1}}function w(t,o){const b=(Array.isArray(t.rows)?t.rows:[]).filter($).map((p,m)=>u(p,`step${o}/${m}`)).filter(Boolean);return b.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${o}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:b,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 V}}),Object.defineProperty(S,"syncRootAria",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"syncRecordState",{enumerable:!0,get:function(){return ee}});function e(h,P,y){h.disabled=P===!0,h.__latReadOnly=y===!0,y===!0?h.setAttribute("aria-readonly","true"):h.removeAttribute("aria-readonly")}function V(h){const P=()=>h.__latReadOnly===!0,y=v=>{P()&&v.preventDefault()},A=v=>{P()&&(v.preventDefault(),v.stopPropagation())},B=v=>{P()&&(v.key===" "||v.key==="Enter")&&v.preventDefault()},O=v=>{P()&&v.key===" "&&v.preventDefault()};h.addEventListener("pointerdown",y),h.addEventListener("click",A),h.addEventListener("keydown",B),h.addEventListener("keyup",O)}function $(h,P,y){P?h.setAttribute("aria-disabled","true"):h.removeAttribute("aria-disabled"),y?h.setAttribute("aria-readonly","true"):h.removeAttribute("aria-readonly")}function ee(h){const P=h.item,y=P.disabled===!0,A=P.readOnly===!0||h.ruleReadOnly===!0;h.controlWrap&&(h.controlWrap.setAttribute("data-disabled",y?"true":"false"),h.controlWrap.setAttribute("data-readonly",A?"true":"false")),h.def.state(h.control,{...P,readOnly:A}),typeof h.syncLock=="function"&&h.syncLock(),typeof h.syncAddons=="function"&&h.syncAddons()}}),Ne("packages/modules/form/group-rules.js",function(S,q){"use strict";Object.defineProperty(S,"attachRuleResolver",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"detachRuleResolver",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"ruleResolverFor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"makeRuleResolver",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"reapplyMembers",{enumerable:!0,get:function(){return P}});const e=new WeakMap;function V(y,A){e.set(y,A)}function $(y){e.delete(y)}function ee(y){return e.get(y)}function h(y){const{owners:A,byId:B,warnOnce:O}=y;return function(d,u){if(d==null||typeof d!="object")return;const _=d.name;if(d.form!=null){const t=B.get(d.form);if(!t){O(`form.group.unknown-member:${String(d.form)}`,`form group: a rule pins the member "${d.form}", but no member has that id; the rule reads an empty value.`);return}return _!=null?t.form.getValue()[_]:void 0}if(_==null)return;if(Object.prototype.hasOwnProperty.call(u,_))return u[_];const w=A.get(String(_));if(w)return w.form.getValue()[_]}}function P(y){for(const A of y)A.form&&typeof A.form.__reapplyRules=="function"&&A.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 A}});const V=q("packages/modules/form/model.js").isEmpty,ee=q("packages/modules/form/state.js").syncRecordState,P=q("packages/modules/form/group-rules.js").ruleResolverFor;function y(O,v,d){if(O==null)return null;if(typeof O=="function")return!!O(v);if(typeof O=="boolean")return O;if(typeof O=="object"){const u=d?d(O,v):O.name!=null?v[O.name]:void 0;if(typeof O.fn=="function")return!!O.fn(u,v);let _=!0,w=!1;return Object.prototype.hasOwnProperty.call(O,"equals")&&(w=!0,_=_&&u===O.equals),Object.prototype.hasOwnProperty.call(O,"in")&&(w=!0,_=_&&Array.isArray(O.in)&&O.in.includes(u)),Object.prototype.hasOwnProperty.call(O,"empty")&&(w=!0,_=_&&V(u)===!!O.empty),w?_:!1}return!1}function A(O){const v={};for(const u of O.order)u.item.name!=null&&(v[u.item.name]=u.value);const d=O.form?P(O.form):void 0;for(const u of O.order){const _=u.item;u.ruleHidden=y(_.visibleWhen,v,d)===!1,u.ruleReadOnly=y(_.readOnlyWhen,v,d)===!0,u.ruleRequired=y(_.requiredWhen,v,d)===!0,u.el.hidden=u.hidden||u.ruleHidden,ee(u);const w=_.required===!0||u.ruleRequired,t=u.labelEl!=null&&u.labelPosition!=="hidden",o=u.placeholderEl||u.control;w?o.setAttribute("aria-required","true"):o.removeAttribute("aria-required"),w&&t?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),B(u,w,t,l=>O.t(l))}}function B(O,v,d,u){const _=O.placeholderEl;if(!_)return;const w=O.placeholderBase;if(v&&!d&&w!==""){const t=O.requiredHint,o=t===!1?"":typeof t=="string"?u(t):" *";_.placeholder=w+o}else _.placeholder=w}}),Ne("packages/modules/form/stepper.js",function(S,q){"use strict";Object.defineProperty(S,"createStepper",{enumerable:!0,get:function(){return ee}});const V=q("packages/modules/form/styles.js").NS;function $(h,P,y){return Math.min(y,Math.max(P,h))}function ee(h,P){const y=P.doc,A=P.steps||[],B=P.t||(m=>m),O=P.orientation==="vertical"?"vertical":"horizontal";let v=$(Number(P.active)||0,0,Math.max(0,A.length-1));const d=[];h.className=`${V}__stepper ${V}__stepper--${O}`,h.setAttribute("data-orientation",O),h.setAttribute("role","navigation"),h.setAttribute("aria-label",B("form.steps"));const u=y.createElement("ol");u.className=`${V}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",O),h.appendChild(u);let _=[];const w=m=>d[m]?d[m]:m<v?"complete":m===v?"active":"pending",t=m=>m<=v+1,o=()=>{u.textContent="",_=A.map((m,f)=>{const N=w(f),c=y.createElement("li");c.className=`${V}__stepper-item is-${N}`+(f===v?" is-active":"")+(t(f)?"":" is-locked");const i=y.createElement("button");i.type="button",i.className=`${V}__stepper-step`,i.setAttribute("role","tab"),i.setAttribute("aria-selected",f===v?"true":"false"),f===v&&i.setAttribute("aria-current","step"),i.tabIndex=f===v?0:-1,i.setAttribute("aria-disabled",t(f)?"false":"true");const n=y.createElement("span");n.className=`${V}__stepper-marker`,n.setAttribute("aria-hidden","true"),n.textContent=N==="complete"?"✓":N==="error"?"!":String(f+1),i.appendChild(n);const a=y.createElement("span");return a.className=`${V}__stepper-label`,a.textContent=m.label!=null&&m.label!==""?m.label:`${B("form.step")} ${f+1}`,i.appendChild(a),c.appendChild(i),u.appendChild(c),i})},l=m=>{typeof P.onGoTo=="function"&&t(m)&&P.onGoTo(m)},b=m=>{const f=m.target&&m.target.closest?m.target.closest(`.${V}__stepper-step`):null;if(!f||!u.contains(f))return;const N=_.indexOf(f);N>=0&&l(N)},p=m=>{const f=m.target&&m.target.closest?m.target.closest(`.${V}__stepper-step`):null;if(!f||!u.contains(f))return;const N=A.length;let c=_.indexOf(f);if(c<0)return;if(m.key==="ArrowRight"||m.key==="ArrowDown")c=(c+1)%N;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")c=(c-1+N)%N;else if(m.key==="Home")c=0;else if(m.key==="End")c=N-1;else if(m.key==="Enter"||m.key===" "){m.preventDefault(),l(c);return}else return;m.preventDefault();const i=_[c];i&&i.focus()};return u.addEventListener("click",b),u.addEventListener("keydown",p),o(),{el:h,setActive(m){v=$(Number(m)||0,0,Math.max(0,A.length-1)),o()},setStatus(m,f){d[m]=f,o()},statusOf:w}}}),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 V}});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 V($){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 h}}),Object.defineProperty(S,"injectFieldIconStyles",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"makeFieldIcon",{enumerable:!0,get:function(){return y}});const V=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,$="http://www.w3.org/2000/svg",ee="data-lattice-form-field-icon-styles";function h(){return`
1101
1109
  .lat-form__field-icon{
1102
1110
  display:block; flex:0 0 auto;
1103
1111
  width:calc(var(--lattice-control-size) * var(--lattice-scale));
1104
1112
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1105
1113
  }
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`
1114
+ `.trim()}function P(A){const B=A&&A.documentElement;if(!B||B.getAttribute(ee))return;B.setAttribute(ee,"1");const O=A.createElement("style");O.textContent=h(),(A.head||A.body||B).appendChild(O)}function y(A,B){const O=V[B];if(!O)return null;const v=A.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 d=O.paint==="stroke";for(const u of O.paths||[]){const _=A.createElementNS($,"path");_.setAttribute("d",u),d?(_.setAttribute("fill","none"),_.setAttribute("stroke","currentColor"),_.setAttribute("stroke-width","1.5"),_.setAttribute("stroke-linecap","round"),_.setAttribute("stroke-linejoin","round")):_.setAttribute("fill","currentColor"),v.appendChild(_)}return v}}),Ne("packages/modules/form/messages.js",function(S,q){"use strict";Object.defineProperty(S,"FALLBACK_EN",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"t",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"createTranslator",{enumerable:!0,get:function(){return P}});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"}),V=Object.freeze({...e});function $(y,A={}){const B=e[y];return B===void 0?y:B.replace(/\{(\w+)\}/g,(O,v)=>A[v]===void 0?O:String(A[v]))}const ee={t(y,A={}){return $(y,A)}};function h(y,A={}){return ee.t(y,A)}function P(y){return{t(A,B={}){const O=y&&typeof y.t=="function"?y.t(A,B):A;return O===A?$(A,B):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"]},V={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"]),ee=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],h=/^(data:image\/|https?:\/\/|\/)/i,P={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function y(v){const d=v==null?"":String(v);return/[&<>"']/.test(d)?d.replace(/[&<>"']/g,u=>P[u]):d}function A(v,d){const u=String(v).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(d&&u.startsWith("data:image/")):!1}function B(v){if(v.__latRtCanParse!==void 0)return v.__latRtCanParse;try{const d=v.createElement("template");d.innerHTML="<p>x</p>";const u=!!(d.content&&d.content.childNodes&&d.content.childNodes.length);return v.__latRtCanParse=u,u}catch{return v.__latRtCanParse=!1,!1}}function O(v,d,u=e,_={}){const w=u||e,t=String(d??"");if(!B(v))return y(t.replace(/<[^>]*>/g,""));const o=_.imageSrcPattern||h,l=v.createElement("template");l.innerHTML=t;const b=p=>{[...p.childNodes].forEach(m=>{if(m.nodeType===8){m.remove();return}if(m.nodeType!==1)return;const f=m.tagName.toLowerCase();if($.has(f)){m.remove();return}if(b(m),!w[f]){const N=ee.includes(f)?v.createElement("p"):null;if(N){for(;m.firstChild;)N.appendChild(m.firstChild);m.replaceWith(N)}else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}return}if([...m.attributes].forEach(N=>{const c=N.name.toLowerCase();if(/^on/i.test(c)||c==="srcdoc"||c==="id"||c==="name"){m.removeAttribute(N.name);return}if(!w[f].includes(c)){m.removeAttribute(N.name);return}if(c==="href"){const i=N.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(i)||A(i))&&m.removeAttribute("href")}else if(c==="src"){const i=N.value.trim();(!o.test(i)||A(i,!0))&&m.removeAttribute("src")}else if(c==="style"){if(_.stripStyles&&f!=="img"){m.removeAttribute("style");return}const i=N.value.split(";").map(n=>n.trim()).filter(Boolean).map(n=>{const a=n.indexOf(":");return[n.slice(0,a).trim().toLowerCase(),n.slice(a+1).trim()]}).filter(([n,a])=>V[n]&&V[n].test(a)).map(([n,a])=>`${n}: ${a}`).join("; ");i?m.setAttribute("style",i):m.removeAttribute("style")}else if(c==="target"&&N.value!=="_blank")m.removeAttribute("target");else if(c==="class"){const i=N.value.split(/\s+/).filter(n=>/^lat-/.test(n)||/^dfc-/.test(n)).join(" ");i?m.setAttribute("class",i):m.removeAttribute("class")}}),f==="div"){const N=v.createElement("p");for([...m.attributes].forEach(c=>N.setAttribute(c.name,c.value));m.firstChild;)N.appendChild(m.firstChild);m.replaceWith(N)}if(f==="img"&&!m.getAttribute("src")&&m.remove(),f==="a")if(m.getAttribute("href"))m.getAttribute("target")==="_blank"&&m.setAttribute("rel","noopener noreferrer");else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}})};return b(l.content),l.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 V}});function e($){for(let ee=$;ee;ee=ee.parentNode){if(typeof ee.getAttribute!="function")continue;const h=ee.getAttribute("data-theme");if(h)return h}return null}function V($,ee){if(!$||typeof $.setAttribute!="function")return;const h=e(ee);h?$.setAttribute("data-theme",h):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 _}}),Object.defineProperty(S,"placeAgainstField",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"openInLayer",{enumerable:!0,get:function(){return b}});const V=q("packages/dom/src/themeof.js").carryTheme,$="lat-form__layer-host",ee=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","--lattice-popup-z"]),h="2147483647";function P(p){return typeof p.showPopover=="function"&&typeof p.hidePopover=="function"}function y(p){if(p.style.zIndex=`var(--lattice-popup-z, ${h})`,!!P(p)){p.setAttribute("popover","manual"),p.style.margin="0",p.style.inset="auto";try{p.showPopover()}catch{}}}function A(p){if(P(p)&&p.hasAttribute("popover")){try{p.hidePopover()}catch{}p.removeAttribute("popover")}p.style.zIndex="",p.style.margin="",p.style.inset=""}function B(p,m){const f=m.ownerDocument&&m.ownerDocument.defaultView;if(!f||typeof f.getComputedStyle!="function")return;const N=f.getComputedStyle(m);for(const c of ee){const i=N.getPropertyValue(c);i&&p.style.setProperty(c,i)}}const O=new WeakMap,v=new WeakMap,d=new WeakMap;function u(p){for(let m=p;m;m=m.parentNode){if(typeof m.getAttribute!="function")continue;if((typeof m.tagName=="string"?m.tagName.toUpperCase():"")==="DIALOG"&&m.getAttribute("open")!==null)return m}return null}function _(p,m){const f=m?u(m):null;if(f){const a=v.get(f);if(a&&a.parentNode===f)return a;let r=null;for(const M of f.childNodes||[])if(M&&typeof M.className=="string"&&M.className.split(/\s+/).includes($)){r=M;break}const s=r||p.createElement("div");return r||(s.className=$,f.appendChild(s)),v.set(f,s),s}const N=O.get(p);if(N&&N.isConnected!==!1)return N;const c=p.body||p.documentElement,i=c&&typeof c.querySelector=="function"?c.querySelector(`.${$}`):null,n=i||p.createElement("div");return i||(n.className=$,c.appendChild(n)),O.set(p,n),n}function w(p,m,f){return p.bottom<=0||p.top>=f||p.right<=0||p.left>=m}function t(p,m,f={}){const N=m.ownerDocument,c=N&&N.defaultView,i=c?c.innerWidth:0,n=c?c.innerHeight:0;p.style.position="fixed";const a=m.getBoundingClientRect();if(w(a,i,n))return!0;p.style.marginTop="0",p.style.marginBottom="0",p.style.marginLeft="0",p.style.marginRight="0",f.matchWidth===!1?p.style.minWidth=`${a.width}px`:p.style.width=`${a.width}px`;let r=a.left;const s=p.offsetWidth||a.width;i&&r+s>i&&(r=Math.max(0,i-s)),p.style.left=`${r}px`,p.style.right="auto";const M=p.offsetHeight||0;return n-a.bottom<M+4&&a.top>M+4?(p.style.top="auto",p.style.bottom=`${Math.max(0,n-a.top)}px`,f.aboveClass&&p.classList.add(f.aboveClass)):(p.style.bottom="auto",p.style.top=`${a.bottom}px`,f.aboveClass&&p.classList.remove(f.aboveClass)),!1}function o(p,m){let f=d.get(p);if(!f){const N=p.defaultView;f={entries:new Set,onTrack(){for(const c of[...f.entries])c.reposition()}},N&&(N.addEventListener("scroll",f.onTrack,!0),N.addEventListener("resize",f.onTrack)),d.set(p,f)}f.entries.add(m)}function l(p,m){const f=d.get(p);if(f&&(f.entries.delete(m),f.entries.size===0)){const N=p.defaultView;N&&(N.removeEventListener("scroll",f.onTrack,!0),N.removeEventListener("resize",f.onTrack)),d.delete(p)}}function b(p,m,f={}){const N=m.ownerDocument,c=_(N,m),i=p.parentNode,n=p.nextSibling;let a=!1;c.appendChild(p),V(p,m),B(p,m),y(p);const r={reposition(){if(a)return;t(p,m,f)&&typeof f.onOffscreen=="function"&&f.onOffscreen()},close(){a||(a=!0,l(N,r),A(p),i&&(n&&n.parentNode===i?i.insertBefore(p,n):i.appendChild(p)))}};return o(N,r),r.reposition(),r}}),Ne("packages/modules/form/controls/combo.js",function(S,q){"use strict";Object.defineProperty(S,"adornmentStylesheet",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"injectAdornmentStyles",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"isImageUrl",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"initialsFor",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"stableHash",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"avatarColor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(S,"applyAvatarTint",{enumerable:!0,get:function(){return D}}),Object.defineProperty(S,"makeIcon",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(S,"renderIcon",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"renderAvatar",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"renderDot",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"renderAdornment",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"renderTemplateContent",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return H}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,P=q("packages/modules/form/styles.js").injectStyles,A=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"),d=v.makeFieldIcon,u=v.injectFieldIconStyles,w=q("packages/modules/form/controls/popup-layer.js").openInLayer,t=250,o="lat-combo__popup--above",l=20,b=48,p="data-lattice-combo-chip-row-styles";function m(){return`
1107
1115
  .lat-combo__control{ position:relative; }
1108
1116
  .lat-combo__chip-row{
1109
1117
  display:flex;flex-wrap:wrap;align-items:flex-start;
@@ -1118,7 +1126,7 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1118
1126
  .lat-combo[data-chip-placement] .lat-combo__summary{
1119
1127
  flex:0 0 auto;margin-top:calc(var(--lattice-space)/4);
1120
1128
  }
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`
1129
+ `.trim()}function f(E){const G=E&&E.documentElement;if(!G||G.getAttribute(p))return;G.setAttribute(p,"1");const R=E.createElement("style");R.textContent=m(),(E.head||E.body||G).appendChild(R)}const N="data-lattice-form-adornment-styles",c="http://www.w3.org/2000/svg";function i(){return`
1122
1130
  .lat-combo__value{
1123
1131
  flex:0 0 auto; display:inline-flex; align-items:center; min-width:0;
1124
1132
  gap:calc(var(--lattice-space) / 2);
@@ -1157,17 +1165,17 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1157
1165
  .lat-select__value{ display:flex; align-items:center; gap:calc(var(--lattice-space) / 2); }
1158
1166
  .lat-select__value[data-placeholder='true']{ display:block; }
1159
1167
  .lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
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,Ot=Array.isArray(W.options)?W.options:[],rt=[],et=[];let it=0,ut=0;const Lt=wt(),jt=[];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),jt.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 Nt(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 Tt(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}),Tt(Me),Ue(),At(),Et()}function pe(){return W.readOnly===!0}function ve(){Pe.length!==0&&(Pe=[],Ue(),At(),Et(),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=Nt(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:Nt(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?Nt(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(),At(),Et(),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(),At(),Et(),yt()}function Yt(){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(),At(),Et(),yt()}}function Bt(){return Te.length>0&&Te.every(ie=>Pe.some($e=>x($e.value,ie.value)))}function At(){const ie=ue.querySelector(".lat-combo__select-all");if(!ie)return;const $e=Bt();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}),er(),Te.length===0&&W.load&&!Qe&&!lt?St(0):$t())}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 Xt(){at||(we.focus(),xt())}function qt(){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 Mt(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]||Ft(Te[Xe]));ie<ut?He.scrollTop=ie:$e>ut+it&&(He.scrollTop=$e-it)}function Ft(ie){return te(ie)?52:30}function Ht(ie){return`${Oe}-opt-${ie}`}function Jt(ie,$e){const Me=R.createElement("div");Me.className="lat-combo__option",Me.setAttribute("role","option"),Me.id=Ht($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(),Wt($e)}),Me}function Qt(){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 $t(){if(Qt(),Ye&&(it=He.clientHeight||it),Te.length===0){de.style.height="0px",Pt(),dt&&dt.reposition();return}let ie=!1;for(let Re=0;Re<Te.length;Re++)rt[Re]==null&&(rt[Re]=Ft(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=Jt(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(Ht(Re));if(!Ke)continue;const ht=Ke.getBoundingClientRect().height;ht>0&&Math.abs(ht-rt[Re])>.5&&(rt[Re]=ht,ie=!0)}if(ie){$t();return}Pt(),dt&&dt.reposition()}function Pt(){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(),Ut()}),fe.appendChild(ie)}else Te.length===0&&!W.load&&Ot.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 Et(){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")}At()}function er(){it=He.clientHeight||240}function tr(){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()&&(Bt()?(Pe=[],Ue(),Et(),yt()):Yt())}),De.insertBefore(ie,He)}}function St(ie){if(at)return;if(typeof W.load!="function"){const Ge=ot.trim().toLowerCase(),Re=Ot.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);$t();return}if(Qe)return;Qe=!0,lt=!1,_t+=1;const $e=_t;qe&&qe.abort(),qe=new AbortController;const Me=qe.signal;Pt();let ze;try{ze=W.load({search:ot,page:ie,signal:Me,pageSize:ne})}catch{Qe=!1,lt=!0,Pt();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,$t(),Vt()};ze&&typeof ze.then=="function"?ze.then(We).catch(Ge=>{at||$e!==_t||Ge&&Ge.name==="AbortError"||(Qe=!1,lt=!0,Pt())}):We(ze)}function Vt(){if(!Be||Qe||!Ye)return;(et[Te.length]||0)<it+p&&St(Ze)}function Ut(){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,St(0))}function rr(){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);$t(),Vt();return}Te=[],Je=0,Be=!1,Qe=!1,lt=!1,Ze=0,rt.length=0,et.length=0,Xe=-1,St(0)}function nr(){st&&clearTimeout(st),st=setTimeout(()=>{st=null,rr()},k)}function or(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):Mt(1)}else if(ie.key==="ArrowUp"){if(ie.preventDefault(),!Ye){xt();return}if(Xe===-1){Te.length&&kt(0);return}Mt(-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(),Mt(Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="PageUp"){if(!Ye)return;ie.preventDefault(),Mt(-Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="Enter"){if(!Ye){xt();return}Xe===-1&&$e?(ie.preventDefault(),ar()):Xe>=0&&Te[Xe]&&(ie.preventDefault(),Wt(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 ar(){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 Wt(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 ir=()=>{Ye||(we.focus(),xt())},lr=ie=>{ie.stopPropagation(),Ye?ft():(we.focus(),xt())},sr=()=>{nr()},cr=ie=>{ie.stopPropagation()},ur=()=>{ut=He.scrollTop,$t(),Be&&!Qe&&He.scrollTop+He.clientHeight>=He.scrollHeight-p&&St(Ze)},dr=()=>{E.dispatchEvent(K(R,"focus"))},fr=()=>{E.dispatchEvent(K(R,"blur")),ft()};nt(he,"click",ir),nt(ke,"click",lr),nt(we,"input",sr),nt(we,"change",cr),nt(we,"keydown",or),nt(we,"focus",dr),nt(we,"blur",fr),nt(He,"scroll",ur),nt(He,"mousedown",ie=>ie.preventDefault()),tr(),Ot.length&&typeof W.load!="function"&&(ot="",St(0)),ae(J);const gt={el:E,root:ue,input:we,getValue:ct,setValue(ie){return ae(ie),gt},reload(){return Ut(),gt},clear(){return ve(),gt},open(){return xt(),gt},close(){return ft(),gt},focus(){return Xt(),gt},blur(){return qt(),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 jt.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`
1161
- .${U}__label-group{
1168
+ `.trim()}function n(E){const G=E&&E.documentElement;if(!G||G.getAttribute(N))return;G.setAttribute(N,"1");const R=E.createElement("style");R.textContent=i(),(E.head||E.body||G).appendChild(R)}function a(E){return/^(https?:|data:image\/|\/)/i.test(E)}function r(E){const G=String(E??"").trim();if(!G)return"";const R=G.split(/\s+/);return R.length>=2?(R[0][0]+R[1][0]).toUpperCase():G.slice(0,2).toUpperCase()}function s(E){let G=5381;const R=String(E??"");for(let ce=0;ce<R.length;ce++)G=(G<<5)+G+R.charCodeAt(ce)>>>0;return G}function M(E){if(E&&E.color!=null&&String(E.color)!=="")return String(E.color);const G=E&&E.label!=null?String(E.label):E&&E.value!=null?String(E.value):"";return`hsl(${s(G)%360}, 62%, 45%)`}function D(E,G){E.style.background=M(G),E.style.color="#fff"}function Y(E,G){const R=A[G];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 C=E.createElementNS(c,"path");C.setAttribute("d",xe),me?(C.setAttribute("fill","none"),C.setAttribute("stroke","currentColor"),C.setAttribute("stroke-width","1.5"),C.setAttribute("stroke-linecap","round"),C.setAttribute("stroke-linejoin","round")):C.setAttribute("fill","currentColor"),ce.appendChild(C)}return ce}function U(E,G,R){if(G==null||G==="")return null;let ce;if(G.nodeType)ce=G.cloneNode(!0),ce.setAttribute&&ce.setAttribute("aria-hidden","true");else{const me=String(G),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 Q(E,G){const R=E.createElement("span");R.className="lat-combo__avatar",R.setAttribute("aria-hidden","true");const ce=String(G.avatar);if(a(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=r(G.label),D(R,G)}),R.appendChild(me),R}return R.classList.add("lat-combo__avatar--initials"),R.textContent=ce.slice(0,2),D(R,G),R}const oe={r:255,g:255,b:255},F={r:20,g:24,b:28},K=3;function W(E){const G=E.split(/[,/\s]+/).filter(Boolean).map(Number);return G.length<3||G.some(R=>Number.isNaN(R))?null:{r:G[0],g:G[1],b:G[2]}}function ge(E,G){const R=String(G).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 C=/rgba?\(([^)]+)\)/.exec(me.getComputedStyle(xe).color||"");if(C)return W(C[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?W(ce[1]):null}function ve(E){const G=R=>{const ce=R/255;return ce<=.03928?ce/12.92:((ce+.055)/1.055)**2.4};return .2126*G(E.r)+.7152*G(E.g)+.0722*G(E.b)}function le(E,G){const R=ve(E),ce=ve(G),me=Math.max(R,ce),xe=Math.min(R,ce);return(me+.05)/(xe+.05)}function x(E,G){const R=ge(E,G);return R?le(R,oe)<K||le(R,F)<K:!0}function L(E,G){const R=E.createElement("span");R.className="lat-combo__dot",R.setAttribute("aria-hidden","true");const ce=String(G.dot);return R.style.background=ce,x(E,ce)&&R.setAttribute("data-ring","true"),R}function I(E,G){const R=G&&G.dot;if(R!=null&&R!=="")return L(E,G);const ce=G&&G.icon;if(ce!=null&&ce!=="")return U(E,ce,G.color);const me=G&&G.avatar;return me!=null&&me!==""?Q(E,G):null}function g(E,G,R){if(typeof R!="function")return null;const ce=R(G);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 T(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 z(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 z(E)!=null||E!=null&&typeof E=="object"&&(E.avatar!=null||E.icon!=null)}function re(E){const G=E!=null&&typeof E=="object"?E:{};return{value:T(E),label:X(E),description:z(E),avatar:G.avatar,icon:G.icon,color:G.color,dot:G.dot,disabled:G.disabled===!0}}function j(E){if(Array.isArray(E))return{items:E,total:E.length,hasMore:!1};if(E&&typeof E=="object"){const G=Array.isArray(E.items)?E.items:[];return{items:G,total:typeof E.total=="number"?E.total:G.length,hasMore:E.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function k(E,G){return E===G?!0:E!=null&&G!=null&&String(E)===String(G)}function Z(E,G,R={}){const ce=E&&E.defaultView;return ce&&ce.Event?new ce.Event(G,R):{type:G,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 H(E,G={}){const R=G.doc||E&&E.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;R&&(P(R),n(R),u(R));const ce=typeof G.t=="function"?G.t:ee,me=G.multiple===!0,xe=me&&["above","below"].includes(G.chipPlacement)?G.chipPlacement:"inside";R&&xe!=="inside"&&f(R);const C=typeof G.debounce=="number"&&G.debounce>=0?G.debounce:t,ne=typeof G.pageSize=="number"&&G.pageSize>0?G.pageSize:l,se=G.selectAll===!0,J=me?Array.isArray(G.value)?G.value:G.value==null?[]:[G.value]:G.value==null?null:G.value,ue=R.createElement("div");ue.className="lat-combo",me&&ue.setAttribute("data-multiple","true"),xe!=="inside"&&ue.setAttribute("data-chip-placement",xe),G.inForm||(ue.setAttribute("data-lattice-standalone","true"),ue.setAttribute("data-density",["compact","standard","comfortable"].includes(G.density)?G.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 Oe=R.createElement("div");Oe.className="lat-combo__chip-row",Oe.setAttribute("role","group"),Oe.hidden=!0;const Ae=xe==="inside"?be:Oe;typeof G.maxHeight=="number"&&(Ae.style.maxHeight=`${G.maxHeight}px`);const Ce=R.createElement("span");Ce.className="lat-combo__value",Ce.setAttribute("aria-hidden","true"),Ce.hidden=!0;const ye=R.createElement("input");ye.className="lat-combo__input",ye.type="text",ye.setAttribute("role","combobox"),ye.setAttribute("aria-autocomplete","list"),ye.setAttribute("aria-haspopup","listbox"),me&&ye.setAttribute("aria-multiselectable","true"),G.placeholder!=null&&(ye.placeholder=String(G.placeholder)),G.inForm&&G.ariaLabel!=null&&ye.setAttribute("aria-label",String(G.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=d(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 we=R.createElement("div");we.className="lat-combo__option lat-combo__option--create",we.setAttribute("role","option"),we.hidden=!0,He.insertBefore(we,de),De.appendChild(He),De.appendChild(fe),he.appendChild(De),xe!=="inside"?(he.appendChild(ye),he.appendChild(ke),Oe.appendChild(be),Oe.appendChild(Ee),xe==="above"&&ue.appendChild(Oe),ue.appendChild(he),xe==="below"&&ue.appendChild(Oe)):(he.appendChild(be),he.appendChild(Ee),he.appendChild(Ce),he.appendChild(ye),he.appendChild(ke),ue.appendChild(he));const Se=`lat-combo-lb-${wt()}`;He.id=Se,ye.setAttribute("aria-controls",Se);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,Ot=Array.isArray(G.options)?G.options:[],rt=[],et=[];let it=0,ut=0;const Lt=wt(),jt=[];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),jt.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(k(Me.value,ie))return Me}return null}function Nt(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 Tt(ie){if(typeof G.resolveLabels!="function")return;const $e=ie.filter(We=>We!=null&&!vt(We));if($e.length===0)return;const Me=G.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(Z(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}),Tt(Me),Ue(),At(),Et()}function pe(){return G.readOnly===!0}function _e(){Pe.length!==0&&(Pe=[],Ue(),At(),Et(),yt())}function je(ie){const $e=R.createElement("span");$e.className="lat-combo__chip",$e.dataset.value=String(ie.value);const Me=g(R,ie,G.selectedTemplate);if(Me){const ze=R.createElement("span");ze.className="lat-combo__chip-label",ze.appendChild(Me),$e.appendChild(ze)}else{const ze=I(R,ie);ze&&$e.appendChild(ze);const We=R.createElement("span");We.className="lat-combo__chip-label",We.textContent=Nt(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:Nt(ie.value)})),ze.textContent="×",nt(ze,"click",Ge=>{Ge.stopPropagation(),zt(ie.value)}),$e.appendChild(ze)}return $e}function Ve(){me||(ye.value=Pe.length?Nt(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=g(R,ie,G.selectedTemplate)||I(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"&&(Oe.hidden=!me||Pe.length===0,Oe.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=>!k(Me.value,ie)),Pe.length!==$e&&(Ue(),At(),Et(),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=>k(Me.value,ie)))return;Pe=[...Pe,$e]}else{if(Pe.length&&k(Pe[0].value,ie))return;Pe=[$e]}Ue(),At(),Et(),yt()}function Yt(){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(),At(),Et(),yt()}}function Bt(){return Te.length>0&&Te.every(ie=>Pe.some($e=>k($e.value,ie.value)))}function At(){const ie=ue.querySelector(".lat-combo__select-all");if(!ie)return;const $e=Bt();ie.setAttribute("aria-selected",$e?"true":"false"),ie.textContent=ce("form.combo.selectAll")}function xt(){Ye||at||G.disabled||(Ye=!0,De.hidden=!1,ye.setAttribute("aria-expanded","true"),ke.setAttribute("aria-expanded","true"),dt=w(De,he,{aboveClass:o,onOffscreen:ft}),er(),Te.length===0&&G.load&&!Qe&&!lt?St(0):$t())}function ft(){Ye&&(Ye=!1,De.hidden=!0,De.classList.remove(o),dt&&(dt.close(),dt=null),ye.setAttribute("aria-expanded","false"),ke.setAttribute("aria-expanded","false"),ye.removeAttribute("aria-activedescendant"))}function Xt(){at||(ye.focus(),xt())}function qt(){ye.blur()}function kt(ie){if(Xe=ie,!Ye)return;const $e=ie===-1?`${we.id}`:`${Se}-opt-${ie}`;ye.setAttribute("aria-activedescendant",$e)}function Mt(ie){const $e=we.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]||Ft(Te[Xe]));ie<ut?He.scrollTop=ie:$e>ut+it&&(He.scrollTop=$e-it)}function Ft(ie){return te(ie)?52:30}function Ht(ie){return`${Se}-opt-${ie}`}function Jt(ie,$e){const Me=R.createElement("div");Me.className="lat-combo__option",Me.setAttribute("role","option"),Me.id=Ht($e);const ze=Pe.some(Re=>k(Re.value,ie.value));Me.setAttribute("aria-selected",ze?"true":"false"),ie.disabled&&Me.setAttribute("aria-disabled","true");const We=g(R,ie,G.optionTemplate);if(We)Me.appendChild(We);else{const Re=I(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(),Wt($e)}),Me}function Qt(){const ie=G.newOptions&&!pe()&&ot.trim()!=="",$e=Te.some(Me=>k(Me.value,ot)||Me.label===ot);if(!ie||$e){we.hidden=!0;return}we.hidden=!1,we.id=`${Se}-create`,we.textContent=ce("form.combo.create",{query:ot}),Xe===-1&&kt(-1)}function $t(){if(Qt(),Ye&&(it=He.clientHeight||it),Te.length===0){de.style.height="0px",Pt(),dt&&dt.reposition();return}let ie=!1;for(let Re=0;Re<Te.length;Re++)rt[Re]==null&&(rt[Re]=Ft(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=Jt(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(Ht(Re));if(!Ke)continue;const ht=Ke.getBoundingClientRect().height;ht>0&&Math.abs(ht-rt[Re])>.5&&(rt[Re]=ht,ie=!0)}if(ie){$t();return}Pt(),dt&&dt.reposition()}function Pt(){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(),Ut()}),fe.appendChild(ie)}else Te.length===0&&!G.load&&Ot.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 Et(){const ie=`${Se}-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=>k(Ge.value,We.value))?"true":"false")}At()}function er(){it=He.clientHeight||240}function tr(){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()&&(Bt()?(Pe=[],Ue(),Et(),yt()):Yt())}),De.insertBefore(ie,He)}}function St(ie){if(at)return;if(typeof G.load!="function"){const Ge=ot.trim().toLowerCase(),Re=Ot.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);$t();return}if(Qe)return;Qe=!0,lt=!1,_t+=1;const $e=_t;qe&&qe.abort(),qe=new AbortController;const Me=qe.signal;Pt();let ze;try{ze=G.load({search:ot,page:ie,signal:Me,pageSize:ne})}catch{Qe=!1,lt=!0,Pt();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,$t(),Vt()};ze&&typeof ze.then=="function"?ze.then(We).catch(Ge=>{at||$e!==_t||Ge&&Ge.name==="AbortError"||(Qe=!1,lt=!0,Pt())}):We(ze)}function Vt(){if(!Be||Qe||!Ye)return;(et[Te.length]||0)<it+b&&St(Ze)}function Ut(){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,St(0))}function rr(){ot=ye.value,qe&&qe.abort(),_t+=1;const ie=pt.get(ot);if(ie&&typeof G.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);$t(),Vt();return}Te=[],Je=0,Be=!1,Qe=!1,lt=!1,Ze=0,rt.length=0,et.length=0,Xe=-1,St(0)}function nr(){st&&clearTimeout(st),st=setTimeout(()=>{st=null,rr()},C)}function or(ie){const $e=we.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):Mt(1)}else if(ie.key==="ArrowUp"){if(ie.preventDefault(),!Ye){xt();return}if(Xe===-1){Te.length&&kt(0);return}Mt(-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(),Mt(Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="PageUp"){if(!Ye)return;ie.preventDefault(),Mt(-Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="Enter"){if(!Ye){xt();return}Xe===-1&&$e?(ie.preventDefault(),ar()):Xe>=0&&Te[Xe]&&(ie.preventDefault(),Wt(Xe))}else ie.key==="Escape"?Ye&&(ie.preventDefault(),ft()):ie.key==="Backspace"&&me&&ye.value===""&&Pe.length?(ie.preventDefault(),zt(Pe[Pe.length-1].value)):ie.key==="Tab"&&ft()}function ar(){if(!G.newOptions||pe())return;const ie=ot.trim();if(ie==="")return;let $e;typeof G.newOptions=="object"&&typeof G.newOptions.create=="function"?$e=G.newOptions.create(ie):$e={value:ie,label:ie};const Me=re($e);mt(Me),Dt(Me.value),ft()}function Wt(ie){if(pe())return;const $e=Te[ie];!$e||$e.disabled||(me?(Pe.some(Me=>k(Me.value,$e.value))?zt($e.value):Dt($e.value),ye.focus()):(Dt($e.value),ft(),ye.value=$e.label))}const ir=()=>{Ye||(ye.focus(),xt())},lr=ie=>{ie.stopPropagation(),Ye?ft():(ye.focus(),xt())},sr=()=>{nr()},cr=ie=>{ie.stopPropagation()},ur=()=>{ut=He.scrollTop,$t(),Be&&!Qe&&He.scrollTop+He.clientHeight>=He.scrollHeight-b&&St(Ze)},dr=()=>{E.dispatchEvent(Z(R,"focus"))},fr=()=>{E.dispatchEvent(Z(R,"blur")),ft()};nt(he,"click",ir),nt(ke,"click",lr),nt(ye,"input",sr),nt(ye,"change",cr),nt(ye,"keydown",or),nt(ye,"focus",dr),nt(ye,"blur",fr),nt(He,"scroll",ur),nt(He,"mousedown",ie=>ie.preventDefault()),tr(),Ot.length&&typeof G.load!="function"&&(ot="",St(0)),ae(J);const gt={el:E,root:ue,input:ye,getValue:ct,setValue(ie){return ae(ie),gt},reload(){return Ut(),gt},clear(){return _e(),gt},open(){return xt(),gt},close(){return ft(),gt},focus(){return Xt(),gt},blur(){return qt(),gt},setDisabled(ie){G.disabled=ie,ye.disabled=ie,ke.disabled=ie,ie&&ft()},setReadOnly(ie){G.readOnly=ie,ye.readOnly=ie,ie?ye.setAttribute("aria-readonly","true"):ye.removeAttribute("aria-readonly"),Ue()},destroy(){ft(),at=!0,st&&clearTimeout(st),qe&&qe.abort();for(const ie of jt.splice(0))ie();for(;ue.firstChild;)ue.removeChild(ue.firstChild)}};return E.appendChild(ue),E.__combo=gt,gt}V("combo",{kind:"field",build(E,G){const R=G.doc.createElement("div"),ce=E.props||{},me=H(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:G.t,doc:G.doc,inForm:!0});if(G.disposers.push(()=>me.destroy()),Array.isArray(ce.dependsOn))for(const xe of ce.dependsOn){const C=se=>{se.name===xe&&(me.clear(),me.reload())},ne=G.emitter.on("change",C);G.disposers.push(ne)}return R.focus=()=>me.focus(),R.blur=()=>me.blur(),R},read(E){return E.__combo?E.__combo.getValue():null},write(E,G){E.__combo&&E.__combo.setValue(G)},state(E,G){E.__combo&&(E.__combo.setDisabled(G.disabled===!0),E.__combo.setReadOnly(G.readOnly===!0))}})}),Ne("packages/modules/form/extras.js",function(S,q){"use strict";Object.defineProperty(S,"injectChromeStyles",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"buildTooltip",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"renderAvatarAddon",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"buildAddons",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"buildPanel",{enumerable:!0,get:function(){return m}});const V=q("packages/modules/form/styles.js").NS,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/combo.js"),y=P.initialsFor,A=P.renderAvatar,B="data-lattice-form-chrome-styles";function O(f){return f==="cols"?`${V}__cols`:f==="items"?`${V}__items`:`${V}__rows`}function v(){return`
1169
+ .${V}__label-group{
1162
1170
  display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
1163
1171
  min-width:0; box-sizing:border-box;
1164
1172
  }
1165
- .${U}__item[data-label-position='top'] .${U}__label-group{
1173
+ .${V}__item[data-label-position='top'] .${V}__label-group{
1166
1174
  margin-bottom:var(--lattice-form-label-gap);
1167
1175
  }
1168
- .${U}__item[data-label-position='top'] .${U}__label-group .${U}__label{ margin-bottom:0; }
1169
- .${U}__tooltip-wrap{ position:relative; display:inline-flex; flex:0 0 auto; }
1170
- .${U}__tooltip-trigger{
1176
+ .${V}__item[data-label-position='top'] .${V}__label-group .${V}__label{ margin-bottom:0; }
1177
+ .${V}__tooltip-wrap{ position:relative; display:inline-flex; flex:0 0 auto; }
1178
+ .${V}__tooltip-trigger{
1171
1179
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
1172
1180
  box-sizing:border-box; width:calc(var(--lattice-font-size) * 1.35);
1173
1181
  height:calc(var(--lattice-font-size) * 1.35); min-height:0;
@@ -1176,13 +1184,13 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1176
1184
  color:var(--lattice-foreground-muted); font:inherit; line-height:1;
1177
1185
  font-weight:600; cursor:pointer;
1178
1186
  }
1179
- .${U}__tooltip-trigger:hover,
1180
- .${U}__tooltip-trigger:focus-visible{
1187
+ .${V}__tooltip-trigger:hover,
1188
+ .${V}__tooltip-trigger:focus-visible{
1181
1189
  color:var(--lattice-foreground);
1182
1190
  background:color-mix(in srgb, var(--lattice-foreground-muted) 28%, transparent);
1183
1191
  }
1184
- .${U}__tooltip-trigger:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1185
- .${U}__tooltip{
1192
+ .${V}__tooltip-trigger:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1193
+ .${V}__tooltip{
1186
1194
  position:absolute; z-index:20; bottom:calc(100% + var(--lattice-space) / 2); left:50%;
1187
1195
  transform:translateX(-50%); box-sizing:border-box; width:max-content; max-width:280px;
1188
1196
  padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
@@ -1192,11 +1200,11 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1192
1200
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.35; white-space:normal;
1193
1201
  opacity:0; pointer-events:none;
1194
1202
  }
1195
- .${U}__tooltip--open{ opacity:1; }
1203
+ .${V}__tooltip--open{ opacity:1; }
1196
1204
  /* A read-only field's lock sits inside the control's right edge (the control
1197
1205
  wrapper is the input's box, so the inset matches the field's own padding). */
1198
- .${U}__control{ position:relative; }
1199
- .${U}__lock{
1206
+ .${V}__control{ position:relative; }
1207
+ .${V}__lock{
1200
1208
  position:absolute; top:50%; right:calc(var(--lattice-space) * 1.5);
1201
1209
  transform:translateY(-50%); z-index:1; pointer-events:none;
1202
1210
  display:inline-flex; align-items:center; justify-content:center;
@@ -1204,59 +1212,59 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1204
1212
  height:calc(var(--lattice-control-size) * var(--lattice-scale));
1205
1213
  color:var(--lattice-foreground-muted);
1206
1214
  }
1207
- .${U}__lock[hidden]{ display:none; }
1208
- .${U}__control--lock input,
1209
- .${U}__control--lock textarea{
1215
+ .${V}__lock[hidden]{ display:none; }
1216
+ .${V}__control--lock input,
1217
+ .${V}__control--lock textarea{
1210
1218
  padding-right:calc(var(--lattice-space) * 1.5 + (var(--lattice-control-size) * var(--lattice-scale)) + calc(var(--lattice-space) / 2));
1211
1219
  }
1212
- .${U}__field{
1220
+ .${V}__field{
1213
1221
  display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
1214
1222
  min-width:0; flex:1 1 auto;
1215
1223
  }
1216
- .${U}__addons{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1217
- .${U}__addon{
1224
+ .${V}__addons{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1225
+ .${V}__addon{
1218
1226
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
1219
1227
  flex:0 0 auto; width:var(--lattice-row-height); height:var(--lattice-row-height); min-height:0;
1220
1228
  padding:0; margin:0; border:var(--lattice-border-width) solid var(--lattice-border-color);
1221
1229
  border-radius:50%; background:var(--lattice-background); color:var(--lattice-foreground);
1222
1230
  font:inherit; line-height:1; cursor:pointer; text-decoration:none;
1223
1231
  }
1224
- .${U}__addon:hover, .${U}__addon:focus-visible{ border-color:var(--lattice-accent); color:var(--lattice-accent); }
1225
- .${U}__addon:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1226
- .${U}__addon:disabled, .${U}__addon[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1227
- .${U}__icon-glyph{ font-size:calc(var(--lattice-font-size) - 1px); line-height:1; }
1228
- .${U}__addon-avatar{
1232
+ .${V}__addon:hover, .${V}__addon:focus-visible{ border-color:var(--lattice-accent); color:var(--lattice-accent); }
1233
+ .${V}__addon:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1234
+ .${V}__addon:disabled, .${V}__addon[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
1235
+ .${V}__icon-glyph{ font-size:calc(var(--lattice-font-size) - 1px); line-height:1; }
1236
+ .${V}__addon-avatar{
1229
1237
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
1230
1238
  width:var(--lattice-row-height); height:var(--lattice-row-height);
1231
1239
  }
1232
- .${U}__addon-avatar .lat-combo__avatar{
1240
+ .${V}__addon-avatar .lat-combo__avatar{
1233
1241
  width:var(--lattice-row-height); height:var(--lattice-row-height);
1234
1242
  font-size:calc(var(--lattice-font-size) - 1px);
1235
1243
  }
1236
- .${U}__panel{
1244
+ .${V}__panel{
1237
1245
  display:flex; flex-direction:column; box-sizing:border-box; min-width:0; min-height:0;
1238
1246
  border:var(--lattice-border-width) solid var(--lattice-border-color);
1239
1247
  border-radius:var(--lattice-radius); background:var(--lattice-background);
1240
1248
  padding:calc(var(--lattice-space) * 1.5);
1241
1249
  }
1242
- .${U}__panel[hidden]{ display:none; }
1243
- .${U}__panel-header{
1250
+ .${V}__panel[hidden]{ display:none; }
1251
+ .${V}__panel-header{
1244
1252
  display:flex; align-items:flex-start; justify-content:space-between; gap:var(--lattice-space);
1245
1253
  box-sizing:border-box; padding-bottom:calc(var(--lattice-space) * 1.25);
1246
1254
  border-bottom:var(--lattice-border-width) solid var(--lattice-border-color);
1247
1255
  margin-bottom:calc(var(--lattice-space) * 1.25);
1248
1256
  }
1249
- .${U}__panel-heading{ display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 4); min-width:0; }
1250
- .${U}__panel-title{
1257
+ .${V}__panel-heading{ display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 4); min-width:0; }
1258
+ .${V}__panel-title{
1251
1259
  margin:0; font-size:calc(var(--lattice-font-size) + 1px); font-weight:600; line-height:1.3;
1252
1260
  color:var(--lattice-foreground);
1253
1261
  }
1254
- .${U}__panel-subtitle{
1262
+ .${V}__panel-subtitle{
1255
1263
  margin:0; color:var(--lattice-foreground-muted);
1256
1264
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.4;
1257
1265
  }
1258
- .${U}__panel-actions{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1259
- .${U}__panel-action{
1266
+ .${V}__panel-actions{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
1267
+ .${V}__panel-action{
1260
1268
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
1261
1269
  flex:0 0 auto; width:calc(var(--lattice-row-height) - var(--lattice-space) / 2);
1262
1270
  height:calc(var(--lattice-row-height) - var(--lattice-space) / 2); min-height:0;
@@ -1264,27 +1272,27 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1264
1272
  background:transparent; color:var(--lattice-foreground-muted);
1265
1273
  font:inherit; line-height:1; cursor:pointer;
1266
1274
  }
1267
- .${U}__panel-action:hover, .${U}__panel-action:focus-visible{
1275
+ .${V}__panel-action:hover, .${V}__panel-action:focus-visible{
1268
1276
  color:var(--lattice-foreground);
1269
1277
  background:color-mix(in srgb, var(--lattice-foreground-muted) 16%, transparent);
1270
1278
  }
1271
- .${U}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1272
- .${U}__panel-body{ min-width:0; min-height:0; }
1273
- .${U}__panel-body[hidden]{ display:none; }
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`
1275
- .${U}__separator--labelled{
1279
+ .${V}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
1280
+ .${V}__panel-body{ min-width:0; min-height:0; }
1281
+ .${V}__panel-body[hidden]{ display:none; }
1282
+ `.trim()}function d(f){const N=f&&f.documentElement;if(!N||(h(f),N.getAttribute(B)))return;N.setAttribute(B,"1");const c=f.createElement("style");c.textContent=v(),(f.head||f.body||N).appendChild(c)}function u(f,N,c,i){N.addEventListener(c,i),f.disposers.push(()=>N.removeEventListener(c,i))}function _(f,N){if(N==null||N==="")return null;if(N.nodeType){const n=N.cloneNode(!0);return n.setAttribute&&n.setAttribute("aria-hidden","true"),n}const c=ee(f,String(N));if(c)return c;const i=f.createElement("span");return i.className=`${V}__icon-glyph`,i.setAttribute("aria-hidden","true"),i.textContent=String(N).slice(0,2),i}function w(f,N){const{labelEl:c,item:i,labelPosition:n,labelWidth:a}=N,r=i.tooltip;if(typeof r!="string"||r===""||n==="hidden")return null;d(f.doc);const s=f.doc,M=s.createElement("div");M.className=`${V}__label-group`,n==="left"&&a!=null&&(M.style.flex=`0 0 ${typeof a=="number"?`${a}px`:String(a)}`),M.appendChild(c);const D=`lat-form-tip-${w.seq=(w.seq||0)+1}`,Y=s.createElement("span");Y.className=`${V}__tooltip-wrap`;const U=s.createElement("button");U.type="button",U.className=`${V}__tooltip-trigger`,U.setAttribute("aria-label",f.t("form.tooltip.help")),U.setAttribute("aria-expanded","false"),U.setAttribute("aria-controls",D),U.textContent="?";const Q=s.createElement("span");Q.className=`${V}__tooltip`,Q.setAttribute("id",D),Q.setAttribute("role","tooltip"),Q.textContent=r,Y.appendChild(U),Y.appendChild(Q),M.appendChild(Y);let oe=!1;const F=()=>{U.setAttribute("aria-expanded","true"),Q.classList.add(`${V}__tooltip--open`)},K=()=>{oe||(U.setAttribute("aria-expanded","false"),Q.classList.remove(`${V}__tooltip--open`))};return u(f,U,"mouseenter",F),u(f,U,"mouseleave",K),u(f,U,"focus",F),u(f,U,"blur",K),u(f,U,"click",W=>{W.stopPropagation(),oe=!oe,oe?F():K()}),{group:M,tooltipId:D}}function t(f,N,c,i){const n=i&&i.tagName;if(!(c.lockIcon!==!1&&(n==="INPUT"||n==="TEXTAREA")&&(c.readOnly===!0||c.readOnlyWhen!=null)))return null;d(f.doc);const r=f.doc.createElement("span");r.className=`${V}__lock`,r.setAttribute("aria-hidden","true"),r.title=f.t("form.readonly");const s=ee(f.doc,"lock");return s&&r.appendChild(s),N.appendChild(r),{el:r}}function o(f,N){if(!Array.isArray(f))return null;const c=N==null?"":String(N);for(const i of f){if(i!=null&&typeof i=="object"&&Array.isArray(i.options)){const n=o(i.options,N);if(n)return n;continue}if(i!=null&&typeof i=="object"){const n=i.value==null?"":String(i.value);if(n===c)return{label:i.label!=null?String(i.label):n,avatar:i.avatar,color:i.color}}else{const n=String(i);if(n===c)return{label:n,avatar:void 0,color:void 0}}}return null}function l(f,N,c){let i=null,n=N==null?"":String(N),a;if(typeof f=="function")i=f(N,c);else if(f===!0){const r=o(c.options,N);r&&(n=r.label,a=r.color,r.avatar!=null&&r.avatar!==""&&(i=String(r.avatar)))}else i=String(f);if(i==null||i===""){if(n==null||n==="")return null;i=y(n)}return{avatar:i,label:n,color:a}}function b(f,N,c,i,n){for(;N.firstChild;)N.removeChild(N.firstChild);const a=l(c.avatar,i,n);a&&N.appendChild(A(f,a))}function p(f,N){const c=N.addons;if(!Array.isArray(c)||c.length===0)return null;d(f.doc);const i=f.doc,n=i.createElement("div");n.className=`${V}__addons`;const a=[];for(const r of c){if(r==null||typeof r!="object")continue;if(r.avatar!==void 0&&r.avatar!==null&&r.avatar!==!1){const U=i.createElement("span");U.className=`${V}__addon-avatar`,U.setAttribute("aria-hidden","true"),n.appendChild(U),a.push({el:U,spec:r,avatar:!0});continue}const M=r.href,D=i.createElement(M!=null?"a":"button");D.className=`${V}__addon`,M==null?D.type="button":D.href=String(M),r.ariaLabel!=null&&r.ariaLabel!==""&&(D.setAttribute("aria-label",String(r.ariaLabel)),D.title=r.tooltip!=null&&r.tooltip!==""?String(r.tooltip):String(r.ariaLabel));const Y=_(i,r.icon);Y&&D.appendChild(Y),n.appendChild(D),a.push({el:D,spec:r,avatar:!1})}return{bar:n,entries:a}}function m(f,N,c,i,n){d(f.doc);const a=f.doc,r=a.createElement("section");r.className=`${V}__panel`;const s=a.createElement("div");s.className=`${V}__panel-header`;const M=a.createElement("div");if(M.className=`${V}__panel-heading`,N.title!=null){const U=a.createElement("h3");U.className=`${V}__panel-title`,U.textContent=N.title,M.appendChild(U)}if(N.subtitle!=null){const U=a.createElement("p");U.className=`${V}__panel-subtitle`,U.textContent=N.subtitle,M.appendChild(U)}s.appendChild(M);const D=a.createElement("div");D.className=`${V}__panel-actions`,s.appendChild(D),r.appendChild(s);const Y=a.createElement("div");Y.className=`${V}__panel-body`,N.axis&&(Y.classList.add(O(N.axis)),n.buildChildren(f,Y,N.blocks,N.axis,i)),r.appendChild(Y);for(const U of N.actions){const Q=a.createElement("button");Q.type="button",Q.className=`${V}__panel-action`,U.ariaLabel!=null&&U.ariaLabel!==""&&(Q.setAttribute("aria-label",String(U.ariaLabel)),Q.title=String(U.ariaLabel));const oe=_(a,U.icon);oe&&Q.appendChild(oe),typeof U.onClick=="function"&&u(f,Q,"click",()=>{U.onClick()}),D.appendChild(Q)}if(N.collapsible){const U=a.createElement("button");U.type="button",U.className=`${V}__panel-action ${V}__panel-collapse`,U.setAttribute("aria-expanded","true");const Q=f.t("form.panel.collapse");U.setAttribute("aria-label",Q),U.title=Q;const oe=ee(a,"chevronUp");oe&&U.appendChild(oe);let F=!1;u(f,U,"click",()=>{F=!F,Y.hidden=F,U.setAttribute("aria-expanded",F?"false":"true");const K=f.t(F?"form.panel.expand":"form.panel.collapse");for(U.setAttribute("aria-label",K),U.title=K;U.firstChild;)U.removeChild(U.firstChild);const W=ee(a,F?"chevronDown":"chevronUp");W&&U.appendChild(W)}),D.appendChild(U)}return n.applyCss(r,N.css),N.spacing!=null&&r.style.setProperty("--lattice-form-item-gap",N.spacing),N.hidden&&(r.hidden=!0),c.appendChild(r),r}}),Ne("packages/modules/form/view.js",function(S,q){"use strict";Object.defineProperty(S,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"applyCss",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"runValidation",{enumerable:!0,get:function(){return W}}),Object.defineProperty(S,"markValidation",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(S,"validateItem",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(S,"buildItem",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"buildBlock",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"buildChildren",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"mount",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"wizardGoTo",{enumerable:!0,get:function(){return z}}),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"),V=e.NS,$=e.injectColsBreakpoint,ee=e.NEVER_STACK_COLS_CONTAINER,h=q("packages/modules/form/model.js"),P=h.cssSize,y=h.isEmpty,B=q("packages/modules/form/controls/registry.js").resolveControl,v=q("packages/modules/form/rules.js").applyRules,u=q("packages/modules/form/state.js").syncRecordState,w=q("packages/modules/form/stepper.js").createStepper,t=q("packages/modules/form/validation.js"),o=t.normalizeHookResult,l=t.validateValue,b=q("packages/modules/form/extras.js"),p=b.buildTooltip,m=b.buildLock,f=b.buildAddons,N=b.renderAvatarAddon,c=b.buildPanel,i="data-lattice-separator-label-styles";function n(){return`
1283
+ .${V}__separator--labelled{
1276
1284
  display:flex; align-items:center; gap:var(--lattice-space);
1277
1285
  border-top:0; margin:var(--lattice-space) 0; width:100%;
1278
1286
  }
1279
- .${U}__separator--labelled .${U}__separator-rule{
1287
+ .${V}__separator--labelled .${V}__separator-rule{
1280
1288
  flex:1 1 auto; min-width:0; height:0;
1281
1289
  border-top:var(--lattice-border-width) solid var(--lattice-border-color);
1282
1290
  }
1283
- .${U}__separator--labelled .${U}__separator-label{
1291
+ .${V}__separator--labelled .${V}__separator-label{
1284
1292
  color:var(--lattice-foreground-muted);
1285
1293
  font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
1286
1294
  }
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`
1295
+ `.trim()}function a(j){const k=j&&j.documentElement;if(!k||k.getAttribute(i))return;k.setAttribute(i,"1");const Z=j.createElement("style");Z.textContent=n(),(j.head||j.body||k).appendChild(Z)}function r(j,k){if(k!=null){if(typeof k=="string"){if(k.trim()){const Z=typeof j.style.cssText=="string"?j.style.cssText:"";j.style.cssText=Z?`${Z};${k}`:k}return}for(const Z of Object.keys(k))j.style[Z]=k[Z]}}function s(j){return j==="cols"?`${V}__cols`:j==="items"?`${V}__items`:`${V}__rows`}function M(j,k,Z,H){k.addEventListener(Z,H),j.disposers.push(()=>k.removeEventListener(Z,H))}function D(j){return j.uidSeq+=1,`lat-form-${j.uidSeq}`}function Y(j){if(j==null)return null;const k=j.tagName;return k==="INPUT"||k==="TEXTAREA"||k==="SELECT"?j:typeof j.querySelector=="function"?j.querySelector("input, textarea, select"):null}function U(j,k,Z){const H={name:k.item.name,value:Z,previousValue:k.value,item:k.item},E=j.emitter.emitBefore("beforeChange",H,"user"),G=()=>{k.value=Z,k.item.value=Z,K(k),j.emitter.emit("change",{name:k.item.name,value:Z,previousValue:H.previousValue,item:k.item}),v(j),k.item.validationMode==="change"&&ve(j,k)},R=me=>{k.def.write(k.control,k.value),F(j,k,me)},ce=me=>{if(!me){k.def.write(k.control,k.value);return}const xe=Q(j,k,Z);xe&&typeof xe.then=="function"?xe.then(C=>{C.ok?G():R(C.message)}):xe.ok?G():R(xe.message)};E&&typeof E.then=="function"?E.then(ce):ce(E)}function Q(j,k,Z){if(k.ruleRequired&&y(Z))return{ok:!1,message:j.t("form.required")};const H=k.def;if(typeof H.validate!="function")return{ok:!0,message:null};const E=H.validate(k.control,k.item,Z);return E&&typeof E.then=="function"?E.then(G=>oe(j,G)):oe(j,E)}function oe(j,k){return k===!1?{ok:!1,message:j.t("form.invalid")}:typeof k=="string"?{ok:!1,message:k}:{ok:!0,message:null}}function F(j,k,Z){let H=k.errorEl;H||(H=j.doc.createElement("div"),H.className=`${V}__error`,H.id=D(j),k.controlWrap.appendChild(H),k.errorEl=H);const E=Z==null||Z===""?j.t("form.invalid"):String(Z);H.textContent=E,k.el.setAttribute("data-invalid","true"),k.control.setAttribute("aria-invalid","true");const G=(k.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!k.validationEl.hidden&&k.validationEl.textContent===E&&G.includes(k.validationEl.id))&&!G.includes(H.id)&&(G.push(H.id),k.control.setAttribute("aria-describedby",G.join(" ")))}function K(j){j.errorEl&&(j.errorEl.remove(),j.errorEl=null),j.el.removeAttribute("data-invalid"),j.control.removeAttribute("aria-invalid")}function W(j,k){const Z=k.value,H=k.item;if(typeof k.def.validate=="function"){const E=o(k.def.validate(k.control,H,Z),H,j.t);if(E)return E}return l(H,Z,j.t,k.ruleRequired===!0)}function ge(j,k,Z){const H=k.item,E=k.validationEl;if(k.validation.pristine=!1,k.preEl&&(k.preEl.hidden=!0),Z){k.validation.valid=!1,k.validation.code=Z.code,k.validation.message=Z.message,k.control.setAttribute("aria-invalid","true");const G=k.tooltipId?`${k.tooltipId} ${E.id}`:E.id;k.control.setAttribute("aria-describedby",G),E.textContent=Z.message,E.className=`${V}__validation ${V}__validation--error`,E.hidden=!1;return}k.validation.valid=!0,k.validation.code=null,k.validation.message=null,k.control.removeAttribute("aria-invalid"),k.tooltipId?k.control.setAttribute("aria-describedby",k.tooltipId):k.control.removeAttribute("aria-describedby"),typeof H.successMessage=="string"&&H.successMessage!==""?(E.textContent=H.successMessage,E.className=`${V}__validation ${V}__validation--success`,E.hidden=!1):(E.textContent="",E.className=`${V}__validation`,E.hidden=!0)}function ve(j,k){typeof k.def.reset=="function"&&k.def.reset(k.control,k.item);const Z=W(j,k);ge(j,k,Z);const H=Z==null;return j.emitter.emit("validated",{name:k.item.name,item:k.item,value:k.value,valid:H,failures:Z?[{name:k.item.name,rule:Z.code,message:Z.message}]:[]}),H}function le(j,k){const Z=k.control,H=k.item,E=k.def,G=R=>()=>{j.emitter.emit(R,{name:H.name,item:H}),R==="blur"&&H.validationMode==="blur"&&ve(j,k)};if(E.kind==="field"){const R=()=>{j.emitter.emit("input",{name:H.name,value:E.read(Z,H),item:H})},ce=()=>{U(j,k,E.read(Z,H))};M(j,Z,"input",R),M(j,Z,"change",ce);for(const me of E.domEvents||[])M(j,Z,me,C=>{const ne=C&&typeof C=="object"&&C.detail&&typeof C.detail=="object"?C.detail:null;j.emitter.emit(me,ne?{name:H.name,item:H,...ne}:{name:H.name,value:E.read(Z,H),item:H})})}else E.kind==="toggle"?M(j,Z,"change",()=>{U(j,k,E.read(Z,H))}):E.kind==="button"&&M(j,Z,"click",()=>{Z.disabled||Z.getAttribute("aria-disabled")==="true"||j.emitter.emit("click",{name:H.name,item:H,value:null})});E.kind!=="display"&&(M(j,Z,"focus",G("focus")),M(j,Z,"blur",G("blur")))}function x(j,k){if(typeof j=="string"&&/%$/.test(j.trim())){const Z=parseFloat(j);if(Number.isFinite(Z)){const H=Math.round(Z*k/100*1e6)/1e6;return`0 0 calc(${Z}% - ${H} * var(--lattice-space))`}}return`0 0 ${P(j)}`}function L(j,k,Z,H={}){const E=B(k.type)||B("text"),G=k.labelPosition!=null?k.labelPosition:H.labelPosition!=null?H.labelPosition:"top",R=k.labelWidth!=null?k.labelWidth:H.labelWidth,ce=k.requiredHint!==void 0?k.requiredHint:H.requiredHint,me=j.doc.createElement("div");me.className=`${V}__item`,me.setAttribute("data-label-position",G);const xe=E.build(k,j),C=E.action===!0,ne=!C&&k.label!=null&&k.label!=="";let se=null,J=null;if(ne){se=j.doc.createElement("label"),se.className=`${V}__label`,se.textContent=String(k.label);const ke=D(j);se.setAttribute("for",ke),(Y(xe)||xe).id=ke,G==="hidden"&&se.classList.add(`${V}__label--hidden`);const Le=p(j,{labelEl:se,item:k,labelPosition:G,labelWidth:R});Le?(J=Le.tooltipId,me.appendChild(Le.group)):(G==="left"&&R!=null&&(se.style.flex=`0 0 ${P(R)}`),me.appendChild(se))}else if(G==="hidden"&&!C){const ke=Y(xe);ke&&k.placeholder!=null&&k.placeholder!==""&&ke.setAttribute("aria-label",String(k.placeholder))}const ue=j.doc.createElement("div");ue.className=`${V}__control`,ue.appendChild(xe);const he=m(j,ue,k,xe),be=f(j,k);let Ee=ue;if(be&&(Ee=j.doc.createElement("div"),Ee.className=`${V}__field`,Ee.appendChild(ue),Ee.appendChild(be.bar)),me.appendChild(Ee),!C&&k.helpMessage!=null&&k.helpMessage!==""){const ke=j.doc.createElement("div");ke.className=`${V}__help`,ke.textContent=String(k.helpMessage),ue.appendChild(ke)}let Oe=null;!C&&k.preMessage!=null&&k.preMessage!==""&&(Oe=j.doc.createElement("div"),Oe.className=`${V}__pre`,Oe.textContent=String(k.preMessage),ue.appendChild(Oe));const Ae=j.doc.createElement("div");Ae.className=`${V}__validation`,Ae.id=D(j),Ae.hidden=!0,ue.appendChild(Ae),k.width!=null&&(H.colsGapCount!=null?me.style.setProperty("--lattice-item-flex",x(k.width,H.colsGapCount)):me.style.flex=`0 0 ${P(k.width)}`),G==="left"&&(Ee.style.flex="1 1 auto"),C&&G==="left"&&R!=null&&!(k.props&&k.props.fullWidth===!0)&&(Ee.style.paddingLeft=`calc(${P(R)} + var(--lattice-space))`),r(me,k.css);const Ce=E.read(xe,k),ye={item:k,el:me,control:xe,controlWrap:ue,def:E,value:Ce,hidden:k.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ae,preEl:Oe,labelEl:se,labelPosition:G,requiredHint:ce,placeholderEl:Y(xe),placeholderBase:k.placeholder!=null?String(k.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:J,lockEl:he?he.el:null};if(k.value=Ce,J&&ye.control.setAttribute("aria-describedby",J),be)for(const ke of be.entries){if(ke.avatar){N(j.doc,ke.el,ke.spec,ye.value,ye.item);continue}typeof ke.spec.onClick=="function"&&M(j,ke.el,"click",()=>{ke.spec.onClick(ye.value,ye.item)})}if(ye.syncLock=()=>{if(!ye.lockEl)return;const ke=ye.item.readOnly===!0||ye.ruleReadOnly;ye.lockEl.hidden=!ke,ye.lockEl.parentElement.classList.toggle(`${V}__control--lock`,ke)},ye.syncAddons=()=>{if(!be)return;const ke=ye.item.disabled===!0;for(const Le of be.entries){if(Le.avatar){N(j.doc,Le.el,Le.spec,ye.value,ye.item);continue}Le.el.tagName==="A"?Le.el.setAttribute("aria-disabled",ke?"true":"false"):Le.el.disabled=ke}},u(ye),ye.hidden&&(me.hidden=!0),E.custom&&xe.__latticeFormApi){const ke=xe.__latticeFormApi;ke._read=()=>ye.value,ke._write=Le=>{ye.value=Le,ye.item.value=Le,E.write(xe,Le),v(j)},ke._commit=Le=>{U(j,ye,Le)},ke._input=Le=>{j.emitter.emit("input",{name:ye.item.name,value:Le,item:ye.item})}}return typeof E.destroy=="function"&&j.disposers.push(()=>E.destroy(xe)),le(j,ye),j.order.push(ye),k.name!=null&&j.items.set(k.name,ye),Z.appendChild(me),ye}function I(j,k,Z,H={}){const E={labelPosition:k.labelPosition!=null?k.labelPosition:H.labelPosition,labelWidth:k.labelWidth!=null?k.labelWidth:H.labelWidth,requiredHint:H.requiredHint};if(k.kind==="panel")return c(j,k,Z,E,{buildChildren:g,applyCss:r});if(k.kind==="spacer"){const R=j.doc.createElement("div");return R.className=`${V}__spacer`,r(R,k.css),k.hidden&&(R.hidden=!0),Z.appendChild(R),R}if(k.kind==="separator"){const R=j.doc.createElement("div");R.className=`${V}__separator`,R.setAttribute("role","separator");const ce=k.label;if(ce!=null){a(j.doc),R.classList.add(`${V}__separator--labelled`);const me=j.t(ce);R.setAttribute("aria-label",me);const xe=j.doc.createElement("span");xe.className=`${V}__separator-rule`,xe.setAttribute("aria-hidden","true");const C=j.doc.createElement("span");C.className=`${V}__separator-label`,C.textContent=me;const ne=j.doc.createElement("span");ne.className=`${V}__separator-rule`,ne.setAttribute("aria-hidden","true"),R.appendChild(xe),R.appendChild(C),R.appendChild(ne)}else R.setAttribute("aria-label",j.t("form.separator"));return r(R,k.css),k.hidden&&(R.hidden=!0),Z.appendChild(R),R}if(k.kind==="fieldset"){const R=j.doc.createElement("fieldset");if(R.className=`${V}__fieldset`,k.legend!=null){const me=j.doc.createElement("legend");me.className=`${V}__legend`,me.textContent=k.legend,R.appendChild(me)}const ce=j.doc.createElement("div");return ce.className=`${V}__fieldset-body`,k.axis&&ce.classList.add(s(k.axis)),k.axis&&g(j,ce,k.blocks,k.axis,E),R.appendChild(ce),r(R,k.css),k.spacing!=null&&R.style.setProperty("--lattice-form-item-gap",k.spacing),k.hidden&&(R.hidden=!0),Z.appendChild(R),R}const G=j.doc.createElement("div");return G.className=s(k.axis),k.axis&&g(j,G,k.blocks,k.axis,E),r(G,k.css),k.spacing!=null&&G.style.setProperty("--lattice-form-item-gap",k.spacing),k.hidden&&(G.hidden=!0),Z.appendChild(G),G}function g(j,k,Z,H,E={}){const G=H==="cols"?{...E,colsGapCount:Z.length-1}:E;for(const R of Z)R.kind==="item"?L(j,R,k,G):I(j,R,k,E)}function T(j){const k=j.el;for(;k.firstChild;)k.removeChild(k.firstChild);j.items.clear(),j.order.length=0;const Z=j.model;k.classList.add(V,s(Z.axis)),k.setAttribute("data-density",Z.density),Z.colsBreakpoint===!1?k.style.setProperty("--lattice-cols-container",ee):Z.colsBreakpoint!==480&&k.style.setProperty("--lattice-cols-container",$(j.doc,Z.colsBreakpoint)),j.disposers.push(()=>{k.classList.remove(`${V}__rows`,`${V}__cols`,`${V}__items`)}),r(k,Z.css),Z.spacing!=null&&k.style.setProperty("--lattice-form-item-gap",Z.spacing),Z.labelGap!=null&&k.style.setProperty("--lattice-form-label-gap",Z.labelGap);const H={labelPosition:Z.labelPosition,labelWidth:Z.labelWidth,requiredHint:Z.requiredHint};Z.steps&&Z.steps.length?X(j,H):g(j,k,Z.blocks,Z.axis==="cols"?"cols":"rows",H),v(j)}function X(j,k={}){const Z=j.model,H=Z.steps,E=j.doc,G=j.el,R=E.createElement("div");G.appendChild(R);const ce=w(R,{doc:E,t:j.t,steps:H.map(be=>({id:be.id,label:be.label})),active:0,orientation:Z.stepOrientation,onGoTo:be=>{z(j,be)}}),me=[];let xe=j.order.length;for(const be of H){const Ee=E.createElement("div");Ee.className=`${V}__step`,Ee.hidden=!0,g(j,Ee,be.blocks,be.axis,k),be.css&&r(Ee,be.css),G.appendChild(Ee);const Oe=j.order.length;Ee.__records=j.order.slice(xe,Oe),xe=Oe,me.push(Ee)}const C=E.createElement("div");C.className=`${V}__step-nav`;const ne=E.createElement("button");ne.type="button",ne.className=`${V}__step-back`,ne.textContent=j.t("form.back");const se=E.createElement("button");se.type="button",se.className=`${V}__step-next`,se.textContent=j.t("form.next"),C.appendChild(ne),C.appendChild(se),G.appendChild(C);const J={steps:H,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===H.length-1?j.t("form.finish"):j.t("form.next")},he=be=>{const Ee=me[be].__records||[];for(const Oe of Ee)if(Oe.item.name!=null&&!(Oe.def.kind!=="field"&&Oe.def.kind!=="toggle")&&Oe.item.disabled!==!0&&!(Oe.ruleHidden===!0||Oe.hidden===!0)&&!(Oe.item.required!==!0&&Oe.item.validation==null&&typeof Oe.def.validate!="function"&&Oe.ruleRequired!==!0)&&!ve(j,Oe))return typeof Oe.def.focus=="function"?Oe.def.focus(Oe.control):typeof Oe.control.focus=="function"&&Oe.control.focus(),Oe;return null};J._stepInvalid=he,J._render=ue,ne.addEventListener("click",()=>{re(j)}),se.addEventListener("click",()=>{te(j)}),ue()}async function z(j,k){const Z=j.wizard;if(!Z)return!1;const H=Z.steps.length,E=Number(k);if(!Number.isFinite(E)||E<0||E>=H)return!1;const G=Z.active;if(E===G)return!1;if(E>G&&j.model.validateSteps!==!1)for(let R=G;R<E;R+=1){if(Z._stepInvalid(R))return Z.stepper.setStatus(R,"error"),!1;Z.stepper.setStatus(R,"complete")}return Z.active=E,Z._render(),!0}function te(j){const k=j.wizard;if(!k)return Promise.resolve(!1);if(k.active>=k.steps.length-1){if(j.model.validateSteps===!1)return Promise.resolve(!0);const Z=k._stepInvalid(k.active);return k.stepper.setStatus(k.active,Z?"error":"complete"),Promise.resolve(Z==null)}return z(j,k.active+1)}function re(j){const k=j.wizard;return k?z(j,k.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 V}}),Object.defineProperty(S,"Emitter",{enumerable:!0,get:function(){return $}});const e=new Set(["api","user"]),V=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class ${#e=new Map;on(h,P){if(typeof P!="function")return()=>{};let y=this.#e.get(h);return y||(y=new Set,this.#e.set(h,y)),y.add(P),()=>this.off(h,P)}off(h,P){const y=this.#e.get(h);y&&y.delete(P)}emit(h,P){const y=this.#e.get(h),A=this.#e.get("*");if((!y||y.size===0)&&(!A||A.size===0))return;const B={...P||null,type:h},O=(v,d)=>{for(const u of[...v])try{u(B)}catch(_){console.warn(`lattice-form: a '${d}' handler threw; other handlers were unaffected.`,_)}};y&&y.size&&O(y,h),A&&A.size&&O(A,"*")}emitBefore(h,P,y){const A=this.#e.get(h);if(!A||A.size===0)return!0;let B=!1,O=null;const v=o=>{B=!0,o!=null&&O===null&&(O=String(o))},d=y||P&&P.origin,u={...P||null,type:h,origin:e.has(d)?d:"user",get defaultPrevented(){return B},get reason(){return O},preventDefault(o){v(o)}},_=[...A],w=()=>(B&&O===null&&(O="prevented"),B&&P&&typeof P=="object"&&(P.reason=O),!B),t=[];for(let o=0;o<_.length;o++){const l=_[o];try{const b=l(u);b&&typeof b.then=="function"?t.push(b):b===!1&&v("prevented")}catch(b){v("error"),console.warn(`lattice-form: a '${h}' before-handler threw; the commit was cancelled.`,b)}}return t.length===0?w():Promise.allSettled(t).then(o=>{for(const l of o)l.status==="rejected"?(v("error"),console.warn(`lattice-form: a '${h}' before-handler rejected; the commit was cancelled.`,l.reason)):l.value===!1&&v("prevented");return w()})}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 V}}),Object.defineProperty(S,"writeRouterRecord",{enumerable:!0,get:function(){return $}});function e(ee){return ee!==null&&typeof ee=="object"&&!Array.isArray(ee)}function V(ee){const{router:h,route:P,key:y}=ee,A=d=>d!=null&&String(d.rowKey??d.id)===String(y);return{kind:"router",record:()=>h&&typeof h.get=="function"?h.get(P,y):void 0,items:()=>[],density:()=>{},subscribe:d=>{if(!h||typeof h.subscribe!="function")return()=>{};const u=w=>{if(w){for(const t of w.add||[])A(t)&&d(null,null,t);for(const t of w.update||[])A(t)&&d(null,null,t)}},_=h.subscribe(P,u);return typeof _=="function"?_:()=>{}},save:d=>$(ee,d)}}function $(ee,h){const{router:P,route:y,key:A,onSave:B}=ee;if(!Object.keys(h||{}).length)return!0;const v=()=>P&&typeof P.get=="function"?P.get(y,A):void 0,d=o=>{!P||typeof P.apply!="function"||P.apply([{op:"upsert",row:o}])},u=()=>{!P||typeof P.apply!="function"||(e(_)?P.apply([{op:"upsert",row:_}]):P.apply([{op:"delete",row:w}]))},_=v(),w={...e(_)?_:{},...h};if(d(w),typeof B!="function")return!0;let t;try{t=B(h,w)}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 _}}),Object.defineProperty(S,"isBound",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"applyBinding",{enumerable:!0,get:function(){return t}});const V=q("packages/modules/form/model.js").DENSITIES,ee=q("packages/modules/form/bind-router.js").routerBinding,h=new Set(["number","currency","percent","integer","decimal","duration"]);function P(o){const l=o&&o.dataType;if(l&&(l.unitConfig||l.temperatureConfig))return!0;const b=o&&o.edit?o.edit.editor:null;return b==="unit"||b==="temperature"}function y(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)}function A(o){const l=o&&o.edit?o.edit.editor:null,b=o&&o.type;return l==="checkbox"||b==="boolean"?"checkbox":l==="number"||b!=null&&h.has(b)||P(o)?"number":"input"}function B(o){const l=o&&o.columns&&typeof o.columns.all=="function"?o.columns.all():[],b=[];for(const p of l){if(!p||!p.field||p.generated||p.computed)continue;const m={type:A(p),name:p.field,label:p.title,format:p.format},f=p.dataType,N=f&&f.unitConfig,c=f&&f.temperatureConfig;N?Object.assign(m,{system:N.system,unit:N.unit,binary:N.binary,decimals:N.decimals,minDecimals:N.minDecimals,maxDecimals:N.maxDecimals,display:N.display,group:N.group,space:N.space,placement:N.placement,significantFigures:N.significantFigures,compound:N.compound,nullDisplay:N.nullDisplay}):c&&Object.assign(m,{scale:c.scale,display:c.display,decimals:c.decimals,minDecimals:c.minDecimals,maxDecimals:c.maxDecimals,space:c.space,nullDisplay:c.nullDisplay}),b.push(m)}return b}function O(o,l){const b=o&&o.columns&&typeof o.columns.all=="function"?o.columns.all():[];for(const p of b)if(p&&p.field===l)return p;return null}function v(o){const l=o&&typeof o.get=="function"?o.get("density"):void 0;return V.includes(l)?l:void 0}function d(o){const{grid:l,rowKey:b}=o,p=()=>{const c=l&&l.rows&&typeof l.rows.byKey=="function"?l.rows.byKey(b):null;return c&&y(c.data)?{...c.data}:{}},m=c=>{const i=O(l,c);return i?i.id:c};return{kind:"grid",record:p,items:()=>B(l),density:()=>v(l),subscribe:c=>{if(!l||typeof l.on!="function")return()=>{};const i=n=>{if(!n||n.key!==b)return;const a=l.columns&&typeof l.columns.get=="function"?l.columns.get(n.colId):null,r=a?a.field:n.colId;r&&c(r,n.value)};return l.on("cell:changed",i)},save:c=>{const i=Object.keys(c);if(!i.length)return!0;if(!l||!l.edit||typeof l.edit.setCells!="function")return!1;const n=i.map(r=>({key:b,colId:m(r),value:c[r]})),a=l.edit.setCells(n,"cell",{origin:"form"});return a&&typeof a.then=="function"?a.then(r=>r>0):a>0}}}function u(o){return{kind:"values",record:()=>({...o}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:p=>{for(const m of Object.keys(p))o[m]=p[m];return!0}}}function _(o){const l=o&&o.bind;return l==null||typeof l!="object"?null:l.grid!=null&&y(l.grid)?d(l):l.router!=null?ee(l):u(l)}function w(o){return!!(o&&o.bind!=null&&typeof o.bind=="object")}function t(o,l,b){o.bound=b;const p=(N,c)=>{const i=l.getItem(N);i&&i.setValue(c)},m=(N,c,i)=>{if(i!=null){for(const n of Object.keys(i))if(o.items.has(n)){if(o.dirty.has(n)){o.conflicts.add(n);continue}o.baseline[n]=i[n],p(n,i[n])}return}if(o.items.has(N)){if(o.dirty.has(N)){o.conflicts.add(N);return}o.baseline[N]=c,p(N,c)}},f=b.record();if(f!=null&&typeof f=="object")for(const N of Object.keys(f))o.items.has(N)&&(o.baseline[N]=f[N],p(N,f[N]));o.disposers.push(l.on("change",N=>{o.dirty.add(N.name),o.conflicts.delete(N.name)})),o.disposers.push(b.subscribe(m))}}),Ne("packages/modules/form/controls/input.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=Object.freeze(["text","email","password","url"]),ee=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"}),h=Object.freeze({viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"});function P(v){return $.includes(v)?v:"text"}function y(v){return!(v.props&&v.props.reveal===!1)}function A(v,d){const u=d?h:ee,_=v.createElementNS("http://www.w3.org/2000/svg","svg");_.setAttribute("viewBox",u.viewBox),_.setAttribute("focusable","false"),_.setAttribute("aria-hidden","true"),u.paint==="stroke"?(_.setAttribute("fill","none"),_.setAttribute("stroke","currentColor"),_.setAttribute("stroke-width","1.5"),_.setAttribute("stroke-linecap","round"),_.setAttribute("stroke-linejoin","round")):_.setAttribute("fill","currentColor");for(const w of u.paths){const t=v.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",w),_.appendChild(t)}return _}function B(v){return v.__latPassword?v.__latPassword.input:v}function O(v,d,u){const _=d&&d.defaultView,w=_&&_.Event,t=w?new w(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)}V("input",{kind:"field",build(v,d){const u=d.doc,_=P(v.subtype);if(_!=="password"||!y(v)){const f=u.createElement("input");return f.type=_,v.name&&(f.name=v.name),v.placeholder!=null&&(f.placeholder=String(v.placeholder)),f.value=v.value==null?"":String(v.value),f}const w=u.createElement("div");w.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),w.appendChild(t);const o=u.createElement("button");o.type="button",o.className="lat-form__password-btn",o.setAttribute("aria-pressed","false");const l=d.t("form.password.show");o.setAttribute("aria-label",l),o.title=l,o.appendChild(A(u,!1)),w.appendChild(o);const b={revealed:!1,disabled:!1,input:t,btn:o};w.__latPassword=b;const p=f=>{b.revealed=f===!0,t.type=b.revealed?"text":"password",o.setAttribute("aria-pressed",b.revealed?"true":"false");const N=d.t(b.revealed?"form.password.hide":"form.password.show");o.setAttribute("aria-label",N),o.title=N,o.replaceChild(A(u,b.revealed),o.firstChild)};b.setRevealed=p,o.addEventListener("click",()=>{b.disabled||p(!b.revealed)});let m=!1;return w.addEventListener("focusin",()=>{m||(m=!0,O(w,u,"focus"))}),w.addEventListener("focusout",f=>{w.contains(f.relatedTarget)||(m=!1,p(!1),O(w,u,"blur"))}),w},read(v){return B(v).value},write(v,d){B(v).value=d==null?"":String(d)},state(v,d){const u=B(v);u.disabled=d.disabled===!0,u.readOnly=d.readOnly===!0;const _=v.__latPassword;_&&(_.disabled=d.disabled===!0,_.btn&&(_.btn.disabled=_.disabled))},reset(v){const d=v.__latPassword;d&&typeof d.setRevealed=="function"&&d.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 V}}),Object.defineProperty(S,"isNil",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"isBlank",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"isCtor",{enumerable:!0,get:function(){return h}});function e(P){return P!==null&&typeof P=="object"&&!Array.isArray(P)}function V(P){return typeof P=="function"}function $(P){return P==null}function ee(P){return P==null||P===""}function h(P){return typeof P!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(P))?!0:!!(P.prototype&&Object.getOwnPropertyNames(P.prototype).length>1)}}),Ne("packages/core/src/internal/warn.js",function(S,q){"use strict";Object.defineProperty(S,"reportedWarnings",{enumerable:!0,get:function(){return A}}),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 d}}),Object.defineProperty(S,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"invariant",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"DEV",{enumerable:!0,get:function(){return w}});const e=new Set,V=2e3;function $(t){if(e.add(t),e.size>V){const o=e.values().next().value;o!==void 0&&e.delete(o)}}const ee=[],h=500;function P(t,o,l){ee.push({key:t,level:o,message:l.map(b=>typeof b=="string"?b:y(b)).join(" "),at:Date.now()}),ee.length>h&&ee.shift()}function y(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function A(){return ee.map(t=>({...t}))}function B(t){if(t.length===0||typeof t[0]!="string")return t;const o=t[0].replace(/^\[lattice\]\s*/,"");return o===t[0]?t:[o,...t.slice(1)]}function O(t,...o){if(e.has(t))return;$(t);const l=B(o);P(t,"warn",l),console.warn("[lattice]",...l)}function v(t,...o){if(e.has(t))return;$(t);const l=B(o);P(t,"info",l),console.info("[lattice]",...l)}function d(){e.clear(),ee.length=0}function u(t,o){const l=new Error(`[lattice] ${t}`);throw o!==void 0&&(l.cause=o),l}function _(t,o){t||u(o)}const w=(()=>{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 ee}}),Object.defineProperty(S,"compileMask",{enumerable:!0,get:function(){return P}});const e=new Set(["0","#","?",",","."]),V="\0";function $(A){const B=[];let O="",v=!1;for(let d=0;d<A.length;d++){const u=A[d];if(u==="\\"){O+=u+(A[d+1]??""),d+=1;continue}if(u==='"'){v=!v,O+=u;continue}if(u===";"&&!v){B.push(O),O="";continue}O+=u}return B.push(O),B}function ee(A){let B="",O="",v="",d=1,u=!1,_=!1;const w=c=>{_?O+=c:B+=c};for(let c=0;c<A.length;c++){const i=A[c];if(i==="\\"){w(A[c+1]??""),c+=1;continue}if(i==='"'){const n=A.indexOf('"',c+1);w(n===-1?A.slice(c+1):A.slice(c+1,n)),c=n===-1?A.length:n;continue}if(i==="%"){d*=100,w("%");continue}if(i==="@"){u=!0,w("\0");continue}if(e.has(i)){v+=i,_=!0;continue}w(i)}let t=-1;for(let c=v.length-1;c>=0;c--){const i=v[c];if(i==="0"||i==="#"||i==="?"){t=c;break}}let o=!1,l="";for(let c=0;c<v.length;c++){const i=v[c];if(i===","){c>t?d/=1e3:o=!0;continue}l+=i}const b=l.indexOf("."),p=b===-1?l:l.slice(0,b),m=b===-1?"":l.slice(b+1);let f=0;for(const c of p)c==="0"&&(f+=1);let N=0;for(const c of m)c==="0"&&(N+=1);return{prefix:B,suffix:O,minInt:f,minDec:N,maxDec:m.length,grouping:o,scale:d,hasNumber:t!==-1,isText:u}}function h(A,B){const O=new Intl.NumberFormat(B,{minimumIntegerDigits:Math.max(A.minInt,1),minimumFractionDigits:A.minDec,maximumFractionDigits:Math.max(A.maxDec,A.minDec),useGrouping:A.grouping}),{prefix:v,suffix:d,scale:u,hasNumber:_}=A;return w=>{if(!_)return v+d;const t=u===1?w:w*u;return v+O.format(t)+d}}function P(A,B){const v=$(String(A)).map(ee),d=v.map(l=>h(l,B)),u=0,_=v.length>1?1:-1,w=v.length>2?2:-1,t=v.length>3?3:-1,o=l=>{if(l==null||l==="")return"";if(typeof l!="number"||Number.isNaN(l)){const b=Number(l);if(Number.isNaN(b))return t===-1?String(l):(v[t].prefix+v[t].suffix).split("\0").join(String(l));l=b}return l===0&&w!==-1?d[w](0):l<0&&_!==-1?d[_](-l):d[u](l)};return o.spec={mask:A},{format:o,ooxml:y(String(A))}}function y(A){return A.trim()}}),Ne("packages/core/src/format/pattern.js",function(S,q){"use strict";Object.defineProperty(S,"parseNumberPattern",{enumerable:!0,get:function(){return h}});const V=q("packages/core/src/format/mask.js").splitSections;function $(P){let y="",A="",B="",O="",v=!1,d=!1,u=!1,_=!1;const w=o=>{u?A+=o:y+=o};for(let o=0;o<P.length;o++){const l=P[o];if(l==="\\"){w(P[o+1]??""),o+=1;continue}if(l==='"'){const b=P.indexOf('"',o+1);w(b===-1?P.slice(o+1):P.slice(o+1,b)),o=b===-1?P.length:b;continue}if(l==="%"){d=!0;continue}if(l==="0"||l==="#"){u=!0,_?O+=l:B+=l;continue}if(l===","){_||(v=!0);continue}if(l==="."&&!_){_=!0;continue}w(l)}if(!u)return{hasDigit:!1,prefix:y,suffix:A,minDec:0,maxDec:0,grouping:!1,percent:d};let t=0;for(const o of O)o==="0"&&(t+=1);return{hasDigit:!0,prefix:y,suffix:A,minDec:t,maxDec:O.length,grouping:v,percent:d}}function ee(P,y){const A=y.trim(),B=P.trim();return A.startsWith("(")&&A.endsWith(")")&&A.slice(1,-1).trim()===B?"parentheses":A.endsWith("-")?"suffix":"minus"}function h(P){if(typeof P!="string")return null;const y=V(P);if(y.length===0)return null;const A=$(y[0]);if(!A.hasDigit)return null;const B={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(y.length>1&&(B.negative=ee(y[0],y[1])),y.length>2){const O=$(y[2]);O.hasDigit||(B.zeroDisplay=O.prefix+O.suffix)}return B}}),Ne("packages/core/src/format/number.js",function(S,q){"use strict";Object.defineProperty(S,"compileNumber",{enumerable:!0,get:function(){return y}});const V=q("packages/core/src/internal/predicates.js").isNil,ee=q("packages/core/src/internal/warn.js").warnOnce,P=q("packages/core/src/format/pattern.js").parseNumberPattern;function y(A,B){const O=typeof A=="string"?{pattern:A}:A||{};let v=O;if(typeof O.pattern=="string"){const Y=P(O.pattern);if(Y){const{pattern:U,...Q}=O;v={...Y,...Q}}else ee(`format:pattern:${O.pattern}`,`invalid number format pattern "${O.pattern}"; the value will use the default number format`)}const d=v.locale||B||void 0,u=v.style||"decimal",_=typeof v.scale=="number"?v.scale:1,w=v.nullDisplay??"",t=v.zeroDisplay,o=v.prefix||"",l=v.suffix||"",b=v.negative||"minus",p=v.signed===!0,m={style:u,notation:v.notation||"standard"};u==="currency"&&(m.currency=v.currency||"USD",v.currencyDisplay&&(m.currencyDisplay=v.currencyDisplay)),typeof v.decimals=="number"?(m.minimumFractionDigits=v.decimals,m.maximumFractionDigits=v.decimals):(typeof v.minDecimals=="number"&&(m.minimumFractionDigits=v.minDecimals),typeof v.maxDecimals=="number"&&(m.maximumFractionDigits=v.maxDecimals),m.minimumFractionDigits>(m.maximumFractionDigits??20)&&(m.maximumFractionDigits=m.minimumFractionDigits)),v.thousandsSeparator===!1&&(m.useGrouping=!1),m.notation==="compact"&&(m.compactDisplay=v.compactDisplay||"short");const f=new Intl.NumberFormat(d,m),N=typeof v.thousandsSeparator=="string"?v.thousandsSeparator:null,c=typeof v.decimalSeparator=="string"?v.decimalSeparator:null;let i=",",n=".";if(N||c)for(const Y of f.formatToParts(12345.6))Y.type==="group"?i=Y.value:Y.type==="decimal"&&(n=Y.value);const a=Y=>{let U=Y;return N&&(U=U.split(i).join("")),c&&(U=U.split(n).join("")),N&&(U=U.split("").join(N)),c&&(U=U.split("").join(c)),U},r=!!(N||c),s=o!==""&&u==="currency",M=Y=>{let U;if(s){const Q=f.formatToParts(Y);let oe=!1;U="";for(const F of Q)U+=F.value,!oe&&F.type==="currency"&&(U+=o,oe=!0);oe||(U=o+U)}else U=o+f.format(Y);return r&&(U=a(U)),U+l},D=Y=>{if(V(Y)||Y==="")return w;const U=typeof Y=="number"?Y:Number(Y);if(Number.isNaN(U))return w;const Q=_===1?U:U*_;return Q===0&&t!==void 0?t:Q<0?b==="parentheses"?`(${M(-Q)})`:b==="suffix"?`${M(-Q)}-`:M(Q):p&&Q>0?`+${M(Q)}`:M(Q)};return D.negativeClass=v.negativeClass||null,D.spec=v,D}}),Ne("packages/core/src/columns/types/unit.js",function(S,q){"use strict";Object.defineProperty(S,"defineUnit",{enumerable:!0,get:function(){return P}}),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 d}}),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 N}}),Object.defineProperty(S,"parseUnit",{enumerable:!0,get:function(){return D}}),Object.defineProperty(S,"formatUnit",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(S,"createUnitType",{enumerable:!0,get:function(){return x}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return L}});const V=q("packages/core/src/internal/predicates.js").isNil,ee=q("packages/core/src/internal/warn.js").warnOnce;function h(I,g,T,X){return Object.freeze({symbol:I,factor:g,aliases:Object.freeze(T||[]),binary:!!(X&&X.binary),prefix:X&&X.prefix||null,auto:!(X&&X.auto===!1)})}function P(I,g,T,X){return h(I,g,T,X)}const y=Object.freeze({data:Object.freeze([h("B",1,["byte","bytes"]),h("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),h("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),h("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),h("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),h("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),h("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),h("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),h("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),h("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([h("bps",1,["bit","bits","bit/s","b/s"]),h("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),h("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),h("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),h("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([h("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),h("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),h("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),h("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),h("in",.0254,["inch","inches"],{auto:!1}),h("ft",.3048,["foot","feet"],{auto:!1}),h("yd",.9144,["yard","yards"],{auto:!1}),h("m",1,["metre","metres","meter","meters"]),h("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),h("mi",1609.344,["mile","miles"],{auto:!1}),h("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([h("mg",.001,["milligram","milligrams"]),h("g",1,["gram","grams"]),h("oz",28.349523125,["ounce","ounces"],{auto:!1}),h("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),h("kg",1e3,["kilogram","kilograms"]),h("st",6350.29318,["stone"],{auto:!1}),h("t",1e6,["tonne","tonnes","ton"],{auto:!1}),h("ton (US)",907184.74,["ton","shortton"],{auto:!1}),h("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([h("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),h("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),h("ms",.001,["msec","msecs","millisecond","milliseconds"]),h("s",1,["sec","secs","second","seconds"]),h("m",60,["min","mins","minute","minutes"]),h("h",3600,["hr","hrs","hour","hours"]),h("d",86400,["day","days"])]),speed:Object.freeze([h("mm/s",.001,["millimetre/s","millimeter/s"]),h("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),h("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),h("mph",.44704,["mile/h","miles/h"],{auto:!1}),h("kn",1852/3600,["knot","knots"],{auto:!1}),h("m/s",1,["metre/s","meter/s","mps"]),h("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([h("mm/s²",.001,["mm/s2"]),h("ft/s²",.3048,["ft/s2"],{auto:!1}),h("m/s²",1,["m/s2","metre/s2","meter/s2"]),h("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([h("mm²",1e-6,["mm2"]),h("cm²",1e-4,["cm2"]),h("in²",64516e-8,["in2","sqin"],{auto:!1}),h("ft²",.09290304,["ft2","sqft"],{auto:!1}),h("yd²",.83612736,["yd2","sqyd"],{auto:!1}),h("m²",1,["m2","sqm"]),h("ha",1e4,["hectare","hectares"],{auto:!1}),h("ac",4046.8564224,["acre","acres"],{auto:!1}),h("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([h("µL",1e-6,["ul","microlitre","microliter"]),h("mL",.001,["millilitre","milliliter"]),h("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),h("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),h("L",1,["litre","litres","liter","liters"]),h("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),h("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),h("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),h("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([h("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),h("J",1,["joule","joules"]),h("cal",4.184,["calorie","calories"],{auto:!1}),h("kJ",1e3,["kilojoule","kilojoules"]),h("BTU",1055.05585262,["btu"],{auto:!1}),h("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),h("MJ",1e6,["megajoule","megajoules"]),h("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),h("GJ",1e9,["gigajoule","gigajoules"]),h("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([h("mW",.001,["milliwatt","milliwatts"]),h("W",1,["watt","watts"]),h("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),h("kW",1e3,["kilowatt","kilowatts"]),h("hp",745.6998715822702,["horsepower"],{auto:!1}),h("MW",1e6,["megawatt","megawatts"]),h("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([h("mN",.001,["millinewton","millinewtons"]),h("N",1,["newton","newtons"]),h("lbf",4.4482216152605,["poundforce"],{auto:!1}),h("kgf",9.80665,["kilogramforce"],{auto:!1}),h("kN",1e3,["kilonewton","kilonewtons"]),h("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([h("Pa",1,["pascal","pascals"]),h("mbar",100,["millibar"],{auto:!1}),h("inH₂O",249.0889,["inh2o"],{auto:!1}),h("mmHg",133.322387415,["torr"],{auto:!1}),h("kPa",1e3,["kilopascal","kilopascals"]),h("inHg",3386.388640341,["inhg"],{auto:!1}),h("psi",6894.757293168361,["lbf/in2"],{auto:!1}),h("bar",1e5,[],{auto:!1}),h("atm",101325,["atmosphere","atmospheres"],{auto:!1}),h("MPa",1e6,["megapascal","megapascals"]),h("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([h("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),h("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),h("kN·m",1e3,["knm","kn.m"],{auto:!1}),h("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([h("kg/m³",1,["kg/m3"]),h("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),h("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),h("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([h("L/min",1/6e4,["lpm","l/min"],{auto:!1}),h("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),h("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),h("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),h("cfm",.0004719474432,["ft3/min"],{auto:!1}),h("L/s",.001,["lps","l/s"],{auto:!1}),h("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([h("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),h("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),h("mrad",.001,["milliradian","milliradians"],{auto:!1}),h("mil",Math.PI/3200,["nato-mil"],{auto:!1}),h("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),h("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),h("rad",1,["radian","radians"]),h("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([h("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),h("rad/s",1,["radps","radians/s"]),h("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),h("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([h("ppt",1e-12,["partspertrillion"],{auto:!1}),h("ppb",1e-9,["partsperbillion"]),h("ppm",1e-6,["partspermillion"]),h("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),h("‰",.001,["permille","permil"],{auto:!1}),h("%",.01,["pct","percent"]),h("×",1,["x","ratio","times"])]),molarity:Object.freeze([h("pM",1e-12,["picomolar","picomolarity"]),h("nM",1e-9,["nanomolar","nanomolarity"]),h("µM",1e-6,["um-molar","micromolar","micromolarity"]),h("mM",.001,["millimolar","millimolarity"]),h("M",1,["molar","mol/l","mol/L","molarity"]),h("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([h("mg/s",1e-6,["milligrams/s"]),h("g/s",.001,["grams/s"]),h("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),h("kg/s",1,["kilograms/s","kgps"]),h("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),h("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),h("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([h("µPa·s",1e-6,["upas","micropascalsecond"]),h("cP",.001,["centipoise"],{auto:!1}),h("mPa·s",.001,["mpas","millipascalsecond"]),h("P",.1,["poise"],{auto:!1}),h("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([h("cSt",1e-6,["centistokes","centistoke"]),h("mm²/s",1e-6,["mm2/s"],{auto:!1}),h("St",1e-4,["stokes","stoke"],{auto:!1}),h("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([h("mW/(m·K)",.001,["mw/mk"]),h("W/(m·K)",1,["w/mk","wmk"]),h("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),h("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([h("J/(kg·K)",1,["j/kgk","jkgk"]),h("kJ/(kg·K)",1e3,["kj/kgk"]),h("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([h("nSv/h",1e-9,["nsvh"]),h("µSv/h",1e-6,["usv/h","usvh"]),h("mSv/h",.001,["msvh"]),h("Sv/h",1,["svh"]),h("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),A=Symbol("ambiguous"),B=new Map,O=new Map;function v(I,g){const T=String(I||"").trim();if(!T)throw new Error("[lattice] a unit system needs a name");if(y[T]||O.has(T))throw new Error(`[lattice] unit system "${T}" already exists`);const X=[...g||[]];if(!X.length)throw new Error(`[lattice] unit system "${T}" has no units`);if(!X.some(te=>te.factor===1))throw new Error(`[lattice] unit system "${T}" has no base unit (none with factor 1)`);const z=new Set;for(const te of X){if(z.has(te.symbol))throw new Error(`[lattice] unit system "${T}" declares "${te.symbol}" twice`);z.add(te.symbol)}return O.set(T,Object.freeze(X)),B.delete(T),T}function d(){return[...Object.keys(y),...O.keys()]}function u(I){const g=_(I);return g?g.units:[]}function _(I){const g=String(I||""),T=B.get(g);if(T!==void 0)return T;const X=y[g]||O.get(g);if(!X)return B.set(g,null),null;const z=Object.freeze([...X].sort((Z,H)=>Z.factor-H.factor)),te=new Map,re=new Map,j=(Z,H)=>{const E=te.get(Z);E===void 0?te.set(Z,H):E!==H&&te.set(Z,A)};for(const Z of z){j(Z.symbol.toLowerCase(),Z);for(const H of Z.aliases)j(H.toLowerCase(),Z);if(Z.prefix){const H=re.get(Z.prefix)||[];H.push(Z),re.set(Z.prefix,H)}}const k={units:z,byToken:te,byPrefix:re,decimal:z.filter(Z=>!Z.binary&&Z.auto),binary:z.some(Z=>Z.binary)?z.filter(Z=>(Z.binary||Z.factor===1)&&Z.auto):null};return B.set(g,k),k}function w(I,g){return g&&I.binary||I.decimal}function t(I,g){const T=_(I);if(!T||V(g))return null;const X=T.units.find(te=>te.symbol===String(g));if(X)return X;const z=T.byToken.get(String(g).trim().toLowerCase());return z&&z!==A?z:null}const o=new WeakMap;function l(I){const g=I||{};if(typeof g=="object"&&g!==null){const te=o.get(g);if(te!==void 0)return te}const T=g.system||"data",X=_(T);let z=null;if(!X)ee(`unit:system:${T}`,`unknown unit system "${T}"; known systems are ${d().join(", ")}`);else{let te=g.unit?t(T,g.unit):null;te||(g.unit&&ee(`unit:unit:${T}:${g.unit}`,`unknown unit "${g.unit}" in system "${T}"; falling back to ${X.units[0].symbol}`),te=X.units.find(re=>re.factor===1)||X.units[0]),z={index:X,base:te,binary:g.binary===!0}}return typeof g=="object"&&g!==null&&o.set(g,z),z}const b=new WeakMap;function p(I,g){if(!I||!g||!Array.isArray(I.compound)||I.compound.length===0)return null;const T=b.get(I);if(T!==void 0)return T;const X=new Set,z=[];for(const re of I.compound){const j=t(I.system||"data",re);if(!j){ee(`unit:compound:${I.system}:${re}`,`unknown compound unit "${re}" in system "${I.system||"data"}"; ignoring it`);continue}X.has(j.symbol)||(X.add(j.symbol),z.push(j))}z.sort((re,j)=>j.factor-re.factor);const te=z.length>=2?z:null;return b.set(I,te),te}function m(I,g,T){return g===T||g.factor===T.factor?I:I*g.factor/T.factor}const f=new Map;function N(I){const g=I||"",T=f.get(g);if(T)return T;const X={group:",",decimal:"."};try{for(const z of new Intl.NumberFormat(I||void 0).formatToParts(12345.6))z.type==="group"?X.group=z.value:z.type==="decimal"&&(X.decimal=z.value)}catch{}return f.set(g,X),X}const c=/[\s   ]/g,i=/^[+-]?[\d   '’ .,]*(?:[eE][+-]?\d+)?/,n=/^[^\d+\-(.,\s]+\s*/,a=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function r(I,g){const{group:T,decimal:X}=N(g);let z=String(I).replace(c,"");if(z==="")return null;const te=X?z.indexOf(X):-1;if(T&&T!==X){if(te>=0&&z.indexOf(T,te+X.length)>=0)return null;z=z.split(T).join("")}if(X&&X!=="."&&(z=z.split(X).join(".")),!a.test(z))return null;const re=Number(z);return Number.isFinite(re)?re:null}function s(I,g,T){const X=String(I).trim().replace(/\.$/,"");if(X==="")return null;const z=g.units.find(H=>H.symbol===X);if(z)return z;const te=X.toLowerCase(),re=g.byToken.get(te);if(re===A)return null;if(re)return re;const j=g.byPrefix.get(te);if(!j||!j.length)return null;const k=w(g,T),Z=j.filter(H=>k.includes(H));return Z.length===1?Z[0]:null}function M(I,g,T,X){let z=I,te=0,re=!1,j=!1;for(;z!=="";){const k=i.exec(z)[0];if(k==="")return null;const Z=r(k,X&&X.locale);if(Z===null)return null;z=z.slice(k.length).trim();const H=z.search(/[+-]?[\d]/),E=(H>=0?z.slice(0,H):z).trim();if(z=H>=0?z.slice(H).trim():"",E===""){if(re)return null;j=!0,te+=m(Z,T[0],g.base)}else{const G=s(E,g.index,g.binary);if(!G)return null;te+=m(Z,G,g.base)}if(re=!0,j&&z!=="")return null}return re?te:null}function D(I,g){if(V(I))return null;if(typeof I=="number")return Number.isFinite(I)?I:null;const T=l(g);if(!T)return null;let X=String(I).trim();if(X==="")return null;let z=!1;X.startsWith("(")&&X.endsWith(")")&&(z=!0,X=X.slice(1,-1).trim());const te=p(g,T);if(te){X.startsWith("-")&&(z=!0,X=X.slice(1).trim());const R=M(X,T,te,g);return R===null?null:z?-R:R}let re=null;const j=n.exec(X);if(j&&j[0]){const R=s(j[0].trim(),T.index,T.binary);R&&(re=R,X=X.slice(j[0].length).trim())}const k=i.exec(X)[0],Z=r(k,g&&g.locale);if(Z===null)return null;const H=X.slice(k.length).trim();if(re&&H!=="")return null;const E=re||(H===""?T.base:s(H,T.index,T.binary));if(!E)return null;const G=m(Z,E,T.base);return z?-G:G}const Y=new Map;function U(I,g,T,X){const z=`${I||""}|${g}|${T}|${X?1:0}`;let te=Y.get(z);return te||(te=new Intl.NumberFormat(I||void 0,{minimumFractionDigits:g,maximumFractionDigits:T,useGrouping:X}),Y.set(z,te)),te}function Q(I,g){if(!Number.isFinite(I)||I===0)return Math.max(0,g-1);const T=Math.floor(Math.log10(Math.abs(I)));return Math.min(20,Math.max(0,g-1-T))}function oe(I,g){if(!Number.isFinite(I)||I===0)return I;const T=Math.ceil(Math.log10(Math.abs(I))),X=10**(g-T);return Math.round(I*X)/X}function F(I,g,T){if(!T||T===g.base.symbol)return g.base;if(T!=="auto")return K(g,T);if(I===0||!Number.isFinite(I))return g.base;const X=Math.abs(I)*g.base.factor,z=w(g.index,g.binary);let te=z[0];for(const k of z)X>=k.factor&&(te=k);if(X>=te.factor)return te;let re=te;for(const k of g.index.units)k.binary!==g.binary&&k.factor!==1||k.factor<=X&&k.factor>(re===te?0:re.factor)&&(re=k);if(re!==te)return re;let j=te;for(const k of g.index.units)k.binary!==g.binary&&k.factor!==1||k.factor<j.factor&&(j=k);return j.factor<g.base.factor?j:g.base}function K(I,g){const T=I.index.units.find(z=>z.symbol===g);if(T)return T;const X=I.index.byToken.get(String(g).toLowerCase());return X&&X!==A?X:(ee(`unit:display:${g}`,`unknown display unit "${g}"; rendering in ${I.base.symbol}`),I.base)}function W(I,g,T,X){const z=I<0;let te=Math.abs(I)*g.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),k=X.space??" ",Z=[];for(let E=0;E<T.length;E++){const G=T[E],R=E===T.length-1;let ce=R?te/G.factor:Math.floor(te/G.factor);if(te-=ce*G.factor,R){const xe=10**j;ce=Math.round(ce*xe)/xe+0}const me=R?U(X.locale,re,j,X.group!==!1):U(X.locale,0,0,X.group!==!1);Z.push(`${me.format(ce)}${k}${G.symbol}`)}const H=Z.join(" ");return z?`-${H}`:H}function ge(I,g){const T=g||{},X=T.nullDisplay??"";if(V(I)||I==="")return X;const z=typeof I=="number"?I:Number(I);if(!Number.isFinite(z))return X;const te=l(T);if(!te)return String(z);const re=p(T,te);if(re)return W(z,te,re,T);const j=typeof T.significantFigures=="number"&&T.significantFigures>0?T.significantFigures:0,k=j?oe(z,j):z,Z=F(k,te,T.display),H=m(k,te.base,Z);let E=typeof T.decimals=="number"?T.decimals:T.minDecimals??0,G=typeof T.decimals=="number"?T.decimals:T.maxDecimals??Math.max(E,2);j&&(E=Q(H,j),G=E);const R=U(T.locale,E,G,T.group!==!1).format(H),ce=T.space??" ";return T.placement==="prefix"?`${Z.symbol}${T.space??""}${R}`:`${R}${ce}${Z.symbol}`}function ve(I,g){const T=V(I)||Number.isNaN(I)?null:Number(I),X=V(g)||Number.isNaN(g)?null:Number(g);return T===null||Number.isNaN(T)?X===null||Number.isNaN(X)?0:1:X===null||Number.isNaN(X)||T<X?-1:T>X?1:0}function le(I){const g=typeof I.decimals=="number"&&I.decimals>0?`.${"0".repeat(I.decimals)}`:"";return`${typeof I.decimals=="number"?`#,##0${g}`:"#,##0.##"}" ${I.symbol}"`}function x(I){const g={system:"data",...I||{}},T=l(g),X=T?T.base.symbol:String(g.unit||""),z=Object.freeze({...g,unit:X}),te=Object.freeze({...z,display:X,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),re=new Map([[z.locale||"",z]]),j=k=>{const Z=k||"";let H=re.get(Z);return H||(H=Object.freeze({...z,locale:k||void 0}),re.set(Z,H)),H};return{base:"number",extends:"number",storage:"float64",unitConfig:z,format:k=>ge(k.value,k.locale?j(k.locale):z),parse:k=>D(k.text,k.locale?j(k.locale):z),compare:ve,defaults:{filter:"number",editor:"unit",align:"end",total:g.total||"sum"},...g.totals?{totals:g.totals}:{},excel:g.excel||le({decimals:g.decimals,symbol:X}),toStorage:k=>typeof k=="number"?Number.isFinite(k)?k:null:typeof k=="string"?D(k,z):V(k)?null:D(String(k),z),toClipboard:k=>ge(k,te),fromClipboard:k=>D(k,z)}}const L=x}),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 ee}}),Object.defineProperty(S,"convertTemperature",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"formatTemperature",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"parseTemperature",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"createTemperatureType",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return _}});const V=q("packages/core/src/internal/predicates.js").isNil,$=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:w=>w+273.15,fromKelvin:w=>w-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:w=>(w+459.67)*(5/9),fromKelvin:w=>w*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:w=>w,fromKelvin:w=>w}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:w=>w*(5/9),fromKelvin:w=>w*(9/5)})});function ee(w){if(V(w))return null;const t=String(w).trim();if(t==="")return null;for(const[l,b]of Object.entries($))if(t===l||t===b.symbol)return{key:l,scale:b};const o=t.toLowerCase();for(const[l,b]of Object.entries($))if(b.aliases.includes(o))return{key:l,scale:b};return null}function h(w,t,o){const l=ee(t),b=ee(o);return!l||!b||!Number.isFinite(Number(w))?null:l.key===b.key?Number(w):b.scale.fromKelvin(l.scale.toKelvin(Number(w)))}const P=new Map;function y(w,t,o){const l=`${w||""}|${t}|${o}`;let b=P.get(l);return b||(b=new Intl.NumberFormat(w||void 0,{minimumFractionDigits:t,maximumFractionDigits:o}),P.set(l,b)),b}function A(w,t){const o=t||{},l=o.nullDisplay??"";if(V(w)||w==="")return l;const b=Number(w);if(!Number.isFinite(b))return l;const p=ee(o.scale||"C");if(!p)return String(b);const m=ee(o.display||o.scale||"C")||p,f=m.key===p.key?b:m.scale.fromKelvin(p.scale.toKelvin(b)),N=typeof o.decimals=="number"?o.decimals:null,c=N??o.minDecimals??0,i=N??o.maxDecimals??1;return`${y(o.locale,c,i).format(f)}${o.space??" "}${m.scale.symbol}`}const B=/^[+-]?[\d\s.,  ]*\d/;function O(w,t){const o=String(w).trim();if(o==="")return null;const l=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(f=>f.type==="decimal")?.value||".",b=l===","?".":",",p=o.split(b).join("").split(/[\s  ]/).join("").replace(l,"."),m=Number(p);return Number.isFinite(m)?m:null}function v(w,t){if(V(w))return null;const o=t||{},l=ee(o.scale||"C");if(!l)return null;if(typeof w=="number")return Number.isFinite(w)?w:null;let b=String(w).trim();if(b==="")return null;let p=!1;b.startsWith("(")&&b.endsWith(")")&&(p=!0,b=b.slice(1,-1).trim());const m=B.exec(b);if(!m)return null;const f=O(m[0],o.locale);if(f===null)return null;const N=b.slice(m[0].length).trim();if(N==="")return p?-f:f;const c=ee(N);if(!c)return null;const i=c.key===l.key?f:l.scale.fromKelvin(c.scale.toKelvin(f));return p?-i:i}function d(w){const t=Object.freeze({scale:"C",...w||{}}),l=(ee(t.scale)||ee("C")).scale.symbol,b=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),p=new Map([[t.locale||"",t]]),m=f=>{const N=f||"";let c=p.get(N);return c||(c=Object.freeze({...t,locale:f||void 0}),p.set(N,c)),c};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:f=>A(f.value,f.locale?m(f.locale):t),parse:f=>v(f.text,f.locale?m(f.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)}`:".#"}" ${l}"`,toStorage:f=>typeof f=="number"?Number.isFinite(f)?f:null:typeof f=="string"?v(f,t):V(f)?null:v(String(f),t),toClipboard:f=>A(f,b),fromClipboard:f=>v(f,t)}}const u=Object.freeze({celsius:d({scale:"C"}),fahrenheit:d({scale:"F"}),kelvin:d({scale:"K"})}),_=d}),Ne("packages/modules/form/controls/number.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,P=q("packages/core/src/format/number.js").compileNumber,y=q("packages/core/src/columns/types/unit.js"),A=y.parseUnit,B=y.formatUnit,O=y.findUnit,v=y.unitsOf,d=q("packages/core/src/columns/types/temperature.js"),u=d.parseTemperature,_=d.formatTemperature,w=d.findScale,t="data-lattice-form-number-styles";function o(){return`
1288
1296
  .lat-form__control .lat-form__number{
1289
1297
  text-align:right; font-variant-numeric:tabular-nums;
1290
1298
  }
@@ -1325,7 +1333,7 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1325
1333
  font:inherit; line-height:inherit; cursor:pointer;
1326
1334
  }
1327
1335
  .lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
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=`
1336
+ `.trim()}function l(i){const n=i&&i.documentElement;if(!n||n.getAttribute(t))return;n.setAttribute(t,"1");const a=i.createElement("style");a.textContent=o(),(i.head||i.body||n).appendChild(a)}function b(i){let n="",a=".";try{for(const r of new Intl.NumberFormat(i||void 0).formatToParts(12345.6))r.type==="group"?n=r.value:r.type==="decimal"&&(a=r.value)}catch{}return{group:n,decimal:a}}function p(i,n){if(i==null)return null;let a=String(i).trim();if(a==="")return null;const{group:r,decimal:s}=b(n);let M=!1;if(/^\(.*\)$/.test(a)&&(M=!0,a=a.slice(1,-1)),a=a.replace(/[\s   ]/g,""),r&&r!=="."&&(a=a.split(r).join("")),a=a.replace(/[^0-9eE+\-.,]/g,""),s===","?(a=a.split(".").join(""),a=a.replace(",",".")):a=a.split(",").join(""),a===""||a==="-"||a==="+")return NaN;a.startsWith("-")&&(M=!M,a=a.slice(1));const D=Number(a);return Number.isFinite(D)?M?-D:D:NaN}function m(i){if(i==null||i==="")return"";const n=typeof i=="number"?i:Number(i);return Number.isFinite(n)?String(n):""}function f(i){return i&&i.__latNumber?i.__latNumber.input:i}function N(i){if(typeof i=="number")return Number.isFinite(i)?i:null;if(i==null||i==="")return null;const n=Number(i);return Number.isFinite(n)?n:null}function c(i){const n=i&&i.props||{};return typeof n.system=="string"&&n.system!==""?{kind:"unit",opts:{system:n.system,unit:n.unit,binary:n.binary===!0,decimals:n.decimals,minDecimals:n.minDecimals,maxDecimals:n.maxDecimals,display:n.display,locale:i.locale||n.locale,group:n.group,space:n.space,placement:n.placement,compound:n.compound,significantFigures:n.significantFigures,nullDisplay:n.nullDisplay}}:typeof n.scale=="string"&&n.scale!==""?{kind:"temperature",opts:{scale:n.scale,display:n.display,decimals:n.decimals,minDecimals:n.minDecimals,maxDecimals:n.maxDecimals,space:n.space,locale:i.locale||n.locale,nullDisplay:n.nullDisplay}}:null}V("number",{kind:"field",build(i,n){const a=n.doc;l(a);const r=i.props&&i.props.format&&(typeof i.props.format=="object"||typeof i.props.format=="string")?i.props.format:null,s=i.locale||void 0,M=r?P(r,s):null,D=typeof n.t=="function"?n.t:ee,Y=c(i),U=N(i.step),Q=N(i.min),oe=N(i.max);let F="";if(Y&&Y.kind==="unit"){const te=O(Y.opts.system,Y.opts.unit);F=te?te.symbol:String(Y.opts.unit||"")}else if(Y&&Y.kind==="temperature"){const te=w(Y.opts.scale);F=te?te.scale.symbol:""}const K=a.createElement("input");K.type="text",K.inputMode="decimal",K.className="lat-form__number",i.name&&(K.name=i.name),i.placeholder!=null&&(K.placeholder=String(i.placeholder));const W={input:K,format:M,t:D,locale:s,step:U,min:Q,max:oe,unit:Y,unitSymbol:F,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},ge=()=>W.displayUnit!=null?{...Y.opts,display:W.displayUnit}:Y.opts,ve=te=>W.unit&&W.unit.kind==="unit"?B(te,ge()):W.unit&&W.unit.kind==="temperature"?_(te,W.unit.opts):W.format&&Number.isFinite(te)?W.format(te):m(te),le=te=>{if(!W.unit)return p(te,W.locale);const re=te==null?"":String(te);if(re.trim()==="")return null;const j=W.unit.kind==="temperature"?u(re,W.unit.opts):A(re,W.unit.opts);return j===null?Number.NaN:j},x=()=>W.unit&&typeof W.unit.opts.nullDisplay=="string"?W.unit.opts.nullDisplay:"",L=te=>{if(te==null||te===""){W.value=null,W.invalid=!1,K.value=x();return}const re=typeof te=="number"?te:Number(te);if(!Number.isFinite(re)){W.value=null,W.invalid=!1,K.value=x();return}W.value=re,W.invalid=!1,K.value=W.focused?m(re):ve(re)},I=()=>{const te=K.value;te===""?K.removeAttribute("aria-valuetext"):K.setAttribute("aria-valuetext",te)},g=te=>{const re=le(K.value);let k=(re==null||Number.isNaN(re)?0:re)+te;typeof Q=="number"&&k<Q&&(k=Q),typeof oe=="number"&&k>oe&&(k=oe),K.value=W.unit&&!W.focused?ve(k):m(k)},T=()=>{W.focused=!0,W.value!=null&&(K.value=m(W.value)),I()},X=()=>{W.focused=!1;const te=le(K.value);te==null?(W.value=null,W.invalid=!1,K.value=x()):Number.isNaN(te)?(W.invalid=!0,W.value!=null?K.value=ve(W.value):K.value=""):(W.invalid=!1,W.value=te,K.value=ve(te)),I()},z=te=>{if(te.key!=="ArrowUp"&&te.key!=="ArrowDown")return;typeof te.preventDefault=="function"&&te.preventDefault();const re=typeof U=="number"&&U>0?U:1;g(te.key==="ArrowUp"?re:-re)};if(K.addEventListener("focus",T),K.addEventListener("blur",X),K.addEventListener("keydown",z),W.disposers.push(()=>K.removeEventListener("focus",T),()=>K.removeEventListener("blur",X),()=>K.removeEventListener("keydown",z)),L(i.value),typeof Q=="number"&&K.setAttribute("aria-valuemin",String(Q)),typeof oe=="number"&&K.setAttribute("aria-valuemax",String(oe)),I(),K.__latNumber=W,Y&&Y.kind==="unit"&&i.props&&i.props.unitPicker===!0){const te=a.createElement("div");te.className="lat-form__number-unit";const re=a.createElement("select");re.className="lat-form__number-unitpick",re.setAttribute("aria-label",D("form.number.unitPicker"));const j=v(Y.opts.system);for(const E of j){const G=a.createElement("option");G.value=E.symbol,G.textContent=E.symbol,re.appendChild(G)}const k=Y.opts.display&&Y.opts.display!=="auto"?Y.opts.display:F,Z=j.some(E=>E.symbol===k)?k:F;re.value=Z,W.displayUnit=Z;const H=()=>{W.displayUnit=re.value,!W.focused&&W.value!=null&&(K.value=ve(W.value)),I()};return re.addEventListener("change",H),W.disposers.push(()=>re.removeEventListener("change",H)),W.picker=re,te.appendChild(K),te.appendChild(re),te.__latNumber=W,te}if(i.props&&i.props.spinner===!0){const te=a.createElement("div");te.className="lat-form__number-spinner";const re=(Z,H)=>{const E=a.createElement("button");return E.type="button",E.tabIndex=-1,E.className="lat-form__number-step",E.textContent=Z,E.addEventListener("mousedown",G=>{typeof G.preventDefault=="function"&&G.preventDefault();const R=typeof U=="number"&&U>0?U:1;g(H*R)}),E},j=re("−",-1),k=re("+",1);return W.buttons=[j,k],te.appendChild(j),te.appendChild(K),te.appendChild(k),te.__latNumber=W,te}return K},read(i){const n=i&&i.__latNumber,a=n?n.input:i;if(n&&!n.focused)return n.unit&&n.invalid?Number.NaN:n.value;if(n&&n.unit){const r=a.value;if(String(r).trim()==="")return null;const s=n.unit.kind==="temperature"?u(r,n.unit.opts):A(r,n.unit.opts);return s===null?Number.NaN:s}return p(a.value,n?n.locale:void 0)},write(i,n){const a=i&&i.__latNumber,r=a?a.input:i,s=a&&a.unit&&typeof a.unit.opts.nullDisplay=="string"?a.unit.opts.nullDisplay:"";if(n==null||n===""){a&&(a.value=null,a.invalid=!1),r.value=s;return}const M=typeof n=="number"?n:Number(n);if(!Number.isFinite(M)){a&&(a.value=null,a.invalid=!1),r.value=s;return}a&&(a.value=M,a.invalid=!1),a&&a.focused?r.value=m(M):a&&a.unit?r.value=a.unit.kind==="unit"?B(M,a.displayUnit!=null?{...a.unit.opts,display:a.displayUnit}:a.unit.opts):_(M,a.unit.opts):a&&a.format?r.value=a.format(M):r.value=m(M),r.value===""?r.removeAttribute("aria-valuetext"):r.setAttribute("aria-valuetext",r.value)},state(i,n){const a=i&&i.__latNumber,r=a?a.input:i;r.disabled=n.disabled===!0,r.readOnly=n.readOnly===!0;const s=n.disabled===!0||n.readOnly===!0;for(const M of a?a.buttons:[])M.disabled=s;a&&a.picker&&(a.picker.disabled=s)},validate(i,n,a){const r=i&&i.__latNumber,s=r&&r.t?r.t:ee;if(a==null||a==="")return null;if(typeof a!="number"||Number.isNaN(a))return r&&r.unit?s("form.validation.unit",{unit:r.unitSymbol}):s("form.validation.number");const M=D=>r&&r.unit&&r.unit.kind==="unit"?B(D,{...r.unit.opts,display:r.unit.opts.unit,group:!0}):r&&r.unit&&r.unit.kind==="temperature"?_(D,r.unit.opts):String(D);if(r&&typeof r.min=="number"&&a<r.min)return s("form.validation.min",{min:M(r.min)});if(r&&typeof r.max=="number"&&a>r.max)return s("form.validation.max",{max:M(r.max)});if(r&&typeof r.step=="number"&&r.step>0){const D=typeof r.min=="number"?r.min:0,Y=(a-D)/r.step;if(Math.abs(Y-Math.round(Y))>1e-9)return s("form.validation.step",{step:String(r.step)})}return null},focus(i){const n=f(i);typeof n.focus=="function"&&n.focus()},blur(i){const n=f(i);typeof n.blur=="function"&&n.blur()},destroy(i){const n=i&&i.__latNumber;if(n)for(const a of n.disposers.splice(0))a()}})}),Ne("packages/modules/form/controls/textarea.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl;V("textarea",{kind:"field",build($,ee){const h=ee.doc.createElement("textarea");return $.name&&(h.name=$.name),$.placeholder!=null&&(h.placeholder=String($.placeholder)),$.rows!=null&&(h.rows=Number($.rows)||2),h.value=$.value==null?"":String($.value),h},read($){return $.value},write($,ee){$.value=ee==null?"":String(ee)},state($,ee){$.disabled=ee.disabled===!0,$.readOnly=ee.readOnly===!0}})}),Ne("packages/modules/form/controls/checkbox.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/state.js"),ee=$.applyBooleanInputState,h=$.guardBooleanInput;V("checkbox",{kind:"toggle",build(P,y){const A=y.doc.createElement("input");return A.type="checkbox",P.name&&(A.name=P.name),A.checked=P.value===!0,h(A),A},read(P){return P.checked},write(P,y){P.checked=y===!0},state(P,y){ee(P,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 i}});const V=q("packages/modules/form/controls/registry.js").registerControl,$="lat-button",ee="data-lattice-button-styles",h="http://www.w3.org/2000/svg",P=Object.freeze({chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"}}),y=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),A=Object.freeze(["sm","md","lg"]),B=Object.freeze(["button","submit","reset"]);function O(){const n=`
1329
1337
  .lat-form{
1330
1338
  --lattice-button-primary-bg:var(--lattice-accent);
1331
1339
  --lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
@@ -1386,14 +1394,14 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1386
1394
  --lattice-button-danger-border-disabled:var(--lattice-button-danger-bg-disabled);
1387
1395
  --lattice-button-danger-text:var(--lattice-background);
1388
1396
  --lattice-button-danger-text-disabled:var(--lattice-foreground-muted);
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;
1397
+ }`,a=y.map(r=>`
1398
+ .lat-form__control .${$}[data-variant='${r}']{ background:var(--lattice-button-${r}-bg); border-color:var(--lattice-button-${r}-border); color:var(--lattice-button-${r}-text); }
1399
+ .lat-form__control .${$}[data-variant='${r}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${r}-bg-hover); }
1400
+ .lat-form__control .${$}[data-variant='${r}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${r}-bg-active); }
1401
+ .lat-form__control .${$}[data-variant='${r}'][aria-pressed='true']{ background:var(--lattice-button-${r}-bg-toggled); }
1402
+ .lat-form__control .${$}[data-variant='${r}']:disabled:not([aria-busy='true']),
1403
+ .lat-form__control .${$}[data-variant='${r}'][aria-disabled='true']:not([aria-busy='true']){
1404
+ 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;
1397
1405
  }`).join(`
1398
1406
  `);return`
1399
1407
  .lat-form__control .${$},
@@ -1425,12 +1433,12 @@ var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}funct
1425
1433
  @keyframes ${$}-spin{ to{ transform:rotate(360deg); } }
1426
1434
  @media (prefers-reduced-motion: reduce){ .lat-form__control .${$} .${$}__spinner{ animation:none; } }
1427
1435
 
1436
+ ${n}
1428
1437
  ${a}
1429
- ${i}
1430
1438
 
1431
1439
  .lat-form__control .${$}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1432
1440
  .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`
1441
+ `.trim()}function v(n){const a=n&&n.documentElement;if(!a||a.getAttribute(ee))return;a.setAttribute(ee,"1");const r=n.createElement("style");r.textContent=O(),(n.head||n.body||a).appendChild(r)}function d(n){return y.includes(n)?n:"secondary"}function u(n){return A.includes(n)?n:"md"}function _(n){return B.includes(n)?n:"button"}function w(n){return n==="end"?"end":"start"}function t(n){return n==="uppercase"?"uppercase":"none"}function o(n){const a=n.props&&n.props.href;return typeof a=="string"&&a!==""}function l(n,a){const r=n.createElementNS(h,"svg");r.setAttribute("viewBox",a.viewBox),r.setAttribute("focusable","false"),r.setAttribute("aria-hidden","true"),a.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 s of a.paths){const M=n.createElementNS(h,"path");M.setAttribute("d",s),r.appendChild(M)}return r}function b(n,a){if(n==null)return null;if(typeof n=="object"&&n.nodeType)return n;if(typeof n!="string"||n==="")return null;const r=n;if(/^(https?:)?\/\//i.test(r)||/^data:/i.test(r)){const M=a.createElement("img");return M.src=r,M.alt="",M}const s=P[r];return s?l(a,s):null}function p(n){const a=n.createElementNS(h,"svg");a.setAttribute("viewBox","0 0 16 16"),a.setAttribute("focusable","false"),a.setAttribute("aria-hidden","true"),a.setAttribute("class",`${$}__spinner`);const r=n.createElementNS(h,"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"),a.appendChild(r),a}function m(n,a,r){const s=a&&a.defaultView,M=s&&s.CustomEvent,D=M?new M("submit",{bubbles:!0,detail:{values:r}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:r},preventDefault(){this.defaultPrevented=!0}};n.dispatchEvent(D)}function f(n){const a=n.loading===!0,r=n.disabled===!0&&n.focusableWhenDisabled!==!0||a;n.el.disabled=r,n.el.setAttribute("aria-disabled",n.disabled===!0||a?"true":"false")}function N(n,a){n.loading=a===!0,n.el.setAttribute("aria-busy",n.loading?"true":"false"),f(n);const r=n.iconSlot;if(!r)return;for(;r.firstChild;)r.removeChild(r.firstChild);const s=n.loading?p(n.doc):n.iconEl;s?(r.appendChild(s),r.parentNode||(n.position==="end"?n.el.appendChild(r):n.el.insertBefore(r,n.el.firstChild))):r.parentNode&&r.parentNode.removeChild(r)}function c(n){return{kind:"item",type:"button",name:n.name!=null&&n.name!==""?String(n.name):null,label:n.label,disabled:n.disabled===!0,props:{icon:n.icon,iconPosition:n.iconPosition,variant:n.variant,fullWidth:n.fullWidth,size:n.size,textTransform:n.textTransform,buttonType:n.buttonType,loading:n.loading,href:n.href,ariaLabel:n.ariaLabel,toggle:n.toggle,focusableWhenDisabled:n.focusableWhenDisabled}}}function i(n,a){const r=a.doc,s=n.props||{},M=n.label!=null?String(n.label):"",D=b(s.icon,r),Y=D!=null&&M==="",U=o(n)?r.createElement("a"):r.createElement("button");U.className=$,U.setAttribute("data-variant",d(s.variant)),U.setAttribute("data-size",u(s.size)),U.setAttribute("data-text-transform",t(s.textTransform)),s.fullWidth===!0&&U.setAttribute("data-full","true"),Y&&U.setAttribute("data-icon-only","true"),n.name&&!o(n)&&(U.name=n.name),o(n)?U.setAttribute("href",s.href):U.type="button";const Q=s.ariaLabel!=null?String(s.ariaLabel):Y?String(n.name||""):"";Q&&U.setAttribute("aria-label",Q);const oe=r.createElement("span");oe.className=`${$}__icon`,oe.setAttribute("aria-hidden","true"),D&&oe.appendChild(D);let F=null;Y||(F=r.createElement("span"),F.className=`${$}__label`,F.textContent=M!==""?M:String(n.name||""));const K=w(s.iconPosition);K==="end"?(F&&U.appendChild(F),oe.firstChild&&U.appendChild(oe)):(oe.firstChild&&U.appendChild(oe),F&&U.appendChild(F));const W={el:U,doc:r,iconSlot:oe,iconEl:D,label:F,position:K,loading:!1,disabled:n.disabled===!0,toggle:s.toggle===!0,pressed:s.toggle===!0&&n.value===!0,focusableWhenDisabled:s.focusableWhenDisabled===!0};U.__latButton=W,W.toggle&&U.setAttribute("aria-pressed",W.pressed?"true":"false");const ge=()=>{if(W.loading||W.disabled)return;if(W.toggle){const le=W.pressed;W.pressed=!W.pressed,U.setAttribute("aria-pressed",W.pressed?"true":"false"),a.emitter.emit("change",{name:n.name,value:W.pressed,previousValue:le,item:n})}const ve=_(s.buttonType);ve==="submit"?(typeof a.form.validate!="function"||a.form.validate())&&m(a.el,r,typeof a.form.getValue=="function"?a.form.getValue():{}):ve==="reset"&&typeof a.form.clear=="function"&&a.form.clear()};return U.addEventListener("click",ge),a.disposers.push(()=>U.removeEventListener("click",ge)),N(W,s.loading===!0),U}V("button",{kind:"button",action:!0,build(n,a){return v(a.doc),i(n,a)},read(n){const a=n&&n.__latButton;return a&&a.toggle?a.pressed:null},write(){},state(n,a){const r=n.__latButton;r&&(r.disabled=a.disabled===!0,f(r))},setLoading(n,a){const r=n.__latButton;r&&N(r,a)}})}),Ne("packages/modules/form/controls/buttons.js",function(S,q){"use strict";Object.defineProperty(S,"injectButtonsStyles",{enumerable:!0,get:function(){return v}});const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/button.js"),ee=$.buildButton,h=$.buttonItemFrom,P=$.injectButtonStyles,y="lat-button-row",A="data-lattice-button-row-styles",B=Object.freeze(["start","end","center","stretch","space-between"]);function O(){return`
1434
1442
  .lat-form__control .${y}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
1435
1443
  .lat-form__control .${y}[data-align='start']{ justify-content:flex-start; }
1436
1444
  .lat-form__control .${y}[data-align='end']{ justify-content:flex-end; }
@@ -1438,7 +1446,7 @@ ${i}
1438
1446
  .lat-form__control .${y}[data-align='space-between']{ justify-content:space-between; }
1439
1447
  .lat-form__control .${y}[data-align='stretch']{ justify-content:flex-start; }
1440
1448
  .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`
1449
+ `.trim()}function v(u){const _=u&&u.documentElement;if(!_||_.getAttribute(A))return;_.setAttribute(A,"1");const w=u.createElement("style");w.textContent=O(),(u.head||u.body||_).appendChild(w)}function d(u){return B.includes(u)?u:"start"}V("buttons",{kind:"display",action:!0,build(u,_){P(_.doc),v(_.doc);const w=u.props||{},t=Array.isArray(w.buttons)?w.buttons:Array.isArray(w.items)?w.items:[],o=_.doc.createElement("div");o.className=y,o.setAttribute("data-align",d(w.align));const l=[];return t.forEach((b,p)=>{if(b==null||typeof b!="object")return;const m=h(b),f=ee(m,_),N=()=>{f.disabled||f.getAttribute("aria-disabled")==="true"||_.emitter.emit("click",{name:m.name,item:m,value:null})};f.addEventListener("click",N),l.push(()=>f.removeEventListener("click",N)),o.appendChild(f)}),_.disposers.push(()=>{for(const b of l)b()}),o},read(){return null},write(){},state(){}})}),Ne("packages/modules/form/controls/text.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl;V("text",{kind:"display",build($,ee){const h=ee.doc.createElement("span");return h.className="lat-form__text",h.textContent=$.value==null?"":String($.value),h},read($){return $.textContent},write($,ee){$.textContent=ee==null?"":String(ee)},state(){}})}),Ne("packages/modules/form/controls/select.js",function(S,q){"use strict";Object.defineProperty(S,"createSelect",{enumerable:!0,get:function(){return N}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,h=q("packages/modules/form/controls/combo.js"),P=h.renderAdornment,y=h.renderTemplateContent,A=h.injectAdornmentStyles,B=q("packages/modules/form/controls/field-icon.js"),O=B.makeFieldIcon,v=B.injectFieldIconStyles,u=q("packages/modules/form/controls/popup-layer.js").openInLayer,_="lat-select__popup--above",w=700;function t(i,n){const a=i&&i.defaultView;return a&&a.Event?new a.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}}}function o(i){return i!=null&&typeof i=="object"?"value"in i?i.value:"":i??""}function l(i){return i==null?"":typeof i!="object"?String(i):i.label!=null?String(i.label):i.text!=null?String(i.text):i.value==null?"":String(i.value)}function b(i){return i!=null&&typeof i=="object"&&Array.isArray(i.options)}function p(i){const n=[];if(!Array.isArray(i))return n;for(const a of i)if(b(a)){const r=l(a);n.push({group:!0,label:r});for(const s of a.options)if(b(s)){n.push({group:!0,label:l(s)});for(const M of s.options)n.push(m(M))}else n.push(m(s))}else n.push(m(a));return n}function m(i){const n=i!=null&&typeof i=="object"?i:{},a=n.description!=null?String(n.description):n.subtitle!=null?String(n.subtitle):null;return{group:!1,value:o(i),label:l(i),icon:n.icon,avatar:n.avatar,color:n.color,dot:n.dot,description:a,disabled:n.disabled===!0}}function f(i,n){return i===n?!0:i!=null&&n!=null&&String(i)===String(n)}function N(i,n={}){const a=n.doc||i&&i.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;a&&(A(a),v(a));const r=typeof n.t=="function"?n.t:ee,s=n.multiple===!0,M=p(n.options),D=M.filter(de=>!de.group);let Y=[];const U=a.createElement("div");U.className="lat-combo lat-select",s&&U.setAttribute("data-multiple","true");const Q=a.createElement("button");Q.type="button",Q.className="lat-select__trigger",Q.setAttribute("role","combobox"),Q.setAttribute("aria-haspopup","listbox"),Q.setAttribute("aria-expanded","false"),s&&Q.setAttribute("aria-multiselectable","true"),Q.setAttribute("aria-label",n.ariaLabel||r("form.select.toggle"));const oe=a.createElement("span");oe.className="lat-select__value";const F=a.createElement("span");F.className="lat-select__arrow",F.setAttribute("aria-hidden","true");const K=O(a,"chevronDown");K&&F.appendChild(K),Q.appendChild(oe),Q.appendChild(F);const W=a.createElement("div");W.className="lat-combo__popup lat-select__popup",W.hidden=!0;const ge=a.createElement("div");ge.className="lat-combo__list lat-select__list",ge.setAttribute("role","listbox"),W.appendChild(ge),U.appendChild(Q),U.appendChild(W);const ve=`lat-select-lb-${te()}`;ge.id=ve,Q.setAttribute("aria-controls",ve);const le=[];let x=-1,L=!1,I="",g=null;const T=[];let X=!1,z=null;function te(){return te.n=(te.n||0)+1,te.n}function re(de,fe,we){de.addEventListener(fe,we),T.push(()=>de.removeEventListener(fe,we))}function j(de){return D.find(fe=>f(fe.value,de))||null}function k(){i.dispatchEvent(t(a,"change"))}function Z(){return s?Y.slice():Y.length?Y[0]:""}function H(){if(!s){for(;oe.firstChild;)oe.removeChild(oe.firstChild);if(Y.length){const de=j(Y[0]),fe=y(a,de,n.selectedTemplate);if(fe)oe.appendChild(fe);else{const we=P(a,de);we&&oe.appendChild(we);const Se=a.createElement("span");Se.className="lat-select__label",Se.textContent=de?de.label:Y[0],oe.appendChild(Se)}oe.removeAttribute("data-placeholder")}else oe.textContent=n.placeholder!=null?String(n.placeholder):"",oe.setAttribute("data-placeholder","true");return}Y.length===0?(oe.textContent=n.placeholder!=null?String(n.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;const we=D.some(Se=>Se.value==="");if(s)fe=Array.isArray(de)?de:de==null||de===""&&!we?[]:[de];else{const Se=Array.isArray(de)?de.length?de[0]:null:de;fe=Se==null||Se===""&&!we?[]:[Se]}Y=[];for(const Se of fe){const Te=D.find(Pe=>f(Pe.value,Se));Te&&Y.push(Te.value)}H(),G()}function G(){for(let de=0;de<le.length;de++){const fe=le[de],we=D[de],Se=!!we&&Y.some(Pe=>f(Pe,we.value));fe.setAttribute("aria-selected",Se?"true":"false");const Te=fe.querySelector(".lat-select__check");Te&&(Te.textContent=Se?"✓":"")}}function R(de){for(let fe=Math.max(0,de);fe<D.length;fe++)if(!D[fe].disabled)return fe;return-1}function ce(de){for(let fe=Math.min(D.length-1,de);fe>=0;fe--)if(!D[fe].disabled)return fe;return-1}function me(de){x=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"),Q.setAttribute("aria-activedescendant",le[de].id)):Q.removeAttribute("aria-activedescendant")}function xe(){if(x<0||x>=le.length)return;const de=le[x];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 C(de){const fe=x<0?de>0?-1:D.length:x,we=de>0?R(fe+1):ce(fe-1);we!==-1&&me(we),xe()}function ne(){if(!(L||X||n.disabled)&&(L=!0,W.hidden=!1,Q.setAttribute("aria-expanded","true"),z=u(W,Q,{aboveClass:_,onOffscreen:se}),x<0&&D.length)){const de=s?-1:Y.length?D.findIndex(fe=>f(fe.value,Y[0])):-1;me(R(de>=0?de:0))}}function se(){L&&(L=!1,W.hidden=!0,W.classList.remove(_),z&&(z.close(),z=null),Q.setAttribute("aria-expanded","false"),me(-1),I="")}function J(){L?se():ne()}function ue(de){if(n.readOnly)return;if(!s){const we=Y.length===0||Y[0]!==de;Y=[de],H(),G(),se(),we&&k();return}Y=Y.some(we=>we===de)?Y.filter(we=>we!==de):[...Y,de],H(),G(),Q.focus(),k()}function he(){x<0||x>=D.length||D[x].disabled||ue(D[x].value)}function be(de){g&&clearTimeout(g),I+=de.toLowerCase(),g=setTimeout(()=>{I="",g=null},w),L||ne();const fe=x>-1?x+1:0;let we=-1;for(let Se=fe;Se<D.length;Se++)if(!D[Se].disabled&&D[Se].label.toLowerCase().startsWith(I)){we=Se;break}if(we===-1){for(let Se=0;Se<fe;Se++)if(!D[Se].disabled&&D[Se].label.toLowerCase().startsWith(I)){we=Se;break}}we!==-1&&(me(we),xe())}function Ee(de){const fe=de.altKey===!0;if(de.key==="ArrowDown"||fe&&de.key==="ArrowDown")de.preventDefault(),L?C(1):(ne(),x===-1&&D.length&&me(R(0)));else if(de.key==="ArrowUp")de.preventDefault(),L?C(-1):(ne(),D.length&&me(ce(D.length-1)));else if(de.key==="Home"){if(!L)return;de.preventDefault();const we=R(0);we!==-1&&me(we),xe()}else if(de.key==="End"){if(!L)return;de.preventDefault();const we=ce(D.length-1);we!==-1&&me(we),xe()}else de.key==="Enter"||de.key===" "?(de.preventDefault(),L?he():ne()):de.key==="Escape"?L&&(de.preventDefault(),se()):de.key==="Tab"?L&&he():de.key.length===1&&!de.ctrlKey&&!de.metaKey&&!fe&&(de.preventDefault(),be(de.key))}function Oe(de){de<0||de>=D.length||D[de].disabled||ue(D[de].value)}function Ae(de,fe){const we=a.createElement("div");if(we.className="lat-combo__option",we.setAttribute("role","option"),we.id=`${ve}-opt-${fe}`,we.setAttribute("data-value",de.value),we.setAttribute("aria-selected","false"),de.disabled&&(we.setAttribute("aria-disabled","true"),we.classList.add("lat-select__option--disabled")),s){const Pe=a.createElement("span");Pe.className="lat-select__check",Pe.setAttribute("aria-hidden","true"),we.appendChild(Pe)}const Se=y(a,de,n.optionTemplate);if(Se)we.appendChild(Se);else{const Pe=P(a,de);Pe&&we.appendChild(Pe);const tt=a.createElement("span");tt.className="lat-combo__text";const Ze=a.createElement("span");if(Ze.className="lat-combo__title",Ze.textContent=de.label,tt.appendChild(Ze),de.description!=null){const Je=a.createElement("span");Je.className="lat-combo__subtitle",Je.textContent=de.description,tt.appendChild(Je)}we.appendChild(tt)}return re(we,"click",Pe=>{Pe.stopPropagation(),Oe(fe)}),le.push(we),we}function Ce(){let de=0,fe=0,we=null,Se=null;for(const Te of M)if(Te.group)we=a.createElement("div"),we.setAttribute("role","group"),Se=a.createElement("div"),Se.id=`${ve}-grp-${fe}`,Se.className="lat-select__group",Se.textContent=Te.label||"",we.setAttribute("aria-labelledby",Se.id),we.appendChild(Se),ge.appendChild(we),fe+=1;else{const Pe=Ae(Te,de);de+=1,we?we.appendChild(Pe):ge.appendChild(Pe)}}const ye=()=>{n.disabled||J()},ke=()=>{i.dispatchEvent(t(a,"focus"))},Le=()=>{i.dispatchEvent(t(a,"blur")),se()},De=de=>{U.contains(de.target)||W.contains(de.target)||se()};re(Q,"click",ye),re(Q,"keydown",Ee),re(Q,"focus",ke),re(Q,"blur",Le),re(ge,"mousedown",de=>de.preventDefault()),a&&re(a,"mousedown",De),Ce(),E(n.value);const He={el:i,root:U,trigger:Q,getValue:Z,setValue(de){return E(de),He},open(){return ne(),He},close(){return se(),He},focus(){return Q.focus(),He},blur(){return Q.blur(),He},setDisabled(de){n.disabled=de,Q.disabled=de,de&&se()},setReadOnly(de){n.readOnly=de,de?Q.setAttribute("aria-readonly","true"):Q.removeAttribute("aria-readonly")},destroy(){se(),X=!0,g&&clearTimeout(g);for(const de of T.splice(0))de();for(;U.firstChild;)U.removeChild(U.firstChild)}};return i.appendChild(U),i.__select=He,He}function c(i,n){const a=n.doc.createElement("select");i.name&&(a.name=i.name);const r=i.props&&i.props.multiple===!0;r&&(a.multiple=!0),a.__multiple=r;const s=p(i.options),M=s.filter(Q=>!Q.group),D=M.some(Q=>Q.value===""),Y=n.doc.createElement("option");Y.value="",Y.textContent=i.placeholder!=null?String(i.placeholder):"",!r&&!D&&a.appendChild(Y);let U=null;for(const Q of s)if(Q.group)U=n.doc.createElement("optgroup"),U.label=Q.label||"",a.appendChild(U);else{const oe=n.doc.createElement("option");oe.value=String(Q.value),oe.textContent=Q.label,Q.disabled&&(oe.disabled=!0),oe.__value=Q.value,oe.__typed=!0,(U||a).appendChild(oe)}if(r){const Q=(Array.isArray(i.value)?i.value:[]).filter(oe=>oe!=null&&oe!=="");for(const oe of a.options)oe.__typed&&(oe.selected=Q.some(F=>f(F,oe.__value)))}else{const Q=i.value==null||i.value===""&&!D?null:i.value,oe=Q==null?null:M.find(F=>f(F.value,Q));a.value=oe?String(oe.value):""}return a.__select={getValue(){if(!r){if(a.selectedOptions&&a.selectedOptions.length){const oe=a.selectedOptions[0];if(oe&&oe.__typed)return oe.__value}const Q=M.find(oe=>f(oe.value,a.value));return Q?Q.value:a.value}return[...a.selectedOptions].map(Q=>Q.__typed?Q.__value:Q.value)},setValue(Q){if(!r){const F=Q==null||Q===""&&!D?null:Q,K=F==null?null:M.find(W=>f(W.value,F));a.value=K?String(K.value):"";return}const oe=(Array.isArray(Q)?Q:[]).filter(F=>F!=null&&F!=="");for(const F of a.options)F.__typed&&(F.selected=oe.some(K=>f(K,F.__value)))},setDisabled(Q){a.disabled=Q},setReadOnly(Q){Q&&(a.disabled=!0)},focus(){a.focus()},blur(){a.blur()},destroy(){}},a}V("select",{kind:"field",build(i,n){const a=i.props||{};if(a.native===!0)return c(i,n);const r=n.doc.createElement("div");return N(r,{options:i.options,multiple:a.multiple===!0,value:i.value,placeholder:i.placeholder,ariaLabel:i.label,optionTemplate:a.optionTemplate,selectedTemplate:a.selectedTemplate,t:n.t,doc:n.doc}),n.disposers.push(()=>{r.__select&&r.__select.destroy()}),r},read(i){return i.__select?i.__select.getValue():""},write(i,n){i.__select&&i.__select.setValue(n)},state(i,n){i.__select&&(i.__select.setDisabled(n.disabled===!0),i.__select.setReadOnly(n.readOnly===!0))},focus(i){i.__select&&i.__select.focus()},blur(i){i.__select&&i.__select.blur()}})}),Ne("packages/modules/form/controls/listbox.js",function(S,q){"use strict";Object.defineProperty(S,"createListBox",{enumerable:!0,get:function(){return n}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,h=q("packages/modules/form/controls/combo.js"),P=h.renderAdornment,y=h.renderTemplateContent,A=h.injectAdornmentStyles,B="data-lattice-form-listbox-styles",O=30,v=46,d=48,u=250,_=700;function w(){return`
1442
1450
  .lat-listbox{
1443
1451
  display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 2); min-width:0; box-sizing:border-box;
1444
1452
  font-size:var(--lattice-font-size); color:var(--lattice-foreground);
@@ -1511,18 +1519,18 @@ ${i}
1511
1519
  }
1512
1520
  .lat-listbox__status{ padding:calc(var(--lattice-space) / 2) var(--lattice-space); color:var(--lattice-foreground-muted); }
1513
1521
  .lat-listbox__status[hidden]{ display:none; }
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(),Ot(),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 Ot(){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 jt(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):jt(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 Nt(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=jt(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(()=>Tt(),u)}function Tt(){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",Nt),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"&&Tt();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`
1515
- .${U}__radiogroup--horizontal,
1516
- .${U}__checkboxgroup--horizontal{
1522
+ `.trim()}function t(a){const r=a&&a.documentElement;if(!r||r.getAttribute(B))return;r.setAttribute(B,"1");const s=a.createElement("style");s.textContent=w(),(a.head||a.body||r).appendChild(s)}function o(a){return a==null||typeof a!="object"?{value:a,label:a==null?"":String(a),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:a.value,label:a.label!=null?String(a.label):a.title!=null?String(a.title):a.value==null?"":String(a.value),description:a.description!=null?String(a.description):a.subtitle!=null?String(a.subtitle):null,icon:a.icon,avatar:a.avatar,color:a.color,dot:a.dot,disabled:a.disabled===!0,group:a.group!=null?String(a.group):null}}function l(a){if(Array.isArray(a))return{items:a,total:a.length,hasMore:!1};if(a&&typeof a=="object"){const r=Array.isArray(a.items)?a.items:[];return{items:r,total:typeof a.total=="number"?a.total:r.length,hasMore:a.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function b(a,r){return a===r?!0:a!=null&&r!=null&&String(a)===String(r)}function p(a){return String(a)}function m(a,r){const s=a&&a.defaultView;return s&&s.Event?new s.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 f=0;function N(){return f+=1,f}function c(a){return a.__latListboxRegistry||(a.__latListboxRegistry=new Map),a.__latListboxRegistry}let i=null;function n(a,r={}){const s=r.doc||a&&a.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;s&&(t(s),A(s));const M=typeof r.t=="function"?r.t:ee,D=["single","multiple","checkbox"].includes(r.selection)?r.selection:"single",Y=D!=="single",U=r.reorder===!0,Q=typeof r.connect=="string"&&r.connect!==""?r.connect:null,oe=typeof r.name=="string"&&r.name!==""?r.name:null,F=r.sort==="asc"||r.sort==="desc"?r.sort:!1,K=r.groupBy===!0,W=r.filter===!0,ve=`lat-listbox-${N()}`,le=s.createElement("div");le.className="lat-listbox",r.inForm||(le.setAttribute("data-lattice-standalone","true"),le.setAttribute("data-density",["compact","standard","comfortable"].includes(r.density)?r.density:"standard"));let x=null;W&&(x=s.createElement("input"),x.type="text",x.className="lat-listbox__filter",x.placeholder=M("form.listbox.filterPlaceholder"),x.setAttribute("aria-label",M("form.listbox.filterPlaceholder")),le.appendChild(x));let L=null,I=null,g=null,T=null,X=null;(U||Q)&&(L=s.createElement("div"),L.className="lat-listbox__toolbar",L.setAttribute("role","group"),L.setAttribute("aria-label",M("form.listbox.toolbar")),U&&(I=s.createElement("button"),I.type="button",I.className="lat-listbox__toolbar-btn",I.textContent=M("form.listbox.moveUp"),g=s.createElement("button"),g.type="button",g.className="lat-listbox__toolbar-btn",g.textContent=M("form.listbox.moveDown"),L.appendChild(I),L.appendChild(g)),Q&&(T=s.createElement("button"),T.type="button",T.className="lat-listbox__toolbar-btn",T.textContent=M("form.listbox.moveSelected"),X=s.createElement("button"),X.type="button",X.className="lat-listbox__toolbar-btn",X.textContent=M("form.listbox.moveAll"),L.appendChild(T),L.appendChild(X)),le.appendChild(L));const z=s.createElement("div");z.className="lat-listbox__viewport",z.id=`${ve}-lb`,z.setAttribute("role","listbox"),z.setAttribute("tabindex","0"),Y&&z.setAttribute("aria-multiselectable","true"),z.setAttribute("aria-label",r.ariaLabel!=null?String(r.ariaLabel):"");const te=typeof r.rows=="number"&&r.rows>0?r.rows:8;typeof r.height=="number"&&r.height>0?z.style.height=`${r.height}px`:z.style.height=`calc(var(--lattice-row-height) * ${te})`;let re=null;if(D==="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=`${ve}-select-all`,ae.appendChild(re);const pe=s.createElement("label");pe.className="lat-listbox__title",pe.textContent=M("form.listbox.selectAll"),pe.setAttribute("for",re.id),ae.appendChild(pe),z.appendChild(ae)}const j=s.createElement("div");j.className="lat-listbox__spacer",z.appendChild(j);const k=s.createElement("div");k.className="lat-listbox__status",k.setAttribute("role","status"),k.setAttribute("aria-live","polite"),k.hidden=!0,z.appendChild(k),le.appendChild(z);let Z=[];const H=new Set;let E=[],G=-1,R=null,ce="";const me=[],xe=[];let C=0,ne="",se=null,J=null,ue=null,he=0,be=!1,Ee=0,Oe=!1;const Ae=[];let Ce=!1;function ye(ae,pe,_e){ae.addEventListener(pe,_e),Ae.push(()=>ae.removeEventListener(pe,_e))}function ke(){return r.readOnly===!0||r.disabled===!0}function Le(){a.dispatchEvent(m(s,"change"))}function De(){if(D==="single"){const ae=Z.find(pe=>H.has(p(pe.value)));return ae?ae.value:null}return U||Q?Z.map(ae=>ae.value):Z.filter(ae=>H.has(p(ae.value))).map(ae=>ae.value)}function He(){const ae=E.filter(pe=>!pe.disabled);return ae.length>0&&ae.every(pe=>H.has(p(pe.value)))}function de(){const ae=ce.trim().toLowerCase();let pe=ae===""?Z.slice():Z.filter(_e=>_e.label.toLowerCase().includes(ae)||(_e.description||"").toLowerCase().includes(ae));F&&(pe=pe.slice().sort((_e,je)=>_e.label.localeCompare(je.label)*(F==="desc"?-1:1))),E=pe,me.length=0,xe.length=0,G>=E.length&&(G=E.length-1)}function fe(ae){const pe=[],_e=new Map;for(const je of ae){const Ve=je.group||"";let Ie=_e.get(Ve);Ie||(Ie={group:je.group||null,items:[]},_e.set(Ve,Ie),pe.push(Ie)),Ie.items.push(je)}return pe}function we(ae){return`${ve}-opt-${ae}`}function Se(ae){return ae.description!=null||ae.icon!=null||ae.avatar!=null?v:O}function Te(ae){const pe=E[ae];return!!pe&&H.has(p(pe.value))}function Pe(ae,pe){const _e=s.createElement("div");if(_e.className="lat-listbox__option",_e.setAttribute("role","option"),_e.id=we(pe),_e.setAttribute("aria-selected",Te(pe)?"true":"false"),ae.disabled&&_e.setAttribute("aria-disabled","true"),D==="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(),_e.appendChild(Ie)}const je=y(s,ae,r.render);if(je)_e.appendChild(je);else{const Ie=P(s,ae);Ie&&_e.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)}_e.appendChild(Fe)}return(U||Q)&&!ae.disabled&&!ke()&&(_e.draggable=!0,ye(_e,"dragstart",()=>tt(ae)),ye(_e,"dragover",Ie=>{Ie.preventDefault()}),ye(_e,"drop",Ie=>{Ie.preventDefault(),Ze(ae)})),ye(_e,"click",Ie=>{ae.disabled||ke()||(z.focus(),at(pe,{shift:Ie.shiftKey,ctrl:Ie.ctrlKey||Ie.metaKey,touch:Ie.pointerType==="touch"}))}),_e}function tt(ae){const pe=H.has(p(ae.value))?Z.filter(_e=>H.has(p(_e.value))).map(_e=>_e.value):[ae.value];i={source:ct,values:pe}}function Ze(ae){if(!i||ke())return;const{source:pe,values:_e}=i;i=null;const je=Z.findIndex(Ve=>b(Ve.value,ae.value));if(je!==-1){if(pe===ct){if(!U)return;Je(_e,je),qe(),Le();return}if(Q){const Ve=pe.__removeValues(_e);if(Ve.length===0)return;Z.splice(je,0,...Ve);for(const Ie of Ve)H.add(p(Ie.value));de(),qe(),Le()}}}function Je(ae,pe){const _e=new Set(ae.map(p)),je=Z.filter(Ue=>_e.has(p(Ue.value)));if(je.length===0)return;const Ve=Z[pe]?p(Z[pe].value):null,Ie=Z.filter(Ue=>!_e.has(p(Ue.value)));let Fe=Ve==null?Ie.length:Ie.findIndex(Ue=>p(Ue.value)===Ve);Fe===-1&&(Fe=Ie.length),Ie.splice(Fe,0,...je),Z=Ie}function Be(ae){const pe=new Set(ae.map(p)),_e=Z.filter(je=>pe.has(p(je.value)));if(_e.length===0)return _e;Z=Z.filter(je=>!pe.has(p(je.value)));for(const je of _e)H.delete(p(je.value));return de(),qe(),Le(),_e}function Qe(ae){ae.length!==0&&(Z=Z.concat(ae),de(),qe(),Le())}function lt(){return!Q||!s?null:c(s).get(Q)||null}function ot(){const ae=lt();if(!ae||ke())return;const pe=Z.filter(je=>H.has(p(je.value))).map(je=>je.value);if(pe.length===0)return;const _e=Be(pe);ae.__receiveItems(_e)}function Ye(){const ae=lt();if(!ae||ke()||Z.length===0)return;const pe=Be(Z.map(_e=>_e.value));ae.__receiveItems(pe)}function Xe(ae){if(ke())return;const pe=[];for(let _e=0;_e<Z.length;_e++)H.has(p(Z[_e].value))&&pe.push(_e);if(pe.length!==0){if(ae<0)for(const _e of pe)_e===0||H.has(p(Z[_e-1].value))||([Z[_e-1],Z[_e]]=[Z[_e],Z[_e-1]]);else for(let _e=pe.length-1;_e>=0;_e--){const je=pe[_e];je===Z.length-1||H.has(p(Z[je+1].value))||([Z[je+1],Z[je]]=[Z[je],Z[je+1]])}de(),qe(),Le()}}function qe(){for(;j.firstChild;)j.removeChild(j.firstChild);j.style.height="",j.style.position="",K?_t():st(),Ot(),et(),L&&it()}function _t(){let ae=0;for(const pe of fe(E))if(pe.group!=null){const _e=s.createElement("div");_e.setAttribute("role","group");const je=s.createElement("div");je.className="lat-listbox__group-header",je.id=`${ve}-grp-${ae}`,je.textContent=pe.group,_e.setAttribute("aria-labelledby",je.id),_e.appendChild(je);for(const Ve of pe.items)_e.appendChild(Pe(Ve,ae)),ae+=1;j.appendChild(_e)}else for(const _e of pe.items)j.appendChild(Pe(_e,ae)),ae+=1}function st(){if(j.style.position="relative",C=z.clientHeight||C||240,E.length===0){j.style.height="0px";return}for(let Fe=0;Fe<E.length;Fe++)me[Fe]==null&&(me[Fe]=Se(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=z.scrollTop,pe=ae,_e=ae+C;let je=0;for(;je<E.length-1&&xe[je+1]<pe;)je+=1;let Ve=je;for(;Ve<E.length&&xe[Ve]<_e;)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(we(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(G<0||K)return;const ae=xe[G]||0,pe=ae+(me[G]||Se(E[G]));ae<z.scrollTop?z.scrollTop=ae:pe>z.scrollTop+C&&(z.scrollTop=pe-C),qe()}function Ot(){E.length===0?(k.hidden=!1,k.textContent=M("form.listbox.empty")):(k.hidden=!0,k.textContent="")}function rt(){for(const ae of j.querySelectorAll('.lat-listbox__option[role="option"]')){const pe=ae.id||"",_e=Number(pe.slice(`${ve}-opt-`.length));if(Number.isNaN(_e))continue;const je=E[_e];if(!je)continue;const Ve=H.has(p(je.value));ae.setAttribute("aria-selected",Ve?"true":"false");const Ie=ae.querySelector(".lat-listbox__checkbox");Ie&&(Ie.checked=Ve)}et(),L&&it()}function et(){if(!re)return;const ae=E.filter(_e=>!_e.disabled),pe=ae.filter(_e=>H.has(p(_e.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=H.size>0,pe=ke();I&&(I.disabled=pe||!ae),g&&(g.disabled=pe||!ae),T&&(T.disabled=pe||!ae),X&&(X.disabled=pe||Z.length===0)}function ut(ae){G=ae,ae>=0&&ae<E.length?z.setAttribute("aria-activedescendant",we(ae)):z.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 jt(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 _e=E[ae];if(!_e||_e.disabled||ke())return;ut(ae);const je=new Set(H);if(D==="single")H.clear(),H.add(p(_e.value)),R=ae;else if(D==="checkbox")H.has(p(_e.value))?H.delete(p(_e.value)):H.add(p(_e.value)),R=ae;else if(pe.shift&&R!=null){const Ve=Math.min(R,ae),Ie=Math.max(R,ae);H.clear();for(let Fe=Ve;Fe<=Ie;Fe++)E[Fe].disabled||H.add(p(E[Fe].value))}else pe.ctrl||pe.touch?(H.has(p(_e.value))?H.delete(p(_e.value)):H.add(p(_e.value)),R=ae):(H.clear(),H.add(p(_e.value)),R=ae);pt(),rt(),dt(je,H)||Le()}function dt(ae,pe){if(ae.size!==pe.size)return!1;for(const _e of ae)if(!pe.has(_e))return!1;return!0}function wt(){if(ke())return;const ae=!He();for(const pe of E)pe.disabled||(ae?H.add(p(pe.value)):H.delete(p(pe.value)));rt(),Le()}function nt(ae,pe){if(E.length===0)return;const _e=G<0?ae>0?-1:E.length:G,je=ae>0?Lt(_e+1):jt(_e-1);if(je!==-1){if(ut(je),pt(),D==="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},_);const pe=G>-1?G+1:0;let _e=-1;for(let je=pe;je<E.length;je++)if(!E[je].disabled&&E[je].label.toLowerCase().startsWith(ne)){_e=je;break}if(_e===-1){for(let je=0;je<pe;je++)if(!E[je].disabled&&E[je].label.toLowerCase().startsWith(ne)){_e=je;break}}_e!==-1&&(ut(_e),pt())}function Nt(ae){if(ae.altKey&&ae.key==="ArrowUp"&&U)ae.preventDefault(),Xe(-1);else if(ae.altKey&&ae.key==="ArrowDown"&&U)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(),D==="single"&&at(pe,{}))}else if(ae.key==="End"){ae.preventDefault();const pe=jt(E.length-1);pe!==-1&&(ut(pe),pt(),D==="single"&&at(pe,{}))}else if(ae.key===" ")ae.preventDefault(),G>=0&&at(G,{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||H.add(p(pe.value));rt(),Le()}else ae.key.length===1&&!ae.ctrlKey&&!ae.metaKey&&!ae.altKey&&vt(ae.key)}function mt(){if(ce=x.value||"",typeof r.load!="function"){de(),qe();return}J&&clearTimeout(J),J=setTimeout(()=>Tt(),u)}function Tt(){if(Ce||typeof r.load!="function")return;be=!0,he+=1;const ae=he;ue&&ue.abort(),ue=typeof AbortController<"u"?new AbortController:null;let pe;try{pe=r.load({search:ce,page:0,signal:ue?ue.signal:void 0})}catch{be=!1;return}const _e=je=>{if(Ce||ae!==he)return;be=!1;const Ve=l(je);Z=Ve.items.map(o),Oe=Ve.hasMore,Ee=1,de(),qe()};pe&&typeof pe.then=="function"?pe.then(_e,()=>{be=!1}):_e(pe)}ye(z,"keydown",Nt),ye(z,"scroll",()=>{K||st()}),x&&ye(x,"input",mt),I&&ye(I,"click",()=>Xe(-1)),g&&ye(g,"click",()=>Xe(1)),T&&ye(T,"click",()=>ot()),X&&ye(X,"click",()=>Ye()),re&&ye(re,"change",()=>wt()),ye(z,"dragover",ae=>{i&&ae.preventDefault()}),ye(z,"drop",ae=>{if(ae.preventDefault(),!i||i.source===ct||!Q)return;const pe=i.source.__removeValues(i.values);i=null,Qe(pe)});function yt(ae){if(H.clear(),D==="single")ae!=null&&H.add(p(ae));else if((U||Q)&&Array.isArray(ae)){const pe=new Map(Z.map(_e=>[p(_e.value),_e]));Z=ae.map(_e=>pe.get(p(_e))||o(_e));for(const _e of Z)H.add(p(_e.value))}else{const pe=Array.isArray(ae)?ae:ae==null?[]:[ae];for(const _e of pe)H.add(p(_e))}de(),qe()}typeof r.load!="function"&&(Z=(Array.isArray(r.options)?r.options:[]).map(o)),de(),yt(r.value),typeof r.load=="function"&&Tt();const ct={el:a,root:le,viewport:z,getValue:De,setValue(ae){return yt(ae),ct},focus(){return z.focus(),ct},blur(){return z.blur(),ct},setDisabled(ae){r.disabled=ae,z.setAttribute("aria-disabled",ae?"true":"false"),x&&(x.disabled=ae),et(),it()},setReadOnly(ae){r.readOnly=ae,ae?z.setAttribute("aria-readonly","true"):z.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(),a.appendChild(le),a.__listbox=ct,ct}V("listbox",{kind:"field",build(a,r){const s=a.props||{},M=r.doc.createElement("div");return n(M,{options:a.options,load:s.load,selection:s.selection,value:a.value,filter:s.filter===!0,groupBy:s.groupBy===!0,sort:s.sort,render:s.render,reorder:s.reorder===!0,connect:s.connect,name:a.name,min:a.min,max:a.max,height:s.height,rows:a.rows,disabled:a.disabled===!0,readOnly:a.readOnly===!0,ariaLabel:a.label,t:r.t,doc:r.doc,inForm:!0}),M.__listboxT=r.t,r.disposers.push(()=>{M.__listbox&&M.__listbox.destroy()}),M},read(a){return a.__listbox?a.__listbox.getValue():null},write(a,r){a.__listbox&&a.__listbox.setValue(r)},validate(a,r,s){if(!a.__listbox)return null;const D=a.__listboxT||ee,Y=Array.isArray(s)?s.length:s==null?0:1,U=r.min!=null&&Number.isFinite(Number(r.min))?Number(r.min):null,Q=r.max!=null&&Number.isFinite(Number(r.max))?Number(r.max):null;return U!=null&&Y<U?{code:"min",message:D("form.listbox.min",{min:String(U)})}:Q!=null&&Y>Q?{code:"max",message:D("form.listbox.max",{max:String(Q)})}:null},state(a,r){a.__listbox&&(a.__listbox.setDisabled(r.disabled===!0),a.__listbox.setReadOnly(r.readOnly===!0))},focus(a){a.__listbox&&a.__listbox.focus()},blur(a){a.__listbox&&a.__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 ee}}),Object.defineProperty(S,"choiceLayoutCss",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return y}});const V=q("packages/modules/form/styles.js").NS;function $(A){return Array.isArray(A)?A.map(B=>{if(typeof B=="string")return{value:B,label:B};if(B&&typeof B=="object"){const O=B.value==null?"":String(B.value),v=B.label!=null?String(B.label):B.text!=null?String(B.text):O;return{value:O,label:v}}return{value:"",label:""}}):[]}function ee(A){const B=A&&A.props?A.props:{},O=A&&A.orientation!=null?A.orientation:B.orientation;let v=A&&A.columns!=null?A.columns:B.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 h(){return`
1523
+ .${V}__radiogroup--horizontal,
1524
+ .${V}__checkboxgroup--horizontal{
1517
1525
  flex-direction:row; flex-wrap:wrap; align-items:center;
1518
1526
  gap:calc(var(--lattice-space) * 1.5);
1519
1527
  }
1520
- .${U}__radiogroup--columns,
1521
- .${U}__checkboxgroup--columns{
1528
+ .${V}__radiogroup--columns,
1529
+ .${V}__checkboxgroup--columns{
1522
1530
  display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
1523
1531
  gap:var(--lattice-space);
1524
1532
  }
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`
1533
+ `.trim()}const P="data-lattice-form-choice-styles";function y(A){const B=A&&A.documentElement;if(!B||B.getAttribute(P))return;B.setAttribute(P,"1");const O=A.createElement("style");O.textContent=h(),(A.head||A.body||B).appendChild(O)}}),Ne("packages/modules/form/controls/radiogroup.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/options.js"),ee=$.normalizeOptions,h=$.resolveChoiceLayout,P=$.injectChoiceLayoutStyles,y=q("packages/modules/form/state.js"),A=y.applyBooleanInputState,B=y.guardBooleanInput;V("radiogroup",{kind:"field",build(O,v){const d=v.doc.createElement("div");d.className="lat-form__radiogroup",d.setAttribute("role","radiogroup"),O.label!=null&&O.label!==""&&d.setAttribute("aria-label",String(O.label));const u=h(O);u.columns>0?(P(v.doc),d.classList.add("lat-form__radiogroup--columns"),d.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(P(v.doc),d.classList.add("lat-form__radiogroup--horizontal")),d.setAttribute("aria-orientation",u.orientation);const _=[];for(const w of ee(O.options)){const t=v.doc.createElement("label");t.className="lat-form__choice";const o=v.doc.createElement("input");o.type="radio",O.name&&(o.name=O.name),o.value=w.value,o.checked=O.value!=null&&String(O.value)===w.value,B(o),t.appendChild(o);const l=v.doc.createElement("span");l.textContent=w.label,t.appendChild(l),d.appendChild(t),_.push(o)}return d.__radios=_,d},read(O){const v=O.__radios.find(d=>d.checked);return v?v.value:null},write(O,v){const d=v==null?null:String(v);for(const u of O.__radios)u.checked=d!==null&&u.value===d},state(O,v){const d=v.readOnly===!0;for(const u of O.__radios)A(u,v.disabled===!0,d);d?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly")},focus(O){const v=O.__radios.find(d=>!d.disabled);v&&v.focus()}})}),Ne("packages/modules/form/controls/checkboxgroup.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/options.js"),ee=$.normalizeOptions,h=$.resolveChoiceLayout,P=$.injectChoiceLayoutStyles,y=q("packages/modules/form/state.js"),A=y.applyBooleanInputState,B=y.guardBooleanInput;V("checkboxgroup",{kind:"field",build(O,v){const d=v.doc.createElement("div");d.className="lat-form__checkboxgroup",d.setAttribute("role","group"),O.label!=null&&O.label!==""&&d.setAttribute("aria-label",String(O.label));const u=h(O);u.columns>0?(P(v.doc),d.classList.add("lat-form__checkboxgroup--columns"),d.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(P(v.doc),d.classList.add("lat-form__checkboxgroup--horizontal"));const _=[],w=Array.isArray(O.value)?O.value.map(String):[];for(const t of ee(O.options)){const o=v.doc.createElement("label");o.className="lat-form__choice";const l=v.doc.createElement("input");l.type="checkbox",O.name&&(l.name=O.name),l.value=t.value,l.checked=w.includes(t.value),B(l),o.appendChild(l);const b=v.doc.createElement("span");b.textContent=t.label,o.appendChild(b),d.appendChild(o),_.push(l)}return d.__boxes=_,d},read(O){return O.__boxes.filter(v=>v.checked).map(v=>v.value)},write(O,v){const d=Array.isArray(v)?v.map(String):[];for(const u of O.__boxes)u.checked=d.includes(u.value)},state(O,v){const d=v.readOnly===!0;for(const u of O.__boxes)A(u,v.disabled===!0,d);d?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly")},focus(O){const v=O.__boxes.find(d=>!d.disabled);v&&v.focus()}})}),Ne("packages/modules/form/controls/toggle.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/state.js"),ee=$.applyBooleanInputState,h=$.guardBooleanInput,P=Object.freeze(["small","default","large"]),y=Object.freeze(["round","square","slim"]),A=Object.freeze(["inside","before","after"]);function B(t){return P.includes(t)?t:"default"}function O(t){return y.includes(t)?t:"round"}function v(t){return A.includes(t)?t:"inside"}function d(t){return t==null?"":String(t)}function u(t){return t.__latToggle?t.__latToggle.input:t}function _(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function w(t,o,l){const b=o&&o.defaultView,p=b&&b.Event,m=p?new p(l,{bubbles:!0}):{type:l,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(m)}V("toggle",{kind:"toggle",build(t,o){const l=t.props||{},b=o.doc.createElement("input");b.type="checkbox",b.className="lat-form__toggle",b.setAttribute("role","switch"),t.name&&(b.name=t.name),b.checked=t.value===!0,h(b),l.size!=null&&b.setAttribute("data-size",B(l.size)),l.variant!=null&&b.setAttribute("data-variant",O(l.variant));const p=d(l.onLabel),m=d(l.offLabel);if(p===""&&m==="")return b;const f=o.doc.createElement("span");f.className="lat-form__toggle-field",f.setAttribute("data-label-position",v(l.labelPosition)),f.appendChild(b);const N=o.doc.createElement("span");N.className="lat-form__toggle-label",f.appendChild(N);const c={input:b,label:N,onLabel:p,offLabel:m};f.__latToggle=c,_(c),b.addEventListener("change",()=>_(c));let i=!1;return f.addEventListener("focusin",()=>{i||(i=!0,w(f,o.doc,"focus"))}),f.addEventListener("focusout",n=>{f.contains(n.relatedTarget)||(i=!1,w(f,o.doc,"blur"))}),f},read(t){return u(t).checked},write(t,o){const l=u(t);l.checked=o===!0,_(t.__latToggle)},state(t,o){ee(u(t),o.disabled===!0,o.readOnly===!0)},focus(t){const o=u(t);typeof o.focus=="function"&&o.focus()},blur(t){const o=u(t);typeof o.blur=="function"&&o.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 V}}),Object.defineProperty(S,"modeOf",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"daysInMonth",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"fieldsOfDate",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"parseValue",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"isoOf",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"displayOf",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"withinRange",{enumerable:!0,get:function(){return B}}),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 d}}),Object.defineProperty(S,"dispatchChange",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"is12Hour",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"dayPeriods",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"to24Hour",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"parseDay",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"dayISO",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"dayNumber",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"dayNumberOf",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"dayOfNumber",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"parseMonth",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"monthISO",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"monthIndex",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"monthOfIndex",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"isoWeek",{enumerable:!0,get:function(){return a}});function e(r){return String(r).padStart(2,"0")}function V(r){return r}function $(r){return r.mode==="date-time"||r.mode==="time"?r.mode:"date"}function ee(r,s){return new Date(r,s,0).getDate()}function h(r,s){if(!(s instanceof Date)||Number.isNaN(s.getTime()))return null;const M={y:s.getFullYear(),mo:s.getMonth()+1,d:s.getDate(),h:s.getHours(),mi:s.getMinutes()},D=r.timeZone;if(!D)return M;try{const Y=new Intl.DateTimeFormat("en-US",{timeZone:D,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(s),U={y:0,mo:1,d:1,h:0,mi:0};for(const Q of Y)Q.type==="year"?U.y=Number(Q.value):Q.type==="month"?U.mo=Number(Q.value):Q.type==="day"?U.d=Number(Q.value):Q.type==="hour"?U.h=Number(Q.value)%24:Q.type==="minute"&&(U.mi=Number(Q.value));return U}catch{return M}}function P(r,s){if(s==null||s==="")return null;if(typeof s=="number")return h(r,new Date(s));if(s instanceof Date)return h(r,s);if(typeof s=="string"){const M=s.trim();if($(r)==="time"){const Y=/^(\d{1,2}):(\d{2})/.exec(M);return Y?{y:null,mo:null,d:null,h:Number(Y[1]),mi:Number(Y[2])}:null}const D=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(M);return D?{y:Number(D[1]),mo:Number(D[2]),d:Number(D[3]),h:D[4]!=null?Number(D[4]):0,mi:D[5]!=null?Number(D[5]):0}:null}return null}function y(r,s){if(!s)return null;if($(r)==="time")return`${e(s.h)}:${e(s.mi)}`;const M=`${e(s.y)}-${e(s.mo)}-${e(s.d)}`;return $(r)==="date"?M:`${M}T${e(s.h)}:${e(s.mi)}`}function A(r,s){if(!s)return"";const M=$(r);if(M==="time")return`${e(s.h)}:${e(s.mi)}`;const D=r.locale||void 0,Y={dateStyle:"medium"};return M==="date-time"&&(Y.timeStyle="short"),new Intl.DateTimeFormat(D,Y).format(new Date(s.y,s.mo-1,s.d,s.h,s.mi))}function B(r,s){return s==null?!0:!(r.min!=null&&s<String(r.min)||r.max!=null&&s>String(r.max))}function O(r,s){return new Intl.DateTimeFormat(r.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+s))}function v(r,s){return new Intl.DateTimeFormat(r.locale||void 0,{month:"long",year:"numeric"}).format(new Date(s.y,s.mo-1,1))}function d(r){return String(r.y)}function u(r){const s=r.ownerDocument&&r.ownerDocument.defaultView,M=s&&typeof s.Event=="function"?s.Event:null;r.dispatchEvent(M?new M("change",{bubbles:!0}):{type:"change",bubbles:!0})}function _(r){try{const s=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return s==="h11"||s==="h12"}catch{return!1}}function w(r){try{const s=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric",hour12:!0}),M=s.formatToParts(new Date(2021,0,1,9)).find(Y=>Y.type==="dayPeriod"),D=s.formatToParts(new Date(2021,0,1,15)).find(Y=>Y.type==="dayPeriod");if(M&&D)return{am:M.value,pm:D.value}}catch{}return null}function t(r){const s=r%12;return s===0?12:s}function o(r,s){return s?r===12?12:r+12:r===12?0:r}function l(r){if(typeof r!="string")return null;const s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r.trim());if(!s)return null;const M={y:Number(s[1]),mo:Number(s[2]),d:Number(s[3])};return M.mo<1||M.mo>12||M.d<1||M.d>ee(M.y,M.mo)?null:M}function b(r,s,M){return`${e(r)}-${e(s)}-${e(M)}`}function p(r,s,M){return Date.UTC(r,s-1,M)/864e5}function m(r){const s=l(r);return s?p(s.y,s.mo,s.d):NaN}function f(r){const s=new Date(r*864e5);return{y:s.getUTCFullYear(),mo:s.getUTCMonth()+1,d:s.getUTCDate()}}function N(r){if(typeof r!="string")return null;const s=/^(\d{4})-(\d{2})$/.exec(r.trim());if(!s)return null;const M={y:Number(s[1]),mo:Number(s[2])};return M.mo<1||M.mo>12?null:M}function c(r,s){return`${e(r)}-${e(s)}`}function i(r,s){return r*12+(s-1)}function n(r){return{y:Math.floor(r/12),mo:r%12+1}}function a(r,s,M){const D=new Date(Date.UTC(r,s-1,M)),Y=D.getUTCDay()||7;D.setUTCDate(D.getUTCDate()+4-Y);const U=new Date(Date.UTC(D.getUTCFullYear(),0,1));return Math.ceil(((D-U)/864e5+1)/7)}}),Ne("packages/modules/form/controls/datepicker.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/date-shared.js"),y=P.pad,A=P.echoKey,B=P.modeOf,O=P.daysInMonth,v=P.parseValue,d=P.isoOf,u=P.displayOf,_=P.withinRange,w=P.weekdayName,t=P.monthTitle,o=P.dispatchChange,l=P.is12Hour,b=P.dayPeriods,p=P.to12Hour,m=P.to24Hour,N=q("packages/modules/form/controls/popup-layer.js").openInLayer,c=Object.freeze(["date","date-time","time"]),i="lat-form__datepicker-popup--above";function n(F,K){F.__fields=K,F.__input.value=u(F.__item,K),o(F)}function a(F,K){let{y:W,mo:ge}=F.__view,ve=F.__cursor+K;for(;ve<1;)ge-=1,ge<1&&(ge=12,W-=1),ve+=O(W,ge);let le=O(W,ge);for(;ve>le;)ve-=le,ge+=1,ge>12&&(ge=1,W+=1),le=O(W,ge);F.__view={y:W,mo:ge},F.__cursor=ve,r(F)}function r(F){const K=F.__item,W=F.ownerDocument,ge=F.__popup,ve=F.__view,le=B(K),x=F.__fields;for(;ge.firstChild;)ge.removeChild(ge.firstChild);if(le!=="time"){const L=W.createElement("div");L.className="lat-form__datepicker-head";const I=W.createElement("button");I.type="button",I.className="lat-form__datepicker-nav",I.setAttribute("aria-label",F.__t("form.datepicker.prev")),I.textContent="‹",I.addEventListener("click",()=>{s(F,-1)});const g=W.createElement("span");g.className="lat-form__datepicker-title",g.textContent=t(K,ve);const T=W.createElement("button");T.type="button",T.className="lat-form__datepicker-nav",T.setAttribute("aria-label",F.__t("form.datepicker.next")),T.textContent="›",T.addEventListener("click",()=>{s(F,1)}),L.appendChild(I),L.appendChild(g),L.appendChild(T),ge.appendChild(L);const X=W.createElement("div");X.className="lat-form__datepicker-weekdays";for(let j=0;j<7;j+=1){const k=W.createElement("span");k.textContent=w(K,j),X.appendChild(k)}ge.appendChild(X);const z=W.createElement("div");z.className="lat-form__datepicker-grid",z.setAttribute("role","grid"),z.tabIndex=0,F.__grid=z;const te=new Date(ve.y,ve.mo-1,1).getDay();for(let j=0;j<te;j+=1){const k=W.createElement("span");k.className="lat-form__datepicker-blank",z.appendChild(k)}const re=O(ve.y,ve.mo);for(let j=1;j<=re;j+=1){const k=W.createElement("button");k.type="button",k.className="lat-form__datepicker-day",k.setAttribute("role","gridcell"),k.textContent=String(j);const Z=d(K,{y:ve.y,mo:ve.mo,d:j,h:0,mi:0});_(K,Z)||(k.disabled=!0),x&&x.y===ve.y&&x.mo===ve.mo&&x.d===j&&k.classList.add("is-selected"),F.__cursor===j&&k.classList.add("is-focus"),k.addEventListener("click",()=>{const H={y:ve.y,mo:ve.mo,d:j,h:x?x.h:0,mi:x?x.mi:0};le==="date"?(F.__cursor=j,n(F,H),oe(F)):(F.__cursor=j,F.__fields=H,r(F))}),z.appendChild(k)}ge.appendChild(z),z.addEventListener("keydown",j=>{j.key==="ArrowLeft"?(j.preventDefault(),a(F,-1)):j.key==="ArrowRight"?(j.preventDefault(),a(F,1)):j.key==="ArrowUp"?(j.preventDefault(),a(F,-7)):j.key==="ArrowDown"?(j.preventDefault(),a(F,7)):j.key==="Home"?(j.preventDefault(),F.__cursor=1,r(F)):j.key==="End"?(j.preventDefault(),F.__cursor=O(ve.y,ve.mo),r(F)):(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),U(F))})}if(le!=="date"){const L=l(K)?b(K):null,I=!!L,g=W.createElement("div");g.className="lat-form__datepicker-time";const T=W.createElement("input");T.type="number",T.className="lat-form__datepicker-hour",T.min=I?"1":"0",T.max=I?"12":"23",T.step="1",T.setAttribute("aria-label",F.__t("form.datepicker.hour"));const X=W.createElement("span");X.textContent=":";const z=W.createElement("input");if(z.type="number",z.className="lat-form__datepicker-minute",z.min="0",z.max="59",z.step="1",z.setAttribute("aria-label",F.__t("form.datepicker.minute")),g.appendChild(T),g.appendChild(X),g.appendChild(z),ge.appendChild(g),F.__hour=T,F.__minute=z,T.addEventListener("change",()=>{M(F)}),z.addEventListener("change",()=>{M(F)}),F.__periods=L,F.__ampm=null,I){const re=W.createElement("button");re.type="button",re.className="lat-form__datepicker-ampm",F.__ampm=re;const j=()=>{F.__pm=!F.__pm,re.textContent=F.__pm?F.__periods.pm:F.__periods.am,M(F)};re.addEventListener("click",j),g.appendChild(re)}const te=W.createElement("button");te.type="button",te.className="lat-form__datepicker-done",te.textContent=F.__t("form.datepicker.done"),te.addEventListener("click",()=>{D(F)}),g.appendChild(te)}Y(F)}function s(F,K){let{y:W,mo:ge}=F.__view;ge+=K,ge<1&&(ge=12,W-=1),ge>12&&(ge=1,W+=1),F.__view={y:W,mo:ge},F.__cursor=Math.min(F.__cursor,O(W,ge)),r(F)}function M(F){const K=F.__fields;let W=F.__hour&&Number(F.__hour.value)||0;const ge=F.__minute&&Number(F.__minute.value)||0;F.__ampm&&(W=m(W,F.__pm===!0));const ve=B(F.__item)==="time"?{y:null,mo:null,d:null,h:W,mi:ge}:{y:K?K.y:F.__view.y,mo:K?K.mo:F.__view.mo,d:K?K.d:F.__cursor,h:W,mi:ge};F.__cursor=K?K.d:F.__cursor,n(F,ve),Y(F)}function D(F){F.__popup.hidden||(B(F.__item)!=="date"&&M(F),oe(F))}function Y(F){const K=F.__fields,W=F.__ampm&&F.__periods;if(F.__hour){const ge=K?K.h:0;F.__hour.value=y(W?p(ge):ge)}F.__minute&&(F.__minute.value=y(K?K.mi:0)),F.__ampm&&F.__periods&&(F.__pm=K?K.h>=12:!1,F.__ampm.textContent=F.__pm?F.__periods.pm:F.__periods.am)}function U(F){const K=F.__view,W=F.__fields,ge={y:K.y,mo:K.mo,d:F.__cursor,h:W?W.h:0,mi:W?W.mi:0};n(F,ge),oe(F)}function Q(F){if(F.__popup.hidden===!1||F.__item.disabled===!0||F.__item.readOnly===!0)return;const K=F.__fields,W=new Date;F.__view=K&&K.y!=null?{y:K.y,mo:K.mo}:{y:W.getFullYear(),mo:W.getMonth()+1},F.__cursor=K&&K.d!=null?K.d:W.getDate(),F.__popup.hidden=!1,r(F),F.__layer=N(F.__popup,F,{aboveClass:i,matchWidth:!1,onOffscreen:()=>oe(F)})}function oe(F){F.__popup.hidden=!0,F.__popup.classList.remove(i),F.__layer&&(F.__layer.close(),F.__layer=null)}V("datepicker",{kind:"field",build(F,K){const W=K.doc;h(W);const ge=W.createElement("div");ge.className="lat-form__datepicker",ge.__item=F,ge.__t=K.t||A,ge.__mode=B(F),ge.__fields=v(F,F.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 ve=W.createElement("input");ve.type="text",ve.className="lat-form__datepicker-input",F.name&&(ve.name=F.name),F.placeholder!=null&&(ve.placeholder=String(F.placeholder)),F.label!=null&&F.label!==""&&ve.setAttribute("aria-label",String(F.label)),ve.setAttribute("autocomplete","off"),ve.value=u(F,ge.__fields),ge.__input=ve;const le=W.createElement("button");le.type="button",le.className="lat-form__datepicker-toggle";const x=B(F)==="date";le.setAttribute("aria-label",ge.__t(x?"form.datepicker.open":"form.datepicker.openTime"));const L=ee(W,x?"calendar":"clock");L&&le.appendChild(L),ge.__toggle=le;const I=W.createElement("div");I.className="lat-form__datepicker-popup lat-form__datepicker",I.hidden=!0,ge.__popup=I,ge.appendChild(ve),ge.appendChild(le),ge.appendChild(I),ve.addEventListener("focus",()=>{Q(ge)}),le.addEventListener("click",()=>{Q(ge)}),ve.addEventListener("change",()=>{const z=v(F,ve.value);z?ge.__fields=z:ve.value=u(F,ge.__fields)}),ve.addEventListener("keydown",z=>{z.key==="Escape"&&oe(ge)}),ge.__ampm=null,ge.__periods=null,ge.__pm=!1;const g=z=>{ge.contains(z.target)||I.contains(z.target)||D(ge)},T=z=>{(ge.contains(z.target)||I.contains(z.target))&&(z.relatedTarget&&(ge.contains(z.relatedTarget)||I.contains(z.relatedTarget))||D(ge))},X=z=>{z.key==="Escape"&&(z.preventDefault(),D(ge),ge.__toggle.focus())};return W.addEventListener("pointerdown",g),W.addEventListener("focusout",T),I.addEventListener("keydown",X),Array.isArray(K.disposers)&&K.disposers.push(()=>{oe(ge),W.removeEventListener("pointerdown",g),W.removeEventListener("focusout",T),I.removeEventListener("keydown",X)}),ge},read(F){return d(F.__item,F.__fields)},write(F,K){F.__fields=v(F.__item,K),F.__input.value=u(F.__item,F.__fields),F.__fields&&F.__fields.y!=null&&(F.__view={y:F.__fields.y,mo:F.__fields.mo},F.__cursor=F.__fields.d)},state(F,K){F.__input.disabled=K.disabled===!0,F.__input.readOnly=K.readOnly===!0,F.__toggle.disabled=K.disabled===!0||K.readOnly===!0},validate(F,K,W){return _(K,W)?!0:typeof K.errorMessage=="string"&&K.errorMessage!==""?K.errorMessage:!1},focus(F){F.__input.focus()}})}),Ne("packages/modules/form/controls/daterange.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/date-shared.js"),y=P.echoKey,A=P.daysInMonth,B=P.weekdayName,O=P.monthTitle,v=P.yearTitle,d=P.dispatchChange,u=P.parseDay,_=P.dayISO,w=P.dayNumber,t=P.dayNumberOf,o=P.dayOfNumber,l=P.parseMonth,b=P.monthISO,p=P.monthIndex,m=P.monthOfIndex,f=P.isoWeek,N=" – ";function c(C){return C.props&&C.props.granularity==="month"?"month":"day"}function i(C){return C.props&&typeof C.props=="object"?C.props:{}}function n(C){return i(C).applyButton!==!1}function a(C){return i(C).weekNumbers===!0}function r(C){return i(C).clearable===!0}function s(C){const ne=i(C).firstDay;if(ne!=null){const se=Number(ne);if(Number.isFinite(se))return(se%7+7)%7}try{const se=new Intl.Locale(C.locale||void 0).weekInfo;if(se&&se.firstDay)return se.firstDay%7}catch{}return 0}function M(C){const ne=i(C).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 D(C,ne){return C.min!=null&&ne<String(C.min)||C.max!=null&&ne>String(C.max)}function Y(C,ne,se){return!!(D(C,ne)||se&&se(ne))}function U(C,ne,se){if(C==null||ne==null)return null;if(se==="month"){const he=l(C),be=l(ne);return!he||!be?null:p(be.y,be.mo)-p(he.y,he.mo)}const J=t(C),ue=t(ne);return Number.isNaN(J)||Number.isNaN(ue)?null:ue-J}function Q(C,ne){return c(C)==="month"?ne("form.daterange.months"):ne("form.daterange.days")}function oe(C,ne){if(c(C)==="month")return[{label:ne("form.daterange.monthThisMonth"),range:J=>[b(J.getFullYear(),J.getMonth()+1),b(J.getFullYear(),J.getMonth()+1)]},{label:ne("form.daterange.monthLastMonth"),range:J=>{const ue=m(p(J.getFullYear(),J.getMonth()+1)-1);return[b(ue.y,ue.mo),b(ue.y,ue.mo)]}},{label:ne("form.daterange.monthLast3"),range:J=>{const ue=p(J.getFullYear(),J.getMonth()+1),he=m(ue-2),be=m(ue);return[b(he.y,he.mo),b(be.y,be.mo)]}},{label:ne("form.daterange.monthLast6"),range:J=>{const ue=p(J.getFullYear(),J.getMonth()+1),he=m(ue-5),be=m(ue);return[b(he.y,he.mo),b(be.y,be.mo)]}},{label:ne("form.daterange.monthLast12"),range:J=>{const ue=p(J.getFullYear(),J.getMonth()+1),he=m(ue-11),be=m(ue);return[b(he.y,he.mo),b(be.y,be.mo)]}},{label:ne("form.daterange.monthThisYear"),range:J=>[b(J.getFullYear(),1),b(J.getFullYear(),12)]},{label:ne("form.daterange.monthLastYear"),range:J=>[b(J.getFullYear()-1,1),b(J.getFullYear()-1,12)]}];const se=J=>_(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=o(w(J.getFullYear(),J.getMonth()+1,J.getDate())-1);return[_(ue.y,ue.mo,ue.d),_(ue.y,ue.mo,ue.d)]}},{label:ne("form.daterange.last7"),range:J=>{const ue=w(J.getFullYear(),J.getMonth()+1,J.getDate()),he=o(ue-6);return[_(he.y,he.mo,he.d),se(J)]}},{label:ne("form.daterange.last30"),range:J=>{const ue=w(J.getFullYear(),J.getMonth()+1,J.getDate()),he=o(ue-29);return[_(he.y,he.mo,he.d),se(J)]}},{label:ne("form.daterange.thisMonth"),range:J=>[_(J.getFullYear(),J.getMonth()+1,1),_(J.getFullYear(),J.getMonth()+1,A(J.getFullYear(),J.getMonth()+1))]},{label:ne("form.daterange.lastMonth"),range:J=>{const ue=m(p(J.getFullYear(),J.getMonth()+1)-1);return[_(ue.y,ue.mo,1),_(ue.y,ue.mo,A(ue.y,ue.mo))]}}]}function F(C,ne){const se=i(C).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(C,ne)}function K(C,ne){return C==null&&ne==null?"":ne==null?`${C}${N}`:`${C}${N}${ne}`}function W(C,ne){const se=String(ne??"").trim();if(!se)return{start:null,end:null};const J=c(C)==="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(C)==="month"){if(!l(be)||Ee&&!l(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(C,ne){return new Intl.DateTimeFormat(C.locale||void 0,{month:"short"}).format(new Date(2021,ne-1,1))}function ve(C){const ne=C.__draftStart,se=C.__draftEnd;return ne!=null&&se!=null?[ne,se]:ne!=null&&C.__hover!=null&&C.__granularity==="day"?[ne,C.__hover]:ne!=null&&C.__hover!=null&&C.__granularity==="month"?[ne,C.__hover]:null}function le(C,ne){return C>=ne[0]&&C<=ne[1]}function x(C,ne){if(C.__granularity==="month"){const ue=p(C.__cursor.y,C.__cursor.mo)+ne,he=m(ue);C.__cursor=he,L(C),R(C);return}const se=w(C.__cursor.y,C.__cursor.mo,C.__cursor.d)+ne,J=o(se);C.__cursor=J,L(C),R(C)}function L(C){if(C.__granularity==="month"){C.__cursor.y<C.__view.y?C.__view={y:C.__cursor.y}:C.__cursor.y>C.__view.y+1&&(C.__view={y:C.__cursor.y-1});return}const se=p(C.__cursor.y,C.__cursor.mo),J=p(C.__view.y,C.__view.mo);se<J?C.__view={y:C.__cursor.y,mo:C.__cursor.mo}:se>J+1&&(C.__view=m(se-1))}function I(C,ne){if(C.__granularity==="month"){C.__view={y:C.__view.y+ne},R(C);return}const se=p(C.__view.y,C.__view.mo)+ne,J=m(se);C.__view=J,R(C)}function g(C,ne){return C&&ne&&C.y===ne.y&&C.mo===ne.mo&&(C.d==null||C.d===ne.d)}function T(C,ne){return C.__granularity==="month"?b(ne.y,ne.mo):_(ne.y,ne.mo,ne.d)}function X(C,ne){const se=T(C,ne);C.__phase!=="started"?(C.__draftStart=se,C.__draftEnd=null,C.__phase="started"):se<C.__draftStart?(C.__draftStart=se,C.__draftEnd=null):(C.__draftEnd=se,C.__phase="idle",n(C.__item)||z(C,!0)),C.__cursor=ne,C.__hover=null,R(C)}function z(C,ne){C.__start=C.__draftStart,C.__end=C.__draftEnd,C.__phase="idle",C.__input.value=K(C.__start,C.__end),d(C),ne&&xe(C)}function te(C){C.__draftStart=C.__start,C.__draftEnd=C.__end,C.__phase="idle",C.__hover=null,xe(C)}function re(C){C.__start=null,C.__end=null,C.__draftStart=null,C.__draftEnd=null,C.__phase="idle",C.__input.value="",d(C)}function j(C,ne,se){for(;se.firstChild;)se.removeChild(se.firstChild);const J=M(C.__item);if(C.__granularity==="month")E(C,ne,se,C.__view.y,J),E(C,ne,se,C.__view.y+1,J);else{k(C,ne,se,C.__view.y,C.__view.mo,J);const ue=m(p(C.__view.y,C.__view.mo)+1);k(C,ne,se,ue.y,ue.mo,J)}}function k(C,ne,se,J,ue,he){const be=C.__item,Ee=ne.createElement("div");Ee.className="lat-form__daterange-panel";const Oe=ne.createElement("div");Oe.className="lat-form__daterange-title",Oe.textContent=O(be,{y:J,mo:ue}),Ee.appendChild(Oe);const Ae=s(be),Ce=a(be),ye=ne.createElement("div");if(ye.className=Ce?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Ce){const we=ne.createElement("span");we.className="lat-form__daterange-weeknum-head",ye.appendChild(we)}for(let we=0;we<7;we+=1){const Se=ne.createElement("span");Se.textContent=B(be,(Ae+we)%7),ye.appendChild(Se)}Ee.appendChild(ye);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=A(J,ue),de=w(J,ue,1)-De,fe=[];for(let we=0;we<De;we+=1){Ce&&we%7===0&&ke.appendChild(Z(C,ne,de));const Se=ne.createElement("span");Se.className="lat-form__daterange-blank",ke.appendChild(Se)}for(let we=1;we<=He;we+=1){Ce&&(De+we-1)%7===0&&ke.appendChild(Z(C,ne,de+(De+we-1)));const Se=H(C,ne,J,ue,we,he);fe.push(Se),ke.appendChild(Se)}G(C,ke,fe),se.appendChild(Ee)}function Z(C,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(f(be.getUTCFullYear(),be.getUTCMonth()+1,be.getUTCDate())),J}function H(C,ne,se,J,ue,he){const be=_(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 Oe=ve(C),Ae=Oe?le(be,Oe):!1,Ce=Y(C.__item,be,he);return Ce&&(Ee.disabled=!0),Ae&&Ee.classList.add("is-in-range"),C.__draftStart===be&&Ee.classList.add("is-start"),C.__draftEnd===be&&Ee.classList.add("is-end"),Ee.setAttribute("aria-selected",Ae&&!Ce?"true":"false"),C.__cursor&&C.__cursor.y===se&&C.__cursor.mo===J&&C.__cursor.d===ue&&Ee.classList.add("is-focus"),Ee.addEventListener("click",()=>{X(C,{y:se,mo:J,d:ue})}),Ee.addEventListener("mouseover",()=>{C.__draftStart!=null&&C.__draftEnd==null&&!Ce&&C.__hover!==be&&(C.__hover=be,R(C))}),Ee}function E(C,ne,se,J,ue){const he=C.__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 Oe=ne.createElement("div");Oe.className="lat-form__daterange-grid lat-form__daterange-grid--months",Oe.setAttribute("role","grid"),Oe.setAttribute("aria-label",v({y:J})),be.appendChild(Oe);const Ae=[];for(let Ce=1;Ce<=12;Ce+=1){const ye=b(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=ve(C),De=Le?le(ye,Le):!1,He=Y(he,ye,ue);He&&(ke.disabled=!0),De&&ke.classList.add("is-in-range"),C.__draftStart===ye&&ke.classList.add("is-start"),C.__draftEnd===ye&&ke.classList.add("is-end"),ke.setAttribute("aria-selected",De&&!He?"true":"false"),C.__cursor&&C.__cursor.y===J&&C.__cursor.mo===Ce&&C.__cursor.d==null&&ke.classList.add("is-focus"),ke.addEventListener("click",()=>{X(C,{y:J,mo:Ce})}),Ae.push(ke),Oe.appendChild(ke)}Oe.addEventListener("keydown",Ce=>{if(Ce.key==="ArrowLeft")Ce.preventDefault(),x(C,-1);else if(Ce.key==="ArrowRight")Ce.preventDefault(),x(C,1);else if(Ce.key==="ArrowUp")Ce.preventDefault(),x(C,-3);else if(Ce.key==="ArrowDown")Ce.preventDefault(),x(C,3);else if(Ce.key==="PageUp")Ce.preventDefault(),I(C,-1);else if(Ce.key==="PageDown")Ce.preventDefault(),I(C,1);else if(Ce.key==="Enter"||Ce.key===" "){Ce.preventDefault();const ye=T(C,C.__cursor);Y(C.__item,ye,ue)||X(C,C.__cursor)}}),se.appendChild(be)}function G(C,ne,se){ne.addEventListener("keydown",J=>{const ue=C.__cursor;if(J.key==="ArrowLeft")J.preventDefault(),x(C,-1);else if(J.key==="ArrowRight")J.preventDefault(),x(C,1);else if(J.key==="ArrowUp")J.preventDefault(),x(C,-7);else if(J.key==="ArrowDown")J.preventDefault(),x(C,7);else if(J.key==="PageUp")J.shiftKey?(J.preventDefault(),I(C,-12)):(J.preventDefault(),I(C,-1));else if(J.key==="PageDown")J.shiftKey?(J.preventDefault(),I(C,12)):(J.preventDefault(),I(C,1));else if((J.key==="Enter"||J.key===" ")&&(J.preventDefault(),ue&&ue.d!=null)){const he=_(ue.y,ue.mo,ue.d);Y(C.__item,he,M(C.__item))||X(C,ue)}})}function R(C){const ne=C.ownerDocument,se=C.__popup,J=C.__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",C.__t("form.daterange.prev")),he.textContent="‹",he.addEventListener("click",()=>{I(C,-1)});const be=ne.createElement("button");be.type="button",be.className="lat-form__daterange-nav",be.setAttribute("aria-label",C.__t("form.daterange.next")),be.textContent="›",be.addEventListener("click",()=>{I(C,1)}),ue.appendChild(he);const Ee=ne.createElement("div");Ee.className="lat-form__daterange-body";const Oe=F(J,C.__t);if(Oe){const Ce=ne.createElement("div");Ce.className="lat-form__daterange-presets";const ye=ne.createElement("div");ye.className="lat-form__daterange-presets-title",ye.textContent=C.__t("form.daterange.presets"),Ce.appendChild(ye);for(const ke of Oe){const Le=ne.createElement("button");Le.type="button",Le.className="lat-form__daterange-preset",Le.textContent=ke.label,Le.addEventListener("click",()=>{ce(C,ke.range)}),Ce.appendChild(Le)}Ee.appendChild(Ce)}const Ae=ne.createElement("div");if(Ae.className="lat-form__daterange-panels",j(C,ne,Ae),Ee.appendChild(Ae),ue.appendChild(Ee),ue.appendChild(be),se.appendChild(ue),n(J)){const Ce=ne.createElement("div");Ce.className="lat-form__daterange-footer";const ye=ne.createElement("button");ye.type="button",ye.className="lat-form__daterange-cancel",ye.textContent=C.__t("form.daterange.cancel"),ye.addEventListener("click",()=>{te(C)});const ke=ne.createElement("button");ke.type="button",ke.className="lat-form__daterange-apply",ke.textContent=C.__t("form.daterange.apply"),ke.addEventListener("click",()=>{z(C,!0)}),Ce.appendChild(ye),Ce.appendChild(ke),se.appendChild(Ce)}}function ce(C,ne){const se=typeof ne=="function"?ne(new Date):ne;if(!(!Array.isArray(se)||se.length<2)){if(C.__draftStart=se[0],C.__draftEnd=se[1],C.__phase="idle",C.__hover=null,C.__granularity==="day"){const J=u(se[0]);J&&(C.__view={y:J.y,mo:J.mo}),C.__cursor=J||C.__cursor}else{const J=l(se[0]);J&&(C.__view={y:J.y}),C.__cursor=J||C.__cursor}R(C)}}function me(C){if(C.__popup.hidden===!1||C.__item.disabled===!0||C.__item.readOnly===!0)return;C.__draftStart=C.__start,C.__draftEnd=C.__end,C.__phase="idle",C.__hover=null;const ne=new Date;if(C.__granularity==="month"){const se=l(C.__start)||{y:ne.getFullYear(),mo:ne.getMonth()+1};C.__view={y:se.y},C.__cursor=se}else{const se=u(C.__start)||{y:ne.getFullYear(),mo:ne.getMonth()+1,d:ne.getDate()};C.__view={y:se.y,mo:se.mo},C.__cursor=se}C.__popup.hidden=!1,R(C)}function xe(C){C.__popup.hidden=!0}V("daterange",{kind:"field",build(C,ne){const se=ne.doc;h(se);const J=se.createElement("div");J.className="lat-form__daterange",J.__item=C,J.__t=ne.t||y,J.__granularity=c(C),J.__start=null,J.__end=null,J.__draftStart=null,J.__draftEnd=null,J.__hover=null,J.__phase="idle";const ue=typeof C.value=="object"&&C.value!=null?C.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",C.name&&(he.name=C.name),C.placeholder!=null&&(he.placeholder=String(C.placeholder)),C.label!=null&&C.label!==""&&he.setAttribute("aria-label",String(C.label)),he.setAttribute("autocomplete","off"),he.value=K(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=ee(se,"calendar");Ee&&be.appendChild(Ee),J.__toggle=be;const Oe=se.createElement("button");Oe.type="button",Oe.className="lat-form__daterange-clear",Oe.setAttribute("aria-label",J.__t("form.daterange.clear"));const Ae=ee(se,"close");Ae&&Oe.appendChild(Ae),Oe.hidden=!r(C)||J.__start==null&&J.__end==null,J.__clear=Oe;const Ce=se.createElement("div");Ce.className="lat-form__daterange-popup",Ce.hidden=!0,J.__popup=Ce,J.appendChild(he),J.appendChild(Oe),J.appendChild(be),J.appendChild(Ce),he.addEventListener("focus",()=>{me(J)}),be.addEventListener("click",()=>{me(J)}),Oe.addEventListener("click",()=>{re(J)}),he.addEventListener("change",()=>{const De=W(C,he.value);De?(J.__start=De.start,J.__end=De.end,he.value=K(De.start,De.end)):he.value=K(J.__start,J.__end)}),he.addEventListener("keydown",De=>{De.key==="Escape"&&(te(J),J.__toggle.focus())});const ye=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",ye),J.addEventListener("focusout",ke),Ce.addEventListener("keydown",Le),Array.isArray(ne.disposers)&&ne.disposers.push(()=>{se.removeEventListener("pointerdown",ye),J.removeEventListener("focusout",ke),Ce.removeEventListener("keydown",Le)}),J},read(C){return{start:C.__start,end:C.__end}},write(C,ne){const se=ne&&typeof ne=="object"?ne:{};C.__start=se.start!=null?String(se.start):null,C.__end=se.end!=null?String(se.end):null,C.__input.value=K(C.__start,C.__end),C.__clear&&(C.__clear.hidden=!r(C.__item)||C.__start==null&&C.__end==null)},state(C,ne){C.__input.disabled=ne.disabled===!0,C.__input.readOnly=ne.readOnly===!0,C.__toggle.disabled=ne.disabled===!0||ne.readOnly===!0},validate(C,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=C.__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(D(ne,ue)||D(ne,he))return be("form.daterange.bounds");const Ee=U(ue,he,C.__granularity);if(Ee==null)return be("form.daterange.invalid");const Oe=i(ne).minSpan,Ae=i(ne).maxSpan;return Oe!=null&&Ee<Number(Oe)?be("form.daterange.minSpan",{min:String(Oe),unit:Q(ne,be)}):Ae!=null&&Ee>Number(Ae)?be("form.daterange.maxSpan",{max:String(Ae),unit:Q(ne,be)}):!0},focus(C){C.__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 V=q("packages/modules/form/controls/registry.js").registerControl,$="lat-uploader",ee="http://www.w3.org/2000/svg",h="data-lattice-uploader-styles";function P(){return`
1526
1534
  .${$}{
1527
1535
  --lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
1528
1536
  --lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
@@ -1649,8 +1657,8 @@ ${i}
1649
1657
  .${$}__zone.is-dragover, .${$}__zone.is-invalid{ box-shadow:none; }
1650
1658
  .${$}__item-fill{ transition:none; }
1651
1659
  }
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=`
1660
+ `.trim()}function y(c){const i=c&&c.documentElement;if(!i||i.getAttribute(h))return;i.setAttribute(h,"1");const n=c.createElement("style");n.textContent=P(),(c.head||c.body||i).appendChild(n)}function A(c,i){const n=i&&i.defaultView,a=n&&n.Event,r=a?new a("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)}function B(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function O(c){const i=Number(c)||0;return i<1024?`${i} B`:i<1048576?`${(i/1024).toFixed(i<10240?1:0)} KB`:i<1073741824?`${(i/1048576).toFixed(1)} MB`:`${(i/1073741824).toFixed(2)} GB`}function v(c,i){if(!i||!i.length)return!0;const n=(c.name||"").toLowerCase(),a=(c.type||"").toLowerCase();return i.some(r=>{const s=String(r).trim().toLowerCase();return s.startsWith(".")?n.endsWith(s):s.endsWith("/*")?a.startsWith(s.slice(0,-1)):a===s})}function d(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 i={".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"},n=String(c).trim(),a=i[n.toLowerCase()];if(a)return a;if(n.startsWith("."))return n.slice(1).toUpperCase();if(n.endsWith("/*"))return`${n.slice(0,-2)}s`;const r=n.split("/")[1];return r?r.toUpperCase():n}function _(c,i,n,a){const r=[];return i&&i.length&&r.push(d(i.map(u))),n&&r.push(c("form.file.hint.size",{size:O(n)})),a&&r.push(c(a===1?"form.file.hint.file":"form.file.hint.files",{max:String(a)})),r.join(" · ")}function w(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,i){const n=c.createElementNS(ee,"svg");n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("focusable","false"),n.setAttribute("aria-hidden","true"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","1.5"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round");const a=c.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d",i),n.appendChild(a),n}const o=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 l(c,i){const n=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let a;for(;a=n.exec(i);)c.setAttribute(a[1],a[3]===void 0?a[4]:a[3])}function b(c,i){const n=/<svg\b([^>]*)>/i.exec(i);if(!n)return null;const a=c.createElementNS(ee,"svg");l(a,n[1]);const r=i.lastIndexOf("</svg"),s=r===-1?"":i.slice(n.index+n[0].length,r),M=/<(\w+)\b([^>]*?)(\/?)>/g;let D;for(;D=M.exec(s);){const Y=c.createElementNS(ee,D[1]);l(Y,D[2]),a.appendChild(Y)}return a.setAttribute("aria-hidden","true"),a.setAttribute("focusable","false"),a}function p(c,i){if(c===!1)return null;if(c!=null&&typeof c=="object"&&c.nodeType){const a=c;return a.classList.add(`${$}__icon`),a.setAttribute("aria-hidden","true"),a}if(typeof c!="string"||c==="")return null;const n=o[c]?t(i,o[c]):b(i,c);return n?(n.setAttribute("class",`${$}__icon`),n):null}function m(c){const i=c.type||"";return i.startsWith("image/")?"image":i==="application/pdf"||/\.pdf$/i.test(c.name)?"document":"file"}function f(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 N(c){if(c.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(c.thumb)}catch{}c.thumb=null}V("file",{kind:"field",build(c,i){const n=i.doc,a=i.t,r=c.props||{},s=Array.isArray(r.accept)?r.accept.map(H=>String(H)):[],M=Number(r.maxSize)||0,D=Number(r.maxFiles)||0,Y=r.multiple!==!1,U=typeof r.upload=="function"?r.upload:null,Q=r.dropzone!==!1,oe=r.dropText!=null?String(r.dropText):a("form.file.dropText"),F=r.browseText!=null?String(r.browseText):a("form.file.browse"),K=a("form.file.dropToUpload"),W=a("form.file.addMore"),ge=a("form.file.typeNotAccepted"),ve=r.hint!=null&&r.hint!==""?String(r.hint):_(a,s,M,D);y(n);const le=n.createElement("div");le.className=$;const x={accept:s,maxSize:M,maxFiles:D,multiple:Y,upload:U,dropText:oe,browse:F,dropToUpload:K,addMore:W,typeNotAccepted:ge,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:Q,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};le.__latFile=x;const L=n.createElement("input");L.type="file",L.className=`${$}__input`,L.tabIndex=-1,L.setAttribute("aria-hidden","true"),Y&&(L.multiple=!0),s.length&&(L.accept=s.join(",")),le.appendChild(L),x.input=L;const I=n.createElement("div");I.className=`${$}__zone`,I.setAttribute("role","button"),I.tabIndex=0,I.setAttribute("aria-label",`${oe} ${F}`);const g=r.icon==null?t(n,o.upload):p(r.icon,n);g&&(r.icon==null&&g.setAttribute("class",`${$}__icon`),I.appendChild(g));const T=n.createElement("span");T.className=`${$}__title`;const X=n.createElement("span");X.className=`${$}__title-rest`,X.textContent=oe,T.appendChild(X);const z=n.createElement("button");z.type="button",z.className=`${$}__browse`,z.tabIndex=-1,z.textContent=F,T.appendChild(z),I.appendChild(T),x.titleRest=X,x.browseEl=z;const te=n.createElement("span");if(te.className=`${$}__drop`,te.textContent=K,I.appendChild(te),ve){const H=n.createElement("span");H.className=`${$}__hint`,H.textContent=ve,I.appendChild(H)}const re=n.createElement("span");re.className=`${$}__compact`,re.appendChild(t(n,o.upload));const j=n.createElement("span");j.className=`${$}__compact-text`,j.textContent=W,re.appendChild(j),I.appendChild(re),x.compactText=j,le.appendChild(I),x.zone=I;const k=n.createElement("ul");k.className=`${$}__list`,k.setAttribute("role","list"),k.hidden=!0,le.appendChild(k),x.list=k;const Z=n.createElement("div");return Z.className=`${$}__live`,Z.setAttribute("role","status"),Z.setAttribute("aria-live","polite"),le.appendChild(Z),x.live=Z,le.__latAnnounce=H=>{x.live&&(x.live.textContent="",x.live.textContent=H)},le.__latDragState=H=>{x.zone.classList.toggle("is-dragover",H==="over"),x.zone.classList.toggle("is-invalid",H==="invalid"),H==="none"?(x.titleRest.textContent=x.dropText,x.browseEl.hidden=!1,x.compactText.textContent=x.addMore):H==="over"?(x.titleRest.textContent=x.dropToUpload,x.browseEl.hidden=!0,x.compactText.textContent=x.dropToUpload):(x.titleRest.textContent=x.typeNotAccepted,x.browseEl.hidden=!0,x.compactText.textContent=x.typeNotAccepted)},le.__latPaint=()=>{const H=x.disabled||x.readOnly||!x.dropzone;x.zone.hidden=H,x.zone.tabIndex=H?-1:0,H?x.zone.setAttribute("aria-disabled","true"):x.zone.removeAttribute("aria-disabled"),x.input.disabled=H;const E=x.entries.length>0;x.zone.classList.toggle("is-compact",E),x.zone.setAttribute("aria-label",E?x.addMore:`${x.dropText} ${x.browse}`),k.hidden=!x.entries.length,k.tabIndex=x.readOnly&&!x.disabled?0:-1,x.entries.some(R=>R.status==="rejected")?le.setAttribute("aria-invalid","true"):le.removeAttribute("aria-invalid"),k.textContent="";for(const R of x.entries){const ce=n.createElement("li");ce.className=`${$}__item is-${R.status}`,ce.setAttribute("data-id",R.id),ce.setAttribute("role","listitem");const me=f(R);if(me){const he=n.createElement("img");he.className=`${$}__item-thumb`,he.src=me,he.alt="",ce.appendChild(he)}else{const he=t(n,o[m(R)]);he.setAttribute("class",`${$}__item-icon`),ce.appendChild(he)}const xe=n.createElement("div");xe.className=`${$}__item-main`,ce.appendChild(xe);const C=n.createElement("div");C.className=`${$}__item-row`,xe.appendChild(C);const ne=n.createElement("span");ne.className=`${$}__item-name`,ne.textContent=R.name,ne.title=R.name,C.appendChild(ne);const se=n.createElement("span");se.className=`${$}__item-size`,se.textContent=O(R.size),C.appendChild(se);const J=n.createElement("span");if(J.className=`${$}__item-state`,R.status==="uploading"){const he=n.createElement("span");he.className=`${$}__item-pct`,he.textContent=`${R.progress}%`,J.appendChild(he)}else R.status==="done"?J.appendChild(t(n,o.check)):(R.status==="error"||R.status==="rejected")&&J.appendChild(t(n,o.warn));C.appendChild(J);const ue=n.createElement("button");if(ue.type="button",ue.className=`${$}__remove`,ue.setAttribute("aria-label",`${a("form.file.remove")} ${R.name}`),ue.title=a("form.file.remove"),ue.appendChild(t(n,o.xmark)),ue.setAttribute("data-remove",R.id),ue.disabled=x.disabled||x.readOnly,C.appendChild(ue),R.status==="uploading"){const he=n.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=n.createElement("span");be.className=`${$}__item-fill`,be.style.width=`${R.progress}%`,he.appendChild(be),xe.appendChild(he)}if(R.message){const he=n.createElement("span");if(he.className=`${$}__item-message`,he.appendChild(n.createTextNode(R.message)),R.status==="error"){he.appendChild(n.createTextNode(" "));const be=n.createElement("button");be.type="button",be.className=`${$}__retry`,be.textContent=a("form.file.retry"),be.setAttribute("data-retry",R.id),be.disabled=x.disabled||x.readOnly,he.appendChild(be)}xe.appendChild(he)}k.appendChild(ce)}},le.__latUpload=H=>{if(!x.upload){H.status="done",H.progress=100,le.__latPaint();return}H.status="uploading",H.progress=0,H.message="";let E=null;typeof AbortController<"u"&&(E=new AbortController,x.controllers.set(H.id,E));const G=E?E.signal:void 0,R=me=>{H.progress=Math.max(0,Math.min(100,Number(me)||0)),H.status="uploading",le.__latPaint()};let ce;try{ce=x.upload(H.file,{onProgress:R,signal:G})}catch(me){ce=Promise.reject(me)}ce&&typeof ce.then=="function"&&ce.then(()=>{x.controllers.delete(H.id),H.status="done",H.progress=100,le.__latPaint(),le.__latAnnounce(a("form.file.uploaded",{name:H.name})),A(le,i.doc)},me=>{x.controllers.delete(H.id),H.status="error",H.message=me&&me.message?String(me.message):a("form.file.uploadFailed"),le.__latPaint(),le.__latAnnounce(a("form.file.failed",{name:H.name})),A(le,i.doc)})},le.__latTake=H=>{const E=[...H||[]];if(!E.length||x.disabled||x.readOnly)return;const G=x.multiple?E:E.slice(0,1),R=[],ce=[];let me=x.maxFiles?Math.max(0,x.maxFiles-x.entries.length):1/0;for(const xe of G){if(me<=0){ce.push({file:xe,reason:"count"});continue}if(x.maxSize&&xe.size>x.maxSize){ce.push({file:xe,reason:"size"});continue}if(!v(xe,x.accept)){ce.push({file:xe,reason:"type"});continue}R.push({id:B(),file:xe,name:xe.name,size:xe.size,type:xe.type,status:"selected",progress:0,message:""}),me-=1}if(R.length){x.multiple||(x.entries=[]),x.entries.push(...R),le.__latPaint(),A(le,i.doc),le.__latAnnounce(R.length===1?a("form.file.addedOne"):a("form.file.added",{count:String(R.length)}));for(const xe of R)le.__latUpload(xe)}for(const xe of ce){const C=xe.reason==="size"?a("form.file.rejected.size",{size:O(x.maxSize)}):xe.reason==="type"?a("form.file.rejected.type"):a("form.file.rejected.count",{max:String(x.maxFiles)});x.entries.push({id:B(),file:xe.file,name:xe.file.name,size:xe.file.size,type:xe.file.type,status:"rejected",progress:0,message:C}),le.__latAnnounce(C)}le.__latPaint()},le.__latRemove=H=>{const E=x.controllers.get(H);E&&(E.abort(),x.controllers.delete(H));const G=x.entries.find(R=>R.id===H);G&&N(G),x.entries=x.entries.filter(R=>R.id!==H),le.__latPaint(),A(le,i.doc)},le.__latRetry=H=>{if(x.disabled||x.readOnly)return;const E=x.entries.find(G=>G.id===H);!E||!E.file||E.status==="rejected"||(le.__latUpload(E),A(le,i.doc))},le.__latClick=H=>{if(x.disabled||x.readOnly)return;const E=H.target&&H.target.closest?H.target:null,G=E&&E.closest?E.closest("[data-remove]"):null;if(G&&le.contains(G)){le.__latRemove(G.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`)&&x.input.click()},le.__latKeydown=H=>{x.disabled||x.readOnly||(H.key==="Enter"||H.key===" "||H.key==="Spacebar")&&H.target===x.zone&&(H.preventDefault(),x.input.click())},le.__latChange=()=>{le.__latTake(x.input.files),x.input.value=""},le.__latDragKind=H=>{if(!x.accept.length)return"over";const E=H.dataTransfer;if(!E||!E.types||!E.types.length)return"over";const G=Array.from(E.types);return G.includes("Files")?"over":G.every(R=>!v({name:"",type:R},x.accept))?"invalid":"over"},le.__latDrag=H=>{if(!(x.disabled||x.readOnly)){if(H.type==="dragenter"||H.type==="dragover"){H.preventDefault(),le.__latDragState(le.__latDragKind(H));return}if(H.type==="dragleave"){if(H.relatedTarget&&x.zone.contains(H.relatedTarget))return;le.__latDragState("none");return}H.type==="drop"&&(H.preventDefault(),le.__latDragState("none"),le.__latTake(H.dataTransfer&&H.dataTransfer.files))}},le.__latPaste=H=>{if(x.disabled||x.readOnly||!H.clipboardData)return;const E=[...H.clipboardData.files||[]];E.length&&(H.preventDefault(),le.__latTake(E))},L.addEventListener("change",le.__latChange),le.addEventListener("click",le.__latClick),le.addEventListener("keydown",le.__latKeydown),le.addEventListener("paste",le.__latPaste),Q&&["dragenter","dragover","dragleave","drop"].forEach(H=>le.addEventListener(H,le.__latDrag)),le.__latPaint(),le},read(c){const i=c.__latFile;return i?i.entries.filter(n=>n.status!=="rejected").map(w):[]},write(c,i){const n=c.__latFile;if(!n)return;const a=Array.isArray(i)?i:[],r=n.entries.filter(s=>s.status==="rejected");for(const s of n.entries)r.includes(s)||N(s);n.entries=r;for(const s of a)n.entries.push({id:s&&s.id?String(s.id):B(),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,i){const n=c.__latFile;n&&(n.disabled=i.disabled===!0,n.readOnly=i.readOnly===!0,n.disabled?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled"),n.readOnly?c.setAttribute("aria-readonly","true"):c.removeAttribute("aria-readonly"),c.__latPaint&&c.__latPaint())},validate(c,i,n){const a=c.__latFile;if(!a)return null;const r=a.entries.find(s=>s.status==="rejected");return r&&r.message&&(!Array.isArray(n)||n.length===0)?r.message:a.maxFiles&&Array.isArray(n)&&n.length>a.maxFiles?`Too many files (max ${a.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 ee}}),Object.defineProperty(S,"toolGlyph",{enumerable:!0,get:function(){return h}});const e="http://www.w3.org/2000/svg",V=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 ee(P,y){const A=V[y],B=P.createElementNS(e,"svg");B.setAttribute("viewBox","0 0 16 16"),B.setAttribute("width","16"),B.setAttribute("height","16"),B.setAttribute("focusable","false"),B.setAttribute("aria-hidden","true");const O=P.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',A.weight&&(O.style.fontWeight=A.weight),A.style&&(O.style.fontStyle=A.style),A.decoration&&(O.style.textDecoration=A.decoration),O.textContent=A.char,B.appendChild(O),B}function h(P,y){const A=P.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 B=P.createElementNS(e,"path");return B.setAttribute("d",$[y]),A.appendChild(B),A}}),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 A}}),Object.defineProperty(S,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return B}}),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"]),V=Object.freeze([0,24,48,84,140,168,196,224,268,320]),$=Object.freeze([.82,.66,.5,.36,.22]),ee=.62,h=Object.freeze([.92,.76,.56,.36,.18]);function P(d,u,_){let w=_;return w<0&&(w+=1),w>1&&(w-=1),w<1/6?d+(u-d)*6*w:w<1/2?u:w<2/3?d+(u-d)*(2/3-w)*6:d}function y(d,u,_){const w=(d%360+360)%360/360;let t,o,l;if(u===0)t=_,o=_,l=_;else{const p=_<.5?_*(1+u):_+u-_*u,m=2*_-p;t=P(m,p,w+1/3),o=P(m,p,w),l=P(m,p,w-1/3)}const b=p=>Math.round(p*255).toString(16).padStart(2,"0");return`#${b(t)}${b(o)}${b(l)}`}const A=Object.freeze(V.map(d=>Object.freeze($.map(u=>y(d,ee,u))))),B=Object.freeze(h.map(d=>y(0,0,d)));function O(d,u,_={}){const w=d.createElement("button");return w.type="button",w.className="lat-form__swatch",w.style.background=u,w.setAttribute("role","option"),w.setAttribute("data-color",u),w.setAttribute("aria-selected",_.selected?"true":"false"),_.selected&&w.classList.add("is-selected"),w.title=_.title!=null?_.title:u,w.tabIndex=-1,w}function v(d,u,_={}){const w=d.createElement("div");w.className="lat-form__swatch-grid",w.setAttribute("role","listbox");const t=[];for(const o of u){const l=d.createElement("div");l.className=_.rowClass?`lat-form__swatch-row ${_.rowClass}`:"lat-form__swatch-row";const b=[];for(const p of o){const m=O(d,p,{selected:typeof _.isSelected=="function"&&_.isSelected(p),title:typeof _.title=="function"?_.title(p):void 0});l.appendChild(m),b.push(m)}w.appendChild(l),t.push(b)}return typeof _.onPick=="function"&&w.addEventListener("click",o=>{const l=o.target&&o.target.closest?o.target.closest(".lat-form__swatch"):null;l&&w.contains(l)&&_.onPick(l.getAttribute("data-color"),l)}),{el:w,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 h}});const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/dom/src/editors/sanitize-richtext.js"),ee=$.sanitizeRichText,h=$.escapeHtml,P=q("packages/dom/src/editors/richtext-icons.js"),y=P.letterGlyph,A=P.toolGlyph,B=P.TOOL_GLYPHS,O=q("packages/modules/form/controls/swatches.js"),v=O.DEFAULT_COLORS,d=O.buildSwatchGrid,u=ee,_=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"]}),w=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 o(f){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"}}[f]||null}const l=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function b(f){return Array.isArray(f)?f.map(N=>String(N)):_[f]||_.basic}function p(f){return new Promise((N,c)=>{const i=new FileReader;i.onload=()=>N(i.result),i.onerror=()=>c(i.error||new Error("read failed")),i.readAsDataURL(f)})}V("richtext",{kind:"field",build(f,N){const c=N.doc,i=f.props||{},n=b(i.toolbar),a=Array.isArray(i.headings)?i.headings:l,r=Array.isArray(i.colors)?i.colors:v,s=i.linkTarget!=null?String(i.linkTarget):"_blank",M=Number(i.minHeight)||160,D=Number(i.maxHeight)||0,Y=Number(i.maxImageSize)||0,U=typeof i.onImage=="function"?i.onImage:null,Q=i.sanitizePaste!==!1,oe=i.allowedTags,F=i.placeholder!=null?String(i.placeholder):N.t("form.richtext.placeholder"),K=c.createElement("div");K.className="lat-form__richtext";const W={toolbar:n,headings:a,colors:r,linkTarget:s,minHeight:M,maxHeight:D,maxImageSize:Y,onImage:U,sanitizePaste:Q,allowedTags:oe,placeholder:F,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};K.__latRt=W;const ge=u(c,f.value==null?"":String(f.value),oe,{});W.history={stack:[ge],index:0},W.lastValue=ge;const ve=c.createElement("div");ve.className="lat-form__richtext-toolbar",ve.setAttribute("role","toolbar"),ve.setAttribute("aria-label",N.t("form.richtext.formatting")),W.toolbarEl=ve;for(const g of n){if(g==="|"){const X=c.createElement("span");X.className="lat-form__richtext-sep",X.setAttribute("role","separator"),ve.appendChild(X);continue}if(g==="heading"){const X=c.createElement("select");X.className="lat-form__richtext-select",X.title=N.t(t.heading),X.setAttribute("aria-label",N.t(t.heading)),X.setAttribute("data-item","heading");for(const[z,te]of a){const re=c.createElement("option");re.value=z,re.textContent=String(te),X.appendChild(re)}W.buttons.heading=X,ve.appendChild(X);continue}const T=c.createElement("button");T.type="button",T.className="lat-form__richtext-btn",T.setAttribute("data-item",g),T.title=N.t(t[g]||g),T.setAttribute("aria-label",N.t(t[g]||g)),g==="lowercase"||g==="uppercase"?(T.className+=" lat-form__richtext-btntext",T.textContent=N.t(g==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):w.includes(g)?T.appendChild(y(c,g)):B[g]?T.appendChild(A(c,g)):T.textContent=g,W.buttons[g]=T,ve.appendChild(T)}K.appendChild(ve);const le=c.createElement("div");le.className="lat-form__richtext-popover",le.hidden=!0,K.appendChild(le),W.popover=le;const x=c.createElement("div");x.className="lat-form__richtext-editor",x.contentEditable=f.readOnly||f.disabled?"false":"true",x.setAttribute("role","textbox"),x.setAttribute("aria-multiline","true"),x.setAttribute("aria-label",f.label!=null?String(f.label):N.t("form.richtext.richText")),x.setAttribute("data-placeholder",F),x.style.minHeight=`${M}px`,D&&(x.style.maxHeight=`${D}px`),x.innerHTML=ge,K.appendChild(x),W.editor=x;const L=c.createElement("textarea");L.className="lat-form__richtext-source",L.setAttribute("aria-label",N.t("form.richtext.source")),L.spellcheck=!1,L.hidden=!0,K.appendChild(L),W.source=L;const I=c.createElement("input");return I.type="file",I.accept="image/*",I.className="lat-form__richtext-file",I.tabIndex=-1,I.setAttribute("aria-hidden","true"),K.appendChild(I),W.fileInput=I,K.__latSave=()=>{const g=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;g&&g.rangeCount&&x.contains(g.anchorNode)&&(W.range=g.getRangeAt(0).cloneRange())},K.__latRestore=()=>{if(!W.range)return;const g=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(g)try{g.removeAllRanges(),g.addRange(W.range)}catch{}},K.__latRefresh=()=>{Object.entries(W.buttons).forEach(([g,T])=>{const X=o(g);if(X&&X.state&&T.tagName==="BUTTON"){let z=!1;try{z=c.queryCommandState(X.state)}catch{z=!1}T.setAttribute("aria-pressed",z?"true":"false"),T.classList.toggle("is-active",z)}if(g==="heading"&&T.tagName==="SELECT"){let z="";try{z=String(c.queryCommandValue("formatBlock")||"").toLowerCase()}catch{z=""}const te=[...T.options].some(re=>re.value===z);T.value=te?z:"p"}})},K.__latExec=(g,T)=>{x.focus(),K.__latRestore();try{c.execCommand("styleWithCSS",!1,g==="foreColor")}catch{}try{c.execCommand(g,!1,T===void 0?null:T)}catch{}K.__latAfterEdit()},K.__latAfterEdit=()=>{const g=x.innerHTML,T=W.history;T.stack[T.index]!==g&&(T.stack=T.stack.slice(0,T.index+1),T.stack.push(g),T.stack.length>200&&T.stack.shift(),T.index=T.stack.length-1),K.__latRefresh();const X=u(c,g,oe,{}),z=W.lastValue==null?u(c,T.stack[0]||"",oe,{}):W.lastValue;W.lastValue=X,m(K,c,z,X)},K.__latCaretEnd=()=>{const g=c.createRange();g.selectNodeContents(x),g.collapse(!1);const T=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;T&&(T.removeAllRanges(),T.addRange(g)),W.range=g.cloneRange()},K.__latUndo=()=>{const g=W.history;if(g.index<=0)return;g.index-=1,x.innerHTML=g.stack[g.index],K.__latCaretEnd(),K.__latRefresh();const T=u(c,x.innerHTML,oe,{});W.lastValue=T,m(K,c,W.lastValue,T)},K.__latRedo=()=>{const g=W.history;if(g.index>=g.stack.length-1)return;g.index+=1,x.innerHTML=g.stack[g.index],K.__latCaretEnd(),K.__latRefresh();const T=u(c,x.innerHTML,oe,{});W.lastValue=T,m(K,c,W.lastValue,T)},K.__latClosePopover=()=>{le.hidden=!0,le.textContent=""},K.__latOpenPopover=(g,T)=>{if(le.textContent="",le.hidden=!1,le.style.left=`${Math.max(0,T.offsetLeft)}px`,g==="color"){const{el:X}=d(c,[r],{onPick:j=>{K.__latRestore(),K.__latExec("foreColor",j),K.__latClosePopover()}});le.appendChild(X);const z=c.createElement("div");z.className="lat-form__richtext-poprow";const te=c.createElement("input");te.type="color",te.className="lat-form__richtext-colorinput",te.setAttribute("aria-label",N.t("form.richtext.colorCustom")),te.addEventListener("input",()=>{K.__latRestore(),K.__latExec("foreColor",te.value)});const re=c.createElement("button");re.type="button",re.className="lat-form__richtext-popbtn",re.textContent=N.t("form.richtext.colorRemove"),re.addEventListener("click",()=>{K.__latRestore(),K.__latExec("foreColor","inherit"),K.__latClosePopover()}),z.appendChild(te),z.appendChild(re),le.appendChild(z)}else{const X=K.__latClosestLink(),z=c.createElement("input");z.type="url",z.className="lat-form__richtext-linkinput",z.placeholder=N.t("form.richtext.linkPlaceholder"),z.value=X&&X.getAttribute("href")||"",z.setAttribute("aria-label",N.t("form.richtext.linkLabel"));const te=()=>{const k=z.value.trim();if(K.__latRestore(),!k){K.__latExec("unlink"),K.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(k)){z.classList.add("is-invalid");return}if(X)X.setAttribute("href",k),K.__latAfterEdit();else{const Z=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(Z&&Z.isCollapsed){const H=s?` target="${h(s)}" rel="noopener noreferrer"`:"";K.__latExec("insertHTML",u(c,`<a href="${h(k)}"${H}>${h(k)}</a>`,oe,{}))}else{K.__latExec("createLink",k);const H=K.__latClosestLink();H&&s&&(H.setAttribute("target",s),H.setAttribute("rel","noopener noreferrer"))}}K.__latClosePopover()};z.addEventListener("keydown",k=>{k.key==="Enter"&&(k.preventDefault(),te()),k.key==="Escape"&&K.__latClosePopover()});const re=c.createElement("div");re.className="lat-form__richtext-poprow",re.appendChild(z);const j=c.createElement("button");if(j.type="button",j.className="lat-form__richtext-popbtn",j.textContent=X?N.t("form.richtext.linkUpdate"):N.t("form.richtext.linkAdd"),j.addEventListener("click",te),re.appendChild(j),X){const k=c.createElement("button");k.type="button",k.className="lat-form__richtext-popbtn",k.textContent=N.t("form.richtext.linkRemove"),k.addEventListener("click",()=>{K.__latRestore(),K.__latExec("unlink"),K.__latClosePopover()}),re.appendChild(k)}le.appendChild(re),setTimeout(()=>z.focus(),0)}},K.__latClosestLink=()=>{const g=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(!g||g.rangeCount===0)return null;let T=g.getRangeAt(0).commonAncestorContainer;T.nodeType===3&&(T=T.parentNode);const X=T.closest?T.closest("a"):null;return X&&x.contains(X)?X:null},K.__latRun=g=>{if(W.disabled||W.readOnly)return;g!=="source"&&W.sourceMode&&K.__latToggleSource(!1),K.__latRestore();const T=o(g);if(g==="color"||g==="link"){K.__latOpenPopover(g,W.buttons[g]);return}if(g==="undo"){K.__latUndo();return}if(g==="redo"){K.__latRedo();return}if(g==="source"){K.__latToggleSource();return}if(g==="image"){W.fileInput.click();return}if(g==="lowercase"||g==="uppercase"){K.__latCase(g==="uppercase");return}if(T){K.__latExec(T.cmd);return}},K.__latCase=g=>{const T=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(!T||T.rangeCount===0||T.isCollapsed)return;const X=T.toString();K.__latExec("insertText",g?X.toUpperCase():X.toLowerCase())},K.__latToggleSource=g=>{const T=g===void 0?!W.sourceMode:!!g;if(T===W.sourceMode)return;T?(W.source.value=u(c,x.innerHTML,oe,{}).replace(/></g,`>
1661
+ <`),x.hidden=!0,L.hidden=!1,L.focus()):(W.sourceDirty&&(x.innerHTML=u(c,L.value,oe,{}),W.sourceDirty=!1),L.hidden=!0,x.hidden=!1,x.focus()),W.sourceMode=T;const X=W.buttons.source;X&&(X.classList.toggle("is-active",T),X.setAttribute("aria-pressed",T?"true":"false")),Object.entries(W.buttons).forEach(([z,te])=>{z!=="source"&&(te.disabled=T)}),T||K.__latAfterEdit()},K.__latInsertImage=async g=>{if(!/^image\//.test(g.type)||Y&&g.size>Y)return;let T;try{T=U?await U(g):await p(g)}catch{return}T&&K.__latExec("insertHTML",u(c,`<img src="${h(T)}" alt="${h(g.name)}" style="max-width:100%">`,oe,{}))},K.__latToolbarClick=g=>{const T=g.target&&g.target.closest?g.target.closest("[data-item]"):null;!T||!ve.contains(T)||T.tagName==="SELECT"||(g.preventDefault(),K.__latRun(T.getAttribute("data-item")))},K.__latToolbarDown=g=>{g.target&&g.target.closest&&g.target.closest(".lat-form__richtext-btn")&&g.preventDefault()},K.__latSelect=g=>{g.target&&g.target.getAttribute&&g.target.getAttribute("data-item")==="heading"&&(K.__latRestore(),K.__latExec("formatBlock",g.target.value))},K.__latInput=()=>{K.__latAfterEdit()},K.__latKey=g=>{if(!(g.ctrlKey||g.metaKey))return;const T=g.key.toLowerCase();T==="z"&&!g.shiftKey?(g.preventDefault(),K.__latUndo()):T==="y"||T==="z"&&g.shiftKey?(g.preventDefault(),K.__latRedo()):T==="k"&&W.buttons.link&&(g.preventDefault(),K.__latRun("link"))},K.__latPaste=g=>{if(!Q||!g.clipboardData)return;const T=g.clipboardData.getData("text/html"),X=g.clipboardData.getData("text/plain");if(!T&&!X)return;g.preventDefault();const z=T?u(c,T,oe,{stripStyles:!0}):h(X).replace(/\r?\n/g,"<br>");K.__latExec("insertHTML",z)},K.__latDrop=g=>{if(!Q||!g.dataTransfer)return;const T=g.dataTransfer.files;if(T&&T.length){g.preventDefault();const re=T[0];re&&K.__latInsertImage(re);return}const X=g.dataTransfer.getData("text/html"),z=g.dataTransfer.getData("text/plain");if(!X&&!z)return;g.preventDefault();const te=X?u(c,X,oe,{stripStyles:!0}):h(z).replace(/\r?\n/g,"<br>");K.__latExec("insertHTML",te)},K.__latBeforeInput=g=>{Q&&(g.inputType==="insertFromDrop"||g.inputType==="insertFromPaste")&&g.preventDefault()},K.__latSelChange=()=>{c.activeElement===x&&(K.__latSave(),K.__latRefresh())},K.__latFile=()=>{const g=I.files&&I.files[0];I.value="",g&&K.__latInsertImage(g)},K.__latSourceInput=()=>{W.sourceDirty=!0},K.__latDocClick=g=>{le&&!le.hidden&&!le.contains(g.target)&&!ve.contains(g.target)&&K.__latClosePopover()},ve.addEventListener("click",K.__latToolbarClick),ve.addEventListener("mousedown",K.__latToolbarDown),ve.addEventListener("change",K.__latSelect),x.addEventListener("input",K.__latInput),x.addEventListener("keydown",K.__latKey),x.addEventListener("paste",K.__latPaste),x.addEventListener("drop",K.__latDrop),x.addEventListener("beforeinput",K.__latBeforeInput),I.addEventListener("change",K.__latFile),L.addEventListener("input",K.__latSourceInput),c.addEventListener&&(c.addEventListener("selectionchange",K.__latSelChange),c.addEventListener("mousedown",K.__latDocClick,!0)),K},read(f){const N=f.__latRt;return N?N.sourceMode?u(f.ownerDocument,N.source.value,N.allowedTags,{}):u(f.ownerDocument,N.editor.innerHTML,N.allowedTags,{}):""},write(f,N){const c=f.__latRt;if(!c)return;const i=f.ownerDocument,n=u(i,N==null?"":String(N),c.allowedTags,{});c.sourceMode&&(c.source.value=n),c.editor.innerHTML=n,c.history={stack:[n],index:0},c.lastValue=n},state(f,N){const c=f.__latRt;c&&(c.disabled=N.disabled===!0,c.readOnly=N.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?f.setAttribute("aria-disabled","true"):f.removeAttribute("aria-disabled"),c.readOnly?f.setAttribute("aria-readonly","true"):f.removeAttribute("aria-readonly"),Object.values(c.buttons).forEach(i=>{i.disabled=c.disabled||c.readOnly}))}});function m(f,N,c,i){const n=N&&N.defaultView,a=n&&n.Event,r=a?new a("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};f.dispatchEvent(r)}}),Ne("packages/modules/form/controls/rating.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=5,ee=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 h(u){const _=String(u??"");return Object.hasOwn(ee,_)?_:"star"}function P(u,_,w){return Math.min(Math.max(u,_),w)}function y(u,_){const w=_&&_.defaultView,t=w&&w.Event,o=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(o)}function A(u,_,w){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"),w?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const o=u.createElementNS("http://www.w3.org/2000/svg","path");return o.setAttribute("d",ee[_]),t.appendChild(o),t}function B(u,_,w){const t=Number(u),o=Number.isFinite(t)?t:0,l=w?Math.round(o*2)/2:Math.round(o);return P(l,0,_)}function O(u,_){return Math.min(1,Math.max(0,u-(_-1)))}V("rating",{kind:"field",build(u,_){const w=_.doc,t=u.props||{},o=Math.max(1,Math.floor(Number(u.max!=null?u.max:t.max)||$)),l=t.allowHalf===!0,b=t.allowClear!==!1,p=t.showValue===!0,m=Array.isArray(t.labels)?t.labels:null,f=h(t.icons&&t.icons.filled?t.icons.filled:t.icon),N=h(t.icons&&t.icons.empty?t.icons.empty:`${f}-outline`),c=t.size==="lg"||t.size==="sm"?t.size:"md",i=w.createElement("div");i.className=`lat-form__rating lat-form__rating--${c}`,i.setAttribute("role","slider"),i.setAttribute("aria-valuemin","0"),i.setAttribute("aria-valuemax",String(o)),i.setAttribute("aria-label",u.label!=null?String(u.label):_.t("form.rating"));const n={value:B(u.value,o,l),max:o,allowHalf:l,allowClear:b,labels:m,showValue:p,filledName:f,emptyName:N,items:[],fills:[],valueEl:null};i.__latRating=n;const a=w.createElement("span");a.className="lat-form__rating-track",a.setAttribute("aria-hidden","true");for(let r=0;r<o;r++){const s=w.createElement("span");s.className="lat-form__rating-item",s.setAttribute("data-index",String(r)),m&&m[r]!=null&&m[r]!==""&&(s.title=String(m[r])),s.appendChild(A(w,N,!1));const M=w.createElement("span");M.className="lat-form__rating-fill",M.setAttribute("aria-hidden","true"),M.appendChild(A(w,f,!0)),s.appendChild(M),a.appendChild(s),n.items.push(s),n.fills.push(M)}if(i.appendChild(a),p){const r=w.createElement("span");r.className="lat-form__rating-value",r.setAttribute("aria-hidden","true"),i.appendChild(r),n.valueEl=r}return i.__latPaint=()=>{for(let r=0;r<n.items.length;r++){const s=O(n.value,r+1);n.items[r].setAttribute("data-fill",s>=1?"full":s>0?"half":"empty"),n.fills[r].style.width=`${(s*100).toFixed(2)}%`}i.setAttribute("aria-valuenow",String(n.value)),i.setAttribute("aria-valuetext",v(n)),n.valueEl&&(n.valueEl.textContent=d(n))},i.__latSet=r=>{n.value=B(r,o,l),i.__latPaint()},i.__latClear=()=>{n.value=0,i.__latPaint()},i.__latPick=(r,s)=>{let M=r+1;if(l&&s&&Number.isFinite(s.clientX)){const D=n.items[r].getBoundingClientRect();D&&D.width>0&&(M=s.clientX-D.left<D.width/2?r+.5:r+1)}b&&M===n.value&&(M=0),i.__latSet(M),y(i,_.doc)},i.addEventListener("click",r=>{if(n.disabled||n.readOnly)return;const s=r.target&&r.target.closest?r.target.closest(".lat-form__rating-item"):null;!s||!i.contains(s)||i.__latPick(Number(s.getAttribute("data-index")),r)}),i.__latKey=r=>{if(n.disabled||n.readOnly)return;const s=l?.5:1;let M=n.value;if(r.key==="ArrowRight"||r.key==="ArrowUp")M+=s;else if(r.key==="ArrowLeft"||r.key==="ArrowDown")M-=s;else if(r.key==="Home")M=0;else if(r.key==="End")M=o;else if(r.key==="Backspace"||r.key==="Delete")M=0;else return;r.preventDefault(),i.__latSet(M),y(i,_.doc)},i.addEventListener("keydown",i.__latKey),i.__latPaint(),i},read(u){return u.__latRating?u.__latRating.value:0},write(u,_){u.__latRating&&(u.__latRating.value=B(_,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,_){const w=u.__latRating;w&&(w.disabled=_.disabled===!0,w.readOnly=_.readOnly===!0,u.tabIndex=w.disabled?-1:0,w.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),w.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function v(u){const _=Math.round(u.value);return u.labels&&u.labels[_-1]&&u.value===_?u.labels[_-1]:`${u.value} of ${u.max}`}function d(u){return String(u.value)}}),Ne("packages/modules/form/controls/stage.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl;function $(P,y){const A=y&&y.defaultView,B=A&&A.Event,O=B?new B("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};P.dispatchEvent(O)}function ee(P,y){return typeof y=="number"&&Number.isFinite(y)?Math.min(Math.max(Math.round(y),0),P.length-1):typeof y=="string"?P.indexOf(y):-1}function h(P,y,A){return`${P}, ${y+1} of ${A}`}V("stage",{kind:"field",build(P,y){const A=y.doc,B=P.props||{},O=Array.isArray(B.stages)?B.stages.map(l=>String(l)):[],v=B.clickable!==!1,d=B.showIcons!==!1,u=ee(O,P.value!=null?P.value:B.current),_=ee(O,B.completed),w=A.createElement("div");w.className="lat-form__stage",w.setAttribute("role","radiogroup"),w.setAttribute("aria-label",P.label!=null?String(P.label):y.t("form.stage"));const t=[],o={stages:O,value:u>=0?O[u]:null,index:u,completed:_,clickable:v,showIcons:d,disabled:!1,readOnly:!1,focus:u>=0?u:0};w.__latStage=o;for(let l=0;l<O.length;l++){const b=A.createElement(v?"button":"span");if(b.type=v?"button":void 0,b.className="lat-form__stage-step",b.setAttribute("data-index",String(l)),v&&(b.setAttribute("role","radio"),b.setAttribute("aria-label",h(O[l],l,O.length))),d){const m=A.createElementNS("http://www.w3.org/2000/svg","svg");m.setAttribute("viewBox","0 0 16 16"),m.setAttribute("aria-hidden","true"),m.setAttribute("class","lat-form__stage-check");const f=A.createElementNS("http://www.w3.org/2000/svg","path");f.setAttribute("d","M3 8.5l3 3 7-7"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","2"),f.setAttribute("stroke-linecap","round"),f.setAttribute("stroke-linejoin","round"),m.appendChild(f),b.appendChild(m)}const p=A.createElement("span");p.className="lat-form__stage-label",p.textContent=O[l],b.appendChild(p),w.appendChild(b),t.push(b)}return w.__latPaint=()=>{for(let l=0;l<t.length;l++){const b=l===o.index,p=!b&&o.completed>=0&&l<=o.completed;t[l].setAttribute("data-state",b?"current":p?"done":"todo"),o.clickable&&(t[l].setAttribute("aria-checked",b?"true":"false"),t[l].tabIndex=o.disabled?-1:l===o.focus?0:-1)}},w.__latSelect=l=>{const b=l>=0&&l<O.length?O[l]:null;b!==o.value&&(o.index=l>=0&&l<O.length?l:-1,o.value=b,o.focus=o.index>=0?o.index:0,w.__latPaint(),$(w,y.doc))},w.__latKey=l=>{if(o.disabled||o.readOnly||!o.clickable||!O.length)return;let b=o.focus;if(l.key==="ArrowRight"||l.key==="ArrowDown")b+=1;else if(l.key==="ArrowLeft"||l.key==="ArrowUp")b-=1;else if(l.key==="Home")b=0;else if(l.key==="End")b=O.length-1;else return;l.preventDefault();const p=Math.min(Math.max(b,0),O.length-1);o.focus=p,t[p].focus(),w.__latSelect(p)},v&&(w.addEventListener("click",l=>{if(o.disabled||o.readOnly)return;const b=l.target&&l.target.closest?l.target.closest(".lat-form__stage-step"):null;if(!b||!w.contains(b))return;const p=Number(b.getAttribute("data-index"));o.focus=p,w.__latSelect(p)}),w.addEventListener("keydown",w.__latKey)),w.__latPaint(),w},read(P){return P.__latStage?P.__latStage.value:null},write(P,y){const A=P.__latStage;if(!A)return;const B=y==null?-1:ee(A.stages,y);A.index=B,A.value=B>=0?A.stages[B]:null,A.focus=B>=0?B:0,P.__latPaint()},state(P,y){const A=P.__latStage;A&&(A.disabled=y.disabled===!0,A.readOnly=y.readOnly===!0,A.readOnly?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly"),A.disabled?P.setAttribute("aria-disabled","true"):P.removeAttribute("aria-disabled"),P.__latPaint())}})}),Ne("packages/modules/form/controls/chips.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$="M3 8.5l3 3 7-7";function ee(y,A){const B=A&&A.defaultView,O=B&&B.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 h(y){if(typeof y=="string")return{value:y,label:y,icon:null,disabled:!1};if(y!==null&&typeof y=="object"){const A=y.value===void 0?String(y.label):y.value;return{value:A,label:y.label==null?String(A):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 P(y,A,B){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",A),B?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}V("chips",{kind:"field",build(y,A){const B=A.doc,O=y.props||{},v=(Array.isArray(y.options)?y.options:[]).map(h),d=O.multiple===!0,u=O.allowEmpty===!0,_=O.wrap!==!1,w=y.max!=null&&Number.isFinite(Number(y.max))?Number(y.max):null,t=B.createElement("div");t.className=`lat-form__chips${_?"":" lat-form__chips--scroll"}`,t.setAttribute("role",d?"group":"radiogroup"),t.setAttribute("aria-label",y.label!=null?String(y.label):A.t("form.chips"));const o=[],l=new Set,b={options:v,multiple:d,allowEmpty:u,wrap:_,max:w,selected:l,disabled:!1,readOnly:!1,t:A.t};t.__latChips=b;for(let m=0;m<v.length;m++){const f=v[m],N=B.createElement("button");if(N.type="button",N.className="lat-form__chip",N.setAttribute("data-index",String(m)),N.disabled=f.disabled,d||N.setAttribute("role","radio"),f.icon){const i=P(B,f.icon,!0);i.setAttribute("class","lat-form__chip-icon"),N.appendChild(i)}const c=B.createElement("span");if(c.className="lat-form__chip-label",c.textContent=f.label,N.appendChild(c),d){const i=P(B,$,!1);i.setAttribute("class","lat-form__chip-check"),N.appendChild(i)}t.appendChild(N),o.push(N)}b.buttons=o,t.__latPaint=()=>{for(let m=0;m<o.length;m++){const f=v[m],N=l.has(f.value),c=o[m];c.disabled=f.disabled||b.disabled,d?(c.setAttribute("aria-pressed",N?"true":"false"),c.tabIndex=b.disabled?-1:0):(c.setAttribute("aria-checked",N?"true":"false"),c.tabIndex=b.disabled?-1:N?0:-1)}},t.__latValue=()=>{if(d)return v.filter(m=>l.has(m.value)).map(m=>m.value);for(const m of v)if(l.has(m.value))return m.value;return null},t.__latToggle=m=>{const f=v[m];if(!(!f||f.disabled||b.disabled||b.readOnly)){if(d)if(l.has(f.value))l.delete(f.value);else{if(w!=null&&l.size>=w)return;l.add(f.value)}else if(l.has(f.value))if(b.allowEmpty)l.clear();else return;else l.clear(),l.add(f.value);t.__latPaint(),ee(t,A.doc)}},t.addEventListener("click",m=>{const f=m.target&&m.target.closest?m.target.closest(".lat-form__chip"):null;!f||!t.contains(f)||t.__latToggle(Number(f.getAttribute("data-index")))}),t.__latKey=m=>{if(b.multiple||b.disabled||b.readOnly||!o.length)return;let f=-1;for(let n=0;n<o.length;n++)if(l.has(v[n].value)){f=n;break}let N=f;if(m.key==="ArrowRight"||m.key==="ArrowDown")N=f+1;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")N=f-1;else if(m.key==="Home")N=0;else if(m.key==="End")N=v.length-1;else return;m.preventDefault();const c=m.key==="ArrowLeft"||m.key==="ArrowUp"?-1:1;let i=N;for(;i>=0&&i<v.length&&v[i].disabled;)i+=c;i<0||i>=v.length||(l.clear(),l.add(v[i].value),t.__latPaint(),o[i].focus(),ee(t,A.doc))},t.addEventListener("keydown",t.__latKey);const p=y.value;if(d){const m=Array.isArray(p)?p:[];for(const f of m)v.some(N=>N.value===f)&&l.add(f)}else if(p!=null&&v.some(m=>m.value===p))l.add(p);else if(!u){const m=v.find(f=>!f.disabled)||v[0];m&&l.add(m.value)}return t.__latPaint(),t},read(y){return y.__latChips?y.__latValue():null},write(y,A){const B=y.__latChips;if(B){if(B.selected.clear(),B.multiple){const O=Array.isArray(A)?A:[];for(const v of O)B.options.some(d=>d.value===v)&&B.selected.add(v)}else if(A!=null&&B.options.some(O=>O.value===A))B.selected.add(A);else if(!B.allowEmpty){const O=B.options.find(v=>!v.disabled)||B.options[0];O&&B.selected.add(O.value)}y.__latPaint()}},validate(y,A,B){const O=y.__latChips;if(!O||!O.multiple)return null;const v=Array.isArray(B)?B.length:0,d=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 d!=null&&v<d?{code:"min",message:O.t("form.chips.min",{min:String(d)})}:u!=null&&v>u?{code:"max",message:O.t("form.chips.max",{max:String(u)})}:null},state(y,A){const B=y.__latChips;B&&(B.disabled=A.disabled===!0,B.readOnly=A.readOnly===!0,B.readOnly?y.setAttribute("aria-readonly","true"):y.removeAttribute("aria-readonly"),B.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 V=q("packages/modules/form/controls/registry.js").registerControl,$=6;function ee(u){const _=Math.floor(Number(u));return Number.isFinite(_)&&_>=1?_:$}function h(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function P(u,_){return _==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function y(u,_){for(let w=u.length-1;w>=0;w-=1)if(P(u[w],_))return u[w];return""}function A(u,_,w){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(o=>P(o,_)).slice(0,w)}function B(u,_,w){const t=_&&_.defaultView,o=t&&t.Event,l=o?new o(w,{bubbles:!0}):{type:w,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(l)}function O(u,_){const w=A(_,u.mode,u.length);for(let t=0;t<u.length;t+=1)u.boxes[t].value=w[t]||""}function v(u){u.complete=u.boxes.every(_=>_.value!=="")}function d(u){return u.boxes.map(_=>_.value).join("")}V("otp",{kind:"field",domEvents:["complete"],build(u,_){const w=_.doc,t=u.props||{},o=ee(t.length),l=h(u.mode!=null?u.mode:t.mode),b=t.mask===!0,p=w.createElement("div");p.className="lat-form__otp",p.setAttribute("role","group"),p.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):_.t("form.otp.label"));const m=[],f={length:o,mode:l,mask:b,boxes:m,complete:!1,disabled:!1,readOnly:!1};p.__latOtp=f;for(let c=0;c<o;c+=1){const i=w.createElement("input");i.type="text",i.className=`lat-form__otp-input${b?" lat-form__otp-input--masked":""}`,i.setAttribute("inputmode",l==="numeric"?"numeric":"text"),i.setAttribute("pattern",l==="numeric"?"[0-9]":"[A-Za-z0-9]"),i.setAttribute("maxlength","1"),i.setAttribute("aria-label",_.t("form.otp.digit",{n:c+1,total:o})),i.autocomplete=c===0?"one-time-code":"off",m.push(i),p.appendChild(i)}const N=()=>{if(p.__latPublishing)return;p.__latPublishing=!0;try{B(p,w,"input"),B(p,w,"change")}finally{p.__latPublishing=!1}const c=m.every(i=>i.value!=="");c&&!f.complete?(f.complete=!0,B(p,w,"complete")):!c&&f.complete&&(f.complete=!1)};return p.addEventListener("input",c=>{if(p.__latPublishing)return;c.stopImmediatePropagation();const i=c.target;if(!m.includes(i))return;i.value=y(i.value,l);const n=m.indexOf(i);i.value!==""&&n<o-1&&m[n+1].focus(),N()}),p.addEventListener("change",c=>{p.__latPublishing||c.stopImmediatePropagation()}),p.addEventListener("keydown",c=>{if(f.disabled||f.readOnly)return;const i=c.target;if(!m.includes(i))return;const n=m.indexOf(i);c.key==="Backspace"?(c.preventDefault(),i.value!==""?i.value="":n>0&&(m[n-1].value="",m[n-1].focus()),N()):c.key==="ArrowLeft"&&n>0?(c.preventDefault(),m[n-1].focus()):c.key==="ArrowRight"&&n<o-1?(c.preventDefault(),m[n+1].focus()):c.key.length===1&&!P(c.key,l)&&!c.ctrlKey&&!c.metaKey&&!c.altKey&&c.preventDefault()}),p.addEventListener("paste",c=>{if(f.disabled||f.readOnly)return;c.preventDefault();const i=c.clipboardData&&typeof c.clipboardData.getData=="function"?c.clipboardData.getData("text"):"";O(f,i),(m.find(a=>a.value==="")||m[o-1]).focus(),N()}),p.focus=()=>{const c=m.find(i=>!i.disabled&&!i.readOnly&&i.value==="")||m[0];c&&c.focus()},p.blur=()=>{for(const c of m)c.blur()},O(f,u.value),v(f),p},read(u){return u.__latOtp?d(u.__latOtp):""},write(u,_){u.__latOtp&&(O(u.__latOtp,_),v(u.__latOtp))},state(u,_){const w=u.__latOtp;if(w){w.disabled=_.disabled===!0,w.readOnly=_.readOnly===!0;for(const t of w.boxes)t.disabled=w.disabled,t.readOnly=w.readOnly;w.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),w.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),Ne("packages/modules/form/controls/color.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/swatches.js"),y=P.DEFAULT_PALETTE,A=P.DEFAULT_GRAY_SHADES,B=P.buildSwatchGrid,O=P.hslToHex,v=10,d=/^#?([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 _(x){return x}const w=new Set;function t(x,L){w.has(x)||(w.add(x),console.warn("[lattice]",L))}function o(x){if(typeof x!="string")return null;const L=x.trim();if(!d.test(L))return null;const I=L.replace(/^#/,"").toLowerCase();return`#${I.length===3?I.split("").map(T=>T+T).join(""):I}`}function l(x){if(typeof x!="string")return null;const L=o(x);if(L)return L;const I=u.exec(x.trim());if(!I)return null;const g=X=>Math.max(0,Math.min(255,Number(X))),T=X=>g(X).toString(16).padStart(2,"0");return`#${T(I[1])}${T(I[2])}${T(I[3])}`}function b(x){const L=o(x);return L?{r:parseInt(L.slice(1,3),16),g:parseInt(L.slice(3,5),16),b:parseInt(L.slice(5,7),16)}:null}function p(x,L,I){const g=T=>Math.max(0,Math.min(255,Math.round(T))).toString(16).padStart(2,"0");return`#${g(x)}${g(L)}${g(I)}`}function m(x,L,I){const g=x/255,T=L/255,X=I/255,z=Math.max(g,T,X),te=Math.min(g,T,X),re=(z+te)/2,j=z-te;if(j===0)return{h:0,s:0,l:re};const k=re>.5?j/(2-z-te):j/(z+te);let Z;return z===g?Z=(T-X)/j%6:z===T?Z=(X-g)/j+2:Z=(g-T)/j+4,Z*=60,Z<0&&(Z+=360),{h:Z,s:k,l:re}}function f(x){return O(x.h,x.s,x.l)}function N(x,L,I){const g=x.ownerDocument,T=g&&g.defaultView,X=T&&typeof T.CustomEvent=="function"?T.CustomEvent:null,z=X?new X(L,{bubbles:!0,detail:I}):{type:L,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:I,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};x.dispatchEvent(z)}function c(x){const L=x.props&&x.props.palette;return Array.isArray(L)&&L.length?L:y}function i(x){return!(x.props&&x.props.editable===!1)}function n(x){return!!(x.props&&x.props.clearable===!0)}function a(x){return!!(x.props&&x.props.pickerOnly===!0)}function r(x){return!(x.props&&x.props.grayShades===!1)}function s(x){const L=x.props&&x.props.icon;return typeof L=="string"&&L!==""?L:null}function M(x){const L=x.props&&x.props.customColors;return Array.isArray(L)?[...new Set(L.map(l).filter(Boolean))].slice(0,v):[]}function D(x){const L=o(x.__input.value);x.__swatchBtn.style.background=L||"transparent",x.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!L),x.__clearBtn&&(x.__clearBtn.hidden=x.__input.value.trim()==="")}function Y(x,L){x.__value=L||null,x.__input.value=L||"",x.__lastCommittedText=L||"",D(x)}function U(x){if(i(x.__item)===!1)return;const L=x.__input.value.trim();if(L===x.__lastCommittedText)return;const I=o(L);(I||L==="")&&(x.__value=I,x.__lastCommittedText=L),N(x,"change")}function Q(x,L){Y(x,L),N(x,"change")}function oe(x,L){const I=x.__customColors,g=I.filter(X=>X!==L),T=[L,...g].slice(0,v);T.length===I.length&&T.every((X,z)=>X===I[z])||(x.__customColors=T,N(x,"customColorsChange",{colors:T}))}function F(x){const L=x.__popover,I=x.ownerDocument,g=I&&I.defaultView,T=x.__field.getBoundingClientRect(),X=g?g.innerHeight:0,z=L.offsetHeight||0;X-T.bottom<z+4&&T.top>z+4?L.classList.add("lat-form__color-popover--above"):L.classList.remove("lat-form__color-popover--above")}function K(x,L,I,g){let T=Math.max(0,Math.min(x.length-1,L.row+I)),X=L.col+g;if(g!==0){const z=x[T].length;X=Math.max(0,Math.min(z-1,X))}else X=Math.max(0,Math.min(x[T].length-1,X));return{row:T,col:X}}function W(x){const L=x.__item,I=x.ownerDocument,g=x.__popover;for(;g.firstChild;)g.removeChild(g.firstChild);const T=[...c(L)];r(L)&&T.push([...A]),x.__customColors.length&&T.push([...x.__customColors]);const X=x.__value,{el:z,rows:te}=B(I,T,{isSelected:j=>j===X,onPick:j=>{Q(x,j),le(x,{restoreFocus:!0})}});z.classList.add("lat-form__color-grid"),g.appendChild(z);for(const j of te)for(const k of j){if(k.getAttribute("aria-selected")!=="true")continue;const Z=I.createElementNS("http://www.w3.org/2000/svg","svg");Z.setAttribute("viewBox","0 0 16 16"),Z.setAttribute("class","lat-form__color-check"),Z.setAttribute("aria-hidden","true");const H=I.createElementNS("http://www.w3.org/2000/svg","path");H.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),H.setAttribute("fill","none"),H.setAttribute("stroke","#fff"),H.setAttribute("stroke-width","2.6"),H.setAttribute("stroke-linecap","round"),H.setAttribute("stroke-linejoin","round"),H.setAttribute("paint-order","stroke"),Z.appendChild(H);const E=I.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"),Z.insertBefore(E,H),k.appendChild(Z)}let re={row:0,col:0};e:for(let j=0;j<te.length;j++)for(let k=0;k<te[j].length;k++)if(te[j][k].getAttribute("aria-selected")==="true"){re={row:j,col:k};break e}for(const j of te)for(const k of j)k.tabIndex=-1;if(te[re.row]&&te[re.row][re.col]&&(te[re.row][re.col].tabIndex=0),z.addEventListener("keydown",j=>{if(j.key==="Enter"||j.key===" "){j.preventDefault(),j.stopPropagation(),te[re.row][re.col].click();return}const Z={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[j.key];if(!Z)return;j.preventDefault();for(const E of te)for(const G of E)G.tabIndex=-1;re=K(te,re,Z[0],Z[1]);const H=te[re.row][re.col];H.tabIndex=0,H.focus()}),!a(L)){const j=I.createElement("button");j.type="button",j.className="lat-form__color-custombtn",j.textContent=x.__t("form.color.customColor"),j.addEventListener("click",()=>{ge(x,X)}),g.appendChild(j)}F(x)}function ge(x,L){const I=x.__item,g=x.ownerDocument,T=x.__popover;for(;T.firstChild;)T.removeChild(T.firstChild);const X=b(L)||{r:0,g:0,b:0},z=m(X.r,X.g,X.b),te=g.createElement("div");te.className="lat-form__color-picker",T.appendChild(te);const re=g.createElement("div");re.className="lat-form__color-plane",re.setAttribute("role","slider"),re.setAttribute("aria-label",x.__t("form.color.saturationLightness")),re.tabIndex=0;const j=g.createElement("div");j.className="lat-form__color-plane-thumb",re.appendChild(j),te.appendChild(re);const k=g.createElement("div");k.className="lat-form__color-hue",k.setAttribute("role","slider"),k.setAttribute("aria-label",x.__t("form.color.hue")),k.tabIndex=0;const Z=g.createElement("div");Z.className="lat-form__color-hue-thumb",k.appendChild(Z),te.appendChild(k);const H=g.createElement("div");H.className="lat-form__color-fields";const E=g.createElement("input");E.type="text",E.className="lat-form__color-hexfield",E.setAttribute("aria-label",x.__t("form.color.hexLabel"));const G=g.createElement("input");G.type="number",G.min="0",G.max="255",G.className="lat-form__color-rgbfield",G.setAttribute("aria-label",x.__t("form.color.redLabel"));const R=g.createElement("input");R.type="number",R.min="0",R.max="255",R.className="lat-form__color-rgbfield",R.setAttribute("aria-label",x.__t("form.color.greenLabel"));const ce=g.createElement("input");ce.type="number",ce.min="0",ce.max="255",ce.className="lat-form__color-rgbfield",ce.setAttribute("aria-label",x.__t("form.color.blueLabel")),H.appendChild(E),H.appendChild(G),H.appendChild(R),H.appendChild(ce),te.appendChild(H);const me=g.createElement("div");me.className="lat-form__color-previewrow";const xe=g.createElement("span");xe.className="lat-form__color-preview",me.appendChild(xe),te.appendChild(me);const C=g.createElement("div");if(C.className="lat-form__color-actions",!a(I)){const Ae=g.createElement("button");Ae.type="button",Ae.className="lat-form__color-back",Ae.textContent=x.__t("form.back"),Ae.addEventListener("click",()=>{W(x)}),C.appendChild(Ae)}const ne=g.createElement("button");ne.type="button",ne.className="lat-form__color-select",ne.textContent=x.__t("form.color.select"),C.appendChild(ne),te.appendChild(C);const se=()=>{const Ae=f(z),Ce=b(Ae);re.style.setProperty("--lat-color-hue",String(z.h)),j.style.left=`${z.s*100}%`,j.style.top=`${(1-z.l)*100}%`,Z.style.left=`${z.h/360*100}%`,E.value=Ae,G.value=String(Ce.r),R.value=String(Ce.g),ce.value=String(Ce.b),xe.style.background=Ae,re.setAttribute("aria-valuetext",Ae),k.setAttribute("aria-valuenow",String(Math.round(z.h)))};se();const J=(Ae,Ce,ye)=>{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));ye(Le,De)},ue=(Ae,Ce)=>{let ye=!1;Ae.addEventListener("pointerdown",ke=>{ye=!0,J(Ae,ke,Ce)}),g.addEventListener("pointermove",ke=>{ye&&J(Ae,ke,Ce)}),g.addEventListener("pointerup",()=>{ye=!1})};ue(re,(Ae,Ce)=>{z.s=Ae,z.l=1-Ce,se()}),ue(k,Ae=>{z.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")z.s=Math.max(0,z.s-Ce);else if(Ae.key==="ArrowRight")z.s=Math.min(1,z.s+Ce);else if(Ae.key==="ArrowUp")z.l=Math.min(1,z.l+Ce);else if(Ae.key==="ArrowDown")z.l=Math.max(0,z.l-Ce);else return;Ae.preventDefault(),se()}),k.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")z.h=(z.h-Ce+360)%360;else if(Ae.key==="ArrowRight"||Ae.key==="ArrowUp")z.h=(z.h+Ce)%360;else return;Ae.preventDefault(),se()});const he=()=>{const Ae=o(E.value);if(!Ae){E.value=f(z);return}const Ce=b(Ae);Object.assign(z,m(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(z,m(Ae(G.value),Ae(R.value),Ae(ce.value))),se()};G.addEventListener("change",be),R.addEventListener("change",be),ce.addEventListener("change",be);const Ee=()=>{const Ae=f(z);Q(x,Ae),oe(x,Ae),le(x,{restoreFocus:!0})};ne.addEventListener("click",Ee);const Oe=Ae=>Ce=>{Ce.key==="Enter"&&(Ce.preventDefault(),Ce.stopPropagation(),Ae(),Ee())};E.addEventListener("keydown",Oe(he)),G.addEventListener("keydown",Oe(be)),R.addEventListener("keydown",Oe(be)),ce.addEventListener("keydown",Oe(be)),F(x)}function ve(x){x.__open||x.__item.disabled===!0||x.__item.readOnly===!0||(x.__open=!0,x.__popover.hidden=!1,a(x.__item)||x.__item.mode==="picker"?ge(x,x.__value):W(x))}function le(x,L={}){if(x.__open){for(x.__open=!1,x.__popover.hidden=!0,x.__popover.classList.remove("lat-form__color-popover--above");x.__popover.firstChild;)x.__popover.removeChild(x.__popover.firstChild);L.restoreFocus&&x.__input.focus()}}V("color",{kind:"field",domEvents:["customColorsChange"],build(x,L){const I=L.doc;h(I);const g=I.createElement("div");g.className="lat-form__color",g.__item=x,g.__t=L.t||_,g.__open=!1,g.__value=l(x.value),g.__customColors=M(x);const T=I.createElement("div");T.className="lat-form__color-field",g.__field=T;const X=I.createElement("button");X.type="button",X.className="lat-form__color-swatch",X.setAttribute("aria-label",g.__t("form.color.open")),g.__swatchBtn=X;const z=I.createElement("input");z.type="text",z.className="lat-form__color-input",x.name&&(z.name=x.name),x.placeholder!=null&&(z.placeholder=String(x.placeholder)),x.label!=null&&x.label!==""&&z.setAttribute("aria-label",String(x.label)),z.setAttribute("autocomplete","off"),z.readOnly=!i(x),g.__input=z,T.appendChild(X),T.appendChild(z);let te=null;if(n(x)){te=I.createElement("button"),te.type="button",te.className="lat-form__color-clear",te.setAttribute("aria-label",g.__t("form.color.clear"));const R=ee(I,"close");R&&te.appendChild(R),te.addEventListener("click",()=>{Q(g,null),z.focus()}),T.appendChild(te)}g.__clearBtn=te;const re=I.createElement("button");re.type="button",re.className="lat-form__color-toggle",re.setAttribute("aria-label",g.__t("form.color.open"));const j=s(x),k=j?ee(I,j):ee(I,"chevronDown");k&&re.appendChild(k),g.__toggleBtn=re,T.appendChild(re),g.appendChild(T);const Z=I.createElement("div");Z.className="lat-form__color-popover",Z.hidden=!0,g.__popover=Z,g.appendChild(Z),Y(g,g.__value);const H=()=>{g.__open?le(g):ve(g)};X.addEventListener("click",H),re.addEventListener("click",H),z.addEventListener("input",()=>{D(g)}),z.addEventListener("change",R=>{R.stopPropagation(),U(g)}),z.addEventListener("keydown",R=>{R.key==="Enter"?(R.preventDefault(),U(g)):R.key==="Escape"&&g.__open?le(g):R.altKey&&R.key==="ArrowDown"&&(R.preventDefault(),ve(g))}),g.addEventListener("keydown",R=>{R.target!==z&&(R.key==="Enter"&&!g.__open||R.altKey&&R.key==="ArrowDown"?(R.preventDefault(),ve(g)):R.key==="Escape"&&g.__open&&(R.preventDefault(),le(g,{restoreFocus:!0})))});const E=R=>{!g.__open||g.contains(R.target)||le(g)},G=R=>{g.__open&&(R.relatedTarget&&g.contains(R.relatedTarget)||le(g))};return I.addEventListener("pointerdown",E),g.addEventListener("focusout",G),Array.isArray(L.disposers)&&L.disposers.push(()=>{I.removeEventListener("pointerdown",E),g.removeEventListener("focusout",G)}),g},read(x){const L=x.__input.value.trim();return L===""?null:o(L)||L},write(x,L){if(L==null||L===""){x.__value=null,Y(x,null);return}const I=l(L);if(!I){t("form.color.setValue",`form.color: "${String(L)}" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.`);return}x.__value=I,Y(x,I)},state(x,L){const I=L.disabled===!0||L.readOnly===!0;x.__input.disabled=L.disabled===!0,x.__input.readOnly=L.readOnly===!0||!i(L),x.__swatchBtn.disabled=I,x.__toggleBtn.disabled=I,x.__clearBtn&&(x.__clearBtn.disabled=I),I&&le(x)},validate(x,L,I){return I==null||typeof I=="string"&&/^#[0-9a-f]{6}$/.test(I)?!0:typeof L.errorMessage=="string"&&L.errorMessage!==""?L.errorMessage:x.__t("form.color.invalidHex")},focus(x){x.__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 V}}),Object.defineProperty(S,"buildPattern",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"mod10Weighted",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"MOD43_ORDER",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"mod43Check",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"weightedModulo",{enumerable:!0,get:function(){return y}});function e(A){const B=[];for(let O=0;O<A.length;O++){const v=O%2===0?1:0;for(let d=0;d<A[O];d++)B.push(v)}return B}function V(A,B){const O=[];return A.forEach((v,d)=>{if(d>0&&B>0)for(let u=0;u<B;u++)O.push(0);O.push(...v)}),O}function $(A,B){return V(A.map(e),B)}function ee(A,B=3){let O=0,v=B;for(let d=A.length-1;d>=0;d--)O+=Number(A[d])*v,v=v===3?1:3;return(10-O%10)%10}const h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function P(A){let B=0;for(const O of A){const v=h.indexOf(O);if(v<0)return null;B+=v}return h[B%43]}function y(A,B,O=11){let v=0,d=1;for(let u=A.length-1;u>=0;u--)v+=A[u]*d,d=d===B?1:d+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 _}}),Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return w}});const e=q("packages/dom/src/cell/renderers/barcode/support.js"),V=e.buildPattern,$=e.mod43Check,ee=e.MOD43_ORDER,h=2,P=["000110100","100100001","001100001","101100000","000110001","100110000","001110000","000100101","100100100","001100100","100001001","001001001","101001000","000011001","100011000","001011000","000001101","100001100","001001100","000011100","100000011","001000011","101000010","000010011","100010010","001010010","000000111","100000110","001000110","000010110","110000001","011000001","111000000","010010001","110010000","011010000","010000101","110000100","011000100","010101000","010100010","010001010","000101010"],y="010010100";function A(t){return t.split("").map(o=>o==="1"?h:1)}function B(t){const o=ee.indexOf(t);return o<0?null:A(P[o])}function O(){const t=new Map,o=l=>String.fromCharCode(65+l);for(let l=1;l<=26;l++)t.set(l,`$${o(l-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((l,b)=>t.set(27+b,l));for(let l=33;l<=44;l++)t.set(l,`/${o(l-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let l=59;l<=63;l++)t.set(l,`%${o(l-59+5)}`);t.set(64,"%V");for(let l=91;l<=95;l++)t.set(l,`%${o(l-91+10)}`);t.set(96,"%W");for(let l=97;l<=122;l++)t.set(l,`+${o(l-97)}`);for(let l=123;l<=127;l++)t.set(l,`%${o(l-123+15)}`);return t}const v=O(),d=new Map([...v].map(([t,o])=>[o,t]));function u(t){const o=[];for(const l of t){const b=l.codePointAt(0);if(b>127)return null;if(ee.includes(l)){o.push(l);continue}const p=v.get(b);if(!p)return null;o.push(p[0],p[1])}return o}function _(t){let o="";for(let l=0;l<t.length;l++){const b=t[l]+(t[l+1]??"");if(d.has(b)){o+=String.fromCharCode(d.get(b)),l++;continue}o+=t[l]}return o}function w(t,o={}){const l=t==null?"":String(t);if(l==="")return{ok:!1,reason:"empty"};const b=o.extended?u(l):l.split("");if(!b)return{ok:!1,reason:"charset"};const p=[A(y)];for(const m of b){const f=B(m);if(!f)return{ok:!1,reason:"charset"};p.push(f)}if(o.checkDigit){const m=$(b.join(""));return m==null?{ok:!1,reason:"charset"}:(p.push(B(m)),p.push(A(y)),{ok:!0,modules:V(p,1),text:`${l}${m}`})}return p.push(A(y)),{ok:!0,modules:V(p,1),text:l}}}),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 ee}}),Object.defineProperty(S,"R_PATTERNS",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"EAN13_PARITY",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return O}});const V=q("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,$=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],ee=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],h=$.map(v=>v.split("").map(d=>d==="1"?"0":"1").join("")),P=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function y(v){return v.split("").map(Number)}function A(v,d){const u=v==null?"":String(v);if(!/^\d+$/.test(u))return null;if(u.length===d)return{digits:u,check:V(u)};if(u.length===d+1){const _=u.slice(0,d),w=Number(u[d]),t=V(_);return w!==t?null:{digits:_,check:t}}return null}function B(v){const d=A(v,12);if(!d)return{ok:!1,reason:"checkDigit"};const u=d.digits+d.check,_=P[Number(u[0])],w=u.slice(1,7).split("").map((l,b)=>(_[b]==="L"?$:ee)[Number(l)]),t=u.slice(7).split("").map(l=>h[Number(l)]);return{ok:!0,modules:[...y("101"),...w.flatMap(y),...y("01010"),...t.flatMap(y),...y("101")],text:u}}function O(v){const d=A(v,7);if(!d)return{ok:!1,reason:"checkDigit"};const u=d.digits+d.check,_=u.slice(0,4).split("").map(o=>$[Number(o)]),w=u.slice(4).split("").map(o=>h[Number(o)]);return{ok:!0,modules:[...y("101"),..._.flatMap(y),...y("01010"),...w.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 A}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return v}});const e=q("packages/dom/src/cell/renderers/barcode/ean.js"),V=e.L_PATTERNS,$=e.G_PATTERNS,ee=e.encodeEan13,P=q("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function y(d){return d.split("").map(Number)}function A(d){const u=d==null?"":String(d);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const _=ee(`0${u}`);return _.ok?{ok:!0,modules:_.modules,text:_.text.slice(1)}:_}function B(d,u){const _=d.split(""),w=_[5];return w<="2"?`${_[0]}${_[1]}${w}0000${_[2]}${_[3]}${_[4]}`:w==="3"?`${_[0]}${_[1]}${_[2]}00000${_[3]}${_[4]}`:w==="4"?`${_[0]}${_[1]}${_[2]}${_[3]}00000${_[4]}`:`${_[0]}${_[1]}${_[2]}${_[3]}${_[4]}0000${w}`}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(d){const u=d==null?"":String(d);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let _,w,t=null;if(u.length===6?(_="0",w=u):u.length===7?(_=u[0],w=u.slice(1)):(_=u[0],w=u.slice(1,7),t=u[7]),_!=="0"&&_!=="1")return{ok:!1,reason:"checkDigit"};const o=B(w,_),l=P(_+o);if(t!=null&&Number(t)!==l)return{ok:!1,reason:"checkDigit"};const p=O[l][Number(_)].split("").map((f,N)=>(f==="O"?V:$)[Number(w[N])]);return{ok:!0,modules:[...y("101"),...p.flatMap(y),...y("010101")],text:`${_}${w}${l}`}}}),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 d}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return w}}),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 V}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return ee}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",V=["($)","(%)","(/)","(+)"],$=[[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]],ee=[1,1,1,1,4,1];function h(t){const o=[];for(let l=0;l<t.length;l++){const b=l%2===0?1:0;for(let p=0;p<t[l];p++)o.push(b)}return o}function P(t){return $[t]}function y(t){return e.indexOf(t)}function A(){const t=new Map,o=43,l=44,b=45,p=46,m=f=>10+f;for(let f=1;f<=26;f++)t.set(f,[o,m(f-1)]);t.set(0,[l,m(20)]);for(let f=27;f<=31;f++)t.set(f,[l,m(f-27)]);for(let f=33;f<=44;f++)t.set(f,[b,m(f-33)]);t.set(47,[b,m(14)]),t.set(58,[b,m(25)]);for(let f=59;f<=63;f++)t.set(f,[l,m(f-59+5)]);t.set(64,[l,m(21)]);for(let f=91;f<=95;f++)t.set(f,[l,m(f-91+10)]);t.set(96,[l,m(22)]);for(let f=97;f<=122;f++)t.set(f,[p,m(f-97)]);for(let f=123;f<=127;f++)t.set(f,[l,m(f-123+15)]);return t}const B=A(),O=new Map([...B].map(([t,o])=>[o.join(","),t]));function v(t){const o=[];for(const l of t){const b=l.codePointAt(0);if(b>127)return null;const p=y(l);if(p>=0){o.push(p);continue}const m=B.get(b);if(!m)return null;o.push(m[0],m[1])}return o}function d(t){let o="";for(let l=0;l<t.length;l++){const b=`${t[l]},${t[l+1]??""}`;if(O.has(b)){o+=String.fromCharCode(O.get(b)),l++;continue}o+=e[t[l]]}return o}function u(t){let o=0,l=1;for(let b=t.length-1;b>=0;b--)o+=t[b]*l,l=l===20?1:l+1;return o%47}function _(t){const o=u(t),l=u([...t,o]);return{c:o,k:l}}function w(t,o={}){const l=t==null?"":String(t);if(l==="")return{ok:!1,reason:"empty"};const b=o.extended?v(l):(()=>{const c=[];for(const i of l){const n=y(i);if(n<0)return null;c.push(n)}return c})();if(!b)return{ok:!1,reason:"charset"};const{c:p,k:m}=_(b),f=[ee];for(const c of b)f.push(P(c));return f.push(P(p)),f.push(P(m)),f.push(ee),{ok:!0,modules:f.flatMap(h),text:l}}}),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 V=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"],ee=103,h=104,P=105,y=106,A={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},B={A:ee,B:h,C:P};function O(o){return o>=32&&o<=95?o-32:o>=0&&o<=31?o+64:null}function v(o){return o>=32&&o<=127?o-32:null}function d(o,l){const b=o.charCodeAt(l),p=o.charCodeAt(l+1);return b>=48&&b<=57&&p>=48&&p<=57}function u(o,l,b){const p=[],m=o.charCodeAt(l),f=O(m);if(f!=null){const c=b==="A"||b===null?[f]:[A[b].A,f];p.push({to:"A",symbols:c,advance:1})}const N=v(m);if(N!=null){const c=b==="B"||b===null?[N]:[A[b].B,N];p.push({to:"B",symbols:c,advance:1})}if(d(o,l)){const c=Number(o.slice(l,l+2)),i=b==="C"||b===null?[c]:[A[b].C,c];p.push({to:"C",symbols:i,advance:2})}return p}function _(o){const l=o.length,b=Array.from({length:l+1},()=>({}));b[0].start={cost:0,prev:null,symbols:[]};for(let n=0;n<=l;n++)for(const a of Object.keys(b[n])){const r=b[n][a];if(n===l)continue;const s=a==="start"?null:a;for(const M of u(o,n,s)){const D=n+M.advance,Y=r.cost+M.symbols.length,U=b[D][M.to];(!U||Y<U.cost)&&(b[D][M.to]={cost:Y,prev:a,symbols:M.symbols,backI:n})}}const p=Object.entries(b[l]);if(p.length===0)return null;p.sort((n,a)=>n[1].cost-a[1].cost);const[,m]=p[0],f=[];let N=l,c=p[0][0],i=c;for(;N>0;){const n=b[N][c];f.push(n.symbols),i=c,N=n.backI,c=n.prev}return f.reverse(),{symbols:f.flat(),startSubset:i}}function w(o,l){let b=o;for(let p=0;p<l.length;p++)b+=l[p]*(p+1);return b%103}function t(o,l={}){const b=o==null?"":String(o);if(b==="")return{ok:!1,reason:"empty"};for(let n=0;n<b.length;n++)if(b.charCodeAt(n)>127)return{ok:!1,reason:"charset"};const p=_(b);if(!p)return{ok:!1,reason:"charset"};const m=B[p.startSubset],f=w(m,p.symbols);return{ok:!0,modules:[m,...p.symbols,f,y].map(n=>$[n].split("").map(Number)).flatMap(n=>V(n)),text:b}}}),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 ee}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return P}});const e=q("packages/dom/src/cell/renderers/barcode/support.js"),V=e.buildPattern,$=e.weightedModulo,ee="0123456789-",h=[[1,1,1,1,1],[1,1,1,1,2],[1,1,1,2,1],[1,1,2,1,1],[1,2,1,1,1],[2,1,1,1,1],[1,1,1,2,2],[1,1,2,1,2],[1,1,2,2,1],[1,2,1,1,2],[1,2,1,2,1]],P=[2,1,1,1,2,1],y=d=>ee.indexOf(d);function A(d){const u=y(d);return u<0?null:h[u]}function B(d){return ee[$(d,10)]}function O(d){return ee[$(d,9)]}function v(d,u={}){const _=d==null?"":String(d);if(_==="")return{ok:!1,reason:"empty"};const w=[];for(const m of _){const f=y(m);if(f<0)return{ok:!1,reason:"charset"};w.push(f)}const t=B(w),o=y(t),b=_.length>=10?`${t}${O([...w,o])}`:t,p=[P];for(const m of _)p.push(A(m));for(const m of b)p.push(A(m));return p.push(P),{ok:!0,modules:V(p,1),text:`${_}${b}`}}}),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 V=q("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,$=2,ee={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"},h="0123456789-$:/.+",P="ABCD",y="0123456789-$:/.+ABCD";function A(d){return d.split("").map(u=>u==="w"?$:1)}function B(d){const u=ee[d];return u?A(u):null}function O(d){let u=0;for(const w of d){const t=y.indexOf(w);if(t<0)return null;u+=t}const _=u%16;return _<10?String(_):null}function v(d,u={}){const _=d==null?"":String(d);if(_==="")return{ok:!1,reason:"empty"};const w=_.toUpperCase();if(w.length<2)return{ok:!1,reason:"charset"};const t=w[0],o=w[w.length-1];if(!P.includes(t)||!P.includes(o))return{ok:!1,reason:"charset"};const l=w.slice(1,-1);for(const m of l)if(!h.includes(m))return{ok:!1,reason:"charset"};const b=[t,...l.split(""),o];if(u.checkDigit){const m=O(b);if(m==null)return{ok:!1,reason:"checkDigit"};b.splice(b.length-1,0,m);const f=b.map(B),N=`${w.slice(0,-1)}${m}${o}`;return{ok:!0,modules:V(f,1),text:N}}const p=b.map(B);return{ok:!0,modules:V(p,1),text:w}}}),Ne("packages/dom/src/cell/renderers/barcode/code32.js",function(S,q){"use strict";Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"decodeCode32Modules",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return u}});const V=q("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,$=2,ee="010010100",h={0:"000110100",1:"100100001",2:"001100001",3:"101100000",4:"000110001",5:"100110000",6:"001110000",7:"000100101",8:"100100100",9:"001100100",A:"100001001",B:"001001001",C:"101001000",D:"000011001",F:"001011000",G:"000001101",H:"100001100",J:"000011100",K:"100000011",L:"001000011",M:"101000010",N:"000010011",P:"001010010",Q:"000000111",R:"100000110",S:"001000110",T:"000010110",U:"110000001",V:"011000001",W:"111000000",X:"010010001",Y:"110010000",Z:"011010000"},P="0123456789BCDFGHJKLMNPQRSTUVWXYZ",y=_=>_.split("").map(w=>w==="1"?$:1),A=_=>h[_]?y(h[_]):null,B=()=>y(ee);function O(_){let w=0;for(let t=0;t<8;t++){const o=t+1;let l=Number(_[t]);o%2===0&&(l*=2,l>=10&&(l-=9)),w+=l}return w%10}function v(_,w){let t="",o=_;for(let l=0;l<w;l++)t=P[o%32]+t,o=Math.floor(o/32);return t}function d(_){const w=[];for(let p=0;p<_.length;p++)p===0||_[p]!==_[p-1]?w.push(1):w[w.length-1]++;const t=1,o=p=>p>t?"1":"0",l=[];let b=9;for(;b<w.length;){b+=1;const p=w.slice(b,b+9);if(p.length<9)break;const m=p.map(o).join(""),f=Object.keys(h).find(N=>h[N]===m);l.push(f??"?"),b+=9}return l.pop(),l}function u(_,w={}){const t=_==null?"":String(_);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const o=t.slice(0,8),l=O(o);let b;if(t.length===9){const i=Number(t[8]);if(i!==l)return{ok:!1,reason:"checkDigit"};b=i}else b=l;const p=`${o}${b}`,m=Number(p),N=`A${v(m,6)}`.split(""),c=[B()];for(const i of N){const n=A(i);if(!n)return{ok:!1,reason:"charset"};c.push(n)}return c.push(B()),{ok:!0,modules:V(c,1),text:p}}}),Ne("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(S,q){"use strict";Object.defineProperty(S,"gfMul",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"gfExp",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"generatorPoly",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"reedSolomon",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"SIZES",{enumerable:!0,get:function(){return B}}),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 d}}),Object.defineProperty(S,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"base256Mask",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"encodeBase256",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"padCodewords",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"utahPlacementOrder",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"diagonalWalkCoverage",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"placeCodewords",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"buildSymbol",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return r}});const e=301,V=new Uint8Array(512),$=new Uint8Array(256);{let s=1;for(let M=0;M<255;M++)V[M]=s,$[s]=M,s<<=1,s&256&&(s^=e);for(let M=255;M<512;M++)V[M]=V[M-255]}function ee(s,M){return s===0||M===0?0:V[$[s]+$[M]]}function h(s){return V[(s%255+255)%255]}function P(s){let M=new Uint8Array([1]);for(let D=0;D<s;D++){const Y=new Uint8Array(M.length+1);for(let U=0;U<M.length;U++)Y[U]^=M[U],Y[U+1]^=ee(M[U],h(D));M=Y}return M.subarray(1)}function y(s,M){const D=P(M),Y=new Uint8Array(M);for(let U=0;U<s.length;U++){const Q=s[U]^Y[0];if(Y.copyWithin(0,1),Y[M-1]=0,Q!==0)for(let oe=0;oe<M;oe++)Y[oe]^=ee(D[oe],Q)}return Y}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]},B=Object.keys(A).map(Number).sort((s,M)=>s-M);function O(s){const M=A[s];if(!M)throw new RangeError(`unsupported Data Matrix size ${s}`);return M[0]}function v(s){const M=A[s];if(!M)throw new RangeError(`unsupported Data Matrix size ${s}`);return M[1]}function d(s){return s-2}const u=129,_=231,w=s=>s>=48&&s<=57;function t(s){const M=[];let D=0;for(;D<s.length;){const Y=s[D],U=D+1<s.length?s[D+1]:-1;if(w(Y)&&w(U)){const Q=Y-48,oe=U-48;M.push(Q*10+oe+130),D+=2}else M.push(Y+1),D+=1}return M}function o(s,M){const D=149*M%255+1;return(s+D)%256}function l(s,M){if(s.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const D=[_,s.length];for(let Y=0;Y<s.length;Y++)D.push(o(s[Y],M+2+Y));return D}function b(s,M){if(s.length>M)throw new RangeError(`encoded stream (${s.length} codewords) exceeds capacity (${M})`);const D=s.slice();for(;D.length<M;)D.push(u);return D}function p(s){const M=new Array(s*s).fill(null),D=[],Y=(ve,le)=>ve>=0&&ve<s&&le>=0&&le<s,U=(ve,le)=>{if(!Y(ve,le))return;const x=ve*s+le;if(M[x]===null){const L={row:ve,col:le};M[x]=L,D.push(L)}},Q=(ve,le)=>{const x=I=>(I%s+s)%s,L=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[I,g]of L)U(x(ve+I),x(le+g))};let oe=4,F=0,K=0;const W=s*s+64;do{for(;oe>=0&&F<s;)Q(oe,F),oe-=2,F+=2;for(oe+=1,F+=3;oe<s&&F>=0;)Q(oe,F),oe+=2,F-=2;oe+=3,F+=1}while((oe<s||F<s)&&K++<W);const ge=D.length;for(let ve=0;ve<s;ve++)for(let le=0;le<s;le++)U(ve,le);return Object.defineProperty(D,"sweptCount",{value:D.length-ge,enumerable:!1}),D}function m(s){return p(s).sweptCount}function f(s,M){const D=p(M),Y=new Uint8Array(M*M);for(let U=0;U<D.length;U++){const Q=Math.floor(U/8);if(Q>=s.length)break;const oe=7-U%8,F=s[Q]>>>oe&1,{row:K,col:W}=D[U];Y[K*M+W]=F}return Y}function N(s,M){const D=M+2,Y=new Uint8Array(D*D),U=(oe,F,K)=>{Y[oe*D+F]=K},Q=D-1;for(let oe=0;oe<D;oe++)U(Q,oe,1);for(let oe=0;oe<D;oe++)U(oe,0,1);for(let oe=0;oe<D;oe++)U(0,oe,oe%2===0?1:0);for(let oe=0;oe<D;oe++)U(oe,D-1,oe%2===0?1:0);for(let oe=0;oe<M;oe++)for(let F=0;F<M;F++)Y[(oe+1)*D+(F+1)]=s[oe*M+F];return{size:D,modules:Y}}function c(s){const M=new Uint8Array(s.length);for(let D=0;D<s.length;D++)M[D]=s.charCodeAt(D)&255;return M}function i(s){for(let M=0;M<s.length;M++)if(s[M]>127)return!1;return!0}function n(s){for(const M of B)if(O(M)>=s)return M;return 0}function a(s,M={}){if(s==null||s==="")return{ok:!1,reason:"empty"};const D=String(s),Y=c(D),U=M&&M.encodation==="base256";if(!U&&!i(Y))return{ok:!1,reason:"charset"};let Q;if(U){if(Y.length>249)return{ok:!1,reason:"capacity"};Q=l(Y,1)}else Q=t(Y);const oe=M&&M.size;let F;if(oe!=null){if(!A[oe])return{ok:!1,reason:"capacity"};if(Q.length>O(oe))return{ok:!1,reason:"capacity"};F=oe}else if(F=n(Q.length),F===0)return{ok:!1,reason:"capacity"};const K=O(F),W=b(Q,K),ge=y(W,v(F)),ve=new Uint8Array(K+ge.length);ve.set(W,0),ve.set(ge,K);const le=d(F),x=f(ve,le),{modules:L}=N(x,le);return{ok:!0,matrix:{size:F,modules:L},text:D}}const r=a}),Ne("packages/dom/src/cell/renderers/barcode/index.js",function(S,q){"use strict";Object.defineProperty(S,"BARCODE_TYPES",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"encodeBarcode",{enumerable:!0,get:function(){return f}});const e=q("packages/dom/src/cell/renderers/barcode/code39.js"),V=e.encodeCode39,$=q("packages/dom/src/cell/renderers/barcode/ean.js"),ee=$.encodeEan13,h=$.encodeEan8,P=q("packages/dom/src/cell/renderers/barcode/upc.js"),y=P.encodeUpcA,A=P.encodeUpcE,B=q("packages/dom/src/cell/renderers/barcode/code93.js"),O=B.encodeCode93,v=q("packages/dom/src/cell/renderers/barcode/code128.js"),d=v.encodeCode128,u=q("packages/dom/src/cell/renderers/barcode/code11.js"),_=u.encodeCode11,w=q("packages/dom/src/cell/renderers/barcode/codabar.js"),t=w.encodeCodabar,o=q("packages/dom/src/cell/renderers/barcode/code32.js"),l=o.encodeCode32,b=q("packages/dom/src/cell/renderers/barcode/datamatrix.js"),p=b.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 P.encodeUpcA}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return P.encodeUpcE}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return B.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 w.encodeCodabar}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return o.encodeCode32}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return b.encodeDataMatrix}});const m=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function f(N,c,i={}){switch(N){case"code39":return V(c,{checkDigit:i.checkDigit});case"code39ext":return V(c,{extended:!0,checkDigit:i.checkDigit});case"ean13":return ee(c);case"ean8":return h(c);case"upca":return y(c);case"upce":return A(c);case"code93":return O(c);case"code93ext":return O(c,{extended:!0});case"code128":return d(c);case"code11":return _(c);case"codabar":return t(c,{checkDigit:i.checkDigit});case"code32":return l(c);case"datamatrix":return p(c,{size:i.size,encodation:i.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 B}}),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 _}}),Object.defineProperty(S,"buildSvg",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"renderBarcode",{enumerable:!0,get:function(){return t}});const V=q("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,$="http://www.w3.org/2000/svg",ee=60,h=16,P=4;function y(o,l,b){b==null||b===!1?o.removeAttribute(l):o.setAttribute(l,String(b))}const A=new Set;function B(o,l){A.has(o)||(A.add(o),console.warn("[lattice]",l))}function O(o,l,b){const p=[];let m=0;for(;m<o.length;){if(!o[m]){m++;continue}let f=1;for(;m+f<o.length&&o[m+f];)f++;p.push(`M${m+l} 0h${f}v${b}h-${f}z`),m+=f}return p.join("")}function v(o,l){const{size:b,modules:p}=o,m=[];for(let f=0;f<b;f++){let N=0;for(;N<b;){if(!p[f*b+N]){N++;continue}let c=1;for(;N+c<b&&p[f*b+N+c];)c++;m.push(`M${N+l} ${f+l}h${c}v1h-${c}z`),N+=c}}return m.join("")}function d(o){const l=o&&typeof o=="object"?o:{};return{show:l.show!==!1,position:l.position==="top"?"top":"bottom",align:l.align==="left"||l.align==="right"?l.align:"center",margin:Number.isFinite(Number(l.margin))?Number(l.margin):2,font:typeof l.font=="string"&&l.font?l.font:"10px sans-serif"}}function u(o){const l=Math.floor(Number(o));return!Number.isFinite(l)||l<0?10:Math.min(40,l)}function _(o,l,b){const p=u(b.quietZone),m=d(b.text),f=m.show,N=!!l.matrix,c=N?l.matrix.size:l.modules.length,i=N?c+p*2:ee,n=f&&m.position==="top"?h+P:0,a=i+(f?h+P:0),r=c+p*2,s=Number(b.moduleWidth)||0,M=s>0?r*s:Number(b.width)||200,D=Number(b.height)||Math.round(M/r*a)||60;y(o.svg,"viewBox",`0 0 ${r} ${a}`),y(o.svg,"width",M),y(o.svg,"height",D);const Y=b.print?"#000000":b.foreground||"currentColor",U=b.print?"#ffffff":b.background;if(U?(y(o.background,"x",0),y(o.background,"y",0),y(o.background,"width",r),y(o.background,"height",a),o.background.setAttribute("fill",U),o.background.style.display=""):o.background.style.display="none",o.path.setAttribute("fill",Y),o.path.setAttribute("transform",`translate(0 ${n})`),o.path.setAttribute("d",N?v(l.matrix,p):O(l.modules,p,ee)),!f){o.text.style.display="none";return}o.text.style.display="",o.text.style.font=m.font,o.text.setAttribute("fill",Y),o.text.setAttribute("text-anchor",m.align==="left"?"start":m.align==="right"?"end":"middle");const Q=m.align==="left"?p:m.align==="right"?r-p:r/2,oe=m.position==="top"?h-m.margin:a-m.margin;y(o.text,"x",Q),y(o.text,"y",oe),o.text.textContent=l.text}function w(o){const l=o.createElementNS($,"svg");l.setAttribute("class","lat-barcode__svg"),l.setAttribute("focusable","false"),l.setAttribute("preserveAspectRatio","none");const b=o.createElementNS($,"rect");b.style.display="none";const p=o.createElementNS($,"path"),m=o.createElementNS($,"text");return l.appendChild(b),l.appendChild(p),l.appendChild(m),{svg:l,background:b,path:p,text:m}}function t(o,l){const b=o.ownerDocument,p=w(b);o.textContent="",o.appendChild(p.svg);const m=N=>{const c=N||{},i=String(c.type||"code39"),n=V(i,c.value,{checkDigit:c.checkDigit,size:c.size,encodation:c.encodation});if(!n.ok){B(`barcode:invalid:${i}`,`column "standalone" has a value that is not valid for the "${i}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),p.path.setAttribute("d","");return}_(p,n,c)};return m(l),{update:m,destroy:()=>{o.textContent=""}}}}),Ne("packages/modules/form/controls/barcode.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function h(P,y){const A=P.props&&P.props.source;if(!A)return P.value;const B=typeof y.form.getItem=="function"?y.form.getItem(A):null;return B&&typeof B.getValue=="function"?B.getValue():void 0}V("barcode",{kind:"display",build(P,y){const A=y.doc.createElement("span");A.className="lat-form__barcode";const B=ee(A,{...P.props,value:h(P,y)}),O=P.props&&P.props.source;if(O){const v=y.emitter.on("change",d=>{d&&d.name===O&&B.update({...P.props,value:d.value})});y.disposers.push(v)}return y.disposers.push(()=>B.destroy()),A._barcodeHandle=B,A},read(P,y,A){return h(y,A)},write(P,y,A){P._barcodeHandle&&P._barcodeHandle.update({...y.props,value:A})},state(){}})}),Ne("packages/modules/form/controls/speeddial.js",function(S,q){"use strict";Object.defineProperty(S,"injectSpeedDialStyles",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return n}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,P=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,y="lat-speeddial",A="data-lattice-speeddial-styles",B="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"]),d=Object.freeze(["up","down","left","right"]);let u=0;function _(){const a=`
1654
1662
  .lat-form,
1655
1663
  .lat-speeddial[data-lattice-standalone]{
1656
1664
  --lattice-speeddial-primary-bg:#5a46d6;
@@ -1674,7 +1682,7 @@ ${i}
1674
1682
  --lattice-speeddial-danger-bg:#c22b2b;
1675
1683
  --lattice-speeddial-danger-fg:#ffffff;
1676
1684
  --lattice-speeddial-danger-border:#c22b2b;
1677
- }`,n=`
1685
+ }`,r=`
1678
1686
  @scope ([data-theme="dark"]){.lat-form,
1679
1687
  .lat-speeddial[data-lattice-standalone]{
1680
1688
  --lattice-speeddial-primary-bg:#7c68e8;
@@ -1722,8 +1730,8 @@ ${i}
1722
1730
  --lattice-speeddial-danger-bg:#e05b5b;
1723
1731
  --lattice-speeddial-danger-fg:#1c0606;
1724
1732
  --lattice-speeddial-danger-border:#e05b5b;
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(`
1733
+ }}}`,s=v.map(M=>`
1734
+ .${y}[data-variant='${M}'] .${y}__fab{ background:var(--lattice-speeddial-${M}-bg); border-color:var(--lattice-speeddial-${M}-border); color:var(--lattice-speeddial-${M}-fg); }`).join(`
1727
1735
  `);return`
1728
1736
  .lat-speeddial{
1729
1737
  position:relative; box-sizing:border-box; min-width:0;
@@ -1840,9 +1848,9 @@ ${i}
1840
1848
  .${y}__fab:focus-visible,
1841
1849
  .${y}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
1842
1850
 
1843
- ${i}
1851
+ ${a}
1844
1852
  ${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});const Ct=Zt("packages/modules/form/index.js"),pr=Ct.createCombo,mr=Ct.createSpeedDial,br=Ct.registerControl,gr=Ct.createForm,hr=Ct.createFormGroup,_r=Ct.enhanceForm;var vr=Ct.default;export{pr as createCombo,gr as createForm,hr as createFormGroup,mr as createSpeedDial,vr as default,_r as enhanceForm,br as registerControl};
1853
+ ${r}
1854
+ `.trim()}function w(a){const r=a&&a.documentElement;if(!r||r.getAttribute(A))return;r.setAttribute(A,"1");const s=a.createElement("style");s.textContent=_(),(a.head||a.body||r).appendChild(s)}function t(a){return O.includes(a)?a:"bottom-right"}function o(a){return v.includes(a)?a:"primary"}function l(a,r){return d.includes(r)?r:a.startsWith("top-")?"down":a.startsWith("bottom-")?"up":a==="middle-left"?"right":"left"}function b(a){switch(a){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 p(a,r){const s=r&&typeof r=="object"?r:{},M=b(a),D=typeof s.startAngle=="number"?s.startAngle:M.startAngle,Y=typeof s.endAngle=="number"?s.endAngle:M.endAngle,U=typeof s.offset=="number"&&s.offset>0?s.offset:0;return{startAngle:D,endAngle:Y,offset:U,defaulted:s.startAngle==null&&s.endAngle==null}}function m(a,r){const s=P[r];if(!s)return null;const M=a.createElementNS(B,"svg");M.setAttribute("viewBox",s.viewBox||"0 0 16 16"),M.setAttribute("aria-hidden","true"),M.setAttribute("focusable","false");const D=s.paint==="stroke";for(const Y of s.paths||[]){const U=a.createElementNS(B,"path");U.setAttribute("d",Y),D?(U.setAttribute("fill","none"),U.setAttribute("stroke","currentColor"),U.setAttribute("stroke-width","1.5"),U.setAttribute("stroke-linecap","round"),U.setAttribute("stroke-linejoin","round")):U.setAttribute("fill","currentColor"),M.appendChild(U)}return M}function f(a,r){if(a==null)return null;if(typeof a=="object"&&a.nodeType)return a;if(typeof a!="string"||a==="")return null;const s=a;if(/^(https?:)?\/\//i.test(s)||/^data:/i.test(s)){const M=r.createElement("img");return M.src=s,M.alt="",M}return m(r,s)}function N(a,r,s){const M=a&&a.defaultView;return M&&M.CustomEvent?new M.CustomEvent(r,{bubbles:!0,detail:s}):{type:r,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:s,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function c(a){return Array.isArray(a)?a.map(r=>{const s=r&&typeof r=="object"?r:{};return{id:s.id,icon:s.icon,text:s.text,disabled:s.disabled===!0,render:typeof s.render=="function"?s.render:null}}):[]}function i(a,r){const s="var(--lat-sd-size)",M="var(--lat-sd-gap)",D="var(--lat-sd-pad)";if(r==="up"||r==="down"){const Q={flexDirection:"column"};return a.endsWith("-left")?(Q.insetInlineStart=D,Q.alignItems="flex-start"):a.endsWith("-right")?(Q.insetInlineEnd=D,Q.alignItems="flex-end"):(Q.left="50%",Q.transform="translateX(-50%)",Q.alignItems="center"),r==="down"?Q.top=`calc(${D} + ${s} + ${M})`:Q.bottom=`calc(${D} + ${s} + ${M})`,Q}const U={flexDirection:"row"};return a.startsWith("top-")?(U.top=D,U.alignItems="flex-start"):a.startsWith("bottom-")?(U.bottom=D,U.alignItems="flex-end"):(U.top="50%",U.transform="translateY(-50%)",U.alignItems="center"),r==="right"?U.insetInlineStart=`calc(${D} + ${s} + ${M})`:U.insetInlineEnd=`calc(${D} + ${s} + ${M})`,U}function n(a,r={}){const s=r.doc||a&&a.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;s&&w(s);const M=typeof r.t=="function"?r.t:ee,D=r.inForm===!0,Y=r.emitter||null,U=r.itemName!=null?String(r.itemName):"",Q=r.formItem||null,oe=t(r.position),F=r.fixed===!0,K=r.openOnHover===!0,W=r.mode==="radial"?"radial":"linear",ge=o(r.variant),ve=l(oe,r.direction),le=r.modal===!0,x=r.text!=null?String(r.text):"",L=r.openIcon!=null?r.openIcon:"plus",I=r.closeIcon!=null?r.closeIcon:"close",g=W==="radial"?p(oe,r.radial):null;let T=r.disabled===!0,X=c(r.items);const z=s.createElement("div");z.className=y,z.setAttribute("data-variant",ge),z.setAttribute("data-fixed",F?"true":"false"),D||z.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),x&&re.setAttribute("data-text","true");const j=s.createElement("span");if(j.className=`${y}__fab-icon`,j.setAttribute("aria-hidden","true"),re.appendChild(j),x){const fe=s.createElement("span");fe.className=`${y}__fab-text`,fe.textContent=x,re.appendChild(fe)}const k=s.createElement("div");k.className=`${y}__backdrop`,k.hidden=!0;const Z=s.createElement("div");Z.className=`${y}__menu`,Z.setAttribute("role","menu"),Z.setAttribute("aria-label",M("form.speeddial.menu")),Z.id=te,Z.setAttribute("data-mode",W),W==="linear"&&Z.setAttribute("data-direction",ve),Z.hidden=!0,z.appendChild(k),z.appendChild(Z),z.appendChild(re);let H=!1;const E=[];let G=!1;const R=(fe,we)=>{Y?Y.emit(fe,{name:U,item:Q,...we}):a.dispatchEvent(N(s,fe,we))},ce=()=>x||M(H?"form.speeddial.close":"form.speeddial.open"),me=()=>{for(;j.firstChild;)j.removeChild(j.firstChild);const fe=f(H?I:L,s);fe&&j.appendChild(fe)},xe=(fe,we)=>{const Se=s.createElement("button");Se.type="button",Se.className=`${y}__item`,Se.setAttribute("role","menuitem"),Se.setAttribute("tabindex","-1"),Se.dataset.index=String(we);const Te=fe.text!=null&&String(fe.text)!==""?String(fe.text):fe.id!=null?String(fe.id):"";Te&&Se.setAttribute("aria-label",Te),fe.disabled&&Se.setAttribute("aria-disabled","true");const Pe=f(fe.icon,s),tt=fe.text!=null?String(fe.text):"";if(typeof fe.render=="function"){const Be=fe.render(fe,we);Be&&typeof Be=="object"&&Be.nodeType?Se.appendChild(Be):Se.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),Se.appendChild(Be)}if(tt!==""){const Be=s.createElement("span");Be.className=`${y}__item-text`,Be.textContent=tt,Se.appendChild(Be)}}Se.setAttribute("data-icon-only",Pe!=null&&tt===""?"true":"false"),Se.setAttribute("data-text-only",Pe==null&&tt!==""?"true":"false");const Ze=Be=>{Be.stopPropagation(),!(fe.disabled||T)&&(R("itemClick",{item:fe,index:we}),J(!1),re.focus())};Se.addEventListener("click",Ze),E.push(()=>Se.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(we,1)):(Be.key==="ArrowUp"||Be.key==="ArrowLeft")&&(Be.preventDefault(),ue(we,-1))};return Se.addEventListener("keydown",Je),E.push(()=>Se.removeEventListener("keydown",Je)),Se};let C=[];const ne=()=>{for(;Z.firstChild;)Z.removeChild(Z.firstChild);C=X.map((fe,we)=>xe(fe,we));for(const fe of C)Z.appendChild(fe);me()},se=()=>{if(W!=="radial"||!g)return;const fe=re.getBoundingClientRect(),we=F?0:z.getBoundingClientRect().left,Se=F?0:z.getBoundingClientRect().top,Te=fe.left+fe.width/2-we,Pe=fe.top+fe.height/2-Se,tt=g.offset||Math.round(fe.width/2+28);let Ze=g.startAngle,Je=g.endAngle;if(g.defaulted&&getComputedStyle(z).direction==="rtl"){const Qe=180-Je;Je=180-Ze,Ze=Qe}const Be=C.length;C.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,we={})=>{G||T||H===fe||(H=fe,re.setAttribute("aria-expanded",H?"true":"false"),re.setAttribute("aria-label",ce()),Z.hidden=!H,le&&(k.hidden=!H),me(),H?(R("open",{}),se(),we.focusItems!==!1&&ue(-1,1)):R("close",{}))},ue=(fe,we)=>{const Se=C.length;if(Se===0)return;let Te=fe===-1?we>0?0:Se-1:(fe+we+Se)%Se;for(let Pe=0;Pe<Se;Pe+=1){if(!X[Te].disabled){C[Te].focus();return}Te=(Te+we+Se)%Se}},he=()=>{J(!0,{focusItems:!1})},be=()=>{H&&(J(!1),re.focus())},Ee=()=>{J(!H,{focusItems:!1})};if(W==="linear"){const fe=i(oe,ve);for(const we of Object.keys(fe))Z.style[we]=fe[we]}const Oe=()=>{T||Ee()};re.addEventListener("click",Oe),E.push(()=>re.removeEventListener("click",Oe));const Ae=()=>{K&&!T&&J(!0,{focusItems:!1})};re.addEventListener("pointerenter",Ae),E.push(()=>re.removeEventListener("pointerenter",Ae));const Ce=()=>{K&&H&&J(!1)};z.addEventListener("pointerleave",Ce),E.push(()=>z.removeEventListener("pointerleave",Ce));const ye=fe=>{fe.stopPropagation(),be()};k.addEventListener("click",ye),E.push(()=>k.removeEventListener("click",ye));const ke=fe=>{if(!H)return;const we=fe.target;we&&z.contains(we)||be()};s.addEventListener("pointerdown",ke,!0),E.push(()=>s.removeEventListener("pointerdown",ke,!0));const Le=fe=>{!H||fe.key!=="Escape"||(fe.preventDefault(),be())};s.addEventListener("keydown",Le,!0),E.push(()=>s.removeEventListener("keydown",Le,!0));const De=fe=>{fe.key==="Escape"?H&&(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=>{T=fe===!0,re.disabled=T,re.setAttribute("aria-disabled",T?"true":"false"),T&&H&&J(!1)},de={el:z,fab:re,menu:Z,open:he,close:be,toggle:Ee,setItems(fe){X=c(fe),ne()},setDisabled:He,destroy(){G=!0;for(const fe of E.splice(0))fe();for(;z.firstChild;)z.removeChild(z.firstChild);z.parentNode&&z.parentNode.removeChild(z)}};return He(T),ne(),a.appendChild(z),a.__latSpeedDial=de,de}V("speeddial",{kind:"button",action:!0,build(a,r){const s=a.props||{},M=r.doc.createElement("div"),D=n(M,{items:s.speedDialItems||s.items,position:s.position,fixed:s.fixed,openOnHover:s.openOnHover,direction:s.direction,mode:a.mode,radial:s.radial,modal:s.modal,openIcon:s.openIcon,closeIcon:s.closeIcon,text:s.text!=null?s.text:a.label,variant:s.variant,disabled:a.disabled,t:r.t,doc:r.doc,inForm:!0,emitter:r.emitter,itemName:a.name,formItem:a});return r.disposers.push(()=>D.destroy()),M},read(){return null},write(){},state(a,r){const s=a&&a.__latSpeedDial;s&&s.setDisabled(r.disabled===!0)}})}),Ne("packages/modules/form/controls/index.js",function(S,q){"use strict";const e=q("packages/modules/form/controls/input.js"),V=q("packages/modules/form/controls/number.js"),$=q("packages/modules/form/controls/textarea.js"),ee=q("packages/modules/form/controls/checkbox.js"),h=q("packages/modules/form/controls/button.js"),P=q("packages/modules/form/controls/buttons.js"),y=q("packages/modules/form/controls/text.js"),A=q("packages/modules/form/controls/combo.js"),B=q("packages/modules/form/controls/select.js"),O=q("packages/modules/form/controls/listbox.js"),v=q("packages/modules/form/controls/radiogroup.js"),d=q("packages/modules/form/controls/checkboxgroup.js"),u=q("packages/modules/form/controls/toggle.js"),_=q("packages/modules/form/controls/datepicker.js"),w=q("packages/modules/form/controls/daterange.js"),t=q("packages/modules/form/controls/file.js"),o=q("packages/modules/form/controls/richtext.js"),l=q("packages/modules/form/controls/rating.js"),b=q("packages/modules/form/controls/stage.js"),p=q("packages/modules/form/controls/chips.js"),m=q("packages/modules/form/controls/otp.js"),f=q("packages/modules/form/controls/color.js"),N=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 M}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return D}});const e=q("packages/modules/form/styles.js"),V=e.NS,$=e.injectStyles,ee=q("packages/modules/form/model.js"),h=ee.resolveConfig,P=ee.DENSITIES,y=ee.cssSize,A=q("packages/modules/form/view.js"),B=A.markValidation,O=A.mount,v=A.runValidation,d=A.validateItem,u=A.wizardBack,_=A.wizardGoTo,w=A.wizardNext,t=q("packages/modules/form/emitter.js"),o=t.Emitter,l=t.FORM_EVENTS,p=q("packages/modules/form/messages.js").createTranslator,m=q("packages/modules/form/bind.js"),f=m.resolveBind,N=m.applyBinding,i=q("packages/modules/form/rules.js").applyRules,a=q("packages/modules/form/state.js").syncRecordState,r=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 U=Y.type==="buttons"?"buttons":Y.type==="speeddial"?"speedDialItems":null,Q=U!=null&&Array.isArray(Y.items),oe={};for(const F of Object.keys(Y))Q&&F==="items"||(oe[F]=s(Y[F]));return Q&&(oe[U]=Y.items.map(s)),oe}function M(Y,U={}){const Q=Y&&Y.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,oe=f(U);let F=U;if(oe){if(F={...U},F.density===void 0){const I=oe.density();I!=null&&(F.density=I)}if(!(Array.isArray(F.rows)&&F.rows.length||Array.isArray(F.cols)&&F.cols.length)){const I=oe.items();I.length&&(F.rows=[{items:I}])}}const K=h(s(F)),W={el:Y||null,doc:Q,model:K,config:K,items:new Map,order:[],emitter:new o,t:p(K.messages).t,uidSeq:0,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ge=L=>(L.facade||(L.facade={el:L.el,item:L.item,name:L.item.name,getValue(){return L.value},setValue(I){return L.def.write(L.control,I),L.value=L.def.read(L.control),L.item.value=L.value,i(W),L.facade},show(){return L.hidden=!1,L.el.hidden=!1,L.facade},hide(){return L.hidden=!0,L.el.hidden=!0,L.facade},isVisible(){return!(L.hidden||L.ruleHidden)},disable(){return L.item.disabled=!0,a(L),L.facade},enable(){return L.item.disabled=!1,a(L),L.facade},focus(){return typeof L.def.focus=="function"?L.def.focus(L.control):typeof L.control.focus=="function"&&L.control.focus(),L.facade},blur(){return typeof L.def.blur=="function"?L.def.blur(L.control):typeof L.control.blur=="function"&&L.control.blur(),L.facade},validate(){return d(W,L)},setLoading(I){return typeof L.def.setLoading=="function"&&L.def.setLoading(L.control,I===!0),L.facade}}),L.facade);Y&&Q&&$(Q);const ve=Y&&typeof Y.style.cssText=="string"?Y.style.cssText:"",le=new Set(["field","toggle","display"]),x={el:Y||null,config:K,getItem(L){const I=W.items.get(String(L));return I?ge(I):void 0},getValue(){const L={};for(const I of W.order)I.item.name!=null&&le.has(I.def.kind)&&(L[I.item.name]=I.value);return L},setValue(L){if(L==null||typeof L!="object")return x;for(const I of Object.keys(L)){const g=W.items.get(I);g&&ge(g).setValue(L[I])}return x},clear(){for(const L of W.order)if(L.item.name!=null)if(L.def.kind==="field"){const I=L.item.props&&L.item.props.multiple===!0,g=L.item.type==="chips"?I?[]:null:L.item.type==="number"||L.item.type==="radiogroup"||L.item.type==="datepicker"||L.item.type==="stage"||L.item.type==="combo"&&!I?null:L.item.type==="rating"?0:L.item.type==="file"||L.item.type==="checkboxgroup"||(L.item.type==="select"||L.item.type==="combo")&&I?[]:"";L.value=g,L.item.value=g,L.def.write(L.control,g)}else L.def.kind==="toggle"&&(L.value=!1,L.item.value=!1,L.def.write(L.control,!1));return i(W),x},validate(){const L=[];let I=!0;for(const g of W.order){if(g.item.name==null||g.def.kind!=="field"&&g.def.kind!=="toggle"||g.item.disabled===!0||g.ruleHidden===!0||g.hidden===!0||(typeof g.def.reset=="function"&&g.def.reset(g.control,g.item),g.item.required!==!0&&g.item.validation==null&&typeof g.def.validate!="function"&&g.ruleRequired!==!0))continue;const T=v(W,g);B(W,g,T),T&&(I=!1,L.push({name:g.item.name,rule:T.code,message:T.message}))}return W.emitter.emit("validated",{name:null,item:null,value:void 0,valid:I,failures:L}),I},forEach(L){for(const I of W.order)L(ge(I))},on(L,I){return L!=="*"&&!l.includes(L)?(console.warn(`lattice-form: "${L}" is not a form event and will never fire.`),()=>{}):W.emitter.on(L,I)},off(L,I){W.emitter.off(L,I)},setDensity(L){return P.includes(L)&&(K.density=L,Y&&Y.setAttribute("data-density",L)),x},setReadOnly(L){for(const I of W.order)I.item.readOnly=L===!0,a(I);return x},setDisabled(L){for(const I of W.order)I.item.disabled=L===!0,a(I);return x},setSpacing(L){const I=L==null?null:y(L);return K.spacing=I,Y&&(I==null?Y.style.removeProperty("--lattice-form-item-gap"):Y.style.setProperty("--lattice-form-item-gap",I)),x},isDirty(L){return L==null?W.dirty.size>0:W.dirty.has(String(L))},isConflicted(L){return L==null?W.conflicts.size>0:W.conflicts.has(String(L))},save(){const L=W.bound;if(!L)return!1;if(W.dirty.size===0)return!0;const I={};for(const X of W.dirty){const z=x.getItem(X);z&&(I[X]=z.getValue())}const g=L.save(I),T=X=>{if(!X)return!1;for(const z of Object.keys(I))W.baseline[z]=I[z],W.dirty.delete(z),W.conflicts.delete(z);return!0};return g&&typeof g.then=="function"?g.then(T):T(g)},revert(){for(const L of W.dirty){if(!Object.hasOwn(W.baseline,L))continue;const I=W.items.get(L);I&&ge(I).setValue(W.baseline[L])}return W.dirty.clear(),W.conflicts.clear(),x},_bind(L){return N(W,x,L),x},_commit(L){for(const I of Object.keys(L||{}))W.baseline[I]=L[I],W.dirty.delete(I),W.conflicts.delete(I)},get steps(){return W.model.steps||[]},get activeStep(){return W.wizard?W.wizard.active:0},next(){return w(W)},back(){return u(W)},goToStep(L){return _(W,L)},__reapplyRules(){return i(W),x},destroy(){for(const I of W.disposers.splice(0))I();W.emitter.clear();const L=W.el;if(L){for(;L.firstChild;)L.removeChild(L.firstChild);L.classList.remove(V),L.removeAttribute("data-density"),L.style.cssText=ve,L.__latticeForm===x&&(L.__latticeForm=null)}W.items.clear(),W.order.length=0,W.dirty.clear(),W.conflicts.clear(),W.baseline={},W.bound=null}};return Y&&(Y.__latticeForm=x),W.form=x,Y&&Q&&O(W),oe&&N(W,x,oe),x}const D=M}),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 o}});const V=q("packages/modules/form/emitter.js").Emitter,ee=q("packages/modules/form/bind-router.js").routerBinding,h=q("packages/modules/form/group-rules.js"),P=h.attachRuleResolver,y=h.detachRuleResolver,A=h.makeRuleResolver,B=h.reapplyMembers,O=Object.freeze(["change","validated"]),v=new Set;function d(l){const b={},p=l.getValue();for(const m of Object.keys(p))l.isDirty(m)===!0&&(b[m]=p[m]);return b}function u(l,b){v.has(l)||(v.add(l),console.warn("[lattice]",b))}const _=new WeakMap;function w(l,b){let p=_.get(l);if(!p){const m=l.destroy;p={original:m,watchers:new Set},_.set(l,p),l.destroy=function(){const N=_.get(l)||p;for(const c of[...N.watchers])c.detach(l);return m.call(l)}}p.watchers.add(b)}function t(l,b={}){const p=[],m=new Map,f=new Map,N=new V,c=b&&typeof b.bind=="object"&&b.bind.router!=null?b.bind:null,i=c?ee(c):null,n=()=>{m.clear(),f.clear();for(const D of p){const Y=Object.keys(D.form.getValue());for(const U of Y)m.has(U)?u(`form.group.duplicate-field:${U}`,`form group: the field "${U}" is owned by more than one form; the first one added wins.`):m.set(U,D);D.id!=null&&!f.has(D.id)&&f.set(D.id,D)}},a=A({owners:m,byId:f,warnOnce:u}),r=D=>{const Y=p.findIndex(oe=>oe.form===D);if(Y===-1)return!1;const[U]=p.splice(Y,1);for(const oe of U.unsubs)oe();n();const Q=_.get(D);return Q&&(Q.watchers.delete(s),Q.watchers.size===0&&(_.delete(D),D.destroy=Q.original)),y(D),typeof D.__reapplyRules=="function"&&D.__reapplyRules(),B(p),!0},s={detach:r},M={get forms(){return p.map(D=>D.form)},add(D,Y){if(!D||typeof D!="object"||typeof D.getValue!="function"||p.some(F=>F.form===D))return M;const U={form:D,id:Y&&Y.id,unsubs:[],lastFailures:[]};p.push(U),i&&typeof D._bind=="function"&&D._bind(i);const Q=F=>{N.emit("change",{form:D,name:F.name,value:F.value}),B(p)},oe=F=>{U.lastFailures=F.failures||[],N.emit("validated",{form:D,valid:F.valid})};return U.unsubs.push(D.on("change",Q)),U.unsubs.push(D.on("validated",oe)),w(D,s),n(),P(D,a),B(p),M},remove(D){return r(D),M},getValue(){const D={};for(const Y of p)Object.assign(D,Y.form.getValue());return b.transform&&typeof b.transform.get=="function"?b.transform.get(D):D},setValue(D){if(b.transform&&typeof b.transform.set=="function")b.transform.set(D);else if(D!=null&&typeof D=="object")for(const Y of Object.keys(D)){const U=m.get(Y);U&&U.form.setValue({[Y]:D[Y]})}return B(p),M},getItem(D){const Y=m.get(String(D));return Y?Y.form.getItem(D):void 0},validate(){let D=!0;const Y=[];for(const U of p){U.form.validate()===!1&&(D=!1);for(const oe of U.lastFailures||[])Y.push({form:U.form,name:oe.name})}if(!D){const U=Y.find(Q=>Q.name!=null);if(U){const Q=U.form.getItem(U.name);Q&&(Q.focus(),Q.el&&typeof Q.el.scrollIntoView=="function"&&Q.el.scrollIntoView({block:"nearest"}))}}return D},setReadOnly(D){for(const Y of p)Y.form.setReadOnly(D===!0);return M},setDisabled(D){for(const Y of p)Y.form.setDisabled(D===!0);return M},clear(){for(const D of p)D.form.clear();return M},reset(){for(const D of p)typeof D.form.revert=="function"&&D.form.revert();return M},save(){if(!i)return!1;const D=p.map(oe=>({member:oe,changes:d(oe.form)})),Y={};for(const oe of D)Object.assign(Y,oe.changes);if(!Object.keys(Y).length)return!0;const U=i.save(Y),Q=oe=>{if(!oe)return!1;for(const F of D)F.member.form&&typeof F.member.form._commit=="function"&&F.member.form._commit(F.changes);return!0};return U&&typeof U.then=="function"?U.then(Q):Q(U)},isDirty(){return p.some(D=>D.form.isDirty()===!0)},on(D,Y){return D!=="*"&&!O.includes(D)?(console.warn(`lattice-form: "${D}" is not a form group event and will never fire.`),()=>{}):N.on(D,Y)},off(D,Y){N.off(D,Y)},destroy(){for(;p.length;){const D=p[p.length-1].form;r(D)}N.clear()}};if(Array.isArray(l))for(const D of l)M.add(D);else l&&typeof l=="object"&&typeof l.getValue=="function"&&M.add(l);return M}const o=t}),Ne("packages/modules/form/enhance.js",function(S,q){"use strict";Object.defineProperty(S,"itemForField",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"configForForm",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return v}});const V=q("packages/modules/form/create.js").createForm,$=Object.freeze(["text","email","password","url"]);function ee(d){const u=d&&d.type?String(d.type).toLowerCase():"";return u==="submit"||u==="image"||d&&d.tagName==="BUTTON"&&u!=="button"}function h(d){if(!d||!d.name)return!1;const u=d&&d.type?String(d.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||d.tagName==="BUTTON")}function P(d,u){if(typeof d.getAttribute=="function"){const _=d.getAttribute("data-label");if(_!=null&&_!=="")return _;const w=d.getAttribute("aria-label");if(w!=null&&w!=="")return w}if(d.id&&typeof u.querySelector=="function"){const _=u.querySelector(`label[for="${d.id}"]`);if(_&&_.textContent!=null){const w=String(_.textContent).trim();if(w)return w}}return String(d.name||"")}function y(d){return d.type==="checkbox"?d.checked===!0:d.value==null?"":d.value}function A(d,u){if(ee(d)||!h(d))return null;const _=d.type?String(d.type).toLowerCase():"text",w={type:"input",name:d.name,label:P(d,u),value:y(d)};if(_==="number")w.type="number",d.min!=null&&d.min!==""&&(w.min=Number(d.min)),d.max!=null&&d.max!==""&&(w.max=Number(d.max)),d.step!=null&&d.step!==""&&(w.step=Number(d.step));else if(_==="checkbox")w.type="checkbox";else if(d.tagName==="TEXTAREA")w.type="textarea";else if($.includes(_))w.subtype=_,(_==="email"||_==="url")&&(w.validation=_);else return null;if(d.placeholder!=null&&d.placeholder!==""&&(w.placeholder=d.placeholder),d.required===!0&&(w.required=!0),d.disabled===!0&&(w.disabled=!0),d.readOnly===!0&&(w.readOnly=!0),typeof d.getAttribute=="function"){const t=d.getAttribute("data-validation")||d.getAttribute("data-rule");t&&(w.validation=t);const o=d.getAttribute("data-error-message");o&&(w.errorMessage=o);const l=d.getAttribute("data-help");l&&(w.helpMessage=l)}return w}function B(d,u){const _=d&&d.ownerDocument||(typeof document<"u"?document:null),w=[],t=d&&d.elements?d.elements:[];for(const o of t){const l=A(o,_);l&&w.push(l)}return{...u||{},rows:w}}function O(d,u){if(!d)return null;if(d.__latticeForm)return d.__latticeForm;const _=d.ownerDocument||(typeof document<"u"?document:null),w=[],t=d.elements?d.elements:[];for(const l of t)ee(l)&&w.push(l);const o=V(d,B(d,u));d.__latticeForm=o;for(const l of w)l.parentNode!==d&&d.appendChild(l);return typeof d.addEventListener=="function"&&_&&d.addEventListener("submit",l=>{o.validate()||(l.preventDefault(),l.stopImmediatePropagation())},!0),o}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 P}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return d}});const V=q("packages/modules/form/styles.js").NS,ee=q("packages/modules/form/controls/registry.js").registerControl,P=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 A=q("packages/modules/form/controls/speeddial.js");Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return A.createSpeedDial}});const B=q("packages/modules/form/group.js");Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return B.createFormGroup}});const O=q("packages/modules/form/enhance.js");Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return O.enhanceForm}});function v(u,_){if(_===null||typeof _!="object"||typeof _.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const w=typeof _.getValue=="function"?_.getValue:()=>null,t=typeof _.setValue=="function"?_.setValue:()=>{};ee(String(u),{kind:"field",custom:!0,validate:typeof _.validate=="function"?(o,l,b)=>_.validate(b,l,o):void 0,destroy:typeof _.destroy=="function"?o=>_.destroy(o):void 0,build(o,l){const b=l.doc.createElement("div");b.className=`${V}__custom`;const p={name:o.name,item:o,getValue(){return p._read?p._read():void 0},setValue(m){p._write&&p._write(m)},onChange(m){p._commit&&p._commit(m===void 0?w():m)},onInput(m){p._input&&p._input(m===void 0?w():m)}};return b.__latticeFormApi=p,_.create(b,o,p),t(b,o.value),b},read(o){return w(o)},write(o,l){t(o,l)},state(o,l){o.setAttribute("data-disabled",l.disabled===!0?"true":"false"),o.setAttribute("data-readonly",l.readOnly===!0?"true":"false")}})}const d=P});const Ct=Zt("packages/modules/form/index.js"),pr=Ct.createCombo,mr=Ct.createSpeedDial,br=Ct.registerControl,gr=Ct.createForm,hr=Ct.createFormGroup,_r=Ct.enhanceForm;var vr=Ct.default;export{pr as createCombo,gr as createForm,hr as createFormGroup,mr as createSpeedDial,vr as default,_r as enhanceForm,br as registerControl};
1847
1855
 
1848
1856
  //# sourceMappingURL=form.esm.min.js.map