@toclocoinc/lattice-grid 1.114.2 → 1.114.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +1 -1
- package/angular/package.json +1 -1
- package/docs/API.html +5 -4
- package/docs/api/adapters.html +1 -1
- package/docs/api/ai.html +1 -1
- package/docs/api/alarms.html +1 -1
- package/docs/api/calendar.html +1 -1
- package/docs/api/charts.html +1 -1
- package/docs/api/dashboard.html +1 -1
- package/docs/api/data-router.html +1 -1
- package/docs/api/dataview.html +1 -1
- package/docs/api/deckgl.html +1 -1
- package/docs/api/designer.html +1 -1
- package/docs/api/form.html +2 -1
- package/docs/api/gantt.html +1 -1
- package/docs/api/geometry.html +1 -1
- package/docs/api/grid.html +2 -2
- package/docs/api/index.html +2 -2
- package/docs/api/kanban.html +1 -1
- package/docs/api/kpi.html +1 -1
- package/docs/api/layout.html +1 -1
- package/docs/api/leaflet.html +1 -1
- package/docs/api/list.html +1 -1
- package/docs/api/listview.html +1 -1
- package/docs/api/mapview.html +1 -1
- package/docs/api/mock-socket.html +1 -1
- package/docs/api/presets.html +1 -1
- package/docs/api/scheduler.html +1 -1
- package/docs/api/shell.html +1 -1
- package/docs/api/tabs.html +1 -1
- package/docs/api/tree.html +1 -1
- package/docs/api/types.html +1 -1
- package/docs/api-detail.html +10 -5
- package/docs/warnings.json +1 -1
- package/lattice-grid.d.ts +1 -1
- package/lattice-grid.esm.min.js +2 -2
- package/lattice-grid.min.cjs +2 -2
- package/lattice-grid.min.js +2 -2
- package/locales/all.d.ts +1 -1
- package/locales/all.esm.min.js +1 -1
- package/locales/all.min.cjs +1 -1
- package/locales/all.min.js +1 -1
- package/locales/ar.d.ts +1 -1
- package/locales/ar.esm.min.js +1 -1
- package/locales/ar.min.cjs +1 -1
- package/locales/ar.min.js +1 -1
- package/locales/cs-CZ.d.ts +1 -1
- package/locales/cs-CZ.esm.min.js +1 -1
- package/locales/cs-CZ.min.cjs +1 -1
- package/locales/cs-CZ.min.js +1 -1
- package/locales/da-DK.d.ts +1 -1
- package/locales/da-DK.esm.min.js +1 -1
- package/locales/da-DK.min.cjs +1 -1
- package/locales/da-DK.min.js +1 -1
- package/locales/de-DE.d.ts +1 -1
- package/locales/de-DE.esm.min.js +1 -1
- package/locales/de-DE.min.cjs +1 -1
- package/locales/de-DE.min.js +1 -1
- package/locales/el-GR.d.ts +1 -1
- package/locales/el-GR.esm.min.js +1 -1
- package/locales/el-GR.min.cjs +1 -1
- package/locales/el-GR.min.js +1 -1
- package/locales/en-US.d.ts +1 -1
- package/locales/en-US.esm.min.js +1 -1
- package/locales/en-US.min.cjs +1 -1
- package/locales/en-US.min.js +1 -1
- package/locales/es-ES.d.ts +1 -1
- package/locales/es-ES.esm.min.js +1 -1
- package/locales/es-ES.min.cjs +1 -1
- package/locales/es-ES.min.js +1 -1
- package/locales/fi-FI.d.ts +1 -1
- package/locales/fi-FI.esm.min.js +1 -1
- package/locales/fi-FI.min.cjs +1 -1
- package/locales/fi-FI.min.js +1 -1
- package/locales/fr-CA.d.ts +1 -1
- package/locales/fr-CA.esm.min.js +1 -1
- package/locales/fr-CA.min.cjs +1 -1
- package/locales/fr-CA.min.js +1 -1
- package/locales/fr-FR.d.ts +1 -1
- package/locales/fr-FR.esm.min.js +1 -1
- package/locales/fr-FR.min.cjs +1 -1
- package/locales/fr-FR.min.js +1 -1
- package/locales/hu-HU.d.ts +1 -1
- package/locales/hu-HU.esm.min.js +1 -1
- package/locales/hu-HU.min.cjs +1 -1
- package/locales/hu-HU.min.js +1 -1
- package/locales/it-IT.d.ts +1 -1
- package/locales/it-IT.esm.min.js +1 -1
- package/locales/it-IT.min.cjs +1 -1
- package/locales/it-IT.min.js +1 -1
- package/locales/ja-JP.d.ts +1 -1
- package/locales/ja-JP.esm.min.js +1 -1
- package/locales/ja-JP.min.cjs +1 -1
- package/locales/ja-JP.min.js +1 -1
- package/locales/nb-NO.d.ts +1 -1
- package/locales/nb-NO.esm.min.js +1 -1
- package/locales/nb-NO.min.cjs +1 -1
- package/locales/nb-NO.min.js +1 -1
- package/locales/nl-NL.d.ts +1 -1
- package/locales/nl-NL.esm.min.js +1 -1
- package/locales/nl-NL.min.cjs +1 -1
- package/locales/nl-NL.min.js +1 -1
- package/locales/pl-PL.d.ts +1 -1
- package/locales/pl-PL.esm.min.js +1 -1
- package/locales/pl-PL.min.cjs +1 -1
- package/locales/pl-PL.min.js +1 -1
- package/locales/pt-BR.d.ts +1 -1
- package/locales/pt-BR.esm.min.js +1 -1
- package/locales/pt-BR.min.cjs +1 -1
- package/locales/pt-BR.min.js +1 -1
- package/locales/ro-RO.d.ts +1 -1
- package/locales/ro-RO.esm.min.js +1 -1
- package/locales/ro-RO.min.cjs +1 -1
- package/locales/ro-RO.min.js +1 -1
- package/locales/sv-SE.d.ts +1 -1
- package/locales/sv-SE.esm.min.js +1 -1
- package/locales/sv-SE.min.cjs +1 -1
- package/locales/sv-SE.min.js +1 -1
- package/locales/uk-UA.d.ts +1 -1
- package/locales/uk-UA.esm.min.js +1 -1
- package/locales/uk-UA.min.cjs +1 -1
- package/locales/uk-UA.min.js +1 -1
- package/modules/ai.d.ts +1 -1
- package/modules/ai.esm.min.js +1 -1
- package/modules/ai.min.cjs +1 -1
- package/modules/ai.min.js +1 -1
- package/modules/alarms.d.ts +1 -1
- package/modules/alarms.esm.min.js +1 -1
- package/modules/alarms.min.cjs +1 -1
- package/modules/alarms.min.js +1 -1
- package/modules/angular.d.ts +1 -1
- package/modules/angular.esm.min.js +1 -1
- package/modules/angular.min.cjs +1 -1
- package/modules/angular.min.js +1 -1
- package/modules/calendar.d.ts +1 -1
- package/modules/calendar.esm.min.js +1 -1
- package/modules/calendar.min.cjs +1 -1
- package/modules/calendar.min.js +1 -1
- package/modules/chart-alluvial.d.ts +1 -1
- package/modules/chart-alluvial.esm.min.js +1 -1
- package/modules/chart-alluvial.min.cjs +1 -1
- package/modules/chart-alluvial.min.js +1 -1
- package/modules/chart-arc.d.ts +1 -1
- package/modules/chart-arc.esm.min.js +1 -1
- package/modules/chart-arc.min.cjs +1 -1
- package/modules/chart-arc.min.js +1 -1
- package/modules/chart-barrace.d.ts +1 -1
- package/modules/chart-barrace.esm.min.js +1 -1
- package/modules/chart-barrace.min.cjs +1 -1
- package/modules/chart-barrace.min.js +1 -1
- package/modules/chart-bubblemap.d.ts +1 -1
- package/modules/chart-bubblemap.esm.min.js +1 -1
- package/modules/chart-bubblemap.min.cjs +1 -1
- package/modules/chart-bubblemap.min.js +1 -1
- package/modules/chart-bump.d.ts +1 -1
- package/modules/chart-bump.esm.min.js +1 -1
- package/modules/chart-bump.min.cjs +1 -1
- package/modules/chart-bump.min.js +1 -1
- package/modules/chart-calendar.d.ts +1 -1
- package/modules/chart-calendar.esm.min.js +1 -1
- package/modules/chart-calendar.min.cjs +1 -1
- package/modules/chart-calendar.min.js +1 -1
- package/modules/chart-choropleth.d.ts +1 -1
- package/modules/chart-choropleth.esm.min.js +1 -1
- package/modules/chart-choropleth.min.cjs +1 -1
- package/modules/chart-choropleth.min.js +1 -1
- package/modules/chart-decomposition.d.ts +1 -1
- package/modules/chart-decomposition.esm.min.js +1 -1
- package/modules/chart-decomposition.min.cjs +1 -1
- package/modules/chart-decomposition.min.js +1 -1
- package/modules/chart-diverging.d.ts +1 -1
- package/modules/chart-diverging.esm.min.js +1 -1
- package/modules/chart-diverging.min.cjs +1 -1
- package/modules/chart-diverging.min.js +1 -1
- package/modules/chart-dumbbell.d.ts +1 -1
- package/modules/chart-dumbbell.esm.min.js +1 -1
- package/modules/chart-dumbbell.min.cjs +1 -1
- package/modules/chart-dumbbell.min.js +1 -1
- package/modules/chart-fan.d.ts +1 -1
- package/modules/chart-fan.esm.min.js +1 -1
- package/modules/chart-fan.min.cjs +1 -1
- package/modules/chart-fan.min.js +1 -1
- package/modules/chart-forcetree.d.ts +1 -1
- package/modules/chart-forcetree.esm.min.js +1 -1
- package/modules/chart-forcetree.min.cjs +1 -1
- package/modules/chart-forcetree.min.js +1 -1
- package/modules/chart-hexbin.d.ts +1 -1
- package/modules/chart-hexbin.esm.min.js +1 -1
- package/modules/chart-hexbin.min.cjs +1 -1
- package/modules/chart-hexbin.min.js +1 -1
- package/modules/chart-hexmap.d.ts +1 -1
- package/modules/chart-hexmap.esm.min.js +1 -1
- package/modules/chart-hexmap.min.cjs +1 -1
- package/modules/chart-hexmap.min.js +1 -1
- package/modules/chart-icicle.d.ts +1 -1
- package/modules/chart-icicle.esm.min.js +1 -1
- package/modules/chart-icicle.min.cjs +1 -1
- package/modules/chart-icicle.min.js +1 -1
- package/modules/chart-markermap.d.ts +1 -1
- package/modules/chart-markermap.esm.min.js +1 -1
- package/modules/chart-markermap.min.cjs +1 -1
- package/modules/chart-markermap.min.js +1 -1
- package/modules/chart-motion.d.ts +1 -1
- package/modules/chart-motion.esm.min.js +1 -1
- package/modules/chart-motion.min.cjs +1 -1
- package/modules/chart-motion.min.js +1 -1
- package/modules/chart-pack.d.ts +1 -1
- package/modules/chart-pack.esm.min.js +1 -1
- package/modules/chart-pack.min.cjs +1 -1
- package/modules/chart-pack.min.js +1 -1
- package/modules/chart-parallel.d.ts +1 -1
- package/modules/chart-parallel.esm.min.js +1 -1
- package/modules/chart-parallel.min.cjs +1 -1
- package/modules/chart-parallel.min.js +1 -1
- package/modules/chart-pictorial.d.ts +1 -1
- package/modules/chart-pictorial.esm.min.js +1 -1
- package/modules/chart-pictorial.min.cjs +1 -1
- package/modules/chart-pictorial.min.js +1 -1
- package/modules/chart-polararea.d.ts +1 -1
- package/modules/chart-polararea.esm.min.js +1 -1
- package/modules/chart-polararea.min.cjs +1 -1
- package/modules/chart-polararea.min.js +1 -1
- package/modules/chart-polarscatter.d.ts +1 -1
- package/modules/chart-polarscatter.esm.min.js +1 -1
- package/modules/chart-polarscatter.min.cjs +1 -1
- package/modules/chart-polarscatter.min.js +1 -1
- package/modules/chart-pyramid.d.ts +1 -1
- package/modules/chart-pyramid.esm.min.js +1 -1
- package/modules/chart-pyramid.min.cjs +1 -1
- package/modules/chart-pyramid.min.js +1 -1
- package/modules/chart-radialbar.d.ts +1 -1
- package/modules/chart-radialbar.esm.min.js +1 -1
- package/modules/chart-radialbar.min.cjs +1 -1
- package/modules/chart-radialbar.min.js +1 -1
- package/modules/chart-ridgeline.d.ts +1 -1
- package/modules/chart-ridgeline.esm.min.js +1 -1
- package/modules/chart-ridgeline.min.cjs +1 -1
- package/modules/chart-ridgeline.min.js +1 -1
- package/modules/chart-roc.d.ts +1 -1
- package/modules/chart-roc.esm.min.js +1 -1
- package/modules/chart-roc.min.cjs +1 -1
- package/modules/chart-roc.min.js +1 -1
- package/modules/chart-scatter3d.d.ts +1 -1
- package/modules/chart-scatter3d.esm.min.js +1 -1
- package/modules/chart-scatter3d.min.cjs +1 -1
- package/modules/chart-scatter3d.min.js +1 -1
- package/modules/chart-serpentine.d.ts +1 -1
- package/modules/chart-serpentine.esm.min.js +1 -1
- package/modules/chart-serpentine.min.cjs +1 -1
- package/modules/chart-serpentine.min.js +1 -1
- package/modules/chart-slope.d.ts +1 -1
- package/modules/chart-slope.esm.min.js +1 -1
- package/modules/chart-slope.min.cjs +1 -1
- package/modules/chart-slope.min.js +1 -1
- package/modules/chart-spiral.d.ts +1 -1
- package/modules/chart-spiral.esm.min.js +1 -1
- package/modules/chart-spiral.min.cjs +1 -1
- package/modules/chart-spiral.min.js +1 -1
- package/modules/chart-splom.d.ts +1 -1
- package/modules/chart-splom.esm.min.js +1 -1
- package/modules/chart-splom.min.cjs +1 -1
- package/modules/chart-splom.min.js +1 -1
- package/modules/chart-tree.d.ts +1 -1
- package/modules/chart-tree.esm.min.js +1 -1
- package/modules/chart-tree.min.cjs +1 -1
- package/modules/chart-tree.min.js +1 -1
- package/modules/chart-venn.d.ts +1 -1
- package/modules/chart-venn.esm.min.js +1 -1
- package/modules/chart-venn.min.cjs +1 -1
- package/modules/chart-venn.min.js +1 -1
- package/modules/chart-voronoi.d.ts +1 -1
- package/modules/chart-voronoi.esm.min.js +1 -1
- package/modules/chart-voronoi.min.cjs +1 -1
- package/modules/chart-voronoi.min.js +1 -1
- package/modules/chart-waffle.d.ts +1 -1
- package/modules/chart-waffle.esm.min.js +1 -1
- package/modules/chart-waffle.min.cjs +1 -1
- package/modules/chart-waffle.min.js +1 -1
- package/modules/chart-wordcloud.d.ts +1 -1
- package/modules/chart-wordcloud.esm.min.js +1 -1
- package/modules/chart-wordcloud.min.cjs +1 -1
- package/modules/chart-wordcloud.min.js +1 -1
- package/modules/charts.d.ts +1 -1
- package/modules/charts.esm.min.js +1 -1
- package/modules/charts.min.cjs +1 -1
- package/modules/charts.min.js +1 -1
- package/modules/contextmenu.d.ts +1 -1
- package/modules/contextmenu.esm.min.js +1 -1
- package/modules/contextmenu.min.cjs +1 -1
- package/modules/contextmenu.min.js +1 -1
- package/modules/dashboard.d.ts +1 -1
- package/modules/dashboard.esm.min.js +1 -1
- package/modules/dashboard.min.cjs +1 -1
- package/modules/dashboard.min.js +1 -1
- package/modules/data-router.d.ts +1 -1
- package/modules/data-router.esm.min.js +1 -1
- package/modules/data-router.min.cjs +1 -1
- package/modules/data-router.min.js +1 -1
- package/modules/dataview.d.ts +1 -1
- package/modules/dataview.esm.min.js +1 -1
- package/modules/dataview.min.cjs +1 -1
- package/modules/dataview.min.js +1 -1
- package/modules/deckgl.d.ts +1 -1
- package/modules/deckgl.esm.min.js +1 -1
- package/modules/deckgl.min.cjs +1 -1
- package/modules/deckgl.min.js +1 -1
- package/modules/designer.d.ts +1 -1
- package/modules/designer.esm.min.js +1 -1
- package/modules/designer.min.cjs +1 -1
- package/modules/designer.min.js +1 -1
- package/modules/devtools.d.ts +1 -1
- package/modules/devtools.esm.min.js +1 -1
- package/modules/devtools.min.cjs +1 -1
- package/modules/devtools.min.js +1 -1
- package/modules/dhtmlx-compat.d.ts +1 -1
- package/modules/dhtmlx-compat.esm.min.js +1 -1
- package/modules/dhtmlx-compat.min.cjs +1 -1
- package/modules/dhtmlx-compat.min.js +1 -1
- package/modules/form.d.ts +3 -1
- package/modules/form.esm.min.js +22 -22
- package/modules/form.esm.min.js.map +2 -2
- package/modules/form.min.cjs +22 -22
- package/modules/form.min.js +22 -22
- package/modules/form.min.js.map +2 -2
- package/modules/gantt.d.ts +1 -1
- package/modules/gantt.esm.min.js +1 -1
- package/modules/gantt.min.cjs +1 -1
- package/modules/gantt.min.js +1 -1
- package/modules/geo-europe-nuts.d.ts +1 -1
- package/modules/geo-europe-nuts.esm.min.js +1 -1
- package/modules/geo-europe-nuts.min.cjs +1 -1
- package/modules/geo-europe-nuts.min.js +1 -1
- package/modules/geo-uk.d.ts +1 -1
- package/modules/geo-uk.esm.min.js +1 -1
- package/modules/geo-uk.min.cjs +1 -1
- package/modules/geo-uk.min.js +1 -1
- package/modules/geo-us-states.d.ts +1 -1
- package/modules/geo-us-states.esm.min.js +1 -1
- package/modules/geo-us-states.min.cjs +1 -1
- package/modules/geo-us-states.min.js +1 -1
- package/modules/geo-world-110m.d.ts +1 -1
- package/modules/geo-world-110m.esm.min.js +1 -1
- package/modules/geo-world-110m.min.cjs +1 -1
- package/modules/geo-world-110m.min.js +1 -1
- package/modules/geo-world-50m.d.ts +1 -1
- package/modules/geo-world-50m.esm.min.js +1 -1
- package/modules/geo-world-50m.min.cjs +1 -1
- package/modules/geo-world-50m.min.js +1 -1
- package/modules/geometry.d.ts +1 -1
- package/modules/geometry.esm.min.js +1 -1
- package/modules/geometry.min.cjs +1 -1
- package/modules/geometry.min.js +1 -1
- package/modules/htmx.d.ts +1 -1
- package/modules/htmx.esm.min.js +2 -2
- package/modules/htmx.min.cjs +2 -2
- package/modules/htmx.min.js +2 -2
- package/modules/htmx.shared.esm.min.js +1 -1
- package/modules/htmx.shared.min.cjs +1 -1
- package/modules/htmx.shared.min.js +1 -1
- package/modules/kanban.d.ts +1 -1
- package/modules/kanban.esm.min.js +1 -1
- package/modules/kanban.min.cjs +1 -1
- package/modules/kanban.min.js +1 -1
- package/modules/kpi.d.ts +1 -1
- package/modules/kpi.esm.min.js +1 -1
- package/modules/kpi.min.cjs +1 -1
- package/modules/kpi.min.js +1 -1
- package/modules/layout.d.ts +1 -1
- package/modules/layout.esm.min.js +1 -1
- package/modules/layout.min.cjs +1 -1
- package/modules/layout.min.js +1 -1
- package/modules/leaflet.d.ts +1 -1
- package/modules/leaflet.esm.min.js +1 -1
- package/modules/leaflet.min.cjs +1 -1
- package/modules/leaflet.min.js +1 -1
- package/modules/list.d.ts +1 -1
- package/modules/list.esm.min.js +1 -1
- package/modules/list.min.cjs +1 -1
- package/modules/list.min.js +1 -1
- package/modules/listview.d.ts +1 -1
- package/modules/listview.esm.min.js +1 -1
- package/modules/listview.min.cjs +1 -1
- package/modules/listview.min.js +1 -1
- package/modules/mapview.d.ts +1 -1
- package/modules/mapview.esm.min.js +1 -1
- package/modules/mapview.min.cjs +1 -1
- package/modules/mapview.min.js +1 -1
- package/modules/mock-socket.d.ts +1 -1
- package/modules/mock-socket.esm.min.js +1 -1
- package/modules/mock-socket.min.cjs +1 -1
- package/modules/mock-socket.min.js +1 -1
- package/modules/presets.d.ts +1 -1
- package/modules/presets.esm.min.js +1 -1
- package/modules/presets.min.cjs +1 -1
- package/modules/presets.min.js +1 -1
- package/modules/react.d.ts +1 -1
- package/modules/react.esm.min.js +1 -1
- package/modules/react.min.cjs +1 -1
- package/modules/react.min.js +1 -1
- package/modules/recordeditor.d.ts +1 -1
- package/modules/recordeditor.esm.min.js +1 -1
- package/modules/recordeditor.min.cjs +1 -1
- package/modules/recordeditor.min.js +1 -1
- package/modules/scheduler.d.ts +1 -1
- package/modules/scheduler.esm.min.js +1 -1
- package/modules/scheduler.min.cjs +1 -1
- package/modules/scheduler.min.js +1 -1
- package/modules/shell.d.ts +1 -1
- package/modules/shell.esm.min.js +1 -1
- package/modules/shell.min.cjs +1 -1
- package/modules/shell.min.js +1 -1
- package/modules/sidebar.d.ts +1 -1
- package/modules/sidebar.esm.min.js +1 -1
- package/modules/sidebar.min.cjs +1 -1
- package/modules/sidebar.min.js +1 -1
- package/modules/svelte.d.ts +1 -1
- package/modules/svelte.esm.min.js +1 -1
- package/modules/svelte.min.cjs +1 -1
- package/modules/svelte.min.js +1 -1
- package/modules/tabs.d.ts +1 -1
- package/modules/tabs.esm.min.js +1 -1
- package/modules/tabs.min.cjs +1 -1
- package/modules/tabs.min.js +1 -1
- package/modules/toolbar.d.ts +1 -1
- package/modules/toolbar.esm.min.js +1 -1
- package/modules/toolbar.min.cjs +1 -1
- package/modules/toolbar.min.js +1 -1
- package/modules/tree.d.ts +1 -1
- package/modules/tree.esm.min.js +1 -1
- package/modules/tree.min.cjs +1 -1
- package/modules/tree.min.js +1 -1
- package/modules/vue.d.ts +1 -1
- package/modules/vue.esm.min.js +1 -1
- package/modules/vue.min.cjs +1 -1
- package/modules/vue.min.js +1 -1
- package/modules/webcomponent.d.ts +1 -1
- package/modules/webcomponent.esm.min.js +2 -2
- package/modules/webcomponent.min.cjs +2 -2
- package/modules/webcomponent.min.js +2 -2
- package/package.json +1 -1
package/modules/form.esm.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.114.
|
|
2
|
+
* Lattice Grid 1.114.3, form module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
6
|
-
var
|
|
6
|
+
var ir=Object.create(null),lr=Object.create(null);function Ie(S,te){ir[S]=te}function sr(S){var te=lr[S];if(te)return te;var we=Object.create(null);lr[S]=we;var H=ir[S];if(!H)throw new Error("[lattice] missing module: "+S);return H(we,sr),we}Ie("packages/modules/form/scheme.js",function(S,te){"use strict";Object.defineProperty(S,"ACCENT_IS_DEFAULT",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"rootDefaultsCss",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"DARK_ACCENT_FAMILY",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"darkAccentCss",{enumerable:!0,get:function(){return e}});const we="style(--lattice-accent: #1a6bc7) or style(--lattice-accent: #4e9bea)";function H(){return`
|
|
7
7
|
@layer lattice{
|
|
8
8
|
:where(:root,:host){
|
|
9
9
|
--lattice-border-color:#dfe3e6;
|
|
@@ -22,8 +22,8 @@ var ar=Object.create(null),ir=Object.create(null);function Ie(S,te){ar[S]=te}fun
|
|
|
22
22
|
--lattice-font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
|
|
23
23
|
}
|
|
24
24
|
}`}const L="--lattice-accent:#4e9bea; --lattice-accent-contrast:#06101b; --lattice-focus-color:#6cb0f2;";function e(E,I=L){return`
|
|
25
|
-
@scope ([data-theme="dark"]){ @container ${
|
|
26
|
-
@media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ @container ${
|
|
25
|
+
@scope ([data-theme="dark"]){ @container ${we}{ :scope${E},${E}{ ${I} } } }
|
|
26
|
+
@media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ @container ${we}{ :scope${E},${E}{ ${I} } } } }`}}),Ie("packages/modules/form/styles.js",function(S,te){"use strict";Object.defineProperty(S,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"css",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"injectStyles",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"injectColsBreakpoint",{enumerable:!0,get:function(){return v}});const we=te("packages/modules/form/scheme.js"),H=we.rootDefaultsCss,L=we.darkAccentCss,e="lat-form",E="lat-cols-never",I="data-lattice-form-styles",z=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__control > select`,`.${e}__control > button`,`:where(.${e}__custom) :where(input, textarea, select, button).${e}__native`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`,`.${e}__layer-host input`,`.${e}__layer-host textarea`,`.${e}__layer-host select`,`.${e}__layer-host button`].join(", ")})`,T=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__control > select`,`:where(.${e}__custom) :where(input, textarea, select, button).${e}__native`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`,`.${e}__choice input`,`.${e}__layer-host input`,`.${e}__layer-host textarea`,`.${e}__layer-host select`].join(", ")})`,G=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__control > select`,`:where(.${e}__custom) :where(input, textarea, select, button).${e}__native`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`].join(", ")})`,C=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`:where(.${e}__custom) :where(input, textarea, select, button).${e}__native`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`].join(", ")})`,A=`:is(${[`.${e}__control > input`,`.${e}__control > textarea`,`.${e}__control > select`,`.${e}__control > button`,`.${e}__password input`,`.${e}__number`,`.${e}__datepicker-input`,`.${e}__time-input`,`.${e}__daterange-input`,".lat-select__trigger",".lat-combo__control",`.${e}__chips`,`.${e}__file-zone`,`.${e}__richtext`,`.${e}__toggle-field`,`.${e}__rating`,`.${e}__stage`,`.${e}__color-field`,`.${e}__otp-input`,`.${e}__listbox`].join(", ")})`;function r(){return`
|
|
27
27
|
/* The shared top-level layer host (BACKLOG-0002291): select, combo and the
|
|
28
28
|
date picker each reparent their own popup in here while it is open, so an
|
|
29
29
|
ancestor's \`overflow: hidden\` or fixed height never clips it. One host per
|
|
@@ -306,7 +306,7 @@ ${z}:focus-visible,
|
|
|
306
306
|
.${e}__choice input:focus-visible{
|
|
307
307
|
outline:2px solid var(--lattice-form-focus-ring); outline-offset:-1px;
|
|
308
308
|
}
|
|
309
|
-
${
|
|
309
|
+
${T}:disabled{
|
|
310
310
|
color:var(--lattice-disabled-foreground);
|
|
311
311
|
background:var(--lattice-disabled-background);
|
|
312
312
|
border-color:var(--lattice-disabled-border);
|
|
@@ -1587,13 +1587,13 @@ ${C}[readonly]{
|
|
|
1587
1587
|
@media (prefers-reduced-motion: reduce){ .${e}__slider-tooltip{ transition:none; } }
|
|
1588
1588
|
${H()}
|
|
1589
1589
|
${L(`.${e}[data-lattice-standalone]`)}
|
|
1590
|
-
`.trim()}function u(h){const c=h&&h.documentElement;if(!c||c.getAttribute(I))return;c.setAttribute(I,"1");const l=h.createElement("style");l.textContent=r(),(h.head||h.body||c).appendChild(l)}function v(h,c){const l=`lat-cols-bp-${String(c).replace(/[^0-9]/g,"")}`,t=`data-lattice-cols-breakpoint-${l}`,p=h&&h.documentElement;if(p&&!p.querySelector(`style[${t}]`)){const P=h.createElement("style");P.setAttribute(t,"1"),P.textContent=`@container ${l} (max-width:${c}px){.${e}__cols > *{flex:1 1 100%}}`,(h.head||h.body||p).appendChild(P)}return l}}),Ie("packages/modules/form/controls/registry.js",function(S,te){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"resolveControl",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"controlTypes",{enumerable:!0,get:function(){return e}});const xe=new Map;function H(E,I){xe.set(E,I)}function L(E){return xe.get(E)||null}function e(){return[...xe.keys()]}}),Ie("packages/modules/form/validation.js",function(S,te){"use strict";Object.defineProperty(S,"VALIDATION_MODES",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"BUILTIN_RULES",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"resolveValidationMode",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"validateValue",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"normalizeHookResult",{enumerable:!0,get:function(){return A}});const xe=Object.freeze(["change","blur","submit"]),H=Object.freeze(["email","number","integer","url"]),L=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function e(r){return r==null||r===""||r===!1||Array.isArray(r)&&r.length===0}function E(r){return xe.includes(r)?r:"submit"}function I(r){return Object.prototype.toString.call(r)==="[object RegExp]"}function z(r,u){if(r==="email")return typeof u=="string"&&L.test(u);if(r==="number")return Number.isFinite(Number(u));if(r==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(r==="url"){if(typeof u!="string")return!1;try{const v=new URL(u);return v.protocol==="http:"||v.protocol==="https:"}catch{return!1}}return!0}function N(r,u){return typeof r.errorMessage=="string"&&r.errorMessage!==""?r.errorMessage:u}function G(r,u,v,h){let c;try{c=r(u,v)}catch{return{code:"custom",message:N(v,h("form.validation.custom"))}}return c===!0||c===void 0||c===null?null:c===!1?{code:"custom",message:N(v,h("form.validation.custom"))}:{code:"custom",message:String(c)}}function C(r,u,v,h){if((r.required===!0||h===!0)&&e(u))return{code:"required",message:N(r,v("form.validation.required"))};const c=r.validation;return c==null?null:typeof c=="function"?G(c,u,r,v):I(c)?e(u)||c.test(String(u))?null:{code:"pattern",message:N(r,v("form.validation.pattern"))}:typeof c=="string"&&H.includes(c)?e(u)||z(c,u)?null:{code:c,message:N(r,v(`form.validation.${c}`))}:null}function A(r,u,v){return r==null||r===!0?null:r===!1?{code:"custom",message:N(u,v("form.validation.custom"))}:typeof r=="string"?{code:"custom",message:r}:typeof r=="object"?{code:r.code||"custom",message:r.message!=null?String(r.message):N(u,v("form.validation.custom"))}:null}}),Ie("packages/modules/form/model.js",function(S,te){"use strict";Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"DENSITIES",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"CONTROL_TYPES",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"cssSize",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"resolveSize",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"resolveLabelPosition",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"resolveDensity",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"resolveColsBreakpoint",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"axisOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"normalizeItem",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"normalizeBlock",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"resolveConfig",{enumerable:!0,get:function(){return c}});const H=te("packages/modules/form/validation.js").resolveValidationMode;function L(t){return t!==null&&typeof t=="object"}function e(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const E=Object.freeze(["compact","standard","comfortable"]),I=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial","togglegroup","time","container","avatar","grid"]);function z(t){return typeof t=="number"?`${t}px`:String(t)}function N(t){return t==="content"?"content":z(t)}function G(t){return t==="left"||t==="hidden"?t:"top"}function C(t){return E.includes(t)?t:"standard"}function A(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function r(t){const p=t.columnGap!=null?t.columnGap:t.gap,P=t.rowGap!=null?t.rowGap:t.gap;return{columnGap:p==null?null:z(p),rowGap:P==null?null:z(P)}}function u(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 v(t,p){const P=t.text!=null&&t.type===void 0,o=P?"text":t.type!=null&&t.type!==""?String(t.type):"input",y=P?t.text:t.value,V={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:o,label:t.label,labelPosition:t.labelPosition==null?null:G(t.labelPosition),hiddenLabel:t.hiddenLabel===!0,labelWidth:t.labelWidth,controlMinWidth:t.controlMinWidth,requiredHint:t.requiredHint,width:t.width,height:t.height,padding:t.padding==null?null:z(t.padding),placeholder:t.placeholder,helpMessage:t.helpMessage,hidden:t.hidden===!0,disabled:t.disabled===!0,readOnly:t.readOnly===!0,tooltip:t.tooltip,lockIcon:t.lockIcon,addons:t.addons,value:y,subtype:t.subtype,step:t.step,min:t.min,max:t.max,rows:t.rows,options:t.options,mode:t.mode,locale:t.locale,timeZone:t.timeZone,css:t.css,visibleWhen:t.visibleWhen,readOnlyWhen:t.readOnlyWhen,requiredWhen:t.requiredWhen,required:t.required===!0,validation:t.validation,errorMessage:t.errorMessage,successMessage:t.successMessage,preMessage:t.preMessage,validationMode:H(t.validationMode),props:L(t.props)?Object.assign({},t.props):{},path:p};for(const s of Object.keys(t))!(s in V)&&s!=="text"&&s!=="value"&&s!=="type"&&(V.props[s]=t[s]);return V}function h(t,p){if(!L(t))return null;if(t.fieldset!=null){const o=L(t.fieldset)?t.fieldset:t,y=L(t.fieldset)?t.fieldset.legend:t.fieldset,V=u(o),s=V==="items"?o.items:V==="rows"?o.rows:V==="cols"?o.cols:[];return{kind:"fieldset",name:o.name!=null&&o.name!==""?String(o.name):null,legend:y==null?null:String(y),axis:V,spacing:o.spacing==null?null:z(o.spacing),labelPosition:o.labelPosition==null?null:G(o.labelPosition),labelWidth:o.labelWidth,controlMinWidth:o.controlMinWidth,padding:o.padding==null?null:z(o.padding),wrap:o.wrap===!0,...r(o),width:o.width,blocks:s.filter(L).map((d,i)=>h(d,`${p}/${i}`)).filter(Boolean),css:o.css,hidden:o.hidden===!0}}if(t.container!=null){const o=L(t.container)?t.container:t,y=u(o),V=y==="items"?o.items:y==="rows"?o.rows:y==="cols"?o.cols:[];return{kind:"container",axis:y,spacing:o.spacing==null?null:z(o.spacing),labelPosition:o.labelPosition==null?null:G(o.labelPosition),labelWidth:o.labelWidth,controlMinWidth:o.controlMinWidth,padding:o.padding==null?null:z(o.padding),wrap:o.wrap===!0,...r(o),width:o.width,blocks:V.filter(L).map((s,d)=>h(s,`${p}/${d}`)).filter(Boolean),css:o.css,hidden:o.hidden===!0}}if(t.panel!=null){const o=L(t.panel)?t.panel:{},y=L(t.panel)&&u(t.panel)?t.panel:t,V=u(y),s=V==="items"?y.items:V==="rows"?y.rows:V==="cols"?y.cols:[],d=Array.isArray(o.actions)?o.actions.filter(L).map(i=>({icon:i.icon,ariaLabel:i.ariaLabel!=null&&i.ariaLabel!==""?String(i.ariaLabel):null,onClick:typeof i.onClick=="function"?i.onClick:null})):[];return{kind:"panel",title:o.title!=null&&o.title!==""?String(o.title):null,subtitle:o.subtitle!=null&&o.subtitle!==""?String(o.subtitle):null,actions:d,collapsible:o.collapsible===!0,axis:V,spacing:y.spacing==null?null:z(y.spacing),labelPosition:y.labelPosition==null?null:G(y.labelPosition),labelWidth:y.labelWidth,controlMinWidth:y.controlMinWidth,padding:y.padding==null?null:z(y.padding),wrap:y.wrap===!0,...r(y),width:y.width,blocks:s.filter(L).map((i,m)=>h(i,`${p}/${m}`)).filter(Boolean),css:y.css,hidden:y.hidden===!0}}const P=u(t);if(P){const o=P==="items"?t.items:P==="rows"?t.rows:t.cols;return{kind:"container",axis:P,spacing:t.spacing==null?null:z(t.spacing),labelPosition:t.labelPosition==null?null:G(t.labelPosition),labelWidth:t.labelWidth,controlMinWidth:t.controlMinWidth,padding:t.padding==null?null:z(t.padding),wrap:t.wrap===!0,...r(t),width:t.width,blocks:o.filter(L).map((y,V)=>h(y,`${p}/${V}`)).filter(Boolean),css:t.css,hidden:t.hidden===!0}}return t.spacer===!0||t.type==="spacer"?{kind:"spacer",width:t.width,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}:v(t,p)}function c(t={}){const p=L(t)?t:{},P=Array.isArray(p.steps)?p.steps.filter(L).map((i,m)=>l(i,m)).filter(Boolean):[],o=P.length>0,y=!o&&Array.isArray(p.rows)&&p.rows.length,V=!o&&!y&&Array.isArray(p.cols)&&p.cols.length,s=y||o?"rows":"cols",d=o?[]:y?p.rows:V?p.cols:[];return{axis:s,density:C(p.density),css:p.css,messages:p.messages,createGrid:typeof p.createGrid=="function"?p.createGrid:null,colsBreakpoint:A(p.colsBreakpoint),wrap:p.wrap===!0,...r(p),spacing:p.spacing==null?null:z(p.spacing),labelGap:p.labelGap==null?null:z(p.labelGap),labelPosition:p.labelPosition==null?null:G(p.labelPosition),labelWidth:p.labelWidth,controlMinWidth:p.controlMinWidth,requiredHint:p.requiredHint,blocks:d.filter(L).map((i,m)=>h(i,String(m))).filter(Boolean),steps:P,stepOrientation:p.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:p.validateSteps!==!1}}function l(t,p){const o=(Array.isArray(t.rows)?t.rows:[]).filter(L).map((y,V)=>h(y,`step${p}/${V}`)).filter(Boolean);return o.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${p}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:o,css:t.css}}}),Ie("packages/modules/form/ids.js",function(S,te){"use strict";Object.defineProperty(S,"nextId",{enumerable:!0,get:function(){return H}});let xe=0;function H(L){return xe+=1,`${L}-${xe}`}}),Ie("packages/modules/form/state.js",function(S,te){"use strict";Object.defineProperty(S,"applyBooleanInputState",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"guardBooleanInput",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"syncRootAria",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"syncRecordState",{enumerable:!0,get:function(){return e}});function xe(E,I,z){E.disabled=I===!0,E.__latReadOnly=z===!0,z===!0?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")}function H(E){const I=()=>E.__latReadOnly===!0,z=A=>{I()&&A.preventDefault()},N=A=>{I()&&(A.preventDefault(),A.stopPropagation())},G=A=>{I()&&(A.key===" "||A.key==="Enter")&&A.preventDefault()},C=A=>{I()&&A.key===" "&&A.preventDefault()};E.addEventListener("pointerdown",z),E.addEventListener("click",N),E.addEventListener("keydown",G),E.addEventListener("keyup",C)}function L(E,I,z){I?E.setAttribute("aria-disabled","true"):E.removeAttribute("aria-disabled"),z?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")}function e(E){const I=E.item,z=I.disabled===!0,N=I.readOnly===!0||E.ruleReadOnly===!0;E.controlWrap&&(E.controlWrap.setAttribute("data-disabled",z?"true":"false"),E.controlWrap.setAttribute("data-readonly",N?"true":"false")),E.def.state(E.control,{...I,readOnly:N}),typeof E.syncLock=="function"&&E.syncLock(),typeof E.syncAddons=="function"&&E.syncAddons()}}),Ie("packages/modules/form/group-rules.js",function(S,te){"use strict";Object.defineProperty(S,"attachRuleResolver",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"detachRuleResolver",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"ruleResolverFor",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"makeRuleResolver",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"reapplyMembers",{enumerable:!0,get:function(){return I}});const xe=new WeakMap;function H(z,N){xe.set(z,N)}function L(z){xe.delete(z)}function e(z){return xe.get(z)}function E(z){const{owners:N,byId:G,warnOnce:C}=z;return function(r,u){if(r==null||typeof r!="object")return;const v=r.name;if(r.form!=null){const c=G.get(r.form);if(!c){C(`form.group.unknown-member:${String(r.form)}`,`form group: a rule pins the member "${r.form}", but no member has that id; the rule reads an empty value.`);return}return v!=null?c.form.getValue()[v]:void 0}if(v==null)return;if(Object.prototype.hasOwnProperty.call(u,v))return u[v];const h=N.get(String(v));if(h)return h.form.getValue()[v]}}function I(z){for(const N of z)N.form&&typeof N.form.__reapplyRules=="function"&&N.form.__reapplyRules()}}),Ie("packages/modules/form/rules.js",function(S,te){"use strict";Object.defineProperty(S,"evalRule",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"applyRules",{enumerable:!0,get:function(){return N}});const H=te("packages/modules/form/model.js").isEmpty,e=te("packages/modules/form/state.js").syncRecordState,I=te("packages/modules/form/group-rules.js").ruleResolverFor;function z(C,A,r){if(C==null)return null;if(typeof C=="function")return!!C(A);if(typeof C=="boolean")return C;if(typeof C=="object"){const u=r?r(C,A):C.name!=null?A[C.name]:void 0;if(typeof C.fn=="function")return!!C.fn(u,A);let v=!0,h=!1;return Object.prototype.hasOwnProperty.call(C,"equals")&&(h=!0,v=v&&u===C.equals),Object.prototype.hasOwnProperty.call(C,"in")&&(h=!0,v=v&&Array.isArray(C.in)&&C.in.includes(u)),Object.prototype.hasOwnProperty.call(C,"empty")&&(h=!0,v=v&&H(u)===!!C.empty),h?v:!1}return!1}function N(C){const A={};for(const u of C.order)if(u.item.name!=null&&(A[u.item.name]=u.value),u.mapped)for(const v of u.mapped)A[v.item.name]=v.value;const r=C.form?I(C.form):void 0;for(const u of C.order){const v=u.item;u.ruleHidden=z(v.visibleWhen,A,r)===!1,u.ruleReadOnly=z(v.readOnlyWhen,A,r)===!0,u.ruleRequired=z(v.requiredWhen,A,r)===!0,u.el.hidden=u.hidden||u.ruleHidden,e(u);const h=v.required===!0||u.ruleRequired,c=u.labelEl!=null&&u.labelPosition!=="hidden",l=u.placeholderEl||u.control;h?l.setAttribute("aria-required","true"):l.removeAttribute("aria-required"),h&&c?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),G(u,h,c,t=>C.t(t))}}function G(C,A,r,u){const v=C.placeholderEl;if(!v)return;const h=C.placeholderBase;if(A&&!r&&h!==""){const c=C.requiredHint,l=c===!1?"":typeof c=="string"?u(c):" *";v.placeholder=h+l}else v.placeholder=h}}),Ie("packages/modules/form/enter-submit.js",function(S,te){"use strict";Object.defineProperty(S,"attachEnterSubmit",{enumerable:!0,get:function(){return z}});function xe(N){const G=N.control;if(!G)return null;const C=N.item&&N.item.type;return C==="input"?G.__latPassword?G.__latPassword.input:G:C==="number"?G.__latNumber?G.__latNumber.input:G:(C==="datepicker"||C==="daterange")&&G.__input||null}function H(N,G){for(const C of N.order){const A=C.control;if(A&&(A===G||typeof A.contains=="function"&&A.contains(G)))return C}return null}function L(N,G){const C=N.item&&N.item.type;if(C==="otp"){const r=N.control&&N.control.__latOtp;return!r||!Array.isArray(r.boxes)||r.boxes.length===0?!1:G===r.boxes[r.boxes.length-1]}if(C==="combo"||C==="select")return!1;const A=xe(N);if(!A||G!==A)return!1;if(C==="input"||C==="number")return!0;if(C==="datepicker"||C==="daterange"){const r=N.control&&N.control.__popup;return!r||r.hidden!==!1}return!1}function e(N){for(const G of N.order){if(G.hidden)continue;const C=G.item&&G.item.type;if(C==="button"){const A=G.control&&G.control.__latButton;if(A&&A.buttonType==="submit")return G.control}else if(C==="buttons"){const A=G.control&&G.control.children;if(!A)continue;for(const r of A){const u=r&&r.__latButton;if(u&&u.buttonType==="submit")return r}}}return null}function E(N,G){const C=G&&G.defaultView,A=C&&(C.MouseEvent||C.Event),r=A?new A("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};N.dispatchEvent(r)}function I(N,G,C){const A=N.doc,r=A&&A.defaultView,u=xe(G)||C;if(!u||typeof u.dispatchEvent!="function")return!1;const v=r&&(r.FocusEvent||r.Event);v&&u.dispatchEvent(new v("blur",{bubbles:!1}));const h=G.def,c=h&&typeof h.read=="function"?h.read(G.control,G.item):void 0;if(c===void 0||c===G.value)return!1;const l=r&&r.Event;return l?u.dispatchEvent(new l("change",{bubbles:!0})):u.dispatchEvent({type:"change",bubbles:!0,target:u}),!0}function z(N){const G=C=>{if(C.key!=="Enter"||C.altKey||C.ctrlKey||C.metaKey||C.shiftKey||C.isComposing)return;const A=C.target;if(!A)return;const r=H(N,A);if(!r||!L(r,A))return;const u=e(N);if(!u)return;C.preventDefault(),I(N,r,A)?Promise.resolve().then(()=>E(u,N.doc)):E(u,N.doc)};N.el.addEventListener("keydown",G),N.disposers.push(()=>N.el.removeEventListener("keydown",G))}}),Ie("packages/modules/form/stepper.js",function(S,te){"use strict";Object.defineProperty(S,"createStepper",{enumerable:!0,get:function(){return e}});const H=te("packages/modules/form/styles.js").NS;function L(E,I,z){return Math.min(z,Math.max(I,E))}function e(E,I){const z=I.doc,N=I.steps||[],G=I.t||(o=>o),C=I.orientation==="vertical"?"vertical":"horizontal";let A=L(Number(I.active)||0,0,Math.max(0,N.length-1));const r=[];E.className=`${H}__stepper ${H}__stepper--${C}`,E.setAttribute("data-orientation",C),E.setAttribute("role","navigation"),E.setAttribute("aria-label",G("form.steps"));const u=z.createElement("ol");u.className=`${H}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",C),E.appendChild(u);let v=[];const h=o=>r[o]?r[o]:o<A?"complete":o===A?"active":"pending",c=o=>o<=A+1,l=()=>{u.textContent="",v=N.map((o,y)=>{const V=h(y),s=z.createElement("li");s.className=`${H}__stepper-item is-${V}`+(y===A?" is-active":"")+(c(y)?"":" is-locked");const d=z.createElement("button");d.type="button",d.className=`${H}__stepper-step`,d.setAttribute("role","tab"),d.setAttribute("aria-selected",y===A?"true":"false"),y===A&&d.setAttribute("aria-current","step"),d.tabIndex=y===A?0:-1,d.setAttribute("aria-disabled",c(y)?"false":"true");const i=z.createElement("span");i.className=`${H}__stepper-marker`,i.setAttribute("aria-hidden","true"),i.textContent=V==="complete"?"✓":V==="error"?"!":String(y+1),d.appendChild(i);const m=z.createElement("span");return m.className=`${H}__stepper-label`,m.textContent=o.label!=null&&o.label!==""?o.label:`${G("form.step")} ${y+1}`,d.appendChild(m),s.appendChild(d),u.appendChild(s),d})},t=o=>{typeof I.onGoTo=="function"&&c(o)&&I.onGoTo(o)},p=o=>{const y=o.target&&o.target.closest?o.target.closest(`.${H}__stepper-step`):null;if(!y||!u.contains(y))return;const V=v.indexOf(y);V>=0&&t(V)},P=o=>{const y=o.target&&o.target.closest?o.target.closest(`.${H}__stepper-step`):null;if(!y||!u.contains(y))return;const V=N.length;let s=v.indexOf(y);if(s<0)return;if(o.key==="ArrowRight"||o.key==="ArrowDown")s=(s+1)%V;else if(o.key==="ArrowLeft"||o.key==="ArrowUp")s=(s-1+V)%V;else if(o.key==="Home")s=0;else if(o.key==="End")s=V-1;else if(o.key==="Enter"||o.key===" "){o.preventDefault(),t(s);return}else return;o.preventDefault();const d=v[s];d&&d.focus()};return u.addEventListener("click",p),u.addEventListener("keydown",P),l(),{el:E,setActive(o){A=L(Number(o)||0,0,Math.max(0,N.length-1)),l()},setStatus(o,y){r[o]=y,l()},statusOf:h}}}),Ie("packages/core/src/internal/icon-builtins.js",function(S,te){"use strict";Object.defineProperty(S,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"normaliseIcon",{enumerable:!0,get:function(){return H}});const xe={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"},ellipsis:{viewBox:"0 0 16 16",paths:["M3 6.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z"]},ellipsisVertical:{viewBox:"0 0 16 16",paths:["M6.5 3a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm0 5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm0 5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Z"]},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 H(L){return typeof L=="string"?{viewBox:"0 0 16 16",paths:[L],paint:"fill"}:Array.isArray(L)?{viewBox:"0 0 16 16",paths:L.slice(),paint:"fill"}:{viewBox:L&&L.viewBox||"0 0 16 16",paths:L&&Array.isArray(L.paths)?L.paths.slice():L&&L.path?[L.path]:[],paint:L&&L.paint==="stroke"?"stroke":"fill"}}}),Ie("packages/modules/form/controls/field-icon.js",function(S,te){"use strict";Object.defineProperty(S,"fieldIconStylesheet",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"injectFieldIconStyles",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"makeFieldIcon",{enumerable:!0,get:function(){return z}});const H=te("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,L="http://www.w3.org/2000/svg",e="data-lattice-form-field-icon-styles";function E(){return`
|
|
1590
|
+
`.trim()}function u(h){const c=h&&h.documentElement;if(!c||c.getAttribute(I))return;c.setAttribute(I,"1");const l=h.createElement("style");l.textContent=r(),(h.head||h.body||c).appendChild(l)}function v(h,c){const l=`lat-cols-bp-${String(c).replace(/[^0-9]/g,"")}`,t=`data-lattice-cols-breakpoint-${l}`,p=h&&h.documentElement;if(p&&!p.querySelector(`style[${t}]`)){const P=h.createElement("style");P.setAttribute(t,"1"),P.textContent=`@container ${l} (max-width:${c}px){.${e}__cols > *{flex:1 1 100%}}`,(h.head||h.body||p).appendChild(P)}return l}}),Ie("packages/modules/form/controls/registry.js",function(S,te){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"resolveControl",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"controlTypes",{enumerable:!0,get:function(){return e}});const we=new Map;function H(E,I){we.set(E,I)}function L(E){return we.get(E)||null}function e(){return[...we.keys()]}}),Ie("packages/modules/form/validation.js",function(S,te){"use strict";Object.defineProperty(S,"VALIDATION_MODES",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"BUILTIN_RULES",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"resolveValidationMode",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"validateValue",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"normalizeHookResult",{enumerable:!0,get:function(){return A}});const we=Object.freeze(["change","blur","submit"]),H=Object.freeze(["email","number","integer","url"]),L=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function e(r){return r==null||r===""||r===!1||Array.isArray(r)&&r.length===0}function E(r){return we.includes(r)?r:"submit"}function I(r){return Object.prototype.toString.call(r)==="[object RegExp]"}function z(r,u){if(r==="email")return typeof u=="string"&&L.test(u);if(r==="number")return Number.isFinite(Number(u));if(r==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(r==="url"){if(typeof u!="string")return!1;try{const v=new URL(u);return v.protocol==="http:"||v.protocol==="https:"}catch{return!1}}return!0}function T(r,u){return typeof r.errorMessage=="string"&&r.errorMessage!==""?r.errorMessage:u}function G(r,u,v,h){let c;try{c=r(u,v)}catch{return{code:"custom",message:T(v,h("form.validation.custom"))}}return c===!0||c===void 0||c===null?null:c===!1?{code:"custom",message:T(v,h("form.validation.custom"))}:{code:"custom",message:String(c)}}function C(r,u,v,h){if((r.required===!0||h===!0)&&e(u))return{code:"required",message:T(r,v("form.validation.required"))};const c=r.validation;return c==null?null:typeof c=="function"?G(c,u,r,v):I(c)?e(u)||c.test(String(u))?null:{code:"pattern",message:T(r,v("form.validation.pattern"))}:typeof c=="string"&&H.includes(c)?e(u)||z(c,u)?null:{code:c,message:T(r,v(`form.validation.${c}`))}:null}function A(r,u,v){return r==null||r===!0?null:r===!1?{code:"custom",message:T(u,v("form.validation.custom"))}:typeof r=="string"?{code:"custom",message:r}:typeof r=="object"?{code:r.code||"custom",message:r.message!=null?String(r.message):T(u,v("form.validation.custom"))}:null}}),Ie("packages/modules/form/model.js",function(S,te){"use strict";Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"DENSITIES",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"CONTROL_TYPES",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"cssSize",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"resolveSize",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"resolveLabelPosition",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"resolveDensity",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"resolveColsBreakpoint",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"axisOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"normalizeItem",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"normalizeBlock",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"resolveConfig",{enumerable:!0,get:function(){return c}});const H=te("packages/modules/form/validation.js").resolveValidationMode;function L(t){return t!==null&&typeof t=="object"}function e(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const E=Object.freeze(["compact","standard","comfortable"]),I=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial","togglegroup","time","container","avatar","grid"]);function z(t){return typeof t=="number"?`${t}px`:String(t)}function T(t){return t==="content"?"content":z(t)}function G(t){return t==="left"||t==="hidden"?t:"top"}function C(t){return E.includes(t)?t:"standard"}function A(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function r(t){const p=t.columnGap!=null?t.columnGap:t.gap,P=t.rowGap!=null?t.rowGap:t.gap;return{columnGap:p==null?null:z(p),rowGap:P==null?null:z(P)}}function u(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 v(t,p){const P=t.text!=null&&t.type===void 0,o=P?"text":t.type!=null&&t.type!==""?String(t.type):"input",y=P?t.text:t.value,V={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:o,label:t.label,labelPosition:t.labelPosition==null?null:G(t.labelPosition),hiddenLabel:t.hiddenLabel===!0,labelWidth:t.labelWidth,controlMinWidth:t.controlMinWidth,requiredHint:t.requiredHint,width:t.width,height:t.height,padding:t.padding==null?null:z(t.padding),placeholder:t.placeholder,helpMessage:t.helpMessage,hidden:t.hidden===!0,disabled:t.disabled===!0,readOnly:t.readOnly===!0,tooltip:t.tooltip,lockIcon:t.lockIcon,addons:t.addons,value:y,subtype:t.subtype,step:t.step,min:t.min,max:t.max,rows:t.rows,options:t.options,mode:t.mode,locale:t.locale,timeZone:t.timeZone,css:t.css,visibleWhen:t.visibleWhen,readOnlyWhen:t.readOnlyWhen,requiredWhen:t.requiredWhen,required:t.required===!0,validation:t.validation,errorMessage:t.errorMessage,successMessage:t.successMessage,preMessage:t.preMessage,validationMode:H(t.validationMode),props:L(t.props)?Object.assign({},t.props):{},path:p};for(const s of Object.keys(t))!(s in V)&&s!=="text"&&s!=="value"&&s!=="type"&&(V.props[s]=t[s]);return V}function h(t,p){if(!L(t))return null;if(t.fieldset!=null){const o=L(t.fieldset)?t.fieldset:t,y=L(t.fieldset)?t.fieldset.legend:t.fieldset,V=u(o),s=V==="items"?o.items:V==="rows"?o.rows:V==="cols"?o.cols:[];return{kind:"fieldset",name:o.name!=null&&o.name!==""?String(o.name):null,legend:y==null?null:String(y),axis:V,spacing:o.spacing==null?null:z(o.spacing),labelPosition:o.labelPosition==null?null:G(o.labelPosition),labelWidth:o.labelWidth,controlMinWidth:o.controlMinWidth,padding:o.padding==null?null:z(o.padding),wrap:o.wrap===!0,...r(o),width:o.width,blocks:s.filter(L).map((d,i)=>h(d,`${p}/${i}`)).filter(Boolean),css:o.css,hidden:o.hidden===!0}}if(t.container!=null){const o=L(t.container)?t.container:t,y=u(o),V=y==="items"?o.items:y==="rows"?o.rows:y==="cols"?o.cols:[];return{kind:"container",axis:y,spacing:o.spacing==null?null:z(o.spacing),labelPosition:o.labelPosition==null?null:G(o.labelPosition),labelWidth:o.labelWidth,controlMinWidth:o.controlMinWidth,padding:o.padding==null?null:z(o.padding),wrap:o.wrap===!0,...r(o),width:o.width,blocks:V.filter(L).map((s,d)=>h(s,`${p}/${d}`)).filter(Boolean),css:o.css,hidden:o.hidden===!0}}if(t.panel!=null){const o=L(t.panel)?t.panel:{},y=L(t.panel)&&u(t.panel)?t.panel:t,V=u(y),s=V==="items"?y.items:V==="rows"?y.rows:V==="cols"?y.cols:[],d=Array.isArray(o.actions)?o.actions.filter(L).map(i=>({icon:i.icon,ariaLabel:i.ariaLabel!=null&&i.ariaLabel!==""?String(i.ariaLabel):null,onClick:typeof i.onClick=="function"?i.onClick:null})):[];return{kind:"panel",title:o.title!=null&&o.title!==""?String(o.title):null,subtitle:o.subtitle!=null&&o.subtitle!==""?String(o.subtitle):null,actions:d,collapsible:o.collapsible===!0,axis:V,spacing:y.spacing==null?null:z(y.spacing),labelPosition:y.labelPosition==null?null:G(y.labelPosition),labelWidth:y.labelWidth,controlMinWidth:y.controlMinWidth,padding:y.padding==null?null:z(y.padding),wrap:y.wrap===!0,...r(y),width:y.width,blocks:s.filter(L).map((i,m)=>h(i,`${p}/${m}`)).filter(Boolean),css:y.css,hidden:y.hidden===!0}}const P=u(t);if(P){const o=P==="items"?t.items:P==="rows"?t.rows:t.cols;return{kind:"container",axis:P,spacing:t.spacing==null?null:z(t.spacing),labelPosition:t.labelPosition==null?null:G(t.labelPosition),labelWidth:t.labelWidth,controlMinWidth:t.controlMinWidth,padding:t.padding==null?null:z(t.padding),wrap:t.wrap===!0,...r(t),width:t.width,blocks:o.filter(L).map((y,V)=>h(y,`${p}/${V}`)).filter(Boolean),css:t.css,hidden:t.hidden===!0}}return t.spacer===!0||t.type==="spacer"?{kind:"spacer",width:t.width,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}:v(t,p)}function c(t={}){const p=L(t)?t:{},P=Array.isArray(p.steps)?p.steps.filter(L).map((i,m)=>l(i,m)).filter(Boolean):[],o=P.length>0,y=!o&&Array.isArray(p.rows)&&p.rows.length,V=!o&&!y&&Array.isArray(p.cols)&&p.cols.length,s=y||o?"rows":"cols",d=o?[]:y?p.rows:V?p.cols:[];return{axis:s,density:C(p.density),css:p.css,messages:p.messages,createGrid:typeof p.createGrid=="function"?p.createGrid:null,colsBreakpoint:A(p.colsBreakpoint),wrap:p.wrap===!0,...r(p),spacing:p.spacing==null?null:z(p.spacing),labelGap:p.labelGap==null?null:z(p.labelGap),labelPosition:p.labelPosition==null?null:G(p.labelPosition),labelWidth:p.labelWidth,controlMinWidth:p.controlMinWidth,requiredHint:p.requiredHint,blocks:d.filter(L).map((i,m)=>h(i,String(m))).filter(Boolean),steps:P,stepOrientation:p.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:p.validateSteps!==!1}}function l(t,p){const o=(Array.isArray(t.rows)?t.rows:[]).filter(L).map((y,V)=>h(y,`step${p}/${V}`)).filter(Boolean);return o.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${p}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:o,css:t.css}}}),Ie("packages/modules/form/ids.js",function(S,te){"use strict";Object.defineProperty(S,"nextId",{enumerable:!0,get:function(){return H}});let we=0;function H(L){return we+=1,`${L}-${we}`}}),Ie("packages/modules/form/state.js",function(S,te){"use strict";Object.defineProperty(S,"applyBooleanInputState",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"guardBooleanInput",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"syncRootAria",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"syncRecordState",{enumerable:!0,get:function(){return e}});function we(E,I,z){E.disabled=I===!0,E.__latReadOnly=z===!0,z===!0?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")}function H(E){const I=()=>E.__latReadOnly===!0,z=A=>{I()&&A.preventDefault()},T=A=>{I()&&(A.preventDefault(),A.stopPropagation())},G=A=>{I()&&(A.key===" "||A.key==="Enter")&&A.preventDefault()},C=A=>{I()&&A.key===" "&&A.preventDefault()};E.addEventListener("pointerdown",z),E.addEventListener("click",T),E.addEventListener("keydown",G),E.addEventListener("keyup",C)}function L(E,I,z){I?E.setAttribute("aria-disabled","true"):E.removeAttribute("aria-disabled"),z?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")}function e(E){const I=E.item,z=I.disabled===!0,T=I.readOnly===!0||E.ruleReadOnly===!0;E.controlWrap&&(E.controlWrap.setAttribute("data-disabled",z?"true":"false"),E.controlWrap.setAttribute("data-readonly",T?"true":"false")),E.def.state(E.control,{...I,readOnly:T}),typeof E.syncLock=="function"&&E.syncLock(),typeof E.syncAddons=="function"&&E.syncAddons()}}),Ie("packages/modules/form/group-rules.js",function(S,te){"use strict";Object.defineProperty(S,"attachRuleResolver",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"detachRuleResolver",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"ruleResolverFor",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"makeRuleResolver",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"reapplyMembers",{enumerable:!0,get:function(){return I}});const we=new WeakMap;function H(z,T){we.set(z,T)}function L(z){we.delete(z)}function e(z){return we.get(z)}function E(z){const{owners:T,byId:G,warnOnce:C}=z;return function(r,u){if(r==null||typeof r!="object")return;const v=r.name;if(r.form!=null){const c=G.get(r.form);if(!c){C(`form.group.unknown-member:${String(r.form)}`,`form group: a rule pins the member "${r.form}", but no member has that id; the rule reads an empty value.`);return}return v!=null?c.form.getValue()[v]:void 0}if(v==null)return;if(Object.prototype.hasOwnProperty.call(u,v))return u[v];const h=T.get(String(v));if(h)return h.form.getValue()[v]}}function I(z){for(const T of z)T.form&&typeof T.form.__reapplyRules=="function"&&T.form.__reapplyRules()}}),Ie("packages/modules/form/rules.js",function(S,te){"use strict";Object.defineProperty(S,"evalRule",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"applyRules",{enumerable:!0,get:function(){return T}});const H=te("packages/modules/form/model.js").isEmpty,e=te("packages/modules/form/state.js").syncRecordState,I=te("packages/modules/form/group-rules.js").ruleResolverFor;function z(C,A,r){if(C==null)return null;if(typeof C=="function")return!!C(A);if(typeof C=="boolean")return C;if(typeof C=="object"){const u=r?r(C,A):C.name!=null?A[C.name]:void 0;if(typeof C.fn=="function")return!!C.fn(u,A);let v=!0,h=!1;return Object.prototype.hasOwnProperty.call(C,"equals")&&(h=!0,v=v&&u===C.equals),Object.prototype.hasOwnProperty.call(C,"in")&&(h=!0,v=v&&Array.isArray(C.in)&&C.in.includes(u)),Object.prototype.hasOwnProperty.call(C,"empty")&&(h=!0,v=v&&H(u)===!!C.empty),h?v:!1}return!1}function T(C){const A={};for(const u of C.order)if(u.item.name!=null&&(A[u.item.name]=u.value),u.mapped)for(const v of u.mapped)A[v.item.name]=v.value;const r=C.form?I(C.form):void 0;for(const u of C.order){const v=u.item;u.ruleHidden=z(v.visibleWhen,A,r)===!1,u.ruleReadOnly=z(v.readOnlyWhen,A,r)===!0,u.ruleRequired=z(v.requiredWhen,A,r)===!0,u.el.hidden=u.hidden||u.ruleHidden,e(u);const h=v.required===!0||u.ruleRequired,c=u.labelEl!=null&&u.labelPosition!=="hidden",l=u.placeholderEl||u.control;h?l.setAttribute("aria-required","true"):l.removeAttribute("aria-required"),h&&c?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),G(u,h,c,t=>C.t(t))}}function G(C,A,r,u){const v=C.placeholderEl;if(!v)return;const h=C.placeholderBase;if(A&&!r&&h!==""){const c=C.requiredHint,l=c===!1?"":typeof c=="string"?u(c):" *";v.placeholder=h+l}else v.placeholder=h}}),Ie("packages/modules/form/enter-submit.js",function(S,te){"use strict";Object.defineProperty(S,"attachEnterSubmit",{enumerable:!0,get:function(){return z}});function we(T){const G=T.control;if(!G)return null;const C=T.item&&T.item.type;return C==="input"?G.__latPassword?G.__latPassword.input:G:C==="number"?G.__latNumber?G.__latNumber.input:G:(C==="datepicker"||C==="daterange")&&G.__input||null}function H(T,G){for(const C of T.order){const A=C.control;if(A&&(A===G||typeof A.contains=="function"&&A.contains(G)))return C}return null}function L(T,G){const C=T.item&&T.item.type;if(C==="otp"){const r=T.control&&T.control.__latOtp;return!r||!Array.isArray(r.boxes)||r.boxes.length===0?!1:G===r.boxes[r.boxes.length-1]}if(C==="combo"||C==="select")return!1;const A=we(T);if(!A||G!==A)return!1;if(C==="input"||C==="number")return!0;if(C==="datepicker"||C==="daterange"){const r=T.control&&T.control.__popup;return!r||r.hidden!==!1}return!1}function e(T){for(const G of T.order){if(G.hidden)continue;const C=G.item&&G.item.type;if(C==="button"){const A=G.control&&G.control.__latButton;if(A&&A.buttonType==="submit")return G.control}else if(C==="buttons"){const A=G.control&&G.control.children;if(!A)continue;for(const r of A){const u=r&&r.__latButton;if(u&&u.buttonType==="submit")return r}}}return null}function E(T,G){const C=G&&G.defaultView,A=C&&(C.MouseEvent||C.Event),r=A?new A("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};T.dispatchEvent(r)}function I(T,G,C){const A=T.doc,r=A&&A.defaultView,u=we(G)||C;if(!u||typeof u.dispatchEvent!="function")return!1;const v=r&&(r.FocusEvent||r.Event);v&&u.dispatchEvent(new v("blur",{bubbles:!1}));const h=G.def,c=h&&typeof h.read=="function"?h.read(G.control,G.item):void 0;if(c===void 0||c===G.value)return!1;const l=r&&r.Event;return l?u.dispatchEvent(new l("change",{bubbles:!0})):u.dispatchEvent({type:"change",bubbles:!0,target:u}),!0}function z(T){const G=C=>{if(C.key!=="Enter"||C.altKey||C.ctrlKey||C.metaKey||C.shiftKey||C.isComposing)return;const A=C.target;if(!A)return;const r=H(T,A);if(!r||!L(r,A))return;const u=e(T);if(!u)return;C.preventDefault(),I(T,r,A)?Promise.resolve().then(()=>E(u,T.doc)):E(u,T.doc)};T.el.addEventListener("keydown",G),T.disposers.push(()=>T.el.removeEventListener("keydown",G))}}),Ie("packages/modules/form/stepper.js",function(S,te){"use strict";Object.defineProperty(S,"createStepper",{enumerable:!0,get:function(){return e}});const H=te("packages/modules/form/styles.js").NS;function L(E,I,z){return Math.min(z,Math.max(I,E))}function e(E,I){const z=I.doc,T=I.steps||[],G=I.t||(o=>o),C=I.orientation==="vertical"?"vertical":"horizontal";let A=L(Number(I.active)||0,0,Math.max(0,T.length-1));const r=[];E.className=`${H}__stepper ${H}__stepper--${C}`,E.setAttribute("data-orientation",C),E.setAttribute("role","navigation"),E.setAttribute("aria-label",G("form.steps"));const u=z.createElement("ol");u.className=`${H}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",C),E.appendChild(u);let v=[];const h=o=>r[o]?r[o]:o<A?"complete":o===A?"active":"pending",c=o=>o<=A+1,l=()=>{u.textContent="",v=T.map((o,y)=>{const V=h(y),s=z.createElement("li");s.className=`${H}__stepper-item is-${V}`+(y===A?" is-active":"")+(c(y)?"":" is-locked");const d=z.createElement("button");d.type="button",d.className=`${H}__stepper-step`,d.setAttribute("role","tab"),d.setAttribute("aria-selected",y===A?"true":"false"),y===A&&d.setAttribute("aria-current","step"),d.tabIndex=y===A?0:-1,d.setAttribute("aria-disabled",c(y)?"false":"true");const i=z.createElement("span");i.className=`${H}__stepper-marker`,i.setAttribute("aria-hidden","true"),i.textContent=V==="complete"?"✓":V==="error"?"!":String(y+1),d.appendChild(i);const m=z.createElement("span");return m.className=`${H}__stepper-label`,m.textContent=o.label!=null&&o.label!==""?o.label:`${G("form.step")} ${y+1}`,d.appendChild(m),s.appendChild(d),u.appendChild(s),d})},t=o=>{typeof I.onGoTo=="function"&&c(o)&&I.onGoTo(o)},p=o=>{const y=o.target&&o.target.closest?o.target.closest(`.${H}__stepper-step`):null;if(!y||!u.contains(y))return;const V=v.indexOf(y);V>=0&&t(V)},P=o=>{const y=o.target&&o.target.closest?o.target.closest(`.${H}__stepper-step`):null;if(!y||!u.contains(y))return;const V=T.length;let s=v.indexOf(y);if(s<0)return;if(o.key==="ArrowRight"||o.key==="ArrowDown")s=(s+1)%V;else if(o.key==="ArrowLeft"||o.key==="ArrowUp")s=(s-1+V)%V;else if(o.key==="Home")s=0;else if(o.key==="End")s=V-1;else if(o.key==="Enter"||o.key===" "){o.preventDefault(),t(s);return}else return;o.preventDefault();const d=v[s];d&&d.focus()};return u.addEventListener("click",p),u.addEventListener("keydown",P),l(),{el:E,setActive(o){A=L(Number(o)||0,0,Math.max(0,T.length-1)),l()},setStatus(o,y){r[o]=y,l()},statusOf:h}}}),Ie("packages/core/src/internal/icon-builtins.js",function(S,te){"use strict";Object.defineProperty(S,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"normaliseIcon",{enumerable:!0,get:function(){return H}});const we={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"},ellipsis:{viewBox:"0 0 16 16",paths:["M3 6.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z"]},ellipsisVertical:{viewBox:"0 0 16 16",paths:["M6.5 3a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm0 5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm0 5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Z"]},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 H(L){return typeof L=="string"?{viewBox:"0 0 16 16",paths:[L],paint:"fill"}:Array.isArray(L)?{viewBox:"0 0 16 16",paths:L.slice(),paint:"fill"}:{viewBox:L&&L.viewBox||"0 0 16 16",paths:L&&Array.isArray(L.paths)?L.paths.slice():L&&L.path?[L.path]:[],paint:L&&L.paint==="stroke"?"stroke":"fill"}}}),Ie("packages/modules/form/controls/field-icon.js",function(S,te){"use strict";Object.defineProperty(S,"fieldIconStylesheet",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"injectFieldIconStyles",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"makeFieldIcon",{enumerable:!0,get:function(){return z}});const H=te("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,L="http://www.w3.org/2000/svg",e="data-lattice-form-field-icon-styles";function E(){return`
|
|
1591
1591
|
.lat-form__field-icon{
|
|
1592
1592
|
display:block; flex:0 0 auto;
|
|
1593
1593
|
width:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1594
1594
|
height:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1595
1595
|
}
|
|
1596
|
-
`.trim()}function I(N){const G=N&&N.documentElement;if(!G||G.getAttribute(e))return;G.setAttribute(e,"1");const C=N.createElement("style");C.textContent=E(),(N.head||N.body||G).appendChild(C)}function z(N,G){const C=H[G];if(!C)return null;const A=N.createElementNS(L,"svg");A.setAttribute("class","lat-form__field-icon"),A.setAttribute("viewBox",C.viewBox||"0 0 16 16"),A.setAttribute("aria-hidden","true"),A.setAttribute("focusable","false");const r=C.paint==="stroke";for(const u of C.paths||[]){const v=N.createElementNS(L,"path");v.setAttribute("d",u),r?(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","1.5"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")):v.setAttribute("fill","currentColor"),A.appendChild(v)}return A}}),Ie("packages/modules/form/messages.js",function(S,te){"use strict";Object.defineProperty(S,"FALLBACK_EN",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"t",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"createTranslator",{enumerable:!0,get:function(){return I}});const xe=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.select.clear":"Clear selection","form.combo.toggle":"Show options","form.combo.clear":"Clear selection","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.noMatches":"No matches","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.dragHandle":"Drag to reorder","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.slider":"Slider","form.slider.low":"Minimum","form.slider.high":"Maximum","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.togglegroup":"Options","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.datepicker.clear":"Clear selection","form.time.open":"Open time picker","form.time.close":"Close","form.time.save":"Save","form.time.am":"AM","form.time.pm":"PM","form.time.invalid":"Enter a valid time.","form.datepicker.invalid":"Enter a valid date.","form.datepicker.disabled":"That date is not available.","form.daterange.open":"Open date range picker","form.daterange.prev":"Previous month","form.daterange.next":"Next month","form.daterange.apply":"Apply","form.daterange.cancel":"Cancel","form.daterange.clear":"Clear","form.daterange.presets":"Presets","form.daterange.today":"Today","form.daterange.yesterday":"Yesterday","form.daterange.last7":"Last 7 days","form.daterange.last30":"Last 30 days","form.daterange.thisMonth":"This month","form.daterange.lastMonth":"Last month","form.daterange.monthThisMonth":"This month","form.daterange.monthLastMonth":"Last month","form.daterange.monthLast3":"Last 3 months","form.daterange.monthLast6":"Last 6 months","form.daterange.monthLast12":"Last 12 months","form.daterange.monthThisYear":"This year","form.daterange.monthLastYear":"Last year","form.daterange.invalid":"Enter a start and end date.","form.daterange.bounds":"Date is outside the allowed range.","form.daterange.minSpan":"Select a range of at least {min} {unit}.","form.daterange.maxSpan":"Select a range of at most {max} {unit}.","form.daterange.days":"days","form.daterange.months":"months","form.tooltip.help":"Help","form.readonly":"Read-only","form.panel.collapse":"Collapse section","form.panel.expand":"Expand section","form.file.add":"Add files","form.file.dropText":"Drag files here or","form.file.browse":"browse","form.file.dropToUpload":"Drop to upload","form.file.addMore":"Add more or drop here","form.file.typeNotAccepted":"This file type is not accepted","form.file.hint.size":"up to {size} each","form.file.hint.file":"max {max} file","form.file.hint.files":"max {max} files","form.file.addedOne":"1 file added","form.file.added":"{count} files added","form.file.uploaded":"{name} uploaded","form.file.failed":"{name} failed","form.file.remove":"Remove","form.file.retry":"Retry","form.file.rejected.size":"File is larger than {size}","form.file.rejected.type":"File type not allowed","form.file.rejected.count":"Too many files (max {max})","form.file.uploadFailed":"Upload failed","form.richtext.bold":"Bold (Ctrl+B)","form.richtext.italic":"Italic (Ctrl+I)","form.richtext.underline":"Underline (Ctrl+U)","form.richtext.strike":"Strikethrough","form.richtext.color":"Text colour","form.richtext.heading":"Paragraph style","form.richtext.alignLeft":"Align left","form.richtext.alignCenter":"Align centre","form.richtext.alignRight":"Align right","form.richtext.ul":"Bulleted list","form.richtext.ol":"Numbered list","form.richtext.outdent":"Decrease indent","form.richtext.indent":"Increase indent","form.richtext.link":"Link (Ctrl+K)","form.richtext.image":"Insert image","form.richtext.clear":"Clear formatting","form.richtext.source":"HTML source","form.richtext.undo":"Undo (Ctrl+Z)","form.richtext.redo":"Redo (Ctrl+Y)","form.richtext.lowercase":"lower case","form.richtext.uppercase":"UPPER CASE","form.richtext.lowercaseText":"ab","form.richtext.uppercaseText":"AB","form.richtext.placeholder":"Start writing…","form.richtext.formatting":"Formatting","form.richtext.richText":"Rich text","form.richtext.linkLabel":"Link address","form.richtext.linkPlaceholder":"https://","form.richtext.linkAdd":"Add link","form.richtext.linkUpdate":"Update","form.richtext.linkRemove":"Remove","form.richtext.colorCustom":"Custom colour","form.richtext.colorRemove":"Remove colour","form.color.open":"Open colour picker","form.color.clear":"Clear colour","form.color.customColor":"Custom colour","form.color.select":"Select","form.color.hexLabel":"Hex","form.color.redLabel":"Red","form.color.greenLabel":"Green","form.color.blueLabel":"Blue","form.color.saturationLightness":"Saturation and lightness","form.color.hue":"Hue","form.color.invalidHex":"Enter a colour such as #1a2b3c","form.avatar.placeholder":"Add a photo","form.avatar.choose":"Choose a photo","form.avatar.remove":"Remove photo","form.avatar.rejected.size":"Photo is larger than {size}","form.avatar.rejected.type":"Photo type not allowed","form.avatar.uploadFailed":"Upload failed","form.grid.cellInvalid":"Row {row}, {column}: {message}","form.grid.required":"Add at least one row.","form.grid.addRow":"Add row","form.grid.deleteRow":"Delete row","form.grid.total":"Total","form.grid.rowControls":"Row controls"}),H=Object.freeze({...xe});function L(z,N={}){const G=xe[z];return G===void 0?z:G.replace(/\{(\w+)\}/g,(C,A)=>N[A]===void 0?C:String(N[A]))}const e={t(z,N={}){return L(z,N)}};function E(z,N={}){return e.t(z,N)}function I(z){return{t(N,G={}){const C=z&&typeof z.t=="function"?z.t(N,G):N;return C===N?L(N,G):C}}}}),Ie("packages/dom/src/editors/sanitize-richtext.js",function(S,te){"use strict";Object.defineProperty(S,"ALLOWED",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"sanitizeRichText",{enumerable:!0,get:function(){return C}});const xe={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"]},H={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$/},L=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),e=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],E=/^(data:image\/|https?:\/\/|\/)/i,I={"&":"&","<":"<",">":">",'"':""","'":"'"};function z(A){const r=A==null?"":String(A);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,u=>I[u]):r}function N(A,r){const u=String(A).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(r&&u.startsWith("data:image/")):!1}function G(A){if(A.__latRtCanParse!==void 0)return A.__latRtCanParse;try{const r=A.createElement("template");r.innerHTML="<p>x</p>";const u=!!(r.content&&r.content.childNodes&&r.content.childNodes.length);return A.__latRtCanParse=u,u}catch{return A.__latRtCanParse=!1,!1}}function C(A,r,u=xe,v={}){const h=u||xe,c=String(r??"");if(!G(A))return z(c.replace(/<[^>]*>/g,""));const l=v.imageSrcPattern||E,t=A.createElement("template");t.innerHTML=c;const p=P=>{[...P.childNodes].forEach(o=>{if(o.nodeType===8){o.remove();return}if(o.nodeType!==1)return;const y=o.tagName.toLowerCase();if(L.has(y)){o.remove();return}if(p(o),!h[y]){const V=e.includes(y)?A.createElement("p"):null;if(V){for(;o.firstChild;)V.appendChild(o.firstChild);o.replaceWith(V)}else{for(;o.firstChild;)o.parentNode.insertBefore(o.firstChild,o);o.remove()}return}if([...o.attributes].forEach(V=>{const s=V.name.toLowerCase();if(/^on/i.test(s)||s==="srcdoc"||s==="id"||s==="name"){o.removeAttribute(V.name);return}if(s==="class"&&v.keepClass){o.setAttribute("class",V.value);return}if(!h[y].includes(s)){o.removeAttribute(V.name);return}if(s==="href"){const d=V.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(d)||N(d))&&o.removeAttribute("href")}else if(s==="src"){const d=V.value.trim();(!l.test(d)||N(d,!0))&&o.removeAttribute("src")}else if(s==="style"){if(v.stripStyles&&y!=="img"){o.removeAttribute("style");return}const d=V.value.split(";").map(i=>i.trim()).filter(Boolean).map(i=>{const m=i.indexOf(":");return[i.slice(0,m).trim().toLowerCase(),i.slice(m+1).trim()]}).filter(([i,m])=>H[i]&&H[i].test(m)).map(([i,m])=>`${i}: ${m}`).join("; ");d?o.setAttribute("style",d):o.removeAttribute("style")}else if(s==="target"&&V.value!=="_blank")o.removeAttribute("target");else if(s==="class"){const d=V.value.split(/\s+/).filter(i=>/^lat-/.test(i)||/^dfc-/.test(i)).join(" ");d?o.setAttribute("class",d):o.removeAttribute("class")}}),y==="div"){const V=A.createElement("p");for([...o.attributes].forEach(s=>V.setAttribute(s.name,s.value));o.firstChild;)V.appendChild(o.firstChild);o.replaceWith(V)}if(y==="img"&&!o.getAttribute("src")&&o.remove(),y==="a")if(o.getAttribute("href"))o.getAttribute("target")==="_blank"&&o.setAttribute("rel","noopener noreferrer");else{for(;o.firstChild;)o.parentNode.insertBefore(o.firstChild,o);o.remove()}})};return p(t.content),t.innerHTML}}),Ie("packages/dom/src/themeof.js",function(S,te){"use strict";Object.defineProperty(S,"themeOf",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"carryTheme",{enumerable:!0,get:function(){return H}});function xe(L){for(let e=L;e;e=e.parentNode){if(typeof e.getAttribute!="function")continue;const E=e.getAttribute("data-theme");if(E)return E}return null}function H(L,e){if(!L||typeof L.setAttribute!="function")return;const E=xe(e);E?L.setAttribute("data-theme",E):typeof L.removeAttribute=="function"&&L.removeAttribute("data-theme")}}),Ie("packages/modules/form/controls/popup-layer.js",function(S,te){"use strict";Object.defineProperty(S,"getLayerHost",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"flushOutsideFocus",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"placeAgainstField",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"openInLayer",{enumerable:!0,get:function(){return P}});const H=te("packages/dom/src/themeof.js").carryTheme,L="lat-form__layer-host",e=Object.freeze(["--lattice-density-scale","--lattice-presentation-scale","--lattice-scale","--lattice-space","--lattice-row-height","--lattice-font-size","--lattice-font-family","--lattice-line-height","--lattice-control-size","--lattice-border-color","--lattice-border-width","--lattice-background","--lattice-foreground","--lattice-foreground-muted","--lattice-accent","--lattice-accent-contrast","--lattice-switch-track-on","--lattice-switch-track-off","--lattice-switch-handle","--lattice-switch-label","--lattice-focus-ring","--lattice-danger","--lattice-success","--lattice-radius","--lattice-form-item-gap","--lattice-form-label-gap","--lattice-form-surface","--lattice-form-field-bg","--lattice-form-field-border","--lattice-form-field-fg","--lattice-form-focus-ring","--lattice-form-placeholder","--lattice-form-label-fg","--lattice-form-help-fg","--lattice-form-invalid","--lattice-form-popup-bg","--lattice-form-popup-shadow","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border","--lattice-popup-z"]),E="2147483647";function I(o){return typeof o.showPopover=="function"&&typeof o.hidePopover=="function"}function z(o){if(o.style.zIndex=`var(--lattice-popup-z, ${E})`,!!I(o)){o.setAttribute("popover","manual"),o.style.margin="0",o.style.inset="auto";try{o.showPopover()}catch{}}}function N(o){if(I(o)&&o.hasAttribute("popover")){try{o.hidePopover()}catch{}o.removeAttribute("popover")}o.style.zIndex="",o.style.margin="",o.style.inset=""}function G(o,y){const V=y.ownerDocument&&y.ownerDocument.defaultView;if(!V||typeof V.getComputedStyle!="function")return;const s=V.getComputedStyle(y);for(const d of e){const i=s.getPropertyValue(d);i&&o.style.setProperty(d,i)}}const C=new WeakMap,A=new WeakMap,r=new WeakMap;function u(o){for(let y=o;y;y=y.parentNode){if(typeof y.getAttribute!="function")continue;if((typeof y.tagName=="string"?y.tagName.toUpperCase():"")==="DIALOG"&&y.getAttribute("open")!==null)return y}return null}function v(o,y){const V=y?u(y):null;if(V){const k=A.get(V);if(k&&k.parentNode===V)return k;let w=null;for(const $ of V.childNodes||[])if($&&typeof $.className=="string"&&$.className.split(/\s+/).includes(L)){w=$;break}const f=w||o.createElement("div");return w||(f.className=L,V.appendChild(f)),A.set(V,f),f}const s=C.get(o);if(s&&s.isConnected!==!1)return s;const d=o.body||o.documentElement,i=d&&typeof d.querySelector=="function"?d.querySelector(`.${L}`):null,m=i||o.createElement("div");return i||(m.className=L,d.appendChild(m)),C.set(o,m),m}function h(o,y,V){return o.bottom<=0||o.top>=V||o.right<=0||o.left>=y}function c(o,y){const V=o&&o.ownerDocument,s=V&&V.activeElement;!s||s===V.body||s===o||o.contains(s)||y&&y.contains(s)||typeof s.blur=="function"&&s.blur()}function l(o,y,V={}){const s=y.ownerDocument,d=s&&s.defaultView,i=d?d.innerWidth:0,m=d?d.innerHeight:0;o.style.position="fixed";const k=y.getBoundingClientRect();if(h(k,i,m))return!0;o.style.marginTop="0",o.style.marginBottom="0",o.style.marginLeft="0",o.style.marginRight="0",V.matchWidth===!1?o.style.minWidth=`${k.width}px`:o.style.width=`${k.width}px`;let w=k.left;const f=o.offsetWidth||k.width;i&&w+f>i&&(w=Math.max(0,i-f)),o.style.left=`${w}px`,o.style.right="auto";const $=o.offsetHeight||0;return m-k.bottom<$+4&&k.top>$+4?(o.style.top="auto",o.style.bottom=`${Math.max(0,m-k.top)}px`,V.aboveClass&&o.classList.add(V.aboveClass)):(o.style.bottom="auto",o.style.top=`${k.bottom}px`,V.aboveClass&&o.classList.remove(V.aboveClass)),!1}function t(o,y,V){let s=r.get(o);if(!s){const d=o.defaultView;s={entries:new Set,onTrack(){for(const i of[...s.entries])i.reposition()},ro:typeof ResizeObserver=="function"?new ResizeObserver(()=>s.onTrack()):null},d&&(d.addEventListener("scroll",s.onTrack,!0),d.addEventListener("resize",s.onTrack)),r.set(o,s)}s.entries.add(y),s.ro&&s.ro.observe(V)}function p(o,y,V){const s=r.get(o);if(s&&(s.entries.delete(y),s.ro&&s.ro.unobserve(V),s.entries.size===0)){const d=o.defaultView;d&&(d.removeEventListener("scroll",s.onTrack,!0),d.removeEventListener("resize",s.onTrack)),s.ro&&s.ro.disconnect(),r.delete(o)}}function P(o,y,V={}){const s=y.ownerDocument,d=v(s,y),i=o.parentNode,m=o.nextSibling;let k=!1;d.appendChild(o),H(o,y),G(o,y),G(d,y),z(o);const w={reposition(){if(k)return;l(o,y,V)&&typeof V.onOffscreen=="function"&&V.onOffscreen()},close(){k||(k=!0,p(s,w,y),N(o),i&&(m&&m.parentNode===i?i.insertBefore(o,m):i.appendChild(o)))}};return t(s,w,y),w.reposition(),w}}),Ie("packages/modules/form/controls/combo.js",function(S,te){"use strict";Object.defineProperty(S,"adornmentStylesheet",{enumerable:!0,get:function(){return k}}),Object.defineProperty(S,"injectAdornmentStyles",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"isImageUrl",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"initialsFor",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"stableHash",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"avatarColor",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"applyAvatarTint",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"makeIcon",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"renderIcon",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(S,"renderAvatar",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"renderDot",{enumerable:!0,get:function(){return J}}),Object.defineProperty(S,"renderAdornment",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(S,"renderTemplateContent",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return re}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,N=te("packages/modules/form/styles.js").injectStyles,C=te("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,r=te("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,u=te("packages/modules/form/controls/field-icon.js"),v=u.makeFieldIcon,h=u.injectFieldIconStyles,c=te("packages/modules/form/controls/popup-layer.js"),l=c.openInLayer,t=c.flushOutsideFocus,p=250,P="lat-combo__popup--above",o=20,y=48,V="data-lattice-combo-chip-row-styles";function s(){return`
|
|
1596
|
+
`.trim()}function I(T){const G=T&&T.documentElement;if(!G||G.getAttribute(e))return;G.setAttribute(e,"1");const C=T.createElement("style");C.textContent=E(),(T.head||T.body||G).appendChild(C)}function z(T,G){const C=H[G];if(!C)return null;const A=T.createElementNS(L,"svg");A.setAttribute("class","lat-form__field-icon"),A.setAttribute("viewBox",C.viewBox||"0 0 16 16"),A.setAttribute("aria-hidden","true"),A.setAttribute("focusable","false");const r=C.paint==="stroke";for(const u of C.paths||[]){const v=T.createElementNS(L,"path");v.setAttribute("d",u),r?(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","1.5"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")):v.setAttribute("fill","currentColor"),A.appendChild(v)}return A}}),Ie("packages/modules/form/messages.js",function(S,te){"use strict";Object.defineProperty(S,"FALLBACK_EN",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"t",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"createTranslator",{enumerable:!0,get:function(){return I}});const we=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.select.clear":"Clear selection","form.combo.toggle":"Show options","form.combo.clear":"Clear selection","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.noMatches":"No matches","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.dragHandle":"Drag to reorder","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.slider":"Slider","form.slider.low":"Minimum","form.slider.high":"Maximum","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.togglegroup":"Options","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.datepicker.clear":"Clear selection","form.time.open":"Open time picker","form.time.close":"Close","form.time.save":"Save","form.time.am":"AM","form.time.pm":"PM","form.time.invalid":"Enter a valid time.","form.datepicker.invalid":"Enter a valid date.","form.datepicker.disabled":"That date is not available.","form.daterange.open":"Open date range picker","form.daterange.prev":"Previous month","form.daterange.next":"Next month","form.daterange.apply":"Apply","form.daterange.cancel":"Cancel","form.daterange.clear":"Clear","form.daterange.presets":"Presets","form.daterange.today":"Today","form.daterange.yesterday":"Yesterday","form.daterange.last7":"Last 7 days","form.daterange.last30":"Last 30 days","form.daterange.thisMonth":"This month","form.daterange.lastMonth":"Last month","form.daterange.monthThisMonth":"This month","form.daterange.monthLastMonth":"Last month","form.daterange.monthLast3":"Last 3 months","form.daterange.monthLast6":"Last 6 months","form.daterange.monthLast12":"Last 12 months","form.daterange.monthThisYear":"This year","form.daterange.monthLastYear":"Last year","form.daterange.invalid":"Enter a start and end date.","form.daterange.bounds":"Date is outside the allowed range.","form.daterange.minSpan":"Select a range of at least {min} {unit}.","form.daterange.maxSpan":"Select a range of at most {max} {unit}.","form.daterange.days":"days","form.daterange.months":"months","form.tooltip.help":"Help","form.readonly":"Read-only","form.panel.collapse":"Collapse section","form.panel.expand":"Expand section","form.file.add":"Add files","form.file.dropText":"Drag files here or","form.file.browse":"browse","form.file.dropToUpload":"Drop to upload","form.file.addMore":"Add more or drop here","form.file.typeNotAccepted":"This file type is not accepted","form.file.hint.size":"up to {size} each","form.file.hint.file":"max {max} file","form.file.hint.files":"max {max} files","form.file.addedOne":"1 file added","form.file.added":"{count} files added","form.file.uploaded":"{name} uploaded","form.file.failed":"{name} failed","form.file.remove":"Remove","form.file.retry":"Retry","form.file.rejected.size":"File is larger than {size}","form.file.rejected.type":"File type not allowed","form.file.rejected.count":"Too many files (max {max})","form.file.uploadFailed":"Upload failed","form.richtext.bold":"Bold (Ctrl+B)","form.richtext.italic":"Italic (Ctrl+I)","form.richtext.underline":"Underline (Ctrl+U)","form.richtext.strike":"Strikethrough","form.richtext.color":"Text colour","form.richtext.heading":"Paragraph style","form.richtext.alignLeft":"Align left","form.richtext.alignCenter":"Align centre","form.richtext.alignRight":"Align right","form.richtext.ul":"Bulleted list","form.richtext.ol":"Numbered list","form.richtext.outdent":"Decrease indent","form.richtext.indent":"Increase indent","form.richtext.link":"Link (Ctrl+K)","form.richtext.image":"Insert image","form.richtext.clear":"Clear formatting","form.richtext.source":"HTML source","form.richtext.undo":"Undo (Ctrl+Z)","form.richtext.redo":"Redo (Ctrl+Y)","form.richtext.lowercase":"lower case","form.richtext.uppercase":"UPPER CASE","form.richtext.lowercaseText":"ab","form.richtext.uppercaseText":"AB","form.richtext.placeholder":"Start writing…","form.richtext.formatting":"Formatting","form.richtext.richText":"Rich text","form.richtext.linkLabel":"Link address","form.richtext.linkPlaceholder":"https://","form.richtext.linkAdd":"Add link","form.richtext.linkUpdate":"Update","form.richtext.linkRemove":"Remove","form.richtext.colorCustom":"Custom colour","form.richtext.colorRemove":"Remove colour","form.color.open":"Open colour picker","form.color.clear":"Clear colour","form.color.customColor":"Custom colour","form.color.select":"Select","form.color.hexLabel":"Hex","form.color.redLabel":"Red","form.color.greenLabel":"Green","form.color.blueLabel":"Blue","form.color.saturationLightness":"Saturation and lightness","form.color.hue":"Hue","form.color.invalidHex":"Enter a colour such as #1a2b3c","form.avatar.placeholder":"Add a photo","form.avatar.choose":"Choose a photo","form.avatar.remove":"Remove photo","form.avatar.rejected.size":"Photo is larger than {size}","form.avatar.rejected.type":"Photo type not allowed","form.avatar.uploadFailed":"Upload failed","form.grid.cellInvalid":"Row {row}, {column}: {message}","form.grid.required":"Add at least one row.","form.grid.addRow":"Add row","form.grid.deleteRow":"Delete row","form.grid.total":"Total","form.grid.rowControls":"Row controls"}),H=Object.freeze({...we});function L(z,T={}){const G=we[z];return G===void 0?z:G.replace(/\{(\w+)\}/g,(C,A)=>T[A]===void 0?C:String(T[A]))}const e={t(z,T={}){return L(z,T)}};function E(z,T={}){return e.t(z,T)}function I(z){return{t(T,G={}){const C=z&&typeof z.t=="function"?z.t(T,G):T;return C===T?L(T,G):C}}}}),Ie("packages/dom/src/editors/sanitize-richtext.js",function(S,te){"use strict";Object.defineProperty(S,"ALLOWED",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"sanitizeRichText",{enumerable:!0,get:function(){return C}});const we={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"]},H={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$/},L=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),e=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],E=/^(data:image\/|https?:\/\/|\/)/i,I={"&":"&","<":"<",">":">",'"':""","'":"'"};function z(A){const r=A==null?"":String(A);return/[&<>"']/.test(r)?r.replace(/[&<>"']/g,u=>I[u]):r}function T(A,r){const u=String(A).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(r&&u.startsWith("data:image/")):!1}function G(A){if(A.__latRtCanParse!==void 0)return A.__latRtCanParse;try{const r=A.createElement("template");r.innerHTML="<p>x</p>";const u=!!(r.content&&r.content.childNodes&&r.content.childNodes.length);return A.__latRtCanParse=u,u}catch{return A.__latRtCanParse=!1,!1}}function C(A,r,u=we,v={}){const h=u||we,c=String(r??"");if(!G(A))return z(c.replace(/<[^>]*>/g,""));const l=v.imageSrcPattern||E,t=A.createElement("template");t.innerHTML=c;const p=P=>{[...P.childNodes].forEach(o=>{if(o.nodeType===8){o.remove();return}if(o.nodeType!==1)return;const y=o.tagName.toLowerCase();if(L.has(y)){o.remove();return}if(p(o),!h[y]){const V=e.includes(y)?A.createElement("p"):null;if(V){for(;o.firstChild;)V.appendChild(o.firstChild);o.replaceWith(V)}else{for(;o.firstChild;)o.parentNode.insertBefore(o.firstChild,o);o.remove()}return}if([...o.attributes].forEach(V=>{const s=V.name.toLowerCase();if(/^on/i.test(s)||s==="srcdoc"||s==="id"||s==="name"){o.removeAttribute(V.name);return}if(s==="class"&&v.keepClass){o.setAttribute("class",V.value);return}if(!h[y].includes(s)){o.removeAttribute(V.name);return}if(s==="href"){const d=V.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(d)||T(d))&&o.removeAttribute("href")}else if(s==="src"){const d=V.value.trim();(!l.test(d)||T(d,!0))&&o.removeAttribute("src")}else if(s==="style"){if(v.stripStyles&&y!=="img"){o.removeAttribute("style");return}const d=V.value.split(";").map(i=>i.trim()).filter(Boolean).map(i=>{const m=i.indexOf(":");return[i.slice(0,m).trim().toLowerCase(),i.slice(m+1).trim()]}).filter(([i,m])=>H[i]&&H[i].test(m)).map(([i,m])=>`${i}: ${m}`).join("; ");d?o.setAttribute("style",d):o.removeAttribute("style")}else if(s==="target"&&V.value!=="_blank")o.removeAttribute("target");else if(s==="class"){const d=V.value.split(/\s+/).filter(i=>/^lat-/.test(i)||/^dfc-/.test(i)).join(" ");d?o.setAttribute("class",d):o.removeAttribute("class")}}),y==="div"){const V=A.createElement("p");for([...o.attributes].forEach(s=>V.setAttribute(s.name,s.value));o.firstChild;)V.appendChild(o.firstChild);o.replaceWith(V)}if(y==="img"&&!o.getAttribute("src")&&o.remove(),y==="a")if(o.getAttribute("href"))o.getAttribute("target")==="_blank"&&o.setAttribute("rel","noopener noreferrer");else{for(;o.firstChild;)o.parentNode.insertBefore(o.firstChild,o);o.remove()}})};return p(t.content),t.innerHTML}}),Ie("packages/dom/src/themeof.js",function(S,te){"use strict";Object.defineProperty(S,"themeOf",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"carryTheme",{enumerable:!0,get:function(){return H}});function we(L){for(let e=L;e;e=e.parentNode){if(typeof e.getAttribute!="function")continue;const E=e.getAttribute("data-theme");if(E)return E}return null}function H(L,e){if(!L||typeof L.setAttribute!="function")return;const E=we(e);E?L.setAttribute("data-theme",E):typeof L.removeAttribute=="function"&&L.removeAttribute("data-theme")}}),Ie("packages/modules/form/controls/popup-layer.js",function(S,te){"use strict";Object.defineProperty(S,"getLayerHost",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"flushOutsideFocus",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"placeAgainstField",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"openInLayer",{enumerable:!0,get:function(){return P}});const H=te("packages/dom/src/themeof.js").carryTheme,L="lat-form__layer-host",e=Object.freeze(["--lattice-density-scale","--lattice-presentation-scale","--lattice-scale","--lattice-space","--lattice-row-height","--lattice-font-size","--lattice-font-family","--lattice-line-height","--lattice-control-size","--lattice-border-color","--lattice-border-width","--lattice-background","--lattice-foreground","--lattice-foreground-muted","--lattice-accent","--lattice-accent-contrast","--lattice-switch-track-on","--lattice-switch-track-off","--lattice-switch-handle","--lattice-switch-label","--lattice-focus-ring","--lattice-danger","--lattice-success","--lattice-radius","--lattice-form-item-gap","--lattice-form-label-gap","--lattice-form-surface","--lattice-form-field-bg","--lattice-form-field-border","--lattice-form-field-fg","--lattice-form-focus-ring","--lattice-form-placeholder","--lattice-form-label-fg","--lattice-form-help-fg","--lattice-form-invalid","--lattice-form-popup-bg","--lattice-form-popup-shadow","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border","--lattice-popup-z"]),E="2147483647";function I(o){return typeof o.showPopover=="function"&&typeof o.hidePopover=="function"}function z(o){if(o.style.zIndex=`var(--lattice-popup-z, ${E})`,!!I(o)){o.setAttribute("popover","manual"),o.style.margin="0",o.style.inset="auto";try{o.showPopover()}catch{}}}function T(o){if(I(o)&&o.hasAttribute("popover")){try{o.hidePopover()}catch{}o.removeAttribute("popover")}o.style.zIndex="",o.style.margin="",o.style.inset=""}function G(o,y){const V=y.ownerDocument&&y.ownerDocument.defaultView;if(!V||typeof V.getComputedStyle!="function")return;const s=V.getComputedStyle(y);for(const d of e){const i=s.getPropertyValue(d);i&&o.style.setProperty(d,i)}}const C=new WeakMap,A=new WeakMap,r=new WeakMap;function u(o){for(let y=o;y;y=y.parentNode){if(typeof y.getAttribute!="function")continue;if((typeof y.tagName=="string"?y.tagName.toUpperCase():"")==="DIALOG"&&y.getAttribute("open")!==null)return y}return null}function v(o,y){const V=y?u(y):null;if(V){const k=A.get(V);if(k&&k.parentNode===V)return k;let w=null;for(const $ of V.childNodes||[])if($&&typeof $.className=="string"&&$.className.split(/\s+/).includes(L)){w=$;break}const f=w||o.createElement("div");return w||(f.className=L,V.appendChild(f)),A.set(V,f),f}const s=C.get(o);if(s&&s.isConnected!==!1)return s;const d=o.body||o.documentElement,i=d&&typeof d.querySelector=="function"?d.querySelector(`.${L}`):null,m=i||o.createElement("div");return i||(m.className=L,d.appendChild(m)),C.set(o,m),m}function h(o,y,V){return o.bottom<=0||o.top>=V||o.right<=0||o.left>=y}function c(o,y){const V=o&&o.ownerDocument,s=V&&V.activeElement;!s||s===V.body||s===o||o.contains(s)||y&&y.contains(s)||typeof s.blur=="function"&&s.blur()}function l(o,y,V={}){const s=y.ownerDocument,d=s&&s.defaultView,i=d?d.innerWidth:0,m=d?d.innerHeight:0;o.style.position="fixed";const k=y.getBoundingClientRect();if(h(k,i,m))return!0;o.style.marginTop="0",o.style.marginBottom="0",o.style.marginLeft="0",o.style.marginRight="0",V.matchWidth===!1?o.style.minWidth=`${k.width}px`:o.style.width=`${k.width}px`;let w=k.left;const f=o.offsetWidth||k.width;i&&w+f>i&&(w=Math.max(0,i-f)),o.style.left=`${w}px`,o.style.right="auto";const $=o.offsetHeight||0;return m-k.bottom<$+4&&k.top>$+4?(o.style.top="auto",o.style.bottom=`${Math.max(0,m-k.top)}px`,V.aboveClass&&o.classList.add(V.aboveClass)):(o.style.bottom="auto",o.style.top=`${k.bottom}px`,V.aboveClass&&o.classList.remove(V.aboveClass)),!1}function t(o,y,V){let s=r.get(o);if(!s){const d=o.defaultView;s={entries:new Set,onTrack(){for(const i of[...s.entries])i.reposition()},ro:typeof ResizeObserver=="function"?new ResizeObserver(()=>s.onTrack()):null},d&&(d.addEventListener("scroll",s.onTrack,!0),d.addEventListener("resize",s.onTrack)),r.set(o,s)}s.entries.add(y),s.ro&&s.ro.observe(V)}function p(o,y,V){const s=r.get(o);if(s&&(s.entries.delete(y),s.ro&&s.ro.unobserve(V),s.entries.size===0)){const d=o.defaultView;d&&(d.removeEventListener("scroll",s.onTrack,!0),d.removeEventListener("resize",s.onTrack)),s.ro&&s.ro.disconnect(),r.delete(o)}}function P(o,y,V={}){const s=y.ownerDocument,d=v(s,y),i=o.parentNode,m=o.nextSibling;let k=!1;d.appendChild(o),H(o,y),G(o,y),G(d,y),z(o);const w={reposition(){if(k)return;l(o,y,V)&&typeof V.onOffscreen=="function"&&V.onOffscreen()},close(){k||(k=!0,p(s,w,y),T(o),i&&(m&&m.parentNode===i?i.insertBefore(o,m):i.appendChild(o)))}};return t(s,w,y),w.reposition(),w}}),Ie("packages/modules/form/controls/combo.js",function(S,te){"use strict";Object.defineProperty(S,"adornmentStylesheet",{enumerable:!0,get:function(){return k}}),Object.defineProperty(S,"injectAdornmentStyles",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"isImageUrl",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"initialsFor",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"stableHash",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"avatarColor",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"applyAvatarTint",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"makeIcon",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"renderIcon",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(S,"renderAvatar",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"renderDot",{enumerable:!0,get:function(){return J}}),Object.defineProperty(S,"renderAdornment",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(S,"renderTemplateContent",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return re}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,T=te("packages/modules/form/styles.js").injectStyles,C=te("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,r=te("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,u=te("packages/modules/form/controls/field-icon.js"),v=u.makeFieldIcon,h=u.injectFieldIconStyles,c=te("packages/modules/form/controls/popup-layer.js"),l=c.openInLayer,t=c.flushOutsideFocus,p=250,P="lat-combo__popup--above",o=20,y=48,V="data-lattice-combo-chip-row-styles";function s(){return`
|
|
1597
1597
|
.lat-combo__control{ position:relative; }
|
|
1598
1598
|
.lat-combo__chip-row{
|
|
1599
1599
|
display:flex;flex-wrap:wrap;align-items:flex-start;
|
|
@@ -1608,7 +1608,7 @@ ${L(`.${e}[data-lattice-standalone]`)}
|
|
|
1608
1608
|
.lat-combo[data-chip-placement] .lat-combo__summary{
|
|
1609
1609
|
flex:0 0 auto;margin-top:calc(var(--lattice-space)/4);
|
|
1610
1610
|
}
|
|
1611
|
-
`.trim()}function d(
|
|
1611
|
+
`.trim()}function d(B){const ee=B&&B.documentElement;if(!ee||ee.getAttribute(V))return;ee.setAttribute(V,"1");const X=B.createElement("style");X.textContent=s(),(B.head||B.body||ee).appendChild(X)}const i="data-lattice-form-adornment-styles",m="http://www.w3.org/2000/svg";function k(){return`
|
|
1612
1612
|
.lat-combo__value{
|
|
1613
1613
|
flex:0 0 auto; display:inline-flex; align-items:center; min-width:0;
|
|
1614
1614
|
gap:calc(var(--lattice-space) / 2);
|
|
@@ -1648,7 +1648,7 @@ ${L(`.${e}[data-lattice-standalone]`)}
|
|
|
1648
1648
|
.lat-select__value[data-placeholder='true']{ display:block; }
|
|
1649
1649
|
.lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
|
|
1650
1650
|
.lat-combo input.lat-combo__input.lat-combo__input--text-hidden{ color:transparent; caret-color:transparent; }
|
|
1651
|
-
`.trim()}function w(R){const ee=R&&R.documentElement;if(!ee||ee.getAttribute(i))return;ee.setAttribute(i,"1");const X=R.createElement("style");X.textContent=k(),(R.head||R.body||ee).appendChild(X)}function f(R){return/^(https?:|data:image\/|\/)/i.test(R)}function $(R){const ee=String(R??"").trim();if(!ee)return"";const X=ee.split(/\s+/);return X.length>=2?(X[0][0]+X[1][0]).toUpperCase():ee.slice(0,2).toUpperCase()}function b(R){let ee=5381;const X=String(R??"");for(let ge=0;ge<X.length;ge++)ee=(ee<<5)+ee+X.charCodeAt(ge)>>>0;return ee}function _(R){if(R&&R.color!=null&&String(R.color)!=="")return String(R.color);const ee=R&&R.label!=null?String(R.label):R&&R.value!=null?String(R.value):"";return`hsl(${b(ee)%360}, 62%, 45%)`}function n(R,ee){R.style.background=_(ee),R.style.color="#fff"}function O(R,ee){const X=C[ee];if(!X)return null;const ge=R.createElementNS(m,"svg");ge.setAttribute("class","lat-combo__icon"),ge.setAttribute("viewBox",X.viewBox||"0 0 16 16"),ge.setAttribute("aria-hidden","true"),ge.setAttribute("focusable","false");const $e=X.paint==="stroke";for(const K of X.paths||[]){const he=R.createElementNS(m,"path");he.setAttribute("d",K),$e?(he.setAttribute("fill","none"),he.setAttribute("stroke","currentColor"),he.setAttribute("stroke-width","1.5"),he.setAttribute("stroke-linecap","round"),he.setAttribute("stroke-linejoin","round")):he.setAttribute("fill","currentColor"),ge.appendChild(he)}return ge}function ie(R,ee,X){if(ee==null||ee==="")return null;let ge;if(ee.nodeType)ge=ee.cloneNode(!0),ge.setAttribute&&ge.setAttribute("aria-hidden","true");else{const $e=String(ee),K=O(R,$e);K?ge=K:(ge=R.createElement("span"),ge.className="lat-combo__icon lat-combo__icon--glyph",ge.setAttribute("aria-hidden","true"),ge.textContent=$e.slice(0,2))}return X!=null&&String(X)!==""&&ge&&ge.style&&(ge.style.color=String(X)),ge}function F(R,ee){const X=R.createElement("span");X.className="lat-combo__avatar",X.setAttribute("aria-hidden","true");const ge=String(ee.avatar);if(f(ge)){const $e=R.createElement("img");return $e.className="lat-combo__avatar-img",$e.alt="",$e.src=ge,$e.addEventListener("error",()=>{for(;X.firstChild;)X.removeChild(X.firstChild);X.classList.add("lat-combo__avatar--initials"),X.textContent=$(ee.label),n(X,ee)}),X.appendChild($e),X}return X.classList.add("lat-combo__avatar--initials"),X.textContent=ge.slice(0,2),n(X,ee),X}const se={r:255,g:255,b:255},le={r:20,g:24,b:28},ke=3;function ce(R){const ee=R.split(/[,/\s]+/).filter(Boolean).map(Number);return ee.length<3||ee.some(X=>Number.isNaN(X))?null:{r:ee[0],g:ee[1],b:ee[2]}}function B(R,ee){const X=String(ee).trim();if(!X)return null;if(R&&R.createElement)try{const $e=R.defaultView;if($e&&$e.getComputedStyle){const K=R.createElement("span");K.style.color=X;const he=/rgba?\(([^)]+)\)/.exec($e.getComputedStyle(K).color||"");if(he)return ce(he[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(X)){let $e=X.slice(1);return($e.length===3||$e.length===4)&&($e=$e.split("").map(K=>K+K).join("")),{r:parseInt($e.slice(0,2),16),g:parseInt($e.slice(2,4),16),b:parseInt($e.slice(4,6),16)}}const ge=/rgba?\(([^)]+)\)/.exec(X);return ge?ce(ge[1]):null}function be(R){const ee=X=>{const ge=X/255;return ge<=.03928?ge/12.92:((ge+.055)/1.055)**2.4};return .2126*ee(R.r)+.7152*ee(R.g)+.0722*ee(R.b)}function q(R,ee){const X=be(R),ge=be(ee),$e=Math.max(X,ge),K=Math.min(X,ge);return($e+.05)/(K+.05)}function D(R,ee){const X=B(R,ee);return X?q(X,se)<ke||q(X,le)<ke:!0}function J(R,ee){const X=R.createElement("span");X.className="lat-combo__dot",X.setAttribute("aria-hidden","true");const ge=String(ee.dot);return X.style.background=ge,D(R,ge)&&X.setAttribute("data-ring","true"),X}function ne(R,ee){const X=ee&&ee.dot;if(X!=null&&X!=="")return J(R,ee);const ge=ee&&ee.icon;if(ge!=null&&ge!=="")return ie(R,ge,ee.color);const $e=ee&&ee.avatar;return $e!=null&&$e!==""?F(R,ee):null}function oe(R,ee,X){if(typeof X!="function")return null;const ge=X(ee);if(ge==null||ge===!1)return null;if(ge.nodeType)return ge.cloneNode(!0);const $e=R.createElement("span");$e.className="lat-combo__template";const K=String(ge);return K.includes("<")?$e.innerHTML=r(R,K,void 0,{keepClass:!0}):$e.textContent=K,$e}function ve(R){return R!=null&&typeof R=="object"?R.value:R}function pe(R){return R==null?"":typeof R!="object"?String(R):R.label!=null?String(R.label):R.title!=null?String(R.title):R.value==null?"":String(R.value)}function x(R){return R==null||typeof R!="object"?null:R.description!=null?String(R.description):R.subtitle!=null?String(R.subtitle):null}function W(R){return x(R)!=null||R!=null&&typeof R=="object"&&(R.avatar!=null||R.icon!=null)}function U(R){const ee=R!=null&&typeof R=="object"?R:{};return{value:ve(R),label:pe(R),description:x(R),avatar:ee.avatar,icon:ee.icon,color:ee.color,dot:ee.dot,disabled:ee.disabled===!0}}function j(R){if(Array.isArray(R))return{items:R,total:R.length,hasMore:!1};if(R&&typeof R=="object"){const ee=Array.isArray(R.items)?R.items:[];return{items:ee,total:typeof R.total=="number"?R.total:ee.length,hasMore:R.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function Z(R,ee){return R===ee?!0:R!=null&&ee!=null&&String(R)===String(ee)}function ae(R,ee,X={}){const ge=R&&R.defaultView;return ge&&ge.Event?new ge.Event(ee,X):{type:ee,bubbles:X.bubbles!==!1,cancelable:X.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function re(R,ee={}){const X=ee.doc||R&&R.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;X&&(N(X),w(X),h(X));const ge=typeof ee.t=="function"?ee.t:e,$e=ee.multiple===!0,K=$e&&["above","below"].includes(ee.chipPlacement)?ee.chipPlacement:"inside";X&&K!=="inside"&&d(X);const he=typeof ee.debounce=="number"&&ee.debounce>=0?ee.debounce:p,Ee=typeof ee.pageSize=="number"&&ee.pageSize>0?ee.pageSize:o,T=ee.selectAll===!0,g=$e?Array.isArray(ee.value)?ee.value:ee.value==null?[]:[ee.value]:ee.value==null?null:ee.value,Q=X.createElement("div");Q.className="lat-combo",$e&&Q.setAttribute("data-multiple","true"),K!=="inside"&&Q.setAttribute("data-chip-placement",K),ee.inForm||(Q.setAttribute("data-lattice-standalone","true"),Q.setAttribute("data-density",["compact","standard","comfortable"].includes(ee.density)?ee.density:"standard"));const M=X.createElement("div");M.className="lat-combo__control";const a=X.createElement("div");a.className="lat-combo__chips";const Y=X.createElement("span");Y.className="lat-combo__summary",Y.hidden=!0;const fe=X.createElement("div");fe.className="lat-combo__chip-row",fe.setAttribute("role","group"),fe.hidden=!0;const me=K==="inside"?a:fe;typeof ee.maxHeight=="number"&&(me.style.maxHeight=`${ee.maxHeight}px`);const Ae=X.createElement("span");Ae.className="lat-combo__value",Ae.setAttribute("aria-hidden","true"),Ae.hidden=!0;const ue=X.createElement("input");ue.className="lat-combo__input",ue.type="text",ue.setAttribute("role","combobox"),ue.setAttribute("aria-autocomplete","list"),ue.setAttribute("aria-haspopup","listbox"),ue.setAttribute("aria-expanded","false"),$e&&ue.setAttribute("aria-multiselectable","true"),ee.placeholder!=null&&(ue.placeholder=String(ee.placeholder)),ee.inForm&&ee.ariaLabel!=null&&ue.setAttribute("aria-label",String(ee.ariaLabel));const Pe=X.createElement("button");Pe.type="button",Pe.className="lat-combo__toggle",Pe.setAttribute("aria-label",ge("form.combo.toggle")),Pe.setAttribute("aria-haspopup","listbox"),Pe.setAttribute("aria-expanded","false");const Se=v(X,"chevronDown");Se&&Pe.appendChild(Se);const Be=X.createElement("button");Be.type="button",Be.className="lat-combo__clear",Be.setAttribute("aria-label",ge("form.combo.clear")),Be.hidden=!0;const Te=v(X,"close");Te&&Be.appendChild(Te);const Ne=!$e&&ee.clearable===!0,Me=X.createElement("div");Me.className="lat-combo__popup lat-combo",Me.hidden=!0;const Oe=X.createElement("div");Oe.className="lat-combo__list",Oe.setAttribute("role","listbox");const He=X.createElement("div");He.className="lat-combo__spacer",Oe.appendChild(He);const Re=X.createElement("div");Re.className="lat-combo__status",Re.setAttribute("role","status"),Re.setAttribute("aria-live","polite");const Fe=X.createElement("div");Fe.className="lat-combo__option lat-combo__option--create",Fe.setAttribute("role","option"),Fe.hidden=!0,Oe.insertBefore(Fe,He);const Ge=X.createElement("div");Ge.className="lat-combo__empty",Ge.setAttribute("role","presentation"),Ge.setAttribute("aria-live","polite"),Ge.hidden=!0,Oe.insertBefore(Ge,He),Me.appendChild(Oe),Me.appendChild(Re),M.appendChild(Me),K!=="inside"?(M.appendChild(ue),M.appendChild(Pe),fe.appendChild(a),fe.appendChild(Y),K==="above"&&Q.appendChild(fe),Q.appendChild(M),K==="below"&&Q.appendChild(fe)):(M.appendChild(a),M.appendChild(Y),M.appendChild(Ae),M.appendChild(ue),Ne&&M.appendChild(Be),M.appendChild(Pe),Q.appendChild(M));const Ze=I("lat-combo-lb");Oe.id=Ze,ue.setAttribute("aria-controls",Ze);let _e=[],je=[];const Le=new Map;let We=0,rt=0,tt=!1,Ke=!1,Qe=!1,et="",mt=!1,ct=-1,vt=null,Ct=0,dt=null;const zt=new Map;let jt=Array.isArray(ee.options)?ee.options:[];const _t=[],ft=[];let at=0,Nt=0;const It=[];let gt=!1,Rt=!1,$t=!1,yt=null;function ut(ye,De,Ve){ye.addEventListener(De,Ve),It.push(()=>ye.removeEventListener(De,Ve))}function wt(ye){const De=Le.get(String(ye));if(De)return De;if(ye!=null){for(const Ve of Le.values())if(Z(Ve.value,ye))return Ve}return null}function Tt(ye){const De=wt(ye);return De?De.label:ye==null?"":String(ye)}function xt(ye){ye.value!=null&&Le.set(String(ye.value),ye)}function Et(ye){if(typeof ee.resolveLabels!="function")return;const De=ye.filter(nt=>nt!=null&&!wt(nt));if(De.length===0)return;const Ve=ee.resolveLabels(De),Ye=nt=>{if(!(gt||!Array.isArray(nt))){for(const ot of nt){const Je=U(ot);Je.value!=null&&xt(Je)}je=je.map(ot=>wt(ot.value)||ot),we(),Ft()}};Ve&&typeof Ve.then=="function"?Ve.then(Ye):Ye(Ve)}function St(){R.dispatchEvent(ae(X,"change",{bubbles:!0}))}function Wt(){return $e?je.map(ye=>ye.value):je.length?je[0].value:null}function Vt(ye){let De;if($e)De=Array.isArray(ye)?ye:ye==null?[]:[ye];else{const Ye=Array.isArray(ye)?ye.length?ye[0]:null:ye;De=Ye==null?[]:[Ye]}const Ve=De.filter(Ye=>Ye!=null&&(Ye!==""||wt(Ye)!=null));je=Ve.map(Ye=>wt(Ye)||{value:Ye,label:Ye==null?"":String(Ye),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Et(Ve),we(),Xe(),Ot()}function ht(){return ee.readOnly===!0}function Bt(){je.length!==0&&(je=[],we(),Xe(),Ot(),Pt(),Ft(),St())}function Kt(ye){const De=X.createElement("span");De.className="lat-combo__chip",De.dataset.value=String(ye.value);const Ve=oe(X,ye,ee.selectedTemplate);if(Ve){const Ye=X.createElement("span");Ye.className="lat-combo__chip-label",Ye.appendChild(Ve),De.appendChild(Ye)}else{const Ye=ne(X,ye);Ye&&De.appendChild(Ye);const nt=X.createElement("span");nt.className="lat-combo__chip-label",nt.textContent=Tt(ye.value),De.appendChild(nt)}if(!ye.disabled&&!ht()){const Ye=X.createElement("button");Ye.type="button",Ye.className="lat-combo__chip-remove",Ye.setAttribute("aria-label",ge("form.combo.remove",{label:Tt(ye.value)})),Ye.textContent="×",ut(Ye,"click",ot=>{ot.stopPropagation(),ze(ye.value)}),De.appendChild(Ye)}return De}function Pt(){$e||(ue.value=je.length?Tt(je[0].value):"")}function Ft(){if($e){Ae.hidden=!0,$t=!1,pt();return}for(;Ae.firstChild;)Ae.removeChild(Ae.firstChild);if(je.length===0){Ae.hidden=!0,$t=!1,pt();return}const ye=je[0],De=oe(X,ye,ee.selectedTemplate),Ve=De||ne(X,ye);$t=!!De,Ve&&Ae.appendChild(Ve),pt()}function pt(){if(!$t){Ae.hidden=Ae.childNodes.length===0,ue.classList.remove("lat-combo__input--text-hidden");return}Ae.hidden=Rt,ue.classList.toggle("lat-combo__input--text-hidden",!Rt)}function de(ye){const De=ge("form.combo.selected",{count:ye});return De==="form.combo.selected"?`Selected: ${ye}`:De}function we(){for(;a.firstChild;)a.removeChild(a.firstChild);if($e){for(const ye of je)a.appendChild(Kt(ye));a.hidden=je.length===0}else a.hidden=!0;K!=="inside"&&(fe.hidden=!$e||je.length===0,fe.setAttribute("aria-label",de(je.length))),Pt(),Ft(),Ce()}function Ce(){if(!$e||je.length===0){Y.hidden=!0;return}const ye=me.getBoundingClientRect().bottom;let De=0;const Ve=[...a.children];for(const Ye of Ve)Ye.getBoundingClientRect().top>=ye-1&&(De+=1);De>0?(Y.hidden=!1,Y.textContent=ge("form.combo.more",{count:De})):Y.hidden=!0}function ze(ye){if(ht())return;const De=je.length;je=je.filter(Ve=>!Z(Ve.value,ye)),je.length!==De&&(we(),Xe(),Ot(),St())}function qe(ye){if(ht())return;const De=wt(ye)||{value:ye,label:ye==null?"":String(ye),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(xt(De),$e){if(je.some(Ve=>Z(Ve.value,ye)))return;je=[...je,De]}else{if(je.length&&Z(je[0].value,ye))return;je=[De]}we(),Xe(),Ot(),St()}function Ue(){if(ht())return;const ye=_e.filter(De=>!De.disabled).map(De=>({...De}));if(!(ye.length===0&&je.length===0)){for(const De of ye)xt(De);je=ye,we(),Xe(),Ot(),St()}}function it(){return _e.length>0&&_e.every(ye=>je.some(De=>Z(De.value,ye.value)))}function Xe(){const ye=Q.querySelector(".lat-combo__select-all");if(!ye)return;const De=it();ye.setAttribute("aria-selected",De?"true":"false"),ye.textContent=ge("form.combo.selectAll")}function lt(){mt||gt||ee.disabled||ht()||(mt=!0,Me.hidden=!1,ue.setAttribute("aria-expanded","true"),Pe.setAttribute("aria-expanded","true"),yt=l(Me,M,{aboveClass:P,onOffscreen:bt}),pr(),_e.length===0&&ee.load&&!Ke&&!Qe?Mt(0):Ht())}function bt(){mt&&(mt=!1,Me.hidden=!0,Me.classList.remove(P),yt&&(yt.close(),yt=null),ue.setAttribute("aria-expanded","false"),Pe.setAttribute("aria-expanded","false"),ue.removeAttribute("aria-activedescendant"))}function sr(){gt||(ue.focus(),lt())}function cr(){ue.blur()}function Lt(ye){if(ct=ye,!mt)return;const De=ye===-1?`${Fe.id}`:`${Ze}-opt-${ye}`;ue.setAttribute("aria-activedescendant",De)}function Ut(ye){const De=Fe.hidden===!1,Ve=De?-1:0,Ye=Math.max(Ve,_e.length-1);if(_e.length===0&&!De){Lt(-1);return}Lt(Math.max(Ve,Math.min(Ye,ct+ye))),Zt()}function Zt(){if(ct<0)return;const ye=ft[ct]||0,De=ye+(_t[ct]||Jt(_e[ct]));ye<Nt?Oe.scrollTop=ye:De>Nt+at&&(Oe.scrollTop=De-at)}function Jt(ye){return W(ye)?52:30}function qt(ye){return`${Ze}-opt-${ye}`}function ur(ye,De){const Ve=X.createElement("div");Ve.className="lat-combo__option",Ve.setAttribute("role","option"),Ve.id=qt(De);const Ye=je.some(Je=>Z(Je.value,ye.value));Ve.setAttribute("aria-selected",Ye?"true":"false"),ye.disabled&&Ve.setAttribute("aria-disabled","true");const nt=oe(X,ye,ee.optionTemplate);if(nt)Ve.appendChild(nt);else{const Je=ne(X,ye);Je&&Ve.appendChild(Je);const st=X.createElement("span");st.className="lat-combo__text";const At=X.createElement("span");if(At.className="lat-combo__title",At.textContent=ye.label,st.appendChild(At),ye.description!=null){const Xt=X.createElement("span");Xt.className="lat-combo__subtitle",Xt.textContent=ye.description,st.appendChild(Xt)}Ve.appendChild(st)}return ut(Ve,"click",Je=>{Je.stopPropagation(),nr(De)}),Ve}function dr(){const ye=ee.newOptions&&!ht()&&et.trim()!=="",De=_e.some(Ve=>Z(Ve.value,et)||Ve.label===et);if(!ye||De){Fe.hidden=!0;return}Fe.hidden=!1,Fe.id=`${Ze}-create`,Fe.textContent=ge("form.combo.create",{query:et}),ct===-1&&Lt(-1)}function fr(){const ye=!Ke&&!Qe&&(typeof ee.load=="function"||jt.length>0);Ge.hidden=!ye,ye&&(Ge.textContent=ge("form.combo.noMatches"))}function Ht(){if(dr(),mt&&(at=Oe.clientHeight||at),_e.length===0){for(He.style.height="0px";He.firstChild;)He.removeChild(He.firstChild);fr(),Fe.hidden!==!1&&(ct=-1,ue.removeAttribute("aria-activedescendant")),Gt(),yt&&yt.reposition();return}Ge.hidden=!0;let ye=!1;for(let Je=0;Je<_e.length;Je++)_t[Je]==null&&(_t[Je]=Jt(_e[Je]));ft.length=0,ft[0]=0;for(let Je=1;Je<=_e.length;Je++)ft[Je]=ft[Je-1]+_t[Je-1];const De=ft[_e.length];He.style.height=`${De}px`;const Ve=Nt,Ye=Nt+at;let nt=0;for(;nt<_e.length-1&&ft[nt+1]<Ve;)nt+=1;let ot=nt;for(;ot<_e.length&&ft[ot]<Ye;)ot+=1;for(ot=Math.min(_e.length,ot+2);He.firstChild;)He.removeChild(He.firstChild);for(let Je=nt;Je<ot;Je++){const st=ur(_e[Je],Je);st.style.position="absolute",st.style.left="0",st.style.right="0",st.style.top="0",st.style.transform=`translateY(${ft[Je]}px)`,He.appendChild(st)}for(let Je=nt;Je<ot;Je++){const st=X.getElementById(qt(Je));if(!st)continue;const At=st.getBoundingClientRect().height;At>0&&Math.abs(At-_t[Je])>.5&&(_t[Je]=At,ye=!0)}if(ye){Ht();return}Gt(),yt&&yt.reposition()}function Gt(){for(;Re.firstChild;)Re.removeChild(Re.firstChild);if(Ke)Re.textContent=ge("form.combo.loading"),Re.dataset.state="loading";else if(Qe){Re.textContent=ge("form.combo.error"),Re.dataset.state="error";const ye=X.createElement("button");ye.type="button",ye.className="lat-combo__retry",ye.textContent=ge("form.combo.retry"),ut(ye,"click",Ve=>{Ve.stopPropagation(),er()}),Re.appendChild(ye)}else _e.length===0&&!ee.load&&jt.length===0?Re.textContent="":_e.length===0?(Re.textContent=ge("form.combo.empty"),Re.dataset.state="empty"):(Re.textContent=ge("form.combo.results",{count:rt}),Re.dataset.state="results")}function Ot(){const ye=`${Ze}-opt-`;for(const De of Oe.querySelectorAll('.lat-combo__option[role="option"]')){const Ve=De.id||"";if(!Ve.startsWith(ye))continue;const Ye=Number(Ve.slice(ye.length));if(Number.isNaN(Ye))continue;const nt=_e[Ye];nt&&De.setAttribute("aria-selected",je.some(ot=>Z(ot.value,nt.value))?"true":"false")}Xe(),Ne&&(Be.hidden=je.length===0||ht())}function pr(){at=Oe.clientHeight||240}function mr(){if(T&&$e){const ye=X.createElement("div");ye.className="lat-combo__select-all",ye.setAttribute("role","option"),ut(ye,"click",Ve=>{Ve.stopPropagation(),!ht()&&(it()?(je=[],we(),Ot(),St()):Ue())}),Me.insertBefore(ye,Oe)}}function Mt(ye){if(gt)return;if(typeof ee.load!="function"){const ot=et.trim().toLowerCase(),Je=jt.map(U).filter(st=>ot===""||st.label.toLowerCase().includes(ot));_e=Je,rt=Je.length,tt=!1,We=1,_t.length=0,ft.length=0;for(const st of _e)xt(st);Ht();return}if(Ke)return;Ke=!0,Qe=!1,Ct+=1;const De=Ct;vt&&vt.abort(),vt=new AbortController;const Ve=vt.signal;Gt();let Ye;try{Ye=ee.load({search:et,page:ye,signal:Ve,pageSize:Ee})}catch{Ke=!1,Qe=!0,Gt();return}const nt=ot=>{if(gt||De!==Ct)return;Ke=!1;const Je=j(ot),st=Je.items.map(U);ye===0?(_e=st,_t.length=0,ft.length=0,zt.set(et,{items:st,total:Je.total,hasMore:Je.hasMore,nextPage:1})):_e=_e.concat(st),rt=typeof Je.total=="number"?Je.total:_e.length,tt=Je.hasMore,We=ye+1;for(const At of st)xt(At);_t.length=_e.length,Ht(),Qt()};Ye&&typeof Ye.then=="function"?Ye.then(nt).catch(ot=>{gt||De!==Ct||ot&&ot.name==="AbortError"||(Ke=!1,Qe=!0,Gt())}):nt(Ye)}function Qt(){if(!tt||Ke||!mt)return;(ft[_e.length]||0)<at+y&&Mt(We)}function er(){gt||(dt&&(clearTimeout(dt),dt=null),vt&&vt.abort(),Ct+=1,zt.delete(et),_e=[],rt=0,tt=!1,Ke=!1,Qe=!1,We=0,_t.length=0,ft.length=0,ct=-1,Mt(0))}function br(ye){if(gt||(jt=Array.isArray(ye)?ye:[],typeof ee.load=="function"))return;Mt(0);const De=je.length;je=je.filter(Ve=>_e.some(Ye=>Z(Ye.value,Ve.value))).map(Ve=>wt(Ve.value)||Ve),je.length!==De?(we(),Xe(),Ot(),St()):we()}function gr(){return!$e&&je.length&&ue.value===Tt(je[0].value)?"":ue.value}function tr(){$e||(Pt(),et!==""&&Yt())}function hr(){return $e?!1:je.length&&ue.value.trim()===""&&!ht()?(Bt(),!0):(tr(),!1)}function Yt(){et=gr(),vt&&vt.abort(),Ct+=1;const ye=zt.get(et);if(ye&&typeof ee.load=="function"){_e=ye.items.map(U),rt=ye.total,tt=ye.hasMore,We=ye.nextPage,Ke=!1,Qe=!1,_t.length=0,ft.length=0,ct=-1;for(const De of _e)xt(De);Ht(),Qt();return}_e=[],rt=0,tt=!1,Ke=!1,Qe=!1,We=0,_t.length=0,ft.length=0,ct=-1,Mt(0)}function _r(){dt&&clearTimeout(dt),dt=setTimeout(()=>{dt=null,Yt()},he)}function vr(ye){const De=Fe.hidden===!1,Ve=_e.length+(De?1:0);if(ye.key==="ArrowDown"){if(ye.preventDefault(),lt(),Ve===0)return;ct===-1?Lt(_e.length?0:-1):Ut(1)}else if(ye.key==="ArrowUp"){if(ye.preventDefault(),!mt){lt();return}if(ct===-1){_e.length&&Lt(0);return}Ut(-1)}else if(ye.key==="Home"){if(!mt)return;ye.preventDefault(),Lt(De?-1:0),Zt()}else if(ye.key==="End"){if(!mt)return;ye.preventDefault(),Lt(_e.length-1),Zt()}else if(ye.key==="PageDown"){if(!mt)return;ye.preventDefault(),Ut(Math.max(1,Math.floor(Math.max(at,60)/30)))}else if(ye.key==="PageUp"){if(!mt)return;ye.preventDefault(),Ut(-Math.max(1,Math.floor(Math.max(at,60)/30)))}else if(ye.key==="Enter"){if(!$e&&je.length&&ue.value.trim()===""&&!ht()){ye.preventDefault(),bt(),Bt();return}if(!mt){lt();return}ct===-1&&De?(ye.preventDefault(),rr()):ct>=0&&_e[ct]&&(ye.preventDefault(),nr(ct))}else ye.key==="Escape"?(dt&&(clearTimeout(dt),dt=null),mt&&(ye.preventDefault(),bt()),tr()):ye.key==="Backspace"&&$e&&ue.value===""&&je.length?(ye.preventDefault(),ze(je[je.length-1].value)):ye.key==="Tab"&&bt()}function rr(){if(!ee.newOptions||ht())return;const ye=et.trim();if(ye==="")return;let De;typeof ee.newOptions=="object"&&typeof ee.newOptions.create=="function"?De=ee.newOptions.create(ye):De={value:ye,label:ye};const Ve=U(De);xt(Ve),qe(Ve.value),$e?ue.focus():bt()}function nr(ye){if(ht())return;const De=_e[ye];!De||De.disabled||($e?(je.some(Ve=>Z(Ve.value,De.value))?ze(De.value):qe(De.value),ue.focus()):(dt&&(clearTimeout(dt),dt=null),qe(De.value),bt(),ue.value=De.label,et!==""&&Yt()))}const yr=()=>{mt||(ue.focus(),!$e&&je.length&&ue.select(),lt())},wr=ye=>{ye.stopPropagation(),mt?bt():(ue.focus(),lt())},or=()=>{t(Q,Me)},xr=()=>{_r()},kr=ye=>{ye.stopPropagation()},Ar=()=>{Nt=Oe.scrollTop,Ht(),tt&&!Ke&&Oe.scrollTop+Oe.clientHeight>=Oe.scrollHeight-y&&Mt(We)},Cr=()=>{Rt=!0,pt(),!$e&&je.length&&ue.select(),R.dispatchEvent(ae(X,"focus"))},$r=()=>{Rt=!1,R.dispatchEvent(ae(X,"blur")),dt&&(clearTimeout(dt),dt=null),bt(),hr(),pt()},Er=()=>{ht()||(Bt(),Pt(),ue.focus())};ut(M,"pointerdown",or),ut(M,"click",yr),Ne&&ut(Be,"click",Er),ut(Pe,"pointerdown",or),ut(Pe,"click",wr),ut(ue,"input",xr),ut(ue,"change",kr),ut(ue,"keydown",vr),ut(ue,"focus",Cr),ut(ue,"blur",$r),ut(Oe,"scroll",Ar),ut(Me,"mousedown",ye=>ye.preventDefault()),ut(Fe,"click",ye=>{ye.stopPropagation(),rr()}),mr(),jt.length&&typeof ee.load!="function"&&(et="",Mt(0)),Vt(g);const kt={el:R,root:Q,input:ue,getValue:Wt,setValue(ye){return Vt(ye),kt},reload(){return er(),kt},setOptions(ye){return br(ye),kt},clear(){return Bt(),kt},open(){return lt(),kt},close(){return bt(),kt},focus(){return sr(),kt},blur(){return cr(),kt},setDisabled(ye){ee.disabled=ye,ue.disabled=ye,Pe.disabled=ye,ye&&bt()},setReadOnly(ye){ee.readOnly=ye,ue.readOnly=ye,ye?(ue.setAttribute("aria-readonly","true"),bt()):ue.removeAttribute("aria-readonly"),we(),Ot()},destroy(){bt(),gt=!0,dt&&clearTimeout(dt),vt&&vt.abort();for(const ye of It.splice(0))ye();for(;Q.firstChild;)Q.removeChild(Q.firstChild)}};return R.appendChild(Q),R.__combo=kt,kt}H("combo",{kind:"field",build(R,ee){const X=ee.doc.createElement("div"),ge=R.props||{},$e=re(X,{load:ge.load,options:R.options,multiple:ge.multiple,value:R.value,resolveLabels:ge.resolveLabels,newOptions:ge.newOptions,optionTemplate:ge.optionTemplate,selectedTemplate:ge.selectedTemplate,selectAll:ge.selectAll,debounce:ge.debounce,pageSize:ge.pageSize,maxHeight:ge.maxHeight,chipPlacement:ge.chipPlacement,clearable:ge.clearable,placeholder:R.placeholder,ariaLabel:R.label,t:ee.t,doc:ee.doc,inForm:!0});if(ee.disposers.push(()=>$e.destroy()),Array.isArray(ge.dependsOn))for(const K of ge.dependsOn){const he=T=>{T.name===K&&($e.clear(),$e.reload())},Ee=ee.emitter.on("change",he);ee.disposers.push(Ee)}return X.focus=()=>$e.focus(),X.blur=()=>$e.blur(),X},read(R){return R.__combo?R.__combo.getValue():null},write(R,ee){R.__combo&&R.__combo.setValue(ee)},state(R,ee){R.__combo&&(R.__combo.setDisabled(ee.disabled===!0),R.__combo.setReadOnly(ee.readOnly===!0))}})}),Ie("packages/modules/form/extras.js",function(S,te){"use strict";Object.defineProperty(S,"injectChromeStyles",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"buildTooltip",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"renderAvatarAddon",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"buildAddons",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"buildPanel",{enumerable:!0,get:function(){return V}});const H=te("packages/modules/form/styles.js").NS,e=te("packages/modules/form/ids.js").nextId,E=te("packages/modules/form/controls/field-icon.js"),I=E.makeFieldIcon,z=E.injectFieldIconStyles,N=te("packages/modules/form/controls/combo.js"),G=N.initialsFor,C=N.renderAvatar,A="data-lattice-form-chrome-styles";function r(s){return s==="cols"?`${H}__cols`:s==="items"?`${H}__items`:`${H}__rows`}function u(){return`
|
|
1651
|
+
`.trim()}function w(B){const ee=B&&B.documentElement;if(!ee||ee.getAttribute(i))return;ee.setAttribute(i,"1");const X=B.createElement("style");X.textContent=k(),(B.head||B.body||ee).appendChild(X)}function f(B){return/^(https?:|data:image\/|\/)/i.test(B)}function $(B){const ee=String(B??"").trim();if(!ee)return"";const X=ee.split(/\s+/);return X.length>=2?(X[0][0]+X[1][0]).toUpperCase():ee.slice(0,2).toUpperCase()}function b(B){let ee=5381;const X=String(B??"");for(let ge=0;ge<X.length;ge++)ee=(ee<<5)+ee+X.charCodeAt(ge)>>>0;return ee}function _(B){if(B&&B.color!=null&&String(B.color)!=="")return String(B.color);const ee=B&&B.label!=null?String(B.label):B&&B.value!=null?String(B.value):"";return`hsl(${b(ee)%360}, 62%, 45%)`}function n(B,ee){B.style.background=_(ee),B.style.color="#fff"}function O(B,ee){const X=C[ee];if(!X)return null;const ge=B.createElementNS(m,"svg");ge.setAttribute("class","lat-combo__icon"),ge.setAttribute("viewBox",X.viewBox||"0 0 16 16"),ge.setAttribute("aria-hidden","true"),ge.setAttribute("focusable","false");const $e=X.paint==="stroke";for(const K of X.paths||[]){const he=B.createElementNS(m,"path");he.setAttribute("d",K),$e?(he.setAttribute("fill","none"),he.setAttribute("stroke","currentColor"),he.setAttribute("stroke-width","1.5"),he.setAttribute("stroke-linecap","round"),he.setAttribute("stroke-linejoin","round")):he.setAttribute("fill","currentColor"),ge.appendChild(he)}return ge}function ie(B,ee,X){if(ee==null||ee==="")return null;let ge;if(ee.nodeType)ge=ee.cloneNode(!0),ge.setAttribute&&ge.setAttribute("aria-hidden","true");else{const $e=String(ee),K=O(B,$e);K?ge=K:(ge=B.createElement("span"),ge.className="lat-combo__icon lat-combo__icon--glyph",ge.setAttribute("aria-hidden","true"),ge.textContent=$e.slice(0,2))}return X!=null&&String(X)!==""&&ge&&ge.style&&(ge.style.color=String(X)),ge}function F(B,ee){const X=B.createElement("span");X.className="lat-combo__avatar",X.setAttribute("aria-hidden","true");const ge=String(ee.avatar);if(f(ge)){const $e=B.createElement("img");return $e.className="lat-combo__avatar-img",$e.alt="",$e.src=ge,$e.addEventListener("error",()=>{for(;X.firstChild;)X.removeChild(X.firstChild);X.classList.add("lat-combo__avatar--initials"),X.textContent=$(ee.label),n(X,ee)}),X.appendChild($e),X}return X.classList.add("lat-combo__avatar--initials"),X.textContent=ge.slice(0,2),n(X,ee),X}const se={r:255,g:255,b:255},le={r:20,g:24,b:28},xe=3;function ue(B){const ee=B.split(/[,/\s]+/).filter(Boolean).map(Number);return ee.length<3||ee.some(X=>Number.isNaN(X))?null:{r:ee[0],g:ee[1],b:ee[2]}}function R(B,ee){const X=String(ee).trim();if(!X)return null;if(B&&B.createElement)try{const $e=B.defaultView;if($e&&$e.getComputedStyle){const K=B.createElement("span");K.style.color=X;const he=/rgba?\(([^)]+)\)/.exec($e.getComputedStyle(K).color||"");if(he)return ue(he[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(X)){let $e=X.slice(1);return($e.length===3||$e.length===4)&&($e=$e.split("").map(K=>K+K).join("")),{r:parseInt($e.slice(0,2),16),g:parseInt($e.slice(2,4),16),b:parseInt($e.slice(4,6),16)}}const ge=/rgba?\(([^)]+)\)/.exec(X);return ge?ue(ge[1]):null}function be(B){const ee=X=>{const ge=X/255;return ge<=.03928?ge/12.92:((ge+.055)/1.055)**2.4};return .2126*ee(B.r)+.7152*ee(B.g)+.0722*ee(B.b)}function q(B,ee){const X=be(B),ge=be(ee),$e=Math.max(X,ge),K=Math.min(X,ge);return($e+.05)/(K+.05)}function D(B,ee){const X=R(B,ee);return X?q(X,se)<xe||q(X,le)<xe:!0}function J(B,ee){const X=B.createElement("span");X.className="lat-combo__dot",X.setAttribute("aria-hidden","true");const ge=String(ee.dot);return X.style.background=ge,D(B,ge)&&X.setAttribute("data-ring","true"),X}function ne(B,ee){const X=ee&&ee.dot;if(X!=null&&X!=="")return J(B,ee);const ge=ee&&ee.icon;if(ge!=null&&ge!=="")return ie(B,ge,ee.color);const $e=ee&&ee.avatar;return $e!=null&&$e!==""?F(B,ee):null}function oe(B,ee,X){if(typeof X!="function")return null;const ge=X(ee);if(ge==null||ge===!1)return null;if(ge.nodeType)return ge.cloneNode(!0);const $e=B.createElement("span");$e.className="lat-combo__template";const K=String(ge);return K.includes("<")?$e.innerHTML=r(B,K,void 0,{keepClass:!0}):$e.textContent=K,$e}function ve(B){return B!=null&&typeof B=="object"?B.value:B}function pe(B){return B==null?"":typeof B!="object"?String(B):B.label!=null?String(B.label):B.title!=null?String(B.title):B.value==null?"":String(B.value)}function x(B){return B==null||typeof B!="object"?null:B.description!=null?String(B.description):B.subtitle!=null?String(B.subtitle):null}function W(B){return x(B)!=null||B!=null&&typeof B=="object"&&(B.avatar!=null||B.icon!=null)}function U(B){const ee=B!=null&&typeof B=="object"?B:{};return{value:ve(B),label:pe(B),description:x(B),avatar:ee.avatar,icon:ee.icon,color:ee.color,dot:ee.dot,disabled:ee.disabled===!0}}function j(B){if(Array.isArray(B))return{items:B,total:B.length,hasMore:!1};if(B&&typeof B=="object"){const ee=Array.isArray(B.items)?B.items:[];return{items:ee,total:typeof B.total=="number"?B.total:ee.length,hasMore:B.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function Z(B,ee){return B===ee?!0:B!=null&&ee!=null&&String(B)===String(ee)}function ae(B,ee,X={}){const ge=B&&B.defaultView;return ge&&ge.Event?new ge.Event(ee,X):{type:ee,bubbles:X.bubbles!==!1,cancelable:X.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function re(B,ee={}){const X=ee.doc||B&&B.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;X&&(T(X),w(X),h(X));const ge=typeof ee.t=="function"?ee.t:e,$e=ee.multiple===!0,K=$e&&["above","below"].includes(ee.chipPlacement)?ee.chipPlacement:"inside";X&&K!=="inside"&&d(X);const he=typeof ee.debounce=="number"&&ee.debounce>=0?ee.debounce:p,Ee=typeof ee.pageSize=="number"&&ee.pageSize>0?ee.pageSize:o,N=ee.selectAll===!0,g=$e?Array.isArray(ee.value)?ee.value:ee.value==null?[]:[ee.value]:ee.value==null?null:ee.value,Q=X.createElement("div");Q.className="lat-combo",$e&&Q.setAttribute("data-multiple","true"),K!=="inside"&&Q.setAttribute("data-chip-placement",K),ee.inForm||(Q.setAttribute("data-lattice-standalone","true"),Q.setAttribute("data-density",["compact","standard","comfortable"].includes(ee.density)?ee.density:"standard"));const M=X.createElement("div");M.className="lat-combo__control";const a=X.createElement("div");a.className="lat-combo__chips";const Y=X.createElement("span");Y.className="lat-combo__summary",Y.hidden=!0;const fe=X.createElement("div");fe.className="lat-combo__chip-row",fe.setAttribute("role","group"),fe.hidden=!0;const me=K==="inside"?a:fe;typeof ee.maxHeight=="number"&&(me.style.maxHeight=`${ee.maxHeight}px`);const Ae=X.createElement("span");Ae.className="lat-combo__value",Ae.setAttribute("aria-hidden","true"),Ae.hidden=!0;const de=X.createElement("input");de.className="lat-combo__input",de.type="text",de.setAttribute("role","combobox"),de.setAttribute("aria-autocomplete","list"),de.setAttribute("aria-haspopup","listbox"),de.setAttribute("aria-expanded","false"),$e&&de.setAttribute("aria-multiselectable","true"),ee.placeholder!=null&&(de.placeholder=String(ee.placeholder)),ee.inForm&&ee.ariaLabel!=null&&de.setAttribute("aria-label",String(ee.ariaLabel));const Pe=X.createElement("button");Pe.type="button",Pe.className="lat-combo__toggle",Pe.setAttribute("aria-label",ge("form.combo.toggle")),Pe.setAttribute("aria-haspopup","listbox"),Pe.setAttribute("aria-expanded","false");const Se=v(X,"chevronDown");Se&&Pe.appendChild(Se);const Be=X.createElement("button");Be.type="button",Be.className="lat-combo__clear",Be.setAttribute("aria-label",ge("form.combo.clear")),Be.hidden=!0;const Te=v(X,"close");Te&&Be.appendChild(Te);const Ne=!$e&&ee.clearable===!0,Me=X.createElement("div");Me.className="lat-combo__popup lat-combo",Me.hidden=!0;const Oe=X.createElement("div");Oe.className="lat-combo__list",Oe.setAttribute("role","listbox");const He=X.createElement("div");He.className="lat-combo__spacer",Oe.appendChild(He);const Re=X.createElement("div");Re.className="lat-combo__status",Re.setAttribute("role","status"),Re.setAttribute("aria-live","polite");const Fe=X.createElement("div");Fe.className="lat-combo__option lat-combo__option--create",Fe.setAttribute("role","option"),Fe.hidden=!0,Oe.insertBefore(Fe,He);const Ge=X.createElement("div");Ge.className="lat-combo__empty",Ge.setAttribute("role","presentation"),Ge.setAttribute("aria-live","polite"),Ge.hidden=!0,Oe.insertBefore(Ge,He),Me.appendChild(Oe),Me.appendChild(Re),M.appendChild(Me),K!=="inside"?(M.appendChild(de),M.appendChild(Pe),fe.appendChild(a),fe.appendChild(Y),K==="above"&&Q.appendChild(fe),Q.appendChild(M),K==="below"&&Q.appendChild(fe)):(M.appendChild(a),M.appendChild(Y),M.appendChild(Ae),M.appendChild(de),Ne&&M.appendChild(Be),M.appendChild(Pe),Q.appendChild(M));const Ze=I("lat-combo-lb");Oe.id=Ze,de.setAttribute("aria-controls",Ze);let _e=[],je=[];const Le=new Map;let We=0,nt=0,tt=!1,Ke=!1,Qe=!1,et="",pt=!1,ct=-1,ht=null,Et=0,dt=null;const Dt=new Map;let jt=Array.isArray(ee.options)?ee.options:[];const gt=[],ft=[];let lt=0,Nt=0;const Tt=[];let wt=!1,xt=!1,zt=!1,vt=null;function ut(ye,De,Ve){ye.addEventListener(De,Ve),Tt.push(()=>ye.removeEventListener(De,Ve))}function yt(ye){const De=Le.get(String(ye));if(De)return De;if(ye!=null){for(const Ve of Le.values())if(Z(Ve.value,ye))return Ve}return null}function kt(ye){const De=yt(ye);return De?De.label:ye==null?"":String(ye)}function At(ye){ye.value!=null&&Le.set(String(ye.value),ye)}function Gt(ye){if(typeof ee.resolveLabels!="function")return;const De=ye.filter(at=>at!=null&&!yt(at));if(De.length===0)return;const Ve=ee.resolveLabels(De),Ye=at=>{if(!(wt||!Array.isArray(at))){for(const it of at){const Je=U(it);Je.value!=null&&At(Je)}je=je.map(it=>yt(it.value)||it),ce(),Bt()}};Ve&&typeof Ve.then=="function"?Ve.then(Ye):Ye(Ve)}function _t(){B.dispatchEvent(ae(X,"change",{bubbles:!0}))}function Kt(){return $e?je.map(ye=>ye.value):je.length?je[0].value:null}function Ut(ye){let De;if($e)De=Array.isArray(ye)?ye:ye==null?[]:[ye];else{const Ye=Array.isArray(ye)?ye.length?ye[0]:null:ye;De=Ye==null?[]:[Ye]}const Ve=De.filter(Ye=>Ye!=null&&(Ye!==""||yt(Ye)!=null));je=Ve.map(Ye=>yt(Ye)||{value:Ye,label:Ye==null?"":String(Ye),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Gt(Ve),ce(),rt(),Ot()}function bt(){return ee.readOnly===!0}function It(){je.length!==0&&(je=[],ce(),rt(),Ot(),Rt(),Bt(),_t())}function Zt(ye){const De=X.createElement("span");De.className="lat-combo__chip",De.dataset.value=String(ye.value);const Ve=oe(X,ye,ee.selectedTemplate);if(Ve){const Ye=X.createElement("span");Ye.className="lat-combo__chip-label",Ye.appendChild(Ve),De.appendChild(Ye)}else{const Ye=ne(X,ye);Ye&&De.appendChild(Ye);const at=X.createElement("span");at.className="lat-combo__chip-label",at.textContent=kt(ye.value),De.appendChild(at)}if(!ye.disabled&&!bt()){const Ye=X.createElement("button");Ye.type="button",Ye.className="lat-combo__chip-remove",Ye.setAttribute("aria-label",ge("form.combo.remove",{label:kt(ye.value)})),Ye.textContent="×",ut(Ye,"click",it=>{it.stopPropagation(),Ce(ye.value)}),De.appendChild(Ye)}return De}function Rt(){$e||(de.value=je.length?kt(je[0].value):"")}function Bt(){if($e){Ae.hidden=!0,zt=!1,St();return}for(;Ae.firstChild;)Ae.removeChild(Ae.firstChild);if(je.length===0){Ae.hidden=!0,zt=!1,St();return}const ye=je[0],De=oe(X,ye,ee.selectedTemplate),Ve=De||ne(X,ye);zt=!!De,Ve&&Ae.appendChild(Ve),St()}function St(){if(!zt){Ae.hidden=Ae.childNodes.length===0,de.classList.remove("lat-combo__input--text-hidden");return}Ae.hidden=xt,de.classList.toggle("lat-combo__input--text-hidden",!xt)}function mt(ye){const De=ge("form.combo.selected",{count:ye});return De==="form.combo.selected"?`Selected: ${ye}`:De}function ce(){for(;a.firstChild;)a.removeChild(a.firstChild);if($e){for(const ye of je)a.appendChild(Zt(ye));a.hidden=je.length===0}else a.hidden=!0;K!=="inside"&&(fe.hidden=!$e||je.length===0,fe.setAttribute("aria-label",mt(je.length))),Rt(),Bt(),ke()}function ke(){if(!$e||je.length===0){Y.hidden=!0;return}const ye=me.getBoundingClientRect().bottom;let De=0;const Ve=[...a.children];for(const Ye of Ve)Ye.getBoundingClientRect().top>=ye-1&&(De+=1);De>0?(Y.hidden=!1,Y.textContent=ge("form.combo.more",{count:De})):Y.hidden=!0}function Ce(ye){if(bt())return;const De=je.length;je=je.filter(Ve=>!Z(Ve.value,ye)),je.length!==De&&(ce(),rt(),Ot(),_t())}function ze(ye){if(bt())return;const De=yt(ye)||{value:ye,label:ye==null?"":String(ye),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(At(De),$e){if(je.some(Ve=>Z(Ve.value,ye)))return;je=[...je,De]}else{if(je.length&&Z(je[0].value,ye))return;je=[De]}ce(),rt(),Ot(),_t()}function qe(){if(bt())return;const ye=_e.filter(De=>!De.disabled).map(De=>({...De}));if(!(ye.length===0&&je.length===0)){for(const De of ye)At(De);je=ye,ce(),rt(),Ot(),_t()}}function Ue(){return _e.length>0&&_e.every(ye=>je.some(De=>Z(De.value,ye.value)))}function rt(){const ye=Q.querySelector(".lat-combo__select-all");if(!ye)return;const De=Ue();ye.setAttribute("aria-selected",De?"true":"false"),ye.textContent=ge("form.combo.selectAll")}function Xe(){pt||wt||ee.disabled||bt()||(pt=!0,Me.hidden=!1,de.setAttribute("aria-expanded","true"),Pe.setAttribute("aria-expanded","true"),vt=l(Me,M,{aboveClass:P,onOffscreen:ot}),pr(),_e.length===0&&ee.load&&!Ke&&!Qe?Lt(0):Ft())}function ot(){pt&&(pt=!1,Me.hidden=!0,Me.classList.remove(P),vt&&(vt.close(),vt=null),de.setAttribute("aria-expanded","false"),Pe.setAttribute("aria-expanded","false"),de.removeAttribute("aria-activedescendant"))}function Ht(){wt||(de.focus(),Xe())}function cr(){de.blur()}function Pt(ye){if(ct=ye,!pt)return;const De=ye===-1?`${Fe.id}`:`${Ze}-opt-${ye}`;de.setAttribute("aria-activedescendant",De)}function Wt(ye){const De=Fe.hidden===!1,Ve=De?-1:0,Ye=Math.max(Ve,_e.length-1);if(_e.length===0&&!De){Pt(-1);return}Pt(Math.max(Ve,Math.min(Ye,ct+ye))),Yt()}function Yt(){if(ct<0)return;const ye=ft[ct]||0,De=ye+(gt[ct]||qt(_e[ct]));ye<Nt?Oe.scrollTop=ye:De>Nt+lt&&(Oe.scrollTop=De-lt)}function qt(ye){return W(ye)?52:30}function Qt(ye){return`${Ze}-opt-${ye}`}function ur(ye,De){const Ve=X.createElement("div");Ve.className="lat-combo__option",Ve.setAttribute("role","option"),Ve.id=Qt(De);const Ye=je.some(Je=>Z(Je.value,ye.value));Ve.setAttribute("aria-selected",Ye?"true":"false"),ye.disabled&&Ve.setAttribute("aria-disabled","true");const at=oe(X,ye,ee.optionTemplate);if(at)Ve.appendChild(at);else{const Je=ne(X,ye);Je&&Ve.appendChild(Je);const st=X.createElement("span");st.className="lat-combo__text";const $t=X.createElement("span");if($t.className="lat-combo__title",$t.textContent=ye.label,st.appendChild($t),ye.description!=null){const Jt=X.createElement("span");Jt.className="lat-combo__subtitle",Jt.textContent=ye.description,st.appendChild(Jt)}Ve.appendChild(st)}return ut(Ve,"click",Je=>{Je.stopPropagation(),or(De)}),Ve}function dr(){const ye=ee.newOptions&&!bt()&&et.trim()!=="",De=_e.some(Ve=>Z(Ve.value,et)||Ve.label===et);if(!ye||De){Fe.hidden=!0;return}Fe.hidden=!1,Fe.id=`${Ze}-create`,Fe.textContent=ge("form.combo.create",{query:et}),ct===-1&&Pt(-1)}function fr(){const ye=!Ke&&!Qe&&(typeof ee.load=="function"||jt.length>0);Ge.hidden=!ye,ye&&(Ge.textContent=ge("form.combo.noMatches"))}function Ft(){if(dr(),pt&&(lt=Oe.clientHeight||lt),_e.length===0){for(He.style.height="0px";He.firstChild;)He.removeChild(He.firstChild);fr(),Fe.hidden!==!1&&(ct=-1,de.removeAttribute("aria-activedescendant")),Vt(),vt&&vt.reposition();return}Ge.hidden=!0;let ye=!1;for(let Je=0;Je<_e.length;Je++)gt[Je]==null&&(gt[Je]=qt(_e[Je]));ft.length=0,ft[0]=0;for(let Je=1;Je<=_e.length;Je++)ft[Je]=ft[Je-1]+gt[Je-1];const De=ft[_e.length];He.style.height=`${De}px`;const Ve=Nt,Ye=Nt+lt;let at=0;for(;at<_e.length-1&&ft[at+1]<Ve;)at+=1;let it=at;for(;it<_e.length&&ft[it]<Ye;)it+=1;for(it=Math.min(_e.length,it+2);He.firstChild;)He.removeChild(He.firstChild);for(let Je=at;Je<it;Je++){const st=ur(_e[Je],Je);st.style.position="absolute",st.style.left="0",st.style.right="0",st.style.top="0",st.style.transform=`translateY(${ft[Je]}px)`,He.appendChild(st)}for(let Je=at;Je<it;Je++){const st=X.getElementById(Qt(Je));if(!st)continue;const $t=st.getBoundingClientRect().height;$t>0&&Math.abs($t-gt[Je])>.5&&(gt[Je]=$t,ye=!0)}if(ye){Ft();return}Vt(),vt&&vt.reposition()}function Vt(){for(;Re.firstChild;)Re.removeChild(Re.firstChild);if(Ke)Re.textContent=ge("form.combo.loading"),Re.dataset.state="loading";else if(Qe){Re.textContent=ge("form.combo.error"),Re.dataset.state="error";const ye=X.createElement("button");ye.type="button",ye.className="lat-combo__retry",ye.textContent=ge("form.combo.retry"),ut(ye,"click",Ve=>{Ve.stopPropagation(),tr()}),Re.appendChild(ye)}else _e.length===0&&!ee.load&&jt.length===0?Re.textContent="":_e.length===0?(Re.textContent=ge("form.combo.empty"),Re.dataset.state="empty"):(Re.textContent=ge("form.combo.results",{count:nt}),Re.dataset.state="results")}function Ot(){const ye=`${Ze}-opt-`;for(const De of Oe.querySelectorAll('.lat-combo__option[role="option"]')){const Ve=De.id||"";if(!Ve.startsWith(ye))continue;const Ye=Number(Ve.slice(ye.length));if(Number.isNaN(Ye))continue;const at=_e[Ye];at&&De.setAttribute("aria-selected",je.some(it=>Z(it.value,at.value))?"true":"false")}rt(),Ne&&(Be.hidden=je.length===0||bt())}function pr(){lt=Oe.clientHeight||240}function mr(){if(N&&$e){const ye=X.createElement("div");ye.className="lat-combo__select-all",ye.setAttribute("role","option"),ut(ye,"click",Ve=>{Ve.stopPropagation(),!bt()&&(Ue()?(je=[],ce(),Ot(),_t()):qe())}),Me.insertBefore(ye,Oe)}}function Lt(ye){if(wt)return;if(typeof ee.load!="function"){const it=et.trim().toLowerCase(),Je=jt.map(U).filter(st=>it===""||st.label.toLowerCase().includes(it));_e=Je,nt=Je.length,tt=!1,We=1,gt.length=0,ft.length=0;for(const st of _e)At(st);Ft();return}if(Ke)return;Ke=!0,Qe=!1,Et+=1;const De=Et;ht&&ht.abort(),ht=new AbortController;const Ve=ht.signal;Vt();let Ye;try{Ye=ee.load({search:et,page:ye,signal:Ve,pageSize:Ee})}catch{Ke=!1,Qe=!0,Vt();return}const at=it=>{if(wt||De!==Et)return;Ke=!1;const Je=j(it),st=Je.items.map(U);ye===0?(_e=st,gt.length=0,ft.length=0,Dt.set(et,{items:st,total:Je.total,hasMore:Je.hasMore,nextPage:1})):_e=_e.concat(st),nt=typeof Je.total=="number"?Je.total:_e.length,tt=Je.hasMore,We=ye+1;for(const $t of st)At($t);gt.length=_e.length,Ft(),er()};Ye&&typeof Ye.then=="function"?Ye.then(at).catch(it=>{wt||De!==Et||it&&it.name==="AbortError"||(Ke=!1,Qe=!0,Vt())}):at(Ye)}function er(){if(!tt||Ke||!pt)return;(ft[_e.length]||0)<lt+y&&Lt(We)}function tr(){wt||(dt&&(clearTimeout(dt),dt=null),ht&&ht.abort(),Et+=1,Dt.delete(et),_e=[],nt=0,tt=!1,Ke=!1,Qe=!1,We=0,gt.length=0,ft.length=0,ct=-1,Lt(0))}function br(ye){if(wt||(jt=Array.isArray(ye)?ye:[],typeof ee.load=="function"))return;Lt(0);const De=je.length;je=je.filter(Ve=>_e.some(Ye=>Z(Ye.value,Ve.value))).map(Ve=>yt(Ve.value)||Ve),je.length!==De?(ce(),rt(),Ot(),_t()):ce()}function gr(){return!$e&&je.length&&de.value===kt(je[0].value)?"":de.value}function rr(){$e||(Rt(),et!==""&&Xt())}function hr(){return $e?!1:je.length&&de.value.trim()===""&&!bt()?(It(),!0):(rr(),!1)}function Xt(){et=gr(),ht&&ht.abort(),Et+=1;const ye=Dt.get(et);if(ye&&typeof ee.load=="function"){_e=ye.items.map(U),nt=ye.total,tt=ye.hasMore,We=ye.nextPage,Ke=!1,Qe=!1,gt.length=0,ft.length=0,ct=-1;for(const De of _e)At(De);Ft(),er();return}_e=[],nt=0,tt=!1,Ke=!1,Qe=!1,We=0,gt.length=0,ft.length=0,ct=-1,Lt(0)}function _r(){dt&&clearTimeout(dt),dt=setTimeout(()=>{dt=null,Xt()},he)}function vr(ye){const De=Fe.hidden===!1,Ve=_e.length+(De?1:0);if(ye.key==="ArrowDown"){if(ye.preventDefault(),Xe(),Ve===0)return;ct===-1?Pt(_e.length?0:-1):Wt(1)}else if(ye.key==="ArrowUp"){if(ye.preventDefault(),!pt){Xe();return}if(ct===-1){_e.length&&Pt(0);return}Wt(-1)}else if(ye.key==="Home"){if(!pt)return;ye.preventDefault(),Pt(De?-1:0),Yt()}else if(ye.key==="End"){if(!pt)return;ye.preventDefault(),Pt(_e.length-1),Yt()}else if(ye.key==="PageDown"){if(!pt)return;ye.preventDefault(),Wt(Math.max(1,Math.floor(Math.max(lt,60)/30)))}else if(ye.key==="PageUp"){if(!pt)return;ye.preventDefault(),Wt(-Math.max(1,Math.floor(Math.max(lt,60)/30)))}else if(ye.key==="Enter"){if(!$e&&je.length&&de.value.trim()===""&&!bt()){ye.preventDefault(),ot(),It();return}if(!pt){Xe();return}ct===-1&&De?(ye.preventDefault(),nr()):ct>=0&&_e[ct]&&(ye.preventDefault(),or(ct))}else ye.key==="Escape"?(dt&&(clearTimeout(dt),dt=null),pt&&(ye.preventDefault(),ot()),rr()):ye.key==="Backspace"&&$e&&de.value===""&&je.length?(ye.preventDefault(),Ce(je[je.length-1].value)):ye.key==="Tab"&&ot()}function nr(){if(!ee.newOptions||bt())return;const ye=et.trim();if(ye==="")return;let De;typeof ee.newOptions=="object"&&typeof ee.newOptions.create=="function"?De=ee.newOptions.create(ye):De={value:ye,label:ye};const Ve=U(De);At(Ve),ze(Ve.value),$e?de.focus():ot()}function or(ye){if(bt())return;const De=_e[ye];!De||De.disabled||($e?(je.some(Ve=>Z(Ve.value,De.value))?Ce(De.value):ze(De.value),de.focus()):(dt&&(clearTimeout(dt),dt=null),ze(De.value),ot(),de.value=De.label,et!==""&&Xt()))}const yr=()=>{pt||(de.focus(),!$e&&je.length&&de.select(),Xe())},wr=ye=>{ye.stopPropagation(),pt?ot():(de.focus(),Xe())},ar=()=>{t(Q,Me)},xr=()=>{_r()},kr=ye=>{ye.stopPropagation()},Ar=()=>{Nt=Oe.scrollTop,Ft(),tt&&!Ke&&Oe.scrollTop+Oe.clientHeight>=Oe.scrollHeight-y&&Lt(We)},Cr=()=>{xt=!0,St(),!$e&&je.length&&de.select(),B.dispatchEvent(ae(X,"focus"))},$r=()=>{xt=!1,B.dispatchEvent(ae(X,"blur")),dt&&(clearTimeout(dt),dt=null),ot(),hr(),St()},Er=()=>{bt()||(It(),Rt(),de.focus())};ut(M,"pointerdown",ar),ut(M,"click",yr),Ne&&ut(Be,"click",Er),ut(Pe,"pointerdown",ar),ut(Pe,"click",wr),ut(de,"input",xr),ut(de,"change",kr),ut(de,"keydown",vr),ut(de,"focus",Cr),ut(de,"blur",$r),ut(Oe,"scroll",Ar),ut(Me,"mousedown",ye=>ye.preventDefault()),ut(Fe,"click",ye=>{ye.stopPropagation(),nr()}),mr(),jt.length&&typeof ee.load!="function"&&(et="",Lt(0)),Ut(g);const Ct={el:B,root:Q,input:de,getValue:Kt,setValue(ye){return Ut(ye),Ct},reload(){return tr(),Ct},setOptions(ye){return br(ye),Ct},clear(){return It(),Ct},open(){return Xe(),Ct},close(){return ot(),Ct},focus(){return Ht(),Ct},blur(){return cr(),Ct},setDisabled(ye){ee.disabled=ye,de.disabled=ye,Pe.disabled=ye,ye&&ot()},setReadOnly(ye){ee.readOnly=ye,de.readOnly=ye,ye?(de.setAttribute("aria-readonly","true"),ot()):de.removeAttribute("aria-readonly"),ce(),Ot()},destroy(){ot(),wt=!0,dt&&clearTimeout(dt),ht&&ht.abort();for(const ye of Tt.splice(0))ye();for(;Q.firstChild;)Q.removeChild(Q.firstChild)}};return B.appendChild(Q),B.__combo=Ct,Ct}H("combo",{kind:"field",build(B,ee){const X=ee.doc.createElement("div"),ge=B.props||{},$e=re(X,{load:ge.load,options:B.options,multiple:ge.multiple,value:B.value,resolveLabels:ge.resolveLabels,newOptions:ge.newOptions,optionTemplate:ge.optionTemplate,selectedTemplate:ge.selectedTemplate,selectAll:ge.selectAll,debounce:ge.debounce,pageSize:ge.pageSize,maxHeight:ge.maxHeight,chipPlacement:ge.chipPlacement,clearable:ge.clearable,placeholder:B.placeholder,ariaLabel:B.label,t:ee.t,doc:ee.doc,inForm:!0});if(ee.disposers.push(()=>$e.destroy()),Array.isArray(ge.dependsOn))for(const K of ge.dependsOn){const he=N=>{N.name===K&&($e.clear(),$e.reload())},Ee=ee.emitter.on("change",he);ee.disposers.push(Ee)}return X.focus=()=>$e.focus(),X.blur=()=>$e.blur(),X},read(B){return B.__combo?B.__combo.getValue():null},write(B,ee){B.__combo&&B.__combo.setValue(ee)},state(B,ee){B.__combo&&(B.__combo.setDisabled(ee.disabled===!0),B.__combo.setReadOnly(ee.readOnly===!0))}})}),Ie("packages/modules/form/extras.js",function(S,te){"use strict";Object.defineProperty(S,"injectChromeStyles",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"buildTooltip",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"renderAvatarAddon",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"buildAddons",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"buildPanel",{enumerable:!0,get:function(){return V}});const H=te("packages/modules/form/styles.js").NS,e=te("packages/modules/form/ids.js").nextId,E=te("packages/modules/form/controls/field-icon.js"),I=E.makeFieldIcon,z=E.injectFieldIconStyles,T=te("packages/modules/form/controls/combo.js"),G=T.initialsFor,C=T.renderAvatar,A="data-lattice-form-chrome-styles";function r(s){return s==="cols"?`${H}__cols`:s==="items"?`${H}__items`:`${H}__rows`}function u(){return`
|
|
1652
1652
|
.${H}__label-group{
|
|
1653
1653
|
display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
|
|
1654
1654
|
min-width:0; box-sizing:border-box;
|
|
@@ -1788,7 +1788,7 @@ ${L(`.${e}[data-lattice-standalone]`)}
|
|
|
1788
1788
|
.${H}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
1789
1789
|
.${H}__panel-body{ min-width:0; min-height:0; }
|
|
1790
1790
|
.${H}__panel-body[hidden]{ display:none; }
|
|
1791
|
-
`.trim()}function v(s){const d=s&&s.documentElement;if(!d||(z(s),d.getAttribute(A)))return;d.setAttribute(A,"1");const i=s.createElement("style");i.textContent=u(),(s.head||s.body||d).appendChild(i)}function h(s,d,i,m){d.addEventListener(i,m),s.disposers.push(()=>d.removeEventListener(i,m))}function c(s,d){if(d==null||d==="")return null;if(d.nodeType){const k=d.cloneNode(!0);return k.setAttribute&&k.setAttribute("aria-hidden","true"),k}const i=I(s,String(d));if(i)return i;const m=s.createElement("span");return m.className=`${H}__icon-glyph`,m.setAttribute("aria-hidden","true"),m.textContent=String(d).slice(0,2),m}function l(s,d){const{labelEl:i,item:m,labelPosition:k,labelWidth:w}=d,f=m.tooltip;if(typeof f!="string"||f===""||k==="hidden")return null;v(s.doc);const $=s.doc,b=$.createElement("div");b.className=`${H}__label-group`,k==="left"&&w!=null&&(b.style.flex=`0 0 ${typeof w=="number"?`${w}px`:String(w)}`),b.appendChild(i);const _=e("lat-form-tip"),n=$.createElement("span");n.className=`${H}__tooltip-wrap`;const O=$.createElement("button");O.type="button",O.className=`${H}__tooltip-trigger`,O.setAttribute("aria-label",s.t("form.tooltip.help")),O.setAttribute("aria-expanded","false"),O.setAttribute("aria-controls",_),O.textContent="?";const ie=$.createElement("span");ie.className=`${H}__tooltip`,ie.setAttribute("id",_),ie.setAttribute("role","tooltip"),ie.textContent=f,n.appendChild(O),n.appendChild(ie),b.appendChild(n);let F=!1;const se=()=>{O.setAttribute("aria-expanded","true"),ie.classList.add(`${H}__tooltip--open`)},le=()=>{F||(O.setAttribute("aria-expanded","false"),ie.classList.remove(`${H}__tooltip--open`))};return h(s,O,"mouseenter",se),h(s,O,"mouseleave",le),h(s,O,"focus",se),h(s,O,"blur",le),h(s,O,"click",
|
|
1791
|
+
`.trim()}function v(s){const d=s&&s.documentElement;if(!d||(z(s),d.getAttribute(A)))return;d.setAttribute(A,"1");const i=s.createElement("style");i.textContent=u(),(s.head||s.body||d).appendChild(i)}function h(s,d,i,m){d.addEventListener(i,m),s.disposers.push(()=>d.removeEventListener(i,m))}function c(s,d){if(d==null||d==="")return null;if(d.nodeType){const k=d.cloneNode(!0);return k.setAttribute&&k.setAttribute("aria-hidden","true"),k}const i=I(s,String(d));if(i)return i;const m=s.createElement("span");return m.className=`${H}__icon-glyph`,m.setAttribute("aria-hidden","true"),m.textContent=String(d).slice(0,2),m}function l(s,d){const{labelEl:i,item:m,labelPosition:k,labelWidth:w}=d,f=m.tooltip;if(typeof f!="string"||f===""||k==="hidden")return null;v(s.doc);const $=s.doc,b=$.createElement("div");b.className=`${H}__label-group`,k==="left"&&w!=null&&(b.style.flex=`0 0 ${typeof w=="number"?`${w}px`:String(w)}`),b.appendChild(i);const _=e("lat-form-tip"),n=$.createElement("span");n.className=`${H}__tooltip-wrap`;const O=$.createElement("button");O.type="button",O.className=`${H}__tooltip-trigger`,O.setAttribute("aria-label",s.t("form.tooltip.help")),O.setAttribute("aria-expanded","false"),O.setAttribute("aria-controls",_),O.textContent="?";const ie=$.createElement("span");ie.className=`${H}__tooltip`,ie.setAttribute("id",_),ie.setAttribute("role","tooltip"),ie.textContent=f,n.appendChild(O),n.appendChild(ie),b.appendChild(n);let F=!1;const se=()=>{O.setAttribute("aria-expanded","true"),ie.classList.add(`${H}__tooltip--open`)},le=()=>{F||(O.setAttribute("aria-expanded","false"),ie.classList.remove(`${H}__tooltip--open`))};return h(s,O,"mouseenter",se),h(s,O,"mouseleave",le),h(s,O,"focus",se),h(s,O,"blur",le),h(s,O,"click",xe=>{xe.stopPropagation(),F=!F,F?se():le()}),{group:b,tooltipId:_}}function t(s,d,i,m){const k=m&&m.tagName,w=k==="DIV"&&(i.type==="select"||i.type==="combo");if(!(i.lockIcon!==!1&&(k==="INPUT"||k==="TEXTAREA"||w)&&(i.readOnly===!0||i.readOnlyWhen!=null)))return null;v(s.doc);const $=s.doc.createElement("span");$.className=`${H}__lock`,w&&$.classList.add(`${H}__lock--choice`),$.setAttribute("aria-hidden","true"),$.title=s.t("form.readonly");const b=I(s.doc,"lock");return b&&$.appendChild(b),d.appendChild($),{el:$}}function p(s,d){if(!Array.isArray(s))return null;const i=d==null?"":String(d);for(const m of s){if(m!=null&&typeof m=="object"&&Array.isArray(m.options)){const k=p(m.options,d);if(k)return k;continue}if(m!=null&&typeof m=="object"){const k=m.value==null?"":String(m.value);if(k===i)return{label:m.label!=null?String(m.label):k,avatar:m.avatar,color:m.color}}else{const k=String(m);if(k===i)return{label:k,avatar:void 0,color:void 0}}}return null}function P(s,d,i){let m=null,k=d==null?"":String(d),w;if(typeof s=="function")m=s(d,i);else if(s===!0){const f=p(i.options,d);f&&(k=f.label,w=f.color,f.avatar!=null&&f.avatar!==""&&(m=String(f.avatar)))}else m=String(s);if(m==null||m===""){if(k==null||k==="")return null;m=G(k)}return{avatar:m,label:k,color:w}}function o(s,d,i,m,k){for(;d.firstChild;)d.removeChild(d.firstChild);const w=P(i.avatar,m,k);w&&d.appendChild(C(s,w))}function y(s,d){const i=d.addons;if(!Array.isArray(i)||i.length===0)return null;v(s.doc);const m=s.doc,k=m.createElement("div");k.className=`${H}__addons`;const w=[];for(const f of i){if(f==null||typeof f!="object")continue;if(f.avatar!==void 0&&f.avatar!==null&&f.avatar!==!1){const O=m.createElement("span");O.className=`${H}__addon-avatar`,O.setAttribute("aria-hidden","true"),k.appendChild(O),w.push({el:O,spec:f,avatar:!0});continue}const b=f.href,_=m.createElement(b!=null?"a":"button");_.className=`${H}__addon`,b==null?_.type="button":_.href=String(b),f.ariaLabel!=null&&f.ariaLabel!==""&&(_.setAttribute("aria-label",String(f.ariaLabel)),_.title=f.tooltip!=null&&f.tooltip!==""?String(f.tooltip):String(f.ariaLabel));const n=c(m,f.icon);n&&_.appendChild(n),k.appendChild(_),w.push({el:_,spec:f,avatar:!1})}return{bar:k,entries:w}}function V(s,d,i,m,k){v(s.doc);const w=s.doc,f=w.createElement("section");f.className=`${H}__panel`;const $=w.createElement("div");$.className=`${H}__panel-header`;const b=w.createElement("div");if(b.className=`${H}__panel-heading`,d.title!=null){const O=w.createElement("h3");O.className=`${H}__panel-title`,O.textContent=d.title,b.appendChild(O)}if(d.subtitle!=null){const O=w.createElement("p");O.className=`${H}__panel-subtitle`,O.textContent=d.subtitle,b.appendChild(O)}$.appendChild(b);const _=w.createElement("div");_.className=`${H}__panel-actions`,$.appendChild(_),f.appendChild($);const n=w.createElement("div");n.className=`${H}__panel-body`,d.axis&&(n.classList.add(r(d.axis)),d.axis==="cols"&&k.applyColsGap(n,d.columnGap,d.rowGap),k.buildChildren(s,n,d.blocks,d.axis,m,d.wrap)),f.appendChild(n);for(const O of d.actions){const ie=w.createElement("button");ie.type="button",ie.className=`${H}__panel-action`,O.ariaLabel!=null&&O.ariaLabel!==""&&(ie.setAttribute("aria-label",String(O.ariaLabel)),ie.title=String(O.ariaLabel));const F=c(w,O.icon);F&&ie.appendChild(F),typeof O.onClick=="function"&&h(s,ie,"click",()=>{O.onClick()}),_.appendChild(ie)}if(d.collapsible){const O=w.createElement("button");O.type="button",O.className=`${H}__panel-action ${H}__panel-collapse`,O.setAttribute("aria-expanded","true");const ie=s.t("form.panel.collapse");O.setAttribute("aria-label",ie),O.title=ie;const F=I(w,"chevronUp");F&&O.appendChild(F);let se=!1;h(s,O,"click",()=>{se=!se,n.hidden=se,O.setAttribute("aria-expanded",se?"false":"true");const le=s.t(se?"form.panel.expand":"form.panel.collapse");for(O.setAttribute("aria-label",le),O.title=le;O.firstChild;)O.removeChild(O.firstChild);const xe=I(w,se?"chevronDown":"chevronUp");xe&&O.appendChild(xe)}),_.appendChild(O)}return k.applyCss(f,d.css),d.spacing!=null&&f.style.setProperty("--lattice-form-item-gap",d.spacing),d.padding!=null&&(f.style.padding=d.padding),d.hidden&&(f.hidden=!0),i.appendChild(f),f}}),Ie("packages/modules/form/view.js",function(S,te){"use strict";Object.defineProperty(S,"VALIDATED_KINDS",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"applyCss",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"runValidation",{enumerable:!0,get:function(){return q}}),Object.defineProperty(S,"markValidation",{enumerable:!0,get:function(){return J}}),Object.defineProperty(S,"validateItem",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(S,"widthFlex",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(S,"applyItemWidth",{enumerable:!0,get:function(){return j}}),Object.defineProperty(S,"applyItemHeight",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(S,"applyItemLabelPosition",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(S,"applyItemLabelWidth",{enumerable:!0,get:function(){return re}}),Object.defineProperty(S,"buildItem",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"buildBlock",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"buildChildren",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(S,"mount",{enumerable:!0,get:function(){return he}}),Object.defineProperty(S,"wizardGoTo",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"wizardNext",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"wizardBack",{enumerable:!0,get:function(){return Q}});const we=te("packages/modules/form/styles.js"),H=we.NS,L=we.injectColsBreakpoint,e=we.NEVER_STACK_COLS_CONTAINER,E=te("packages/modules/form/model.js"),I=E.cssSize,z=E.isEmpty,T=E.resolveSize,C=te("packages/modules/form/ids.js").nextId,r=te("packages/modules/form/controls/registry.js").resolveControl,v=te("packages/modules/form/rules.js").applyRules,c=te("packages/modules/form/enter-submit.js").attachEnterSubmit,t=te("packages/modules/form/state.js").syncRecordState,P=te("packages/modules/form/stepper.js").createStepper,o=te("packages/modules/form/validation.js"),y=o.normalizeHookResult,V=o.validateValue,s=te("packages/modules/form/extras.js"),d=s.buildTooltip,i=s.buildLock,m=s.buildAddons,k=s.renderAvatarAddon,w=s.buildPanel,f=new Set(["field","toggle","grid"]),$="data-lattice-separator-label-styles";function b(){return`
|
|
1792
1792
|
.${H}__separator--labelled{
|
|
1793
1793
|
display:flex; align-items:center; gap:var(--lattice-space);
|
|
1794
1794
|
border-top:0; margin:var(--lattice-space) 0; width:100%;
|
|
@@ -1801,7 +1801,7 @@ ${L(`.${e}[data-lattice-standalone]`)}
|
|
|
1801
1801
|
color:var(--lattice-foreground-muted);
|
|
1802
1802
|
font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
|
|
1803
1803
|
}
|
|
1804
|
-
`.trim()}function _(M){const a=M&&M.documentElement;if(!a||a.getAttribute($))return;a.setAttribute($,"1");const Y=M.createElement("style");Y.textContent=b(),(M.head||M.body||a).appendChild(Y)}function n(M,a){if(a!=null){if(typeof a=="string"){if(a.trim()){const Y=typeof M.style.cssText=="string"?M.style.cssText:"";M.style.cssText=Y?`${Y};${a}`:a}return}for(const Y of Object.keys(a))M.style[Y]=a[Y]}}function O(M){return M==="cols"?`${H}__cols`:M==="items"?`${H}__items`:`${H}__rows`}function ie(M,a,Y){M.style.setProperty("--lattice-cols-column-gap",a??"var(--lattice-space)"),M.style.setProperty("--lattice-cols-row-gap",Y??"var(--lattice-space)")}function F(M,a,Y,fe){a.addEventListener(Y,fe),M.disposers.push(()=>a.removeEventListener(Y,fe))}function se(M,a){if(M==null)return null;const Y=M.tagName;return Y==="INPUT"||Y==="TEXTAREA"||Y==="SELECT"?M:a&&(a.kind==="container"||a.kind==="grid"||a.custom===!0)?null:typeof M.querySelector=="function"?M.querySelector("input, textarea, select"):null}function le(M,a,Y){const fe={name:a.item.name,value:Y,previousValue:a.value,item:a.item},me=M.emitter.emitBefore("beforeChange",fe,"user"),Ae=()=>{a.value=Y,a.item.value=Y,be(a);const Se=a.control&&a.control.__latChangeDetail,Be=a.validation&&a.validation.valid===!1;M.emitter.emit("change",{name:a.item.name,value:Y,previousValue:fe.previousValue,item:a.item,...Se&&typeof Se=="object"?Se:{}}),v(M),(a.item.validationMode==="change"||Be)&&ne(M,a)},ue=Se=>{a.def.write(a.control,a.value),B(M,a,Se)},Pe=Se=>{if(!Se){a.def.write(a.control,a.value);return}const Be=ke(M,a,Y);Be&&typeof Be.then=="function"?Be.then(Te=>{Te.ok?Ae():ue(Te.message)}):Be.ok?Ae():ue(Be.message)};me&&typeof me.then=="function"?me.then(Pe):Pe(me)}function ke(M,a,Y){if(a.ruleRequired&&z(Y))return{ok:!1,message:M.t("form.required")};const fe=a.def;if(typeof fe.validate!="function")return{ok:!0,message:null};const me=fe.validate(a.control,a.item,Y);return me&&typeof me.then=="function"?me.then(Ae=>ce(M,Ae)):ce(M,me)}function ce(M,a){return a===!1?{ok:!1,message:M.t("form.invalid")}:typeof a=="string"?{ok:!1,message:a}:{ok:!0,message:null}}function B(M,a,Y){let fe=a.errorEl;fe||(fe=M.doc.createElement("div"),fe.className=`${H}__error`,fe.id=C("lat-form"),a.controlWrap.appendChild(fe),a.errorEl=fe);const me=Y==null||Y===""?M.t("form.invalid"):String(Y);fe.textContent=me,a.el.setAttribute("data-invalid","true"),a.control.setAttribute("aria-invalid","true");const Ae=(a.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!a.validationEl.hidden&&a.validationEl.textContent===me&&Ae.includes(a.validationEl.id))&&!Ae.includes(fe.id)&&(Ae.push(fe.id),a.control.setAttribute("aria-describedby",Ae.join(" ")))}function be(M){M.errorEl&&(M.errorEl.remove(),M.errorEl=null),M.el.removeAttribute("data-invalid"),M.control.removeAttribute("aria-invalid")}function q(M,a){const Y=a.value,fe=a.item;if(typeof a.def.validate=="function"){const me=y(a.def.validate(a.control,fe,Y),fe,M.t);if(me)return me}return V(fe,Y,M.t,a.ruleRequired===!0)}function D(M){const a=M.control;if(M.def&&(M.def.kind==="container"||M.def.kind==="grid"||M.def.custom===!0)||!a||typeof a.querySelector!="function")return a||null;let Y=null;try{Y=a.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{Y=null}return Y||a}function J(M,a,Y){const fe=a.item,me=a.validationEl;if(a.validation.pristine=!1,a.preEl&&(a.preEl.hidden=!0),Y){a.validation.valid=!1,a.validation.code=Y.code,a.validation.message=Y.message,a.control.setAttribute("aria-invalid","true");const ue=a.tooltipId?`${a.tooltipId} ${me.id}`:me.id;a.control.setAttribute("aria-describedby",ue);const Pe=D(a);Pe&&(Pe.setAttribute("aria-invalid","true"),Pe.setAttribute("aria-describedby",ue)),me.textContent=Y.message,me.className=`${H}__validation ${H}__validation--error`,me.hidden=!1;return}a.validation.valid=!0,a.validation.code=null,a.validation.message=null,a.control.removeAttribute("aria-invalid"),a.tooltipId?a.control.setAttribute("aria-describedby",a.tooltipId):a.control.removeAttribute("aria-describedby");const Ae=D(a);Ae&&Ae!==a.control&&(Ae.removeAttribute("aria-invalid"),a.tooltipId?Ae.setAttribute("aria-describedby",a.tooltipId):Ae.removeAttribute("aria-describedby")),typeof fe.successMessage=="string"&&fe.successMessage!==""?(me.textContent=fe.successMessage,me.className=`${H}__validation ${H}__validation--success`,me.hidden=!1):(me.textContent="",me.className=`${H}__validation`,me.hidden=!0)}function ne(M,a){typeof a.def.reset=="function"&&a.def.reset(a.control,a.item);const Y=q(M,a);J(M,a,Y);const fe=Y==null;return M.emitter.emit("validated",{name:a.item.name,item:a.item,value:a.value,valid:fe,failures:Y?[{name:a.item.name,rule:Y.code,message:Y.message}]:[]}),fe}function oe(M,a){const Y=a.control,fe=a.item,me=a.def,Ae=ue=>()=>{M.emitter.emit(ue,{name:fe.name,item:fe}),ue==="blur"&&fe.validationMode==="blur"&&ne(M,a)};if(me.kind==="field"){const ue=()=>{M.emitter.emit("input",{name:fe.name,value:me.read(Y,fe),item:fe})},Pe=()=>{le(M,a,me.read(Y,fe))};F(M,Y,"input",ue),F(M,Y,"change",Pe);for(const Se of me.domEvents||[])F(M,Y,Se,Te=>{const Ne=Te&&typeof Te=="object"&&Te.detail&&typeof Te.detail=="object"?Te.detail:null;M.emitter.emit(Se,Ne?{name:fe.name,item:fe,...Ne}:{name:fe.name,value:me.read(Y,fe),item:fe})})}else me.kind==="toggle"?F(M,Y,"change",()=>{le(M,a,me.read(Y,fe))}):me.kind==="button"&&F(M,Y,"click",()=>{Y.disabled||Y.getAttribute("aria-disabled")==="true"||M.emitter.emit("click",{name:fe.name,item:fe,value:null})});me.kind!=="display"&&(F(M,Y,"focus",Ae("focus")),F(M,Y,"blur",Ae("blur")))}function ve(M,a,Y){if(typeof M=="string"&&/%$/.test(M.trim())){const fe=parseFloat(M);if(Number.isFinite(fe)){const me=Math.round(fe*a/100*1e6)/1e6;return`0 0 calc(${fe}% - ${me} * ${Y??"var(--lattice-cols-column-gap, var(--lattice-space))"})`}}return`0 0 ${I(M)}`}const pe=8;function x(M,a,Y){if(typeof Y=="number")return Y;const fe=String(Y).trim(),me=/^(-?[\d.]+)px$/.exec(fe);if(me)return parseFloat(me[1]);const Ae=M.createElement("div");Ae.style.position="absolute",Ae.style.visibility="hidden",Ae.style.height="0",Ae.style.overflow="hidden",Ae.style.pointerEvents="none",Ae.style.width=I(Y),a.appendChild(Ae);const ue=Ae.getBoundingClientRect().width;return Ae.remove(),ue}function W(M,a,Y){if(Y!=null)return x(M,a.parentElement||a,Y);const fe=a.style.flex,me=a.style.position,Ae=a.style.whiteSpace;a.style.flex="none",a.style.position="absolute",a.style.whiteSpace="nowrap";const ue=a.getBoundingClientRect().width;return a.style.flex=fe,a.style.position=me,a.style.whiteSpace=Ae,ue}function U(M,a,Y,fe,me,Ae){if(typeof ResizeObserver!="function")return;const ue=x(M.doc,Y,Ae),Pe=()=>{const Oe=M.doc.defaultView,He=Oe&&typeof Oe.getComputedStyle=="function"&&parseFloat(Oe.getComputedStyle(Y).columnGap)||0,Re=Y.getBoundingClientRect().width-W(M.doc,fe,me)-He,Fe=Y.getAttribute("data-label-effective");let Ge=Fe;Fe!=="top"&&Re<ue?Ge="top":Fe==="top"&&Re>=ue+pe&&(Ge="left"),Ge!==Fe&&(Y.setAttribute("data-label-effective",Ge),a.labelEffectivePosition=Ge)},Se=M.doc.defaultView,Be=Se&&typeof Se.requestAnimationFrame=="function";let Te=-1,Ne=0;const Me=new ResizeObserver(Oe=>{const He=Oe&&Oe.length?Oe[Oe.length-1]:null,Re=He&&He.contentRect?He.contentRect.width:-1;if(!Be){Pe();return}Re>=0&&Re===Te||Ne||(Te=Re,Ne=Se.requestAnimationFrame(()=>{Ne=0,Pe()}))});Me.observe(Y),M.disposers.push(()=>{Me.disconnect(),Ne&&Se.cancelAnimationFrame(Ne),Ne=0})}function j(M,a){const Y=M.el;if(a==null){Y.style.removeProperty("--lattice-item-flex"),Y.style.width="",Y.style.flex="";return}if(a==="content"){M.colsGapCount!=null?Y.style.setProperty("--lattice-item-flex","0 0 auto"):(Y.style.width="fit-content",Y.style.flex="0 0 auto");return}M.colsGapCount!=null?Y.style.setProperty("--lattice-item-flex",ve(a,M.colsGapCount,M.colsColumnGap)):(Y.style.width=I(a),Y.style.flex="0 0 auto")}function Z(M,a){if(M.def.kind==="container"){M.control.style.height=a==null||a==="content"?"fit-content":I(a);return}if(M.def.kind==="grid"||M.item.type==="listbox"||M.def.custom===!0)return;const Y=M.el;if(a==null){Y.style.removeProperty("--lattice-form-item-height"),Y.removeAttribute("data-item-height");return}Y.style.setProperty("--lattice-form-item-height",a==="content"?"auto":I(a)),Y.setAttribute("data-item-height","")}function ae(M,a){M.labelPosition=a,M.el.setAttribute("data-label-position",a),M.labelEl&&(M.labelEl.classList.toggle(`${H}__label--hidden`,a==="hidden"),a==="left"&&M.labelWidth!=null?M.labelEl.style.flex=`0 0 ${I(M.labelWidth)}`:M.labelEl.style.flex=""),M.fieldRow&&(M.fieldRow.style.flex=a==="left"?"1 1 auto":""),M.isAction&&M.fieldRow&&(a==="left"&&M.labelWidth!=null&&!(M.item.props&&M.item.props.fullWidth===!0)?M.fieldRow.style.paddingLeft=`calc(${I(M.labelWidth)} + var(--lattice-space))`:M.fieldRow.style.paddingLeft="")}function re(M,a){M.labelWidth=a,ae(M,M.labelPosition)}function R(M,a,Y,fe={}){const me=r(a.type)||r("text"),Ae=a.labelPosition!=null?a.labelPosition:fe.labelPosition!=null?fe.labelPosition:"top",ue=a.hiddenLabel===!0?"hidden":Ae,Pe=a.labelWidth!=null?a.labelWidth:fe.labelWidth,Se=a.controlMinWidth!=null?a.controlMinWidth:fe.controlMinWidth,Be=a.requiredHint!==void 0?a.requiredHint:fe.requiredHint,Te=M.doc.createElement("div");Te.className=`${H}__item`,Te.setAttribute("data-label-position",ue),(me.custom||me.kind==="container")&&Te.setAttribute("data-host","");const Ne=me.build(a,M),Me=me.action===!0,Oe=!Me&&a.label!=null&&a.label!=="";let He=null,Re=null,Fe=null;if(Oe){He=M.doc.createElement("label"),He.className=`${H}__label`,He.textContent=String(a.label);const Qe=C("lat-form");He.setAttribute("for",Qe),(se(Ne,me)||Ne).id=Qe,ue==="hidden"&&He.classList.add(`${H}__label--hidden`),Fe=d(M,{labelEl:He,item:a,labelPosition:ue,labelWidth:Pe}),Fe?(Re=Fe.tooltipId,Te.appendChild(Fe.group)):(ue==="left"&&Pe!=null&&(He.style.flex=`0 0 ${I(Pe)}`),Te.appendChild(He))}else if(ue==="hidden"&&!Me){const Qe=se(Ne,me);Qe&&a.placeholder!=null&&a.placeholder!==""&&Qe.setAttribute("aria-label",String(a.placeholder))}const Ge=M.doc.createElement("div");Ge.className=`${H}__control`,Ge.appendChild(Ne);const Ze=i(M,Ge,a,Ne),_e=m(M,a);let je=Ge;_e&&(je=M.doc.createElement("div"),je.className=`${H}__field`,je.appendChild(Ge),je.appendChild(_e.bar)),Te.appendChild(je);let Le=null;!Me&&a.helpMessage!=null&&a.helpMessage!==""&&(Le=M.doc.createElement("div"),Le.className=`${H}__help`,Le.textContent=String(a.helpMessage),Ge.appendChild(Le));let We=null;!Me&&a.preMessage!=null&&a.preMessage!==""&&(We=M.doc.createElement("div"),We.className=`${H}__pre`,We.textContent=String(a.preMessage),Ge.appendChild(We));const rt=M.doc.createElement("div");rt.className=`${H}__validation`,rt.id=C("lat-form"),rt.hidden=!0,Ge.appendChild(rt),a.width!=null&&j({el:Te,colsGapCount:fe.colsGapCount},a.width),ue==="left"&&(je.style.flex="1 1 auto"),Me&&ue==="left"&&Pe!=null&&!(a.props&&a.props.fullWidth===!0)&&(je.style.paddingLeft=`calc(${I(Pe)} + var(--lattice-space))`),n(Te,a.css),a.padding!=null&&me.kind!=="container"&&(Te.style.padding=a.padding);const tt=me.read(Ne,a),Ke={item:a,el:Te,control:Ne,controlWrap:Ge,def:me,value:tt,hidden:a.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:rt,preEl:We,labelEl:He,helpEl:Le,labelPosition:ue,labelPositionBase:Ae,labelEffectivePosition:ue==="left"&&Oe?"left":ue,requiredHint:Be,placeholderEl:se(Ne,me),placeholderBase:a.placeholder!=null?String(a.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:Re,lockEl:Ze?Ze.el:null,fieldRow:je,isAction:Me,labelWidth:Pe,colsGapCount:fe.colsGapCount};if(a.value=tt,Z(Ke,a.height),Re&&Ke.control.setAttribute("aria-describedby",Re),_e)for(const Qe of _e.entries){if(Qe.avatar){k(M.doc,Qe.el,Qe.spec,Ke.value,Ke.item);continue}typeof Qe.spec.onClick=="function"&&F(M,Qe.el,"click",()=>{Qe.spec.onClick(Ke.value,Ke.item)})}if(Ke.syncLock=()=>{if(!Ke.lockEl)return;const Qe=Ke.item.readOnly===!0||Ke.ruleReadOnly;Ke.lockEl.hidden=!Qe,Ke.lockEl.parentElement.classList.toggle(`${H}__control--lock`,Qe)},Ke.syncAddons=()=>{if(!_e)return;const Qe=Ke.item.disabled===!0;for(const et of _e.entries){if(et.avatar){k(M.doc,et.el,et.spec,Ke.value,Ke.item);continue}et.el.tagName==="A"?et.el.setAttribute("aria-disabled",Qe?"true":"false"):et.el.disabled=Qe}},t(Ke),Ke.hidden&&(Te.hidden=!0),me.custom&&Ne.__latticeFormApi){const Qe=Ne.__latticeFormApi;Qe._read=()=>Ke.value,Qe._write=et=>{Ke.value=et,Ke.item.value=et,me.write(Ne,et),v(M)},Qe._commit=et=>{le(M,Ke,et)},Qe._input=et=>{M.emitter.emit("input",{name:Ke.item.name,value:et,item:Ke.item})}}return typeof me.connect=="function"&&me.connect(Ke,M,{clearError:()=>be(Ke),validateItem:()=>ne(M,Ke),applyRules:()=>v(M)}),typeof me.destroy=="function"&&M.disposers.push(()=>me.destroy(Ne)),oe(M,Ke),M.order.push(Ke),a.name!=null&&M.items.set(a.name,Ke),Y.appendChild(Te),ue==="left"&&Oe&&(Te.setAttribute("data-label-effective","left"),me.kind!=="toggle"&&Se!=null&&U(M,Ke,Te,Fe?Fe.group:He,Pe,Se)),Ke}function ee(M,a,Y,fe={}){const me={labelPosition:a.labelPosition!=null?a.labelPosition:fe.labelPosition,labelWidth:a.labelWidth!=null?a.labelWidth:fe.labelWidth,controlMinWidth:a.controlMinWidth!=null?a.controlMinWidth:fe.controlMinWidth,requiredHint:fe.requiredHint};if(a.kind==="panel"){const ue=w(M,a,Y,me,{buildChildren:$e,applyCss:n,applyColsGap:ie});return a.width!=null&&j({el:ue,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),ue}if(a.kind==="spacer"){const ue=M.doc.createElement("div");return ue.className=`${H}__spacer`,n(ue,a.css),a.width!=null&&j({el:ue,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),a.hidden&&(ue.hidden=!0),Y.appendChild(ue),ue}if(a.kind==="separator"){const ue=M.doc.createElement("div");ue.className=`${H}__separator`,ue.setAttribute("role","separator");const Pe=a.label;if(Pe!=null){_(M.doc),ue.classList.add(`${H}__separator--labelled`);const Se=M.t(Pe);ue.setAttribute("aria-label",Se);const Be=M.doc.createElement("span");Be.className=`${H}__separator-rule`,Be.setAttribute("aria-hidden","true");const Te=M.doc.createElement("span");Te.className=`${H}__separator-label`,Te.textContent=Se;const Ne=M.doc.createElement("span");Ne.className=`${H}__separator-rule`,Ne.setAttribute("aria-hidden","true"),ue.appendChild(Be),ue.appendChild(Te),ue.appendChild(Ne)}else ue.setAttribute("aria-label",M.t("form.separator"));return n(ue,a.css),a.hidden&&(ue.hidden=!0),Y.appendChild(ue),ue}if(a.kind==="fieldset"){const ue=M.doc.createElement("fieldset");ue.className=`${H}__fieldset`;let Pe=null;a.legend!=null&&(Pe=M.doc.createElement("legend"),Pe.className=`${H}__legend`,Pe.textContent=a.legend,ue.appendChild(Pe));const Se=M.doc.createElement("div");return Se.className=`${H}__fieldset-body`,a.axis&&Se.classList.add(O(a.axis)),a.axis==="cols"&&ie(Se,a.columnGap,a.rowGap),a.axis&&$e(M,Se,a.blocks,a.axis,me,a.wrap),ue.appendChild(Se),n(ue,a.css),a.spacing!=null&&ue.style.setProperty("--lattice-form-item-gap",a.spacing),a.padding!=null&&(ue.style.padding=a.padding),a.hidden&&(ue.hidden=!0),a.width!=null&&j({el:ue,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),Y.appendChild(ue),a.name!=null&&M.items.set(a.name,{kind:"fieldset",name:a.name,el:ue,legendEl:Pe,label:a.legend!=null?String(a.legend):null,helpEl:null,hidden:a.hidden===!0}),ue}const Ae=M.doc.createElement("div");return Ae.className=O(a.axis),a.axis==="cols"&&ie(Ae,a.columnGap,a.rowGap),a.axis&&$e(M,Ae,a.blocks,a.axis,me,a.wrap),n(Ae,a.css),a.spacing!=null&&Ae.style.setProperty("--lattice-form-item-gap",a.spacing),a.padding!=null&&(Ae.style.padding=a.padding),a.hidden&&(Ae.hidden=!0),a.width!=null&&j({el:Ae,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),Y.appendChild(Ae),Ae}function X(M){const a=M.length-1;for(const ue of M)ue.colsGapCount!==a&&(ue.colsGapCount=a,ue.item.width!=null&&j(ue,ue.item.width));const Y=M.filter(ue=>!ue.el.hidden);let fe=[],me=null;const Ae=[];for(const ue of Y){const Pe=ue.el.getBoundingClientRect().top;fe.length&&Math.abs(Pe-me)>1&&(Ae.push(fe),fe=[]),fe.length||(me=Pe),fe.push(ue)}fe.length&&Ae.push(fe);for(const ue of Ae){const Pe=ue.length-1;for(const Se of ue)Se.colsGapCount!==Pe&&(Se.colsGapCount=Pe,Se.item.width!=null&&j(Se,Se.item.width))}}function ge(M,a,Y){const fe=()=>X(Y);if(fe(),typeof ResizeObserver=="function"){const me=new ResizeObserver(fe);me.observe(a),M.disposers.push(()=>me.disconnect())}if(typeof MutationObserver=="function"){const me=new MutationObserver(Ae=>{Ae.some(ue=>ue.target.parentElement===a)&&fe()});me.observe(a,{attributes:!0,attributeFilter:["hidden"],subtree:!0}),M.disposers.push(()=>me.disconnect())}}function $e(M,a,Y,fe,me={},Ae=!1){const ue=fe==="cols"?{...me,colsGapCount:Y.length-1,colsColumnGap:a.style.getPropertyValue("--lattice-cols-column-gap")||"var(--lattice-space)"}:me,Pe=fe==="cols"&&Ae?[]:null;for(const Se of Y)if(Se.kind==="item"){const Be=R(M,Se,a,ue);Pe&&Pe.push(Be)}else{const Be=ee(M,Se,a,ue);Pe&&Pe.push({el:Be,item:{width:Se.width},colsGapCount:ue.colsGapCount,colsColumnGap:ue.colsColumnGap})}Pe&&Pe.length&&M.pendingColsWrap.push({containerEl:a,records:Pe})}function K(M){for(let a=M&&M.parentNode;a;a=a.parentNode){const Y=a.classList;if(Y&&typeof Y.contains=="function"&&(Y.contains("lattice")||Y.contains("lattice-tokens")))return!0}return!1}function he(M){const a=M.el;for(;a.firstChild;)a.removeChild(a.firstChild);M.items.clear(),M.order.length=0,M.pendingColsWrap=[];const Y=M.model;a.classList.add(H,O(Y.axis)),Y.axis==="cols"&&ie(a,Y.columnGap,Y.rowGap),a.setAttribute("data-density",Y.density),K(a)?a.removeAttribute("data-lattice-standalone"):a.setAttribute("data-lattice-standalone","true"),Y.colsBreakpoint===!1?a.style.setProperty("--lattice-cols-container",e):Y.colsBreakpoint!==480&&a.style.setProperty("--lattice-cols-container",L(M.doc,Y.colsBreakpoint)),M.disposers.push(()=>{a.classList.remove(`${H}__rows`,`${H}__cols`,`${H}__items`)}),n(a,Y.css),Y.spacing!=null&&a.style.setProperty("--lattice-form-item-gap",Y.spacing),Y.labelGap!=null&&a.style.setProperty("--lattice-form-label-gap",Y.labelGap);const fe={labelPosition:Y.labelPosition,labelWidth:Y.labelWidth,controlMinWidth:Y.controlMinWidth,requiredHint:Y.requiredHint};Y.steps&&Y.steps.length?Ee(M,fe):$e(M,a,Y.blocks,Y.axis==="cols"?"cols":"rows",fe,Y.wrap),v(M);for(const{containerEl:me,records:Ae}of M.pendingColsWrap.splice(0))ge(M,me,Ae);c(M)}function Ee(M,a={}){const Y=M.model,fe=Y.steps,me=M.doc,Ae=M.el,ue=me.createElement("div");Ae.appendChild(ue);const Pe=P(ue,{doc:me,t:M.t,steps:fe.map(Fe=>({id:Fe.id,label:Fe.label})),active:0,orientation:Y.stepOrientation,onGoTo:Fe=>{T(M,Fe)}}),Se=[];let Be=M.order.length;for(const Fe of fe){const Ge=me.createElement("div");Ge.className=`${H}__step`,Ge.hidden=!0,$e(M,Ge,Fe.blocks,Fe.axis,a),Fe.css&&n(Ge,Fe.css),Ae.appendChild(Ge);const Ze=M.order.length;Ge.__records=M.order.slice(Be,Ze),Be=Ze,Se.push(Ge)}const Te=me.createElement("div");Te.className=`${H}__step-nav`;const Ne=me.createElement("button");Ne.type="button",Ne.className=`${H}__step-back`,Ne.textContent=M.t("form.back");const Me=me.createElement("button");Me.type="button",Me.className=`${H}__step-next`,Me.textContent=M.t("form.next"),Te.appendChild(Ne),Te.appendChild(Me),Ae.appendChild(Te);const Oe={steps:fe,bodies:Se,stepper:Pe,back:Ne,next:Me,active:0};M.wizard=Oe;const He=()=>{Pe.setActive(Oe.active),Se.forEach((Fe,Ge)=>{Fe.hidden=Ge!==Oe.active}),Ne.disabled=Oe.active===0,Me.textContent=Oe.active===fe.length-1?M.t("form.finish"):M.t("form.next")},Re=Fe=>{const Ge=Se[Fe].__records||[];for(const Ze of Ge)if(Ze.item.name!=null&&f.has(Ze.def.kind)&&Ze.item.disabled!==!0&&!(Ze.ruleHidden===!0||Ze.hidden===!0)&&!(Ze.item.required!==!0&&Ze.item.validation==null&&typeof Ze.def.validate!="function"&&Ze.ruleRequired!==!0)&&!ne(M,Ze))return typeof Ze.def.focus=="function"?Ze.def.focus(Ze.control):typeof Ze.control.focus=="function"&&Ze.control.focus(),Ze;return null};Oe._stepInvalid=Re,Oe._render=He,Ne.addEventListener("click",()=>{Q(M)}),Me.addEventListener("click",()=>{g(M)}),He()}async function T(M,a){const Y=M.wizard;if(!Y)return!1;const fe=Y.steps.length,me=Number(a);if(!Number.isFinite(me)||me<0||me>=fe)return!1;const Ae=Y.active;if(me===Ae)return!1;if(me>Ae&&M.model.validateSteps!==!1)for(let ue=Ae;ue<me;ue+=1){if(Y._stepInvalid(ue))return Y.stepper.setStatus(ue,"error"),!1;Y.stepper.setStatus(ue,"complete")}return Y.active=me,Y._render(),!0}function g(M){const a=M.wizard;if(!a)return Promise.resolve(!1);if(a.active>=a.steps.length-1){if(M.model.validateSteps===!1)return Promise.resolve(!0);const Y=a._stepInvalid(a.active);return a.stepper.setStatus(a.active,Y?"error":"complete"),Promise.resolve(Y==null)}return T(M,a.active+1)}function Q(M){const a=M.wizard;return a?T(M,a.active-1):Promise.resolve(!1)}}),Ie("packages/modules/form/emitter.js",function(S,te){"use strict";Object.defineProperty(S,"FORM_EVENTS",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"Emitter",{enumerable:!0,get:function(){return L}});const xe=new Set(["api","user"]),H=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick","activate"]);class L{#e=new Map;on(E,I){if(typeof I!="function")return()=>{};let z=this.#e.get(E);return z||(z=new Set,this.#e.set(E,z)),z.add(I),()=>this.off(E,I)}off(E,I){const z=this.#e.get(E);z&&z.delete(I)}emit(E,I){const z=this.#e.get(E),N=this.#e.get("*");if((!z||z.size===0)&&(!N||N.size===0))return;const G={...I||null,type:E},C=[],A=r=>{for(const u of[...r])try{u(G)}catch(v){C.push(v)}};z&&z.size&&A(z),N&&N.size&&A(N);for(const r of C)queueMicrotask(()=>{throw r})}emitBefore(E,I,z){const N=this.#e.get(E);if(!N||N.size===0)return!0;let G=!1,C=null;const A=l=>{G=!0,l!=null&&C===null&&(C=String(l))},r=z||I&&I.origin,u={...I||null,type:E,origin:xe.has(r)?r:"user",get defaultPrevented(){return G},get reason(){return C},preventDefault(l){A(l)}},v=[...N],h=()=>(G&&C===null&&(C="prevented"),G&&I&&typeof I=="object"&&(I.reason=C),!G),c=[];for(let l=0;l<v.length;l++){const t=v[l];try{const p=t(u);p&&typeof p.then=="function"?c.push(p):p===!1&&A("prevented")}catch(p){A("error"),console.warn(`lattice-form: a '${E}' before-handler threw; the commit was cancelled.`,p)}}return c.length===0?h():Promise.allSettled(c).then(l=>{for(const t of l)t.status==="rejected"?(A("error"),console.warn(`lattice-form: a '${E}' before-handler rejected; the commit was cancelled.`,t.reason)):t.value===!1&&A("prevented");return h()})}clear(){this.#e.clear()}}}),Ie("packages/modules/form/bind-router.js",function(S,te){"use strict";Object.defineProperty(S,"routerBinding",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"writeRouterRecord",{enumerable:!0,get:function(){return L}});function xe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function H(e){const{router:E,route:I,key:z}=e,N=r=>r!=null&&String(r.rowKey??r.id)===String(z);return{kind:"router",record:()=>E&&typeof E.get=="function"?E.get(I,z):void 0,items:()=>[],density:()=>{},subscribe:r=>{if(!E||typeof E.subscribe!="function")return()=>{};const u=h=>{if(h){for(const c of h.add||[])N(c)&&r(null,null,c);for(const c of h.update||[])N(c)&&r(null,null,c)}},v=E.subscribe(I,u);return typeof v=="function"?v:()=>{}},save:r=>L(e,r)}}function L(e,E){const{router:I,route:z,key:N,onSave:G}=e;if(!Object.keys(E||{}).length)return!0;const A=()=>I&&typeof I.get=="function"?I.get(z,N):void 0,r=l=>{!I||typeof I.apply!="function"||I.apply([{op:"upsert",row:l}])},u=()=>{!I||typeof I.apply!="function"||(xe(v)?I.apply([{op:"upsert",row:v}]):I.apply([{op:"delete",row:h}]))},v=A(),h={...xe(v)?v:{},...E};if(r(h),typeof G!="function")return!0;let c;try{c=G(E,h)}catch{return u(),!1}return c&&typeof c.then=="function"?c.then(()=>!0,()=>(u(),!1)):!0}}),Ie("packages/modules/form/bind.js",function(S,te){"use strict";Object.defineProperty(S,"resolveBind",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"isBound",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"applyBinding",{enumerable:!0,get:function(){return c}});const H=te("packages/modules/form/model.js").DENSITIES,e=te("packages/modules/form/bind-router.js").routerBinding,E=new Set(["number","currency","percent","integer","decimal","duration"]);function I(l){const t=l&&l.dataType;if(t&&(t.unitConfig||t.temperatureConfig))return!0;const p=l&&l.edit?l.edit.editor:null;return p==="unit"||p==="temperature"}function z(l){return l!==null&&typeof l=="object"&&!Array.isArray(l)}function N(l){const t=l&&l.edit?l.edit.editor:null,p=l&&l.type;return t==="checkbox"||p==="boolean"?"checkbox":t==="number"||p!=null&&E.has(p)||I(l)?"number":"input"}function G(l){const t=l&&l.columns&&typeof l.columns.all=="function"?l.columns.all():[],p=[];for(const P of t){if(!P||!P.field||P.generated||P.computed)continue;const o={type:N(P),name:P.field,label:P.title,format:P.format},y=P.dataType,V=y&&y.unitConfig,s=y&&y.temperatureConfig;V?Object.assign(o,{system:V.system,unit:V.unit,binary:V.binary,decimals:V.decimals,minDecimals:V.minDecimals,maxDecimals:V.maxDecimals,display:V.display,group:V.group,space:V.space,placement:V.placement,significantFigures:V.significantFigures,compound:V.compound,nullDisplay:V.nullDisplay}):s&&Object.assign(o,{scale:s.scale,display:s.display,decimals:s.decimals,minDecimals:s.minDecimals,maxDecimals:s.maxDecimals,space:s.space,nullDisplay:s.nullDisplay}),p.push(o)}return p}function C(l,t){const p=l&&l.columns&&typeof l.columns.all=="function"?l.columns.all():[];for(const P of p)if(P&&P.field===t)return P;return null}function A(l){const t=l&&typeof l.get=="function"?l.get("density"):void 0;return H.includes(t)?t:void 0}function r(l){const{grid:t,rowKey:p}=l,P=()=>{const s=t&&t.rows&&typeof t.rows.byKey=="function"?t.rows.byKey(p):null;return s&&z(s.data)?{...s.data}:{}},o=s=>{const d=C(t,s);return d?d.id:s};return{kind:"grid",record:P,items:()=>G(t),density:()=>A(t),subscribe:s=>{if(!t||typeof t.on!="function")return()=>{};const d=i=>{if(!i||i.key!==p)return;const m=t.columns&&typeof t.columns.get=="function"?t.columns.get(i.colId):null,k=m?m.field:i.colId;k&&s(k,i.value)};return t.on("cell:changed",d)},save:s=>{const d=Object.keys(s);if(!d.length)return!0;if(!t||!t.edit||typeof t.edit.setCells!="function")return!1;const i=d.map(k=>({key:p,colId:o(k),value:s[k]})),m=t.edit.setCells(i,"cell",{origin:"form"});return m&&typeof m.then=="function"?m.then(k=>k>0):m>0}}}function u(l){return{kind:"values",record:()=>({...l}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:P=>{for(const o of Object.keys(P))l[o]=P[o];return!0}}}function v(l){const t=l&&l.bind;return t==null||typeof t!="object"?null:t.grid!=null&&z(t.grid)?r(t):t.router!=null?e(t):u(t)}function h(l){return!!(l&&l.bind!=null&&typeof l.bind=="object")}function c(l,t,p){l.bound=p;const P=(V,s)=>{const d=t.getItem(V);d&&d.setValue(s)},o=(V,s,d)=>{if(d!=null){for(const i of Object.keys(d))if(l.items.has(i)){if(l.dirty.has(i)){l.conflicts.add(i);continue}l.baseline[i]=d[i],P(i,d[i])}return}if(l.items.has(V)){if(l.dirty.has(V)){l.conflicts.add(V);return}l.baseline[V]=s,P(V,s)}},y=p.record();if(y!=null&&typeof y=="object")for(const V of Object.keys(y))l.items.has(V)&&(l.baseline[V]=y[V],P(V,y[V]));l.disposers.push(t.on("change",V=>{l.dirty.add(V.name),l.conflicts.delete(V.name)})),l.disposers.push(p.subscribe(o))}}),Ie("packages/modules/shared/sanitise-html.js",function(S,te){"use strict";Object.defineProperty(S,"parseSanitisedHtml",{enumerable:!0,get:function(){return l}});const xe=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),H="http://www.w3.org/2000/svg",L=new Set(["foreignobject","desc","title"]),e=/^<!--[\s\S]*?-->/,E=/^<![^>]*>/,I=/^<\/([a-zA-Z][a-zA-Z0-9:-]*)\s*>/,z=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,N=`(?:\\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s"'>]+))?)*`,G=new RegExp(`^<([a-zA-Z][a-zA-Z0-9:-]*)(${N})\\s*(/?)>`),C={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function A(t){return t.replace(/&(#x?[\da-f]+|\w+);/gi,(p,P)=>{if(P[0]==="#"){const o=+(/x/i.test(P[1])?"0"+P.slice(1):P.slice(1));return o<1114112?String.fromCodePoint(o):p}return C[P]||p})}const r=new WeakMap;function u(t){const p=v(t);return r.set(t,p),p}function v(t){const p={text:A,attr:A};try{const P=t.implementation.createHTMLDocument(""),o=P.createElement("textarea");if(o.innerHTML="& ",o.value!=="& ")return p;const y=P.createElement("div");return{text(V){return o.innerHTML=V,o.value},attr(V,s){return y.innerHTML=`<i a=${s}${V}${s}></i>`,y.firstChild.getAttribute("a")}}}catch{return p}}function h(t,p){const P=p.replace(/\/\*.*?\*\/|[\s\u0000-\u001f\\]+/g,"");return/^style$/i.test(t)?/expression\(|javascript:/i.test(P):/^javascript:/i.test(P)}function c(t,p,P){if(!P)return;z.lastIndex=0;let o=z.exec(P);for(;o;){const y=o[1];if(!/^on/i.test(y)){const V=o[2]!==void 0?o[2]:o[3]!==void 0?o[3]:o[4]!==void 0?o[4]:"",s=t.attr(V,o[3]!==void 0?"'":'"');h(y,s)||p.setAttribute(y,s)}o=z.exec(P)}}function l(t,p,P){const o=r.get(t)||u(t),y=[p],V=[null];let s=0,d=!1;const i=()=>y[y.length-1],m=(k,w)=>{if(!k)return t.createElement(w);const f=typeof t.createElementNS=="function"?t.createElementNS(k,w):t.createElement(w);return f.namespaceURI!==k&&(f.namespaceURI=k),f};for(;s<P.length;){if(d){const $=P.slice(s),b=/<\/script\s*>/i.exec($);if(!b)break;s+=b.index+b[0].length,d=!1;continue}const k=P.indexOf("<",s);if(k===-1){i().appendChild(t.createTextNode(o.text(P.slice(s))));break}k>s&&i().appendChild(t.createTextNode(o.text(P.slice(s,k))));const w=P.slice(k);let f=e.exec(w);if(f){s=k+f[0].length;continue}if(f=I.exec(w),f){const $=f[1].toLowerCase();for(let b=y.length-1;b>0;b-=1)if(y[b].__latTag===$){y.length=b,V.length=b;break}s=k+f[0].length;continue}if(f=G.exec(w),f){const $=f[1].toLowerCase(),b=f[3]==="/";if(s=k+f[0].length,$==="script"){b||(d=!0);continue}const _=V[V.length-1],n=$==="svg"?H:_,O=m(n,n===H?f[1]:$);if(O.__latTag=$,c(o,O,f[2]),i().appendChild(O),!b&&!xe.has($)){const ie=$==="svg"?H:_===H&&L.has($)?null:_;y.push(O),V.push(ie)}continue}if(f=E.exec(w),f){s=k+f[0].length;continue}i().appendChild(t.createTextNode("<")),s=k+1}}}),Ie("packages/modules/form/controls/container.js",function(S,te){"use strict";Object.defineProperty(S,"attachToContainer",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"attachHtmlToContainer",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"getContainerWidget",{enumerable:!0,get:function(){return v}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/model.js").cssSize,I=te("packages/modules/shared/sanitise-html.js").parseSanitisedHtml;function z(h,c,l){if(l!=null){if(typeof l=="object"&&typeof l.nodeType=="number"){c.appendChild(l);return}I(h,c,String(l))}}function N(h){for(;h.firstChild;)h.removeChild(h.firstChild)}function G(h){const c=h.__latAttached;c&&(h.__latAttached=null,!c.keep&&c.view&&typeof c.view.destroy=="function"&&c.view.destroy())}function C(h){return h==null||h==="content"?"fit-content":e(h)}H("container",{kind:"container",build(h,c){const l=c.doc,t=h.props||{},p=l.createElement("div");return p.className="lat-form__container",p.setAttribute("role","region"),h.label!=null&&h.label!==""&&p.setAttribute("aria-label",String(h.label)),p.style.width="100%",p.style.height=C(h.height),h.padding!=null&&(p.style.padding=h.padding),z(l,p,t.html),p},read(){},write(){},state(h,c){const l=c.disabled===!0;h.toggleAttribute("inert",l),h.inert=l,l?h.setAttribute("aria-disabled","true"):h.removeAttribute("aria-disabled")},destroy(h){G(h)}});function A(h){return h.el||h.root||h.element||null}function r(h,c,l={}){G(h),N(h);const p=!(c!=null&&typeof c.nodeType=="number")&&c!=null&&typeof c=="object"?A(c):null,P=p?c:null,o=p||c;o.style.width="100%",h.style.height&&h.style.height!=="fit-content"&&(o.style.height=h.style.height),h.appendChild(o),h.__latAttached={view:P,node:o,keep:l.keep===!0}}function u(h,c,l){G(c),N(c),z(h,c,l)}function v(h){const c=h.__latAttached;return c?c.view||c.node:null}}),Ie("packages/modules/form/controls/button.js",function(S,te){"use strict";Object.defineProperty(S,"injectButtonStyles",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"buildIcon",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"setButtonCaption",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"buttonItemFrom",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"buildButton",{enumerable:!0,get:function(){return i}});const H=te("packages/modules/form/controls/registry.js").registerControl,L="lat-button",e="data-lattice-button-styles",E="http://www.w3.org/2000/svg",I=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"}}),z=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),N=Object.freeze(["sm","md","lg"]),G=Object.freeze(["button","submit","reset"]);function C(){const m=`
|
|
1804
|
+
`.trim()}function _(M){const a=M&&M.documentElement;if(!a||a.getAttribute($))return;a.setAttribute($,"1");const Y=M.createElement("style");Y.textContent=b(),(M.head||M.body||a).appendChild(Y)}function n(M,a){if(a!=null){if(typeof a=="string"){if(a.trim()){const Y=typeof M.style.cssText=="string"?M.style.cssText:"";M.style.cssText=Y?`${Y};${a}`:a}return}for(const Y of Object.keys(a))M.style[Y]=a[Y]}}function O(M){return M==="cols"?`${H}__cols`:M==="items"?`${H}__items`:`${H}__rows`}function ie(M,a,Y){M.style.setProperty("--lattice-cols-column-gap",a??"var(--lattice-space)"),M.style.setProperty("--lattice-cols-row-gap",Y??"var(--lattice-space)")}function F(M,a,Y,fe){a.addEventListener(Y,fe),M.disposers.push(()=>a.removeEventListener(Y,fe))}function se(M,a){if(M==null)return null;const Y=M.tagName;return Y==="INPUT"||Y==="TEXTAREA"||Y==="SELECT"?M:a&&(a.kind==="container"||a.kind==="grid"||a.custom===!0)?null:typeof M.querySelector=="function"?M.querySelector("input, textarea, select"):null}function le(M,a,Y){const fe={name:a.item.name,value:Y,previousValue:a.value,item:a.item},me=M.emitter.emitBefore("beforeChange",fe,"user"),Ae=()=>{a.value=Y,a.item.value=Y,be(a);const Se=a.control&&a.control.__latChangeDetail,Be=a.validation&&a.validation.valid===!1;M.emitter.emit("change",{name:a.item.name,value:Y,previousValue:fe.previousValue,item:a.item,...Se&&typeof Se=="object"?Se:{}}),v(M),(a.item.validationMode==="change"||Be)&&ne(M,a)},de=Se=>{a.def.write(a.control,a.value),R(M,a,Se)},Pe=Se=>{if(!Se){a.def.write(a.control,a.value);return}const Be=xe(M,a,Y);Be&&typeof Be.then=="function"?Be.then(Te=>{Te.ok?Ae():de(Te.message)}):Be.ok?Ae():de(Be.message)};me&&typeof me.then=="function"?me.then(Pe):Pe(me)}function xe(M,a,Y){if(a.ruleRequired&&z(Y))return{ok:!1,message:M.t("form.required")};const fe=a.def;if(typeof fe.validate!="function")return{ok:!0,message:null};const me=fe.validate(a.control,a.item,Y);return me&&typeof me.then=="function"?me.then(Ae=>ue(M,Ae)):ue(M,me)}function ue(M,a){return a===!1?{ok:!1,message:M.t("form.invalid")}:typeof a=="string"?{ok:!1,message:a}:{ok:!0,message:null}}function R(M,a,Y){let fe=a.errorEl;fe||(fe=M.doc.createElement("div"),fe.className=`${H}__error`,fe.id=C("lat-form"),a.controlWrap.appendChild(fe),a.errorEl=fe);const me=Y==null||Y===""?M.t("form.invalid"):String(Y);fe.textContent=me,a.el.setAttribute("data-invalid","true"),a.control.setAttribute("aria-invalid","true");const Ae=(a.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!a.validationEl.hidden&&a.validationEl.textContent===me&&Ae.includes(a.validationEl.id))&&!Ae.includes(fe.id)&&(Ae.push(fe.id),a.control.setAttribute("aria-describedby",Ae.join(" ")))}function be(M){M.errorEl&&(M.errorEl.remove(),M.errorEl=null),M.el.removeAttribute("data-invalid"),M.control.removeAttribute("aria-invalid")}function q(M,a){const Y=a.value,fe=a.item;if(typeof a.def.validate=="function"){const me=y(a.def.validate(a.control,fe,Y),fe,M.t);if(me)return me}return V(fe,Y,M.t,a.ruleRequired===!0)}function D(M){const a=M.control;if(M.def&&(M.def.kind==="container"||M.def.kind==="grid"||M.def.custom===!0)||!a||typeof a.querySelector!="function")return a||null;let Y=null;try{Y=a.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{Y=null}return Y||a}function J(M,a,Y){const fe=a.item,me=a.validationEl;if(a.validation.pristine=!1,a.preEl&&(a.preEl.hidden=!0),Y){a.validation.valid=!1,a.validation.code=Y.code,a.validation.message=Y.message,a.control.setAttribute("aria-invalid","true");const de=a.tooltipId?`${a.tooltipId} ${me.id}`:me.id;a.control.setAttribute("aria-describedby",de);const Pe=D(a);Pe&&(Pe.setAttribute("aria-invalid","true"),Pe.setAttribute("aria-describedby",de)),me.textContent=Y.message,me.className=`${H}__validation ${H}__validation--error`,me.hidden=!1;return}a.validation.valid=!0,a.validation.code=null,a.validation.message=null,a.control.removeAttribute("aria-invalid"),a.tooltipId?a.control.setAttribute("aria-describedby",a.tooltipId):a.control.removeAttribute("aria-describedby");const Ae=D(a);Ae&&Ae!==a.control&&(Ae.removeAttribute("aria-invalid"),a.tooltipId?Ae.setAttribute("aria-describedby",a.tooltipId):Ae.removeAttribute("aria-describedby")),typeof fe.successMessage=="string"&&fe.successMessage!==""?(me.textContent=fe.successMessage,me.className=`${H}__validation ${H}__validation--success`,me.hidden=!1):(me.textContent="",me.className=`${H}__validation`,me.hidden=!0)}function ne(M,a){typeof a.def.reset=="function"&&a.def.reset(a.control,a.item);const Y=q(M,a);J(M,a,Y);const fe=Y==null;return M.emitter.emit("validated",{name:a.item.name,item:a.item,value:a.value,valid:fe,failures:Y?[{name:a.item.name,rule:Y.code,message:Y.message}]:[]}),fe}function oe(M,a){const Y=a.control,fe=a.item,me=a.def,Ae=de=>()=>{M.emitter.emit(de,{name:fe.name,item:fe}),de==="blur"&&fe.validationMode==="blur"&&ne(M,a)};if(me.kind==="field"){const de=()=>{M.emitter.emit("input",{name:fe.name,value:me.read(Y,fe),item:fe})},Pe=()=>{le(M,a,me.read(Y,fe))};F(M,Y,"input",de),F(M,Y,"change",Pe);for(const Se of me.domEvents||[])F(M,Y,Se,Te=>{const Ne=Te&&typeof Te=="object"&&Te.detail&&typeof Te.detail=="object"?Te.detail:null;M.emitter.emit(Se,Ne?{name:fe.name,item:fe,...Ne}:{name:fe.name,value:me.read(Y,fe),item:fe})})}else me.kind==="toggle"?F(M,Y,"change",()=>{le(M,a,me.read(Y,fe))}):me.kind==="button"&&F(M,Y,"click",()=>{Y.disabled||Y.getAttribute("aria-disabled")==="true"||M.emitter.emit("click",{name:fe.name,item:fe,value:null})});me.kind!=="display"&&(F(M,Y,"focus",Ae("focus")),F(M,Y,"blur",Ae("blur")))}function ve(M,a,Y){if(typeof M=="string"&&/%$/.test(M.trim())){const fe=parseFloat(M);if(Number.isFinite(fe)){const me=Math.round(fe*a/100*1e6)/1e6;return`0 0 calc(${fe}% - ${me} * ${Y??"var(--lattice-cols-column-gap, var(--lattice-space))"})`}}return`0 0 ${I(M)}`}const pe=8;function x(M,a,Y){if(typeof Y=="number")return Y;const fe=String(Y).trim(),me=/^(-?[\d.]+)px$/.exec(fe);if(me)return parseFloat(me[1]);const Ae=M.createElement("div");Ae.style.position="absolute",Ae.style.visibility="hidden",Ae.style.height="0",Ae.style.overflow="hidden",Ae.style.pointerEvents="none",Ae.style.width=I(Y),a.appendChild(Ae);const de=Ae.getBoundingClientRect().width;return Ae.remove(),de}function W(M,a,Y){if(Y!=null)return x(M,a.parentElement||a,Y);const fe=a.style.flex,me=a.style.position,Ae=a.style.whiteSpace;a.style.flex="none",a.style.position="absolute",a.style.whiteSpace="nowrap";const de=a.getBoundingClientRect().width;return a.style.flex=fe,a.style.position=me,a.style.whiteSpace=Ae,de}function U(M,a,Y,fe,me,Ae){if(typeof ResizeObserver!="function")return;const de=x(M.doc,Y,Ae),Pe=()=>{const Oe=M.doc.defaultView,He=Oe&&typeof Oe.getComputedStyle=="function"&&parseFloat(Oe.getComputedStyle(Y).columnGap)||0,Re=Y.getBoundingClientRect().width-W(M.doc,fe,me)-He,Fe=Y.getAttribute("data-label-effective");let Ge=Fe;Fe!=="top"&&Re<de?Ge="top":Fe==="top"&&Re>=de+pe&&(Ge="left"),Ge!==Fe&&(Y.setAttribute("data-label-effective",Ge),a.labelEffectivePosition=Ge)},Se=M.doc.defaultView,Be=Se&&typeof Se.requestAnimationFrame=="function";let Te=-1,Ne=0;const Me=new ResizeObserver(Oe=>{const He=Oe&&Oe.length?Oe[Oe.length-1]:null,Re=He&&He.contentRect?He.contentRect.width:-1;if(!Be){Pe();return}Re>=0&&Re===Te||Ne||(Te=Re,Ne=Se.requestAnimationFrame(()=>{Ne=0,Pe()}))});Me.observe(Y),M.disposers.push(()=>{Me.disconnect(),Ne&&Se.cancelAnimationFrame(Ne),Ne=0})}function j(M,a){const Y=M.el;if(a==null){Y.style.removeProperty("--lattice-item-flex"),Y.style.width="",Y.style.flex="";return}if(a==="content"){M.colsGapCount!=null?Y.style.setProperty("--lattice-item-flex","0 0 auto"):(Y.style.width="fit-content",Y.style.flex="0 0 auto");return}M.colsGapCount!=null?Y.style.setProperty("--lattice-item-flex",ve(a,M.colsGapCount,M.colsColumnGap)):(Y.style.width=I(a),Y.style.flex="0 0 auto")}function Z(M,a){if(M.def.kind==="container"){M.control.style.height=a==null||a==="content"?"fit-content":I(a);return}if(M.def.kind==="grid"||M.item.type==="listbox"||M.def.custom===!0)return;const Y=M.el;if(a==null){Y.style.removeProperty("--lattice-form-item-height"),Y.removeAttribute("data-item-height");return}Y.style.setProperty("--lattice-form-item-height",a==="content"?"auto":I(a)),Y.setAttribute("data-item-height","")}function ae(M,a){M.labelPosition=a,M.el.setAttribute("data-label-position",a),M.labelEl&&(M.labelEl.classList.toggle(`${H}__label--hidden`,a==="hidden"),a==="left"&&M.labelWidth!=null?M.labelEl.style.flex=`0 0 ${I(M.labelWidth)}`:M.labelEl.style.flex=""),M.fieldRow&&(M.fieldRow.style.flex=a==="left"?"1 1 auto":""),M.isAction&&M.fieldRow&&(a==="left"&&M.labelWidth!=null&&!(M.item.props&&M.item.props.fullWidth===!0)?M.fieldRow.style.paddingLeft=`calc(${I(M.labelWidth)} + var(--lattice-space))`:M.fieldRow.style.paddingLeft="")}function re(M,a){M.labelWidth=a,ae(M,M.labelPosition)}function B(M,a,Y,fe={}){const me=r(a.type)||r("text"),Ae=a.labelPosition!=null?a.labelPosition:fe.labelPosition!=null?fe.labelPosition:"top",de=a.hiddenLabel===!0?"hidden":Ae,Pe=a.labelWidth!=null?a.labelWidth:fe.labelWidth,Se=a.controlMinWidth!=null?a.controlMinWidth:fe.controlMinWidth,Be=a.requiredHint!==void 0?a.requiredHint:fe.requiredHint,Te=M.doc.createElement("div");Te.className=`${H}__item`,Te.setAttribute("data-label-position",de),(me.custom||me.kind==="container")&&Te.setAttribute("data-host","");const Ne=me.build(a,M),Me=me.action===!0,Oe=!Me&&a.label!=null&&a.label!=="";let He=null,Re=null,Fe=null;if(Oe){He=M.doc.createElement("label"),He.className=`${H}__label`,He.textContent=String(a.label);const Qe=C("lat-form");He.setAttribute("for",Qe),(se(Ne,me)||Ne).id=Qe,de==="hidden"&&He.classList.add(`${H}__label--hidden`),Fe=d(M,{labelEl:He,item:a,labelPosition:de,labelWidth:Pe}),Fe?(Re=Fe.tooltipId,Te.appendChild(Fe.group)):(de==="left"&&Pe!=null&&(He.style.flex=`0 0 ${I(Pe)}`),Te.appendChild(He))}else if(de==="hidden"&&!Me){const Qe=se(Ne,me);Qe&&a.placeholder!=null&&a.placeholder!==""&&Qe.setAttribute("aria-label",String(a.placeholder))}const Ge=M.doc.createElement("div");Ge.className=`${H}__control`,Ge.appendChild(Ne);const Ze=i(M,Ge,a,Ne),_e=m(M,a);let je=Ge;_e&&(je=M.doc.createElement("div"),je.className=`${H}__field`,je.appendChild(Ge),je.appendChild(_e.bar)),Te.appendChild(je);let Le=null;!Me&&a.helpMessage!=null&&a.helpMessage!==""&&(Le=M.doc.createElement("div"),Le.className=`${H}__help`,Le.textContent=String(a.helpMessage),Ge.appendChild(Le));let We=null;!Me&&a.preMessage!=null&&a.preMessage!==""&&(We=M.doc.createElement("div"),We.className=`${H}__pre`,We.textContent=String(a.preMessage),Ge.appendChild(We));const nt=M.doc.createElement("div");nt.className=`${H}__validation`,nt.id=C("lat-form"),nt.hidden=!0,Ge.appendChild(nt),a.width!=null&&j({el:Te,colsGapCount:fe.colsGapCount},a.width),de==="left"&&(je.style.flex="1 1 auto"),Me&&de==="left"&&Pe!=null&&!(a.props&&a.props.fullWidth===!0)&&(je.style.paddingLeft=`calc(${I(Pe)} + var(--lattice-space))`),n(Te,a.css),a.padding!=null&&me.kind!=="container"&&(Te.style.padding=a.padding);const tt=me.read(Ne,a),Ke={item:a,el:Te,control:Ne,controlWrap:Ge,def:me,value:tt,hidden:a.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:nt,preEl:We,labelEl:He,helpEl:Le,labelPosition:de,labelPositionBase:Ae,labelEffectivePosition:de==="left"&&Oe?"left":de,requiredHint:Be,placeholderEl:se(Ne,me),placeholderBase:a.placeholder!=null?String(a.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:Re,lockEl:Ze?Ze.el:null,fieldRow:je,isAction:Me,labelWidth:Pe,colsGapCount:fe.colsGapCount};if(a.value=tt,Z(Ke,a.height),Re&&Ke.control.setAttribute("aria-describedby",Re),_e)for(const Qe of _e.entries){if(Qe.avatar){k(M.doc,Qe.el,Qe.spec,Ke.value,Ke.item);continue}typeof Qe.spec.onClick=="function"&&F(M,Qe.el,"click",()=>{Qe.spec.onClick(Ke.value,Ke.item)})}if(Ke.syncLock=()=>{if(!Ke.lockEl)return;const Qe=Ke.item.readOnly===!0||Ke.ruleReadOnly;Ke.lockEl.hidden=!Qe,Ke.lockEl.parentElement.classList.toggle(`${H}__control--lock`,Qe)},Ke.syncAddons=()=>{if(!_e)return;const Qe=Ke.item.disabled===!0;for(const et of _e.entries){if(et.avatar){k(M.doc,et.el,et.spec,Ke.value,Ke.item);continue}et.el.tagName==="A"?et.el.setAttribute("aria-disabled",Qe?"true":"false"):et.el.disabled=Qe}},t(Ke),Ke.hidden&&(Te.hidden=!0),me.custom&&Ne.__latticeFormApi){const Qe=Ne.__latticeFormApi;Qe._read=()=>Ke.value,Qe._write=et=>{Ke.value=et,Ke.item.value=et,me.write(Ne,et),v(M)},Qe._commit=et=>{le(M,Ke,et)},Qe._input=et=>{M.emitter.emit("input",{name:Ke.item.name,value:et,item:Ke.item})}}return typeof me.connect=="function"&&me.connect(Ke,M,{clearError:()=>be(Ke),validateItem:()=>ne(M,Ke),applyRules:()=>v(M)}),typeof me.destroy=="function"&&M.disposers.push(()=>me.destroy(Ne)),oe(M,Ke),M.order.push(Ke),a.name!=null&&M.items.set(a.name,Ke),Y.appendChild(Te),de==="left"&&Oe&&(Te.setAttribute("data-label-effective","left"),me.kind!=="toggle"&&Se!=null&&U(M,Ke,Te,Fe?Fe.group:He,Pe,Se)),Ke}function ee(M,a,Y,fe={}){const me={labelPosition:a.labelPosition!=null?a.labelPosition:fe.labelPosition,labelWidth:a.labelWidth!=null?a.labelWidth:fe.labelWidth,controlMinWidth:a.controlMinWidth!=null?a.controlMinWidth:fe.controlMinWidth,requiredHint:fe.requiredHint};if(a.kind==="panel"){const de=w(M,a,Y,me,{buildChildren:$e,applyCss:n,applyColsGap:ie});return a.width!=null&&j({el:de,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),de}if(a.kind==="spacer"){const de=M.doc.createElement("div");return de.className=`${H}__spacer`,n(de,a.css),a.width!=null&&j({el:de,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),a.hidden&&(de.hidden=!0),Y.appendChild(de),de}if(a.kind==="separator"){const de=M.doc.createElement("div");de.className=`${H}__separator`,de.setAttribute("role","separator");const Pe=a.label;if(Pe!=null){_(M.doc),de.classList.add(`${H}__separator--labelled`);const Se=M.t(Pe);de.setAttribute("aria-label",Se);const Be=M.doc.createElement("span");Be.className=`${H}__separator-rule`,Be.setAttribute("aria-hidden","true");const Te=M.doc.createElement("span");Te.className=`${H}__separator-label`,Te.textContent=Se;const Ne=M.doc.createElement("span");Ne.className=`${H}__separator-rule`,Ne.setAttribute("aria-hidden","true"),de.appendChild(Be),de.appendChild(Te),de.appendChild(Ne)}else de.setAttribute("aria-label",M.t("form.separator"));return n(de,a.css),a.hidden&&(de.hidden=!0),Y.appendChild(de),de}if(a.kind==="fieldset"){const de=M.doc.createElement("fieldset");de.className=`${H}__fieldset`;let Pe=null;a.legend!=null&&(Pe=M.doc.createElement("legend"),Pe.className=`${H}__legend`,Pe.textContent=a.legend,de.appendChild(Pe));const Se=M.doc.createElement("div");return Se.className=`${H}__fieldset-body`,a.axis&&Se.classList.add(O(a.axis)),a.axis==="cols"&&ie(Se,a.columnGap,a.rowGap),a.axis&&$e(M,Se,a.blocks,a.axis,me,a.wrap),de.appendChild(Se),n(de,a.css),a.spacing!=null&&de.style.setProperty("--lattice-form-item-gap",a.spacing),a.padding!=null&&(de.style.padding=a.padding),a.hidden&&(de.hidden=!0),a.width!=null&&j({el:de,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),Y.appendChild(de),a.name!=null&&M.items.set(a.name,{kind:"fieldset",name:a.name,el:de,legendEl:Pe,label:a.legend!=null?String(a.legend):null,helpEl:null,hidden:a.hidden===!0}),de}const Ae=M.doc.createElement("div");return Ae.className=O(a.axis),a.axis==="cols"&&ie(Ae,a.columnGap,a.rowGap),a.axis&&$e(M,Ae,a.blocks,a.axis,me,a.wrap),n(Ae,a.css),a.spacing!=null&&Ae.style.setProperty("--lattice-form-item-gap",a.spacing),a.padding!=null&&(Ae.style.padding=a.padding),a.hidden&&(Ae.hidden=!0),a.width!=null&&j({el:Ae,colsGapCount:fe.colsGapCount,colsColumnGap:fe.colsColumnGap},a.width),Y.appendChild(Ae),Ae}function X(M){const a=M.length-1;for(const de of M)de.colsGapCount!==a&&(de.colsGapCount=a,de.item.width!=null&&j(de,de.item.width));const Y=M.filter(de=>!de.el.hidden);let fe=[],me=null;const Ae=[];for(const de of Y){const Pe=de.el.getBoundingClientRect().top;fe.length&&Math.abs(Pe-me)>1&&(Ae.push(fe),fe=[]),fe.length||(me=Pe),fe.push(de)}fe.length&&Ae.push(fe);for(const de of Ae){const Pe=de.length-1;for(const Se of de)Se.colsGapCount!==Pe&&(Se.colsGapCount=Pe,Se.item.width!=null&&j(Se,Se.item.width))}}function ge(M,a,Y){const fe=()=>X(Y);if(fe(),typeof ResizeObserver=="function"){const me=new ResizeObserver(fe);me.observe(a),M.disposers.push(()=>me.disconnect())}if(typeof MutationObserver=="function"){const me=new MutationObserver(Ae=>{Ae.some(de=>de.target.parentElement===a)&&fe()});me.observe(a,{attributes:!0,attributeFilter:["hidden"],subtree:!0}),M.disposers.push(()=>me.disconnect())}}function $e(M,a,Y,fe,me={},Ae=!1){const de=fe==="cols"?{...me,colsGapCount:Y.length-1,colsColumnGap:a.style.getPropertyValue("--lattice-cols-column-gap")||"var(--lattice-space)"}:me,Pe=fe==="cols"&&Ae?[]:null;for(const Se of Y)if(Se.kind==="item"){const Be=B(M,Se,a,de);Pe&&Pe.push(Be)}else{const Be=ee(M,Se,a,de);Pe&&Pe.push({el:Be,item:{width:Se.width},colsGapCount:de.colsGapCount,colsColumnGap:de.colsColumnGap})}Pe&&Pe.length&&M.pendingColsWrap.push({containerEl:a,records:Pe})}function K(M){for(let a=M&&M.parentNode;a;a=a.parentNode){const Y=a.classList;if(Y&&typeof Y.contains=="function"&&(Y.contains("lattice")||Y.contains("lattice-tokens")))return!0}return!1}function he(M){const a=M.el;for(;a.firstChild;)a.removeChild(a.firstChild);M.items.clear(),M.order.length=0,M.pendingColsWrap=[];const Y=M.model;a.classList.add(H,O(Y.axis)),Y.axis==="cols"&&ie(a,Y.columnGap,Y.rowGap),a.setAttribute("data-density",Y.density),K(a)?a.removeAttribute("data-lattice-standalone"):a.setAttribute("data-lattice-standalone","true"),Y.colsBreakpoint===!1?a.style.setProperty("--lattice-cols-container",e):Y.colsBreakpoint!==480&&a.style.setProperty("--lattice-cols-container",L(M.doc,Y.colsBreakpoint)),M.disposers.push(()=>{a.classList.remove(`${H}__rows`,`${H}__cols`,`${H}__items`)}),n(a,Y.css),Y.spacing!=null&&a.style.setProperty("--lattice-form-item-gap",Y.spacing),Y.labelGap!=null&&a.style.setProperty("--lattice-form-label-gap",Y.labelGap);const fe={labelPosition:Y.labelPosition,labelWidth:Y.labelWidth,controlMinWidth:Y.controlMinWidth,requiredHint:Y.requiredHint};Y.steps&&Y.steps.length?Ee(M,fe):$e(M,a,Y.blocks,Y.axis==="cols"?"cols":"rows",fe,Y.wrap),v(M);for(const{containerEl:me,records:Ae}of M.pendingColsWrap.splice(0))ge(M,me,Ae);c(M)}function Ee(M,a={}){const Y=M.model,fe=Y.steps,me=M.doc,Ae=M.el,de=me.createElement("div");Ae.appendChild(de);const Pe=P(de,{doc:me,t:M.t,steps:fe.map(Fe=>({id:Fe.id,label:Fe.label})),active:0,orientation:Y.stepOrientation,onGoTo:Fe=>{N(M,Fe)}}),Se=[];let Be=M.order.length;for(const Fe of fe){const Ge=me.createElement("div");Ge.className=`${H}__step`,Ge.hidden=!0,$e(M,Ge,Fe.blocks,Fe.axis,a),Fe.css&&n(Ge,Fe.css),Ae.appendChild(Ge);const Ze=M.order.length;Ge.__records=M.order.slice(Be,Ze),Be=Ze,Se.push(Ge)}const Te=me.createElement("div");Te.className=`${H}__step-nav`;const Ne=me.createElement("button");Ne.type="button",Ne.className=`${H}__step-back`,Ne.textContent=M.t("form.back");const Me=me.createElement("button");Me.type="button",Me.className=`${H}__step-next`,Me.textContent=M.t("form.next"),Te.appendChild(Ne),Te.appendChild(Me),Ae.appendChild(Te);const Oe={steps:fe,bodies:Se,stepper:Pe,back:Ne,next:Me,active:0};M.wizard=Oe;const He=()=>{Pe.setActive(Oe.active),Se.forEach((Fe,Ge)=>{Fe.hidden=Ge!==Oe.active}),Ne.disabled=Oe.active===0,Me.textContent=Oe.active===fe.length-1?M.t("form.finish"):M.t("form.next")},Re=Fe=>{const Ge=Se[Fe].__records||[];for(const Ze of Ge)if(Ze.item.name!=null&&f.has(Ze.def.kind)&&Ze.item.disabled!==!0&&!(Ze.ruleHidden===!0||Ze.hidden===!0)&&!(Ze.item.required!==!0&&Ze.item.validation==null&&typeof Ze.def.validate!="function"&&Ze.ruleRequired!==!0)&&!ne(M,Ze))return typeof Ze.def.focus=="function"?Ze.def.focus(Ze.control):typeof Ze.control.focus=="function"&&Ze.control.focus(),Ze;return null};Oe._stepInvalid=Re,Oe._render=He,Ne.addEventListener("click",()=>{Q(M)}),Me.addEventListener("click",()=>{g(M)}),He()}async function N(M,a){const Y=M.wizard;if(!Y)return!1;const fe=Y.steps.length,me=Number(a);if(!Number.isFinite(me)||me<0||me>=fe)return!1;const Ae=Y.active;if(me===Ae)return!1;if(me>Ae&&M.model.validateSteps!==!1)for(let de=Ae;de<me;de+=1){if(Y._stepInvalid(de))return Y.stepper.setStatus(de,"error"),!1;Y.stepper.setStatus(de,"complete")}return Y.active=me,Y._render(),!0}function g(M){const a=M.wizard;if(!a)return Promise.resolve(!1);if(a.active>=a.steps.length-1){if(M.model.validateSteps===!1)return Promise.resolve(!0);const Y=a._stepInvalid(a.active);return a.stepper.setStatus(a.active,Y?"error":"complete"),Promise.resolve(Y==null)}return N(M,a.active+1)}function Q(M){const a=M.wizard;return a?N(M,a.active-1):Promise.resolve(!1)}}),Ie("packages/modules/form/emitter.js",function(S,te){"use strict";Object.defineProperty(S,"FORM_EVENTS",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"Emitter",{enumerable:!0,get:function(){return L}});const we=new Set(["api","user"]),H=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick","activate"]);class L{#e=new Map;on(E,I){if(typeof I!="function")return()=>{};let z=this.#e.get(E);return z||(z=new Set,this.#e.set(E,z)),z.add(I),()=>this.off(E,I)}off(E,I){const z=this.#e.get(E);z&&z.delete(I)}emit(E,I){const z=this.#e.get(E),T=this.#e.get("*");if((!z||z.size===0)&&(!T||T.size===0))return;const G={...I||null,type:E},C=[],A=r=>{for(const u of[...r])try{u(G)}catch(v){C.push(v)}};z&&z.size&&A(z),T&&T.size&&A(T);for(const r of C)queueMicrotask(()=>{throw r})}emitBefore(E,I,z){const T=this.#e.get(E);if(!T||T.size===0)return!0;let G=!1,C=null;const A=l=>{G=!0,l!=null&&C===null&&(C=String(l))},r=z||I&&I.origin,u={...I||null,type:E,origin:we.has(r)?r:"user",get defaultPrevented(){return G},get reason(){return C},preventDefault(l){A(l)}},v=[...T],h=()=>(G&&C===null&&(C="prevented"),G&&I&&typeof I=="object"&&(I.reason=C),!G),c=[];for(let l=0;l<v.length;l++){const t=v[l];try{const p=t(u);p&&typeof p.then=="function"?c.push(p):p===!1&&A("prevented")}catch(p){A("error"),console.warn(`lattice-form: a '${E}' before-handler threw; the commit was cancelled.`,p)}}return c.length===0?h():Promise.allSettled(c).then(l=>{for(const t of l)t.status==="rejected"?(A("error"),console.warn(`lattice-form: a '${E}' before-handler rejected; the commit was cancelled.`,t.reason)):t.value===!1&&A("prevented");return h()})}clear(){this.#e.clear()}}}),Ie("packages/modules/form/bind-router.js",function(S,te){"use strict";Object.defineProperty(S,"routerBinding",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"writeRouterRecord",{enumerable:!0,get:function(){return L}});function we(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function H(e){const{router:E,route:I,key:z}=e,T=r=>r!=null&&String(r.rowKey??r.id)===String(z);return{kind:"router",record:()=>E&&typeof E.get=="function"?E.get(I,z):void 0,items:()=>[],density:()=>{},subscribe:r=>{if(!E||typeof E.subscribe!="function")return()=>{};const u=h=>{if(h){for(const c of h.add||[])T(c)&&r(null,null,c);for(const c of h.update||[])T(c)&&r(null,null,c)}},v=E.subscribe(I,u);return typeof v=="function"?v:()=>{}},save:r=>L(e,r)}}function L(e,E){const{router:I,route:z,key:T,onSave:G}=e;if(!Object.keys(E||{}).length)return!0;const A=()=>I&&typeof I.get=="function"?I.get(z,T):void 0,r=l=>{!I||typeof I.apply!="function"||I.apply([{op:"upsert",row:l}])},u=()=>{!I||typeof I.apply!="function"||(we(v)?I.apply([{op:"upsert",row:v}]):I.apply([{op:"delete",row:h}]))},v=A(),h={...we(v)?v:{},...E};if(r(h),typeof G!="function")return!0;let c;try{c=G(E,h)}catch{return u(),!1}return c&&typeof c.then=="function"?c.then(()=>!0,()=>(u(),!1)):!0}}),Ie("packages/modules/form/bind.js",function(S,te){"use strict";Object.defineProperty(S,"resolveBind",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"isBound",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"applyBinding",{enumerable:!0,get:function(){return c}});const H=te("packages/modules/form/model.js").DENSITIES,e=te("packages/modules/form/bind-router.js").routerBinding,E=new Set(["number","currency","percent","integer","decimal","duration"]);function I(l){const t=l&&l.dataType;if(t&&(t.unitConfig||t.temperatureConfig))return!0;const p=l&&l.edit?l.edit.editor:null;return p==="unit"||p==="temperature"}function z(l){return l!==null&&typeof l=="object"&&!Array.isArray(l)}function T(l){const t=l&&l.edit?l.edit.editor:null,p=l&&l.type;return t==="checkbox"||p==="boolean"?"checkbox":t==="number"||p!=null&&E.has(p)||I(l)?"number":"input"}function G(l){const t=l&&l.columns&&typeof l.columns.all=="function"?l.columns.all():[],p=[];for(const P of t){if(!P||!P.field||P.generated||P.computed)continue;const o={type:T(P),name:P.field,label:P.title,format:P.format},y=P.dataType,V=y&&y.unitConfig,s=y&&y.temperatureConfig;V?Object.assign(o,{system:V.system,unit:V.unit,binary:V.binary,decimals:V.decimals,minDecimals:V.minDecimals,maxDecimals:V.maxDecimals,display:V.display,group:V.group,space:V.space,placement:V.placement,significantFigures:V.significantFigures,compound:V.compound,nullDisplay:V.nullDisplay}):s&&Object.assign(o,{scale:s.scale,display:s.display,decimals:s.decimals,minDecimals:s.minDecimals,maxDecimals:s.maxDecimals,space:s.space,nullDisplay:s.nullDisplay}),p.push(o)}return p}function C(l,t){const p=l&&l.columns&&typeof l.columns.all=="function"?l.columns.all():[];for(const P of p)if(P&&P.field===t)return P;return null}function A(l){const t=l&&typeof l.get=="function"?l.get("density"):void 0;return H.includes(t)?t:void 0}function r(l){const{grid:t,rowKey:p}=l,P=()=>{const s=t&&t.rows&&typeof t.rows.byKey=="function"?t.rows.byKey(p):null;return s&&z(s.data)?{...s.data}:{}},o=s=>{const d=C(t,s);return d?d.id:s};return{kind:"grid",record:P,items:()=>G(t),density:()=>A(t),subscribe:s=>{if(!t||typeof t.on!="function")return()=>{};const d=i=>{if(!i||i.key!==p)return;const m=t.columns&&typeof t.columns.get=="function"?t.columns.get(i.colId):null,k=m?m.field:i.colId;k&&s(k,i.value)};return t.on("cell:changed",d)},save:s=>{const d=Object.keys(s);if(!d.length)return!0;if(!t||!t.edit||typeof t.edit.setCells!="function")return!1;const i=d.map(k=>({key:p,colId:o(k),value:s[k]})),m=t.edit.setCells(i,"cell",{origin:"form"});return m&&typeof m.then=="function"?m.then(k=>k>0):m>0}}}function u(l){return{kind:"values",record:()=>({...l}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:P=>{for(const o of Object.keys(P))l[o]=P[o];return!0}}}function v(l){const t=l&&l.bind;return t==null||typeof t!="object"?null:t.grid!=null&&z(t.grid)?r(t):t.router!=null?e(t):u(t)}function h(l){return!!(l&&l.bind!=null&&typeof l.bind=="object")}function c(l,t,p){l.bound=p;const P=(V,s)=>{const d=t.getItem(V);d&&d.setValue(s)},o=(V,s,d)=>{if(d!=null){for(const i of Object.keys(d))if(l.items.has(i)){if(l.dirty.has(i)){l.conflicts.add(i);continue}l.baseline[i]=d[i],P(i,d[i])}return}if(l.items.has(V)){if(l.dirty.has(V)){l.conflicts.add(V);return}l.baseline[V]=s,P(V,s)}},y=p.record();if(y!=null&&typeof y=="object")for(const V of Object.keys(y))l.items.has(V)&&(l.baseline[V]=y[V],P(V,y[V]));l.disposers.push(t.on("change",V=>{l.dirty.add(V.name),l.conflicts.delete(V.name)})),l.disposers.push(p.subscribe(o))}}),Ie("packages/modules/shared/sanitise-html.js",function(S,te){"use strict";Object.defineProperty(S,"parseSanitisedHtml",{enumerable:!0,get:function(){return l}});const we=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),H="http://www.w3.org/2000/svg",L=new Set(["foreignobject","desc","title"]),e=/^<!--[\s\S]*?-->/,E=/^<![^>]*>/,I=/^<\/([a-zA-Z][a-zA-Z0-9:-]*)\s*>/,z=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,T=`(?:\\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s"'>]+))?)*`,G=new RegExp(`^<([a-zA-Z][a-zA-Z0-9:-]*)(${T})\\s*(/?)>`),C={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function A(t){return t.replace(/&(#x?[\da-f]+|\w+);/gi,(p,P)=>{if(P[0]==="#"){const o=+(/x/i.test(P[1])?"0"+P.slice(1):P.slice(1));return o<1114112?String.fromCodePoint(o):p}return C[P]||p})}const r=new WeakMap;function u(t){const p=v(t);return r.set(t,p),p}function v(t){const p={text:A,attr:A};try{const P=t.implementation.createHTMLDocument(""),o=P.createElement("textarea");if(o.innerHTML="& ",o.value!=="& ")return p;const y=P.createElement("div");return{text(V){return o.innerHTML=V,o.value},attr(V,s){return y.innerHTML=`<i a=${s}${V}${s}></i>`,y.firstChild.getAttribute("a")}}}catch{return p}}function h(t,p){const P=p.replace(/\/\*.*?\*\/|[\s\u0000-\u001f\\]+/g,"");return/^style$/i.test(t)?/expression\(|javascript:/i.test(P):/^javascript:/i.test(P)}function c(t,p,P){if(!P)return;z.lastIndex=0;let o=z.exec(P);for(;o;){const y=o[1];if(!/^on/i.test(y)){const V=o[2]!==void 0?o[2]:o[3]!==void 0?o[3]:o[4]!==void 0?o[4]:"",s=t.attr(V,o[3]!==void 0?"'":'"');h(y,s)||p.setAttribute(y,s)}o=z.exec(P)}}function l(t,p,P){const o=r.get(t)||u(t),y=[p],V=[null];let s=0,d=!1;const i=()=>y[y.length-1],m=(k,w)=>{if(!k)return t.createElement(w);const f=typeof t.createElementNS=="function"?t.createElementNS(k,w):t.createElement(w);return f.namespaceURI!==k&&(f.namespaceURI=k),f};for(;s<P.length;){if(d){const $=P.slice(s),b=/<\/script\s*>/i.exec($);if(!b)break;s+=b.index+b[0].length,d=!1;continue}const k=P.indexOf("<",s);if(k===-1){i().appendChild(t.createTextNode(o.text(P.slice(s))));break}k>s&&i().appendChild(t.createTextNode(o.text(P.slice(s,k))));const w=P.slice(k);let f=e.exec(w);if(f){s=k+f[0].length;continue}if(f=I.exec(w),f){const $=f[1].toLowerCase();for(let b=y.length-1;b>0;b-=1)if(y[b].__latTag===$){y.length=b,V.length=b;break}s=k+f[0].length;continue}if(f=G.exec(w),f){const $=f[1].toLowerCase(),b=f[3]==="/";if(s=k+f[0].length,$==="script"){b||(d=!0);continue}const _=V[V.length-1],n=$==="svg"?H:_,O=m(n,n===H?f[1]:$);if(O.__latTag=$,c(o,O,f[2]),i().appendChild(O),!b&&!we.has($)){const ie=$==="svg"?H:_===H&&L.has($)?null:_;y.push(O),V.push(ie)}continue}if(f=E.exec(w),f){s=k+f[0].length;continue}i().appendChild(t.createTextNode("<")),s=k+1}}}),Ie("packages/modules/form/controls/container.js",function(S,te){"use strict";Object.defineProperty(S,"attachToContainer",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"attachHtmlToContainer",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"getContainerWidget",{enumerable:!0,get:function(){return v}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/model.js").cssSize,I=te("packages/modules/shared/sanitise-html.js").parseSanitisedHtml;function z(h,c,l){if(l!=null){if(typeof l=="object"&&typeof l.nodeType=="number"){c.appendChild(l);return}I(h,c,String(l))}}function T(h){for(;h.firstChild;)h.removeChild(h.firstChild)}function G(h){const c=h.__latAttached;c&&(h.__latAttached=null,!c.keep&&c.view&&typeof c.view.destroy=="function"&&c.view.destroy())}function C(h){return h==null||h==="content"?"fit-content":e(h)}H("container",{kind:"container",build(h,c){const l=c.doc,t=h.props||{},p=l.createElement("div");return p.className="lat-form__container",p.setAttribute("role","region"),h.label!=null&&h.label!==""&&p.setAttribute("aria-label",String(h.label)),p.style.width="100%",p.style.height=C(h.height),h.padding!=null&&(p.style.padding=h.padding),z(l,p,t.html),p},read(){},write(){},state(h,c){const l=c.disabled===!0;h.toggleAttribute("inert",l),h.inert=l,l?h.setAttribute("aria-disabled","true"):h.removeAttribute("aria-disabled")},destroy(h){G(h)}});function A(h){return h.el||h.root||h.element||null}function r(h,c,l={}){G(h),T(h);const p=!(c!=null&&typeof c.nodeType=="number")&&c!=null&&typeof c=="object"?A(c):null,P=p?c:null,o=p||c;o.style.width="100%",h.style.height&&h.style.height!=="fit-content"&&(o.style.height=h.style.height),h.appendChild(o),h.__latAttached={view:P,node:o,keep:l.keep===!0}}function u(h,c,l){G(c),T(c),z(h,c,l)}function v(h){const c=h.__latAttached;return c?c.view||c.node:null}}),Ie("packages/modules/form/controls/button.js",function(S,te){"use strict";Object.defineProperty(S,"injectButtonStyles",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"buildIcon",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"setButtonCaption",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"buttonItemFrom",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"buildButton",{enumerable:!0,get:function(){return i}});const H=te("packages/modules/form/controls/registry.js").registerControl,L="lat-button",e="data-lattice-button-styles",E="http://www.w3.org/2000/svg",I=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"}}),z=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),T=Object.freeze(["sm","md","lg"]),G=Object.freeze(["button","submit","reset"]);function C(){const m=`
|
|
1805
1805
|
.lat-form{
|
|
1806
1806
|
--lattice-button-primary-bg:var(--lattice-accent);
|
|
1807
1807
|
--lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
|
|
@@ -1906,7 +1906,7 @@ ${k}
|
|
|
1906
1906
|
|
|
1907
1907
|
.lat-form__control .${L}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
|
|
1908
1908
|
.lat-form__control .${L}[aria-busy='true']{ cursor:default; pointer-events:none; }
|
|
1909
|
-
`.trim()}function A(m){const k=m&&m.documentElement;if(!k||k.getAttribute(e))return;k.setAttribute(e,"1");const w=m.createElement("style");w.textContent=C(),(m.head||m.body||k).appendChild(w)}function r(m){return z.includes(m)?m:"secondary"}function u(m){return N.includes(m)?m:"md"}function v(m){return G.includes(m)?m:"button"}function h(m){return m==="end"?"end":"start"}function c(m){return m==="uppercase"?"uppercase":"none"}function l(m){const k=m.props&&m.props.href;return typeof k=="string"&&k!==""}function t(m,k){const w=m.createElementNS(E,"svg");w.setAttribute("viewBox",k.viewBox),w.setAttribute("focusable","false"),w.setAttribute("aria-hidden","true"),k.paint==="stroke"?(w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","1.5"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round")):w.setAttribute("fill","currentColor");for(const f of k.paths){const $=m.createElementNS(E,"path");$.setAttribute("d",f),w.appendChild($)}return w}function p(m,k){if(m==null)return null;if(typeof m=="object"&&m.nodeType)return m;if(typeof m!="string"||m==="")return null;const w=m;if(/^(https?:)?\/\//i.test(w)||/^data:/i.test(w)){const $=k.createElement("img");return $.src=w,$.alt="",$}const f=I[w];return f?t(k,f):null}function P(m){const k=m.createElementNS(E,"svg");k.setAttribute("viewBox","0 0 16 16"),k.setAttribute("focusable","false"),k.setAttribute("aria-hidden","true"),k.setAttribute("class",`${L}__spinner`);const w=m.createElementNS(E,"circle");return w.setAttribute("cx","8"),w.setAttribute("cy","8"),w.setAttribute("r","6"),w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","2"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-dasharray","28"),w.setAttribute("stroke-dashoffset","10"),k.appendChild(w),k}function o(m,k,w){const f=k&&k.defaultView,$=f&&f.CustomEvent,b=$?new $("submit",{bubbles:!0,detail:{values:w}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:w},preventDefault(){this.defaultPrevented=!0}};m.dispatchEvent(b)}function y(m){const k=m.loading===!0,w=m.disabled===!0&&m.focusableWhenDisabled!==!0||k;m.el.disabled=w,m.el.setAttribute("aria-disabled",m.disabled===!0||k?"true":"false")}function V(m,k){m.loading=k===!0,m.el.setAttribute("aria-busy",m.loading?"true":"false"),y(m);const w=m.iconSlot;if(!w)return;for(;w.firstChild;)w.removeChild(w.firstChild);const f=m.loading?P(m.doc):m.iconEl;f?(w.appendChild(f),w.parentNode||(m.position==="end"?m.el.appendChild(w):m.el.insertBefore(w,m.el.firstChild))):w.parentNode&&w.parentNode.removeChild(w)}function s(m,k){const w=m&&m.__latButton;if(!w)return;const f=k==null?"":String(k);if(w.label)w.label.textContent=f;else if(f!==""){const $=w.doc.createElement("span");$.className=`${L}__label`,$.textContent=f,w.label=$,m.removeAttribute("data-icon-only"),w.position==="end"?m.insertBefore($,m.firstChild):m.appendChild($)}w.autoAriaLabel&&f!==""&&(m.removeAttribute("aria-label"),w.autoAriaLabel=!1)}function d(m){return{kind:"item",type:"button",name:m.name!=null&&m.name!==""?String(m.name):null,label:m.label,disabled:m.disabled===!0,props:{icon:m.icon,iconPosition:m.iconPosition,variant:m.variant,fullWidth:m.fullWidth,size:m.size,textTransform:m.textTransform,buttonType:m.buttonType,loading:m.loading,href:m.href,ariaLabel:m.ariaLabel,toggle:m.toggle,focusableWhenDisabled:m.focusableWhenDisabled}}}function i(m,k){const w=k.doc,f=m.props||{},$=m.label!=null?String(m.label):"",b=p(f.icon,w),_=b!=null&&$==="",n=l(m)?w.createElement("a"):w.createElement("button");n.className=L,n.setAttribute("data-variant",r(f.variant)),n.setAttribute("data-size",u(f.size)),n.setAttribute("data-text-transform",c(f.textTransform)),f.fullWidth===!0&&n.setAttribute("data-full","true"),_&&n.setAttribute("data-icon-only","true"),m.name&&!l(m)&&(n.name=m.name),l(m)?n.setAttribute("href",f.href):n.type="button";const O=f.ariaLabel!=null?String(f.ariaLabel):_?String(m.name||""):"";O&&n.setAttribute("aria-label",O);const ie=w.createElement("span");ie.className=`${L}__icon`,ie.setAttribute("aria-hidden","true"),b&&ie.appendChild(b);let F=null;_||(F=w.createElement("span"),F.className=`${L}__label`,F.textContent=$!==""?$:String(m.name||""));const se=h(f.iconPosition);se==="end"?(F&&n.appendChild(F),ie.firstChild&&n.appendChild(ie)):(ie.firstChild&&n.appendChild(ie),F&&n.appendChild(F));const le={el:n,doc:w,iconSlot:ie,iconEl:b,label:F,position:se,buttonType:v(f.buttonType),loading:!1,disabled:m.disabled===!0,toggle:f.toggle===!0,pressed:f.toggle===!0&&m.value===!0,focusableWhenDisabled:f.focusableWhenDisabled===!0,autoAriaLabel:f.ariaLabel==null&&O!==""};n.__latButton=le,le.toggle&&n.setAttribute("aria-pressed",le.pressed?"true":"false");const ke=()=>{if(le.loading||le.disabled)return;if(le.toggle){const B=le.pressed;le.pressed=!le.pressed,n.setAttribute("aria-pressed",le.pressed?"true":"false"),k.emitter.emit("change",{name:m.name,value:le.pressed,previousValue:B,item:m})}const ce=le.buttonType;ce==="submit"?(typeof k.form.validate!="function"||k.form.validate())&&o(k.el,w,typeof k.form.getValue=="function"?k.form.getValue():{}):ce==="reset"&&typeof k.form.clear=="function"&&k.form.clear()};return n.addEventListener("click",ke),k.disposers.push(()=>n.removeEventListener("click",ke)),V(le,f.loading===!0),n}H("button",{kind:"button",action:!0,build(m,k){return A(k.doc),i(m,k)},read(m){const k=m&&m.__latButton;return k&&k.toggle?k.pressed:null},write(){},state(m,k){const w=m.__latButton;w&&(w.disabled=k.disabled===!0,y(w))},setLoading(m,k){const w=m.__latButton;w&&V(w,k)}})}),Ie("packages/modules/form/ready.js",function(S,te){"use strict";Object.defineProperty(S,"createReadySignal",{enumerable:!0,get:function(){return xe}});function xe(){let H=!1,L,e;const E=new Promise((I,z)=>{L=I,e=z});return E.catch(()=>{}),{promise:E,settleSoon(){H||queueMicrotask(()=>{H||(H=!0,L())})},fail(I){H||(H=!0,e(I))}}}}),Ie("packages/core/src/internal/predicates.js",function(S,te){"use strict";Object.defineProperty(S,"isObject",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"isFunction",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"isNil",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"isBlank",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"isCtor",{enumerable:!0,get:function(){return E}});function xe(I){return I!==null&&typeof I=="object"&&!Array.isArray(I)}function H(I){return typeof I=="function"}function L(I){return I==null}function e(I){return I==null||I===""}function E(I){return typeof I!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(I))?!0:!!(I.prototype&&Object.getOwnPropertyNames(I.prototype).length>1)}}),Ie("packages/core/src/registry/free-tier-notice.js",function(S,te){"use strict";Object.defineProperty(S,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"WATERMARK_TEXT",{enumerable:!0,get:function(){return H}});const xe="Free for non-commercial use: latticegrid.dev/free",H="Unlicensed: Lattice Grid trial"}),Ie("packages/core/src/internal/warn.js",function(S,te){"use strict";Object.defineProperty(S,"reportedWarnings",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"infoOnce",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"resetWarnings",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"invariant",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"DEV",{enumerable:!0,get:function(){return h}});const xe=new Set,H=2e3;function L(c){if(xe.add(c),xe.size>H){const l=xe.values().next().value;l!==void 0&&xe.delete(l)}}const e=[],E=500;function I(c,l,t){e.push({key:c,level:l,message:t.map(p=>typeof p=="string"?p:z(p)).join(" "),at:Date.now()}),e.length>E&&e.shift()}function z(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function N(){return e.map(c=>({...c}))}function G(c){if(c.length===0||typeof c[0]!="string")return c;const l=c[0].replace(/^\[lattice\]\s*/,"");return l===c[0]?c:[l,...c.slice(1)]}function C(c,...l){if(xe.has(c))return;L(c);const t=G(l);I(c,"warn",t),console.warn("[lattice]",...t)}function A(c,...l){if(xe.has(c))return;L(c);const t=G(l);I(c,"info",t),console.info("[lattice]",...t)}function r(){xe.clear(),e.length=0}function u(c,l){const t=new Error(`[lattice] ${c}`);throw l!==void 0&&(t.cause=l),t}function v(c,l){c||u(l)}const h=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Ie("packages/core/src/registry/licence.js",function(S,te){"use strict";Object.defineProperty(S,"PRODUCT",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"LICENCE_VERSION",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"PUBLIC_KEY",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"fromBase64Url",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"toBase64Url",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"asciiBytes",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"parseLicence",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"hasEd25519",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"verifyLicence",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"isLocalHost",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"currentHost",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"matchesDomain",{enumerable:!0,get:function(){return k}}),Object.defineProperty(S,"LicenceHolder",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"setLicence",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"licenceInfo",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"watermark",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(S,"licenceState",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"sharedLicence",{enumerable:!0,get:function(){return se}});const H=te("packages/core/src/internal/warn.js").warnOnce,L=te("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE;Object.defineProperty(S,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return L.FREE_TIER_NOTICE}});const E="lattice-grid",I=1,z="LG1",N=64,G="GwmaCOkGedHulqsa-DOV1TU8On1rsalWv519c_dW4j4",C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",A=(()=>{const le=new Int16Array(128).fill(-1);for(let ke=0;ke<C.length;ke++)le[C.charCodeAt(ke)]=ke;return le[43]=62,le[47]=63,le})();function r(le){if(typeof le!="string")return null;let ke="";for(let J=0;J<le.length;J++){const ne=le.charCodeAt(J);if(ne!==61){if(ne>127||A[ne]<0)return null;ke+=le[J]}}const ce=ke.length;if(ce%4===1)return null;const B=new Uint8Array(Math.floor(ce*3/4));let be=0,q=0,D=0;for(let J=0;J<ce;J++)be=be<<6|A[ke.charCodeAt(J)],q+=6,q>=8&&(q-=8,B[D++]=be>>q&255);return D===B.length?B:B.subarray(0,D)}function u(le){let ke="",ce=0;for(;ce+2<le.length;ce+=3){const be=le[ce]<<16|le[ce+1]<<8|le[ce+2];ke+=C[be>>18&63]+C[be>>12&63]+C[be>>6&63]+C[be&63]}const B=le.length-ce;if(B===1){const be=le[ce]<<16;ke+=C[be>>18&63]+C[be>>12&63]}else if(B===2){const be=le[ce]<<16|le[ce+1]<<8;ke+=C[be>>18&63]+C[be>>12&63]+C[be>>6&63]}return ke}function v(le){const ke=new Uint8Array(le.length);for(let ce=0;ce<le.length;ce++)ke[ce]=le.charCodeAt(ce)&127;return ke}function h(le){if(typeof TextDecoder=="function")return new TextDecoder().decode(le);let ke="";for(let ce=0;ce<le.length;ce++)ke+=String.fromCharCode(le[ce]);return ke}function c(le){const ke={ok:!1,reason:"malformed",product:null,issuedTo:null,expires:null,terms:null,features:[],deployments:[],version:0,message:null,signature:null,raw:typeof le=="string"?le:""};if(typeof le!="string"||le.length===0)return{...ke,reason:"missing"};const ce=le.trim(),B=ce.split(".");if(B.length!==3)return ke;const[be,q,D]=B;if(be!==z)return{...ke,reason:"prefix"};const J=r(q),ne=r(D);if(!J||!ne)return ke;let oe;try{oe=JSON.parse(h(J))}catch{return ke}return oe===null||typeof oe!="object"?ke:{ok:!0,reason:null,product:typeof oe.p=="string"?oe.p:null,issuedTo:typeof oe.t=="string"?oe.t:null,expires:typeof oe.e=="string"?oe.e:null,terms:typeof oe.terms=="string"?oe.terms:null,features:Array.isArray(oe.f)?oe.f.slice():[],deployments:Array.isArray(oe.d)?oe.d.slice():[],version:typeof oe.v=="number"?oe.v:0,message:v(q),signature:ne,raw:ce}}function l(le,ke){if(!le)return!1;const ce=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(le)?`${le}T23:59:59.999Z`:le);return Number.isNaN(ce)?!0:ke>ce}function t(le){return le==="non-commercial"?"non-commercial":"commercial"}let p=null,P=null,o=null;function y(){const le=globalThis.crypto;return le&&le.subtle?le.subtle:null}async function V(le){if(p&&P===le)return p;const ke=y();if(!ke)return null;const ce=r(le);if(!ce)return null;try{const B=await ke.importKey("raw",ce,{name:"Ed25519"},!1,["verify"]);return p=B,P=le,B}catch{return null}}async function s(){return o!==null||(o=await V(G)!==null),o}async function d(le,ke={}){const ce=ke.warn!==!1,B=ke.product||E,be=ke.publicKey||G,q=ke.now??Date.now(),D=ke.host??m(),J=i(D)?"":` ${e}`,ne=c(le);if(!ne.ok){const W=ne.reason==="missing"?"missing":"malformed";return ce&&H(`licence.${W}`,W==="missing"?`no licence key supplied. The grid renders in full and carries a trial watermark on any host other than localhost. Get a key at latticegrid.dev.${J}`:`licence key could not be read. The grid will render with a watermark.${J}`),{valid:!1,reason:W,terms:"commercial"}}const oe={product:ne.product||void 0,issuedTo:ne.issuedTo||void 0,expires:ne.expires||void 0,terms:t(ne.terms)};if(ne.product!==B)return ce&&H("licence.product",`licence key is for '${ne.product}', not '${B}'. The grid will render with a watermark.`),{valid:!1,...oe,reason:"product"};if(l(ne.expires,q))return ce&&H("licence.expired",`licence expired on ${ne.expires}. The grid will render with a watermark. Renew at latticegrid.dev.`),{valid:!1,...oe,reason:"expired"};const ve=ne.deployments||[];if(ve.length&&D&&!i(D)&&!k(D,ve))return ce&&H("licence.domain",`licence key is not valid for ${D}; it covers ${ve.join(", ")}. The grid will render with a watermark.`),{valid:!1,...oe,reason:"domain"};const pe=await V(be);if(!pe){const W=!!ne.signature&&ne.signature.length===N;return ce&&H("licence.algorithm","this host does not provide crypto.subtle Ed25519, so the licence signature could not be verified. A structural check was used instead."),W?{valid:!0,...oe,reason:"unverified"}:{valid:!1,...oe,reason:"signature"}}let x=!1;try{x=await y().verify({name:"Ed25519"},pe,ne.signature,ne.message)}catch{x=!1}return x?{valid:!0,...oe}:(ce&&H("licence.signature","licence signature is not valid. The grid will render with a watermark."),{valid:!1,...oe,reason:"signature"})}function i(le){const ke=String(le??m()??"").trim().toLowerCase().replace(/^\[/,"").replace(/\]$/,"");return!ke||ke==="localhost"||ke.endsWith(".localhost")||ke==="::1"||ke==="0:0:0:0:0:0:0:1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ke)}function m(){const le=globalThis.location;return le&&typeof le.hostname=="string"?le.hostname:null}function k(le,ke){const ce=w(le);return!ce||!Array.isArray(ke)?!1:ke.some(B=>{const be=w(B);if(!be)return!1;if(be==="*")return!0;if(be.startsWith("*.")){const q=be.slice(2);return ce===q||ce.endsWith(`.${q}`)}return ce===be})}function w(le){return String(le??"").trim().toLowerCase().replace(/\.$/,"")}class f{#e="";#r={valid:!1,reason:"missing",terms:"commercial"};#n=null;#t=null;#i;#o=new Set;constructor(ke={}){this.#i=ke}set(ke){this.#e=typeof ke=="string"?ke.trim():"";const ce=c(this.#e);return this.#r=ce.ok?{valid:!l(ce.expires,Date.now())&&ce.product===(this.#i.product||E),product:ce.product||void 0,issuedTo:ce.issuedTo||void 0,expires:ce.expires||void 0,terms:t(ce.terms),reason:"pending"}:{valid:!1,reason:ce.reason||"malformed",terms:"commercial"},this.#n=null,this.#e&&this.verify(),this.#r}verify(){if(this.#n)return this.#n;const ke=this.#e;return this.#n=d(ke,this.#i).then(ce=>{if(this.#e===ke){this.#r=ce;for(const B of this.#o)B(ce)}return ce}),this.#n}onSettled(ke){return this.#o.add(ke),()=>this.#o.delete(ke)}info(){return{...this.#r}}watermark(){return this.#r.valid?!1:!i(this.#t)}setHost(ke){this.#t=ke}state(){return this.#r.valid?"licensed":i(this.#t)?"localhost":"trial"}reset(){this.#e="",this.#r={valid:!1,reason:"missing",terms:"commercial"},this.#n=null,this.#o.clear()}}const $=Symbol.for("lattice-grid/licence/holder");function b(){const le=globalThis,ke=le&&le[$];if(ke&&typeof ke.set=="function"&&typeof ke.watermark=="function")return ke;const ce=new f;if(le)try{le[$]=ce}catch{}return ce}const _=b();function n(le){return _.set(le)}function O(){return _.info()}function ie(){return _.watermark()}function F(){return _.state()}function se(){return _}}),Ie("packages/dom/src/watermark.js",function(S,te){"use strict";Object.defineProperty(S,"WATERMARK_CLASS",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"WATERMARK_LAYER_CLASS",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"Watermark",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"viewLicenceHost",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"mountViewWatermark",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return s}});const H=te("packages/core/src/internal/predicates.js").isFunction,L=te("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE,E=L.WATERMARK_TEXT,I=te("packages/core/src/registry/licence.js"),z=I.watermark,N=I.setLicence,G=Object.freeze({t:d=>d==="licence.watermark.free"?e:E});function C(d,i,m={}){const k=d.createElement(i);if(m.class)for(const w of m.class.split(/\s+/))w&&k.classList.add(w);if(m.text!==void 0&&(k.textContent=m.text),m.attrs)for(const[w,f]of Object.entries(m.attrs))k.setAttribute(w,f);if(m.children)for(const w of m.children)k.appendChild(w);return k}function A(d,i,m){return d.addEventListener(i,m),()=>d.removeEventListener(i,m)}const r="lat-watermark",u="https://www.latticegrid.dev",v=["br","bl","tl","tr"],h=4e3,c=Symbol.for("lattice-grid/licence/holder"),l="data-lat-watermark-owner",t="lat-watermark-layer",p="lat-watermark-style",P=`
|
|
1909
|
+
`.trim()}function A(m){const k=m&&m.documentElement;if(!k||k.getAttribute(e))return;k.setAttribute(e,"1");const w=m.createElement("style");w.textContent=C(),(m.head||m.body||k).appendChild(w)}function r(m){return z.includes(m)?m:"secondary"}function u(m){return T.includes(m)?m:"md"}function v(m){return G.includes(m)?m:"button"}function h(m){return m==="end"?"end":"start"}function c(m){return m==="uppercase"?"uppercase":"none"}function l(m){const k=m.props&&m.props.href;return typeof k=="string"&&k!==""}function t(m,k){const w=m.createElementNS(E,"svg");w.setAttribute("viewBox",k.viewBox),w.setAttribute("focusable","false"),w.setAttribute("aria-hidden","true"),k.paint==="stroke"?(w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","1.5"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round")):w.setAttribute("fill","currentColor");for(const f of k.paths){const $=m.createElementNS(E,"path");$.setAttribute("d",f),w.appendChild($)}return w}function p(m,k){if(m==null)return null;if(typeof m=="object"&&m.nodeType)return m;if(typeof m!="string"||m==="")return null;const w=m;if(/^(https?:)?\/\//i.test(w)||/^data:/i.test(w)){const $=k.createElement("img");return $.src=w,$.alt="",$}const f=I[w];return f?t(k,f):null}function P(m){const k=m.createElementNS(E,"svg");k.setAttribute("viewBox","0 0 16 16"),k.setAttribute("focusable","false"),k.setAttribute("aria-hidden","true"),k.setAttribute("class",`${L}__spinner`);const w=m.createElementNS(E,"circle");return w.setAttribute("cx","8"),w.setAttribute("cy","8"),w.setAttribute("r","6"),w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","2"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-dasharray","28"),w.setAttribute("stroke-dashoffset","10"),k.appendChild(w),k}function o(m,k,w){const f=k&&k.defaultView,$=f&&f.CustomEvent,b=$?new $("submit",{bubbles:!0,detail:{values:w}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:w},preventDefault(){this.defaultPrevented=!0}};m.dispatchEvent(b)}function y(m){const k=m.loading===!0,w=m.disabled===!0&&m.focusableWhenDisabled!==!0||k;m.el.disabled=w,m.el.setAttribute("aria-disabled",m.disabled===!0||k?"true":"false")}function V(m,k){m.loading=k===!0,m.el.setAttribute("aria-busy",m.loading?"true":"false"),y(m);const w=m.iconSlot;if(!w)return;for(;w.firstChild;)w.removeChild(w.firstChild);const f=m.loading?P(m.doc):m.iconEl;f?(w.appendChild(f),w.parentNode||(m.position==="end"?m.el.appendChild(w):m.el.insertBefore(w,m.el.firstChild))):w.parentNode&&w.parentNode.removeChild(w)}function s(m,k){const w=m&&m.__latButton;if(!w)return;const f=k==null?"":String(k);if(w.label)w.label.textContent=f;else if(f!==""){const $=w.doc.createElement("span");$.className=`${L}__label`,$.textContent=f,w.label=$,m.removeAttribute("data-icon-only"),w.position==="end"?m.insertBefore($,m.firstChild):m.appendChild($)}w.autoAriaLabel&&f!==""&&(m.removeAttribute("aria-label"),w.autoAriaLabel=!1)}function d(m){return{kind:"item",type:"button",name:m.name!=null&&m.name!==""?String(m.name):null,label:m.label,disabled:m.disabled===!0,props:{icon:m.icon,iconPosition:m.iconPosition,variant:m.variant,fullWidth:m.fullWidth,size:m.size,textTransform:m.textTransform,buttonType:m.buttonType,loading:m.loading,href:m.href,ariaLabel:m.ariaLabel,toggle:m.toggle,focusableWhenDisabled:m.focusableWhenDisabled}}}function i(m,k){const w=k.doc,f=m.props||{},$=m.label!=null?String(m.label):"",b=p(f.icon,w),_=b!=null&&$==="",n=l(m)?w.createElement("a"):w.createElement("button");n.className=L,n.setAttribute("data-variant",r(f.variant)),n.setAttribute("data-size",u(f.size)),n.setAttribute("data-text-transform",c(f.textTransform)),f.fullWidth===!0&&n.setAttribute("data-full","true"),_&&n.setAttribute("data-icon-only","true"),m.name&&!l(m)&&(n.name=m.name),l(m)?n.setAttribute("href",f.href):n.type="button";const O=f.ariaLabel!=null?String(f.ariaLabel):_?String(m.name||""):"";O&&n.setAttribute("aria-label",O);const ie=w.createElement("span");ie.className=`${L}__icon`,ie.setAttribute("aria-hidden","true"),b&&ie.appendChild(b);let F=null;_||(F=w.createElement("span"),F.className=`${L}__label`,F.textContent=$!==""?$:String(m.name||""));const se=h(f.iconPosition);se==="end"?(F&&n.appendChild(F),ie.firstChild&&n.appendChild(ie)):(ie.firstChild&&n.appendChild(ie),F&&n.appendChild(F));const le={el:n,doc:w,iconSlot:ie,iconEl:b,label:F,position:se,buttonType:v(f.buttonType),loading:!1,disabled:m.disabled===!0,toggle:f.toggle===!0,pressed:f.toggle===!0&&m.value===!0,focusableWhenDisabled:f.focusableWhenDisabled===!0,autoAriaLabel:f.ariaLabel==null&&O!==""};n.__latButton=le,le.toggle&&n.setAttribute("aria-pressed",le.pressed?"true":"false");const xe=()=>{if(le.loading||le.disabled)return;if(le.toggle){const R=le.pressed;le.pressed=!le.pressed,n.setAttribute("aria-pressed",le.pressed?"true":"false"),k.emitter.emit("change",{name:m.name,value:le.pressed,previousValue:R,item:m})}const ue=le.buttonType;ue==="submit"?(typeof k.form.validate!="function"||k.form.validate())&&o(k.el,w,typeof k.form.getValue=="function"?k.form.getValue():{}):ue==="reset"&&typeof k.form.clear=="function"&&k.form.clear()};return n.addEventListener("click",xe),k.disposers.push(()=>n.removeEventListener("click",xe)),V(le,f.loading===!0),n}H("button",{kind:"button",action:!0,build(m,k){return A(k.doc),i(m,k)},read(m){const k=m&&m.__latButton;return k&&k.toggle?k.pressed:null},write(){},state(m,k){const w=m.__latButton;w&&(w.disabled=k.disabled===!0,y(w))},setLoading(m,k){const w=m.__latButton;w&&V(w,k)}})}),Ie("packages/modules/form/ready.js",function(S,te){"use strict";Object.defineProperty(S,"createReadySignal",{enumerable:!0,get:function(){return we}});function we(){let H=!1,L,e;const E=new Promise((I,z)=>{L=I,e=z});return E.catch(()=>{}),{promise:E,settleSoon(){H||queueMicrotask(()=>{H||(H=!0,L())})},fail(I){H||(H=!0,e(I))}}}}),Ie("packages/core/src/internal/predicates.js",function(S,te){"use strict";Object.defineProperty(S,"isObject",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"isFunction",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"isNil",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"isBlank",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"isCtor",{enumerable:!0,get:function(){return E}});function we(I){return I!==null&&typeof I=="object"&&!Array.isArray(I)}function H(I){return typeof I=="function"}function L(I){return I==null}function e(I){return I==null||I===""}function E(I){return typeof I!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(I))?!0:!!(I.prototype&&Object.getOwnPropertyNames(I.prototype).length>1)}}),Ie("packages/core/src/registry/free-tier-notice.js",function(S,te){"use strict";Object.defineProperty(S,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"WATERMARK_TEXT",{enumerable:!0,get:function(){return H}});const we="Free for non-commercial use: latticegrid.dev/free",H="Unlicensed: Lattice Grid trial"}),Ie("packages/core/src/internal/warn.js",function(S,te){"use strict";Object.defineProperty(S,"reportedWarnings",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"infoOnce",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"resetWarnings",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"invariant",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"DEV",{enumerable:!0,get:function(){return h}});const we=new Set,H=2e3;function L(c){if(we.add(c),we.size>H){const l=we.values().next().value;l!==void 0&&we.delete(l)}}const e=[],E=500;function I(c,l,t){e.push({key:c,level:l,message:t.map(p=>typeof p=="string"?p:z(p)).join(" "),at:Date.now()}),e.length>E&&e.shift()}function z(c){if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return String(c)}}function T(){return e.map(c=>({...c}))}function G(c){if(c.length===0||typeof c[0]!="string")return c;const l=c[0].replace(/^\[lattice\]\s*/,"");return l===c[0]?c:[l,...c.slice(1)]}function C(c,...l){if(we.has(c))return;L(c);const t=G(l);I(c,"warn",t),console.warn("[lattice]",...t)}function A(c,...l){if(we.has(c))return;L(c);const t=G(l);I(c,"info",t),console.info("[lattice]",...t)}function r(){we.clear(),e.length=0}function u(c,l){const t=new Error(`[lattice] ${c}`);throw l!==void 0&&(t.cause=l),t}function v(c,l){c||u(l)}const h=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Ie("packages/core/src/registry/licence.js",function(S,te){"use strict";Object.defineProperty(S,"PRODUCT",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"LICENCE_VERSION",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"PUBLIC_KEY",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"fromBase64Url",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"toBase64Url",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"asciiBytes",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"parseLicence",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"hasEd25519",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"verifyLicence",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"isLocalHost",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"currentHost",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"matchesDomain",{enumerable:!0,get:function(){return k}}),Object.defineProperty(S,"LicenceHolder",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"setLicence",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"licenceInfo",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"watermark",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(S,"licenceState",{enumerable:!0,get:function(){return F}}),Object.defineProperty(S,"sharedLicence",{enumerable:!0,get:function(){return se}});const H=te("packages/core/src/internal/warn.js").warnOnce,L=te("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE;Object.defineProperty(S,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return L.FREE_TIER_NOTICE}});const E="lattice-grid",I=1,z="LG1",T=64,G="GwmaCOkGedHulqsa-DOV1TU8On1rsalWv519c_dW4j4",C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",A=(()=>{const le=new Int16Array(128).fill(-1);for(let xe=0;xe<C.length;xe++)le[C.charCodeAt(xe)]=xe;return le[43]=62,le[47]=63,le})();function r(le){if(typeof le!="string")return null;let xe="";for(let J=0;J<le.length;J++){const ne=le.charCodeAt(J);if(ne!==61){if(ne>127||A[ne]<0)return null;xe+=le[J]}}const ue=xe.length;if(ue%4===1)return null;const R=new Uint8Array(Math.floor(ue*3/4));let be=0,q=0,D=0;for(let J=0;J<ue;J++)be=be<<6|A[xe.charCodeAt(J)],q+=6,q>=8&&(q-=8,R[D++]=be>>q&255);return D===R.length?R:R.subarray(0,D)}function u(le){let xe="",ue=0;for(;ue+2<le.length;ue+=3){const be=le[ue]<<16|le[ue+1]<<8|le[ue+2];xe+=C[be>>18&63]+C[be>>12&63]+C[be>>6&63]+C[be&63]}const R=le.length-ue;if(R===1){const be=le[ue]<<16;xe+=C[be>>18&63]+C[be>>12&63]}else if(R===2){const be=le[ue]<<16|le[ue+1]<<8;xe+=C[be>>18&63]+C[be>>12&63]+C[be>>6&63]}return xe}function v(le){const xe=new Uint8Array(le.length);for(let ue=0;ue<le.length;ue++)xe[ue]=le.charCodeAt(ue)&127;return xe}function h(le){if(typeof TextDecoder=="function")return new TextDecoder().decode(le);let xe="";for(let ue=0;ue<le.length;ue++)xe+=String.fromCharCode(le[ue]);return xe}function c(le){const xe={ok:!1,reason:"malformed",product:null,issuedTo:null,expires:null,terms:null,features:[],deployments:[],version:0,message:null,signature:null,raw:typeof le=="string"?le:""};if(typeof le!="string"||le.length===0)return{...xe,reason:"missing"};const ue=le.trim(),R=ue.split(".");if(R.length!==3)return xe;const[be,q,D]=R;if(be!==z)return{...xe,reason:"prefix"};const J=r(q),ne=r(D);if(!J||!ne)return xe;let oe;try{oe=JSON.parse(h(J))}catch{return xe}return oe===null||typeof oe!="object"?xe:{ok:!0,reason:null,product:typeof oe.p=="string"?oe.p:null,issuedTo:typeof oe.t=="string"?oe.t:null,expires:typeof oe.e=="string"?oe.e:null,terms:typeof oe.terms=="string"?oe.terms:null,features:Array.isArray(oe.f)?oe.f.slice():[],deployments:Array.isArray(oe.d)?oe.d.slice():[],version:typeof oe.v=="number"?oe.v:0,message:v(q),signature:ne,raw:ue}}function l(le,xe){if(!le)return!1;const ue=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(le)?`${le}T23:59:59.999Z`:le);return Number.isNaN(ue)?!0:xe>ue}function t(le){return le==="non-commercial"?"non-commercial":"commercial"}let p=null,P=null,o=null;function y(){const le=globalThis.crypto;return le&&le.subtle?le.subtle:null}async function V(le){if(p&&P===le)return p;const xe=y();if(!xe)return null;const ue=r(le);if(!ue)return null;try{const R=await xe.importKey("raw",ue,{name:"Ed25519"},!1,["verify"]);return p=R,P=le,R}catch{return null}}async function s(){return o!==null||(o=await V(G)!==null),o}async function d(le,xe={}){const ue=xe.warn!==!1,R=xe.product||E,be=xe.publicKey||G,q=xe.now??Date.now(),D=xe.host??m(),J=i(D)?"":` ${e}`,ne=c(le);if(!ne.ok){const W=ne.reason==="missing"?"missing":"malformed";return ue&&H(`licence.${W}`,W==="missing"?`no licence key supplied. The grid renders in full and carries a trial watermark on any host other than localhost. Get a key at latticegrid.dev.${J}`:`licence key could not be read. The grid will render with a watermark.${J}`),{valid:!1,reason:W,terms:"commercial"}}const oe={product:ne.product||void 0,issuedTo:ne.issuedTo||void 0,expires:ne.expires||void 0,terms:t(ne.terms)};if(ne.product!==R)return ue&&H("licence.product",`licence key is for '${ne.product}', not '${R}'. The grid will render with a watermark.`),{valid:!1,...oe,reason:"product"};if(l(ne.expires,q))return ue&&H("licence.expired",`licence expired on ${ne.expires}. The grid will render with a watermark. Renew at latticegrid.dev.`),{valid:!1,...oe,reason:"expired"};const ve=ne.deployments||[];if(ve.length&&D&&!i(D)&&!k(D,ve))return ue&&H("licence.domain",`licence key is not valid for ${D}; it covers ${ve.join(", ")}. The grid will render with a watermark.`),{valid:!1,...oe,reason:"domain"};const pe=await V(be);if(!pe){const W=!!ne.signature&&ne.signature.length===T;return ue&&H("licence.algorithm","this host does not provide crypto.subtle Ed25519, so the licence signature could not be verified. A structural check was used instead."),W?{valid:!0,...oe,reason:"unverified"}:{valid:!1,...oe,reason:"signature"}}let x=!1;try{x=await y().verify({name:"Ed25519"},pe,ne.signature,ne.message)}catch{x=!1}return x?{valid:!0,...oe}:(ue&&H("licence.signature","licence signature is not valid. The grid will render with a watermark."),{valid:!1,...oe,reason:"signature"})}function i(le){const xe=String(le??m()??"").trim().toLowerCase().replace(/^\[/,"").replace(/\]$/,"");return!xe||xe==="localhost"||xe.endsWith(".localhost")||xe==="::1"||xe==="0:0:0:0:0:0:0:1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(xe)}function m(){const le=globalThis.location;return le&&typeof le.hostname=="string"?le.hostname:null}function k(le,xe){const ue=w(le);return!ue||!Array.isArray(xe)?!1:xe.some(R=>{const be=w(R);if(!be)return!1;if(be==="*")return!0;if(be.startsWith("*.")){const q=be.slice(2);return ue===q||ue.endsWith(`.${q}`)}return ue===be})}function w(le){return String(le??"").trim().toLowerCase().replace(/\.$/,"")}class f{#e="";#r={valid:!1,reason:"missing",terms:"commercial"};#n=null;#t=null;#i;#o=new Set;constructor(xe={}){this.#i=xe}set(xe){this.#e=typeof xe=="string"?xe.trim():"";const ue=c(this.#e);return this.#r=ue.ok?{valid:!l(ue.expires,Date.now())&&ue.product===(this.#i.product||E),product:ue.product||void 0,issuedTo:ue.issuedTo||void 0,expires:ue.expires||void 0,terms:t(ue.terms),reason:"pending"}:{valid:!1,reason:ue.reason||"malformed",terms:"commercial"},this.#n=null,this.#e&&this.verify(),this.#r}verify(){if(this.#n)return this.#n;const xe=this.#e;return this.#n=d(xe,this.#i).then(ue=>{if(this.#e===xe){this.#r=ue;for(const R of this.#o)R(ue)}return ue}),this.#n}onSettled(xe){return this.#o.add(xe),()=>this.#o.delete(xe)}info(){return{...this.#r}}watermark(){return this.#r.valid?!1:!i(this.#t)}setHost(xe){this.#t=xe}state(){return this.#r.valid?"licensed":i(this.#t)?"localhost":"trial"}reset(){this.#e="",this.#r={valid:!1,reason:"missing",terms:"commercial"},this.#n=null,this.#o.clear()}}const $=Symbol.for("lattice-grid/licence/holder");function b(){const le=globalThis,xe=le&&le[$];if(xe&&typeof xe.set=="function"&&typeof xe.watermark=="function")return xe;const ue=new f;if(le)try{le[$]=ue}catch{}return ue}const _=b();function n(le){return _.set(le)}function O(){return _.info()}function ie(){return _.watermark()}function F(){return _.state()}function se(){return _}}),Ie("packages/dom/src/watermark.js",function(S,te){"use strict";Object.defineProperty(S,"WATERMARK_CLASS",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"WATERMARK_LAYER_CLASS",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"Watermark",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"viewLicenceHost",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"mountViewWatermark",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return s}});const H=te("packages/core/src/internal/predicates.js").isFunction,L=te("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE,E=L.WATERMARK_TEXT,I=te("packages/core/src/registry/licence.js"),z=I.watermark,T=I.setLicence,G=Object.freeze({t:d=>d==="licence.watermark.free"?e:E});function C(d,i,m={}){const k=d.createElement(i);if(m.class)for(const w of m.class.split(/\s+/))w&&k.classList.add(w);if(m.text!==void 0&&(k.textContent=m.text),m.attrs)for(const[w,f]of Object.entries(m.attrs))k.setAttribute(w,f);if(m.children)for(const w of m.children)k.appendChild(w);return k}function A(d,i,m){return d.addEventListener(i,m),()=>d.removeEventListener(i,m)}const r="lat-watermark",u="https://www.latticegrid.dev",v=["br","bl","tl","tr"],h=4e3,c=Symbol.for("lattice-grid/licence/holder"),l="data-lat-watermark-owner",t="lat-watermark-layer",p="lat-watermark-style",P=`
|
|
1910
1910
|
.${t}{position:absolute;inset:0;pointer-events:none;z-index:2147483000;overflow:hidden}
|
|
1911
1911
|
.${t} .${r}{position:absolute;z-index:6;padding:10px 18px;border-radius:var(--lattice-radius-sm,4px);background:var(--lattice-accent,#2563eb);box-shadow:0 2px 10px rgb(0 0 0 / 25%);color:var(--lattice-accent-contrast,#fff);font:700 15px/1.3 system-ui,sans-serif;letter-spacing:.02em;white-space:nowrap;pointer-events:none;opacity:.94}
|
|
1912
1912
|
.${t} .${r}--br{inset-inline-end:0;bottom:0}
|
|
@@ -1916,7 +1916,7 @@ ${k}
|
|
|
1916
1916
|
.${t} .${r}__link{color:inherit;pointer-events:auto;text-decoration:underline;text-underline-offset:2px}
|
|
1917
1917
|
.${t} .${r}__free{display:block;margin-top:2px;font-size:12px;font-weight:500;letter-spacing:0;opacity:.92}
|
|
1918
1918
|
@media print{.${t} .${r}{opacity:1}}
|
|
1919
|
-
`;class o{#e;#r;#n;#t=null;#i=[];#o;#u=0;#l=null;#a=null;#d=!1;constructor(i){this.#a=i.owner||null,this.#a&&H(this.#a.setAttribute)&&this.#a.setAttribute(l,""),this.#e=i.grid,this.#r=i.document,this.#n=i.element,this.#o=i.window||(typeof globalThis>"u"?{}:globalThis)}mount(){this.refresh(),H(this.#e.on)&&this.#i.push(this.#e.on("licence:changed",()=>this.refresh()));const i=this.#e.licence&&this.#e.licence.ready;i&&H(i.then)&&i.then(()=>this.refresh(),()=>this.refresh())}refresh(){const i=this.#m()&&!this.#f();i&&!this.#t?(this.#b(),this.#p()):!i&&this.#t&&(this.#s(),this.#c())}#f(){const i=this.#n;let m=i&&i.parentNode;for(this.#a&&m===this.#a&&(m=m.parentNode);m&&m.nodeType===1;){if(H(m.hasAttribute)&&m.hasAttribute(l))return!0;m=m.parentNode}return!1}#g(){const i=this.#o;if(!i||!H(i.matchMedia))return!1;try{return!!i.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}#p(){this.#c(),H(this.#o.setTimeout)&&(this.#g()||(this.#l=this.#o.setTimeout(()=>{if(this.#l=null,!this.#m()||this.#f()){this.#s();return}this.#u=(this.#u+1)%v.length,this.#s(),this.#b(),this.#p()},h)))}#c(){this.#l!==null&&H(this.#o.clearTimeout)&&this.#o.clearTimeout(this.#l),this.#l=null}#m(){const i=this.#e.licence;return!!(i&&H(i.watermark)&&i.watermark())}#b(){const i=this.#e.messages&&H(this.#e.messages.t)?this.#e.messages:G,m=C(this.#r,"a",{class:`${r}__link`,text:i.t("licence.watermark"),attrs:{href:u,target:"_blank",rel:"noopener noreferrer"}}),k=C(this.#r,"span",{class:`${r}__free`,text:i.t("licence.watermark.free")});this.#t=C(this.#r,"div",{class:`${r} ${r}--${v[this.#u]}`,attrs:{role:"note",title:"This grid is unlicensed for this domain. Visit latticegrid.dev for a licence."},children:[m,k]}),this.#i.push(A(this.#t,"pointerdown",w=>{H(w.stopPropagation)&&w.stopPropagation()})),this.#n&&H(this.#n.appendChild)&&this.#n.appendChild(this.#t),typeof queueMicrotask=="function"&&!this.#d&&(this.#d=!0,queueMicrotask(()=>{this.#d=!1,this.#t&&this.#f()&&(this.#s(),this.#c())}))}#s(){this.#t&&H(this.#t.remove)&&this.#t.remove(),this.#t=null}destroy(){this.#c(),this.#a&&H(this.#a.removeAttribute)&&this.#a.removeAttribute(l);for(const i of this.#i)i();this.#i=[],this.#s()}}function y(d={},i=void 0){const m=globalThis[c],k=!d.licence&&i&&H(i.querySelector)?i.querySelector('meta[name="lattice-license"]')?.getAttribute("content"):null,w=d.licence||k;return w&&N(w),{licence:{watermark:()=>z(),get ready(){return m?m.verify():Promise.resolve()}},on:(f,$)=>f==="licence:changed"&&m?m.onSettled(()=>$()):()=>{}}}function V(d,i={}){const m=d&&d.ownerDocument;if(!m||!H(m.createElement))return{destroy(){},refresh(){}};const k=m.defaultView||void 0,w=y(i,m);let f=null,$=null,b=null,_=!1;const n=()=>{if(!m.getElementById(p)&&m.head){const F=m.createElement("style");F.id=p,F.textContent=P,m.head.appendChild(F)}k&&H(k.getComputedStyle)&&k.getComputedStyle(d).position==="static"&&(d.style.position="relative"),f=m.createElement("div"),f.className=t,d.appendChild(f),$=new o({grid:w,document:m,element:f,window:k,owner:d}),$.mount(),k&&H(k.MutationObserver)&&(b=new k.MutationObserver(()=>{!_&&f&&f.parentNode!==d&&d.appendChild(f)}),b.observe(d,{childList:!0}))},O=()=>{_||($?$.refresh():w.licence.watermark()&&n())};O();const ie=w.on("licence:changed",O);return w.licence.ready,{refresh:O,destroy(){_||(_=!0,ie(),b&&b.disconnect(),$&&$.destroy(),f&&f.parentNode&&f.parentNode.removeChild(f))}}}const s=o}),Ie("packages/modules/form/controls/input.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=Object.freeze(["text","email","password","url"]),e=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"}),E=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 I(A){return L.includes(A)?A:"text"}function z(A){return!(A.props&&A.props.reveal===!1)}function N(A,r){const u=r?E:e,v=A.createElementNS("http://www.w3.org/2000/svg","svg");v.setAttribute("viewBox",u.viewBox),v.setAttribute("focusable","false"),v.setAttribute("aria-hidden","true"),u.paint==="stroke"?(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","1.5"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")):v.setAttribute("fill","currentColor");for(const h of u.paths){const c=A.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d",h),v.appendChild(c)}return v}function G(A){return A.__latPassword?A.__latPassword.input:A}function C(A,r,u){const v=r&&r.defaultView,h=v&&v.Event,c=h?new h(u,{bubbles:!0}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};A.dispatchEvent(c)}H("input",{kind:"field",build(A,r){const u=r.doc,v=I(A.subtype);if(v!=="password"||!z(A)){const y=u.createElement("input");return y.type=v,A.name&&(y.name=A.name),A.placeholder!=null&&(y.placeholder=String(A.placeholder)),y.value=A.value==null?"":String(A.value),y}const h=u.createElement("div");h.className="lat-form__password";const c=u.createElement("input");c.type="password",A.name&&(c.name=A.name),A.placeholder!=null&&(c.placeholder=String(A.placeholder)),c.value=A.value==null?"":String(A.value),h.appendChild(c);const l=u.createElement("button");l.type="button",l.className="lat-form__password-btn",l.setAttribute("aria-pressed","false");const t=r.t("form.password.show");l.setAttribute("aria-label",t),l.title=t,l.appendChild(N(u,!1)),h.appendChild(l);const p={revealed:!1,disabled:!1,input:c,btn:l};h.__latPassword=p;const P=y=>{p.revealed=y===!0,c.type=p.revealed?"text":"password",l.setAttribute("aria-pressed",p.revealed?"true":"false");const V=r.t(p.revealed?"form.password.hide":"form.password.show");l.setAttribute("aria-label",V),l.title=V,l.replaceChild(N(u,p.revealed),l.firstChild)};p.setRevealed=P,l.addEventListener("click",()=>{p.disabled||P(!p.revealed)});let o=!1;return h.addEventListener("focusin",()=>{o||(o=!0,C(h,u,"focus"))}),h.addEventListener("focusout",y=>{h.contains(y.relatedTarget)||(o=!1,P(!1),C(h,u,"blur"))}),h},read(A){return G(A).value},write(A,r){G(A).value=r==null?"":String(r)},state(A,r){const u=G(A);u.disabled=r.disabled===!0,u.readOnly=r.readOnly===!0;const v=A.__latPassword;v&&(v.disabled=r.disabled===!0,v.btn&&(v.btn.disabled=v.disabled))},reset(A){const r=A.__latPassword;r&&typeof r.setRevealed=="function"&&r.setRevealed(!1)}})}),Ie("packages/core/src/format/mask.js",function(S,te){"use strict";Object.defineProperty(S,"splitSections",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"parseSection",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"compileMask",{enumerable:!0,get:function(){return I}});const xe=new Set(["0","#","?",",","."]),H="\0";function L(N){const G=[];let C="",A=!1;for(let r=0;r<N.length;r++){const u=N[r];if(u==="\\"){C+=u+(N[r+1]??""),r+=1;continue}if(u==='"'){A=!A,C+=u;continue}if(u===";"&&!A){G.push(C),C="";continue}C+=u}return G.push(C),G}function e(N){let G="",C="",A="",r=1,u=!1,v=!1;const h=s=>{v?C+=s:G+=s};for(let s=0;s<N.length;s++){const d=N[s];if(d==="\\"){h(N[s+1]??""),s+=1;continue}if(d==='"'){const i=N.indexOf('"',s+1);h(i===-1?N.slice(s+1):N.slice(s+1,i)),s=i===-1?N.length:i;continue}if(d==="%"){r*=100,h("%");continue}if(d==="@"){u=!0,h("\0");continue}if(xe.has(d)){A+=d,v=!0;continue}h(d)}let c=-1;for(let s=A.length-1;s>=0;s--){const d=A[s];if(d==="0"||d==="#"||d==="?"){c=s;break}}let l=!1,t="";for(let s=0;s<A.length;s++){const d=A[s];if(d===","){s>c?r/=1e3:l=!0;continue}t+=d}const p=t.indexOf("."),P=p===-1?t:t.slice(0,p),o=p===-1?"":t.slice(p+1);let y=0;for(const s of P)s==="0"&&(y+=1);let V=0;for(const s of o)s==="0"&&(V+=1);return{prefix:G,suffix:C,minInt:y,minDec:V,maxDec:o.length,grouping:l,scale:r,hasNumber:c!==-1,isText:u}}function E(N,G){const C=new Intl.NumberFormat(G,{minimumIntegerDigits:Math.max(N.minInt,1),minimumFractionDigits:N.minDec,maximumFractionDigits:Math.max(N.maxDec,N.minDec),useGrouping:N.grouping}),{prefix:A,suffix:r,scale:u,hasNumber:v}=N;return h=>{if(!v)return A+r;const c=u===1?h:h*u;return A+C.format(c)+r}}function I(N,G){const A=L(String(N)).map(e),r=A.map(t=>E(t,G)),u=0,v=A.length>1?1:-1,h=A.length>2?2:-1,c=A.length>3?3:-1,l=t=>{if(t==null||t==="")return"";if(typeof t!="number"||Number.isNaN(t)){const p=Number(t);if(Number.isNaN(p))return c===-1?String(t):(A[c].prefix+A[c].suffix).split("\0").join(String(t));t=p}return t===0&&h!==-1?r[h](0):t<0&&v!==-1?r[v](-t):r[u](t)};return l.spec={mask:N},{format:l,ooxml:z(String(N))}}function z(N){return N.trim()}}),Ie("packages/core/src/format/pattern.js",function(S,te){"use strict";Object.defineProperty(S,"parseNumberPattern",{enumerable:!0,get:function(){return E}});const H=te("packages/core/src/format/mask.js").splitSections;function L(I){let z="",N="",G="",C="",A=!1,r=!1,u=!1,v=!1;const h=l=>{u?N+=l:z+=l};for(let l=0;l<I.length;l++){const t=I[l];if(t==="\\"){h(I[l+1]??""),l+=1;continue}if(t==='"'){const p=I.indexOf('"',l+1);h(p===-1?I.slice(l+1):I.slice(l+1,p)),l=p===-1?I.length:p;continue}if(t==="%"){r=!0;continue}if(t==="0"||t==="#"){u=!0,v?C+=t:G+=t;continue}if(t===","){v||(A=!0);continue}if(t==="."&&!v){v=!0;continue}h(t)}if(!u)return{hasDigit:!1,prefix:z,suffix:N,minDec:0,maxDec:0,grouping:!1,percent:r};let c=0;for(const l of C)l==="0"&&(c+=1);return{hasDigit:!0,prefix:z,suffix:N,minDec:c,maxDec:C.length,grouping:A,percent:r}}function e(I,z){const N=z.trim(),G=I.trim();return N.startsWith("(")&&N.endsWith(")")&&N.slice(1,-1).trim()===G?"parentheses":N.endsWith("-")?"suffix":"minus"}function E(I){if(typeof I!="string")return null;const z=H(I);if(z.length===0)return null;const N=L(z[0]);if(!N.hasDigit)return null;const G={style:N.percent?"percent":"decimal",prefix:N.prefix,suffix:N.suffix,minDecimals:N.minDec,maxDecimals:Math.max(N.maxDec,N.minDec),thousandsSeparator:N.grouping?void 0:!1};if(z.length>1&&(G.negative=e(z[0],z[1])),z.length>2){const C=L(z[2]);C.hasDigit||(G.zeroDisplay=C.prefix+C.suffix)}return G}}),Ie("packages/core/src/format/number.js",function(S,te){"use strict";Object.defineProperty(S,"compileNumber",{enumerable:!0,get:function(){return z}});const H=te("packages/core/src/internal/predicates.js").isNil,e=te("packages/core/src/internal/warn.js").warnOnce,I=te("packages/core/src/format/pattern.js").parseNumberPattern;function z(N,G){const C=typeof N=="string"?{pattern:N}:N||{};let A=C;if(typeof C.pattern=="string"){const b=I(C.pattern);if(b){const{pattern:_,...n}=C;A={...b,...n}}else e(`format:pattern:${C.pattern}`,`invalid number format pattern "${C.pattern}"; the value will use the default number format`)}const r=A.locale||G||void 0,u=A.style||"decimal",v=typeof A.scale=="number"?A.scale:1,h=A.nullDisplay??"",c=A.zeroDisplay,l=A.prefix||"",t=A.suffix||"",p=A.negative||"minus",P=A.signed===!0,o={style:u,notation:A.notation||"standard"};u==="currency"&&(o.currency=A.currency||"USD",A.currencyDisplay&&(o.currencyDisplay=A.currencyDisplay)),typeof A.decimals=="number"?(o.minimumFractionDigits=A.decimals,o.maximumFractionDigits=A.decimals):(typeof A.minDecimals=="number"&&(o.minimumFractionDigits=A.minDecimals),typeof A.maxDecimals=="number"&&(o.maximumFractionDigits=A.maxDecimals),o.minimumFractionDigits>(o.maximumFractionDigits??20)&&(o.maximumFractionDigits=o.minimumFractionDigits)),A.thousandsSeparator===!1&&(o.useGrouping=!1),o.notation==="compact"&&(o.compactDisplay=A.compactDisplay||"short");const y=new Intl.NumberFormat(r,o),V=typeof A.thousandsSeparator=="string"?A.thousandsSeparator:null,s=typeof A.decimalSeparator=="string"?A.decimalSeparator:null;let d=",",i=".";if(V||s)for(const b of y.formatToParts(12345.6))b.type==="group"?d=b.value:b.type==="decimal"&&(i=b.value);const m=b=>{let _=b;return V&&(_=_.split(d).join("")),s&&(_=_.split(i).join("")),V&&(_=_.split("").join(V)),s&&(_=_.split("").join(s)),_},k=!!(V||s),w=l!==""&&u==="currency",f=b=>{let _;if(w){const n=y.formatToParts(b);let O=!1;_="";for(const ie of n)_+=ie.value,!O&&ie.type==="currency"&&(_+=l,O=!0);O||(_=l+_)}else _=l+y.format(b);return k&&(_=m(_)),_+t},$=b=>{if(H(b)||b==="")return h;const _=typeof b=="number"?b:Number(b);if(Number.isNaN(_))return h;const n=v===1?_:_*v;return n===0&&c!==void 0?c:n<0?p==="parentheses"?`(${f(-n)})`:p==="suffix"?`${f(-n)}-`:f(n):P&&n>0?`+${f(n)}`:f(n)};return $.negativeClass=A.negativeClass||null,$.spec=A,$}}),Ie("packages/core/src/columns/types/unit.js",function(S,te){"use strict";Object.defineProperty(S,"defineUnit",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"registerUnitSystem",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"unitSystemNames",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"unitsOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"findUnit",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"localeSeparators",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"parseUnit",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"formatUnit",{enumerable:!0,get:function(){return le}}),Object.defineProperty(S,"createUnitType",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return be}});const H=te("packages/core/src/internal/predicates.js").isNil,e=te("packages/core/src/internal/warn.js").warnOnce;function E(q,D,J,ne){return Object.freeze({symbol:q,factor:D,aliases:Object.freeze(J||[]),binary:!!(ne&&ne.binary),prefix:ne&&ne.prefix||null,auto:!(ne&&ne.auto===!1)})}function I(q,D,J,ne){return E(q,D,J,ne)}const z=Object.freeze({data:Object.freeze([E("B",1,["byte","bytes"]),E("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),E("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),E("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),E("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),E("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),E("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),E("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),E("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),E("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([E("bps",1,["bit","bits","bit/s","b/s"]),E("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),E("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),E("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),E("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([E("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),E("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),E("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),E("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),E("in",.0254,["inch","inches"],{auto:!1}),E("ft",.3048,["foot","feet"],{auto:!1}),E("yd",.9144,["yard","yards"],{auto:!1}),E("m",1,["metre","metres","meter","meters"]),E("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),E("mi",1609.344,["mile","miles"],{auto:!1}),E("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([E("mg",.001,["milligram","milligrams"]),E("g",1,["gram","grams"]),E("oz",28.349523125,["ounce","ounces"],{auto:!1}),E("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),E("kg",1e3,["kilogram","kilograms"]),E("st",6350.29318,["stone"],{auto:!1}),E("t",1e6,["tonne","tonnes","ton"],{auto:!1}),E("ton (US)",907184.74,["ton","shortton"],{auto:!1}),E("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([E("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),E("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),E("ms",.001,["msec","msecs","millisecond","milliseconds"]),E("s",1,["sec","secs","second","seconds"]),E("m",60,["min","mins","minute","minutes"]),E("h",3600,["hr","hrs","hour","hours"]),E("d",86400,["day","days"])]),speed:Object.freeze([E("mm/s",.001,["millimetre/s","millimeter/s"]),E("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),E("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),E("mph",.44704,["mile/h","miles/h"],{auto:!1}),E("kn",1852/3600,["knot","knots"],{auto:!1}),E("m/s",1,["metre/s","meter/s","mps"]),E("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([E("mm/s²",.001,["mm/s2"]),E("ft/s²",.3048,["ft/s2"],{auto:!1}),E("m/s²",1,["m/s2","metre/s2","meter/s2"]),E("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([E("mm²",1e-6,["mm2"]),E("cm²",1e-4,["cm2"]),E("in²",64516e-8,["in2","sqin"],{auto:!1}),E("ft²",.09290304,["ft2","sqft"],{auto:!1}),E("yd²",.83612736,["yd2","sqyd"],{auto:!1}),E("m²",1,["m2","sqm"]),E("ha",1e4,["hectare","hectares"],{auto:!1}),E("ac",4046.8564224,["acre","acres"],{auto:!1}),E("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([E("µL",1e-6,["ul","microlitre","microliter"]),E("mL",.001,["millilitre","milliliter"]),E("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),E("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),E("L",1,["litre","litres","liter","liters"]),E("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),E("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),E("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),E("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([E("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),E("J",1,["joule","joules"]),E("cal",4.184,["calorie","calories"],{auto:!1}),E("kJ",1e3,["kilojoule","kilojoules"]),E("BTU",1055.05585262,["btu"],{auto:!1}),E("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),E("MJ",1e6,["megajoule","megajoules"]),E("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),E("GJ",1e9,["gigajoule","gigajoules"]),E("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([E("mW",.001,["milliwatt","milliwatts"]),E("W",1,["watt","watts"]),E("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),E("kW",1e3,["kilowatt","kilowatts"]),E("hp",745.6998715822702,["horsepower"],{auto:!1}),E("MW",1e6,["megawatt","megawatts"]),E("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([E("mN",.001,["millinewton","millinewtons"]),E("N",1,["newton","newtons"]),E("lbf",4.4482216152605,["poundforce"],{auto:!1}),E("kgf",9.80665,["kilogramforce"],{auto:!1}),E("kN",1e3,["kilonewton","kilonewtons"]),E("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([E("Pa",1,["pascal","pascals"]),E("mbar",100,["millibar"],{auto:!1}),E("inH₂O",249.0889,["inh2o"],{auto:!1}),E("mmHg",133.322387415,["torr"],{auto:!1}),E("kPa",1e3,["kilopascal","kilopascals"]),E("inHg",3386.388640341,["inhg"],{auto:!1}),E("psi",6894.757293168361,["lbf/in2"],{auto:!1}),E("bar",1e5,[],{auto:!1}),E("atm",101325,["atmosphere","atmospheres"],{auto:!1}),E("MPa",1e6,["megapascal","megapascals"]),E("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([E("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),E("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),E("kN·m",1e3,["knm","kn.m"],{auto:!1}),E("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([E("kg/m³",1,["kg/m3"]),E("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),E("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),E("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([E("L/min",1/6e4,["lpm","l/min"],{auto:!1}),E("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),E("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),E("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),E("cfm",.0004719474432,["ft3/min"],{auto:!1}),E("L/s",.001,["lps","l/s"],{auto:!1}),E("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([E("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),E("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),E("mrad",.001,["milliradian","milliradians"],{auto:!1}),E("mil",Math.PI/3200,["nato-mil"],{auto:!1}),E("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),E("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),E("rad",1,["radian","radians"]),E("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([E("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),E("rad/s",1,["radps","radians/s"]),E("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),E("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([E("ppt",1e-12,["partspertrillion"],{auto:!1}),E("ppb",1e-9,["partsperbillion"]),E("ppm",1e-6,["partspermillion"]),E("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),E("‰",.001,["permille","permil"],{auto:!1}),E("%",.01,["pct","percent"]),E("×",1,["x","ratio","times"])]),molarity:Object.freeze([E("pM",1e-12,["picomolar","picomolarity"]),E("nM",1e-9,["nanomolar","nanomolarity"]),E("µM",1e-6,["um-molar","micromolar","micromolarity"]),E("mM",.001,["millimolar","millimolarity"]),E("M",1,["molar","mol/l","mol/L","molarity"]),E("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([E("mg/s",1e-6,["milligrams/s"]),E("g/s",.001,["grams/s"]),E("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),E("kg/s",1,["kilograms/s","kgps"]),E("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),E("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),E("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([E("µPa·s",1e-6,["upas","micropascalsecond"]),E("cP",.001,["centipoise"],{auto:!1}),E("mPa·s",.001,["mpas","millipascalsecond"]),E("P",.1,["poise"],{auto:!1}),E("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([E("cSt",1e-6,["centistokes","centistoke"]),E("mm²/s",1e-6,["mm2/s"],{auto:!1}),E("St",1e-4,["stokes","stoke"],{auto:!1}),E("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([E("mW/(m·K)",.001,["mw/mk"]),E("W/(m·K)",1,["w/mk","wmk"]),E("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),E("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([E("J/(kg·K)",1,["j/kgk","jkgk"]),E("kJ/(kg·K)",1e3,["kj/kgk"]),E("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([E("nSv/h",1e-9,["nsvh"]),E("µSv/h",1e-6,["usv/h","usvh"]),E("mSv/h",.001,["msvh"]),E("Sv/h",1,["svh"]),E("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),N=Symbol("ambiguous"),G=new Map,C=new Map;function A(q,D){const J=String(q||"").trim();if(!J)throw new Error("[lattice] a unit system needs a name");if(z[J]||C.has(J))throw new Error(`[lattice] unit system "${J}" already exists`);const ne=[...D||[]];if(!ne.length)throw new Error(`[lattice] unit system "${J}" has no units`);if(!ne.some(ve=>ve.factor===1))throw new Error(`[lattice] unit system "${J}" has no base unit (none with factor 1)`);const oe=new Set;for(const ve of ne){if(oe.has(ve.symbol))throw new Error(`[lattice] unit system "${J}" declares "${ve.symbol}" twice`);oe.add(ve.symbol)}return C.set(J,Object.freeze(ne)),G.delete(J),J}function r(){return[...Object.keys(z),...C.keys()]}function u(q){const D=v(q);return D?D.units:[]}function v(q){const D=String(q||""),J=G.get(D);if(J!==void 0)return J;const ne=z[D]||C.get(D);if(!ne)return G.set(D,null),null;const oe=Object.freeze([...ne].sort((U,j)=>U.factor-j.factor)),ve=new Map,pe=new Map,x=(U,j)=>{const Z=ve.get(U);Z===void 0?ve.set(U,j):Z!==j&&ve.set(U,N)};for(const U of oe){x(U.symbol.toLowerCase(),U);for(const j of U.aliases)x(j.toLowerCase(),U);if(U.prefix){const j=pe.get(U.prefix)||[];j.push(U),pe.set(U.prefix,j)}}const W={units:oe,byToken:ve,byPrefix:pe,decimal:oe.filter(U=>!U.binary&&U.auto),binary:oe.some(U=>U.binary)?oe.filter(U=>(U.binary||U.factor===1)&&U.auto):null};return G.set(D,W),W}function h(q,D){return D&&q.binary||q.decimal}function c(q,D){const J=v(q);if(!J||H(D))return null;const ne=J.units.find(ve=>ve.symbol===String(D));if(ne)return ne;const oe=J.byToken.get(String(D).trim().toLowerCase());return oe&&oe!==N?oe:null}const l=new WeakMap;function t(q){const D=q||{};if(typeof D=="object"&&D!==null){const ve=l.get(D);if(ve!==void 0)return ve}const J=D.system||"data",ne=v(J);let oe=null;if(!ne)e(`unit:system:${J}`,`unknown unit system "${J}"; known systems are ${r().join(", ")}`);else{let ve=D.unit?c(J,D.unit):null;ve||(D.unit&&e(`unit:unit:${J}:${D.unit}`,`unknown unit "${D.unit}" in system "${J}"; falling back to ${ne.units[0].symbol}`),ve=ne.units.find(pe=>pe.factor===1)||ne.units[0]),oe={index:ne,base:ve,binary:D.binary===!0}}return typeof D=="object"&&D!==null&&l.set(D,oe),oe}const p=new WeakMap;function P(q,D){if(!q||!D||!Array.isArray(q.compound)||q.compound.length===0)return null;const J=p.get(q);if(J!==void 0)return J;const ne=new Set,oe=[];for(const pe of q.compound){const x=c(q.system||"data",pe);if(!x){e(`unit:compound:${q.system}:${pe}`,`unknown compound unit "${pe}" in system "${q.system||"data"}"; ignoring it`);continue}ne.has(x.symbol)||(ne.add(x.symbol),oe.push(x))}oe.sort((pe,x)=>x.factor-pe.factor);const ve=oe.length>=2?oe:null;return p.set(q,ve),ve}function o(q,D,J){return D===J||D.factor===J.factor?q:q*D.factor/J.factor}const y=new Map;function V(q){const D=q||"",J=y.get(D);if(J)return J;const ne={group:",",decimal:"."};try{for(const oe of new Intl.NumberFormat(q||void 0).formatToParts(12345.6))oe.type==="group"?ne.group=oe.value:oe.type==="decimal"&&(ne.decimal=oe.value)}catch{}return y.set(D,ne),ne}const s=/[\s ]/g,d=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,i=/^[^\d+\-(.,\s]+\s*/,m=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function k(q,D){const{group:J,decimal:ne}=V(D);let oe=String(q).replace(s,"");if(oe==="")return null;const ve=ne?oe.indexOf(ne):-1;if(J&&J!==ne){if(ve>=0&&oe.indexOf(J,ve+ne.length)>=0)return null;oe=oe.split(J).join("")}if(ne&&ne!=="."&&(oe=oe.split(ne).join(".")),!m.test(oe))return null;const pe=Number(oe);return Number.isFinite(pe)?pe:null}function w(q,D,J){const ne=String(q).trim().replace(/\.$/,"");if(ne==="")return null;const oe=D.units.find(j=>j.symbol===ne);if(oe)return oe;const ve=ne.toLowerCase(),pe=D.byToken.get(ve);if(pe===N)return null;if(pe)return pe;const x=D.byPrefix.get(ve);if(!x||!x.length)return null;const W=h(D,J),U=x.filter(j=>W.includes(j));return U.length===1?U[0]:null}function f(q,D,J,ne){let oe=q,ve=0,pe=!1,x=!1;for(;oe!=="";){const W=d.exec(oe)[0];if(W==="")return null;const U=k(W,ne&&ne.locale);if(U===null)return null;oe=oe.slice(W.length).trim();const j=oe.search(/[+-]?[\d]/),Z=(j>=0?oe.slice(0,j):oe).trim();if(oe=j>=0?oe.slice(j).trim():"",Z===""){if(pe)return null;x=!0,ve+=o(U,J[0],D.base)}else{const ae=w(Z,D.index,D.binary);if(!ae)return null;ve+=o(U,ae,D.base)}if(pe=!0,x&&oe!=="")return null}return pe?ve:null}function $(q,D){if(H(q))return null;if(typeof q=="number")return Number.isFinite(q)?q:null;const J=t(D);if(!J)return null;let ne=String(q).trim();if(ne==="")return null;let oe=!1;ne.startsWith("(")&&ne.endsWith(")")&&(oe=!0,ne=ne.slice(1,-1).trim());const ve=P(D,J);if(ve){ne.startsWith("-")&&(oe=!0,ne=ne.slice(1).trim());const re=f(ne,J,ve,D);return re===null?null:oe?-re:re}let pe=null;const x=i.exec(ne);if(x&&x[0]){const re=w(x[0].trim(),J.index,J.binary);re&&(pe=re,ne=ne.slice(x[0].length).trim())}const W=d.exec(ne)[0],U=k(W,D&&D.locale);if(U===null)return null;const j=ne.slice(W.length).trim();if(pe&&j!=="")return null;const Z=pe||(j===""?J.base:w(j,J.index,J.binary));if(!Z)return null;const ae=o(U,Z,J.base);return oe?-ae:ae}const b=new Map;function _(q,D,J,ne){const oe=`${q||""}|${D}|${J}|${ne?1:0}`;let ve=b.get(oe);return ve||(ve=new Intl.NumberFormat(q||void 0,{minimumFractionDigits:D,maximumFractionDigits:J,useGrouping:ne}),b.set(oe,ve)),ve}function n(q,D){if(!Number.isFinite(q)||q===0)return Math.max(0,D-1);const J=Math.floor(Math.log10(Math.abs(q)));return Math.min(20,Math.max(0,D-1-J))}function O(q,D){if(!Number.isFinite(q)||q===0)return q;const J=Math.ceil(Math.log10(Math.abs(q))),ne=10**(D-J);return Math.round(q*ne)/ne}function ie(q,D,J){if(!J||J===D.base.symbol)return D.base;if(J!=="auto")return F(D,J);if(q===0||!Number.isFinite(q))return D.base;const ne=Math.abs(q)*D.base.factor,oe=h(D.index,D.binary);let ve=oe[0];for(const W of oe)ne>=W.factor&&(ve=W);if(ne>=ve.factor)return ve;let pe=ve;for(const W of D.index.units)W.binary!==D.binary&&W.factor!==1||W.factor<=ne&&W.factor>(pe===ve?0:pe.factor)&&(pe=W);if(pe!==ve)return pe;let x=ve;for(const W of D.index.units)W.binary!==D.binary&&W.factor!==1||W.factor<x.factor&&(x=W);return x.factor<D.base.factor?x:D.base}function F(q,D){const J=q.index.units.find(oe=>oe.symbol===D);if(J)return J;const ne=q.index.byToken.get(String(D).toLowerCase());return ne&&ne!==N?ne:(e(`unit:display:${D}`,`unknown display unit "${D}"; rendering in ${q.base.symbol}`),q.base)}function se(q,D,J,ne){const oe=q<0;let ve=Math.abs(q)*D.base.factor;const pe=typeof ne.decimals=="number"?ne.decimals:ne.minDecimals??0,x=typeof ne.decimals=="number"?ne.decimals:ne.maxDecimals??Math.max(pe,2),W=ne.space??" ",U=[];for(let Z=0;Z<J.length;Z++){const ae=J[Z],re=Z===J.length-1;let R=re?ve/ae.factor:Math.floor(ve/ae.factor);if(ve-=R*ae.factor,re){const X=10**x;R=Math.round(R*X)/X+0}const ee=re?_(ne.locale,pe,x,ne.group!==!1):_(ne.locale,0,0,ne.group!==!1);U.push(`${ee.format(R)}${W}${ae.symbol}`)}const j=U.join(" ");return oe?`-${j}`:j}function le(q,D){const J=D||{},ne=J.nullDisplay??"";if(H(q)||q==="")return ne;const oe=typeof q=="number"?q:Number(q);if(!Number.isFinite(oe))return ne;const ve=t(J);if(!ve)return String(oe);const pe=P(J,ve);if(pe)return se(oe,ve,pe,J);const x=typeof J.significantFigures=="number"&&J.significantFigures>0?J.significantFigures:0,W=x?O(oe,x):oe,U=ie(W,ve,J.display),j=o(W,ve.base,U);let Z=typeof J.decimals=="number"?J.decimals:J.minDecimals??0,ae=typeof J.decimals=="number"?J.decimals:J.maxDecimals??Math.max(Z,2);x&&(Z=n(j,x),ae=Z);const re=_(J.locale,Z,ae,J.group!==!1).format(j),R=J.space??" ";return J.placement==="prefix"?`${U.symbol}${J.space??""}${re}`:`${re}${R}${U.symbol}`}function ke(q,D){const J=H(q)||Number.isNaN(q)?null:Number(q),ne=H(D)||Number.isNaN(D)?null:Number(D);return J===null||Number.isNaN(J)?ne===null||Number.isNaN(ne)?0:1:ne===null||Number.isNaN(ne)||J<ne?-1:J>ne?1:0}function ce(q){const D=typeof q.decimals=="number"&&q.decimals>0?`.${"0".repeat(q.decimals)}`:"";return`${typeof q.decimals=="number"?`#,##0${D}`:"#,##0.##"}" ${q.symbol}"`}function B(q){const D={system:"data",...q||{}},J=t(D),ne=J?J.base.symbol:String(D.unit||""),oe=Object.freeze({...D,unit:ne}),ve=Object.freeze({...oe,display:ne,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),pe=new Map([[oe.locale||"",oe]]),x=W=>{const U=W||"";let j=pe.get(U);return j||(j=Object.freeze({...oe,locale:W||void 0}),pe.set(U,j)),j};return{base:"number",extends:"number",storage:"float64",unitConfig:oe,format:W=>le(W.value,W.locale?x(W.locale):oe),parse:W=>$(W.text,W.locale?x(W.locale):oe),compare:ke,defaults:{filter:"number",editor:"unit",align:"end",total:D.total||"sum"},...D.totals?{totals:D.totals}:{},excel:D.excel||ce({decimals:D.decimals,symbol:ne}),toStorage:W=>typeof W=="number"?Number.isFinite(W)?W:null:typeof W=="string"?$(W,oe):H(W)?null:$(String(W),oe),toClipboard:W=>le(W,ve),fromClipboard:W=>$(W,oe)}}const be=B}),Ie("packages/core/src/columns/types/temperature.js",function(S,te){"use strict";Object.defineProperty(S,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"findScale",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"convertTemperature",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"formatTemperature",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"parseTemperature",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"createTemperatureType",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return v}});const H=te("packages/core/src/internal/predicates.js").isNil,L=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:h=>h+273.15,fromKelvin:h=>h-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:h=>(h+459.67)*(5/9),fromKelvin:h=>h*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:h=>h,fromKelvin:h=>h}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:h=>h*(5/9),fromKelvin:h=>h*(9/5)})});function e(h){if(H(h))return null;const c=String(h).trim();if(c==="")return null;for(const[t,p]of Object.entries(L))if(c===t||c===p.symbol)return{key:t,scale:p};const l=c.toLowerCase();for(const[t,p]of Object.entries(L))if(p.aliases.includes(l))return{key:t,scale:p};return null}function E(h,c,l){const t=e(c),p=e(l);return!t||!p||!Number.isFinite(Number(h))?null:t.key===p.key?Number(h):p.scale.fromKelvin(t.scale.toKelvin(Number(h)))}const I=new Map;function z(h,c,l){const t=`${h||""}|${c}|${l}`;let p=I.get(t);return p||(p=new Intl.NumberFormat(h||void 0,{minimumFractionDigits:c,maximumFractionDigits:l}),I.set(t,p)),p}function N(h,c){const l=c||{},t=l.nullDisplay??"";if(H(h)||h==="")return t;const p=Number(h);if(!Number.isFinite(p))return t;const P=e(l.scale||"C");if(!P)return String(p);const o=e(l.display||l.scale||"C")||P,y=o.key===P.key?p:o.scale.fromKelvin(P.scale.toKelvin(p)),V=typeof l.decimals=="number"?l.decimals:null,s=V??l.minDecimals??0,d=V??l.maxDecimals??1;return`${z(l.locale,s,d).format(y)}${l.space??" "}${o.scale.symbol}`}const G=/^[+-]?[\d\s., ]*\d/;function C(h,c){const l=String(h).trim();if(l==="")return null;const t=new Intl.NumberFormat(c||void 0).formatToParts(1.1).find(y=>y.type==="decimal")?.value||".",p=t===","?".":",",P=l.split(p).join("").split(/[\s ]/).join("").replace(t,"."),o=Number(P);return Number.isFinite(o)?o:null}function A(h,c){if(H(h))return null;const l=c||{},t=e(l.scale||"C");if(!t)return null;if(typeof h=="number")return Number.isFinite(h)?h:null;let p=String(h).trim();if(p==="")return null;let P=!1;p.startsWith("(")&&p.endsWith(")")&&(P=!0,p=p.slice(1,-1).trim());const o=G.exec(p);if(!o)return null;const y=C(o[0],l.locale);if(y===null)return null;const V=p.slice(o[0].length).trim();if(V==="")return P?-y:y;const s=e(V);if(!s)return null;const d=s.key===t.key?y:t.scale.fromKelvin(s.scale.toKelvin(y));return P?-d:d}function r(h){const c=Object.freeze({scale:"C",...h||{}}),t=(e(c.scale)||e("C")).scale.symbol,p=Object.freeze({...c,display:c.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),P=new Map([[c.locale||"",c]]),o=y=>{const V=y||"";let s=P.get(V);return s||(s=Object.freeze({...c,locale:y||void 0}),P.set(V,s)),s};return{base:"number",extends:"number",storage:"float64",temperatureConfig:c,format:y=>N(y.value,y.locale?o(y.locale):c),parse:y=>A(y.text,y.locale?o(y.locale):c),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:c.excel||`#,##0${typeof c.decimals=="number"&&c.decimals>0?`.${"0".repeat(c.decimals)}`:".#"}" ${t}"`,toStorage:y=>typeof y=="number"?Number.isFinite(y)?y:null:typeof y=="string"?A(y,c):H(y)?null:A(String(y),c),toClipboard:y=>N(y,p),fromClipboard:y=>A(y,c)}}const u=Object.freeze({celsius:r({scale:"C"}),fahrenheit:r({scale:"F"}),kelvin:r({scale:"K"})}),v=r}),Ie("packages/modules/form/controls/number.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/core/src/format/number.js").compileNumber,z=te("packages/core/src/columns/types/unit.js"),N=z.parseUnit,G=z.formatUnit,C=z.findUnit,A=z.unitsOf,r=te("packages/core/src/columns/types/temperature.js"),u=r.parseTemperature,v=r.formatTemperature,h=r.findScale,c="data-lattice-form-number-styles";function l(){return`
|
|
1919
|
+
`;class o{#e;#r;#n;#t=null;#i=[];#o;#u=0;#l=null;#a=null;#d=!1;constructor(i){this.#a=i.owner||null,this.#a&&H(this.#a.setAttribute)&&this.#a.setAttribute(l,""),this.#e=i.grid,this.#r=i.document,this.#n=i.element,this.#o=i.window||(typeof globalThis>"u"?{}:globalThis)}mount(){this.refresh(),H(this.#e.on)&&this.#i.push(this.#e.on("licence:changed",()=>this.refresh()));const i=this.#e.licence&&this.#e.licence.ready;i&&H(i.then)&&i.then(()=>this.refresh(),()=>this.refresh())}refresh(){const i=this.#m()&&!this.#f();i&&!this.#t?(this.#b(),this.#p()):!i&&this.#t&&(this.#s(),this.#c())}#f(){const i=this.#n;let m=i&&i.parentNode;for(this.#a&&m===this.#a&&(m=m.parentNode);m&&m.nodeType===1;){if(H(m.hasAttribute)&&m.hasAttribute(l))return!0;m=m.parentNode}return!1}#g(){const i=this.#o;if(!i||!H(i.matchMedia))return!1;try{return!!i.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}#p(){this.#c(),H(this.#o.setTimeout)&&(this.#g()||(this.#l=this.#o.setTimeout(()=>{if(this.#l=null,!this.#m()||this.#f()){this.#s();return}this.#u=(this.#u+1)%v.length,this.#s(),this.#b(),this.#p()},h)))}#c(){this.#l!==null&&H(this.#o.clearTimeout)&&this.#o.clearTimeout(this.#l),this.#l=null}#m(){const i=this.#e.licence;return!!(i&&H(i.watermark)&&i.watermark())}#b(){const i=this.#e.messages&&H(this.#e.messages.t)?this.#e.messages:G,m=C(this.#r,"a",{class:`${r}__link`,text:i.t("licence.watermark"),attrs:{href:u,target:"_blank",rel:"noopener noreferrer"}}),k=C(this.#r,"span",{class:`${r}__free`,text:i.t("licence.watermark.free")});this.#t=C(this.#r,"div",{class:`${r} ${r}--${v[this.#u]}`,attrs:{role:"note",title:"This grid is unlicensed for this domain. Visit latticegrid.dev for a licence."},children:[m,k]}),this.#i.push(A(this.#t,"pointerdown",w=>{H(w.stopPropagation)&&w.stopPropagation()})),this.#n&&H(this.#n.appendChild)&&this.#n.appendChild(this.#t),typeof queueMicrotask=="function"&&!this.#d&&(this.#d=!0,queueMicrotask(()=>{this.#d=!1,this.#t&&this.#f()&&(this.#s(),this.#c())}))}#s(){this.#t&&H(this.#t.remove)&&this.#t.remove(),this.#t=null}destroy(){this.#c(),this.#a&&H(this.#a.removeAttribute)&&this.#a.removeAttribute(l);for(const i of this.#i)i();this.#i=[],this.#s()}}function y(d={},i=void 0){const m=globalThis[c],k=!d.licence&&i&&H(i.querySelector)?i.querySelector('meta[name="lattice-license"]')?.getAttribute("content"):null,w=d.licence||k;return w&&T(w),{licence:{watermark:()=>z(),get ready(){return m?m.verify():Promise.resolve()}},on:(f,$)=>f==="licence:changed"&&m?m.onSettled(()=>$()):()=>{}}}function V(d,i={}){const m=d&&d.ownerDocument;if(!m||!H(m.createElement))return{destroy(){},refresh(){}};const k=m.defaultView||void 0,w=y(i,m);let f=null,$=null,b=null,_=!1;const n=()=>{if(!m.getElementById(p)&&m.head){const F=m.createElement("style");F.id=p,F.textContent=P,m.head.appendChild(F)}k&&H(k.getComputedStyle)&&k.getComputedStyle(d).position==="static"&&(d.style.position="relative"),f=m.createElement("div"),f.className=t,d.appendChild(f),$=new o({grid:w,document:m,element:f,window:k,owner:d}),$.mount(),k&&H(k.MutationObserver)&&(b=new k.MutationObserver(()=>{!_&&f&&f.parentNode!==d&&d.appendChild(f)}),b.observe(d,{childList:!0}))},O=()=>{_||($?$.refresh():w.licence.watermark()&&n())};O();const ie=w.on("licence:changed",O);return w.licence.ready,{refresh:O,destroy(){_||(_=!0,ie(),b&&b.disconnect(),$&&$.destroy(),f&&f.parentNode&&f.parentNode.removeChild(f))}}}const s=o}),Ie("packages/modules/form/controls/input.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=Object.freeze(["text","email","password","url"]),e=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"}),E=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 I(A){return L.includes(A)?A:"text"}function z(A){return!(A.props&&A.props.reveal===!1)}function T(A,r){const u=r?E:e,v=A.createElementNS("http://www.w3.org/2000/svg","svg");v.setAttribute("viewBox",u.viewBox),v.setAttribute("focusable","false"),v.setAttribute("aria-hidden","true"),u.paint==="stroke"?(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","1.5"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")):v.setAttribute("fill","currentColor");for(const h of u.paths){const c=A.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d",h),v.appendChild(c)}return v}function G(A){return A.__latPassword?A.__latPassword.input:A}function C(A,r,u){const v=r&&r.defaultView,h=v&&v.Event,c=h?new h(u,{bubbles:!0}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};A.dispatchEvent(c)}H("input",{kind:"field",build(A,r){const u=r.doc,v=I(A.subtype);if(v!=="password"||!z(A)){const y=u.createElement("input");return y.type=v,A.name&&(y.name=A.name),A.placeholder!=null&&(y.placeholder=String(A.placeholder)),y.value=A.value==null?"":String(A.value),y}const h=u.createElement("div");h.className="lat-form__password";const c=u.createElement("input");c.type="password",A.name&&(c.name=A.name),A.placeholder!=null&&(c.placeholder=String(A.placeholder)),c.value=A.value==null?"":String(A.value),h.appendChild(c);const l=u.createElement("button");l.type="button",l.className="lat-form__password-btn",l.setAttribute("aria-pressed","false");const t=r.t("form.password.show");l.setAttribute("aria-label",t),l.title=t,l.appendChild(T(u,!1)),h.appendChild(l);const p={revealed:!1,disabled:!1,input:c,btn:l};h.__latPassword=p;const P=y=>{p.revealed=y===!0,c.type=p.revealed?"text":"password",l.setAttribute("aria-pressed",p.revealed?"true":"false");const V=r.t(p.revealed?"form.password.hide":"form.password.show");l.setAttribute("aria-label",V),l.title=V,l.replaceChild(T(u,p.revealed),l.firstChild)};p.setRevealed=P,l.addEventListener("click",()=>{p.disabled||P(!p.revealed)});let o=!1;return h.addEventListener("focusin",()=>{o||(o=!0,C(h,u,"focus"))}),h.addEventListener("focusout",y=>{h.contains(y.relatedTarget)||(o=!1,P(!1),C(h,u,"blur"))}),h},read(A){return G(A).value},write(A,r){G(A).value=r==null?"":String(r)},state(A,r){const u=G(A);u.disabled=r.disabled===!0,u.readOnly=r.readOnly===!0;const v=A.__latPassword;v&&(v.disabled=r.disabled===!0,v.btn&&(v.btn.disabled=v.disabled))},reset(A){const r=A.__latPassword;r&&typeof r.setRevealed=="function"&&r.setRevealed(!1)}})}),Ie("packages/core/src/format/mask.js",function(S,te){"use strict";Object.defineProperty(S,"splitSections",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"parseSection",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"compileMask",{enumerable:!0,get:function(){return I}});const we=new Set(["0","#","?",",","."]),H="\0";function L(T){const G=[];let C="",A=!1;for(let r=0;r<T.length;r++){const u=T[r];if(u==="\\"){C+=u+(T[r+1]??""),r+=1;continue}if(u==='"'){A=!A,C+=u;continue}if(u===";"&&!A){G.push(C),C="";continue}C+=u}return G.push(C),G}function e(T){let G="",C="",A="",r=1,u=!1,v=!1;const h=s=>{v?C+=s:G+=s};for(let s=0;s<T.length;s++){const d=T[s];if(d==="\\"){h(T[s+1]??""),s+=1;continue}if(d==='"'){const i=T.indexOf('"',s+1);h(i===-1?T.slice(s+1):T.slice(s+1,i)),s=i===-1?T.length:i;continue}if(d==="%"){r*=100,h("%");continue}if(d==="@"){u=!0,h("\0");continue}if(we.has(d)){A+=d,v=!0;continue}h(d)}let c=-1;for(let s=A.length-1;s>=0;s--){const d=A[s];if(d==="0"||d==="#"||d==="?"){c=s;break}}let l=!1,t="";for(let s=0;s<A.length;s++){const d=A[s];if(d===","){s>c?r/=1e3:l=!0;continue}t+=d}const p=t.indexOf("."),P=p===-1?t:t.slice(0,p),o=p===-1?"":t.slice(p+1);let y=0;for(const s of P)s==="0"&&(y+=1);let V=0;for(const s of o)s==="0"&&(V+=1);return{prefix:G,suffix:C,minInt:y,minDec:V,maxDec:o.length,grouping:l,scale:r,hasNumber:c!==-1,isText:u}}function E(T,G){const C=new Intl.NumberFormat(G,{minimumIntegerDigits:Math.max(T.minInt,1),minimumFractionDigits:T.minDec,maximumFractionDigits:Math.max(T.maxDec,T.minDec),useGrouping:T.grouping}),{prefix:A,suffix:r,scale:u,hasNumber:v}=T;return h=>{if(!v)return A+r;const c=u===1?h:h*u;return A+C.format(c)+r}}function I(T,G){const A=L(String(T)).map(e),r=A.map(t=>E(t,G)),u=0,v=A.length>1?1:-1,h=A.length>2?2:-1,c=A.length>3?3:-1,l=t=>{if(t==null||t==="")return"";if(typeof t!="number"||Number.isNaN(t)){const p=Number(t);if(Number.isNaN(p))return c===-1?String(t):(A[c].prefix+A[c].suffix).split("\0").join(String(t));t=p}return t===0&&h!==-1?r[h](0):t<0&&v!==-1?r[v](-t):r[u](t)};return l.spec={mask:T},{format:l,ooxml:z(String(T))}}function z(T){return T.trim()}}),Ie("packages/core/src/format/pattern.js",function(S,te){"use strict";Object.defineProperty(S,"parseNumberPattern",{enumerable:!0,get:function(){return E}});const H=te("packages/core/src/format/mask.js").splitSections;function L(I){let z="",T="",G="",C="",A=!1,r=!1,u=!1,v=!1;const h=l=>{u?T+=l:z+=l};for(let l=0;l<I.length;l++){const t=I[l];if(t==="\\"){h(I[l+1]??""),l+=1;continue}if(t==='"'){const p=I.indexOf('"',l+1);h(p===-1?I.slice(l+1):I.slice(l+1,p)),l=p===-1?I.length:p;continue}if(t==="%"){r=!0;continue}if(t==="0"||t==="#"){u=!0,v?C+=t:G+=t;continue}if(t===","){v||(A=!0);continue}if(t==="."&&!v){v=!0;continue}h(t)}if(!u)return{hasDigit:!1,prefix:z,suffix:T,minDec:0,maxDec:0,grouping:!1,percent:r};let c=0;for(const l of C)l==="0"&&(c+=1);return{hasDigit:!0,prefix:z,suffix:T,minDec:c,maxDec:C.length,grouping:A,percent:r}}function e(I,z){const T=z.trim(),G=I.trim();return T.startsWith("(")&&T.endsWith(")")&&T.slice(1,-1).trim()===G?"parentheses":T.endsWith("-")?"suffix":"minus"}function E(I){if(typeof I!="string")return null;const z=H(I);if(z.length===0)return null;const T=L(z[0]);if(!T.hasDigit)return null;const G={style:T.percent?"percent":"decimal",prefix:T.prefix,suffix:T.suffix,minDecimals:T.minDec,maxDecimals:Math.max(T.maxDec,T.minDec),thousandsSeparator:T.grouping?void 0:!1};if(z.length>1&&(G.negative=e(z[0],z[1])),z.length>2){const C=L(z[2]);C.hasDigit||(G.zeroDisplay=C.prefix+C.suffix)}return G}}),Ie("packages/core/src/format/number.js",function(S,te){"use strict";Object.defineProperty(S,"compileNumber",{enumerable:!0,get:function(){return z}});const H=te("packages/core/src/internal/predicates.js").isNil,e=te("packages/core/src/internal/warn.js").warnOnce,I=te("packages/core/src/format/pattern.js").parseNumberPattern;function z(T,G){const C=typeof T=="string"?{pattern:T}:T||{};let A=C;if(typeof C.pattern=="string"){const b=I(C.pattern);if(b){const{pattern:_,...n}=C;A={...b,...n}}else e(`format:pattern:${C.pattern}`,`invalid number format pattern "${C.pattern}"; the value will use the default number format`)}const r=A.locale||G||void 0,u=A.style||"decimal",v=typeof A.scale=="number"?A.scale:1,h=A.nullDisplay??"",c=A.zeroDisplay,l=A.prefix||"",t=A.suffix||"",p=A.negative||"minus",P=A.signed===!0,o={style:u,notation:A.notation||"standard"};u==="currency"&&(o.currency=A.currency||"USD",A.currencyDisplay&&(o.currencyDisplay=A.currencyDisplay)),typeof A.decimals=="number"?(o.minimumFractionDigits=A.decimals,o.maximumFractionDigits=A.decimals):(typeof A.minDecimals=="number"&&(o.minimumFractionDigits=A.minDecimals),typeof A.maxDecimals=="number"&&(o.maximumFractionDigits=A.maxDecimals),o.minimumFractionDigits>(o.maximumFractionDigits??20)&&(o.maximumFractionDigits=o.minimumFractionDigits)),A.thousandsSeparator===!1&&(o.useGrouping=!1),o.notation==="compact"&&(o.compactDisplay=A.compactDisplay||"short");const y=new Intl.NumberFormat(r,o),V=typeof A.thousandsSeparator=="string"?A.thousandsSeparator:null,s=typeof A.decimalSeparator=="string"?A.decimalSeparator:null;let d=",",i=".";if(V||s)for(const b of y.formatToParts(12345.6))b.type==="group"?d=b.value:b.type==="decimal"&&(i=b.value);const m=b=>{let _=b;return V&&(_=_.split(d).join("")),s&&(_=_.split(i).join("")),V&&(_=_.split("").join(V)),s&&(_=_.split("").join(s)),_},k=!!(V||s),w=l!==""&&u==="currency",f=b=>{let _;if(w){const n=y.formatToParts(b);let O=!1;_="";for(const ie of n)_+=ie.value,!O&&ie.type==="currency"&&(_+=l,O=!0);O||(_=l+_)}else _=l+y.format(b);return k&&(_=m(_)),_+t},$=b=>{if(H(b)||b==="")return h;const _=typeof b=="number"?b:Number(b);if(Number.isNaN(_))return h;const n=v===1?_:_*v;return n===0&&c!==void 0?c:n<0?p==="parentheses"?`(${f(-n)})`:p==="suffix"?`${f(-n)}-`:f(n):P&&n>0?`+${f(n)}`:f(n)};return $.negativeClass=A.negativeClass||null,$.spec=A,$}}),Ie("packages/core/src/columns/types/unit.js",function(S,te){"use strict";Object.defineProperty(S,"defineUnit",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"registerUnitSystem",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"unitSystemNames",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"unitsOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"findUnit",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"localeSeparators",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"parseUnit",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"formatUnit",{enumerable:!0,get:function(){return le}}),Object.defineProperty(S,"createUnitType",{enumerable:!0,get:function(){return R}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return be}});const H=te("packages/core/src/internal/predicates.js").isNil,e=te("packages/core/src/internal/warn.js").warnOnce;function E(q,D,J,ne){return Object.freeze({symbol:q,factor:D,aliases:Object.freeze(J||[]),binary:!!(ne&&ne.binary),prefix:ne&&ne.prefix||null,auto:!(ne&&ne.auto===!1)})}function I(q,D,J,ne){return E(q,D,J,ne)}const z=Object.freeze({data:Object.freeze([E("B",1,["byte","bytes"]),E("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),E("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),E("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),E("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),E("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),E("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),E("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),E("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),E("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([E("bps",1,["bit","bits","bit/s","b/s"]),E("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),E("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),E("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),E("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([E("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),E("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),E("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),E("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),E("in",.0254,["inch","inches"],{auto:!1}),E("ft",.3048,["foot","feet"],{auto:!1}),E("yd",.9144,["yard","yards"],{auto:!1}),E("m",1,["metre","metres","meter","meters"]),E("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),E("mi",1609.344,["mile","miles"],{auto:!1}),E("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([E("mg",.001,["milligram","milligrams"]),E("g",1,["gram","grams"]),E("oz",28.349523125,["ounce","ounces"],{auto:!1}),E("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),E("kg",1e3,["kilogram","kilograms"]),E("st",6350.29318,["stone"],{auto:!1}),E("t",1e6,["tonne","tonnes","ton"],{auto:!1}),E("ton (US)",907184.74,["ton","shortton"],{auto:!1}),E("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([E("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),E("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),E("ms",.001,["msec","msecs","millisecond","milliseconds"]),E("s",1,["sec","secs","second","seconds"]),E("m",60,["min","mins","minute","minutes"]),E("h",3600,["hr","hrs","hour","hours"]),E("d",86400,["day","days"])]),speed:Object.freeze([E("mm/s",.001,["millimetre/s","millimeter/s"]),E("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),E("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),E("mph",.44704,["mile/h","miles/h"],{auto:!1}),E("kn",1852/3600,["knot","knots"],{auto:!1}),E("m/s",1,["metre/s","meter/s","mps"]),E("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([E("mm/s²",.001,["mm/s2"]),E("ft/s²",.3048,["ft/s2"],{auto:!1}),E("m/s²",1,["m/s2","metre/s2","meter/s2"]),E("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([E("mm²",1e-6,["mm2"]),E("cm²",1e-4,["cm2"]),E("in²",64516e-8,["in2","sqin"],{auto:!1}),E("ft²",.09290304,["ft2","sqft"],{auto:!1}),E("yd²",.83612736,["yd2","sqyd"],{auto:!1}),E("m²",1,["m2","sqm"]),E("ha",1e4,["hectare","hectares"],{auto:!1}),E("ac",4046.8564224,["acre","acres"],{auto:!1}),E("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([E("µL",1e-6,["ul","microlitre","microliter"]),E("mL",.001,["millilitre","milliliter"]),E("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),E("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),E("L",1,["litre","litres","liter","liters"]),E("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),E("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),E("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),E("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([E("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),E("J",1,["joule","joules"]),E("cal",4.184,["calorie","calories"],{auto:!1}),E("kJ",1e3,["kilojoule","kilojoules"]),E("BTU",1055.05585262,["btu"],{auto:!1}),E("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),E("MJ",1e6,["megajoule","megajoules"]),E("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),E("GJ",1e9,["gigajoule","gigajoules"]),E("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([E("mW",.001,["milliwatt","milliwatts"]),E("W",1,["watt","watts"]),E("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),E("kW",1e3,["kilowatt","kilowatts"]),E("hp",745.6998715822702,["horsepower"],{auto:!1}),E("MW",1e6,["megawatt","megawatts"]),E("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([E("mN",.001,["millinewton","millinewtons"]),E("N",1,["newton","newtons"]),E("lbf",4.4482216152605,["poundforce"],{auto:!1}),E("kgf",9.80665,["kilogramforce"],{auto:!1}),E("kN",1e3,["kilonewton","kilonewtons"]),E("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([E("Pa",1,["pascal","pascals"]),E("mbar",100,["millibar"],{auto:!1}),E("inH₂O",249.0889,["inh2o"],{auto:!1}),E("mmHg",133.322387415,["torr"],{auto:!1}),E("kPa",1e3,["kilopascal","kilopascals"]),E("inHg",3386.388640341,["inhg"],{auto:!1}),E("psi",6894.757293168361,["lbf/in2"],{auto:!1}),E("bar",1e5,[],{auto:!1}),E("atm",101325,["atmosphere","atmospheres"],{auto:!1}),E("MPa",1e6,["megapascal","megapascals"]),E("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([E("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),E("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),E("kN·m",1e3,["knm","kn.m"],{auto:!1}),E("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([E("kg/m³",1,["kg/m3"]),E("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),E("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),E("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([E("L/min",1/6e4,["lpm","l/min"],{auto:!1}),E("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),E("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),E("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),E("cfm",.0004719474432,["ft3/min"],{auto:!1}),E("L/s",.001,["lps","l/s"],{auto:!1}),E("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([E("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),E("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),E("mrad",.001,["milliradian","milliradians"],{auto:!1}),E("mil",Math.PI/3200,["nato-mil"],{auto:!1}),E("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),E("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),E("rad",1,["radian","radians"]),E("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([E("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),E("rad/s",1,["radps","radians/s"]),E("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),E("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([E("ppt",1e-12,["partspertrillion"],{auto:!1}),E("ppb",1e-9,["partsperbillion"]),E("ppm",1e-6,["partspermillion"]),E("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),E("‰",.001,["permille","permil"],{auto:!1}),E("%",.01,["pct","percent"]),E("×",1,["x","ratio","times"])]),molarity:Object.freeze([E("pM",1e-12,["picomolar","picomolarity"]),E("nM",1e-9,["nanomolar","nanomolarity"]),E("µM",1e-6,["um-molar","micromolar","micromolarity"]),E("mM",.001,["millimolar","millimolarity"]),E("M",1,["molar","mol/l","mol/L","molarity"]),E("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([E("mg/s",1e-6,["milligrams/s"]),E("g/s",.001,["grams/s"]),E("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),E("kg/s",1,["kilograms/s","kgps"]),E("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),E("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),E("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([E("µPa·s",1e-6,["upas","micropascalsecond"]),E("cP",.001,["centipoise"],{auto:!1}),E("mPa·s",.001,["mpas","millipascalsecond"]),E("P",.1,["poise"],{auto:!1}),E("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([E("cSt",1e-6,["centistokes","centistoke"]),E("mm²/s",1e-6,["mm2/s"],{auto:!1}),E("St",1e-4,["stokes","stoke"],{auto:!1}),E("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([E("mW/(m·K)",.001,["mw/mk"]),E("W/(m·K)",1,["w/mk","wmk"]),E("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),E("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([E("J/(kg·K)",1,["j/kgk","jkgk"]),E("kJ/(kg·K)",1e3,["kj/kgk"]),E("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([E("nSv/h",1e-9,["nsvh"]),E("µSv/h",1e-6,["usv/h","usvh"]),E("mSv/h",.001,["msvh"]),E("Sv/h",1,["svh"]),E("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),T=Symbol("ambiguous"),G=new Map,C=new Map;function A(q,D){const J=String(q||"").trim();if(!J)throw new Error("[lattice] a unit system needs a name");if(z[J]||C.has(J))throw new Error(`[lattice] unit system "${J}" already exists`);const ne=[...D||[]];if(!ne.length)throw new Error(`[lattice] unit system "${J}" has no units`);if(!ne.some(ve=>ve.factor===1))throw new Error(`[lattice] unit system "${J}" has no base unit (none with factor 1)`);const oe=new Set;for(const ve of ne){if(oe.has(ve.symbol))throw new Error(`[lattice] unit system "${J}" declares "${ve.symbol}" twice`);oe.add(ve.symbol)}return C.set(J,Object.freeze(ne)),G.delete(J),J}function r(){return[...Object.keys(z),...C.keys()]}function u(q){const D=v(q);return D?D.units:[]}function v(q){const D=String(q||""),J=G.get(D);if(J!==void 0)return J;const ne=z[D]||C.get(D);if(!ne)return G.set(D,null),null;const oe=Object.freeze([...ne].sort((U,j)=>U.factor-j.factor)),ve=new Map,pe=new Map,x=(U,j)=>{const Z=ve.get(U);Z===void 0?ve.set(U,j):Z!==j&&ve.set(U,T)};for(const U of oe){x(U.symbol.toLowerCase(),U);for(const j of U.aliases)x(j.toLowerCase(),U);if(U.prefix){const j=pe.get(U.prefix)||[];j.push(U),pe.set(U.prefix,j)}}const W={units:oe,byToken:ve,byPrefix:pe,decimal:oe.filter(U=>!U.binary&&U.auto),binary:oe.some(U=>U.binary)?oe.filter(U=>(U.binary||U.factor===1)&&U.auto):null};return G.set(D,W),W}function h(q,D){return D&&q.binary||q.decimal}function c(q,D){const J=v(q);if(!J||H(D))return null;const ne=J.units.find(ve=>ve.symbol===String(D));if(ne)return ne;const oe=J.byToken.get(String(D).trim().toLowerCase());return oe&&oe!==T?oe:null}const l=new WeakMap;function t(q){const D=q||{};if(typeof D=="object"&&D!==null){const ve=l.get(D);if(ve!==void 0)return ve}const J=D.system||"data",ne=v(J);let oe=null;if(!ne)e(`unit:system:${J}`,`unknown unit system "${J}"; known systems are ${r().join(", ")}`);else{let ve=D.unit?c(J,D.unit):null;ve||(D.unit&&e(`unit:unit:${J}:${D.unit}`,`unknown unit "${D.unit}" in system "${J}"; falling back to ${ne.units[0].symbol}`),ve=ne.units.find(pe=>pe.factor===1)||ne.units[0]),oe={index:ne,base:ve,binary:D.binary===!0}}return typeof D=="object"&&D!==null&&l.set(D,oe),oe}const p=new WeakMap;function P(q,D){if(!q||!D||!Array.isArray(q.compound)||q.compound.length===0)return null;const J=p.get(q);if(J!==void 0)return J;const ne=new Set,oe=[];for(const pe of q.compound){const x=c(q.system||"data",pe);if(!x){e(`unit:compound:${q.system}:${pe}`,`unknown compound unit "${pe}" in system "${q.system||"data"}"; ignoring it`);continue}ne.has(x.symbol)||(ne.add(x.symbol),oe.push(x))}oe.sort((pe,x)=>x.factor-pe.factor);const ve=oe.length>=2?oe:null;return p.set(q,ve),ve}function o(q,D,J){return D===J||D.factor===J.factor?q:q*D.factor/J.factor}const y=new Map;function V(q){const D=q||"",J=y.get(D);if(J)return J;const ne={group:",",decimal:"."};try{for(const oe of new Intl.NumberFormat(q||void 0).formatToParts(12345.6))oe.type==="group"?ne.group=oe.value:oe.type==="decimal"&&(ne.decimal=oe.value)}catch{}return y.set(D,ne),ne}const s=/[\s ]/g,d=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,i=/^[^\d+\-(.,\s]+\s*/,m=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function k(q,D){const{group:J,decimal:ne}=V(D);let oe=String(q).replace(s,"");if(oe==="")return null;const ve=ne?oe.indexOf(ne):-1;if(J&&J!==ne){if(ve>=0&&oe.indexOf(J,ve+ne.length)>=0)return null;oe=oe.split(J).join("")}if(ne&&ne!=="."&&(oe=oe.split(ne).join(".")),!m.test(oe))return null;const pe=Number(oe);return Number.isFinite(pe)?pe:null}function w(q,D,J){const ne=String(q).trim().replace(/\.$/,"");if(ne==="")return null;const oe=D.units.find(j=>j.symbol===ne);if(oe)return oe;const ve=ne.toLowerCase(),pe=D.byToken.get(ve);if(pe===T)return null;if(pe)return pe;const x=D.byPrefix.get(ve);if(!x||!x.length)return null;const W=h(D,J),U=x.filter(j=>W.includes(j));return U.length===1?U[0]:null}function f(q,D,J,ne){let oe=q,ve=0,pe=!1,x=!1;for(;oe!=="";){const W=d.exec(oe)[0];if(W==="")return null;const U=k(W,ne&&ne.locale);if(U===null)return null;oe=oe.slice(W.length).trim();const j=oe.search(/[+-]?[\d]/),Z=(j>=0?oe.slice(0,j):oe).trim();if(oe=j>=0?oe.slice(j).trim():"",Z===""){if(pe)return null;x=!0,ve+=o(U,J[0],D.base)}else{const ae=w(Z,D.index,D.binary);if(!ae)return null;ve+=o(U,ae,D.base)}if(pe=!0,x&&oe!=="")return null}return pe?ve:null}function $(q,D){if(H(q))return null;if(typeof q=="number")return Number.isFinite(q)?q:null;const J=t(D);if(!J)return null;let ne=String(q).trim();if(ne==="")return null;let oe=!1;ne.startsWith("(")&&ne.endsWith(")")&&(oe=!0,ne=ne.slice(1,-1).trim());const ve=P(D,J);if(ve){ne.startsWith("-")&&(oe=!0,ne=ne.slice(1).trim());const re=f(ne,J,ve,D);return re===null?null:oe?-re:re}let pe=null;const x=i.exec(ne);if(x&&x[0]){const re=w(x[0].trim(),J.index,J.binary);re&&(pe=re,ne=ne.slice(x[0].length).trim())}const W=d.exec(ne)[0],U=k(W,D&&D.locale);if(U===null)return null;const j=ne.slice(W.length).trim();if(pe&&j!=="")return null;const Z=pe||(j===""?J.base:w(j,J.index,J.binary));if(!Z)return null;const ae=o(U,Z,J.base);return oe?-ae:ae}const b=new Map;function _(q,D,J,ne){const oe=`${q||""}|${D}|${J}|${ne?1:0}`;let ve=b.get(oe);return ve||(ve=new Intl.NumberFormat(q||void 0,{minimumFractionDigits:D,maximumFractionDigits:J,useGrouping:ne}),b.set(oe,ve)),ve}function n(q,D){if(!Number.isFinite(q)||q===0)return Math.max(0,D-1);const J=Math.floor(Math.log10(Math.abs(q)));return Math.min(20,Math.max(0,D-1-J))}function O(q,D){if(!Number.isFinite(q)||q===0)return q;const J=Math.ceil(Math.log10(Math.abs(q))),ne=10**(D-J);return Math.round(q*ne)/ne}function ie(q,D,J){if(!J||J===D.base.symbol)return D.base;if(J!=="auto")return F(D,J);if(q===0||!Number.isFinite(q))return D.base;const ne=Math.abs(q)*D.base.factor,oe=h(D.index,D.binary);let ve=oe[0];for(const W of oe)ne>=W.factor&&(ve=W);if(ne>=ve.factor)return ve;let pe=ve;for(const W of D.index.units)W.binary!==D.binary&&W.factor!==1||W.factor<=ne&&W.factor>(pe===ve?0:pe.factor)&&(pe=W);if(pe!==ve)return pe;let x=ve;for(const W of D.index.units)W.binary!==D.binary&&W.factor!==1||W.factor<x.factor&&(x=W);return x.factor<D.base.factor?x:D.base}function F(q,D){const J=q.index.units.find(oe=>oe.symbol===D);if(J)return J;const ne=q.index.byToken.get(String(D).toLowerCase());return ne&&ne!==T?ne:(e(`unit:display:${D}`,`unknown display unit "${D}"; rendering in ${q.base.symbol}`),q.base)}function se(q,D,J,ne){const oe=q<0;let ve=Math.abs(q)*D.base.factor;const pe=typeof ne.decimals=="number"?ne.decimals:ne.minDecimals??0,x=typeof ne.decimals=="number"?ne.decimals:ne.maxDecimals??Math.max(pe,2),W=ne.space??" ",U=[];for(let Z=0;Z<J.length;Z++){const ae=J[Z],re=Z===J.length-1;let B=re?ve/ae.factor:Math.floor(ve/ae.factor);if(ve-=B*ae.factor,re){const X=10**x;B=Math.round(B*X)/X+0}const ee=re?_(ne.locale,pe,x,ne.group!==!1):_(ne.locale,0,0,ne.group!==!1);U.push(`${ee.format(B)}${W}${ae.symbol}`)}const j=U.join(" ");return oe?`-${j}`:j}function le(q,D){const J=D||{},ne=J.nullDisplay??"";if(H(q)||q==="")return ne;const oe=typeof q=="number"?q:Number(q);if(!Number.isFinite(oe))return ne;const ve=t(J);if(!ve)return String(oe);const pe=P(J,ve);if(pe)return se(oe,ve,pe,J);const x=typeof J.significantFigures=="number"&&J.significantFigures>0?J.significantFigures:0,W=x?O(oe,x):oe,U=ie(W,ve,J.display),j=o(W,ve.base,U);let Z=typeof J.decimals=="number"?J.decimals:J.minDecimals??0,ae=typeof J.decimals=="number"?J.decimals:J.maxDecimals??Math.max(Z,2);x&&(Z=n(j,x),ae=Z);const re=_(J.locale,Z,ae,J.group!==!1).format(j),B=J.space??" ";return J.placement==="prefix"?`${U.symbol}${J.space??""}${re}`:`${re}${B}${U.symbol}`}function xe(q,D){const J=H(q)||Number.isNaN(q)?null:Number(q),ne=H(D)||Number.isNaN(D)?null:Number(D);return J===null||Number.isNaN(J)?ne===null||Number.isNaN(ne)?0:1:ne===null||Number.isNaN(ne)||J<ne?-1:J>ne?1:0}function ue(q){const D=typeof q.decimals=="number"&&q.decimals>0?`.${"0".repeat(q.decimals)}`:"";return`${typeof q.decimals=="number"?`#,##0${D}`:"#,##0.##"}" ${q.symbol}"`}function R(q){const D={system:"data",...q||{}},J=t(D),ne=J?J.base.symbol:String(D.unit||""),oe=Object.freeze({...D,unit:ne}),ve=Object.freeze({...oe,display:ne,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),pe=new Map([[oe.locale||"",oe]]),x=W=>{const U=W||"";let j=pe.get(U);return j||(j=Object.freeze({...oe,locale:W||void 0}),pe.set(U,j)),j};return{base:"number",extends:"number",storage:"float64",unitConfig:oe,format:W=>le(W.value,W.locale?x(W.locale):oe),parse:W=>$(W.text,W.locale?x(W.locale):oe),compare:xe,defaults:{filter:"number",editor:"unit",align:"end",total:D.total||"sum"},...D.totals?{totals:D.totals}:{},excel:D.excel||ue({decimals:D.decimals,symbol:ne}),toStorage:W=>typeof W=="number"?Number.isFinite(W)?W:null:typeof W=="string"?$(W,oe):H(W)?null:$(String(W),oe),toClipboard:W=>le(W,ve),fromClipboard:W=>$(W,oe)}}const be=R}),Ie("packages/core/src/columns/types/temperature.js",function(S,te){"use strict";Object.defineProperty(S,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"findScale",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"convertTemperature",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"formatTemperature",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"parseTemperature",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"createTemperatureType",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return v}});const H=te("packages/core/src/internal/predicates.js").isNil,L=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:h=>h+273.15,fromKelvin:h=>h-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:h=>(h+459.67)*(5/9),fromKelvin:h=>h*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:h=>h,fromKelvin:h=>h}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:h=>h*(5/9),fromKelvin:h=>h*(9/5)})});function e(h){if(H(h))return null;const c=String(h).trim();if(c==="")return null;for(const[t,p]of Object.entries(L))if(c===t||c===p.symbol)return{key:t,scale:p};const l=c.toLowerCase();for(const[t,p]of Object.entries(L))if(p.aliases.includes(l))return{key:t,scale:p};return null}function E(h,c,l){const t=e(c),p=e(l);return!t||!p||!Number.isFinite(Number(h))?null:t.key===p.key?Number(h):p.scale.fromKelvin(t.scale.toKelvin(Number(h)))}const I=new Map;function z(h,c,l){const t=`${h||""}|${c}|${l}`;let p=I.get(t);return p||(p=new Intl.NumberFormat(h||void 0,{minimumFractionDigits:c,maximumFractionDigits:l}),I.set(t,p)),p}function T(h,c){const l=c||{},t=l.nullDisplay??"";if(H(h)||h==="")return t;const p=Number(h);if(!Number.isFinite(p))return t;const P=e(l.scale||"C");if(!P)return String(p);const o=e(l.display||l.scale||"C")||P,y=o.key===P.key?p:o.scale.fromKelvin(P.scale.toKelvin(p)),V=typeof l.decimals=="number"?l.decimals:null,s=V??l.minDecimals??0,d=V??l.maxDecimals??1;return`${z(l.locale,s,d).format(y)}${l.space??" "}${o.scale.symbol}`}const G=/^[+-]?[\d\s., ]*\d/;function C(h,c){const l=String(h).trim();if(l==="")return null;const t=new Intl.NumberFormat(c||void 0).formatToParts(1.1).find(y=>y.type==="decimal")?.value||".",p=t===","?".":",",P=l.split(p).join("").split(/[\s ]/).join("").replace(t,"."),o=Number(P);return Number.isFinite(o)?o:null}function A(h,c){if(H(h))return null;const l=c||{},t=e(l.scale||"C");if(!t)return null;if(typeof h=="number")return Number.isFinite(h)?h:null;let p=String(h).trim();if(p==="")return null;let P=!1;p.startsWith("(")&&p.endsWith(")")&&(P=!0,p=p.slice(1,-1).trim());const o=G.exec(p);if(!o)return null;const y=C(o[0],l.locale);if(y===null)return null;const V=p.slice(o[0].length).trim();if(V==="")return P?-y:y;const s=e(V);if(!s)return null;const d=s.key===t.key?y:t.scale.fromKelvin(s.scale.toKelvin(y));return P?-d:d}function r(h){const c=Object.freeze({scale:"C",...h||{}}),t=(e(c.scale)||e("C")).scale.symbol,p=Object.freeze({...c,display:c.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),P=new Map([[c.locale||"",c]]),o=y=>{const V=y||"";let s=P.get(V);return s||(s=Object.freeze({...c,locale:y||void 0}),P.set(V,s)),s};return{base:"number",extends:"number",storage:"float64",temperatureConfig:c,format:y=>T(y.value,y.locale?o(y.locale):c),parse:y=>A(y.text,y.locale?o(y.locale):c),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:c.excel||`#,##0${typeof c.decimals=="number"&&c.decimals>0?`.${"0".repeat(c.decimals)}`:".#"}" ${t}"`,toStorage:y=>typeof y=="number"?Number.isFinite(y)?y:null:typeof y=="string"?A(y,c):H(y)?null:A(String(y),c),toClipboard:y=>T(y,p),fromClipboard:y=>A(y,c)}}const u=Object.freeze({celsius:r({scale:"C"}),fahrenheit:r({scale:"F"}),kelvin:r({scale:"K"})}),v=r}),Ie("packages/modules/form/controls/number.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/core/src/format/number.js").compileNumber,z=te("packages/core/src/columns/types/unit.js"),T=z.parseUnit,G=z.formatUnit,C=z.findUnit,A=z.unitsOf,r=te("packages/core/src/columns/types/temperature.js"),u=r.parseTemperature,v=r.formatTemperature,h=r.findScale,c="data-lattice-form-number-styles";function l(){return`
|
|
1920
1920
|
.lat-form__control .lat-form__number{
|
|
1921
1921
|
text-align:right; font-variant-numeric:tabular-nums;
|
|
1922
1922
|
}
|
|
@@ -1957,7 +1957,7 @@ ${k}
|
|
|
1957
1957
|
font:inherit; line-height:inherit; cursor:pointer;
|
|
1958
1958
|
}
|
|
1959
1959
|
.lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
|
|
1960
|
-
`.trim()}function t(d){const i=d&&d.documentElement;if(!i||i.getAttribute(c))return;i.setAttribute(c,"1");const m=d.createElement("style");m.textContent=l(),(d.head||d.body||i).appendChild(m)}function p(d){let i="",m=".";try{for(const k of new Intl.NumberFormat(d||void 0).formatToParts(12345.6))k.type==="group"?i=k.value:k.type==="decimal"&&(m=k.value)}catch{}return{group:i,decimal:m}}function P(d,i){if(d==null)return null;let m=String(d).trim();if(m==="")return null;const{group:k,decimal:w}=p(i);let f=!1;if(/^\(.*\)$/.test(m)&&(f=!0,m=m.slice(1,-1)),m=m.replace(/[\s ]/g,""),k&&k!=="."&&(m=m.split(k).join("")),m=m.replace(/[^0-9eE+\-.,]/g,""),w===","?(m=m.split(".").join(""),m=m.replace(",",".")):m=m.split(",").join(""),m===""||m==="-"||m==="+")return NaN;m.startsWith("-")&&(f=!f,m=m.slice(1));const $=Number(m);return Number.isFinite($)?f?-$:$:NaN}function o(d){if(d==null||d==="")return"";const i=typeof d=="number"?d:Number(d);return Number.isFinite(i)?String(i):""}function y(d){return d&&d.__latNumber?d.__latNumber.input:d}function V(d){if(typeof d=="number")return Number.isFinite(d)?d:null;if(d==null||d==="")return null;const i=Number(d);return Number.isFinite(i)?i:null}function s(d){const i=d&&d.props||{};return typeof i.system=="string"&&i.system!==""?{kind:"unit",opts:{system:i.system,unit:i.unit,binary:i.binary===!0,decimals:i.decimals,minDecimals:i.minDecimals,maxDecimals:i.maxDecimals,display:i.display,locale:d.locale||i.locale,group:i.group,space:i.space,placement:i.placement,compound:i.compound,significantFigures:i.significantFigures,nullDisplay:i.nullDisplay}}:typeof i.scale=="string"&&i.scale!==""?{kind:"temperature",opts:{scale:i.scale,display:i.display,decimals:i.decimals,minDecimals:i.minDecimals,maxDecimals:i.maxDecimals,space:i.space,locale:d.locale||i.locale,nullDisplay:i.nullDisplay}}:null}H("number",{kind:"field",build(d,i){const m=i.doc;t(m);const k=d.props&&d.props.format&&(typeof d.props.format=="object"||typeof d.props.format=="string")?d.props.format:null,w=d.locale||void 0,f=k?I(k,w):null,$=typeof i.t=="function"?i.t:e,b=s(d),_=V(d.step),n=V(d.min),O=V(d.max),ie=typeof n=="number"||typeof O=="number"||typeof _=="number"&&_>0;!b&&ie&&d.validationMode==="submit"&&(d.validationMode="change");let F="";if(b&&b.kind==="unit"){const pe=C(b.opts.system,b.opts.unit);F=pe?pe.symbol:String(b.opts.unit||"")}else if(b&&b.kind==="temperature"){const pe=h(b.opts.scale);F=pe?pe.scale.symbol:""}const se=m.createElement("input");se.type="text",se.inputMode="decimal",se.className="lat-form__number",d.name&&(se.name=d.name),d.placeholder!=null&&(se.placeholder=String(d.placeholder));const le={input:se,format:f,t:$,locale:w,step:_,min:n,max:O,unit:b,unitSymbol:F,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},ke=()=>le.displayUnit!=null?{...b.opts,display:le.displayUnit}:b.opts,ce=pe=>le.unit&&le.unit.kind==="unit"?G(pe,ke()):le.unit&&le.unit.kind==="temperature"?v(pe,le.unit.opts):le.format&&Number.isFinite(pe)?le.format(pe):o(pe),B=pe=>{if(!le.unit)return P(pe,le.locale);const x=pe==null?"":String(pe);if(x.trim()==="")return null;const W=le.unit.kind==="temperature"?u(x,le.unit.opts):N(x,le.unit.opts);return W===null?Number.NaN:W},be=()=>le.unit&&typeof le.unit.opts.nullDisplay=="string"?le.unit.opts.nullDisplay:"",q=pe=>{if(pe==null||pe===""){le.value=null,le.invalid=!1,se.value=be();return}const x=typeof pe=="number"?pe:Number(pe);if(!Number.isFinite(x)){le.value=null,le.invalid=!1,se.value=be();return}le.value=x,le.invalid=!1,se.value=le.focused?o(x):ce(x)},D=()=>{const pe=se.value;pe===""?se.removeAttribute("aria-valuetext"):se.setAttribute("aria-valuetext",pe)},J=pe=>{const x=B(se.value);let U=(x==null||Number.isNaN(x)?0:x)+pe;typeof n=="number"&&U<n&&(U=n),typeof O=="number"&&U>O&&(U=O),se.value=le.unit&&!le.focused?ce(U):o(U)},ne=()=>{le.focused=!0,le.value!=null&&(se.value=o(le.value)),D()},oe=()=>{le.focused=!1;const pe=B(se.value);pe==null?(le.value=null,le.invalid=!1,se.value=be()):Number.isNaN(pe)?(le.invalid=!0,le.value!=null?se.value=ce(le.value):se.value=""):(le.invalid=!1,le.value=pe,se.value=ce(pe)),D()},ve=pe=>{if(pe.key!=="ArrowUp"&&pe.key!=="ArrowDown")return;typeof pe.preventDefault=="function"&&pe.preventDefault();const x=typeof _=="number"&&_>0?_:1;J(pe.key==="ArrowUp"?x:-x)};if(se.addEventListener("focus",ne),se.addEventListener("blur",oe),se.addEventListener("keydown",ve),le.disposers.push(()=>se.removeEventListener("focus",ne),()=>se.removeEventListener("blur",oe),()=>se.removeEventListener("keydown",ve)),q(d.value),typeof n=="number"&&se.setAttribute("aria-valuemin",String(n)),typeof O=="number"&&se.setAttribute("aria-valuemax",String(O)),D(),se.__latNumber=le,b&&b.kind==="unit"&&d.props&&d.props.unitPicker===!0){const pe=m.createElement("div");pe.className="lat-form__number-unit";const x=m.createElement("select");x.className="lat-form__number-unitpick",x.setAttribute("aria-label",$("form.number.unitPicker"));const W=A(b.opts.system);for(const ae of W){const re=m.createElement("option");re.value=ae.symbol,re.textContent=ae.symbol,x.appendChild(re)}const U=b.opts.display&&b.opts.display!=="auto"?b.opts.display:F,j=W.some(ae=>ae.symbol===U)?U:F;x.value=j,le.displayUnit=j;const Z=()=>{le.displayUnit=x.value,!le.focused&&le.value!=null&&(se.value=ce(le.value)),D()};return x.addEventListener("change",Z),le.disposers.push(()=>x.removeEventListener("change",Z)),le.picker=x,pe.appendChild(se),pe.appendChild(x),pe.__latNumber=le,pe}if(d.props&&d.props.spinner===!0){const pe=m.createElement("div");pe.className="lat-form__number-spinner";const x=(j,Z)=>{const ae=m.createElement("button");return ae.type="button",ae.tabIndex=-1,ae.className="lat-form__number-step",ae.textContent=j,ae.addEventListener("mousedown",re=>{typeof re.preventDefault=="function"&&re.preventDefault();const R=typeof _=="number"&&_>0?_:1;J(Z*R)}),ae},W=x("−",-1),U=x("+",1);return le.buttons=[W,U],pe.appendChild(W),pe.appendChild(se),pe.appendChild(U),pe.__latNumber=le,pe}return se},read(d){const i=d&&d.__latNumber,m=i?i.input:d;if(i&&!i.focused)return i.unit&&i.invalid?Number.NaN:i.value;if(i&&i.unit){const k=m.value;if(String(k).trim()==="")return null;const w=i.unit.kind==="temperature"?u(k,i.unit.opts):N(k,i.unit.opts);return w===null?Number.NaN:w}return P(m.value,i?i.locale:void 0)},write(d,i){const m=d&&d.__latNumber,k=m?m.input:d,w=m&&m.unit&&typeof m.unit.opts.nullDisplay=="string"?m.unit.opts.nullDisplay:"";if(i==null||i===""){m&&(m.value=null,m.invalid=!1),k.value=w;return}const f=typeof i=="number"?i:Number(i);if(!Number.isFinite(f)){m&&(m.value=null,m.invalid=!1),k.value=w;return}m&&(m.value=f,m.invalid=!1),m&&m.focused?k.value=o(f):m&&m.unit?k.value=m.unit.kind==="unit"?G(f,m.displayUnit!=null?{...m.unit.opts,display:m.displayUnit}:m.unit.opts):v(f,m.unit.opts):m&&m.format?k.value=m.format(f):k.value=o(f),k.value===""?k.removeAttribute("aria-valuetext"):k.setAttribute("aria-valuetext",k.value)},state(d,i){const m=d&&d.__latNumber,k=m?m.input:d;k.disabled=i.disabled===!0,k.readOnly=i.readOnly===!0;const w=i.disabled===!0||i.readOnly===!0;for(const f of m?m.buttons:[])f.disabled=w;m&&m.picker&&(m.picker.disabled=w)},validate(d,i,m){const k=d&&d.__latNumber,w=k&&k.t?k.t:e;if(m==null||m==="")return null;if(typeof m!="number"||Number.isNaN(m))return k&&k.unit?w("form.validation.unit",{unit:k.unitSymbol}):w("form.validation.number");const f=b=>k&&k.unit&&k.unit.kind==="unit"?G(b,{...k.unit.opts,display:k.unit.opts.unit,group:!0}):k&&k.unit&&k.unit.kind==="temperature"?v(b,k.unit.opts):String(b),$=!(k&&k.unit);if(k&&typeof k.min=="number"&&m<k.min){const b=w("form.validation.min",{min:f(k.min)});return $?{code:"min",message:b}:b}if(k&&typeof k.max=="number"&&m>k.max){const b=w("form.validation.max",{max:f(k.max)});return $?{code:"max",message:b}:b}if(k&&typeof k.step=="number"&&k.step>0){const b=typeof k.min=="number"?k.min:0,_=(m-b)/k.step;if(Math.abs(_-Math.round(_))>1e-9){const n=w("form.validation.step",{step:String(k.step)});return $?{code:"step",message:n}:n}}return null},focus(d){const i=y(d);typeof i.focus=="function"&&i.focus()},blur(d){const i=y(d);typeof i.blur=="function"&&i.blur()},destroy(d){const i=d&&d.__latNumber;if(i)for(const m of i.disposers.splice(0))m()},live:{min(d,i){const m=d&&d.__latNumber;m&&(m.min=V(i))},max(d,i){const m=d&&d.__latNumber;m&&(m.max=V(i))},step(d,i){const m=d&&d.__latNumber;m&&(m.step=V(i))},format(d,i){const m=d&&d.__latNumber;m&&(m.format=i&&(typeof i=="object"||typeof i=="string")?I(i,m.locale):null,!m.focused&&m.value!=null&&(m.input.value=m.unit?m.unit.kind==="unit"?G(m.value,m.displayUnit!=null?{...m.unit.opts,display:m.displayUnit}:m.unit.opts):v(m.value,m.unit.opts):m.format?m.format(m.value):o(m.value),m.input.value===""?m.input.removeAttribute("aria-valuetext"):m.input.setAttribute("aria-valuetext",m.input.value)))}}})}),Ie("packages/modules/form/controls/textarea.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl;H("textarea",{kind:"field",build(L,e){const E=e.doc.createElement("textarea");return L.name&&(E.name=L.name),L.placeholder!=null&&(E.placeholder=String(L.placeholder)),L.rows!=null&&(E.rows=Number(L.rows)||2),E.value=L.value==null?"":String(L.value),E},read(L){return L.value},write(L,e){L.value=e==null?"":String(e)},state(L,e){L.disabled=e.disabled===!0,L.readOnly=e.readOnly===!0}})}),Ie("packages/modules/form/controls/checkbox.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/state.js"),e=L.applyBooleanInputState,E=L.guardBooleanInput;H("checkbox",{kind:"toggle",build(I,z){const N=z.doc.createElement("input");return N.type="checkbox",I.name&&(N.name=I.name),N.checked=I.value===!0,E(N),N},read(I){return I.checked},write(I,z){I.checked=z===!0},state(I,z){e(I,z.disabled===!0,z.readOnly===!0)}})}),Ie("packages/modules/form/controls/buttons.js",function(S,te){"use strict";Object.defineProperty(S,"injectButtonsStyles",{enumerable:!0,get:function(){return A}});const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/button.js"),e=L.buildButton,E=L.buttonItemFrom,I=L.injectButtonStyles,z="lat-button-row",N="data-lattice-button-row-styles",G=Object.freeze(["start","end","center","stretch","space-between"]);function C(){return`
|
|
1960
|
+
`.trim()}function t(d){const i=d&&d.documentElement;if(!i||i.getAttribute(c))return;i.setAttribute(c,"1");const m=d.createElement("style");m.textContent=l(),(d.head||d.body||i).appendChild(m)}function p(d){let i="",m=".";try{for(const k of new Intl.NumberFormat(d||void 0).formatToParts(12345.6))k.type==="group"?i=k.value:k.type==="decimal"&&(m=k.value)}catch{}return{group:i,decimal:m}}function P(d,i){if(d==null)return null;let m=String(d).trim();if(m==="")return null;const{group:k,decimal:w}=p(i);let f=!1;if(/^\(.*\)$/.test(m)&&(f=!0,m=m.slice(1,-1)),m=m.replace(/[\s ]/g,""),k&&k!=="."&&(m=m.split(k).join("")),m=m.replace(/[^0-9eE+\-.,]/g,""),w===","?(m=m.split(".").join(""),m=m.replace(",",".")):m=m.split(",").join(""),m===""||m==="-"||m==="+")return NaN;m.startsWith("-")&&(f=!f,m=m.slice(1));const $=Number(m);return Number.isFinite($)?f?-$:$:NaN}function o(d){if(d==null||d==="")return"";const i=typeof d=="number"?d:Number(d);return Number.isFinite(i)?String(i):""}function y(d){return d&&d.__latNumber?d.__latNumber.input:d}function V(d){if(typeof d=="number")return Number.isFinite(d)?d:null;if(d==null||d==="")return null;const i=Number(d);return Number.isFinite(i)?i:null}function s(d){const i=d&&d.props||{};return typeof i.system=="string"&&i.system!==""?{kind:"unit",opts:{system:i.system,unit:i.unit,binary:i.binary===!0,decimals:i.decimals,minDecimals:i.minDecimals,maxDecimals:i.maxDecimals,display:i.display,locale:d.locale||i.locale,group:i.group,space:i.space,placement:i.placement,compound:i.compound,significantFigures:i.significantFigures,nullDisplay:i.nullDisplay}}:typeof i.scale=="string"&&i.scale!==""?{kind:"temperature",opts:{scale:i.scale,display:i.display,decimals:i.decimals,minDecimals:i.minDecimals,maxDecimals:i.maxDecimals,space:i.space,locale:d.locale||i.locale,nullDisplay:i.nullDisplay}}:null}H("number",{kind:"field",build(d,i){const m=i.doc;t(m);const k=d.props&&d.props.format&&(typeof d.props.format=="object"||typeof d.props.format=="string")?d.props.format:null,w=d.locale||void 0,f=k?I(k,w):null,$=typeof i.t=="function"?i.t:e,b=s(d),_=V(d.step),n=V(d.min),O=V(d.max),ie=typeof n=="number"||typeof O=="number"||typeof _=="number"&&_>0;!b&&ie&&d.validationMode==="submit"&&(d.validationMode="change");let F="";if(b&&b.kind==="unit"){const pe=C(b.opts.system,b.opts.unit);F=pe?pe.symbol:String(b.opts.unit||"")}else if(b&&b.kind==="temperature"){const pe=h(b.opts.scale);F=pe?pe.scale.symbol:""}const se=m.createElement("input");se.type="text",se.inputMode="decimal",se.className="lat-form__number",d.name&&(se.name=d.name),d.placeholder!=null&&(se.placeholder=String(d.placeholder));const le={input:se,format:f,t:$,locale:w,step:_,min:n,max:O,unit:b,unitSymbol:F,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},xe=()=>le.displayUnit!=null?{...b.opts,display:le.displayUnit}:b.opts,ue=pe=>le.unit&&le.unit.kind==="unit"?G(pe,xe()):le.unit&&le.unit.kind==="temperature"?v(pe,le.unit.opts):le.format&&Number.isFinite(pe)?le.format(pe):o(pe),R=pe=>{if(!le.unit)return P(pe,le.locale);const x=pe==null?"":String(pe);if(x.trim()==="")return null;const W=le.unit.kind==="temperature"?u(x,le.unit.opts):T(x,le.unit.opts);return W===null?Number.NaN:W},be=()=>le.unit&&typeof le.unit.opts.nullDisplay=="string"?le.unit.opts.nullDisplay:"",q=pe=>{if(pe==null||pe===""){le.value=null,le.invalid=!1,se.value=be();return}const x=typeof pe=="number"?pe:Number(pe);if(!Number.isFinite(x)){le.value=null,le.invalid=!1,se.value=be();return}le.value=x,le.invalid=!1,se.value=le.focused?o(x):ue(x)},D=()=>{const pe=se.value;pe===""?se.removeAttribute("aria-valuetext"):se.setAttribute("aria-valuetext",pe)},J=pe=>{const x=R(se.value);let U=(x==null||Number.isNaN(x)?0:x)+pe;typeof n=="number"&&U<n&&(U=n),typeof O=="number"&&U>O&&(U=O),se.value=le.unit&&!le.focused?ue(U):o(U)},ne=()=>{le.focused=!0,le.value!=null&&(se.value=o(le.value)),D()},oe=()=>{le.focused=!1;const pe=R(se.value);pe==null?(le.value=null,le.invalid=!1,se.value=be()):Number.isNaN(pe)?(le.invalid=!0,le.value!=null?se.value=ue(le.value):se.value=""):(le.invalid=!1,le.value=pe,se.value=ue(pe)),D()},ve=pe=>{if(pe.key!=="ArrowUp"&&pe.key!=="ArrowDown")return;typeof pe.preventDefault=="function"&&pe.preventDefault();const x=typeof _=="number"&&_>0?_:1;J(pe.key==="ArrowUp"?x:-x)};if(se.addEventListener("focus",ne),se.addEventListener("blur",oe),se.addEventListener("keydown",ve),le.disposers.push(()=>se.removeEventListener("focus",ne),()=>se.removeEventListener("blur",oe),()=>se.removeEventListener("keydown",ve)),q(d.value),typeof n=="number"&&se.setAttribute("aria-valuemin",String(n)),typeof O=="number"&&se.setAttribute("aria-valuemax",String(O)),D(),se.__latNumber=le,b&&b.kind==="unit"&&d.props&&d.props.unitPicker===!0){const pe=m.createElement("div");pe.className="lat-form__number-unit";const x=m.createElement("select");x.className="lat-form__number-unitpick",x.setAttribute("aria-label",$("form.number.unitPicker"));const W=A(b.opts.system);for(const ae of W){const re=m.createElement("option");re.value=ae.symbol,re.textContent=ae.symbol,x.appendChild(re)}const U=b.opts.display&&b.opts.display!=="auto"?b.opts.display:F,j=W.some(ae=>ae.symbol===U)?U:F;x.value=j,le.displayUnit=j;const Z=()=>{le.displayUnit=x.value,!le.focused&&le.value!=null&&(se.value=ue(le.value)),D()};return x.addEventListener("change",Z),le.disposers.push(()=>x.removeEventListener("change",Z)),le.picker=x,pe.appendChild(se),pe.appendChild(x),pe.__latNumber=le,pe}if(d.props&&d.props.spinner===!0){const pe=m.createElement("div");pe.className="lat-form__number-spinner";const x=(j,Z)=>{const ae=m.createElement("button");return ae.type="button",ae.tabIndex=-1,ae.className="lat-form__number-step",ae.textContent=j,ae.addEventListener("mousedown",re=>{typeof re.preventDefault=="function"&&re.preventDefault();const B=typeof _=="number"&&_>0?_:1;J(Z*B)}),ae},W=x("−",-1),U=x("+",1);return le.buttons=[W,U],pe.appendChild(W),pe.appendChild(se),pe.appendChild(U),pe.__latNumber=le,pe}return se},read(d){const i=d&&d.__latNumber,m=i?i.input:d;if(i&&!i.focused)return i.unit&&i.invalid?Number.NaN:i.value;if(i&&i.unit){const k=m.value;if(String(k).trim()==="")return null;const w=i.unit.kind==="temperature"?u(k,i.unit.opts):T(k,i.unit.opts);return w===null?Number.NaN:w}return P(m.value,i?i.locale:void 0)},write(d,i){const m=d&&d.__latNumber,k=m?m.input:d,w=m&&m.unit&&typeof m.unit.opts.nullDisplay=="string"?m.unit.opts.nullDisplay:"";if(i==null||i===""){m&&(m.value=null,m.invalid=!1),k.value=w;return}const f=typeof i=="number"?i:Number(i);if(!Number.isFinite(f)){m&&(m.value=null,m.invalid=!1),k.value=w;return}m&&(m.value=f,m.invalid=!1),m&&m.focused?k.value=o(f):m&&m.unit?k.value=m.unit.kind==="unit"?G(f,m.displayUnit!=null?{...m.unit.opts,display:m.displayUnit}:m.unit.opts):v(f,m.unit.opts):m&&m.format?k.value=m.format(f):k.value=o(f),k.value===""?k.removeAttribute("aria-valuetext"):k.setAttribute("aria-valuetext",k.value)},state(d,i){const m=d&&d.__latNumber,k=m?m.input:d;k.disabled=i.disabled===!0,k.readOnly=i.readOnly===!0;const w=i.disabled===!0||i.readOnly===!0;for(const f of m?m.buttons:[])f.disabled=w;m&&m.picker&&(m.picker.disabled=w)},validate(d,i,m){const k=d&&d.__latNumber,w=k&&k.t?k.t:e;if(m==null||m==="")return null;if(typeof m!="number"||Number.isNaN(m))return k&&k.unit?w("form.validation.unit",{unit:k.unitSymbol}):w("form.validation.number");const f=b=>k&&k.unit&&k.unit.kind==="unit"?G(b,{...k.unit.opts,display:k.unit.opts.unit,group:!0}):k&&k.unit&&k.unit.kind==="temperature"?v(b,k.unit.opts):String(b),$=!(k&&k.unit);if(k&&typeof k.min=="number"&&m<k.min){const b=w("form.validation.min",{min:f(k.min)});return $?{code:"min",message:b}:b}if(k&&typeof k.max=="number"&&m>k.max){const b=w("form.validation.max",{max:f(k.max)});return $?{code:"max",message:b}:b}if(k&&typeof k.step=="number"&&k.step>0){const b=typeof k.min=="number"?k.min:0,_=(m-b)/k.step;if(Math.abs(_-Math.round(_))>1e-9){const n=w("form.validation.step",{step:String(k.step)});return $?{code:"step",message:n}:n}}return null},focus(d){const i=y(d);typeof i.focus=="function"&&i.focus()},blur(d){const i=y(d);typeof i.blur=="function"&&i.blur()},destroy(d){const i=d&&d.__latNumber;if(i)for(const m of i.disposers.splice(0))m()},live:{min(d,i){const m=d&&d.__latNumber;m&&(m.min=V(i))},max(d,i){const m=d&&d.__latNumber;m&&(m.max=V(i))},step(d,i){const m=d&&d.__latNumber;m&&(m.step=V(i))},format(d,i){const m=d&&d.__latNumber;m&&(m.format=i&&(typeof i=="object"||typeof i=="string")?I(i,m.locale):null,!m.focused&&m.value!=null&&(m.input.value=m.unit?m.unit.kind==="unit"?G(m.value,m.displayUnit!=null?{...m.unit.opts,display:m.displayUnit}:m.unit.opts):v(m.value,m.unit.opts):m.format?m.format(m.value):o(m.value),m.input.value===""?m.input.removeAttribute("aria-valuetext"):m.input.setAttribute("aria-valuetext",m.input.value)))}}})}),Ie("packages/modules/form/controls/textarea.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl;H("textarea",{kind:"field",build(L,e){const E=e.doc.createElement("textarea");return L.name&&(E.name=L.name),L.placeholder!=null&&(E.placeholder=String(L.placeholder)),L.rows!=null&&(E.rows=Number(L.rows)||2),E.value=L.value==null?"":String(L.value),E},read(L){return L.value},write(L,e){L.value=e==null?"":String(e)},state(L,e){L.disabled=e.disabled===!0,L.readOnly=e.readOnly===!0}})}),Ie("packages/modules/form/controls/checkbox.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/state.js"),e=L.applyBooleanInputState,E=L.guardBooleanInput;H("checkbox",{kind:"toggle",build(I,z){const T=z.doc.createElement("input");return T.type="checkbox",I.name&&(T.name=I.name),T.checked=I.value===!0,E(T),T},read(I){return I.checked},write(I,z){I.checked=z===!0},state(I,z){e(I,z.disabled===!0,z.readOnly===!0)}})}),Ie("packages/modules/form/controls/buttons.js",function(S,te){"use strict";Object.defineProperty(S,"injectButtonsStyles",{enumerable:!0,get:function(){return A}});const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/button.js"),e=L.buildButton,E=L.buttonItemFrom,I=L.injectButtonStyles,z="lat-button-row",T="data-lattice-button-row-styles",G=Object.freeze(["start","end","center","stretch","space-between"]);function C(){return`
|
|
1961
1961
|
.lat-form__control .${z}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
|
|
1962
1962
|
.lat-form__control .${z}[data-align='start']{ justify-content:flex-start; }
|
|
1963
1963
|
.lat-form__control .${z}[data-align='end']{ justify-content:flex-end; }
|
|
@@ -1965,7 +1965,7 @@ ${k}
|
|
|
1965
1965
|
.lat-form__control .${z}[data-align='space-between']{ justify-content:space-between; }
|
|
1966
1966
|
.lat-form__control .${z}[data-align='stretch']{ justify-content:flex-start; }
|
|
1967
1967
|
.lat-form__control .${z}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
|
|
1968
|
-
`.trim()}function A(u){const v=u&&u.documentElement;if(!v||v.getAttribute(N))return;v.setAttribute(N,"1");const h=u.createElement("style");h.textContent=C(),(u.head||u.body||v).appendChild(h)}function r(u){return G.includes(u)?u:"start"}H("buttons",{kind:"display",action:!0,build(u,v){I(v.doc),A(v.doc);const h=u.props||{},c=Array.isArray(h.buttons)?h.buttons:Array.isArray(h.items)?h.items:[],l=v.doc.createElement("div");l.className=z,l.setAttribute("data-align",r(h.align));const t=[];return c.forEach((p,P)=>{if(p==null||typeof p!="object")return;const o=E(p),y=e(o,v),V=()=>{y.disabled||y.getAttribute("aria-disabled")==="true"||v.emitter.emit("click",{name:o.name,item:o,value:null})};y.addEventListener("click",V),t.push(()=>y.removeEventListener("click",V)),l.appendChild(y)}),v.disposers.push(()=>{for(const p of t)p()}),l},read(){return null},write(){},state(){}})}),Ie("packages/modules/form/controls/text.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl;H("text",{kind:"display",build(L,e){const E=e.doc.createElement("span");return E.className="lat-form__text",E.textContent=L.value==null?"":String(L.value),E},read(L){return L.textContent},write(L,e){L.textContent=e==null?"":String(e)},state(){}})}),Ie("packages/modules/form/controls/select.js",function(S,te){"use strict";Object.defineProperty(S,"createSelect",{enumerable:!0,get:function(){return i}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,z=te("packages/modules/form/controls/combo.js"),N=z.renderAdornment,G=z.renderTemplateContent,C=z.injectAdornmentStyles,A=te("packages/modules/form/controls/field-icon.js"),r=A.makeFieldIcon,u=A.injectFieldIconStyles,v=te("packages/modules/form/controls/popup-layer.js"),h=v.openInLayer,c=v.flushOutsideFocus,l="lat-select__popup--above",t=700;function p(k,w){const f=k&&k.defaultView;return f&&f.Event?new f.Event(w,{bubbles:!0}):{type:w,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function P(k){return k!=null&&typeof k=="object"?"value"in k?k.value:"":k??""}function o(k){return k==null?"":typeof k!="object"?String(k):k.label!=null?String(k.label):k.text!=null?String(k.text):k.value==null?"":String(k.value)}function y(k){return k!=null&&typeof k=="object"&&Array.isArray(k.options)}function V(k){const w=[];if(!Array.isArray(k))return w;for(const f of k)if(y(f)){const $=o(f);w.push({group:!0,label:$});for(const b of f.options)if(y(b)){w.push({group:!0,label:o(b)});for(const _ of b.options)w.push(s(_))}else w.push(s(b))}else w.push(s(f));return w}function s(k){const w=k!=null&&typeof k=="object"?k:{},f=w.description!=null?String(w.description):w.subtitle!=null?String(w.subtitle):null;return{group:!1,value:P(k),label:o(k),icon:w.icon,avatar:w.avatar,color:w.color,dot:w.dot,description:f,disabled:w.disabled===!0}}function d(k,w){return k===w?!0:k!=null&&w!=null&&String(k)===String(w)}function i(k,w={}){const f=w.doc||k&&k.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;f&&(C(f),u(f));const $=typeof w.t=="function"?w.t:e,b=w.multiple===!0;let _=V(w.options),n=_.filter(_e=>!_e.group),O=[];const ie=f.createElement("div");ie.className="lat-combo lat-select",b&&ie.setAttribute("data-multiple","true");const F=f.createElement("button");F.type="button",F.className="lat-select__trigger",F.setAttribute("role","combobox"),F.setAttribute("aria-haspopup","listbox"),F.setAttribute("aria-expanded","false"),b&&F.setAttribute("aria-multiselectable","true"),F.setAttribute("aria-label",w.ariaLabel||$("form.select.toggle"));const se=f.createElement("span");se.className="lat-select__value";const le=f.createElement("span");le.className="lat-select__arrow",le.setAttribute("aria-hidden","true");const ke=r(f,"chevronDown");ke&&le.appendChild(ke),F.appendChild(se),F.appendChild(le);const ce=f.createElement("div");ce.className="lat-combo__popup lat-select__popup",ce.hidden=!0;const B=f.createElement("div");B.className="lat-combo__list lat-select__list",B.setAttribute("role","listbox"),ce.appendChild(B),ie.appendChild(F);const be=w.clearable===!0,q=f.createElement("button");q.type="button",q.className="lat-select__clear",q.setAttribute("aria-label",$("form.select.clear")),q.hidden=!0;const D=r(f,"close");D&&q.appendChild(D),be&&ie.appendChild(q),ie.appendChild(ce);const J=I("lat-select-lb");B.id=J,F.setAttribute("aria-controls",J);const ne=[];let oe=-1,ve=!1,pe="",x=null;const W=[];let U=!1,j=null;function Z(_e,je,Le){_e.addEventListener(je,Le),W.push(()=>_e.removeEventListener(je,Le))}function ae(_e){return n.find(je=>d(je.value,_e))||null}function re(){k.dispatchEvent(p(f,"change"))}function R(){return b?O.slice():O.length?O[0]:""}function ee(){if(be&&(q.hidden=O.length===0||w.readOnly===!0,se.classList.toggle("lat-select__value--with-clear",!q.hidden)),!b){for(;se.firstChild;)se.removeChild(se.firstChild);if(O.length){const _e=ae(O[0]),je=G(f,_e,w.selectedTemplate);if(je)se.appendChild(je);else{const Le=N(f,_e);Le&&se.appendChild(Le);const We=f.createElement("span");We.className="lat-select__label",We.textContent=_e?_e.label:O[0],se.appendChild(We)}se.removeAttribute("data-placeholder")}else se.textContent=w.placeholder!=null?String(w.placeholder):"",se.setAttribute("data-placeholder","true");return}O.length===0?(se.textContent=w.placeholder!=null?String(w.placeholder):"",se.setAttribute("data-placeholder","true")):(se.textContent=O.map(_e=>{const je=ae(_e);return je?je.label:_e}).join(", "),se.removeAttribute("data-placeholder"))}function X(_e){let je;const Le=n.some(We=>We.value==="");if(b)je=Array.isArray(_e)?_e:_e==null||_e===""&&!Le?[]:[_e];else{const We=Array.isArray(_e)?_e.length?_e[0]:null:_e;je=We==null||We===""&&!Le?[]:[We]}O=[];for(const We of je){const rt=n.find(tt=>d(tt.value,We));rt&&O.push(rt.value)}ee(),ge()}function ge(){for(let _e=0;_e<ne.length;_e++){const je=ne[_e],Le=n[_e],We=!!Le&&O.some(tt=>d(tt,Le.value));je.setAttribute("aria-selected",We?"true":"false");const rt=je.querySelector(".lat-select__check");rt&&(rt.textContent=We?"✓":"")}}function $e(_e){for(let je=Math.max(0,_e);je<n.length;je++)if(!n[je].disabled)return je;return-1}function K(_e){for(let je=Math.min(n.length-1,_e);je>=0;je--)if(!n[je].disabled)return je;return-1}function he(_e){oe=_e;for(const je of ne)je.classList.remove("lat-select__option--active");_e>=0&&_e<ne.length?(ne[_e].classList.add("lat-select__option--active"),F.setAttribute("aria-activedescendant",ne[_e].id)):F.removeAttribute("aria-activedescendant")}function Ee(){if(oe<0||oe>=ne.length)return;const _e=ne[oe];_e.offsetTop<B.scrollTop?B.scrollTop=_e.offsetTop:_e.offsetTop+_e.offsetHeight>B.scrollTop+B.clientHeight&&(B.scrollTop=_e.offsetTop+_e.offsetHeight-B.clientHeight)}function T(_e){const je=oe<0?_e>0?-1:n.length:oe,Le=_e>0?$e(je+1):K(je-1);Le!==-1&&he(Le),Ee()}function g(){if(!(ve||U||w.disabled||w.readOnly)&&(ve=!0,ce.hidden=!1,F.setAttribute("aria-expanded","true"),j=h(ce,F,{aboveClass:l,onOffscreen:Q}),oe<0&&n.length)){const _e=b?-1:O.length?n.findIndex(je=>d(je.value,O[0])):-1;he($e(_e>=0?_e:0))}}function Q(){ve&&(ve=!1,ce.hidden=!0,ce.classList.remove(l),j&&(j.close(),j=null),F.setAttribute("aria-expanded","false"),he(-1),pe="")}function M(){ve?Q():g()}function a(){w.readOnly||O.length===0||(O=[],ee(),ge(),Q(),re(),F.focus())}function Y(_e){if(w.readOnly)return;if(!b){const Le=O.length===0||O[0]!==_e;O=[_e],ee(),ge(),Q(),Le&&re();return}O=O.some(Le=>Le===_e)?O.filter(Le=>Le!==_e):[...O,_e],ee(),ge(),F.focus(),re()}function fe(){oe<0||oe>=n.length||n[oe].disabled||Y(n[oe].value)}function me(_e){x&&clearTimeout(x),pe+=_e.toLowerCase(),x=setTimeout(()=>{pe="",x=null},t),ve||g();const je=oe>-1?oe+1:0;let Le=-1;for(let We=je;We<n.length;We++)if(!n[We].disabled&&n[We].label.toLowerCase().startsWith(pe)){Le=We;break}if(Le===-1){for(let We=0;We<je;We++)if(!n[We].disabled&&n[We].label.toLowerCase().startsWith(pe)){Le=We;break}}Le!==-1&&(he(Le),Ee())}function Ae(_e){if(w.readOnly)return;const je=_e.altKey===!0;if(_e.key==="ArrowDown"||je&&_e.key==="ArrowDown")_e.preventDefault(),ve?T(1):(g(),oe===-1&&n.length&&he($e(0)));else if(_e.key==="ArrowUp")_e.preventDefault(),ve?T(-1):(g(),n.length&&he(K(n.length-1)));else if(_e.key==="Home"){if(!ve)return;_e.preventDefault();const Le=$e(0);Le!==-1&&he(Le),Ee()}else if(_e.key==="End"){if(!ve)return;_e.preventDefault();const Le=K(n.length-1);Le!==-1&&he(Le),Ee()}else _e.key==="Enter"||_e.key===" "?(_e.preventDefault(),ve?fe():g()):_e.key==="Escape"?ve&&(_e.preventDefault(),Q()):_e.key==="Tab"?ve&&fe():_e.key.length===1&&!_e.ctrlKey&&!_e.metaKey&&!je&&(_e.preventDefault(),me(_e.key))}function ue(_e){_e<0||_e>=n.length||n[_e].disabled||Y(n[_e].value)}function Pe(_e,je){const Le=f.createElement("div");if(Le.className="lat-combo__option",Le.setAttribute("role","option"),Le.id=`${J}-opt-${je}`,Le.setAttribute("data-value",_e.value),Le.setAttribute("aria-selected","false"),_e.disabled&&(Le.setAttribute("aria-disabled","true"),Le.classList.add("lat-select__option--disabled")),b){const tt=f.createElement("span");tt.className="lat-select__check",tt.setAttribute("aria-hidden","true"),Le.appendChild(tt)}const We=G(f,_e,w.optionTemplate);if(We)Le.appendChild(We);else{const tt=N(f,_e);tt&&Le.appendChild(tt);const Ke=f.createElement("span");Ke.className="lat-combo__text";const Qe=f.createElement("span");if(Qe.className="lat-combo__title",Qe.textContent=_e.label,Ke.appendChild(Qe),_e.description!=null){const et=f.createElement("span");et.className="lat-combo__subtitle",et.textContent=_e.description,Ke.appendChild(et)}Le.appendChild(Ke)}return Z(Le,"click",tt=>{tt.stopPropagation(),ue(je)}),ne.push(Le),Le}function Se(){let _e=0,je=0,Le=null,We=null;for(const rt of _)if(rt.group)Le=f.createElement("div"),Le.setAttribute("role","group"),We=f.createElement("div"),We.id=`${J}-grp-${je}`,We.className="lat-select__group",We.textContent=rt.label||"",Le.setAttribute("aria-labelledby",We.id),Le.appendChild(We),B.appendChild(Le),je+=1;else{const tt=Pe(rt,_e);_e+=1,Le?Le.appendChild(tt):B.appendChild(tt)}}function Be(){for(;B.firstChild;)B.removeChild(B.firstChild);ne.length=0,he(-1),Se()}function Te(_e){if(U)return;_=V(_e),n=_.filter(Le=>!Le.group),Be();const je=O.length;O=O.filter(Le=>n.some(We=>d(We.value,Le))),ee(),ge(),O.length!==je&&re()}function Ne(_e){U||(w.placeholder=_e,ee())}function Me(){U||(Be(),ee(),ge())}const Oe=()=>{w.disabled||M()},He=()=>{c(ie,ce)},Re=()=>{k.dispatchEvent(p(f,"focus"))},Fe=()=>{k.dispatchEvent(p(f,"blur")),Q()},Ge=_e=>{ie.contains(_e.target)||ce.contains(_e.target)||Q()};Z(F,"pointerdown",He),Z(F,"click",Oe),be&&Z(q,"click",a),Z(F,"keydown",Ae),Z(F,"focus",Re),Z(F,"blur",Fe),Z(B,"mousedown",_e=>_e.preventDefault()),f&&Z(f,"mousedown",Ge),Se(),X(w.value);const Ze={el:k,root:ie,trigger:F,getValue:R,setValue(_e){return X(_e),Ze},setOptions(_e){return Te(_e),Ze},setPlaceholder(_e){return Ne(_e),Ze},reload(){return Me(),Ze},open(){return g(),Ze},close(){return Q(),Ze},focus(){return F.focus(),Ze},blur(){return F.blur(),Ze},setDisabled(_e){w.disabled=_e,F.disabled=_e,_e&&Q()},setReadOnly(_e){w.readOnly=_e,_e?(F.setAttribute("aria-readonly","true"),Q()):F.removeAttribute("aria-readonly"),ee()},destroy(){Q(),U=!0,x&&clearTimeout(x);for(const _e of W.splice(0))_e();for(;ie.firstChild;)ie.removeChild(ie.firstChild)}};return k.appendChild(ie),k.__select=Ze,Ze}function m(k,w){const f=w.doc.createElement("select");k.name&&(f.name=k.name);const $=k.props&&k.props.multiple===!0;$&&(f.multiple=!0),f.__multiple=$;const b=V(k.options),_=b.filter(F=>!F.group),n=_.some(F=>F.value===""),O=w.doc.createElement("option");O.value="",O.textContent=k.placeholder!=null?String(k.placeholder):"",O.setAttribute("data-lattice-placeholder","true"),!$&&!n&&f.appendChild(O);let ie=null;for(const F of b)if(F.group)ie=w.doc.createElement("optgroup"),ie.label=F.label||"",f.appendChild(ie);else{const se=w.doc.createElement("option");se.value=String(F.value),se.textContent=F.label,F.disabled&&(se.disabled=!0),se.__value=F.value,se.__typed=!0,(ie||f).appendChild(se)}if($){const F=(Array.isArray(k.value)?k.value:[]).filter(se=>se!=null&&se!=="");for(const se of f.options)se.__typed&&(se.selected=F.some(le=>d(le,se.__value)))}else{const F=k.value==null||k.value===""&&!n?null:k.value,se=F==null?null:_.find(le=>d(le.value,F));f.value=se?String(se.value):""}return f.__select={getValue(){if(!$){if(f.selectedOptions&&f.selectedOptions.length){const se=f.selectedOptions[0];if(se&&se.__typed)return se.__value}const F=_.find(se=>d(se.value,f.value));return F?F.value:f.value}return[...f.selectedOptions].map(F=>F.__typed?F.__value:F.value)},setValue(F){if(!$){const le=F==null||F===""&&!n?null:F,ke=le==null?null:_.find(ce=>d(ce.value,le));f.value=ke?String(ke.value):"";return}const se=(Array.isArray(F)?F:[]).filter(le=>le!=null&&le!=="");for(const le of f.options)le.__typed&&(le.selected=se.some(ke=>d(ke,le.__value)))},setDisabled(F){f.disabled=F},setReadOnly(F){F&&(f.disabled=!0)},setPlaceholder(F){const se=f.querySelector("option[data-lattice-placeholder]");se&&(se.textContent=F!=null?String(F):"")},focus(){f.focus()},blur(){f.blur()},destroy(){}},f}H("select",{kind:"field",build(k,w){const f=k.props||{};if(f.native===!0)return m(k,w);const $=w.doc.createElement("div");return i($,{options:k.options,multiple:f.multiple===!0,value:k.value,placeholder:k.placeholder,ariaLabel:k.label,optionTemplate:f.optionTemplate,selectedTemplate:f.selectedTemplate,clearable:f.clearable===!0,t:w.t,doc:w.doc}),w.disposers.push(()=>{$.__select&&$.__select.destroy()}),$},read(k){return k.__select?k.__select.getValue():""},write(k,w){k.__select&&k.__select.setValue(w)},state(k,w){k.__select&&(k.__select.setDisabled(w.disabled===!0),k.__select.setReadOnly(w.readOnly===!0))},focus(k){k.__select&&k.__select.focus()},blur(k){k.__select&&k.__select.blur()},live:{placeholder(k,w){k.__select&&k.__select.setPlaceholder(w)}}})}),Ie("packages/modules/form/controls/listbox.js",function(S,te){"use strict";Object.defineProperty(S,"createListBox",{enumerable:!0,get:function(){return $}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,z=te("packages/modules/form/scheme.js"),N=z.rootDefaultsCss,G=z.darkAccentCss,C=te("packages/modules/form/controls/combo.js"),A=C.renderAdornment,r=C.renderTemplateContent,u=C.injectAdornmentStyles,v="data-lattice-form-listbox-styles",h=30,c=46,l=48,t=250,p=700;function P(){return`
|
|
1968
|
+
`.trim()}function A(u){const v=u&&u.documentElement;if(!v||v.getAttribute(T))return;v.setAttribute(T,"1");const h=u.createElement("style");h.textContent=C(),(u.head||u.body||v).appendChild(h)}function r(u){return G.includes(u)?u:"start"}H("buttons",{kind:"display",action:!0,build(u,v){I(v.doc),A(v.doc);const h=u.props||{},c=Array.isArray(h.buttons)?h.buttons:Array.isArray(h.items)?h.items:[],l=v.doc.createElement("div");l.className=z,l.setAttribute("data-align",r(h.align));const t=[];return c.forEach((p,P)=>{if(p==null||typeof p!="object")return;const o=E(p),y=e(o,v),V=()=>{y.disabled||y.getAttribute("aria-disabled")==="true"||v.emitter.emit("click",{name:o.name,item:o,value:null})};y.addEventListener("click",V),t.push(()=>y.removeEventListener("click",V)),l.appendChild(y)}),v.disposers.push(()=>{for(const p of t)p()}),l},read(){return null},write(){},state(){}})}),Ie("packages/modules/form/controls/text.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl;H("text",{kind:"display",build(L,e){const E=e.doc.createElement("span");return E.className="lat-form__text",E.textContent=L.value==null?"":String(L.value),E},read(L){return L.textContent},write(L,e){L.textContent=e==null?"":String(e)},state(){}})}),Ie("packages/modules/form/controls/select.js",function(S,te){"use strict";Object.defineProperty(S,"createSelect",{enumerable:!0,get:function(){return i}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,z=te("packages/modules/form/controls/combo.js"),T=z.renderAdornment,G=z.renderTemplateContent,C=z.injectAdornmentStyles,A=te("packages/modules/form/controls/field-icon.js"),r=A.makeFieldIcon,u=A.injectFieldIconStyles,v=te("packages/modules/form/controls/popup-layer.js"),h=v.openInLayer,c=v.flushOutsideFocus,l="lat-select__popup--above",t=700;function p(k,w){const f=k&&k.defaultView;return f&&f.Event?new f.Event(w,{bubbles:!0}):{type:w,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function P(k){return k!=null&&typeof k=="object"?"value"in k?k.value:"":k??""}function o(k){return k==null?"":typeof k!="object"?String(k):k.label!=null?String(k.label):k.text!=null?String(k.text):k.value==null?"":String(k.value)}function y(k){return k!=null&&typeof k=="object"&&Array.isArray(k.options)}function V(k){const w=[];if(!Array.isArray(k))return w;for(const f of k)if(y(f)){const $=o(f);w.push({group:!0,label:$});for(const b of f.options)if(y(b)){w.push({group:!0,label:o(b)});for(const _ of b.options)w.push(s(_))}else w.push(s(b))}else w.push(s(f));return w}function s(k){const w=k!=null&&typeof k=="object"?k:{},f=w.description!=null?String(w.description):w.subtitle!=null?String(w.subtitle):null;return{group:!1,value:P(k),label:o(k),icon:w.icon,avatar:w.avatar,color:w.color,dot:w.dot,description:f,disabled:w.disabled===!0}}function d(k,w){return k===w?!0:k!=null&&w!=null&&String(k)===String(w)}function i(k,w={}){const f=w.doc||k&&k.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;f&&(C(f),u(f));const $=typeof w.t=="function"?w.t:e,b=w.multiple===!0;let _=V(w.options),n=_.filter(_e=>!_e.group),O=[];const ie=f.createElement("div");ie.className="lat-combo lat-select",b&&ie.setAttribute("data-multiple","true");const F=f.createElement("button");F.type="button",F.className="lat-select__trigger",F.setAttribute("role","combobox"),F.setAttribute("aria-haspopup","listbox"),F.setAttribute("aria-expanded","false"),b&&F.setAttribute("aria-multiselectable","true"),F.setAttribute("aria-label",w.ariaLabel||$("form.select.toggle"));const se=f.createElement("span");se.className="lat-select__value";const le=f.createElement("span");le.className="lat-select__arrow",le.setAttribute("aria-hidden","true");const xe=r(f,"chevronDown");xe&&le.appendChild(xe),F.appendChild(se),F.appendChild(le);const ue=f.createElement("div");ue.className="lat-combo__popup lat-select__popup",ue.hidden=!0;const R=f.createElement("div");R.className="lat-combo__list lat-select__list",R.setAttribute("role","listbox"),ue.appendChild(R),ie.appendChild(F);const be=w.clearable===!0,q=f.createElement("button");q.type="button",q.className="lat-select__clear",q.setAttribute("aria-label",$("form.select.clear")),q.hidden=!0;const D=r(f,"close");D&&q.appendChild(D),be&&ie.appendChild(q),ie.appendChild(ue);const J=I("lat-select-lb");R.id=J,F.setAttribute("aria-controls",J);const ne=[];let oe=-1,ve=!1,pe="",x=null;const W=[];let U=!1,j=null;function Z(_e,je,Le){_e.addEventListener(je,Le),W.push(()=>_e.removeEventListener(je,Le))}function ae(_e){return n.find(je=>d(je.value,_e))||null}function re(){k.dispatchEvent(p(f,"change"))}function B(){return b?O.slice():O.length?O[0]:""}function ee(){if(be&&(q.hidden=O.length===0||w.readOnly===!0,se.classList.toggle("lat-select__value--with-clear",!q.hidden)),!b){for(;se.firstChild;)se.removeChild(se.firstChild);if(O.length){const _e=ae(O[0]),je=G(f,_e,w.selectedTemplate);if(je)se.appendChild(je);else{const Le=T(f,_e);Le&&se.appendChild(Le);const We=f.createElement("span");We.className="lat-select__label",We.textContent=_e?_e.label:O[0],se.appendChild(We)}se.removeAttribute("data-placeholder")}else se.textContent=w.placeholder!=null?String(w.placeholder):"",se.setAttribute("data-placeholder","true");return}O.length===0?(se.textContent=w.placeholder!=null?String(w.placeholder):"",se.setAttribute("data-placeholder","true")):(se.textContent=O.map(_e=>{const je=ae(_e);return je?je.label:_e}).join(", "),se.removeAttribute("data-placeholder"))}function X(_e){let je;const Le=n.some(We=>We.value==="");if(b)je=Array.isArray(_e)?_e:_e==null||_e===""&&!Le?[]:[_e];else{const We=Array.isArray(_e)?_e.length?_e[0]:null:_e;je=We==null||We===""&&!Le?[]:[We]}O=[];for(const We of je){const nt=n.find(tt=>d(tt.value,We));nt&&O.push(nt.value)}ee(),ge()}function ge(){for(let _e=0;_e<ne.length;_e++){const je=ne[_e],Le=n[_e],We=!!Le&&O.some(tt=>d(tt,Le.value));je.setAttribute("aria-selected",We?"true":"false");const nt=je.querySelector(".lat-select__check");nt&&(nt.textContent=We?"✓":"")}}function $e(_e){for(let je=Math.max(0,_e);je<n.length;je++)if(!n[je].disabled)return je;return-1}function K(_e){for(let je=Math.min(n.length-1,_e);je>=0;je--)if(!n[je].disabled)return je;return-1}function he(_e){oe=_e;for(const je of ne)je.classList.remove("lat-select__option--active");_e>=0&&_e<ne.length?(ne[_e].classList.add("lat-select__option--active"),F.setAttribute("aria-activedescendant",ne[_e].id)):F.removeAttribute("aria-activedescendant")}function Ee(){if(oe<0||oe>=ne.length)return;const _e=ne[oe];_e.offsetTop<R.scrollTop?R.scrollTop=_e.offsetTop:_e.offsetTop+_e.offsetHeight>R.scrollTop+R.clientHeight&&(R.scrollTop=_e.offsetTop+_e.offsetHeight-R.clientHeight)}function N(_e){const je=oe<0?_e>0?-1:n.length:oe,Le=_e>0?$e(je+1):K(je-1);Le!==-1&&he(Le),Ee()}function g(){if(!(ve||U||w.disabled||w.readOnly)&&(ve=!0,ue.hidden=!1,F.setAttribute("aria-expanded","true"),j=h(ue,F,{aboveClass:l,onOffscreen:Q}),oe<0&&n.length)){const _e=b?-1:O.length?n.findIndex(je=>d(je.value,O[0])):-1;he($e(_e>=0?_e:0))}}function Q(){ve&&(ve=!1,ue.hidden=!0,ue.classList.remove(l),j&&(j.close(),j=null),F.setAttribute("aria-expanded","false"),he(-1),pe="")}function M(){ve?Q():g()}function a(){w.readOnly||O.length===0||(O=[],ee(),ge(),Q(),re(),F.focus())}function Y(_e){if(w.readOnly)return;if(!b){const Le=O.length===0||O[0]!==_e;O=[_e],ee(),ge(),Q(),Le&&re();return}O=O.some(Le=>Le===_e)?O.filter(Le=>Le!==_e):[...O,_e],ee(),ge(),F.focus(),re()}function fe(){oe<0||oe>=n.length||n[oe].disabled||Y(n[oe].value)}function me(_e){x&&clearTimeout(x),pe+=_e.toLowerCase(),x=setTimeout(()=>{pe="",x=null},t),ve||g();const je=oe>-1?oe+1:0;let Le=-1;for(let We=je;We<n.length;We++)if(!n[We].disabled&&n[We].label.toLowerCase().startsWith(pe)){Le=We;break}if(Le===-1){for(let We=0;We<je;We++)if(!n[We].disabled&&n[We].label.toLowerCase().startsWith(pe)){Le=We;break}}Le!==-1&&(he(Le),Ee())}function Ae(_e){if(w.readOnly)return;const je=_e.altKey===!0;if(_e.key==="ArrowDown"||je&&_e.key==="ArrowDown")_e.preventDefault(),ve?N(1):(g(),oe===-1&&n.length&&he($e(0)));else if(_e.key==="ArrowUp")_e.preventDefault(),ve?N(-1):(g(),n.length&&he(K(n.length-1)));else if(_e.key==="Home"){if(!ve)return;_e.preventDefault();const Le=$e(0);Le!==-1&&he(Le),Ee()}else if(_e.key==="End"){if(!ve)return;_e.preventDefault();const Le=K(n.length-1);Le!==-1&&he(Le),Ee()}else _e.key==="Enter"||_e.key===" "?(_e.preventDefault(),ve?fe():g()):_e.key==="Escape"?ve&&(_e.preventDefault(),Q()):_e.key==="Tab"?ve&&fe():_e.key.length===1&&!_e.ctrlKey&&!_e.metaKey&&!je&&(_e.preventDefault(),me(_e.key))}function de(_e){_e<0||_e>=n.length||n[_e].disabled||Y(n[_e].value)}function Pe(_e,je){const Le=f.createElement("div");if(Le.className="lat-combo__option",Le.setAttribute("role","option"),Le.id=`${J}-opt-${je}`,Le.setAttribute("data-value",_e.value),Le.setAttribute("aria-selected","false"),_e.disabled&&(Le.setAttribute("aria-disabled","true"),Le.classList.add("lat-select__option--disabled")),b){const tt=f.createElement("span");tt.className="lat-select__check",tt.setAttribute("aria-hidden","true"),Le.appendChild(tt)}const We=G(f,_e,w.optionTemplate);if(We)Le.appendChild(We);else{const tt=T(f,_e);tt&&Le.appendChild(tt);const Ke=f.createElement("span");Ke.className="lat-combo__text";const Qe=f.createElement("span");if(Qe.className="lat-combo__title",Qe.textContent=_e.label,Ke.appendChild(Qe),_e.description!=null){const et=f.createElement("span");et.className="lat-combo__subtitle",et.textContent=_e.description,Ke.appendChild(et)}Le.appendChild(Ke)}return Z(Le,"click",tt=>{tt.stopPropagation(),de(je)}),ne.push(Le),Le}function Se(){let _e=0,je=0,Le=null,We=null;for(const nt of _)if(nt.group)Le=f.createElement("div"),Le.setAttribute("role","group"),We=f.createElement("div"),We.id=`${J}-grp-${je}`,We.className="lat-select__group",We.textContent=nt.label||"",Le.setAttribute("aria-labelledby",We.id),Le.appendChild(We),R.appendChild(Le),je+=1;else{const tt=Pe(nt,_e);_e+=1,Le?Le.appendChild(tt):R.appendChild(tt)}}function Be(){for(;R.firstChild;)R.removeChild(R.firstChild);ne.length=0,he(-1),Se()}function Te(_e){if(U)return;_=V(_e),n=_.filter(Le=>!Le.group),Be();const je=O.length;O=O.filter(Le=>n.some(We=>d(We.value,Le))),ee(),ge(),O.length!==je&&re()}function Ne(_e){U||(w.placeholder=_e,ee())}function Me(){U||(Be(),ee(),ge())}const Oe=()=>{w.disabled||M()},He=()=>{c(ie,ue)},Re=()=>{k.dispatchEvent(p(f,"focus"))},Fe=()=>{k.dispatchEvent(p(f,"blur")),Q()},Ge=_e=>{ie.contains(_e.target)||ue.contains(_e.target)||Q()};Z(F,"pointerdown",He),Z(F,"click",Oe),be&&Z(q,"click",a),Z(F,"keydown",Ae),Z(F,"focus",Re),Z(F,"blur",Fe),Z(R,"mousedown",_e=>_e.preventDefault()),f&&Z(f,"mousedown",Ge),Se(),X(w.value);const Ze={el:k,root:ie,trigger:F,getValue:B,setValue(_e){return X(_e),Ze},setOptions(_e){return Te(_e),Ze},setPlaceholder(_e){return Ne(_e),Ze},reload(){return Me(),Ze},open(){return g(),Ze},close(){return Q(),Ze},focus(){return F.focus(),Ze},blur(){return F.blur(),Ze},setDisabled(_e){w.disabled=_e,F.disabled=_e,_e&&Q()},setReadOnly(_e){w.readOnly=_e,_e?(F.setAttribute("aria-readonly","true"),Q()):F.removeAttribute("aria-readonly"),ee()},destroy(){Q(),U=!0,x&&clearTimeout(x);for(const _e of W.splice(0))_e();for(;ie.firstChild;)ie.removeChild(ie.firstChild)}};return k.appendChild(ie),k.__select=Ze,Ze}function m(k,w){const f=w.doc.createElement("select");k.name&&(f.name=k.name);const $=k.props&&k.props.multiple===!0;$&&(f.multiple=!0),f.__multiple=$;const b=V(k.options),_=b.filter(F=>!F.group),n=_.some(F=>F.value===""),O=w.doc.createElement("option");O.value="",O.textContent=k.placeholder!=null?String(k.placeholder):"",O.setAttribute("data-lattice-placeholder","true"),!$&&!n&&f.appendChild(O);let ie=null;for(const F of b)if(F.group)ie=w.doc.createElement("optgroup"),ie.label=F.label||"",f.appendChild(ie);else{const se=w.doc.createElement("option");se.value=String(F.value),se.textContent=F.label,F.disabled&&(se.disabled=!0),se.__value=F.value,se.__typed=!0,(ie||f).appendChild(se)}if($){const F=(Array.isArray(k.value)?k.value:[]).filter(se=>se!=null&&se!=="");for(const se of f.options)se.__typed&&(se.selected=F.some(le=>d(le,se.__value)))}else{const F=k.value==null||k.value===""&&!n?null:k.value,se=F==null?null:_.find(le=>d(le.value,F));f.value=se?String(se.value):""}return f.__select={getValue(){if(!$){if(f.selectedOptions&&f.selectedOptions.length){const se=f.selectedOptions[0];if(se&&se.__typed)return se.__value}const F=_.find(se=>d(se.value,f.value));return F?F.value:f.value}return[...f.selectedOptions].map(F=>F.__typed?F.__value:F.value)},setValue(F){if(!$){const le=F==null||F===""&&!n?null:F,xe=le==null?null:_.find(ue=>d(ue.value,le));f.value=xe?String(xe.value):"";return}const se=(Array.isArray(F)?F:[]).filter(le=>le!=null&&le!=="");for(const le of f.options)le.__typed&&(le.selected=se.some(xe=>d(xe,le.__value)))},setDisabled(F){f.disabled=F},setReadOnly(F){F&&(f.disabled=!0)},setPlaceholder(F){const se=f.querySelector("option[data-lattice-placeholder]");se&&(se.textContent=F!=null?String(F):"")},focus(){f.focus()},blur(){f.blur()},destroy(){}},f}H("select",{kind:"field",build(k,w){const f=k.props||{};if(f.native===!0)return m(k,w);const $=w.doc.createElement("div");return i($,{options:k.options,multiple:f.multiple===!0,value:k.value,placeholder:k.placeholder,ariaLabel:k.label,optionTemplate:f.optionTemplate,selectedTemplate:f.selectedTemplate,clearable:f.clearable===!0,t:w.t,doc:w.doc}),w.disposers.push(()=>{$.__select&&$.__select.destroy()}),$},read(k){return k.__select?k.__select.getValue():""},write(k,w){k.__select&&k.__select.setValue(w)},state(k,w){k.__select&&(k.__select.setDisabled(w.disabled===!0),k.__select.setReadOnly(w.readOnly===!0))},focus(k){k.__select&&k.__select.focus()},blur(k){k.__select&&k.__select.blur()},live:{placeholder(k,w){k.__select&&k.__select.setPlaceholder(w)}}})}),Ie("packages/modules/form/controls/listbox.js",function(S,te){"use strict";Object.defineProperty(S,"createListBox",{enumerable:!0,get:function(){return $}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,z=te("packages/modules/form/scheme.js"),T=z.rootDefaultsCss,G=z.darkAccentCss,C=te("packages/modules/form/controls/combo.js"),A=C.renderAdornment,r=C.renderTemplateContent,u=C.injectAdornmentStyles,v="data-lattice-form-listbox-styles",h=30,c=46,l=48,t=250,p=700;function P(){return`
|
|
1969
1969
|
.lat-listbox{
|
|
1970
1970
|
display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 2); min-width:0; box-sizing:border-box;
|
|
1971
1971
|
font-size:var(--lattice-font-size); color:var(--lattice-form-field-fg);
|
|
@@ -1999,7 +1999,7 @@ ${k}
|
|
|
1999
1999
|
--lattice-popup-shadow:0 6px 16px -4px rgba(0,0,0,.6);
|
|
2000
2000
|
}}
|
|
2001
2001
|
${G(".lat-listbox[data-lattice-standalone]")}
|
|
2002
|
-
${
|
|
2002
|
+
${T()}
|
|
2003
2003
|
.lat-listbox__filter{
|
|
2004
2004
|
box-sizing:border-box; width:100%; height:var(--lattice-row-height);
|
|
2005
2005
|
padding:0 calc(var(--lattice-space) * 1.5); border:var(--lattice-border-width) solid var(--lattice-form-field-border);
|
|
@@ -2055,7 +2055,7 @@ ${N()}
|
|
|
2055
2055
|
}
|
|
2056
2056
|
.lat-listbox__status{ padding:calc(var(--lattice-space) / 2) var(--lattice-space); color:var(--lattice-foreground-muted); }
|
|
2057
2057
|
.lat-listbox__status[hidden]{ display:none; }
|
|
2058
|
-
`.trim()}function o(b){const _=b&&b.documentElement;if(!_||_.getAttribute(v))return;_.setAttribute(v,"1");const n=b.createElement("style");n.textContent=P(),(b.head||b.body||_).appendChild(n)}function y(b){return b==null||typeof b!="object"?{value:b,label:b==null?"":String(b),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null,raw:b}:{value:b.value,label:b.label!=null?String(b.label):b.title!=null?String(b.title):b.value==null?"":String(b.value),description:b.description!=null?String(b.description):b.subtitle!=null?String(b.subtitle):null,icon:b.icon,avatar:b.avatar,color:b.color,dot:b.dot,disabled:b.disabled===!0,group:b.group!=null?String(b.group):null,raw:b}}function V(b){if(b.raw!=null&&typeof b.raw=="object")return b.raw;const{raw:_,...n}=b;return n}function s(b){if(Array.isArray(b))return{items:b,total:b.length,hasMore:!1};if(b&&typeof b=="object"){const _=Array.isArray(b.items)?b.items:[];return{items:_,total:typeof b.total=="number"?b.total:_.length,hasMore:b.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function d(b,_){return b===_?!0:b!=null&&_!=null&&String(b)===String(_)}function i(b){return String(b)}function m(b,_){const n=b&&b.defaultView;return n&&n.Event?new n.Event(_,{bubbles:!0}):{type:_,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function k(b,_,n,O){const ie=_&&_.defaultView,F=ie&&typeof ie.CustomEvent=="function"?ie.CustomEvent:null,se=F?new F(n,{bubbles:!0,detail:O}):{type:n,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:O,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};b.dispatchEvent(se)}function w(b){return b.__latListboxRegistry||(b.__latListboxRegistry=new Map),b.__latListboxRegistry}let f=null;function $(b,_={}){const n=_.doc||b&&b.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;n&&(o(n),u(n));const O=typeof _.t=="function"?_.t:e,ie=["single","multiple","checkbox"].includes(_.selection)?_.selection:"single",F=ie!=="single",se=_.reorder===!0,le=typeof _.connect=="string"&&_.connect!==""?_.connect:null,ke=typeof _.name=="string"&&_.name!==""?_.name:null,ce=_.sort==="asc"||_.sort==="desc"?_.sort:!1,B=_.groupBy===!0,be=_.filter===!0,q=_.dragHandle===!0,D=I("lat-listbox"),J=n.createElement("div");J.className="lat-listbox",q&&J.setAttribute("data-drag-handle","true"),_.inForm||(J.setAttribute("data-lattice-standalone","true"),J.setAttribute("data-density",["compact","standard","comfortable"].includes(_.density)?_.density:"standard"));let ne=null;be&&(ne=n.createElement("input"),ne.type="text",ne.className="lat-listbox__filter",ne.placeholder=O("form.listbox.filterPlaceholder"),ne.setAttribute("aria-label",O("form.listbox.filterPlaceholder")),J.appendChild(ne));let oe=null,ve=null,pe=null,x=null,W=null;(se||le||q)&&(oe=n.createElement("div"),oe.className="lat-listbox__toolbar",oe.setAttribute("role","group"),oe.setAttribute("aria-label",O("form.listbox.toolbar")),(se||q)&&(ve=n.createElement("button"),ve.type="button",ve.className="lat-listbox__toolbar-btn",ve.textContent=O("form.listbox.moveUp"),pe=n.createElement("button"),pe.type="button",pe.className="lat-listbox__toolbar-btn",pe.textContent=O("form.listbox.moveDown"),oe.appendChild(ve),oe.appendChild(pe)),le&&(x=n.createElement("button"),x.type="button",x.className="lat-listbox__toolbar-btn",x.textContent=O("form.listbox.moveSelected"),W=n.createElement("button"),W.type="button",W.className="lat-listbox__toolbar-btn",W.textContent=O("form.listbox.moveAll"),oe.appendChild(x),oe.appendChild(W)),J.appendChild(oe));const U=n.createElement("div");U.className="lat-listbox__viewport",U.id=`${D}-lb`,U.setAttribute("role","listbox"),U.setAttribute("tabindex","0"),F&&U.setAttribute("aria-multiselectable","true"),U.setAttribute("aria-label",_.ariaLabel!=null?String(_.ariaLabel):"");const j=typeof _.rows=="number"&&_.rows>0?_.rows:8;typeof _.height=="number"&&_.height>0?U.style.height=`${_.height}px`:U.style.height=`calc(var(--lattice-row-height) * ${j})`;let Z=null;if(ie==="checkbox"){const de=n.createElement("div");de.className="lat-listbox__option lat-listbox__select-all",Z=n.createElement("input"),Z.type="checkbox",Z.className="lat-listbox__checkbox",Z.id=`${D}-select-all`,de.appendChild(Z);const we=n.createElement("label");we.className="lat-listbox__title",we.textContent=O("form.listbox.selectAll"),we.setAttribute("for",Z.id),de.appendChild(we),U.appendChild(de)}const ae=n.createElement("div");ae.className="lat-listbox__spacer",U.appendChild(ae);const re=n.createElement("div");re.className="lat-listbox__status",re.setAttribute("role","status"),re.setAttribute("aria-live","polite"),re.hidden=!0,U.appendChild(re),J.appendChild(U);let R=[];const ee=new Set;let X=[],ge=-1,$e=null,K=null,he=null,Ee="";const T=[],g=[];let Q=0,M="",a=null,Y=null,fe=null,me=0,Ae=!1,ue=0,Pe=!1;const Se=[];let Be=!1;function Te(de,we,Ce){de.addEventListener(we,Ce),Se.push(()=>de.removeEventListener(we,Ce))}function Ne(){return _.readOnly===!0||_.disabled===!0}function Me(){b.dispatchEvent(m(n,"change"))}function Oe(){if(se&&_.valueAs==="order")return R.map(de=>de.value);if(ie==="single"){const de=R.find(we=>ee.has(i(we.value)));return de?de.value:null}return se||le?R.map(de=>de.value):R.filter(de=>ee.has(i(de.value))).map(de=>de.value)}function He(){const de=X.filter(we=>!we.disabled);return de.length>0&&de.every(we=>ee.has(i(we.value)))}function Re(){const de=Ee.trim().toLowerCase();let we=de===""?R.slice():R.filter(Ce=>Ce.label.toLowerCase().includes(de)||(Ce.description||"").toLowerCase().includes(de));K&&(we=we.filter(Ce=>{try{return K(V(Ce))!==!1}catch{return!0}})),ce&&(we=we.slice().sort((Ce,ze)=>Ce.label.localeCompare(ze.label)*(ce==="desc"?-1:1))),X=we,T.length=0,g.length=0,ge>=X.length&&(ge=X.length-1)}function Fe(de){const we=[],Ce=new Map;for(const ze of de){const qe=ze.group||"";let Ue=Ce.get(qe);Ue||(Ue={group:ze.group||null,items:[]},Ce.set(qe,Ue),we.push(Ue)),Ue.items.push(ze)}return we}function Ge(de){return`${D}-opt-${de}`}function Ze(de){return de.description!=null||de.icon!=null||de.avatar!=null?c:h}function _e(de){const we=X[de];return!!we&&ee.has(i(we.value))}function je(de,we){const Ce=n.createElement("div");if(Ce.className="lat-listbox__option",Ce.setAttribute("role","option"),Ce.id=Ge(we),Ce.setAttribute("aria-selected",_e(we)?"true":"false"),de.disabled&&Ce.setAttribute("aria-disabled","true"),ie==="checkbox"){const Ue=n.createElement("input");Ue.type="checkbox",Ue.className="lat-listbox__checkbox",Ue.tabIndex=-1,Ue.checked=_e(we),Ue.disabled=de.disabled||Ne(),Ce.appendChild(Ue)}const ze=r(n,V(de),_.render);if(ze)Ce.appendChild(ze);else{const Ue=A(n,de);Ue&&Ce.appendChild(Ue);const it=n.createElement("span");it.className="lat-listbox__text";const Xe=n.createElement("span");if(Xe.className="lat-listbox__title",Xe.textContent=de.label,it.appendChild(Xe),de.description!=null){const lt=n.createElement("span");lt.className="lat-listbox__subtitle",lt.textContent=de.description,it.appendChild(lt)}Ce.appendChild(it)}if(q){if(!de.disabled&&!Ne()){const Ue=n.createElement("span");Ue.className="lat-listbox__handle",Ue.setAttribute("aria-hidden","true"),Ue.setAttribute("title",O("form.listbox.dragHandle")),Ue.textContent="⠿",Ce.insertBefore(Ue,Ce.firstChild||null),Te(Ue,"pointerdown",it=>Qe(it,de))}}else(se||le)&&!de.disabled&&!Ne()&&(Ce.draggable=!0,Te(Ce,"dragstart",()=>Le(de)),Te(Ce,"dragover",Ue=>{Ue.preventDefault()}),Te(Ce,"drop",Ue=>{Ue.preventDefault(),We(de)}));return Te(Ce,"click",Ue=>{de.disabled||Ne()||(U.focus(),k(b,n,"itemClick",{option:V(de),event:Ue}),Et(we,{shift:Ue.shiftKey,ctrl:Ue.ctrlKey||Ue.metaKey,touch:Ue.pointerType==="touch"}))}),Ce}function Le(de){const we=ee.has(i(de.value))?R.filter(Ce=>ee.has(i(Ce.value))).map(Ce=>Ce.value):[de.value];f={source:pt,values:we}}function We(de){if(!f||Ne())return;const{source:we,values:Ce}=f;f=null;const ze=R.findIndex(qe=>d(qe.value,de.value));if(ze!==-1){if(we===pt){if(!se)return;rt(Ce,ze),at(),Me();return}if(le){const qe=we.__removeValues(Ce);if(qe.length===0)return;R.splice(ze,0,...qe);for(const Ue of qe)ee.add(i(Ue.value));Re(),at(),Me()}}}function rt(de,we){const Ce=new Set(de.map(i)),ze=R.filter(Xe=>Ce.has(i(Xe.value)));if(ze.length===0)return;const qe=R[we]?i(R[we].value):null,Ue=R.filter(Xe=>!Ce.has(i(Xe.value)));let it=qe==null?Ue.length:Ue.findIndex(Xe=>i(Xe.value)===qe);it===-1&&(it=Ue.length),Ue.splice(it,0,...ze),R=Ue}function tt(de){for(const we of ae.querySelectorAll('.lat-listbox__option[role="option"]')){const Ce=we.id||"",ze=Number(Ce.slice(`${D}-opt-`.length));if(Number.isNaN(ze))continue;const qe=X[ze];if(qe&&d(qe.value,de))return we}return null}function Ke(de,we){if(!n||typeof n.elementFromPoint!="function")return-1;const Ce=n.elementFromPoint(de,we),ze=Ce&&typeof Ce.closest=="function"?Ce.closest('.lat-listbox__option[role="option"]'):null;if(!ze)return-1;const qe=ze.id||"",Ue=Number(qe.slice(`${D}-opt-`.length));return Number.isNaN(Ue)?-1:Ue}function Qe(de,we){we.disabled||Ne()||(de.preventDefault(),he={value:we.value,startX:de.clientX,startY:de.clientY,armed:!1,overIndex:-1})}function et(de){if(!he)return;if(!he.armed){if(Math.abs(de.clientX-he.startX)+Math.abs(de.clientY-he.startY)<4)return;he.armed=!0;const ze=tt(he.value);ze&&ze.classList.add("lat-listbox__option--dragging")}const we=Ke(de.clientX,de.clientY);we!==-1&&(he.overIndex=we)}function mt(){if(!he)return;const de=he;he=null;const we=tt(de.value);if(we&&we.classList.remove("lat-listbox__option--dragging"),!de.armed||de.overIndex<0||Ne())return;const Ce=X[de.overIndex];if(!Ce||d(Ce.value,de.value))return;const ze=R.findIndex(qe=>d(qe.value,Ce.value));ze!==-1&&(rt([de.value],ze),Re(),at(),Me())}function ct(de){const we=new Set(de.map(i)),Ce=R.filter(ze=>we.has(i(ze.value)));if(Ce.length===0)return Ce;R=R.filter(ze=>!we.has(i(ze.value)));for(const ze of Ce)ee.delete(i(ze.value));return Re(),at(),Me(),Ce}function vt(de){de.length!==0&&(R=R.concat(de),Re(),at(),Me())}function Ct(de,we){const Ce=y(de),ze=typeof we=="number"&&we>=0&&we<=R.length?we:R.length;R=R.slice(0,ze).concat([Ce],R.slice(ze)),Re(),at(),Me()}function dt(de,we){const Ce=i(de),ze=R.findIndex(lt=>i(lt.value)===Ce);if(ze===-1||we==null||typeof we!="object")return;const qe=R[ze],Ue=V(qe),it=y({...Ue,...we}),Xe=i(it.value);Xe!==Ce&&ee.has(Ce)&&(ee.delete(Ce),ee.add(Xe)),R=R.slice(0,ze).concat([it],R.slice(ze+1)),Re(),at(),Me()}function zt(){return!le||!n?null:w(n).get(le)||null}function jt(){const de=zt();if(!de||Ne())return;const we=R.filter(ze=>ee.has(i(ze.value))).map(ze=>ze.value);if(we.length===0)return;const Ce=ct(we);de.__receiveItems(Ce)}function _t(){const de=zt();if(!de||Ne()||R.length===0)return;const we=ct(R.map(Ce=>Ce.value));de.__receiveItems(we)}function ft(de){if(Ne())return;const we=[];for(let Ce=0;Ce<R.length;Ce++)ee.has(i(R[Ce].value))&&we.push(Ce);if(we.length!==0){if(de<0)for(const Ce of we)Ce===0||ee.has(i(R[Ce-1].value))||([R[Ce-1],R[Ce]]=[R[Ce],R[Ce-1]]);else for(let Ce=we.length-1;Ce>=0;Ce--){const ze=we[Ce];ze===R.length-1||ee.has(i(R[ze+1].value))||([R[ze+1],R[ze]]=[R[ze],R[ze+1]])}Re(),at(),Me()}}function at(){const de=U.scrollTop;for(;ae.firstChild;)ae.removeChild(ae.firstChild);ae.style.height="",ae.style.position="",B?Nt():It(de),Rt(),yt(),oe&&ut()}function Nt(){let de=0;for(const we of Fe(X))if(we.group!=null){const Ce=n.createElement("div");Ce.setAttribute("role","group");const ze=n.createElement("div");ze.className="lat-listbox__group-header",ze.id=`${D}-grp-${de}`,ze.textContent=we.group,Ce.setAttribute("aria-labelledby",ze.id),Ce.appendChild(ze);for(const qe of we.items)Ce.appendChild(je(qe,de)),de+=1;ae.appendChild(Ce)}else for(const Ce of we.items)ae.appendChild(je(Ce,de)),de+=1}function It(de){const we=de??U.scrollTop;if(ae.style.position="relative",Q=U.clientHeight||Q||240,X.length===0){ae.style.height="0px";return}for(let Xe=0;Xe<X.length;Xe++)T[Xe]==null&&(T[Xe]=Ze(X[Xe]));g.length=0,g[0]=0;for(let Xe=1;Xe<=X.length;Xe++)g[Xe]=g[Xe-1]+T[Xe-1];ae.style.height=`${g[X.length]}px`;const Ce=we,ze=we+Q;let qe=0;for(;qe<X.length-1&&g[qe+1]<Ce;)qe+=1;let Ue=qe;for(;Ue<X.length&&g[Ue]<ze;)Ue+=1;for(Ue=Math.min(X.length,Ue+2);ae.firstChild;)ae.removeChild(ae.firstChild);for(let Xe=qe;Xe<Ue;Xe++){const lt=je(X[Xe],Xe);lt.style.position="absolute",lt.style.insetInlineStart="0",lt.style.insetInlineEnd="0",lt.style.top="0",lt.style.transform=`translateY(${g[Xe]}px)`,ae.appendChild(lt)}let it=!1;for(let Xe=qe;Xe<Ue;Xe++){const lt=n.getElementById(Ge(Xe));if(!lt)continue;const bt=lt.getBoundingClientRect().height;bt>0&&Math.abs(bt-T[Xe])>.5&&(T[Xe]=bt,it=!0)}it?It(we):U.scrollTop!==we&&(U.scrollTop=we)}function gt(){if(ge<0||B)return;const de=g[ge]||0,we=de+(T[ge]||Ze(X[ge])),Ce=ae.offsetTop||0,ze=U.scrollTop+Q-Ce;de<U.scrollTop?U.scrollTop=de:we>ze&&(U.scrollTop=we-(Q-Ce)),at()}function Rt(){X.length===0?(re.hidden=!1,re.textContent=O("form.listbox.empty")):(re.hidden=!0,re.textContent="")}function $t(){for(const de of ae.querySelectorAll('.lat-listbox__option[role="option"]')){const we=de.id||"",Ce=Number(we.slice(`${D}-opt-`.length));if(Number.isNaN(Ce))continue;const ze=X[Ce];if(!ze)continue;const qe=ee.has(i(ze.value));de.setAttribute("aria-selected",qe?"true":"false");const Ue=de.querySelector(".lat-listbox__checkbox");Ue&&(Ue.checked=qe)}yt(),oe&&ut()}function yt(){if(!Z)return;const de=X.filter(Ce=>!Ce.disabled),we=de.filter(Ce=>ee.has(i(Ce.value))).length;Z.checked=de.length>0&&we===de.length,Z.indeterminate=we>0&&we<de.length,Z.disabled=Ne()||de.length===0}function ut(){const de=ee.size>0,we=Ne();ve&&(ve.disabled=we||!de),pe&&(pe.disabled=we||!de),x&&(x.disabled=we||!de),W&&(W.disabled=we||R.length===0)}function wt(de){ge=de,de>=0&&de<X.length?U.setAttribute("aria-activedescendant",Ge(de)):U.removeAttribute("aria-activedescendant")}function Tt(de){for(let we=Math.max(0,de);we<X.length;we++)if(!X[we].disabled)return we;return-1}function xt(de){for(let we=Math.min(X.length-1,de);we>=0;we--)if(!X[we].disabled)return we;return-1}function Et(de,we={}){const Ce=X[de];if(!Ce||Ce.disabled||Ne())return;wt(de);const ze=new Set(ee);if(ie==="single")ee.clear(),ee.add(i(Ce.value)),$e=de;else if(ie==="checkbox")ee.has(i(Ce.value))?ee.delete(i(Ce.value)):ee.add(i(Ce.value)),$e=de;else if(we.shift&&$e!=null){const qe=Math.min($e,de),Ue=Math.max($e,de);ee.clear();for(let it=qe;it<=Ue;it++)X[it].disabled||ee.add(i(X[it].value))}else we.ctrl||we.touch?(ee.has(i(Ce.value))?ee.delete(i(Ce.value)):ee.add(i(Ce.value)),$e=de):(ee.clear(),ee.add(i(Ce.value)),$e=de);gt(),$t(),St(ze,ee)||Me()}function St(de,we){if(de.size!==we.size)return!1;for(const Ce of de)if(!we.has(Ce))return!1;return!0}function Wt(){if(Ne())return;const de=!He();for(const we of X)we.disabled||(de?ee.add(i(we.value)):ee.delete(i(we.value)));$t(),Me()}function Vt(de,we){if(X.length===0)return;const Ce=ge<0?de>0?-1:X.length:ge,ze=de>0?Tt(Ce+1):xt(Ce-1);if(ze!==-1){if(wt(ze),gt(),ie==="single"){Et(ze,{});return}we&&F&&($e==null&&($e=ze),Et(ze,{shift:!0}))}}function ht(de){a&&clearTimeout(a),M+=de.toLowerCase(),a=setTimeout(()=>{M="",a=null},p);const we=ge>-1?ge+1:0;let Ce=-1;for(let ze=we;ze<X.length;ze++)if(!X[ze].disabled&&X[ze].label.toLowerCase().startsWith(M)){Ce=ze;break}if(Ce===-1){for(let ze=0;ze<we;ze++)if(!X[ze].disabled&&X[ze].label.toLowerCase().startsWith(M)){Ce=ze;break}}Ce!==-1&&(wt(Ce),gt())}function Bt(de){if(de.altKey&&de.key==="ArrowUp"&&(se||q))de.preventDefault(),ft(-1);else if(de.altKey&&de.key==="ArrowDown"&&(se||q))de.preventDefault(),ft(1);else if(de.key==="ArrowDown")de.preventDefault(),Vt(1,de.shiftKey);else if(de.key==="ArrowUp")de.preventDefault(),Vt(-1,de.shiftKey);else if(de.key==="Home"){de.preventDefault();const we=Tt(0);we!==-1&&(wt(we),gt(),ie==="single"&&Et(we,{}))}else if(de.key==="End"){de.preventDefault();const we=xt(X.length-1);we!==-1&&(wt(we),gt(),ie==="single"&&Et(we,{}))}else if(de.key===" ")de.preventDefault(),ge>=0&&Et(ge,{ctrl:F});else if(de.key==="Enter"){de.preventDefault();const we=ge>=0?X[ge]:null;we&&!we.disabled&&!Ne()&&k(b,n,"activate",{option:V(we),event:de})}else if((de.ctrlKey||de.metaKey)&&(de.key==="a"||de.key==="A")&&F){if(de.preventDefault(),Ne())return;for(const we of X)we.disabled||ee.add(i(we.value));$t(),Me()}else de.key.length===1&&!de.ctrlKey&&!de.metaKey&&!de.altKey&&ht(de.key)}function Kt(){if(Ee=ne.value||"",typeof _.load!="function"){Re(),at();return}Y&&clearTimeout(Y),Y=setTimeout(()=>Pt(),t)}function Pt(){if(Be||typeof _.load!="function")return;Ae=!0,me+=1;const de=me;fe&&fe.abort(),fe=typeof AbortController<"u"?new AbortController:null;let we;try{we=_.load({search:Ee,page:0,signal:fe?fe.signal:void 0})}catch{Ae=!1;return}const Ce=ze=>{if(Be||de!==me)return;Ae=!1;const qe=s(ze);R=qe.items.map(y),Pe=qe.hasMore,ue=1,Re(),at()};we&&typeof we.then=="function"?we.then(Ce,()=>{Ae=!1}):Ce(we)}Te(U,"keydown",Bt),Te(U,"scroll",()=>{B||It()}),ne&&Te(ne,"input",Kt),ve&&Te(ve,"click",()=>ft(-1)),pe&&Te(pe,"click",()=>ft(1)),x&&Te(x,"click",()=>jt()),W&&Te(W,"click",()=>_t()),Z&&Te(Z,"change",()=>Wt()),Te(U,"dragover",de=>{f&&de.preventDefault()}),Te(U,"drop",de=>{if(de.preventDefault(),!f||f.source===pt||!le)return;const we=f.source.__removeValues(f.values);f=null,vt(we)}),q&&n&&(Te(n,"pointermove",et),Te(n,"pointerup",mt));function Ft(de){if(ee.clear(),se&&_.valueAs==="order"&&Array.isArray(de)){const we=new Map(R.map(Ce=>[i(Ce.value),Ce]));R=de.map(Ce=>we.get(i(Ce))||y(Ce))}else if(ie==="single")de!=null&&ee.add(i(de));else if((se||le)&&Array.isArray(de)){const we=new Map(R.map(Ce=>[i(Ce.value),Ce]));R=de.map(Ce=>we.get(i(Ce))||y(Ce));for(const Ce of R)ee.add(i(Ce.value))}else{const we=Array.isArray(de)?de:de==null?[]:[de];for(const Ce of we)ee.add(i(Ce))}Re(),at()}typeof _.load!="function"&&(R=(Array.isArray(_.options)?_.options:[]).map(y)),Re(),Ft(_.value),typeof _.load=="function"&&Pt();const pt={el:b,root:J,viewport:U,getValue:Oe,setValue(de){return Ft(de),pt},focus(){return U.focus(),pt},blur(){return U.blur(),pt},setDisabled(de){_.disabled=de,U.setAttribute("aria-disabled",de?"true":"false"),ne&&(ne.disabled=de),yt(),ut()},setReadOnly(de){_.readOnly=de,de?U.setAttribute("aria-readonly","true"):U.removeAttribute("aria-readonly"),yt(),ut()},getOptions(){return R.map(de=>V(de))},addOption(de,we){return Ct(de,we),pt},removeOption(de){return ct([de]),pt},updateOption(de,we){return dt(de,we),pt},filter(de){return K=typeof de=="function"?de:null,Re(),at(),pt},__removeValues:ct,__receiveItems:vt,destroy(){Be=!0,a&&clearTimeout(a),Y&&clearTimeout(Y),fe&&fe.abort();for(const de of Se.splice(0))de();if(n&&ke){const de=w(n);de.get(ke)===pt&&de.delete(ke)}for(;J.firstChild;)J.removeChild(J.firstChild)}};return n&&ke&&w(n).set(ke,pt),at(),b.appendChild(J),b.__listbox=pt,pt}H("listbox",{kind:"field",domEvents:["itemClick","activate"],build(b,_){const n=b.props||{},O=_.doc.createElement("div");return $(O,{options:b.options,load:n.load,selection:n.selection,value:b.value,filter:n.filter===!0,groupBy:n.groupBy===!0,sort:n.sort,render:n.render,reorder:n.reorder===!0,valueAs:n.valueAs,connect:n.connect,name:b.name,min:b.min,max:b.max,height:b.height,rows:b.rows,dragHandle:n.dragHandle===!0,disabled:b.disabled===!0,readOnly:b.readOnly===!0,ariaLabel:b.label,t:_.t,doc:_.doc,inForm:!0}),O.__listboxT=_.t,_.disposers.push(()=>{O.__listbox&&O.__listbox.destroy()}),O},read(b){return b.__listbox?b.__listbox.getValue():null},write(b,_){b.__listbox&&b.__listbox.setValue(_)},validate(b,_,n){if(!b.__listbox)return null;const ie=b.__listboxT||e,F=Array.isArray(n)?n.length:n==null?0:1,se=_.min!=null&&Number.isFinite(Number(_.min))?Number(_.min):null,le=_.max!=null&&Number.isFinite(Number(_.max))?Number(_.max):null;return se!=null&&F<se?{code:"min",message:ie("form.listbox.min",{min:String(se)})}:le!=null&&F>le?{code:"max",message:ie("form.listbox.max",{max:String(le)})}:null},state(b,_){b.__listbox&&(b.__listbox.setDisabled(_.disabled===!0),b.__listbox.setReadOnly(_.readOnly===!0))},focus(b){b.__listbox&&b.__listbox.focus()},blur(b){b.__listbox&&b.__listbox.blur()}})}),Ie("packages/modules/form/controls/options.js",function(S,te){"use strict";Object.defineProperty(S,"normalizeOptions",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"resolveChoiceLayout",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"choiceLayoutCss",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return z}});const H=te("packages/modules/form/styles.js").NS;function L(N){return Array.isArray(N)?N.map(G=>{if(typeof G=="string")return{value:G,label:G};if(G&&typeof G=="object"){const C=G.value==null?"":String(G.value),A=G.label!=null?String(G.label):G.text!=null?String(G.text):C;return{value:C,label:A}}return{value:"",label:""}}):[]}function e(N){const G=N&&N.props?N.props:{},C=N&&N.orientation!=null?N.orientation:G.orientation;let A=N&&N.columns!=null?N.columns:G.columns;return A=typeof A=="number"&&Number.isFinite(A)&&A>=1?Math.floor(A):0,A>0?{orientation:"vertical",columns:A}:{orientation:C==="horizontal"?"horizontal":"vertical",columns:0}}function E(){return`
|
|
2058
|
+
`.trim()}function o(b){const _=b&&b.documentElement;if(!_||_.getAttribute(v))return;_.setAttribute(v,"1");const n=b.createElement("style");n.textContent=P(),(b.head||b.body||_).appendChild(n)}function y(b){return b==null||typeof b!="object"?{value:b,label:b==null?"":String(b),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null,raw:b}:{value:b.value,label:b.label!=null?String(b.label):b.title!=null?String(b.title):b.value==null?"":String(b.value),description:b.description!=null?String(b.description):b.subtitle!=null?String(b.subtitle):null,icon:b.icon,avatar:b.avatar,color:b.color,dot:b.dot,disabled:b.disabled===!0,group:b.group!=null?String(b.group):null,raw:b}}function V(b){if(b.raw!=null&&typeof b.raw=="object")return b.raw;const{raw:_,...n}=b;return n}function s(b){if(Array.isArray(b))return{items:b,total:b.length,hasMore:!1};if(b&&typeof b=="object"){const _=Array.isArray(b.items)?b.items:[];return{items:_,total:typeof b.total=="number"?b.total:_.length,hasMore:b.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function d(b,_){return b===_?!0:b!=null&&_!=null&&String(b)===String(_)}function i(b){return String(b)}function m(b,_){const n=b&&b.defaultView;return n&&n.Event?new n.Event(_,{bubbles:!0}):{type:_,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function k(b,_,n,O){const ie=_&&_.defaultView,F=ie&&typeof ie.CustomEvent=="function"?ie.CustomEvent:null,se=F?new F(n,{bubbles:!0,detail:O}):{type:n,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:O,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};b.dispatchEvent(se)}function w(b){return b.__latListboxRegistry||(b.__latListboxRegistry=new Map),b.__latListboxRegistry}let f=null;function $(b,_={}){const n=_.doc||b&&b.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;n&&(o(n),u(n));const O=typeof _.t=="function"?_.t:e,ie=["single","multiple","checkbox"].includes(_.selection)?_.selection:"single",F=ie!=="single",se=_.reorder===!0,le=typeof _.connect=="string"&&_.connect!==""?_.connect:null,xe=typeof _.name=="string"&&_.name!==""?_.name:null,ue=_.sort==="asc"||_.sort==="desc"?_.sort:!1,R=_.groupBy===!0,be=_.filter===!0,q=_.dragHandle===!0,D=I("lat-listbox"),J=n.createElement("div");J.className="lat-listbox",q&&J.setAttribute("data-drag-handle","true"),_.inForm||(J.setAttribute("data-lattice-standalone","true"),J.setAttribute("data-density",["compact","standard","comfortable"].includes(_.density)?_.density:"standard"));let ne=null;be&&(ne=n.createElement("input"),ne.type="text",ne.className="lat-listbox__filter",ne.placeholder=O("form.listbox.filterPlaceholder"),ne.setAttribute("aria-label",O("form.listbox.filterPlaceholder")),J.appendChild(ne));let oe=null,ve=null,pe=null,x=null,W=null;(se||le||q)&&(oe=n.createElement("div"),oe.className="lat-listbox__toolbar",oe.setAttribute("role","group"),oe.setAttribute("aria-label",O("form.listbox.toolbar")),(se||q)&&(ve=n.createElement("button"),ve.type="button",ve.className="lat-listbox__toolbar-btn",ve.textContent=O("form.listbox.moveUp"),pe=n.createElement("button"),pe.type="button",pe.className="lat-listbox__toolbar-btn",pe.textContent=O("form.listbox.moveDown"),oe.appendChild(ve),oe.appendChild(pe)),le&&(x=n.createElement("button"),x.type="button",x.className="lat-listbox__toolbar-btn",x.textContent=O("form.listbox.moveSelected"),W=n.createElement("button"),W.type="button",W.className="lat-listbox__toolbar-btn",W.textContent=O("form.listbox.moveAll"),oe.appendChild(x),oe.appendChild(W)),J.appendChild(oe));const U=n.createElement("div");U.className="lat-listbox__viewport",U.id=`${D}-lb`,U.setAttribute("role","listbox"),U.setAttribute("tabindex","0"),F&&U.setAttribute("aria-multiselectable","true"),U.setAttribute("aria-label",_.ariaLabel!=null?String(_.ariaLabel):"");const j=typeof _.rows=="number"&&_.rows>0?_.rows:8;typeof _.height=="number"&&_.height>0?U.style.height=`${_.height}px`:U.style.height=`calc(var(--lattice-row-height) * ${j})`;let Z=null;if(ie==="checkbox"){const ce=n.createElement("div");ce.className="lat-listbox__option lat-listbox__select-all",Z=n.createElement("input"),Z.type="checkbox",Z.className="lat-listbox__checkbox",Z.id=`${D}-select-all`,ce.appendChild(Z);const ke=n.createElement("label");ke.className="lat-listbox__title",ke.textContent=O("form.listbox.selectAll"),ke.setAttribute("for",Z.id),ce.appendChild(ke),U.appendChild(ce)}const ae=n.createElement("div");ae.className="lat-listbox__spacer",U.appendChild(ae);const re=n.createElement("div");re.className="lat-listbox__status",re.setAttribute("role","status"),re.setAttribute("aria-live","polite"),re.hidden=!0,U.appendChild(re),J.appendChild(U);let B=[];const ee=new Set;let X=[],ge=-1,$e=null,K=null,he=null,Ee="";const N=[],g=[];let Q=0,M="",a=null,Y=null,fe=null,me=0,Ae=!1,de=0,Pe=!1;const Se=[];let Be=!1;function Te(ce,ke,Ce){ce.addEventListener(ke,Ce),Se.push(()=>ce.removeEventListener(ke,Ce))}function Ne(){return _.readOnly===!0||_.disabled===!0}function Me(){b.dispatchEvent(m(n,"change"))}function Oe(){if(se&&_.valueAs==="order")return B.map(ce=>ce.value);if(ie==="single"){const ce=B.find(ke=>ee.has(i(ke.value)));return ce?ce.value:null}return se||le?B.map(ce=>ce.value):B.filter(ce=>ee.has(i(ce.value))).map(ce=>ce.value)}function He(){const ce=X.filter(ke=>!ke.disabled);return ce.length>0&&ce.every(ke=>ee.has(i(ke.value)))}function Re(){const ce=Ee.trim().toLowerCase();let ke=ce===""?B.slice():B.filter(Ce=>Ce.label.toLowerCase().includes(ce)||(Ce.description||"").toLowerCase().includes(ce));K&&(ke=ke.filter(Ce=>{try{return K(V(Ce))!==!1}catch{return!0}})),ue&&(ke=ke.slice().sort((Ce,ze)=>Ce.label.localeCompare(ze.label)*(ue==="desc"?-1:1))),X=ke,N.length=0,g.length=0,ge>=X.length&&(ge=X.length-1)}function Fe(ce){const ke=[],Ce=new Map;for(const ze of ce){const qe=ze.group||"";let Ue=Ce.get(qe);Ue||(Ue={group:ze.group||null,items:[]},Ce.set(qe,Ue),ke.push(Ue)),Ue.items.push(ze)}return ke}function Ge(ce){return`${D}-opt-${ce}`}function Ze(ce){return ce.description!=null||ce.icon!=null||ce.avatar!=null?c:h}function _e(ce){const ke=X[ce];return!!ke&&ee.has(i(ke.value))}function je(ce,ke){const Ce=n.createElement("div");if(Ce.className="lat-listbox__option",Ce.setAttribute("role","option"),Ce.id=Ge(ke),Ce.setAttribute("aria-selected",_e(ke)?"true":"false"),ce.disabled&&Ce.setAttribute("aria-disabled","true"),ie==="checkbox"){const Ue=n.createElement("input");Ue.type="checkbox",Ue.className="lat-listbox__checkbox",Ue.tabIndex=-1,Ue.checked=_e(ke),Ue.disabled=ce.disabled||Ne(),Ce.appendChild(Ue)}const ze=r(n,V(ce),_.render);if(ze)Ce.appendChild(ze);else{const Ue=A(n,ce);Ue&&Ce.appendChild(Ue);const rt=n.createElement("span");rt.className="lat-listbox__text";const Xe=n.createElement("span");if(Xe.className="lat-listbox__title",Xe.textContent=ce.label,rt.appendChild(Xe),ce.description!=null){const ot=n.createElement("span");ot.className="lat-listbox__subtitle",ot.textContent=ce.description,rt.appendChild(ot)}Ce.appendChild(rt)}if(q){if(!ce.disabled&&!Ne()){const Ue=n.createElement("span");Ue.className="lat-listbox__handle",Ue.setAttribute("aria-hidden","true"),Ue.setAttribute("title",O("form.listbox.dragHandle")),Ue.textContent="⠿",Ce.insertBefore(Ue,Ce.firstChild||null),Te(Ue,"pointerdown",rt=>Qe(rt,ce))}}else(se||le)&&!ce.disabled&&!Ne()&&(Ce.draggable=!0,Te(Ce,"dragstart",()=>Le(ce)),Te(Ce,"dragover",Ue=>{Ue.preventDefault()}),Te(Ce,"drop",Ue=>{Ue.preventDefault(),We(ce)}));return Te(Ce,"click",Ue=>{ce.disabled||Ne()||(U.focus(),k(b,n,"itemClick",{option:V(ce),event:Ue}),_t(ke,{shift:Ue.shiftKey,ctrl:Ue.ctrlKey||Ue.metaKey,touch:Ue.pointerType==="touch"}))}),Ce}function Le(ce){const ke=ee.has(i(ce.value))?B.filter(Ce=>ee.has(i(Ce.value))).map(Ce=>Ce.value):[ce.value];f={source:mt,values:ke}}function We(ce){if(!f||Ne())return;const{source:ke,values:Ce}=f;f=null;const ze=B.findIndex(qe=>d(qe.value,ce.value));if(ze!==-1){if(ke===mt){if(!se)return;nt(Ce,ze),lt(),Me();return}if(le){const qe=ke.__removeValues(Ce);if(qe.length===0)return;B.splice(ze,0,...qe);for(const Ue of qe)ee.add(i(Ue.value));Re(),lt(),Me()}}}function nt(ce,ke){const Ce=new Set(ce.map(i)),ze=B.filter(Xe=>Ce.has(i(Xe.value)));if(ze.length===0)return;const qe=B[ke]?i(B[ke].value):null,Ue=B.filter(Xe=>!Ce.has(i(Xe.value)));let rt=qe==null?Ue.length:Ue.findIndex(Xe=>i(Xe.value)===qe);rt===-1&&(rt=Ue.length),Ue.splice(rt,0,...ze),B=Ue}function tt(ce){for(const ke of ae.querySelectorAll('.lat-listbox__option[role="option"]')){const Ce=ke.id||"",ze=Number(Ce.slice(`${D}-opt-`.length));if(Number.isNaN(ze))continue;const qe=X[ze];if(qe&&d(qe.value,ce))return ke}return null}function Ke(ce,ke){if(!n||typeof n.elementFromPoint!="function")return-1;const Ce=n.elementFromPoint(ce,ke),ze=Ce&&typeof Ce.closest=="function"?Ce.closest('.lat-listbox__option[role="option"]'):null;if(!ze)return-1;const qe=ze.id||"",Ue=Number(qe.slice(`${D}-opt-`.length));return Number.isNaN(Ue)?-1:Ue}function Qe(ce,ke){ke.disabled||Ne()||(ce.preventDefault(),he={value:ke.value,startX:ce.clientX,startY:ce.clientY,armed:!1,overIndex:-1})}function et(ce){if(!he)return;if(!he.armed){if(Math.abs(ce.clientX-he.startX)+Math.abs(ce.clientY-he.startY)<4)return;he.armed=!0;const ze=tt(he.value);ze&&ze.classList.add("lat-listbox__option--dragging")}const ke=Ke(ce.clientX,ce.clientY);ke!==-1&&(he.overIndex=ke)}function pt(){if(!he)return;const ce=he;he=null;const ke=tt(ce.value);if(ke&&ke.classList.remove("lat-listbox__option--dragging"),!ce.armed||ce.overIndex<0||Ne())return;const Ce=X[ce.overIndex];if(!Ce||d(Ce.value,ce.value))return;const ze=B.findIndex(qe=>d(qe.value,Ce.value));ze!==-1&&(nt([ce.value],ze),Re(),lt(),Me())}function ct(ce){const ke=new Set(ce.map(i)),Ce=B.filter(ze=>ke.has(i(ze.value)));if(Ce.length===0)return Ce;B=B.filter(ze=>!ke.has(i(ze.value)));for(const ze of Ce)ee.delete(i(ze.value));return Re(),lt(),Me(),Ce}function ht(ce){ce.length!==0&&(B=B.concat(ce),Re(),lt(),Me())}function Et(ce,ke){const Ce=y(ce),ze=typeof ke=="number"&&ke>=0&&ke<=B.length?ke:B.length;B=B.slice(0,ze).concat([Ce],B.slice(ze)),Re(),lt(),Me()}function dt(ce,ke){const Ce=i(ce),ze=B.findIndex(ot=>i(ot.value)===Ce);if(ze===-1||ke==null||typeof ke!="object")return;const qe=B[ze],Ue=V(qe),rt=y({...Ue,...ke}),Xe=i(rt.value);Xe!==Ce&&ee.has(Ce)&&(ee.delete(Ce),ee.add(Xe)),B=B.slice(0,ze).concat([rt],B.slice(ze+1)),Re(),lt(),Me()}function Dt(){return!le||!n?null:w(n).get(le)||null}function jt(){const ce=Dt();if(!ce||Ne())return;const ke=B.filter(ze=>ee.has(i(ze.value))).map(ze=>ze.value);if(ke.length===0)return;const Ce=ct(ke);ce.__receiveItems(Ce)}function gt(){const ce=Dt();if(!ce||Ne()||B.length===0)return;const ke=ct(B.map(Ce=>Ce.value));ce.__receiveItems(ke)}function ft(ce){if(Ne())return;const ke=[];for(let Ce=0;Ce<B.length;Ce++)ee.has(i(B[Ce].value))&&ke.push(Ce);if(ke.length!==0){if(ce<0)for(const Ce of ke)Ce===0||ee.has(i(B[Ce-1].value))||([B[Ce-1],B[Ce]]=[B[Ce],B[Ce-1]]);else for(let Ce=ke.length-1;Ce>=0;Ce--){const ze=ke[Ce];ze===B.length-1||ee.has(i(B[ze+1].value))||([B[ze+1],B[ze]]=[B[ze],B[ze+1]])}Re(),lt(),Me()}}function lt(){const ce=U.scrollTop;for(;ae.firstChild;)ae.removeChild(ae.firstChild);ae.style.height="",ae.style.position="",R?Nt():Tt(ce),zt(),ut(),oe&&yt()}function Nt(){let ce=0;for(const ke of Fe(X))if(ke.group!=null){const Ce=n.createElement("div");Ce.setAttribute("role","group");const ze=n.createElement("div");ze.className="lat-listbox__group-header",ze.id=`${D}-grp-${ce}`,ze.textContent=ke.group,Ce.setAttribute("aria-labelledby",ze.id),Ce.appendChild(ze);for(const qe of ke.items)Ce.appendChild(je(qe,ce)),ce+=1;ae.appendChild(Ce)}else for(const Ce of ke.items)ae.appendChild(je(Ce,ce)),ce+=1}function Tt(ce){const ke=ce??U.scrollTop;if(ae.style.position="relative",Q=U.clientHeight||Q||240,X.length===0){ae.style.height="0px";return}for(let Xe=0;Xe<X.length;Xe++)N[Xe]==null&&(N[Xe]=Ze(X[Xe]));g.length=0,g[0]=0;for(let Xe=1;Xe<=X.length;Xe++)g[Xe]=g[Xe-1]+N[Xe-1];ae.style.height=`${g[X.length]}px`;const Ce=ke,ze=ke+Q;let qe=0;for(;qe<X.length-1&&g[qe+1]<Ce;)qe+=1;let Ue=qe;for(;Ue<X.length&&g[Ue]<ze;)Ue+=1;for(Ue=Math.min(X.length,Ue+2);ae.firstChild;)ae.removeChild(ae.firstChild);for(let Xe=qe;Xe<Ue;Xe++){const ot=je(X[Xe],Xe);ot.style.position="absolute",ot.style.insetInlineStart="0",ot.style.insetInlineEnd="0",ot.style.top="0",ot.style.transform=`translateY(${g[Xe]}px)`,ae.appendChild(ot)}let rt=!1;for(let Xe=qe;Xe<Ue;Xe++){const ot=n.getElementById(Ge(Xe));if(!ot)continue;const Ht=ot.getBoundingClientRect().height;Ht>0&&Math.abs(Ht-N[Xe])>.5&&(N[Xe]=Ht,rt=!0)}rt?Tt(ke):U.scrollTop!==ke&&(U.scrollTop=ke)}function wt(){if(R||!n)return;const ce=n.defaultView,ke=ce&&ce.ResizeObserver;if(typeof ke!="function")return;const Ce=new ke(()=>{Be||Tt()});Ce.observe(U),Se.push(()=>Ce.disconnect())}function xt(){if(ge<0||R)return;const ce=g[ge]||0,ke=ce+(N[ge]||Ze(X[ge])),Ce=ae.offsetTop||0,ze=U.scrollTop+Q-Ce;ce<U.scrollTop?U.scrollTop=ce:ke>ze&&(U.scrollTop=ke-(Q-Ce)),lt()}function zt(){X.length===0?(re.hidden=!1,re.textContent=O("form.listbox.empty")):(re.hidden=!0,re.textContent="")}function vt(){for(const ce of ae.querySelectorAll('.lat-listbox__option[role="option"]')){const ke=ce.id||"",Ce=Number(ke.slice(`${D}-opt-`.length));if(Number.isNaN(Ce))continue;const ze=X[Ce];if(!ze)continue;const qe=ee.has(i(ze.value));ce.setAttribute("aria-selected",qe?"true":"false");const Ue=ce.querySelector(".lat-listbox__checkbox");Ue&&(Ue.checked=qe)}ut(),oe&&yt()}function ut(){if(!Z)return;const ce=X.filter(Ce=>!Ce.disabled),ke=ce.filter(Ce=>ee.has(i(Ce.value))).length;Z.checked=ce.length>0&&ke===ce.length,Z.indeterminate=ke>0&&ke<ce.length,Z.disabled=Ne()||ce.length===0}function yt(){const ce=ee.size>0,ke=Ne();ve&&(ve.disabled=ke||!ce),pe&&(pe.disabled=ke||!ce),x&&(x.disabled=ke||!ce),W&&(W.disabled=ke||B.length===0)}function kt(ce){ge=ce,ce>=0&&ce<X.length?U.setAttribute("aria-activedescendant",Ge(ce)):U.removeAttribute("aria-activedescendant")}function At(ce){for(let ke=Math.max(0,ce);ke<X.length;ke++)if(!X[ke].disabled)return ke;return-1}function Gt(ce){for(let ke=Math.min(X.length-1,ce);ke>=0;ke--)if(!X[ke].disabled)return ke;return-1}function _t(ce,ke={}){const Ce=X[ce];if(!Ce||Ce.disabled||Ne())return;kt(ce);const ze=new Set(ee);if(ie==="single")ee.clear(),ee.add(i(Ce.value)),$e=ce;else if(ie==="checkbox")ee.has(i(Ce.value))?ee.delete(i(Ce.value)):ee.add(i(Ce.value)),$e=ce;else if(ke.shift&&$e!=null){const qe=Math.min($e,ce),Ue=Math.max($e,ce);ee.clear();for(let rt=qe;rt<=Ue;rt++)X[rt].disabled||ee.add(i(X[rt].value))}else ke.ctrl||ke.touch?(ee.has(i(Ce.value))?ee.delete(i(Ce.value)):ee.add(i(Ce.value)),$e=ce):(ee.clear(),ee.add(i(Ce.value)),$e=ce);xt(),vt(),Kt(ze,ee)||Me()}function Kt(ce,ke){if(ce.size!==ke.size)return!1;for(const Ce of ce)if(!ke.has(Ce))return!1;return!0}function Ut(){if(Ne())return;const ce=!He();for(const ke of X)ke.disabled||(ce?ee.add(i(ke.value)):ee.delete(i(ke.value)));vt(),Me()}function bt(ce,ke){if(X.length===0)return;const Ce=ge<0?ce>0?-1:X.length:ge,ze=ce>0?At(Ce+1):Gt(Ce-1);if(ze!==-1){if(kt(ze),xt(),ie==="single"){_t(ze,{});return}ke&&F&&($e==null&&($e=ze),_t(ze,{shift:!0}))}}function It(ce){a&&clearTimeout(a),M+=ce.toLowerCase(),a=setTimeout(()=>{M="",a=null},p);const ke=ge>-1?ge+1:0;let Ce=-1;for(let ze=ke;ze<X.length;ze++)if(!X[ze].disabled&&X[ze].label.toLowerCase().startsWith(M)){Ce=ze;break}if(Ce===-1){for(let ze=0;ze<ke;ze++)if(!X[ze].disabled&&X[ze].label.toLowerCase().startsWith(M)){Ce=ze;break}}Ce!==-1&&(kt(Ce),xt())}function Zt(ce){if(ce.altKey&&ce.key==="ArrowUp"&&(se||q))ce.preventDefault(),ft(-1);else if(ce.altKey&&ce.key==="ArrowDown"&&(se||q))ce.preventDefault(),ft(1);else if(ce.key==="ArrowDown")ce.preventDefault(),bt(1,ce.shiftKey);else if(ce.key==="ArrowUp")ce.preventDefault(),bt(-1,ce.shiftKey);else if(ce.key==="Home"){ce.preventDefault();const ke=At(0);ke!==-1&&(kt(ke),xt(),ie==="single"&&_t(ke,{}))}else if(ce.key==="End"){ce.preventDefault();const ke=Gt(X.length-1);ke!==-1&&(kt(ke),xt(),ie==="single"&&_t(ke,{}))}else if(ce.key===" ")ce.preventDefault(),ge>=0&&_t(ge,{ctrl:F});else if(ce.key==="Enter"){ce.preventDefault();const ke=ge>=0?X[ge]:null;ke&&!ke.disabled&&!Ne()&&k(b,n,"activate",{option:V(ke),event:ce})}else if((ce.ctrlKey||ce.metaKey)&&(ce.key==="a"||ce.key==="A")&&F){if(ce.preventDefault(),Ne())return;for(const ke of X)ke.disabled||ee.add(i(ke.value));vt(),Me()}else ce.key.length===1&&!ce.ctrlKey&&!ce.metaKey&&!ce.altKey&&It(ce.key)}function Rt(){if(Ee=ne.value||"",typeof _.load!="function"){Re(),lt();return}Y&&clearTimeout(Y),Y=setTimeout(()=>Bt(),t)}function Bt(){if(Be||typeof _.load!="function")return;Ae=!0,me+=1;const ce=me;fe&&fe.abort(),fe=typeof AbortController<"u"?new AbortController:null;let ke;try{ke=_.load({search:Ee,page:0,signal:fe?fe.signal:void 0})}catch{Ae=!1;return}const Ce=ze=>{if(Be||ce!==me)return;Ae=!1;const qe=s(ze);B=qe.items.map(y),Pe=qe.hasMore,de=1,Re(),lt()};ke&&typeof ke.then=="function"?ke.then(Ce,()=>{Ae=!1}):Ce(ke)}Te(U,"keydown",Zt),Te(U,"scroll",()=>{R||Tt()}),ne&&Te(ne,"input",Rt),ve&&Te(ve,"click",()=>ft(-1)),pe&&Te(pe,"click",()=>ft(1)),x&&Te(x,"click",()=>jt()),W&&Te(W,"click",()=>gt()),Z&&Te(Z,"change",()=>Ut()),Te(U,"dragover",ce=>{f&&ce.preventDefault()}),Te(U,"drop",ce=>{if(ce.preventDefault(),!f||f.source===mt||!le)return;const ke=f.source.__removeValues(f.values);f=null,ht(ke)}),q&&n&&(Te(n,"pointermove",et),Te(n,"pointerup",pt));function St(ce){if(ee.clear(),se&&_.valueAs==="order"&&Array.isArray(ce)){const ke=new Map(B.map(Ce=>[i(Ce.value),Ce]));B=ce.map(Ce=>ke.get(i(Ce))||y(Ce))}else if(ie==="single")ce!=null&&ee.add(i(ce));else if((se||le)&&Array.isArray(ce)){const ke=new Map(B.map(Ce=>[i(Ce.value),Ce]));B=ce.map(Ce=>ke.get(i(Ce))||y(Ce));for(const Ce of B)ee.add(i(Ce.value))}else{const ke=Array.isArray(ce)?ce:ce==null?[]:[ce];for(const Ce of ke)ee.add(i(Ce))}Re(),lt()}typeof _.load!="function"&&(B=(Array.isArray(_.options)?_.options:[]).map(y)),Re(),St(_.value),typeof _.load=="function"&&Bt();const mt={el:b,root:J,viewport:U,getValue:Oe,setValue(ce){return St(ce),mt},focus(){return U.focus(),mt},blur(){return U.blur(),mt},setDisabled(ce){_.disabled=ce,U.setAttribute("aria-disabled",ce?"true":"false"),ne&&(ne.disabled=ce),ut(),yt()},setReadOnly(ce){_.readOnly=ce,ce?U.setAttribute("aria-readonly","true"):U.removeAttribute("aria-readonly"),ut(),yt()},getOptions(){return B.map(ce=>V(ce))},addOption(ce,ke){return Et(ce,ke),mt},removeOption(ce){return ct([ce]),mt},updateOption(ce,ke){return dt(ce,ke),mt},filter(ce){return K=typeof ce=="function"?ce:null,Re(),lt(),mt},remeasure(){return R||(N.length=0,g.length=0,lt()),mt},__removeValues:ct,__receiveItems:ht,destroy(){Be=!0,a&&clearTimeout(a),Y&&clearTimeout(Y),fe&&fe.abort();for(const ce of Se.splice(0))ce();if(n&&xe){const ce=w(n);ce.get(xe)===mt&&ce.delete(xe)}for(;J.firstChild;)J.removeChild(J.firstChild)}};return n&&xe&&w(n).set(xe,mt),lt(),wt(),b.appendChild(J),b.__listbox=mt,mt}H("listbox",{kind:"field",domEvents:["itemClick","activate"],build(b,_){const n=b.props||{},O=_.doc.createElement("div");return $(O,{options:b.options,load:n.load,selection:n.selection,value:b.value,filter:n.filter===!0,groupBy:n.groupBy===!0,sort:n.sort,render:n.render,reorder:n.reorder===!0,valueAs:n.valueAs,connect:n.connect,name:b.name,min:b.min,max:b.max,height:b.height,rows:b.rows,dragHandle:n.dragHandle===!0,disabled:b.disabled===!0,readOnly:b.readOnly===!0,ariaLabel:b.label,t:_.t,doc:_.doc,inForm:!0}),O.__listboxT=_.t,_.disposers.push(()=>{O.__listbox&&O.__listbox.destroy()}),O},read(b){return b.__listbox?b.__listbox.getValue():null},write(b,_){b.__listbox&&b.__listbox.setValue(_)},validate(b,_,n){if(!b.__listbox)return null;const ie=b.__listboxT||e,F=Array.isArray(n)?n.length:n==null?0:1,se=_.min!=null&&Number.isFinite(Number(_.min))?Number(_.min):null,le=_.max!=null&&Number.isFinite(Number(_.max))?Number(_.max):null;return se!=null&&F<se?{code:"min",message:ie("form.listbox.min",{min:String(se)})}:le!=null&&F>le?{code:"max",message:ie("form.listbox.max",{max:String(le)})}:null},state(b,_){b.__listbox&&(b.__listbox.setDisabled(_.disabled===!0),b.__listbox.setReadOnly(_.readOnly===!0))},focus(b){b.__listbox&&b.__listbox.focus()},blur(b){b.__listbox&&b.__listbox.blur()}})}),Ie("packages/modules/form/controls/options.js",function(S,te){"use strict";Object.defineProperty(S,"normalizeOptions",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"resolveChoiceLayout",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"choiceLayoutCss",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return z}});const H=te("packages/modules/form/styles.js").NS;function L(T){return Array.isArray(T)?T.map(G=>{if(typeof G=="string")return{value:G,label:G};if(G&&typeof G=="object"){const C=G.value==null?"":String(G.value),A=G.label!=null?String(G.label):G.text!=null?String(G.text):C;return{value:C,label:A}}return{value:"",label:""}}):[]}function e(T){const G=T&&T.props?T.props:{},C=T&&T.orientation!=null?T.orientation:G.orientation;let A=T&&T.columns!=null?T.columns:G.columns;return A=typeof A=="number"&&Number.isFinite(A)&&A>=1?Math.floor(A):0,A>0?{orientation:"vertical",columns:A}:{orientation:C==="horizontal"?"horizontal":"vertical",columns:0}}function E(){return`
|
|
2059
2059
|
.${H}__radiogroup--horizontal,
|
|
2060
2060
|
.${H}__checkboxgroup--horizontal{
|
|
2061
2061
|
flex-direction:row; flex-wrap:wrap; align-items:center;
|
|
@@ -2066,7 +2066,7 @@ ${N()}
|
|
|
2066
2066
|
display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
|
|
2067
2067
|
gap:var(--lattice-space);
|
|
2068
2068
|
}
|
|
2069
|
-
`.trim()}const I="data-lattice-form-choice-styles";function z(N){const G=N&&N.documentElement;if(!G||G.getAttribute(I))return;G.setAttribute(I,"1");const C=N.createElement("style");C.textContent=E(),(N.head||N.body||G).appendChild(C)}}),Ie("packages/modules/form/controls/radiogroup.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/options.js"),e=L.normalizeOptions,E=L.resolveChoiceLayout,I=L.injectChoiceLayoutStyles,z=te("packages/modules/form/state.js"),N=z.applyBooleanInputState,G=z.guardBooleanInput;H("radiogroup",{kind:"field",build(C,A){const r=A.doc.createElement("div");r.className="lat-form__radiogroup",r.setAttribute("role","radiogroup"),C.label!=null&&C.label!==""&&r.setAttribute("aria-label",String(C.label));const u=E(C);u.columns>0?(I(A.doc),r.classList.add("lat-form__radiogroup--columns"),r.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(I(A.doc),r.classList.add("lat-form__radiogroup--horizontal")),r.setAttribute("aria-orientation",u.orientation);const v=[];for(const h of e(C.options)){const c=A.doc.createElement("label");c.className="lat-form__choice";const l=A.doc.createElement("input");l.type="radio",C.name&&(l.name=C.name),l.value=h.value,l.checked=C.value!=null&&String(C.value)===h.value,G(l),c.appendChild(l);const t=A.doc.createElement("span");t.textContent=h.label,c.appendChild(t),r.appendChild(c),v.push(l)}return r.__radios=v,r},read(C){const A=C.__radios.find(r=>r.checked);return A?A.value:null},write(C,A){const r=A==null?null:String(A);for(const u of C.__radios)u.checked=r!==null&&u.value===r},state(C,A){const r=A.readOnly===!0;for(const u of C.__radios)N(u,A.disabled===!0,r);r?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")},focus(C){const A=C.__radios.find(r=>!r.disabled);A&&A.focus()}})}),Ie("packages/modules/form/controls/checkboxgroup.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/options.js"),e=L.normalizeOptions,E=L.resolveChoiceLayout,I=L.injectChoiceLayoutStyles,z=te("packages/modules/form/state.js"),N=z.applyBooleanInputState,G=z.guardBooleanInput;H("checkboxgroup",{kind:"field",build(C,A){const r=A.doc.createElement("div");r.className="lat-form__checkboxgroup",r.setAttribute("role","group"),C.label!=null&&C.label!==""&&r.setAttribute("aria-label",String(C.label));const u=E(C);u.columns>0?(I(A.doc),r.classList.add("lat-form__checkboxgroup--columns"),r.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(I(A.doc),r.classList.add("lat-form__checkboxgroup--horizontal"));const v=[],h=Array.isArray(C.value)?C.value.map(String):[];for(const c of e(C.options)){const l=A.doc.createElement("label");l.className="lat-form__choice";const t=A.doc.createElement("input");t.type="checkbox",C.name&&(t.name=C.name),t.value=c.value,t.checked=h.includes(c.value),G(t),l.appendChild(t);const p=A.doc.createElement("span");p.textContent=c.label,l.appendChild(p),r.appendChild(l),v.push(t)}return r.__boxes=v,r},read(C){return C.__boxes.filter(A=>A.checked).map(A=>A.value)},write(C,A){const r=Array.isArray(A)?A.map(String):[];for(const u of C.__boxes)u.checked=r.includes(u.value)},state(C,A){const r=A.readOnly===!0;for(const u of C.__boxes)N(u,A.disabled===!0,r);r?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")},focus(C){const A=C.__boxes.find(r=>!r.disabled);A&&A.focus()}})}),Ie("packages/modules/form/controls/toggle.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/state.js"),e=L.applyBooleanInputState,E=L.guardBooleanInput,I=Object.freeze(["small","default","large"]),z=Object.freeze(["round","square","slim"]),N=Object.freeze(["inside","before","after"]);function G(c){return I.includes(c)?c:"default"}function C(c){return z.includes(c)?c:"round"}function A(c){return N.includes(c)?c:"inside"}function r(c){return c==null?"":String(c)}function u(c){return c.__latToggle?c.__latToggle.input:c}function v(c){!c||!c.label||(c.label.textContent=c.input.checked?c.onLabel:c.offLabel)}function h(c,l,t){const p=l&&l.defaultView,P=p&&p.Event,o=P?new P(t,{bubbles:!0}):{type:t,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};c.dispatchEvent(o)}H("toggle",{kind:"toggle",build(c,l){const t=c.props||{},p=l.doc.createElement("input");p.type="checkbox",p.className="lat-form__toggle",p.setAttribute("role","switch"),c.name&&(p.name=c.name),p.checked=c.value===!0,E(p),t.size!=null&&p.setAttribute("data-size",G(t.size)),t.variant!=null&&p.setAttribute("data-variant",C(t.variant));const P=r(t.onLabel),o=r(t.offLabel);if(P===""&&o==="")return p;const y=l.doc.createElement("span");y.className="lat-form__toggle-field",y.setAttribute("data-label-position",A(t.labelPosition)),y.appendChild(p);const V=l.doc.createElement("span");V.className="lat-form__toggle-label",y.appendChild(V);const s={input:p,label:V,onLabel:P,offLabel:o};y.__latToggle=s,v(s),p.addEventListener("change",()=>v(s));let d=!1;return y.addEventListener("focusin",()=>{d||(d=!0,h(y,l.doc,"focus"))}),y.addEventListener("focusout",i=>{y.contains(i.relatedTarget)||(d=!1,h(y,l.doc,"blur"))}),y},read(c){return u(c).checked},write(c,l){const t=u(c);t.checked=l===!0,v(c.__latToggle)},state(c,l){e(u(c),l.disabled===!0,l.readOnly===!0)},focus(c){const l=u(c);typeof l.focus=="function"&&l.focus()},blur(c){const l=u(c);typeof l.blur=="function"&&l.blur()}})}),Ie("packages/modules/form/controls/date-parse.js",function(S,te){"use strict";Object.defineProperty(S,"parseTypedDate",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"splitTypedTime",{enumerable:!0,get:function(){return A}});const xe=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function H(r){return r.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function L(r,u,v){if(!Number.isInteger(r)||!Number.isInteger(u)||!Number.isInteger(v)||r<1||r>9999||u<1||u>12||v<1)return null;const h=u===2?e(r)?29:28:[4,6,9,11].includes(u)?30:31;return v>h?null:`${String(r).padStart(4,"0")}-${String(u).padStart(2,"0")}-${String(v).padStart(2,"0")}`}function e(r){return r%4===0&&r%100!==0||r%400===0}function E(r){const u=Number(r);return r.length<=2?2e3+u:u}function I(r){const u=new Map;for(let v=1;v<=12;v++){const h=new Date(2001,v-1,15);for(const c of["long","short"]){const l=new Intl.DateTimeFormat(r,{month:c}).format(h),t=new Intl.DateTimeFormat(r,{day:"numeric",month:c}).formatToParts(h).find(p=>p.type==="month");for(const p of[l,t&&t.value]){if(!p)continue;const P=p.toLowerCase();u.set(P,v),P.endsWith(".")&&u.set(P.slice(0,-1),v)}}}return u}function z(r,u,v){const h=new Intl.DateTimeFormat(u,v).formatToParts(new Date(2001,10,22)),c=I(u),l=[];let t="^";for(const y of h)if(y.type==="day")l.push("d"),t+="(\\d{1,2})";else if(y.type==="year"||y.type==="relatedYear")l.push("y"),t+="(\\d{4}|\\d{2})";else if(y.type==="month")if(l.push("m"),/^\d+$/.test(y.value))t+="(\\d{1,2})";else{const V=[...c.keys()].sort((s,d)=>d.length-s.length).map(H);t+=`(${V.join("|")})`}else if(y.type==="literal")t+=y.value.trim()===""?"\\s+":`\\s*${H(y.value.trim())}\\s*`;else if(y.type==="weekday")t+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const p=new RegExp(`${t}$`,"iu").exec(r);if(!p||l.length!==3)return null;const P={};l.forEach((y,V)=>{P[y]=p[V+1]});const o=/^\d+$/.test(P.m)?Number(P.m):c.get(P.m.toLowerCase());return L(E(P.y),o,Number(P.d))}function N(r,u){const h=new Intl.DateTimeFormat(u,{day:"numeric",month:"numeric",year:"numeric"}).formatToParts(new Date(2001,10,22)).filter(p=>p.type==="day"||p.type==="month"||p.type==="year"||p.type==="relatedYear").map(p=>p.type==="day"?"d":p.type==="month"?"m":"y");if(h.length!==3)return null;const c=h.map(p=>p==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),l=new RegExp(`^${c}\\.?$`).exec(r);if(!l)return null;const t={};return h.forEach((p,P)=>{t[p]=l[P+1]}),L(E(t.y),Number(t.m),Number(t.d))}function G(r){const u=h=>{const c=h.toLowerCase().replace(/\.$/,"");return xe.findIndex(t=>t===c||t.slice(0,3)===c||c==="sept"&&t==="september")+1};let v=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(r);return v?u(v[2])?L(Number(v[3]),u(v[2]),Number(v[1])):null:(v=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(r),v&&u(v[1])?L(Number(v[3]),u(v[1]),Number(v[2])):null)}function C(r,u,v){const h=String(r??"").trim().replace(/\s+/g," ");if(!h)return null;const c=v||u&&u.locale||void 0,l={dateStyle:"medium"},t=[()=>z(h,c,l),()=>N(h,c),()=>{const p=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(h);return p?L(Number(p[1]),Number(p[2]),Number(p[3])):null},()=>G(h)];for(const p of t)try{const P=p();if(P)return P}catch{}return null}function A(r){const u=String(r??"").trim(),v=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(u);if(!v)return{date:u,time:null};let h=Number(v[1]);const c=Number(v[2]);if(v[3]){const l=v[3].toLowerCase()==="p";if(h<1||h>12)return{date:u,time:null};h=h%12+(l?12:0)}return h>23||c>59?{date:u,time:null}:{date:u.slice(0,v.index).replace(/[,\s]+$/,""),time:{h,mi:c}}}}),Ie("packages/modules/form/controls/date-shared.js",function(S,te){"use strict";Object.defineProperty(S,"pad",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"echoKey",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"modeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"daysInMonth",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"fieldsOfDate",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"parseValue",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"isoOf",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"displayOf",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"withinRange",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"disabledTestOf",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"weekdayName",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"monthTitle",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"yearTitle",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"dispatchChange",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"is12Hour",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"dayPeriods",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"to24Hour",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"parseDay",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"dayISO",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"dayNumber",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"dayNumberOf",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"dayOfNumber",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"parseMonth",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"monthISO",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"monthIndex",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"monthOfIndex",{enumerable:!0,get:function(){return k}}),Object.defineProperty(S,"isoWeek",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"focusedNavIndex",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"restoreNavFocus",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"afterFocusSettles",{enumerable:!0,get:function(){return b}});const xe=te("packages/modules/form/controls/date-parse.js");Object.defineProperty(S,"parseTypedDate",{enumerable:!0,get:function(){return xe.parseTypedDate}}),Object.defineProperty(S,"splitTypedTime",{enumerable:!0,get:function(){return xe.splitTypedTime}});function H(_){return String(_).padStart(2,"0")}function L(_){return _}function e(_){return _.mode==="date-time"||_.mode==="time"?_.mode:"date"}function E(_,n){return new Date(_,n,0).getDate()}function I(_,n){if(!(n instanceof Date)||Number.isNaN(n.getTime()))return null;const O={y:n.getFullYear(),mo:n.getMonth()+1,d:n.getDate(),h:n.getHours(),mi:n.getMinutes()},ie=_.timeZone;if(!ie)return O;try{const F=new Intl.DateTimeFormat("en-US",{timeZone:ie,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(n),se={y:0,mo:1,d:1,h:0,mi:0};for(const le of F)le.type==="year"?se.y=Number(le.value):le.type==="month"?se.mo=Number(le.value):le.type==="day"?se.d=Number(le.value):le.type==="hour"?se.h=Number(le.value)%24:le.type==="minute"&&(se.mi=Number(le.value));return se}catch{return O}}function z(_,n){if(n==null||n==="")return null;if(typeof n=="number")return I(_,new Date(n));if(n instanceof Date)return I(_,n);if(typeof n=="string"){const O=n.trim();if(e(_)==="time"){const F=/^(\d{1,2}):(\d{2})/.exec(O);return F?{y:null,mo:null,d:null,h:Number(F[1]),mi:Number(F[2])}:null}const ie=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(O);return ie?{y:Number(ie[1]),mo:Number(ie[2]),d:Number(ie[3]),h:ie[4]!=null?Number(ie[4]):0,mi:ie[5]!=null?Number(ie[5]):0}:null}return null}function N(_,n){if(!n)return null;if(e(_)==="time")return`${H(n.h)}:${H(n.mi)}`;const O=`${H(n.y)}-${H(n.mo)}-${H(n.d)}`;return e(_)==="date"?O:`${O}T${H(n.h)}:${H(n.mi)}`}function G(_,n){if(!n)return"";const O=e(_);if(O==="time")return`${H(n.h)}:${H(n.mi)}`;const ie=_.locale||void 0,F={dateStyle:"medium"};return O==="date-time"&&(F.timeStyle="short"),new Intl.DateTimeFormat(ie,F).format(new Date(n.y,n.mo-1,n.d,n.h,n.mi))}function C(_,n){return n==null?!0:!(_.min!=null&&n<String(_.min)||_.max!=null&&n>String(_.max))}function A(_){const O=(_.props&&typeof _.props=="object"?_.props:{}).disabledDates;if(Array.isArray(O)){const ie=new Set(O.map(String));return F=>ie.has(F)}return typeof O=="function"?ie=>O(ie)===!0:null}function r(_,n){return new Intl.DateTimeFormat(_.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+n))}function u(_,n){return new Intl.DateTimeFormat(_.locale||void 0,{month:"long",year:"numeric"}).format(new Date(n.y,n.mo-1,1))}function v(_){return String(_.y)}function h(_){const n=_.ownerDocument&&_.ownerDocument.defaultView,O=n&&typeof n.Event=="function"?n.Event:null;_.dispatchEvent(O?new O("change",{bubbles:!0}):{type:"change",bubbles:!0})}function c(_){try{const n=new Intl.DateTimeFormat(_.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return n==="h11"||n==="h12"}catch{return!1}}function l(_){try{const n=new Intl.DateTimeFormat(_.locale||void 0,{hour:"numeric",hour12:!0}),O=n.formatToParts(new Date(2021,0,1,9)).find(F=>F.type==="dayPeriod"),ie=n.formatToParts(new Date(2021,0,1,15)).find(F=>F.type==="dayPeriod");if(O&&ie)return{am:O.value,pm:ie.value}}catch{}return null}function t(_){const n=_%12;return n===0?12:n}function p(_,n){return n?_===12?12:_+12:_===12?0:_}function P(_){if(typeof _!="string")return null;const n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(_.trim());if(!n)return null;const O={y:Number(n[1]),mo:Number(n[2]),d:Number(n[3])};return O.mo<1||O.mo>12||O.d<1||O.d>E(O.y,O.mo)?null:O}function o(_,n,O){return`${H(_)}-${H(n)}-${H(O)}`}function y(_,n,O){return Date.UTC(_,n-1,O)/864e5}function V(_){const n=P(_);return n?y(n.y,n.mo,n.d):NaN}function s(_){const n=new Date(_*864e5);return{y:n.getUTCFullYear(),mo:n.getUTCMonth()+1,d:n.getUTCDate()}}function d(_){if(typeof _!="string")return null;const n=/^(\d{4})-(\d{2})$/.exec(_.trim());if(!n)return null;const O={y:Number(n[1]),mo:Number(n[2])};return O.mo<1||O.mo>12?null:O}function i(_,n){return`${H(_)}-${H(n)}`}function m(_,n){return _*12+(n-1)}function k(_){return{y:Math.floor(_/12),mo:_%12+1}}function w(_,n,O){const ie=new Date(Date.UTC(_,n-1,O)),F=ie.getUTCDay()||7;ie.setUTCDate(ie.getUTCDate()+4-F);const se=new Date(Date.UTC(ie.getUTCFullYear(),0,1));return Math.ceil(((ie-se)/864e5+1)/7)}function f(_,n){const O=_.ownerDocument,ie=O?O.activeElement:null;return!ie||typeof _.contains!="function"||!_.contains(ie)?-1:Array.prototype.indexOf.call(_.querySelectorAll(`.${n}`),ie)}function $(_,n,O){if(O<0)return;const ie=_.querySelectorAll(`.${n}`)[O];ie&&typeof ie.focus=="function"&&ie.focus()}function b(_,n){const O=_&&_.defaultView;(O&&typeof O.setTimeout=="function"?O.setTimeout.bind(O):setTimeout)(n,0)}}),Ie("packages/modules/form/controls/date-typed.js",function(S,te){"use strict";Object.defineProperty(S,"setTypedError",{enumerable:!0,get:function(){return xe}});function xe(H,L){let e=H.__typedError;if(L==null){e&&(e.hidden=!0),H.__input&&H.__input.removeAttribute("aria-invalid");return}e||(e=H.ownerDocument.createElement("div"),e.className="lat-form__error lat-form__typed-error",e.setAttribute("role","alert"),H.__typedError=e,H.appendChild(e)),e.textContent=L,e.hidden=!1,H.__input&&H.__input.setAttribute("aria-invalid","true")}}),Ie("packages/modules/form/controls/datepicker-draft.js",function(S,te){"use strict";Object.defineProperty(S,"isDraftMode",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"getDraft",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"readDraftClock",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"pickDraftDay",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"commitDraft",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"dropDraft",{enumerable:!0,get:function(){return A}});const xe=te("packages/modules/form/controls/date-shared.js"),H=xe.modeOf,L=xe.displayOf,e=xe.to24Hour,E=xe.isoOf;function I(r){return H(r.__item)==="date-time"}function z(r){if(!r.__draft){const u=r.__fields;r.__draft=u?{y:u.y,mo:u.mo,d:u.d,h:u.h,mi:u.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return r.__draft}function N(r){const u=z(r);if(!r.__hour)return;let v=Number(r.__hour.value)||0;const h=r.__minute&&Number(r.__minute.value)||0;r.__ampm&&(v=e(v,r.__pm===!0)),u.h=v,u.mi=h}function G(r,u,v,h,c){N(r);const l=z(r);l.y=u,l.mo=v,l.d=h,r.__cursor=h,r.__input.value=L(r.__item,l),r.__typedDirty=!1,c(r)}function C(r,u){N(r);const v=z(r);if(v.d==null)return;const h={y:v.y,mo:v.mo,d:v.d,h:v.h,mi:v.mi};E(r.__item,h)!==E(r.__item,r.__fields)&&u(r,h)}function A(r){const u=r.__draft;r.__draft=null,u&&u.d!=null&&I(r)&&(r.__input.value=L(r.__item,r.__fields),r.__typedDirty=!1)}}),Ie("packages/modules/form/controls/datepicker.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/date-shared.js"),z=I.pad,N=I.echoKey,G=I.modeOf,C=I.daysInMonth,A=I.parseValue,r=I.isoOf,u=I.displayOf,v=I.withinRange,h=I.weekdayName,c=I.monthTitle,l=I.dispatchChange,t=I.is12Hour,p=I.dayPeriods,P=I.to12Hour,o=I.to24Hour,y=I.focusedNavIndex,V=I.restoreNavFocus,s=I.afterFocusSettles,d=I.parseTypedDate,i=I.splitTypedTime,m=I.disabledTestOf,k=I.dayISO,w=I.dayNumber,f=I.dayOfNumber,b=te("packages/modules/form/controls/date-typed.js").setTypedError,_=te("packages/modules/form/controls/popup-layer.js"),n=_.openInLayer,O=_.flushOutsideFocus,ie=te("packages/modules/form/controls/datepicker-draft.js"),F=ie.isDraftMode,se=ie.getDraft,le=ie.pickDraftDay,ke=ie.readDraftClock,ce=ie.commitDraft,B=ie.dropDraft,be=Object.freeze(["date","date-time","time"]),q="lat-form__datepicker-popup--above";function D(K,he){K.__fields=he,K.__input.value=u(K.__item,he),K.__typedDirty=!1,ne(K),l(K)}function J(K){const he=K.__fields!=null;return K.__fields=null,K.__draft=null,K.__input.value="",K.__typedDirty=!1,b(K,null),ne(K),he}function ne(K){if(!K.__clear)return;const he=K.__fields!=null&&K.__readOnly!==!0;K.__clear.hidden=!he,K.__input.classList.toggle("lat-form__datepicker-input--with-clear",he)}function oe(K,he){const Ee=K.__item;if(G(Ee)==="time")return A(Ee,he);const{date:T,time:g}=i(he),Q=d(T,Ee);if(!Q)return null;const[M,a,Y]=Q.split("-").map(Number),fe=K.__fields,me=g||(G(Ee)==="date-time"&&fe?{h:fe.h,mi:fe.mi}:{h:0,mi:0});return{y:M,mo:a,d:Y,h:me.h,mi:me.mi}}function ve(K,he,Ee,T){const g=K.__item,Q=r(g,{y:he,mo:Ee,d:T,h:0,mi:0});if(!v(g,Q))return!0;const M=m(g);return!!(M&&M(k(he,Ee,T)))}function pe(K,he){if(he==null||he==="")return!1;const Ee=A(K,he);if(!Ee||Ee.y==null||Ee.d==null)return!1;const T=m(K);return!!(T&&T(k(Ee.y,Ee.mo,Ee.d)))}function x(K,he,Ee,T){const g=C(he,Ee);for(let Q=T>0?1:g;T>0?Q<=g:Q>=1;Q+=T)if(!ve(K,he,Ee,Q))return Q;return null}function W(K){if(!ve(K,K.__view.y,K.__view.mo,K.__cursor))return;let he=w(K.__view.y,K.__view.mo,K.__cursor);for(let Ee=0;Ee<400;Ee+=1){he+=1;const T=f(he);if(!ve(K,T.y,T.mo,T.d)){K.__view={y:T.y,mo:T.mo},K.__cursor=T.d;return}}}function U(K,he){let Ee=w(K.__view.y,K.__view.mo,K.__cursor)+he,T=f(Ee);for(let g=0;ve(K,T.y,T.mo,T.d)&&g<400;g+=1)Ee+=he,T=f(Ee);K.__view={y:T.y,mo:T.mo},K.__cursor=T.d,j(K)}function j(K){const he=K.__item,Ee=K.ownerDocument,T=K.__popup,g=K.__view,Q=G(he),M=K.__fields,a=y(T,"lat-form__datepicker-nav"),Y=y(T,"lat-form__datepicker-day");for(;T.firstChild;)T.removeChild(T.firstChild);if(Q!=="time"){const fe=Ee.createElement("div");fe.className="lat-form__datepicker-head";const me=Ee.createElement("button");me.type="button",me.className="lat-form__datepicker-nav",me.setAttribute("aria-label",K.__t("form.datepicker.prev")),me.textContent="‹",me.addEventListener("click",()=>{Z(K,-1)});const Ae=Ee.createElement("span");Ae.className="lat-form__datepicker-title",Ae.textContent=c(he,g);const ue=Ee.createElement("button");ue.type="button",ue.className="lat-form__datepicker-nav",ue.setAttribute("aria-label",K.__t("form.datepicker.next")),ue.textContent="›",ue.addEventListener("click",()=>{Z(K,1)}),fe.appendChild(me),fe.appendChild(Ae),fe.appendChild(ue),T.appendChild(fe);const Pe=Ee.createElement("div");Pe.className="lat-form__datepicker-weekdays";for(let Ne=0;Ne<7;Ne+=1){const Me=Ee.createElement("span");Me.textContent=h(he,Ne),Pe.appendChild(Me)}T.appendChild(Pe);const Se=Ee.createElement("div");Se.className="lat-form__datepicker-grid",Se.setAttribute("role","grid"),Se.tabIndex=0,K.__grid=Se;const Be=new Date(g.y,g.mo-1,1).getDay();for(let Ne=0;Ne<Be;Ne+=1){const Me=Ee.createElement("span");Me.className="lat-form__datepicker-blank",Se.appendChild(Me)}const Te=C(g.y,g.mo);for(let Ne=1;Ne<=Te;Ne+=1){const Me=Ee.createElement("button");Me.type="button",Me.className="lat-form__datepicker-day",Me.setAttribute("role","gridcell"),Me.textContent=String(Ne),ve(K,g.y,g.mo,Ne)&&(Me.disabled=!0),M&&M.y===g.y&&M.mo===g.mo&&M.d===Ne&&Me.classList.add("is-selected"),K.__cursor===Ne&&Me.classList.add("is-focus"),Me.addEventListener("click",()=>{if(ve(K,g.y,g.mo,Ne))return;if(F(K)){le(K,g.y,g.mo,Ne,j);return}const Oe={y:g.y,mo:g.mo,d:Ne,h:M?M.h:0,mi:M?M.mi:0};Q==="date"?(K.__cursor=Ne,D(K,Oe),$e(K)):(K.__cursor=Ne,K.__fields=Oe,j(K))}),Se.appendChild(Me)}T.appendChild(Se),Se.addEventListener("keydown",Ne=>{if(Ne.key==="ArrowLeft")Ne.preventDefault(),U(K,-1);else if(Ne.key==="ArrowRight")Ne.preventDefault(),U(K,1);else if(Ne.key==="ArrowUp")Ne.preventDefault(),U(K,-7);else if(Ne.key==="ArrowDown")Ne.preventDefault(),U(K,7);else if(Ne.key==="Home"){Ne.preventDefault();const Me=x(K,g.y,g.mo,1);Me!=null&&(K.__cursor=Me),j(K)}else if(Ne.key==="End"){Ne.preventDefault();const Me=x(K,g.y,g.mo,-1);Me!=null&&(K.__cursor=Me),j(K)}else(Ne.key==="Enter"||Ne.key===" ")&&(Ne.preventDefault(),X(K))})}if(Q!=="date"){const fe=t(he)?p(he):null,me=!!fe,Ae=Ee.createElement("div");Ae.className="lat-form__datepicker-time";const ue=Ee.createElement("input");ue.type="number",ue.className="lat-form__datepicker-hour",ue.min=me?"1":"0",ue.max=me?"12":"23",ue.step="1",ue.setAttribute("aria-label",K.__t("form.datepicker.hour"));const Pe=Ee.createElement("span");Pe.textContent=":";const Se=Ee.createElement("input");if(Se.type="number",Se.className="lat-form__datepicker-minute",Se.min="0",Se.max="59",Se.step="1",Se.setAttribute("aria-label",K.__t("form.datepicker.minute")),Ae.appendChild(ue),Ae.appendChild(Pe),Ae.appendChild(Se),T.appendChild(Ae),K.__hour=ue,K.__minute=Se,ue.addEventListener("change",()=>{ae(K)}),Se.addEventListener("change",()=>{ae(K)}),F(K)&&se(K),K.__periods=fe,K.__ampm=null,me){const Te=Ee.createElement("button");Te.type="button",Te.className="lat-form__datepicker-ampm",K.__ampm=Te;const Ne=()=>{K.__pm=!K.__pm,Te.textContent=K.__pm?K.__periods.pm:K.__periods.am,ae(K)};Te.addEventListener("click",Ne),Ae.appendChild(Te)}const Be=Ee.createElement("button");Be.type="button",Be.className="lat-form__datepicker-done",Be.textContent=K.__t("form.datepicker.done"),Be.addEventListener("click",()=>{re(K)}),Ae.appendChild(Be)}ee(K),V(T,"lat-form__datepicker-nav",a),V(T,"lat-form__datepicker-day",Y)}function Z(K,he){let{y:Ee,mo:T}=K.__view;T+=he,T<1&&(T=12,Ee-=1),T>12&&(T=1,Ee+=1),K.__view={y:Ee,mo:T},K.__cursor=Math.min(K.__cursor,C(Ee,T)),j(K)}function ae(K){if(F(K)){ke(K),ee(K);return}const he=K.__fields;let Ee=K.__hour&&Number(K.__hour.value)||0;const T=K.__minute&&Number(K.__minute.value)||0;K.__ampm&&(Ee=o(Ee,K.__pm===!0));const g=G(K.__item)==="time"?{y:null,mo:null,d:null,h:Ee,mi:T}:{y:he?he.y:K.__view.y,mo:he?he.mo:K.__view.mo,d:he?he.d:K.__cursor,h:Ee,mi:T};if(K.__cursor=he?he.d:K.__cursor,he&&r(K.__item,g)===r(K.__item,he)){ee(K);return}D(K,g),ee(K)}function re(K){if(K.__popup.hidden)return;K.__typedDirty&&R(K)?l(K):F(K)?ce(K,D):G(K.__item)!=="date"&&ae(K),$e(K)}function R(K){const he=K.__item,Ee=K.__input,T=Ee.value;if(String(T).trim()==="")return K.__fields==null||K.__readOnly===!0?(Ee.value=u(he,K.__fields),K.__typedDirty=!1,!1):(K.__typedDirty=!1,J(K));const g=r(he,K.__fields),Q=oe(K,T);return Q?(b(K,null),K.__fields=Q,K.__draft=null,Ee.value=u(he,Q),K.__typedDirty=!1,ne(K),K.__hour&&ee(K),r(he,Q)!==g):(Ee.value=u(he,K.__fields),K.__typedDirty=!1,b(K,K.__t("form.datepicker.invalid")),!1)}function ee(K){const he=F(K)?se(K):K.__fields,Ee=K.__ampm&&K.__periods;if(K.__hour){const T=he?he.h:0;K.__hour.value=z(Ee?P(T):T)}K.__minute&&(K.__minute.value=z(he?he.mi:0)),K.__ampm&&K.__periods&&(K.__pm=he?he.h>=12:!1,K.__ampm.textContent=K.__pm?K.__periods.pm:K.__periods.am)}function X(K){const he=K.__view;if(ve(K,he.y,he.mo,K.__cursor))return;if(F(K)){le(K,he.y,he.mo,K.__cursor,j);return}const Ee=K.__fields,T={y:he.y,mo:he.mo,d:K.__cursor,h:Ee?Ee.h:0,mi:Ee?Ee.mi:0};D(K,T),$e(K)}function ge(K){if(K.__popup.hidden===!1||K.__item.disabled===!0||K.__item.readOnly===!0)return;const he=K.__fields,Ee=new Date;K.__view=he&&he.y!=null?{y:he.y,mo:he.mo}:{y:Ee.getFullYear(),mo:Ee.getMonth()+1},K.__cursor=he&&he.d!=null?he.d:Ee.getDate(),W(K),K.__popup.hidden=!1,j(K),K.__layer=n(K.__popup,K,{aboveClass:q,matchWidth:!1,onOffscreen:()=>$e(K)})}function $e(K){B(K),K.__popup.hidden=!0,K.__popup.classList.remove(q),K.__layer&&(K.__layer.close(),K.__layer=null)}H("datepicker",{kind:"field",build(K,he){const Ee=he.doc;E(Ee);const T=Ee.createElement("div");T.className="lat-form__datepicker",T.__item=K,T.__t=he.t||N,T.__mode=G(K),T.__readOnly=K.readOnly===!0,T.__fields=A(K,K.value),T.__cursor=T.__fields&&T.__fields.d!=null?T.__fields.d:new Date().getDate(),T.__view=T.__fields&&T.__fields.y!=null?{y:T.__fields.y,mo:T.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const g=Ee.createElement("input");g.type="text",g.className="lat-form__datepicker-input",K.name&&(g.name=K.name),K.placeholder!=null&&(g.placeholder=String(K.placeholder)),K.label!=null&&K.label!==""&&g.setAttribute("aria-label",String(K.label)),g.setAttribute("autocomplete","off"),g.value=u(K,T.__fields),T.__input=g,T.__typedDirty=!1,g.addEventListener("input",()=>{T.__typedDirty=!0});const Q=Ee.createElement("button");Q.type="button",Q.className="lat-form__datepicker-toggle";const M=G(K)==="date";Q.setAttribute("aria-label",T.__t(M?"form.datepicker.open":"form.datepicker.openTime"));const a=e(Ee,M?"calendar":"clock");if(a&&Q.appendChild(a),T.__toggle=Q,K.props&&K.props.clearable===!0){const ue=Ee.createElement("button");ue.type="button",ue.className="lat-form__datepicker-clear",ue.setAttribute("aria-label",T.__t("form.datepicker.clear")),ue.hidden=!0;const Pe=e(Ee,"close");Pe&&ue.appendChild(Pe),T.__clear=ue,ue.addEventListener("click",()=>{T.__readOnly!==!0&&($e(T),J(T)&&l(T),T.__input.focus())})}const Y=Ee.createElement("div");Y.className="lat-form__datepicker-popup lat-form__datepicker",Y.hidden=!0,T.__popup=Y,T.appendChild(g),T.appendChild(Q),T.__clear&&T.appendChild(T.__clear),T.appendChild(Y),g.addEventListener("focus",()=>{ge(T)}),Q.addEventListener("pointerdown",()=>{O(T,Y)}),Q.addEventListener("click",()=>{ge(T)}),g.addEventListener("change",ue=>{R(T)||ue.stopPropagation()}),g.addEventListener("keydown",ue=>{ue.key==="Escape"?$e(T):ue.key==="Enter"&&T.__fields!=null&&String(g.value).trim()===""&&T.__readOnly!==!0&&(ue.preventDefault(),$e(T),J(T)&&l(T))}),T.__ampm=null,T.__periods=null,T.__pm=!1;const fe=ue=>{T.contains(ue.target)||Y.contains(ue.target)||re(T)},me=ue=>{if((T.contains(ue.target)||Y.contains(ue.target))&&!(ue.relatedTarget&&(T.contains(ue.relatedTarget)||Y.contains(ue.relatedTarget)))){if(!ue.relatedTarget){s(Ee,()=>{if(Y.hidden)return;const Se=Ee.activeElement;Se&&(T.contains(Se)||Y.contains(Se))||re(T)});return}re(T)}},Ae=ue=>{ue.key==="Escape"&&(ue.preventDefault(),re(T),T.__toggle.focus())};return Ee.addEventListener("pointerdown",fe),Ee.addEventListener("focusout",me),Y.addEventListener("keydown",Ae),Array.isArray(he.disposers)&&he.disposers.push(()=>{$e(T),Ee.removeEventListener("pointerdown",fe),Ee.removeEventListener("focusout",me),Y.removeEventListener("keydown",Ae)}),T},read(K){return r(K.__item,K.__fields)},write(K,he){b(K,null),K.__fields=A(K.__item,he),K.__draft=null,K.__input.value=u(K.__item,K.__fields),K.__typedDirty=!1,ne(K),K.__fields&&K.__fields.y!=null&&(K.__view={y:K.__fields.y,mo:K.__fields.mo},K.__cursor=K.__fields.d),K.__hour&&!K.__popup.hidden&&ee(K)},state(K,he){K.__input.disabled=he.disabled===!0,K.__input.readOnly=he.readOnly===!0,K.__toggle.disabled=he.disabled===!0||he.readOnly===!0,K.__readOnly=he.readOnly===!0,ne(K)},validate(K,he,Ee){return v(he,Ee)?pe(he,Ee)?typeof he.errorMessage=="string"&&he.errorMessage!==""?he.errorMessage:K.__t("form.datepicker.disabled"):!0:typeof he.errorMessage=="string"&&he.errorMessage!==""?he.errorMessage:!1},live:{disabledDates(K){K.__popup&&K.__popup.hidden===!1&&j(K)}},focus(K){K.__input.focus()}})}),Ie("packages/modules/form/controls/time.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/date-shared.js"),z=I.pad,N=I.echoKey,G=I.fieldsOfDate,C=I.to12Hour,A=I.to24Hour,r=I.withinRange,u=I.dispatchChange,h=te("packages/modules/form/controls/popup-layer.js").openInLayer,c="lat-form__time-popup--above";function l(n){return!!(n.props&&n.props.timeFormat===12)}function t(n){return!!(n.props&&n.props.valueFormat==="object")}function p(n){return!!(n.props&&n.props.editable===!0)}function P(n){return!!(n.props&&n.props.controls===!0)}function o(n){const O=n.props&&n.props.icon;return typeof O=="string"&&O!==""?O:"clock"}function y(n,O){if(typeof O!="string")return null;const ie=O.trim(),F=/^(\d{1,2}):(\d{2})$/.exec(ie);if(F){const se=Number(F[1]),le=Number(F[2]);return se>23||le>59?null:{h:se,mi:le}}if(l(n)){const se=/^(\d{1,2}):(\d{2})\s*([ap])\.?m\.?$/i.exec(ie);if(!se)return null;const le=Number(se[1]),ke=Number(se[2]);return le<1||le>12||ke>59?null:{h:A(le,se[3].toLowerCase()==="p"),mi:ke}}return null}function V(n,O){if(O==null||O==="")return null;if(typeof O=="number"){if(!Number.isFinite(O))return null;const ie=O%1440,F=ie<0?ie+1440:ie;return{h:Math.floor(F/60),mi:Math.round(F%60)}}if(O instanceof Date){const ie=G(n,O);return ie?{h:ie.h,mi:ie.mi}:null}if(typeof O=="string")return y(n,O);if(typeof O=="object"){const ie=Number(O.hour),F=Number(O.minute);return!Number.isFinite(ie)||!Number.isFinite(F)||F<0||F>59?null:l(n)?ie<1||ie>12?null:{h:A(ie,O.AM!==!0),mi:F}:ie<0||ie>23?null:{h:ie,mi:F}}return null}function s(n,O,ie){return O?l(n)?`${z(C(O.h))}:${z(O.mi)} ${O.h<12?ie.am:ie.pm}`:`${z(O.h)}:${z(O.mi)}`:""}function d(n,O,ie){return O?t(n)?l(n)?{hour:C(O.h),minute:O.mi,AM:O.h<12}:{hour:O.h,minute:O.mi}:s(n,O,ie):null}function i(n){const O=n.__item,ie=n.ownerDocument,F=n.__popup;for(;F.firstChild;)F.removeChild(F.firstChild);const se=ie.createElement("div");se.className="lat-form__time-row";const le=ie.createElement("input");le.type="number",le.className="lat-form__time-hour",le.min=n.__twelve?"1":"0",le.max=n.__twelve?"12":"23",le.step="1",le.setAttribute("aria-label",n.__t("form.datepicker.hour"));const ke=ie.createElement("span");ke.className="lat-form__time-colon",ke.textContent=":";const ce=ie.createElement("input");if(ce.type="number",ce.className="lat-form__time-minute",ce.min="0",ce.max="59",ce.step="1",ce.setAttribute("aria-label",n.__t("form.datepicker.minute")),se.appendChild(le),se.appendChild(ke),se.appendChild(ce),F.appendChild(se),n.__hour=le,n.__minute=ce,le.addEventListener("change",()=>{k(n)}),ce.addEventListener("change",()=>{k(n)}),n.__ampm=null,n.__twelve){const be=ie.createElement("button");be.type="button",be.className="lat-form__time-ampm",be.addEventListener("click",()=>{n.__pm=!n.__pm,be.textContent=n.__pm?n.__labels.pm:n.__labels.am,k(n)}),se.appendChild(be),n.__ampm=be}const B=ie.createElement("div");if(B.className="lat-form__time-actions",P(O)){const be=ie.createElement("button");be.type="button",be.className="lat-form__time-close",be.textContent=n.__t("form.time.close"),be.addEventListener("click",()=>{b(n)}),B.appendChild(be);const q=ie.createElement("button");q.type="button",q.className="lat-form__time-save",q.textContent=n.__t("form.time.save"),q.addEventListener("click",()=>{f(n)}),B.appendChild(q)}else{const be=ie.createElement("button");be.type="button",be.className="lat-form__time-done",be.textContent=n.__t("form.datepicker.done"),be.addEventListener("click",()=>{w(n)}),B.appendChild(be)}F.appendChild(B),m(n)}function m(n){const O=n.__draft||{h:0,mi:0};n.__hour&&(n.__hour.value=z(n.__twelve?C(O.h):O.h)),n.__minute&&(n.__minute.value=z(O.mi)),n.__ampm&&(n.__pm=O.h>=12,n.__ampm.textContent=n.__pm?n.__labels.pm:n.__labels.am)}function k(n){const O=n.__hour&&Number(n.__hour.value)||0,ie=n.__minute&&Number(n.__minute.value)||0,F={h:n.__ampm?A(O,n.__pm===!0):O,mi:ie};if(n.__draft=F,P(n.__item)){m(n);return}n.__fields=F,n.__input.value=s(n.__item,F,n.__labels),n.__lastText=s(n.__item,F,n.__labels),u(n),n.__draft=n.__fields,m(n)}function w(n){n.__popup.hidden||(P(n.__item)||k(n),b(n))}function f(n){const O=n.__draft||{h:0,mi:0};n.__fields=O,n.__input.value=s(n.__item,O,n.__labels),n.__lastText=s(n.__item,O,n.__labels),u(n),b(n)}function $(n){n.__popup.hidden!==!1&&(n.__item.disabled===!0||n.__item.readOnly===!0||(n.__draft=n.__fields?{h:n.__fields.h,mi:n.__fields.mi}:{h:0,mi:0},n.__pm=n.__draft.h>=12,n.__popup.hidden=!1,i(n),n.__layer=h(n.__popup,n,{aboveClass:c,matchWidth:!1,onOffscreen:()=>b(n)})))}function b(n){n.__popup.hidden=!0,n.__popup.classList.remove(c),n.__layer&&(n.__layer.close(),n.__layer=null)}function _(n){if(!n.__editable)return;const O=n.__input.value.trim();if(O===n.__lastText)return;const ie=y(n.__item,O);ie&&(n.__fields=ie,n.__input.value=s(n.__item,ie,n.__labels),n.__lastText=s(n.__item,ie,n.__labels)),u(n)}H("time",{kind:"field",build(n,O){const ie=O.doc;E(ie);const F=ie.createElement("div");F.className="lat-form__time",F.__item=n,F.__t=O.t||N,F.__twelve=l(n),F.__object=t(n),F.__editable=p(n),F.__labels={am:F.__t("form.time.am"),pm:F.__t("form.time.pm")},F.__fields=V(n,n.value),F.__draft=F.__fields?{h:F.__fields.h,mi:F.__fields.mi}:null;const se=ie.createElement("input");se.type="text",se.className="lat-form__time-input",n.name&&(se.name=n.name),n.placeholder!=null&&(se.placeholder=String(n.placeholder)),n.label!=null&&n.label!==""&&se.setAttribute("aria-label",String(n.label)),se.setAttribute("autocomplete","off"),se.readOnly=!F.__editable,se.value=s(n,F.__fields,F.__labels),F.__input=se,F.__lastText=se.value;const le=ie.createElement("button");le.type="button",le.className="lat-form__time-toggle",le.setAttribute("aria-label",F.__t("form.time.open"));const ke=e(ie,o(n));ke&&le.appendChild(ke),F.__toggle=le;const ce=ie.createElement("div");ce.className="lat-form__time-popup lat-form__time",ce.hidden=!0,F.__popup=ce,F.appendChild(se),F.appendChild(le),F.appendChild(ce),se.addEventListener("focus",()=>{F.__editable||$(F)}),le.addEventListener("click",()=>{$(F)}),se.addEventListener("change",D=>{D.stopPropagation(),_(F)}),se.addEventListener("keydown",D=>{D.key==="Enter"&&F.__editable?(D.preventDefault(),_(F)):D.key==="Escape"?b(F):D.altKey&&D.key==="ArrowDown"&&(D.preventDefault(),$(F))});const B=D=>{F.contains(D.target)||ce.contains(D.target)||w(F)},be=D=>{(F.contains(D.target)||ce.contains(D.target))&&(D.relatedTarget&&(F.contains(D.relatedTarget)||ce.contains(D.relatedTarget))||w(F))},q=D=>{D.key==="Escape"&&(D.preventDefault(),w(F),F.__toggle.focus())};return ie.addEventListener("pointerdown",B),ie.addEventListener("focusout",be),ce.addEventListener("keydown",q),Array.isArray(O.disposers)&&O.disposers.push(()=>{b(F),ie.removeEventListener("pointerdown",B),ie.removeEventListener("focusout",be),ce.removeEventListener("keydown",q)}),F},read(n){const O=n.__input.value.trim();if(O==="")return null;const ie=y(n.__item,O);return ie?d(n.__item,ie,n.__labels):O},write(n,O){n.__fields=V(n.__item,O),n.__input.value=s(n.__item,n.__fields,n.__labels),n.__lastText=s(n.__item,n.__fields,n.__labels),n.__draft=n.__fields?{h:n.__fields.h,mi:n.__fields.mi}:null},state(n,O){n.__input.disabled=O.disabled===!0,n.__input.readOnly=O.readOnly===!0||!n.__editable,n.__toggle.disabled=O.disabled===!0||O.readOnly===!0},validate(n,O,ie){if(ie==null)return!0;const F=V(O,ie);return F?r(O,`${z(F.h)}:${z(F.mi)}`)?!0:typeof O.errorMessage=="string"&&O.errorMessage!==""?O.errorMessage:!1:typeof O.errorMessage=="string"&&O.errorMessage!==""?O.errorMessage:n.__t("form.time.invalid")},focus(n){n.__input.focus()}})}),Ie("packages/modules/form/controls/daterange.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/date-shared.js"),z=I.echoKey,N=I.daysInMonth,G=I.weekdayName,C=I.monthTitle,A=I.yearTitle,r=I.dispatchChange,u=I.parseDay,v=I.dayISO,h=I.dayNumber,c=I.dayNumberOf,l=I.dayOfNumber,t=I.parseMonth,p=I.monthISO,P=I.monthIndex,o=I.monthOfIndex,y=I.isoWeek,V=I.focusedNavIndex,s=I.restoreNavFocus,d=I.afterFocusSettles,i=I.parseTypedDate,m=I.disabledTestOf,w=te("packages/modules/form/controls/date-typed.js").setTypedError,f=" – ";function $(g){return g.props&&g.props.granularity==="month"?"month":"day"}function b(g){return g.props&&typeof g.props=="object"?g.props:{}}function _(g){return b(g).applyButton!==!1}function n(g){return b(g).weekNumbers===!0}function O(g){return b(g).clearable===!0}function ie(g){const Q=b(g).firstDay;if(Q!=null){const M=Number(Q);if(Number.isFinite(M))return(M%7+7)%7}try{const M=new Intl.Locale(g.locale||void 0).weekInfo;if(M&&M.firstDay)return M.firstDay%7}catch{}return 0}function F(g,Q){return g.min!=null&&Q<String(g.min)||g.max!=null&&Q>String(g.max)}function se(g,Q,M){return!!(F(g,Q)||M&&M(Q))}function le(g,Q,M){if(g==null||Q==null)return null;if(M==="month"){const fe=t(g),me=t(Q);return!fe||!me?null:P(me.y,me.mo)-P(fe.y,fe.mo)}const a=c(g),Y=c(Q);return Number.isNaN(a)||Number.isNaN(Y)?null:Y-a}function ke(g,Q){return $(g)==="month"?Q("form.daterange.months"):Q("form.daterange.days")}function ce(g,Q){if($(g)==="month")return[{label:Q("form.daterange.monthThisMonth"),range:a=>[p(a.getFullYear(),a.getMonth()+1),p(a.getFullYear(),a.getMonth()+1)]},{label:Q("form.daterange.monthLastMonth"),range:a=>{const Y=o(P(a.getFullYear(),a.getMonth()+1)-1);return[p(Y.y,Y.mo),p(Y.y,Y.mo)]}},{label:Q("form.daterange.monthLast3"),range:a=>{const Y=P(a.getFullYear(),a.getMonth()+1),fe=o(Y-2),me=o(Y);return[p(fe.y,fe.mo),p(me.y,me.mo)]}},{label:Q("form.daterange.monthLast6"),range:a=>{const Y=P(a.getFullYear(),a.getMonth()+1),fe=o(Y-5),me=o(Y);return[p(fe.y,fe.mo),p(me.y,me.mo)]}},{label:Q("form.daterange.monthLast12"),range:a=>{const Y=P(a.getFullYear(),a.getMonth()+1),fe=o(Y-11),me=o(Y);return[p(fe.y,fe.mo),p(me.y,me.mo)]}},{label:Q("form.daterange.monthThisYear"),range:a=>[p(a.getFullYear(),1),p(a.getFullYear(),12)]},{label:Q("form.daterange.monthLastYear"),range:a=>[p(a.getFullYear()-1,1),p(a.getFullYear()-1,12)]}];const M=a=>v(a.getFullYear(),a.getMonth()+1,a.getDate());return[{label:Q("form.daterange.today"),range:a=>[M(a),M(a)]},{label:Q("form.daterange.yesterday"),range:a=>{const Y=l(h(a.getFullYear(),a.getMonth()+1,a.getDate())-1);return[v(Y.y,Y.mo,Y.d),v(Y.y,Y.mo,Y.d)]}},{label:Q("form.daterange.last7"),range:a=>{const Y=h(a.getFullYear(),a.getMonth()+1,a.getDate()),fe=l(Y-6);return[v(fe.y,fe.mo,fe.d),M(a)]}},{label:Q("form.daterange.last30"),range:a=>{const Y=h(a.getFullYear(),a.getMonth()+1,a.getDate()),fe=l(Y-29);return[v(fe.y,fe.mo,fe.d),M(a)]}},{label:Q("form.daterange.thisMonth"),range:a=>[v(a.getFullYear(),a.getMonth()+1,1),v(a.getFullYear(),a.getMonth()+1,N(a.getFullYear(),a.getMonth()+1))]},{label:Q("form.daterange.lastMonth"),range:a=>{const Y=o(P(a.getFullYear(),a.getMonth()+1)-1);return[v(Y.y,Y.mo,1),v(Y.y,Y.mo,N(Y.y,Y.mo))]}}]}function B(g,Q){const M=b(g).presets;return M===!1?null:Array.isArray(M)&&M.length?M.map(a=>({label:a&&a.label!=null?String(a.label):"",range:a&&a.range!=null?a.range:["",""]})):ce(g,Q)}function be(g,Q){return g==null&&Q==null?"":Q==null?`${g}${f}`:`${g}${f}${Q}`}function q(g,Q){const M=String(Q??"").trim();if(!M)return{start:null,end:null};if($(g)!=="month"){const ue=M.split(/\s+[–—-]\s+|\s+to\s+/i).map(Pe=>i(Pe,g));if(ue.length<=2&&ue.every(Pe=>Pe)){const[Pe,Se=null]=ue;return Se&&Pe>Se?{start:Se,end:Pe}:{start:Pe,end:Se}}}const a=$(g)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,Y=[];let fe;for(;(fe=a.exec(M))!==null;)Y.push(fe[1]);if(Y.length===0)return null;const me=Y[0],Ae=Y.length>1?Y[Y.length-1]:null;if($(g)==="month"){if(!t(me)||Ae&&!t(Ae))return null}else if(!u(me)||Ae&&!u(Ae))return null;return Ae&&me>Ae?{start:Ae,end:me}:{start:me,end:Ae}}function D(g,Q){return new Intl.DateTimeFormat(g.locale||void 0,{month:"short"}).format(new Date(2021,Q-1,1))}function J(g){const Q=g.__draftStart,M=g.__draftEnd;return Q!=null&&M!=null?[Q,M]:Q!=null&&g.__hover!=null&&g.__granularity==="day"?[Q,g.__hover]:Q!=null&&g.__hover!=null&&g.__granularity==="month"?[Q,g.__hover]:null}function ne(g,Q){return g>=Q[0]&&g<=Q[1]}function oe(g,Q){if(g.__granularity==="month"){const Y=P(g.__cursor.y,g.__cursor.mo)+Q,fe=o(Y);g.__cursor=fe,ve(g),K(g);return}const M=h(g.__cursor.y,g.__cursor.mo,g.__cursor.d)+Q,a=l(M);g.__cursor=a,ve(g),K(g)}function ve(g){if(g.__granularity==="month"){g.__cursor.y<g.__view.y?g.__view={y:g.__cursor.y}:g.__cursor.y>g.__view.y+1&&(g.__view={y:g.__cursor.y-1});return}const M=P(g.__cursor.y,g.__cursor.mo),a=P(g.__view.y,g.__view.mo);M<a?g.__view={y:g.__cursor.y,mo:g.__cursor.mo}:M>a+1&&(g.__view=o(M-1))}function pe(g,Q){if(g.__granularity==="month"){g.__view={y:g.__view.y+Q},K(g);return}const M=P(g.__view.y,g.__view.mo)+Q,a=o(M);g.__view=a,K(g)}function x(g,Q){return g&&Q&&g.y===Q.y&&g.mo===Q.mo&&(g.d==null||g.d===Q.d)}function W(g,Q){return g.__granularity==="month"?p(Q.y,Q.mo):v(Q.y,Q.mo,Q.d)}function U(g,Q){const M=W(g,Q);g.__phase!=="started"?(g.__draftStart=M,g.__draftEnd=null,g.__phase="started"):M<g.__draftStart?(g.__draftStart=M,g.__draftEnd=null):(g.__draftEnd=M,g.__phase="idle",_(g.__item)||j(g,!0)),g.__cursor=Q,g.__hover=null,K(g)}function j(g,Q){g.__start=g.__draftStart,g.__end=g.__draftEnd,g.__phase="idle",g.__input.value=be(g.__start,g.__end),r(g),Q&&T(g)}function Z(g){g.__draftStart=g.__start,g.__draftEnd=g.__end,g.__phase="idle",g.__hover=null,T(g)}function ae(g){g.__start=null,g.__end=null,g.__draftStart=null,g.__draftEnd=null,g.__phase="idle",g.__input.value="",r(g)}function re(g,Q,M){for(;M.firstChild;)M.removeChild(M.firstChild);const a=m(g.__item);if(g.__granularity==="month")ge(g,Q,M,g.__view.y,a),ge(g,Q,M,g.__view.y+1,a);else{R(g,Q,M,g.__view.y,g.__view.mo,a);const Y=o(P(g.__view.y,g.__view.mo)+1);R(g,Q,M,Y.y,Y.mo,a)}}function R(g,Q,M,a,Y,fe){const me=g.__item,Ae=Q.createElement("div");Ae.className="lat-form__daterange-panel";const ue=Q.createElement("div");ue.className="lat-form__daterange-title",ue.textContent=C(me,{y:a,mo:Y}),Ae.appendChild(ue);const Pe=ie(me),Se=n(me),Be=Q.createElement("div");if(Be.className=Se?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Se){const Fe=Q.createElement("span");Fe.className="lat-form__daterange-weeknum-head",Be.appendChild(Fe)}for(let Fe=0;Fe<7;Fe+=1){const Ge=Q.createElement("span");Ge.textContent=G(me,(Pe+Fe)%7),Be.appendChild(Ge)}Ae.appendChild(Be);const Te=Q.createElement("div");Te.className=Se?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",Te.setAttribute("role","grid"),Te.setAttribute("aria-label",C(me,{y:a,mo:Y})),Te.tabIndex=0,Ae.appendChild(Te);const Me=(new Date(a,Y-1,1).getDay()-Pe+7)%7,Oe=N(a,Y),He=h(a,Y,1)-Me,Re=[];for(let Fe=0;Fe<Me;Fe+=1){Se&&Fe%7===0&&Te.appendChild(ee(g,Q,He));const Ge=Q.createElement("span");Ge.className="lat-form__daterange-blank",Te.appendChild(Ge)}for(let Fe=1;Fe<=Oe;Fe+=1){Se&&(Me+Fe-1)%7===0&&Te.appendChild(ee(g,Q,He+(Me+Fe-1)));const Ge=X(g,Q,a,Y,Fe,fe);Re.push(Ge),Te.appendChild(Ge)}$e(g,Te,Re),M.appendChild(Ae)}function ee(g,Q,M){const a=Q.createElement("span");a.className="lat-form__daterange-weeknum";const Y=new Date(M*864e5),fe=M-(Y.getUTCDay()+6)%7,me=new Date(fe*864e5);return a.textContent=String(y(me.getUTCFullYear(),me.getUTCMonth()+1,me.getUTCDate())),a}function X(g,Q,M,a,Y,fe){const me=v(M,a,Y),Ae=Q.createElement("button");Ae.type="button",Ae.className="lat-form__daterange-day",Ae.setAttribute("role","gridcell"),Ae.textContent=String(Y);const ue=J(g),Pe=ue?ne(me,ue):!1,Se=se(g.__item,me,fe);return Se&&(Ae.disabled=!0),Pe&&Ae.classList.add("is-in-range"),g.__draftStart===me&&Ae.classList.add("is-start"),g.__draftEnd===me&&Ae.classList.add("is-end"),Ae.setAttribute("aria-selected",Pe&&!Se?"true":"false"),g.__cursor&&g.__cursor.y===M&&g.__cursor.mo===a&&g.__cursor.d===Y&&Ae.classList.add("is-focus"),Ae.addEventListener("click",()=>{U(g,{y:M,mo:a,d:Y})}),Ae.addEventListener("mouseover",()=>{g.__draftStart!=null&&g.__draftEnd==null&&!Se&&g.__hover!==me&&(g.__hover=me,K(g))}),Ae}function ge(g,Q,M,a,Y){const fe=g.__item,me=Q.createElement("div");me.className="lat-form__daterange-panel";const Ae=Q.createElement("div");Ae.className="lat-form__daterange-title",Ae.textContent=A({y:a}),me.appendChild(Ae);const ue=Q.createElement("div");ue.className="lat-form__daterange-grid lat-form__daterange-grid--months",ue.setAttribute("role","grid"),ue.setAttribute("aria-label",A({y:a})),me.appendChild(ue);const Pe=[];for(let Se=1;Se<=12;Se+=1){const Be=p(a,Se),Te=Q.createElement("button");Te.type="button",Te.className="lat-form__daterange-month",Te.setAttribute("role","gridcell"),Te.textContent=D(fe,Se);const Ne=J(g),Me=Ne?ne(Be,Ne):!1,Oe=se(fe,Be,Y);Oe&&(Te.disabled=!0),Me&&Te.classList.add("is-in-range"),g.__draftStart===Be&&Te.classList.add("is-start"),g.__draftEnd===Be&&Te.classList.add("is-end"),Te.setAttribute("aria-selected",Me&&!Oe?"true":"false"),g.__cursor&&g.__cursor.y===a&&g.__cursor.mo===Se&&g.__cursor.d==null&&Te.classList.add("is-focus"),Te.addEventListener("click",()=>{U(g,{y:a,mo:Se})}),Pe.push(Te),ue.appendChild(Te)}ue.addEventListener("keydown",Se=>{if(Se.key==="ArrowLeft")Se.preventDefault(),oe(g,-1);else if(Se.key==="ArrowRight")Se.preventDefault(),oe(g,1);else if(Se.key==="ArrowUp")Se.preventDefault(),oe(g,-3);else if(Se.key==="ArrowDown")Se.preventDefault(),oe(g,3);else if(Se.key==="PageUp")Se.preventDefault(),pe(g,-1);else if(Se.key==="PageDown")Se.preventDefault(),pe(g,1);else if(Se.key==="Enter"||Se.key===" "){Se.preventDefault();const Be=W(g,g.__cursor);se(g.__item,Be,Y)||U(g,g.__cursor)}}),M.appendChild(me)}function $e(g,Q,M){Q.addEventListener("keydown",a=>{const Y=g.__cursor;if(a.key==="ArrowLeft")a.preventDefault(),oe(g,-1);else if(a.key==="ArrowRight")a.preventDefault(),oe(g,1);else if(a.key==="ArrowUp")a.preventDefault(),oe(g,-7);else if(a.key==="ArrowDown")a.preventDefault(),oe(g,7);else if(a.key==="PageUp")a.shiftKey?(a.preventDefault(),pe(g,-12)):(a.preventDefault(),pe(g,-1));else if(a.key==="PageDown")a.shiftKey?(a.preventDefault(),pe(g,12)):(a.preventDefault(),pe(g,1));else if((a.key==="Enter"||a.key===" ")&&(a.preventDefault(),Y&&Y.d!=null)){const fe=v(Y.y,Y.mo,Y.d);se(g.__item,fe,m(g.__item))||U(g,Y)}})}function K(g){const Q=g.ownerDocument,M=g.__popup,a=g.__item,Y=V(M,"lat-form__daterange-nav");for(;M.firstChild;)M.removeChild(M.firstChild);const fe=Q.createElement("div");fe.className="lat-form__daterange-head";const me=Q.createElement("button");me.type="button",me.className="lat-form__daterange-nav",me.setAttribute("aria-label",g.__t("form.daterange.prev")),me.textContent="‹",me.addEventListener("click",()=>{pe(g,-1)});const Ae=Q.createElement("button");Ae.type="button",Ae.className="lat-form__daterange-nav",Ae.setAttribute("aria-label",g.__t("form.daterange.next")),Ae.textContent="›",Ae.addEventListener("click",()=>{pe(g,1)}),fe.appendChild(me);const ue=Q.createElement("div");ue.className="lat-form__daterange-body";const Pe=B(a,g.__t);if(Pe){const Be=Q.createElement("div");Be.className="lat-form__daterange-presets";const Te=Q.createElement("div");Te.className="lat-form__daterange-presets-title",Te.textContent=g.__t("form.daterange.presets"),Be.appendChild(Te);for(const Ne of Pe){const Me=Q.createElement("button");Me.type="button",Me.className="lat-form__daterange-preset",Me.textContent=Ne.label,Me.addEventListener("click",()=>{he(g,Ne.range)}),Be.appendChild(Me)}ue.appendChild(Be)}const Se=Q.createElement("div");if(Se.className="lat-form__daterange-panels",re(g,Q,Se),ue.appendChild(Se),fe.appendChild(ue),fe.appendChild(Ae),M.appendChild(fe),_(a)){const Be=Q.createElement("div");Be.className="lat-form__daterange-footer";const Te=Q.createElement("button");Te.type="button",Te.className="lat-form__daterange-cancel",Te.textContent=g.__t("form.daterange.cancel"),Te.addEventListener("click",()=>{Z(g)});const Ne=Q.createElement("button");Ne.type="button",Ne.className="lat-form__daterange-apply",Ne.textContent=g.__t("form.daterange.apply"),Ne.addEventListener("click",()=>{j(g,!0)}),Be.appendChild(Te),Be.appendChild(Ne),M.appendChild(Be)}s(M,"lat-form__daterange-nav",Y)}function he(g,Q){const M=typeof Q=="function"?Q(new Date):Q;if(!(!Array.isArray(M)||M.length<2)){if(g.__draftStart=M[0],g.__draftEnd=M[1],g.__phase="idle",g.__hover=null,g.__granularity==="day"){const a=u(M[0]);a&&(g.__view={y:a.y,mo:a.mo}),g.__cursor=a||g.__cursor}else{const a=t(M[0]);a&&(g.__view={y:a.y}),g.__cursor=a||g.__cursor}K(g)}}function Ee(g){if(g.__popup.hidden===!1||g.__item.disabled===!0||g.__item.readOnly===!0)return;g.__draftStart=g.__start,g.__draftEnd=g.__end,g.__phase="idle",g.__hover=null;const Q=new Date;if(g.__granularity==="month"){const M=t(g.__start)||{y:Q.getFullYear(),mo:Q.getMonth()+1};g.__view={y:M.y},g.__cursor=M}else{const M=u(g.__start)||{y:Q.getFullYear(),mo:Q.getMonth()+1,d:Q.getDate()};g.__view={y:M.y,mo:M.mo},g.__cursor=M}g.__popup.hidden=!1,K(g)}function T(g){g.__popup.hidden=!0}H("daterange",{kind:"field",build(g,Q){const M=Q.doc;E(M);const a=M.createElement("div");a.className="lat-form__daterange",a.__item=g,a.__t=Q.t||z,a.__granularity=$(g),a.__start=null,a.__end=null,a.__draftStart=null,a.__draftEnd=null,a.__hover=null,a.__phase="idle";const Y=typeof g.value=="object"&&g.value!=null?g.value:{};Y&&Y.start!=null&&(a.__start=String(Y.start)),Y&&Y.end!=null&&(a.__end=String(Y.end));const fe=M.createElement("input");fe.type="text",fe.className="lat-form__daterange-input",g.name&&(fe.name=g.name),g.placeholder!=null&&(fe.placeholder=String(g.placeholder)),g.label!=null&&g.label!==""&&fe.setAttribute("aria-label",String(g.label)),fe.setAttribute("autocomplete","off"),fe.value=be(a.__start,a.__end),a.__input=fe;const me=M.createElement("button");me.type="button",me.className="lat-form__daterange-toggle",me.setAttribute("aria-label",a.__t("form.daterange.open"));const Ae=e(M,"calendar");Ae&&me.appendChild(Ae),a.__toggle=me;const ue=M.createElement("button");ue.type="button",ue.className="lat-form__daterange-clear",ue.setAttribute("aria-label",a.__t("form.daterange.clear"));const Pe=e(M,"close");Pe&&ue.appendChild(Pe),ue.hidden=!O(g)||a.__start==null&&a.__end==null,a.__clear=ue;const Se=M.createElement("div");Se.className="lat-form__daterange-popup",Se.hidden=!0,a.__popup=Se,a.appendChild(fe),a.appendChild(ue),a.appendChild(me),a.appendChild(Se),fe.addEventListener("focus",()=>{Ee(a)}),me.addEventListener("click",()=>{Ee(a)}),ue.addEventListener("click",()=>{ae(a)}),fe.addEventListener("change",Me=>{const Oe=q(g,fe.value);Oe?(w(a,null),a.__start=Oe.start,a.__end=Oe.end,fe.value=be(Oe.start,Oe.end)):(Me.stopPropagation(),fe.value=be(a.__start,a.__end),w(a,a.__t("form.datepicker.invalid")))}),fe.addEventListener("keydown",Me=>{Me.key==="Escape"&&(Z(a),a.__toggle.focus())});const Be=Me=>{a.contains(Me.target)||Z(a)},Te=Me=>{if(!(Me.relatedTarget&&a.contains(Me.relatedTarget))){if(!Me.relatedTarget){d(a.ownerDocument,()=>{if(a.__popup.hidden)return;const Oe=a.ownerDocument.activeElement;Oe&&a.contains(Oe)||Z(a)});return}Z(a)}},Ne=Me=>{Me.key==="Escape"&&(Me.preventDefault(),Z(a),a.__toggle.focus())};return M.addEventListener("pointerdown",Be),a.addEventListener("focusout",Te),Se.addEventListener("keydown",Ne),Array.isArray(Q.disposers)&&Q.disposers.push(()=>{M.removeEventListener("pointerdown",Be),a.removeEventListener("focusout",Te),Se.removeEventListener("keydown",Ne)}),a},read(g){return{start:g.__start,end:g.__end}},write(g,Q){w(g,null);const M=Q&&typeof Q=="object"?Q:{};g.__start=M.start!=null?String(M.start):null,g.__end=M.end!=null?String(M.end):null,g.__input.value=be(g.__start,g.__end),g.__clear&&(g.__clear.hidden=!O(g.__item)||g.__start==null&&g.__end==null)},state(g,Q){g.__input.disabled=Q.disabled===!0,g.__input.readOnly=Q.readOnly===!0,g.__toggle.disabled=Q.disabled===!0||Q.readOnly===!0},validate(g,Q,M){const a=M&&typeof M=="object"?M:{start:null,end:null},Y=a.start!=null?String(a.start):null,fe=a.end!=null?String(a.end):null,me=g.__t;if(Q.required===!0&&Y==null&&fe==null)return me("form.validation.required");if(Y==null&&fe==null)return!0;if(Y==null||fe==null)return me("form.daterange.invalid");if(F(Q,Y)||F(Q,fe))return me("form.daterange.bounds");const Ae=le(Y,fe,g.__granularity);if(Ae==null)return me("form.daterange.invalid");const ue=b(Q).minSpan,Pe=b(Q).maxSpan;return ue!=null&&Ae<Number(ue)?me("form.daterange.minSpan",{min:String(ue),unit:ke(Q,me)}):Pe!=null&&Ae>Number(Pe)?me("form.daterange.maxSpan",{max:String(Pe),unit:ke(Q,me)}):!0},live:{disabledDates(g){g.__popup&&g.__popup.hidden===!1&&K(g)}},focus(g){g.__input.focus()}})}),Ie("packages/modules/form/controls/file.js",function(S,te){"use strict";Object.defineProperty(S,"formatSize",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"accepts",{enumerable:!0,get:function(){return A}});const H=te("packages/modules/form/controls/registry.js").registerControl,L="lat-uploader",e="http://www.w3.org/2000/svg",E="data-lattice-uploader-styles";function I(){return`
|
|
2069
|
+
`.trim()}const I="data-lattice-form-choice-styles";function z(T){const G=T&&T.documentElement;if(!G||G.getAttribute(I))return;G.setAttribute(I,"1");const C=T.createElement("style");C.textContent=E(),(T.head||T.body||G).appendChild(C)}}),Ie("packages/modules/form/controls/radiogroup.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/options.js"),e=L.normalizeOptions,E=L.resolveChoiceLayout,I=L.injectChoiceLayoutStyles,z=te("packages/modules/form/state.js"),T=z.applyBooleanInputState,G=z.guardBooleanInput;H("radiogroup",{kind:"field",build(C,A){const r=A.doc.createElement("div");r.className="lat-form__radiogroup",r.setAttribute("role","radiogroup"),C.label!=null&&C.label!==""&&r.setAttribute("aria-label",String(C.label));const u=E(C);u.columns>0?(I(A.doc),r.classList.add("lat-form__radiogroup--columns"),r.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(I(A.doc),r.classList.add("lat-form__radiogroup--horizontal")),r.setAttribute("aria-orientation",u.orientation);const v=[];for(const h of e(C.options)){const c=A.doc.createElement("label");c.className="lat-form__choice";const l=A.doc.createElement("input");l.type="radio",C.name&&(l.name=C.name),l.value=h.value,l.checked=C.value!=null&&String(C.value)===h.value,G(l),c.appendChild(l);const t=A.doc.createElement("span");t.textContent=h.label,c.appendChild(t),r.appendChild(c),v.push(l)}return r.__radios=v,r},read(C){const A=C.__radios.find(r=>r.checked);return A?A.value:null},write(C,A){const r=A==null?null:String(A);for(const u of C.__radios)u.checked=r!==null&&u.value===r},state(C,A){const r=A.readOnly===!0;for(const u of C.__radios)T(u,A.disabled===!0,r);r?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")},focus(C){const A=C.__radios.find(r=>!r.disabled);A&&A.focus()}})}),Ie("packages/modules/form/controls/checkboxgroup.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/options.js"),e=L.normalizeOptions,E=L.resolveChoiceLayout,I=L.injectChoiceLayoutStyles,z=te("packages/modules/form/state.js"),T=z.applyBooleanInputState,G=z.guardBooleanInput;H("checkboxgroup",{kind:"field",build(C,A){const r=A.doc.createElement("div");r.className="lat-form__checkboxgroup",r.setAttribute("role","group"),C.label!=null&&C.label!==""&&r.setAttribute("aria-label",String(C.label));const u=E(C);u.columns>0?(I(A.doc),r.classList.add("lat-form__checkboxgroup--columns"),r.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(I(A.doc),r.classList.add("lat-form__checkboxgroup--horizontal"));const v=[],h=Array.isArray(C.value)?C.value.map(String):[];for(const c of e(C.options)){const l=A.doc.createElement("label");l.className="lat-form__choice";const t=A.doc.createElement("input");t.type="checkbox",C.name&&(t.name=C.name),t.value=c.value,t.checked=h.includes(c.value),G(t),l.appendChild(t);const p=A.doc.createElement("span");p.textContent=c.label,l.appendChild(p),r.appendChild(l),v.push(t)}return r.__boxes=v,r},read(C){return C.__boxes.filter(A=>A.checked).map(A=>A.value)},write(C,A){const r=Array.isArray(A)?A.map(String):[];for(const u of C.__boxes)u.checked=r.includes(u.value)},state(C,A){const r=A.readOnly===!0;for(const u of C.__boxes)T(u,A.disabled===!0,r);r?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")},focus(C){const A=C.__boxes.find(r=>!r.disabled);A&&A.focus()}})}),Ie("packages/modules/form/controls/toggle.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/state.js"),e=L.applyBooleanInputState,E=L.guardBooleanInput,I=Object.freeze(["small","default","large"]),z=Object.freeze(["round","square","slim"]),T=Object.freeze(["inside","before","after"]);function G(c){return I.includes(c)?c:"default"}function C(c){return z.includes(c)?c:"round"}function A(c){return T.includes(c)?c:"inside"}function r(c){return c==null?"":String(c)}function u(c){return c.__latToggle?c.__latToggle.input:c}function v(c){!c||!c.label||(c.label.textContent=c.input.checked?c.onLabel:c.offLabel)}function h(c,l,t){const p=l&&l.defaultView,P=p&&p.Event,o=P?new P(t,{bubbles:!0}):{type:t,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};c.dispatchEvent(o)}H("toggle",{kind:"toggle",build(c,l){const t=c.props||{},p=l.doc.createElement("input");p.type="checkbox",p.className="lat-form__toggle",p.setAttribute("role","switch"),c.name&&(p.name=c.name),p.checked=c.value===!0,E(p),t.size!=null&&p.setAttribute("data-size",G(t.size)),t.variant!=null&&p.setAttribute("data-variant",C(t.variant));const P=r(t.onLabel),o=r(t.offLabel);if(P===""&&o==="")return p;const y=l.doc.createElement("span");y.className="lat-form__toggle-field",y.setAttribute("data-label-position",A(t.labelPosition)),y.appendChild(p);const V=l.doc.createElement("span");V.className="lat-form__toggle-label",y.appendChild(V);const s={input:p,label:V,onLabel:P,offLabel:o};y.__latToggle=s,v(s),p.addEventListener("change",()=>v(s));let d=!1;return y.addEventListener("focusin",()=>{d||(d=!0,h(y,l.doc,"focus"))}),y.addEventListener("focusout",i=>{y.contains(i.relatedTarget)||(d=!1,h(y,l.doc,"blur"))}),y},read(c){return u(c).checked},write(c,l){const t=u(c);t.checked=l===!0,v(c.__latToggle)},state(c,l){e(u(c),l.disabled===!0,l.readOnly===!0)},focus(c){const l=u(c);typeof l.focus=="function"&&l.focus()},blur(c){const l=u(c);typeof l.blur=="function"&&l.blur()}})}),Ie("packages/modules/form/controls/date-parse.js",function(S,te){"use strict";Object.defineProperty(S,"parseTypedDate",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"splitTypedTime",{enumerable:!0,get:function(){return A}});const we=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function H(r){return r.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function L(r,u,v){if(!Number.isInteger(r)||!Number.isInteger(u)||!Number.isInteger(v)||r<1||r>9999||u<1||u>12||v<1)return null;const h=u===2?e(r)?29:28:[4,6,9,11].includes(u)?30:31;return v>h?null:`${String(r).padStart(4,"0")}-${String(u).padStart(2,"0")}-${String(v).padStart(2,"0")}`}function e(r){return r%4===0&&r%100!==0||r%400===0}function E(r){const u=Number(r);return r.length<=2?2e3+u:u}function I(r){const u=new Map;for(let v=1;v<=12;v++){const h=new Date(2001,v-1,15);for(const c of["long","short"]){const l=new Intl.DateTimeFormat(r,{month:c}).format(h),t=new Intl.DateTimeFormat(r,{day:"numeric",month:c}).formatToParts(h).find(p=>p.type==="month");for(const p of[l,t&&t.value]){if(!p)continue;const P=p.toLowerCase();u.set(P,v),P.endsWith(".")&&u.set(P.slice(0,-1),v)}}}return u}function z(r,u,v){const h=new Intl.DateTimeFormat(u,v).formatToParts(new Date(2001,10,22)),c=I(u),l=[];let t="^";for(const y of h)if(y.type==="day")l.push("d"),t+="(\\d{1,2})";else if(y.type==="year"||y.type==="relatedYear")l.push("y"),t+="(\\d{4}|\\d{2})";else if(y.type==="month")if(l.push("m"),/^\d+$/.test(y.value))t+="(\\d{1,2})";else{const V=[...c.keys()].sort((s,d)=>d.length-s.length).map(H);t+=`(${V.join("|")})`}else if(y.type==="literal")t+=y.value.trim()===""?"\\s+":`\\s*${H(y.value.trim())}\\s*`;else if(y.type==="weekday")t+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const p=new RegExp(`${t}$`,"iu").exec(r);if(!p||l.length!==3)return null;const P={};l.forEach((y,V)=>{P[y]=p[V+1]});const o=/^\d+$/.test(P.m)?Number(P.m):c.get(P.m.toLowerCase());return L(E(P.y),o,Number(P.d))}function T(r,u){const h=new Intl.DateTimeFormat(u,{day:"numeric",month:"numeric",year:"numeric"}).formatToParts(new Date(2001,10,22)).filter(p=>p.type==="day"||p.type==="month"||p.type==="year"||p.type==="relatedYear").map(p=>p.type==="day"?"d":p.type==="month"?"m":"y");if(h.length!==3)return null;const c=h.map(p=>p==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),l=new RegExp(`^${c}\\.?$`).exec(r);if(!l)return null;const t={};return h.forEach((p,P)=>{t[p]=l[P+1]}),L(E(t.y),Number(t.m),Number(t.d))}function G(r){const u=h=>{const c=h.toLowerCase().replace(/\.$/,"");return we.findIndex(t=>t===c||t.slice(0,3)===c||c==="sept"&&t==="september")+1};let v=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(r);return v?u(v[2])?L(Number(v[3]),u(v[2]),Number(v[1])):null:(v=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(r),v&&u(v[1])?L(Number(v[3]),u(v[1]),Number(v[2])):null)}function C(r,u,v){const h=String(r??"").trim().replace(/\s+/g," ");if(!h)return null;const c=v||u&&u.locale||void 0,l={dateStyle:"medium"},t=[()=>z(h,c,l),()=>T(h,c),()=>{const p=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(h);return p?L(Number(p[1]),Number(p[2]),Number(p[3])):null},()=>G(h)];for(const p of t)try{const P=p();if(P)return P}catch{}return null}function A(r){const u=String(r??"").trim(),v=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(u);if(!v)return{date:u,time:null};let h=Number(v[1]);const c=Number(v[2]);if(v[3]){const l=v[3].toLowerCase()==="p";if(h<1||h>12)return{date:u,time:null};h=h%12+(l?12:0)}return h>23||c>59?{date:u,time:null}:{date:u.slice(0,v.index).replace(/[,\s]+$/,""),time:{h,mi:c}}}}),Ie("packages/modules/form/controls/date-shared.js",function(S,te){"use strict";Object.defineProperty(S,"pad",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"echoKey",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"modeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"daysInMonth",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"fieldsOfDate",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"parseValue",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"isoOf",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"displayOf",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"withinRange",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"disabledTestOf",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"weekdayName",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"monthTitle",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"yearTitle",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"dispatchChange",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"is12Hour",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"dayPeriods",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"to24Hour",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"parseDay",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"dayISO",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"dayNumber",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"dayNumberOf",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"dayOfNumber",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"parseMonth",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"monthISO",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"monthIndex",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"monthOfIndex",{enumerable:!0,get:function(){return k}}),Object.defineProperty(S,"isoWeek",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"focusedNavIndex",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"restoreNavFocus",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"afterFocusSettles",{enumerable:!0,get:function(){return b}});const we=te("packages/modules/form/controls/date-parse.js");Object.defineProperty(S,"parseTypedDate",{enumerable:!0,get:function(){return we.parseTypedDate}}),Object.defineProperty(S,"splitTypedTime",{enumerable:!0,get:function(){return we.splitTypedTime}});function H(_){return String(_).padStart(2,"0")}function L(_){return _}function e(_){return _.mode==="date-time"||_.mode==="time"?_.mode:"date"}function E(_,n){return new Date(_,n,0).getDate()}function I(_,n){if(!(n instanceof Date)||Number.isNaN(n.getTime()))return null;const O={y:n.getFullYear(),mo:n.getMonth()+1,d:n.getDate(),h:n.getHours(),mi:n.getMinutes()},ie=_.timeZone;if(!ie)return O;try{const F=new Intl.DateTimeFormat("en-US",{timeZone:ie,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(n),se={y:0,mo:1,d:1,h:0,mi:0};for(const le of F)le.type==="year"?se.y=Number(le.value):le.type==="month"?se.mo=Number(le.value):le.type==="day"?se.d=Number(le.value):le.type==="hour"?se.h=Number(le.value)%24:le.type==="minute"&&(se.mi=Number(le.value));return se}catch{return O}}function z(_,n){if(n==null||n==="")return null;if(typeof n=="number")return I(_,new Date(n));if(n instanceof Date)return I(_,n);if(typeof n=="string"){const O=n.trim();if(e(_)==="time"){const F=/^(\d{1,2}):(\d{2})/.exec(O);return F?{y:null,mo:null,d:null,h:Number(F[1]),mi:Number(F[2])}:null}const ie=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(O);return ie?{y:Number(ie[1]),mo:Number(ie[2]),d:Number(ie[3]),h:ie[4]!=null?Number(ie[4]):0,mi:ie[5]!=null?Number(ie[5]):0}:null}return null}function T(_,n){if(!n)return null;if(e(_)==="time")return`${H(n.h)}:${H(n.mi)}`;const O=`${H(n.y)}-${H(n.mo)}-${H(n.d)}`;return e(_)==="date"?O:`${O}T${H(n.h)}:${H(n.mi)}`}function G(_,n){if(!n)return"";const O=e(_);if(O==="time")return`${H(n.h)}:${H(n.mi)}`;const ie=_.locale||void 0,F={dateStyle:"medium"};return O==="date-time"&&(F.timeStyle="short"),new Intl.DateTimeFormat(ie,F).format(new Date(n.y,n.mo-1,n.d,n.h,n.mi))}function C(_,n){return n==null?!0:!(_.min!=null&&n<String(_.min)||_.max!=null&&n>String(_.max))}function A(_){const O=(_.props&&typeof _.props=="object"?_.props:{}).disabledDates;if(Array.isArray(O)){const ie=new Set(O.map(String));return F=>ie.has(F)}return typeof O=="function"?ie=>O(ie)===!0:null}function r(_,n){return new Intl.DateTimeFormat(_.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+n))}function u(_,n){return new Intl.DateTimeFormat(_.locale||void 0,{month:"long",year:"numeric"}).format(new Date(n.y,n.mo-1,1))}function v(_){return String(_.y)}function h(_){const n=_.ownerDocument&&_.ownerDocument.defaultView,O=n&&typeof n.Event=="function"?n.Event:null;_.dispatchEvent(O?new O("change",{bubbles:!0}):{type:"change",bubbles:!0})}function c(_){try{const n=new Intl.DateTimeFormat(_.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return n==="h11"||n==="h12"}catch{return!1}}function l(_){try{const n=new Intl.DateTimeFormat(_.locale||void 0,{hour:"numeric",hour12:!0}),O=n.formatToParts(new Date(2021,0,1,9)).find(F=>F.type==="dayPeriod"),ie=n.formatToParts(new Date(2021,0,1,15)).find(F=>F.type==="dayPeriod");if(O&&ie)return{am:O.value,pm:ie.value}}catch{}return null}function t(_){const n=_%12;return n===0?12:n}function p(_,n){return n?_===12?12:_+12:_===12?0:_}function P(_){if(typeof _!="string")return null;const n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(_.trim());if(!n)return null;const O={y:Number(n[1]),mo:Number(n[2]),d:Number(n[3])};return O.mo<1||O.mo>12||O.d<1||O.d>E(O.y,O.mo)?null:O}function o(_,n,O){return`${H(_)}-${H(n)}-${H(O)}`}function y(_,n,O){return Date.UTC(_,n-1,O)/864e5}function V(_){const n=P(_);return n?y(n.y,n.mo,n.d):NaN}function s(_){const n=new Date(_*864e5);return{y:n.getUTCFullYear(),mo:n.getUTCMonth()+1,d:n.getUTCDate()}}function d(_){if(typeof _!="string")return null;const n=/^(\d{4})-(\d{2})$/.exec(_.trim());if(!n)return null;const O={y:Number(n[1]),mo:Number(n[2])};return O.mo<1||O.mo>12?null:O}function i(_,n){return`${H(_)}-${H(n)}`}function m(_,n){return _*12+(n-1)}function k(_){return{y:Math.floor(_/12),mo:_%12+1}}function w(_,n,O){const ie=new Date(Date.UTC(_,n-1,O)),F=ie.getUTCDay()||7;ie.setUTCDate(ie.getUTCDate()+4-F);const se=new Date(Date.UTC(ie.getUTCFullYear(),0,1));return Math.ceil(((ie-se)/864e5+1)/7)}function f(_,n){const O=_.ownerDocument,ie=O?O.activeElement:null;return!ie||typeof _.contains!="function"||!_.contains(ie)?-1:Array.prototype.indexOf.call(_.querySelectorAll(`.${n}`),ie)}function $(_,n,O){if(O<0)return;const ie=_.querySelectorAll(`.${n}`)[O];ie&&typeof ie.focus=="function"&&ie.focus()}function b(_,n){const O=_&&_.defaultView;(O&&typeof O.setTimeout=="function"?O.setTimeout.bind(O):setTimeout)(n,0)}}),Ie("packages/modules/form/controls/date-typed.js",function(S,te){"use strict";Object.defineProperty(S,"setTypedError",{enumerable:!0,get:function(){return we}});function we(H,L){let e=H.__typedError;if(L==null){e&&(e.hidden=!0),H.__input&&H.__input.removeAttribute("aria-invalid");return}e||(e=H.ownerDocument.createElement("div"),e.className="lat-form__error lat-form__typed-error",e.setAttribute("role","alert"),H.__typedError=e,H.appendChild(e)),e.textContent=L,e.hidden=!1,H.__input&&H.__input.setAttribute("aria-invalid","true")}}),Ie("packages/modules/form/controls/datepicker-draft.js",function(S,te){"use strict";Object.defineProperty(S,"isDraftMode",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"getDraft",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"readDraftClock",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"pickDraftDay",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"commitDraft",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"dropDraft",{enumerable:!0,get:function(){return A}});const we=te("packages/modules/form/controls/date-shared.js"),H=we.modeOf,L=we.displayOf,e=we.to24Hour,E=we.isoOf;function I(r){return H(r.__item)==="date-time"}function z(r){if(!r.__draft){const u=r.__fields;r.__draft=u?{y:u.y,mo:u.mo,d:u.d,h:u.h,mi:u.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return r.__draft}function T(r){const u=z(r);if(!r.__hour)return;let v=Number(r.__hour.value)||0;const h=r.__minute&&Number(r.__minute.value)||0;r.__ampm&&(v=e(v,r.__pm===!0)),u.h=v,u.mi=h}function G(r,u,v,h,c){T(r);const l=z(r);l.y=u,l.mo=v,l.d=h,r.__cursor=h,r.__input.value=L(r.__item,l),r.__typedDirty=!1,c(r)}function C(r,u){T(r);const v=z(r);if(v.d==null)return;const h={y:v.y,mo:v.mo,d:v.d,h:v.h,mi:v.mi};E(r.__item,h)!==E(r.__item,r.__fields)&&u(r,h)}function A(r){const u=r.__draft;r.__draft=null,u&&u.d!=null&&I(r)&&(r.__input.value=L(r.__item,r.__fields),r.__typedDirty=!1)}}),Ie("packages/modules/form/controls/datepicker.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/date-shared.js"),z=I.pad,T=I.echoKey,G=I.modeOf,C=I.daysInMonth,A=I.parseValue,r=I.isoOf,u=I.displayOf,v=I.withinRange,h=I.weekdayName,c=I.monthTitle,l=I.dispatchChange,t=I.is12Hour,p=I.dayPeriods,P=I.to12Hour,o=I.to24Hour,y=I.focusedNavIndex,V=I.restoreNavFocus,s=I.afterFocusSettles,d=I.parseTypedDate,i=I.splitTypedTime,m=I.disabledTestOf,k=I.dayISO,w=I.dayNumber,f=I.dayOfNumber,b=te("packages/modules/form/controls/date-typed.js").setTypedError,_=te("packages/modules/form/controls/popup-layer.js"),n=_.openInLayer,O=_.flushOutsideFocus,ie=te("packages/modules/form/controls/datepicker-draft.js"),F=ie.isDraftMode,se=ie.getDraft,le=ie.pickDraftDay,xe=ie.readDraftClock,ue=ie.commitDraft,R=ie.dropDraft,be=Object.freeze(["date","date-time","time"]),q="lat-form__datepicker-popup--above";function D(K,he){K.__fields=he,K.__input.value=u(K.__item,he),K.__typedDirty=!1,ne(K),l(K)}function J(K){const he=K.__fields!=null;return K.__fields=null,K.__draft=null,K.__input.value="",K.__typedDirty=!1,b(K,null),ne(K),he}function ne(K){if(!K.__clear)return;const he=K.__fields!=null&&K.__readOnly!==!0;K.__clear.hidden=!he,K.__input.classList.toggle("lat-form__datepicker-input--with-clear",he)}function oe(K,he){const Ee=K.__item;if(G(Ee)==="time")return A(Ee,he);const{date:N,time:g}=i(he),Q=d(N,Ee);if(!Q)return null;const[M,a,Y]=Q.split("-").map(Number),fe=K.__fields,me=g||(G(Ee)==="date-time"&&fe?{h:fe.h,mi:fe.mi}:{h:0,mi:0});return{y:M,mo:a,d:Y,h:me.h,mi:me.mi}}function ve(K,he,Ee,N){const g=K.__item,Q=r(g,{y:he,mo:Ee,d:N,h:0,mi:0});if(!v(g,Q))return!0;const M=m(g);return!!(M&&M(k(he,Ee,N)))}function pe(K,he){if(he==null||he==="")return!1;const Ee=A(K,he);if(!Ee||Ee.y==null||Ee.d==null)return!1;const N=m(K);return!!(N&&N(k(Ee.y,Ee.mo,Ee.d)))}function x(K,he,Ee,N){const g=C(he,Ee);for(let Q=N>0?1:g;N>0?Q<=g:Q>=1;Q+=N)if(!ve(K,he,Ee,Q))return Q;return null}function W(K){if(!ve(K,K.__view.y,K.__view.mo,K.__cursor))return;let he=w(K.__view.y,K.__view.mo,K.__cursor);for(let Ee=0;Ee<400;Ee+=1){he+=1;const N=f(he);if(!ve(K,N.y,N.mo,N.d)){K.__view={y:N.y,mo:N.mo},K.__cursor=N.d;return}}}function U(K,he){let Ee=w(K.__view.y,K.__view.mo,K.__cursor)+he,N=f(Ee);for(let g=0;ve(K,N.y,N.mo,N.d)&&g<400;g+=1)Ee+=he,N=f(Ee);K.__view={y:N.y,mo:N.mo},K.__cursor=N.d,j(K)}function j(K){const he=K.__item,Ee=K.ownerDocument,N=K.__popup,g=K.__view,Q=G(he),M=K.__fields,a=y(N,"lat-form__datepicker-nav"),Y=y(N,"lat-form__datepicker-day");for(;N.firstChild;)N.removeChild(N.firstChild);if(Q!=="time"){const fe=Ee.createElement("div");fe.className="lat-form__datepicker-head";const me=Ee.createElement("button");me.type="button",me.className="lat-form__datepicker-nav",me.setAttribute("aria-label",K.__t("form.datepicker.prev")),me.textContent="‹",me.addEventListener("click",()=>{Z(K,-1)});const Ae=Ee.createElement("span");Ae.className="lat-form__datepicker-title",Ae.textContent=c(he,g);const de=Ee.createElement("button");de.type="button",de.className="lat-form__datepicker-nav",de.setAttribute("aria-label",K.__t("form.datepicker.next")),de.textContent="›",de.addEventListener("click",()=>{Z(K,1)}),fe.appendChild(me),fe.appendChild(Ae),fe.appendChild(de),N.appendChild(fe);const Pe=Ee.createElement("div");Pe.className="lat-form__datepicker-weekdays";for(let Ne=0;Ne<7;Ne+=1){const Me=Ee.createElement("span");Me.textContent=h(he,Ne),Pe.appendChild(Me)}N.appendChild(Pe);const Se=Ee.createElement("div");Se.className="lat-form__datepicker-grid",Se.setAttribute("role","grid"),Se.tabIndex=0,K.__grid=Se;const Be=new Date(g.y,g.mo-1,1).getDay();for(let Ne=0;Ne<Be;Ne+=1){const Me=Ee.createElement("span");Me.className="lat-form__datepicker-blank",Se.appendChild(Me)}const Te=C(g.y,g.mo);for(let Ne=1;Ne<=Te;Ne+=1){const Me=Ee.createElement("button");Me.type="button",Me.className="lat-form__datepicker-day",Me.setAttribute("role","gridcell"),Me.textContent=String(Ne),ve(K,g.y,g.mo,Ne)&&(Me.disabled=!0),M&&M.y===g.y&&M.mo===g.mo&&M.d===Ne&&Me.classList.add("is-selected"),K.__cursor===Ne&&Me.classList.add("is-focus"),Me.addEventListener("click",()=>{if(ve(K,g.y,g.mo,Ne))return;if(F(K)){le(K,g.y,g.mo,Ne,j);return}const Oe={y:g.y,mo:g.mo,d:Ne,h:M?M.h:0,mi:M?M.mi:0};Q==="date"?(K.__cursor=Ne,D(K,Oe),$e(K)):(K.__cursor=Ne,K.__fields=Oe,j(K))}),Se.appendChild(Me)}N.appendChild(Se),Se.addEventListener("keydown",Ne=>{if(Ne.key==="ArrowLeft")Ne.preventDefault(),U(K,-1);else if(Ne.key==="ArrowRight")Ne.preventDefault(),U(K,1);else if(Ne.key==="ArrowUp")Ne.preventDefault(),U(K,-7);else if(Ne.key==="ArrowDown")Ne.preventDefault(),U(K,7);else if(Ne.key==="Home"){Ne.preventDefault();const Me=x(K,g.y,g.mo,1);Me!=null&&(K.__cursor=Me),j(K)}else if(Ne.key==="End"){Ne.preventDefault();const Me=x(K,g.y,g.mo,-1);Me!=null&&(K.__cursor=Me),j(K)}else(Ne.key==="Enter"||Ne.key===" ")&&(Ne.preventDefault(),X(K))})}if(Q!=="date"){const fe=t(he)?p(he):null,me=!!fe,Ae=Ee.createElement("div");Ae.className="lat-form__datepicker-time";const de=Ee.createElement("input");de.type="number",de.className="lat-form__datepicker-hour",de.min=me?"1":"0",de.max=me?"12":"23",de.step="1",de.setAttribute("aria-label",K.__t("form.datepicker.hour"));const Pe=Ee.createElement("span");Pe.textContent=":";const Se=Ee.createElement("input");if(Se.type="number",Se.className="lat-form__datepicker-minute",Se.min="0",Se.max="59",Se.step="1",Se.setAttribute("aria-label",K.__t("form.datepicker.minute")),Ae.appendChild(de),Ae.appendChild(Pe),Ae.appendChild(Se),N.appendChild(Ae),K.__hour=de,K.__minute=Se,de.addEventListener("change",()=>{ae(K)}),Se.addEventListener("change",()=>{ae(K)}),F(K)&&se(K),K.__periods=fe,K.__ampm=null,me){const Te=Ee.createElement("button");Te.type="button",Te.className="lat-form__datepicker-ampm",K.__ampm=Te;const Ne=()=>{K.__pm=!K.__pm,Te.textContent=K.__pm?K.__periods.pm:K.__periods.am,ae(K)};Te.addEventListener("click",Ne),Ae.appendChild(Te)}const Be=Ee.createElement("button");Be.type="button",Be.className="lat-form__datepicker-done",Be.textContent=K.__t("form.datepicker.done"),Be.addEventListener("click",()=>{re(K)}),Ae.appendChild(Be)}ee(K),V(N,"lat-form__datepicker-nav",a),V(N,"lat-form__datepicker-day",Y)}function Z(K,he){let{y:Ee,mo:N}=K.__view;N+=he,N<1&&(N=12,Ee-=1),N>12&&(N=1,Ee+=1),K.__view={y:Ee,mo:N},K.__cursor=Math.min(K.__cursor,C(Ee,N)),j(K)}function ae(K){if(F(K)){xe(K),ee(K);return}const he=K.__fields;let Ee=K.__hour&&Number(K.__hour.value)||0;const N=K.__minute&&Number(K.__minute.value)||0;K.__ampm&&(Ee=o(Ee,K.__pm===!0));const g=G(K.__item)==="time"?{y:null,mo:null,d:null,h:Ee,mi:N}:{y:he?he.y:K.__view.y,mo:he?he.mo:K.__view.mo,d:he?he.d:K.__cursor,h:Ee,mi:N};if(K.__cursor=he?he.d:K.__cursor,he&&r(K.__item,g)===r(K.__item,he)){ee(K);return}D(K,g),ee(K)}function re(K){if(K.__popup.hidden)return;K.__typedDirty&&B(K)?l(K):F(K)?ue(K,D):G(K.__item)!=="date"&&ae(K),$e(K)}function B(K){const he=K.__item,Ee=K.__input,N=Ee.value;if(String(N).trim()==="")return K.__fields==null||K.__readOnly===!0?(Ee.value=u(he,K.__fields),K.__typedDirty=!1,!1):(K.__typedDirty=!1,J(K));const g=r(he,K.__fields),Q=oe(K,N);return Q?(b(K,null),K.__fields=Q,K.__draft=null,Ee.value=u(he,Q),K.__typedDirty=!1,ne(K),K.__hour&&ee(K),r(he,Q)!==g):(Ee.value=u(he,K.__fields),K.__typedDirty=!1,b(K,K.__t("form.datepicker.invalid")),!1)}function ee(K){const he=F(K)?se(K):K.__fields,Ee=K.__ampm&&K.__periods;if(K.__hour){const N=he?he.h:0;K.__hour.value=z(Ee?P(N):N)}K.__minute&&(K.__minute.value=z(he?he.mi:0)),K.__ampm&&K.__periods&&(K.__pm=he?he.h>=12:!1,K.__ampm.textContent=K.__pm?K.__periods.pm:K.__periods.am)}function X(K){const he=K.__view;if(ve(K,he.y,he.mo,K.__cursor))return;if(F(K)){le(K,he.y,he.mo,K.__cursor,j);return}const Ee=K.__fields,N={y:he.y,mo:he.mo,d:K.__cursor,h:Ee?Ee.h:0,mi:Ee?Ee.mi:0};D(K,N),$e(K)}function ge(K){if(K.__popup.hidden===!1||K.__item.disabled===!0||K.__item.readOnly===!0)return;const he=K.__fields,Ee=new Date;K.__view=he&&he.y!=null?{y:he.y,mo:he.mo}:{y:Ee.getFullYear(),mo:Ee.getMonth()+1},K.__cursor=he&&he.d!=null?he.d:Ee.getDate(),W(K),K.__popup.hidden=!1,j(K),K.__layer=n(K.__popup,K,{aboveClass:q,matchWidth:!1,onOffscreen:()=>$e(K)})}function $e(K){R(K),K.__popup.hidden=!0,K.__popup.classList.remove(q),K.__layer&&(K.__layer.close(),K.__layer=null)}H("datepicker",{kind:"field",build(K,he){const Ee=he.doc;E(Ee);const N=Ee.createElement("div");N.className="lat-form__datepicker",N.__item=K,N.__t=he.t||T,N.__mode=G(K),N.__readOnly=K.readOnly===!0,N.__fields=A(K,K.value),N.__cursor=N.__fields&&N.__fields.d!=null?N.__fields.d:new Date().getDate(),N.__view=N.__fields&&N.__fields.y!=null?{y:N.__fields.y,mo:N.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const g=Ee.createElement("input");g.type="text",g.className="lat-form__datepicker-input",K.name&&(g.name=K.name),K.placeholder!=null&&(g.placeholder=String(K.placeholder)),K.label!=null&&K.label!==""&&g.setAttribute("aria-label",String(K.label)),g.setAttribute("autocomplete","off"),g.value=u(K,N.__fields),N.__input=g,N.__typedDirty=!1,g.addEventListener("input",()=>{N.__typedDirty=!0});const Q=Ee.createElement("button");Q.type="button",Q.className="lat-form__datepicker-toggle";const M=G(K)==="date";Q.setAttribute("aria-label",N.__t(M?"form.datepicker.open":"form.datepicker.openTime"));const a=e(Ee,M?"calendar":"clock");if(a&&Q.appendChild(a),N.__toggle=Q,K.props&&K.props.clearable===!0){const de=Ee.createElement("button");de.type="button",de.className="lat-form__datepicker-clear",de.setAttribute("aria-label",N.__t("form.datepicker.clear")),de.hidden=!0;const Pe=e(Ee,"close");Pe&&de.appendChild(Pe),N.__clear=de,de.addEventListener("click",()=>{N.__readOnly!==!0&&($e(N),J(N)&&l(N),N.__input.focus())})}const Y=Ee.createElement("div");Y.className="lat-form__datepicker-popup lat-form__datepicker",Y.hidden=!0,N.__popup=Y,N.appendChild(g),N.appendChild(Q),N.__clear&&N.appendChild(N.__clear),N.appendChild(Y),g.addEventListener("focus",()=>{ge(N)}),Q.addEventListener("pointerdown",()=>{O(N,Y)}),Q.addEventListener("click",()=>{ge(N)}),g.addEventListener("change",de=>{B(N)||de.stopPropagation()}),g.addEventListener("keydown",de=>{de.key==="Escape"?$e(N):de.key==="Enter"&&N.__fields!=null&&String(g.value).trim()===""&&N.__readOnly!==!0&&(de.preventDefault(),$e(N),J(N)&&l(N))}),N.__ampm=null,N.__periods=null,N.__pm=!1;const fe=de=>{N.contains(de.target)||Y.contains(de.target)||re(N)},me=de=>{if((N.contains(de.target)||Y.contains(de.target))&&!(de.relatedTarget&&(N.contains(de.relatedTarget)||Y.contains(de.relatedTarget)))){if(!de.relatedTarget){s(Ee,()=>{if(Y.hidden)return;const Se=Ee.activeElement;Se&&(N.contains(Se)||Y.contains(Se))||re(N)});return}re(N)}},Ae=de=>{de.key==="Escape"&&(de.preventDefault(),re(N),N.__toggle.focus())};return Ee.addEventListener("pointerdown",fe),Ee.addEventListener("focusout",me),Y.addEventListener("keydown",Ae),Array.isArray(he.disposers)&&he.disposers.push(()=>{$e(N),Ee.removeEventListener("pointerdown",fe),Ee.removeEventListener("focusout",me),Y.removeEventListener("keydown",Ae)}),N},read(K){return r(K.__item,K.__fields)},write(K,he){b(K,null),K.__fields=A(K.__item,he),K.__draft=null,K.__input.value=u(K.__item,K.__fields),K.__typedDirty=!1,ne(K),K.__fields&&K.__fields.y!=null&&(K.__view={y:K.__fields.y,mo:K.__fields.mo},K.__cursor=K.__fields.d),K.__hour&&!K.__popup.hidden&&ee(K)},state(K,he){K.__input.disabled=he.disabled===!0,K.__input.readOnly=he.readOnly===!0,K.__toggle.disabled=he.disabled===!0||he.readOnly===!0,K.__readOnly=he.readOnly===!0,ne(K)},validate(K,he,Ee){return v(he,Ee)?pe(he,Ee)?typeof he.errorMessage=="string"&&he.errorMessage!==""?he.errorMessage:K.__t("form.datepicker.disabled"):!0:typeof he.errorMessage=="string"&&he.errorMessage!==""?he.errorMessage:!1},live:{disabledDates(K){K.__popup&&K.__popup.hidden===!1&&j(K)}},focus(K){K.__input.focus()}})}),Ie("packages/modules/form/controls/time.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/date-shared.js"),z=I.pad,T=I.echoKey,G=I.fieldsOfDate,C=I.to12Hour,A=I.to24Hour,r=I.withinRange,u=I.dispatchChange,h=te("packages/modules/form/controls/popup-layer.js").openInLayer,c="lat-form__time-popup--above";function l(n){return!!(n.props&&n.props.timeFormat===12)}function t(n){return!!(n.props&&n.props.valueFormat==="object")}function p(n){return!!(n.props&&n.props.editable===!0)}function P(n){return!!(n.props&&n.props.controls===!0)}function o(n){const O=n.props&&n.props.icon;return typeof O=="string"&&O!==""?O:"clock"}function y(n,O){if(typeof O!="string")return null;const ie=O.trim(),F=/^(\d{1,2}):(\d{2})$/.exec(ie);if(F){const se=Number(F[1]),le=Number(F[2]);return se>23||le>59?null:{h:se,mi:le}}if(l(n)){const se=/^(\d{1,2}):(\d{2})\s*([ap])\.?m\.?$/i.exec(ie);if(!se)return null;const le=Number(se[1]),xe=Number(se[2]);return le<1||le>12||xe>59?null:{h:A(le,se[3].toLowerCase()==="p"),mi:xe}}return null}function V(n,O){if(O==null||O==="")return null;if(typeof O=="number"){if(!Number.isFinite(O))return null;const ie=O%1440,F=ie<0?ie+1440:ie;return{h:Math.floor(F/60),mi:Math.round(F%60)}}if(O instanceof Date){const ie=G(n,O);return ie?{h:ie.h,mi:ie.mi}:null}if(typeof O=="string")return y(n,O);if(typeof O=="object"){const ie=Number(O.hour),F=Number(O.minute);return!Number.isFinite(ie)||!Number.isFinite(F)||F<0||F>59?null:l(n)?ie<1||ie>12?null:{h:A(ie,O.AM!==!0),mi:F}:ie<0||ie>23?null:{h:ie,mi:F}}return null}function s(n,O,ie){return O?l(n)?`${z(C(O.h))}:${z(O.mi)} ${O.h<12?ie.am:ie.pm}`:`${z(O.h)}:${z(O.mi)}`:""}function d(n,O,ie){return O?t(n)?l(n)?{hour:C(O.h),minute:O.mi,AM:O.h<12}:{hour:O.h,minute:O.mi}:s(n,O,ie):null}function i(n){const O=n.__item,ie=n.ownerDocument,F=n.__popup;for(;F.firstChild;)F.removeChild(F.firstChild);const se=ie.createElement("div");se.className="lat-form__time-row";const le=ie.createElement("input");le.type="number",le.className="lat-form__time-hour",le.min=n.__twelve?"1":"0",le.max=n.__twelve?"12":"23",le.step="1",le.setAttribute("aria-label",n.__t("form.datepicker.hour"));const xe=ie.createElement("span");xe.className="lat-form__time-colon",xe.textContent=":";const ue=ie.createElement("input");if(ue.type="number",ue.className="lat-form__time-minute",ue.min="0",ue.max="59",ue.step="1",ue.setAttribute("aria-label",n.__t("form.datepicker.minute")),se.appendChild(le),se.appendChild(xe),se.appendChild(ue),F.appendChild(se),n.__hour=le,n.__minute=ue,le.addEventListener("change",()=>{k(n)}),ue.addEventListener("change",()=>{k(n)}),n.__ampm=null,n.__twelve){const be=ie.createElement("button");be.type="button",be.className="lat-form__time-ampm",be.addEventListener("click",()=>{n.__pm=!n.__pm,be.textContent=n.__pm?n.__labels.pm:n.__labels.am,k(n)}),se.appendChild(be),n.__ampm=be}const R=ie.createElement("div");if(R.className="lat-form__time-actions",P(O)){const be=ie.createElement("button");be.type="button",be.className="lat-form__time-close",be.textContent=n.__t("form.time.close"),be.addEventListener("click",()=>{b(n)}),R.appendChild(be);const q=ie.createElement("button");q.type="button",q.className="lat-form__time-save",q.textContent=n.__t("form.time.save"),q.addEventListener("click",()=>{f(n)}),R.appendChild(q)}else{const be=ie.createElement("button");be.type="button",be.className="lat-form__time-done",be.textContent=n.__t("form.datepicker.done"),be.addEventListener("click",()=>{w(n)}),R.appendChild(be)}F.appendChild(R),m(n)}function m(n){const O=n.__draft||{h:0,mi:0};n.__hour&&(n.__hour.value=z(n.__twelve?C(O.h):O.h)),n.__minute&&(n.__minute.value=z(O.mi)),n.__ampm&&(n.__pm=O.h>=12,n.__ampm.textContent=n.__pm?n.__labels.pm:n.__labels.am)}function k(n){const O=n.__hour&&Number(n.__hour.value)||0,ie=n.__minute&&Number(n.__minute.value)||0,F={h:n.__ampm?A(O,n.__pm===!0):O,mi:ie};if(n.__draft=F,P(n.__item)){m(n);return}n.__fields=F,n.__input.value=s(n.__item,F,n.__labels),n.__lastText=s(n.__item,F,n.__labels),u(n),n.__draft=n.__fields,m(n)}function w(n){n.__popup.hidden||(P(n.__item)||k(n),b(n))}function f(n){const O=n.__draft||{h:0,mi:0};n.__fields=O,n.__input.value=s(n.__item,O,n.__labels),n.__lastText=s(n.__item,O,n.__labels),u(n),b(n)}function $(n){n.__popup.hidden!==!1&&(n.__item.disabled===!0||n.__item.readOnly===!0||(n.__draft=n.__fields?{h:n.__fields.h,mi:n.__fields.mi}:{h:0,mi:0},n.__pm=n.__draft.h>=12,n.__popup.hidden=!1,i(n),n.__layer=h(n.__popup,n,{aboveClass:c,matchWidth:!1,onOffscreen:()=>b(n)})))}function b(n){n.__popup.hidden=!0,n.__popup.classList.remove(c),n.__layer&&(n.__layer.close(),n.__layer=null)}function _(n){if(!n.__editable)return;const O=n.__input.value.trim();if(O===n.__lastText)return;const ie=y(n.__item,O);ie&&(n.__fields=ie,n.__input.value=s(n.__item,ie,n.__labels),n.__lastText=s(n.__item,ie,n.__labels)),u(n)}H("time",{kind:"field",build(n,O){const ie=O.doc;E(ie);const F=ie.createElement("div");F.className="lat-form__time",F.__item=n,F.__t=O.t||T,F.__twelve=l(n),F.__object=t(n),F.__editable=p(n),F.__labels={am:F.__t("form.time.am"),pm:F.__t("form.time.pm")},F.__fields=V(n,n.value),F.__draft=F.__fields?{h:F.__fields.h,mi:F.__fields.mi}:null;const se=ie.createElement("input");se.type="text",se.className="lat-form__time-input",n.name&&(se.name=n.name),n.placeholder!=null&&(se.placeholder=String(n.placeholder)),n.label!=null&&n.label!==""&&se.setAttribute("aria-label",String(n.label)),se.setAttribute("autocomplete","off"),se.readOnly=!F.__editable,se.value=s(n,F.__fields,F.__labels),F.__input=se,F.__lastText=se.value;const le=ie.createElement("button");le.type="button",le.className="lat-form__time-toggle",le.setAttribute("aria-label",F.__t("form.time.open"));const xe=e(ie,o(n));xe&&le.appendChild(xe),F.__toggle=le;const ue=ie.createElement("div");ue.className="lat-form__time-popup lat-form__time",ue.hidden=!0,F.__popup=ue,F.appendChild(se),F.appendChild(le),F.appendChild(ue),se.addEventListener("focus",()=>{F.__editable||$(F)}),le.addEventListener("click",()=>{$(F)}),se.addEventListener("change",D=>{D.stopPropagation(),_(F)}),se.addEventListener("keydown",D=>{D.key==="Enter"&&F.__editable?(D.preventDefault(),_(F)):D.key==="Escape"?b(F):D.altKey&&D.key==="ArrowDown"&&(D.preventDefault(),$(F))});const R=D=>{F.contains(D.target)||ue.contains(D.target)||w(F)},be=D=>{(F.contains(D.target)||ue.contains(D.target))&&(D.relatedTarget&&(F.contains(D.relatedTarget)||ue.contains(D.relatedTarget))||w(F))},q=D=>{D.key==="Escape"&&(D.preventDefault(),w(F),F.__toggle.focus())};return ie.addEventListener("pointerdown",R),ie.addEventListener("focusout",be),ue.addEventListener("keydown",q),Array.isArray(O.disposers)&&O.disposers.push(()=>{b(F),ie.removeEventListener("pointerdown",R),ie.removeEventListener("focusout",be),ue.removeEventListener("keydown",q)}),F},read(n){const O=n.__input.value.trim();if(O==="")return null;const ie=y(n.__item,O);return ie?d(n.__item,ie,n.__labels):O},write(n,O){n.__fields=V(n.__item,O),n.__input.value=s(n.__item,n.__fields,n.__labels),n.__lastText=s(n.__item,n.__fields,n.__labels),n.__draft=n.__fields?{h:n.__fields.h,mi:n.__fields.mi}:null},state(n,O){n.__input.disabled=O.disabled===!0,n.__input.readOnly=O.readOnly===!0||!n.__editable,n.__toggle.disabled=O.disabled===!0||O.readOnly===!0},validate(n,O,ie){if(ie==null)return!0;const F=V(O,ie);return F?r(O,`${z(F.h)}:${z(F.mi)}`)?!0:typeof O.errorMessage=="string"&&O.errorMessage!==""?O.errorMessage:!1:typeof O.errorMessage=="string"&&O.errorMessage!==""?O.errorMessage:n.__t("form.time.invalid")},focus(n){n.__input.focus()}})}),Ie("packages/modules/form/controls/daterange.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/date-shared.js"),z=I.echoKey,T=I.daysInMonth,G=I.weekdayName,C=I.monthTitle,A=I.yearTitle,r=I.dispatchChange,u=I.parseDay,v=I.dayISO,h=I.dayNumber,c=I.dayNumberOf,l=I.dayOfNumber,t=I.parseMonth,p=I.monthISO,P=I.monthIndex,o=I.monthOfIndex,y=I.isoWeek,V=I.focusedNavIndex,s=I.restoreNavFocus,d=I.afterFocusSettles,i=I.parseTypedDate,m=I.disabledTestOf,w=te("packages/modules/form/controls/date-typed.js").setTypedError,f=" – ";function $(g){return g.props&&g.props.granularity==="month"?"month":"day"}function b(g){return g.props&&typeof g.props=="object"?g.props:{}}function _(g){return b(g).applyButton!==!1}function n(g){return b(g).weekNumbers===!0}function O(g){return b(g).clearable===!0}function ie(g){const Q=b(g).firstDay;if(Q!=null){const M=Number(Q);if(Number.isFinite(M))return(M%7+7)%7}try{const M=new Intl.Locale(g.locale||void 0).weekInfo;if(M&&M.firstDay)return M.firstDay%7}catch{}return 0}function F(g,Q){return g.min!=null&&Q<String(g.min)||g.max!=null&&Q>String(g.max)}function se(g,Q,M){return!!(F(g,Q)||M&&M(Q))}function le(g,Q,M){if(g==null||Q==null)return null;if(M==="month"){const fe=t(g),me=t(Q);return!fe||!me?null:P(me.y,me.mo)-P(fe.y,fe.mo)}const a=c(g),Y=c(Q);return Number.isNaN(a)||Number.isNaN(Y)?null:Y-a}function xe(g,Q){return $(g)==="month"?Q("form.daterange.months"):Q("form.daterange.days")}function ue(g,Q){if($(g)==="month")return[{label:Q("form.daterange.monthThisMonth"),range:a=>[p(a.getFullYear(),a.getMonth()+1),p(a.getFullYear(),a.getMonth()+1)]},{label:Q("form.daterange.monthLastMonth"),range:a=>{const Y=o(P(a.getFullYear(),a.getMonth()+1)-1);return[p(Y.y,Y.mo),p(Y.y,Y.mo)]}},{label:Q("form.daterange.monthLast3"),range:a=>{const Y=P(a.getFullYear(),a.getMonth()+1),fe=o(Y-2),me=o(Y);return[p(fe.y,fe.mo),p(me.y,me.mo)]}},{label:Q("form.daterange.monthLast6"),range:a=>{const Y=P(a.getFullYear(),a.getMonth()+1),fe=o(Y-5),me=o(Y);return[p(fe.y,fe.mo),p(me.y,me.mo)]}},{label:Q("form.daterange.monthLast12"),range:a=>{const Y=P(a.getFullYear(),a.getMonth()+1),fe=o(Y-11),me=o(Y);return[p(fe.y,fe.mo),p(me.y,me.mo)]}},{label:Q("form.daterange.monthThisYear"),range:a=>[p(a.getFullYear(),1),p(a.getFullYear(),12)]},{label:Q("form.daterange.monthLastYear"),range:a=>[p(a.getFullYear()-1,1),p(a.getFullYear()-1,12)]}];const M=a=>v(a.getFullYear(),a.getMonth()+1,a.getDate());return[{label:Q("form.daterange.today"),range:a=>[M(a),M(a)]},{label:Q("form.daterange.yesterday"),range:a=>{const Y=l(h(a.getFullYear(),a.getMonth()+1,a.getDate())-1);return[v(Y.y,Y.mo,Y.d),v(Y.y,Y.mo,Y.d)]}},{label:Q("form.daterange.last7"),range:a=>{const Y=h(a.getFullYear(),a.getMonth()+1,a.getDate()),fe=l(Y-6);return[v(fe.y,fe.mo,fe.d),M(a)]}},{label:Q("form.daterange.last30"),range:a=>{const Y=h(a.getFullYear(),a.getMonth()+1,a.getDate()),fe=l(Y-29);return[v(fe.y,fe.mo,fe.d),M(a)]}},{label:Q("form.daterange.thisMonth"),range:a=>[v(a.getFullYear(),a.getMonth()+1,1),v(a.getFullYear(),a.getMonth()+1,T(a.getFullYear(),a.getMonth()+1))]},{label:Q("form.daterange.lastMonth"),range:a=>{const Y=o(P(a.getFullYear(),a.getMonth()+1)-1);return[v(Y.y,Y.mo,1),v(Y.y,Y.mo,T(Y.y,Y.mo))]}}]}function R(g,Q){const M=b(g).presets;return M===!1?null:Array.isArray(M)&&M.length?M.map(a=>({label:a&&a.label!=null?String(a.label):"",range:a&&a.range!=null?a.range:["",""]})):ue(g,Q)}function be(g,Q){return g==null&&Q==null?"":Q==null?`${g}${f}`:`${g}${f}${Q}`}function q(g,Q){const M=String(Q??"").trim();if(!M)return{start:null,end:null};if($(g)!=="month"){const de=M.split(/\s+[–—-]\s+|\s+to\s+/i).map(Pe=>i(Pe,g));if(de.length<=2&&de.every(Pe=>Pe)){const[Pe,Se=null]=de;return Se&&Pe>Se?{start:Se,end:Pe}:{start:Pe,end:Se}}}const a=$(g)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,Y=[];let fe;for(;(fe=a.exec(M))!==null;)Y.push(fe[1]);if(Y.length===0)return null;const me=Y[0],Ae=Y.length>1?Y[Y.length-1]:null;if($(g)==="month"){if(!t(me)||Ae&&!t(Ae))return null}else if(!u(me)||Ae&&!u(Ae))return null;return Ae&&me>Ae?{start:Ae,end:me}:{start:me,end:Ae}}function D(g,Q){return new Intl.DateTimeFormat(g.locale||void 0,{month:"short"}).format(new Date(2021,Q-1,1))}function J(g){const Q=g.__draftStart,M=g.__draftEnd;return Q!=null&&M!=null?[Q,M]:Q!=null&&g.__hover!=null&&g.__granularity==="day"?[Q,g.__hover]:Q!=null&&g.__hover!=null&&g.__granularity==="month"?[Q,g.__hover]:null}function ne(g,Q){return g>=Q[0]&&g<=Q[1]}function oe(g,Q){if(g.__granularity==="month"){const Y=P(g.__cursor.y,g.__cursor.mo)+Q,fe=o(Y);g.__cursor=fe,ve(g),K(g);return}const M=h(g.__cursor.y,g.__cursor.mo,g.__cursor.d)+Q,a=l(M);g.__cursor=a,ve(g),K(g)}function ve(g){if(g.__granularity==="month"){g.__cursor.y<g.__view.y?g.__view={y:g.__cursor.y}:g.__cursor.y>g.__view.y+1&&(g.__view={y:g.__cursor.y-1});return}const M=P(g.__cursor.y,g.__cursor.mo),a=P(g.__view.y,g.__view.mo);M<a?g.__view={y:g.__cursor.y,mo:g.__cursor.mo}:M>a+1&&(g.__view=o(M-1))}function pe(g,Q){if(g.__granularity==="month"){g.__view={y:g.__view.y+Q},K(g);return}const M=P(g.__view.y,g.__view.mo)+Q,a=o(M);g.__view=a,K(g)}function x(g,Q){return g&&Q&&g.y===Q.y&&g.mo===Q.mo&&(g.d==null||g.d===Q.d)}function W(g,Q){return g.__granularity==="month"?p(Q.y,Q.mo):v(Q.y,Q.mo,Q.d)}function U(g,Q){const M=W(g,Q);g.__phase!=="started"?(g.__draftStart=M,g.__draftEnd=null,g.__phase="started"):M<g.__draftStart?(g.__draftStart=M,g.__draftEnd=null):(g.__draftEnd=M,g.__phase="idle",_(g.__item)||j(g,!0)),g.__cursor=Q,g.__hover=null,K(g)}function j(g,Q){g.__start=g.__draftStart,g.__end=g.__draftEnd,g.__phase="idle",g.__input.value=be(g.__start,g.__end),r(g),Q&&N(g)}function Z(g){g.__draftStart=g.__start,g.__draftEnd=g.__end,g.__phase="idle",g.__hover=null,N(g)}function ae(g){g.__start=null,g.__end=null,g.__draftStart=null,g.__draftEnd=null,g.__phase="idle",g.__input.value="",r(g)}function re(g,Q,M){for(;M.firstChild;)M.removeChild(M.firstChild);const a=m(g.__item);if(g.__granularity==="month")ge(g,Q,M,g.__view.y,a),ge(g,Q,M,g.__view.y+1,a);else{B(g,Q,M,g.__view.y,g.__view.mo,a);const Y=o(P(g.__view.y,g.__view.mo)+1);B(g,Q,M,Y.y,Y.mo,a)}}function B(g,Q,M,a,Y,fe){const me=g.__item,Ae=Q.createElement("div");Ae.className="lat-form__daterange-panel";const de=Q.createElement("div");de.className="lat-form__daterange-title",de.textContent=C(me,{y:a,mo:Y}),Ae.appendChild(de);const Pe=ie(me),Se=n(me),Be=Q.createElement("div");if(Be.className=Se?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Se){const Fe=Q.createElement("span");Fe.className="lat-form__daterange-weeknum-head",Be.appendChild(Fe)}for(let Fe=0;Fe<7;Fe+=1){const Ge=Q.createElement("span");Ge.textContent=G(me,(Pe+Fe)%7),Be.appendChild(Ge)}Ae.appendChild(Be);const Te=Q.createElement("div");Te.className=Se?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",Te.setAttribute("role","grid"),Te.setAttribute("aria-label",C(me,{y:a,mo:Y})),Te.tabIndex=0,Ae.appendChild(Te);const Me=(new Date(a,Y-1,1).getDay()-Pe+7)%7,Oe=T(a,Y),He=h(a,Y,1)-Me,Re=[];for(let Fe=0;Fe<Me;Fe+=1){Se&&Fe%7===0&&Te.appendChild(ee(g,Q,He));const Ge=Q.createElement("span");Ge.className="lat-form__daterange-blank",Te.appendChild(Ge)}for(let Fe=1;Fe<=Oe;Fe+=1){Se&&(Me+Fe-1)%7===0&&Te.appendChild(ee(g,Q,He+(Me+Fe-1)));const Ge=X(g,Q,a,Y,Fe,fe);Re.push(Ge),Te.appendChild(Ge)}$e(g,Te,Re),M.appendChild(Ae)}function ee(g,Q,M){const a=Q.createElement("span");a.className="lat-form__daterange-weeknum";const Y=new Date(M*864e5),fe=M-(Y.getUTCDay()+6)%7,me=new Date(fe*864e5);return a.textContent=String(y(me.getUTCFullYear(),me.getUTCMonth()+1,me.getUTCDate())),a}function X(g,Q,M,a,Y,fe){const me=v(M,a,Y),Ae=Q.createElement("button");Ae.type="button",Ae.className="lat-form__daterange-day",Ae.setAttribute("role","gridcell"),Ae.textContent=String(Y);const de=J(g),Pe=de?ne(me,de):!1,Se=se(g.__item,me,fe);return Se&&(Ae.disabled=!0),Pe&&Ae.classList.add("is-in-range"),g.__draftStart===me&&Ae.classList.add("is-start"),g.__draftEnd===me&&Ae.classList.add("is-end"),Ae.setAttribute("aria-selected",Pe&&!Se?"true":"false"),g.__cursor&&g.__cursor.y===M&&g.__cursor.mo===a&&g.__cursor.d===Y&&Ae.classList.add("is-focus"),Ae.addEventListener("click",()=>{U(g,{y:M,mo:a,d:Y})}),Ae.addEventListener("mouseover",()=>{g.__draftStart!=null&&g.__draftEnd==null&&!Se&&g.__hover!==me&&(g.__hover=me,K(g))}),Ae}function ge(g,Q,M,a,Y){const fe=g.__item,me=Q.createElement("div");me.className="lat-form__daterange-panel";const Ae=Q.createElement("div");Ae.className="lat-form__daterange-title",Ae.textContent=A({y:a}),me.appendChild(Ae);const de=Q.createElement("div");de.className="lat-form__daterange-grid lat-form__daterange-grid--months",de.setAttribute("role","grid"),de.setAttribute("aria-label",A({y:a})),me.appendChild(de);const Pe=[];for(let Se=1;Se<=12;Se+=1){const Be=p(a,Se),Te=Q.createElement("button");Te.type="button",Te.className="lat-form__daterange-month",Te.setAttribute("role","gridcell"),Te.textContent=D(fe,Se);const Ne=J(g),Me=Ne?ne(Be,Ne):!1,Oe=se(fe,Be,Y);Oe&&(Te.disabled=!0),Me&&Te.classList.add("is-in-range"),g.__draftStart===Be&&Te.classList.add("is-start"),g.__draftEnd===Be&&Te.classList.add("is-end"),Te.setAttribute("aria-selected",Me&&!Oe?"true":"false"),g.__cursor&&g.__cursor.y===a&&g.__cursor.mo===Se&&g.__cursor.d==null&&Te.classList.add("is-focus"),Te.addEventListener("click",()=>{U(g,{y:a,mo:Se})}),Pe.push(Te),de.appendChild(Te)}de.addEventListener("keydown",Se=>{if(Se.key==="ArrowLeft")Se.preventDefault(),oe(g,-1);else if(Se.key==="ArrowRight")Se.preventDefault(),oe(g,1);else if(Se.key==="ArrowUp")Se.preventDefault(),oe(g,-3);else if(Se.key==="ArrowDown")Se.preventDefault(),oe(g,3);else if(Se.key==="PageUp")Se.preventDefault(),pe(g,-1);else if(Se.key==="PageDown")Se.preventDefault(),pe(g,1);else if(Se.key==="Enter"||Se.key===" "){Se.preventDefault();const Be=W(g,g.__cursor);se(g.__item,Be,Y)||U(g,g.__cursor)}}),M.appendChild(me)}function $e(g,Q,M){Q.addEventListener("keydown",a=>{const Y=g.__cursor;if(a.key==="ArrowLeft")a.preventDefault(),oe(g,-1);else if(a.key==="ArrowRight")a.preventDefault(),oe(g,1);else if(a.key==="ArrowUp")a.preventDefault(),oe(g,-7);else if(a.key==="ArrowDown")a.preventDefault(),oe(g,7);else if(a.key==="PageUp")a.shiftKey?(a.preventDefault(),pe(g,-12)):(a.preventDefault(),pe(g,-1));else if(a.key==="PageDown")a.shiftKey?(a.preventDefault(),pe(g,12)):(a.preventDefault(),pe(g,1));else if((a.key==="Enter"||a.key===" ")&&(a.preventDefault(),Y&&Y.d!=null)){const fe=v(Y.y,Y.mo,Y.d);se(g.__item,fe,m(g.__item))||U(g,Y)}})}function K(g){const Q=g.ownerDocument,M=g.__popup,a=g.__item,Y=V(M,"lat-form__daterange-nav");for(;M.firstChild;)M.removeChild(M.firstChild);const fe=Q.createElement("div");fe.className="lat-form__daterange-head";const me=Q.createElement("button");me.type="button",me.className="lat-form__daterange-nav",me.setAttribute("aria-label",g.__t("form.daterange.prev")),me.textContent="‹",me.addEventListener("click",()=>{pe(g,-1)});const Ae=Q.createElement("button");Ae.type="button",Ae.className="lat-form__daterange-nav",Ae.setAttribute("aria-label",g.__t("form.daterange.next")),Ae.textContent="›",Ae.addEventListener("click",()=>{pe(g,1)}),fe.appendChild(me);const de=Q.createElement("div");de.className="lat-form__daterange-body";const Pe=R(a,g.__t);if(Pe){const Be=Q.createElement("div");Be.className="lat-form__daterange-presets";const Te=Q.createElement("div");Te.className="lat-form__daterange-presets-title",Te.textContent=g.__t("form.daterange.presets"),Be.appendChild(Te);for(const Ne of Pe){const Me=Q.createElement("button");Me.type="button",Me.className="lat-form__daterange-preset",Me.textContent=Ne.label,Me.addEventListener("click",()=>{he(g,Ne.range)}),Be.appendChild(Me)}de.appendChild(Be)}const Se=Q.createElement("div");if(Se.className="lat-form__daterange-panels",re(g,Q,Se),de.appendChild(Se),fe.appendChild(de),fe.appendChild(Ae),M.appendChild(fe),_(a)){const Be=Q.createElement("div");Be.className="lat-form__daterange-footer";const Te=Q.createElement("button");Te.type="button",Te.className="lat-form__daterange-cancel",Te.textContent=g.__t("form.daterange.cancel"),Te.addEventListener("click",()=>{Z(g)});const Ne=Q.createElement("button");Ne.type="button",Ne.className="lat-form__daterange-apply",Ne.textContent=g.__t("form.daterange.apply"),Ne.addEventListener("click",()=>{j(g,!0)}),Be.appendChild(Te),Be.appendChild(Ne),M.appendChild(Be)}s(M,"lat-form__daterange-nav",Y)}function he(g,Q){const M=typeof Q=="function"?Q(new Date):Q;if(!(!Array.isArray(M)||M.length<2)){if(g.__draftStart=M[0],g.__draftEnd=M[1],g.__phase="idle",g.__hover=null,g.__granularity==="day"){const a=u(M[0]);a&&(g.__view={y:a.y,mo:a.mo}),g.__cursor=a||g.__cursor}else{const a=t(M[0]);a&&(g.__view={y:a.y}),g.__cursor=a||g.__cursor}K(g)}}function Ee(g){if(g.__popup.hidden===!1||g.__item.disabled===!0||g.__item.readOnly===!0)return;g.__draftStart=g.__start,g.__draftEnd=g.__end,g.__phase="idle",g.__hover=null;const Q=new Date;if(g.__granularity==="month"){const M=t(g.__start)||{y:Q.getFullYear(),mo:Q.getMonth()+1};g.__view={y:M.y},g.__cursor=M}else{const M=u(g.__start)||{y:Q.getFullYear(),mo:Q.getMonth()+1,d:Q.getDate()};g.__view={y:M.y,mo:M.mo},g.__cursor=M}g.__popup.hidden=!1,K(g)}function N(g){g.__popup.hidden=!0}H("daterange",{kind:"field",build(g,Q){const M=Q.doc;E(M);const a=M.createElement("div");a.className="lat-form__daterange",a.__item=g,a.__t=Q.t||z,a.__granularity=$(g),a.__start=null,a.__end=null,a.__draftStart=null,a.__draftEnd=null,a.__hover=null,a.__phase="idle";const Y=typeof g.value=="object"&&g.value!=null?g.value:{};Y&&Y.start!=null&&(a.__start=String(Y.start)),Y&&Y.end!=null&&(a.__end=String(Y.end));const fe=M.createElement("input");fe.type="text",fe.className="lat-form__daterange-input",g.name&&(fe.name=g.name),g.placeholder!=null&&(fe.placeholder=String(g.placeholder)),g.label!=null&&g.label!==""&&fe.setAttribute("aria-label",String(g.label)),fe.setAttribute("autocomplete","off"),fe.value=be(a.__start,a.__end),a.__input=fe;const me=M.createElement("button");me.type="button",me.className="lat-form__daterange-toggle",me.setAttribute("aria-label",a.__t("form.daterange.open"));const Ae=e(M,"calendar");Ae&&me.appendChild(Ae),a.__toggle=me;const de=M.createElement("button");de.type="button",de.className="lat-form__daterange-clear",de.setAttribute("aria-label",a.__t("form.daterange.clear"));const Pe=e(M,"close");Pe&&de.appendChild(Pe),de.hidden=!O(g)||a.__start==null&&a.__end==null,a.__clear=de;const Se=M.createElement("div");Se.className="lat-form__daterange-popup",Se.hidden=!0,a.__popup=Se,a.appendChild(fe),a.appendChild(de),a.appendChild(me),a.appendChild(Se),fe.addEventListener("focus",()=>{Ee(a)}),me.addEventListener("click",()=>{Ee(a)}),de.addEventListener("click",()=>{ae(a)}),fe.addEventListener("change",Me=>{const Oe=q(g,fe.value);Oe?(w(a,null),a.__start=Oe.start,a.__end=Oe.end,fe.value=be(Oe.start,Oe.end)):(Me.stopPropagation(),fe.value=be(a.__start,a.__end),w(a,a.__t("form.datepicker.invalid")))}),fe.addEventListener("keydown",Me=>{Me.key==="Escape"&&(Z(a),a.__toggle.focus())});const Be=Me=>{a.contains(Me.target)||Z(a)},Te=Me=>{if(!(Me.relatedTarget&&a.contains(Me.relatedTarget))){if(!Me.relatedTarget){d(a.ownerDocument,()=>{if(a.__popup.hidden)return;const Oe=a.ownerDocument.activeElement;Oe&&a.contains(Oe)||Z(a)});return}Z(a)}},Ne=Me=>{Me.key==="Escape"&&(Me.preventDefault(),Z(a),a.__toggle.focus())};return M.addEventListener("pointerdown",Be),a.addEventListener("focusout",Te),Se.addEventListener("keydown",Ne),Array.isArray(Q.disposers)&&Q.disposers.push(()=>{M.removeEventListener("pointerdown",Be),a.removeEventListener("focusout",Te),Se.removeEventListener("keydown",Ne)}),a},read(g){return{start:g.__start,end:g.__end}},write(g,Q){w(g,null);const M=Q&&typeof Q=="object"?Q:{};g.__start=M.start!=null?String(M.start):null,g.__end=M.end!=null?String(M.end):null,g.__input.value=be(g.__start,g.__end),g.__clear&&(g.__clear.hidden=!O(g.__item)||g.__start==null&&g.__end==null)},state(g,Q){g.__input.disabled=Q.disabled===!0,g.__input.readOnly=Q.readOnly===!0,g.__toggle.disabled=Q.disabled===!0||Q.readOnly===!0},validate(g,Q,M){const a=M&&typeof M=="object"?M:{start:null,end:null},Y=a.start!=null?String(a.start):null,fe=a.end!=null?String(a.end):null,me=g.__t;if(Q.required===!0&&Y==null&&fe==null)return me("form.validation.required");if(Y==null&&fe==null)return!0;if(Y==null||fe==null)return me("form.daterange.invalid");if(F(Q,Y)||F(Q,fe))return me("form.daterange.bounds");const Ae=le(Y,fe,g.__granularity);if(Ae==null)return me("form.daterange.invalid");const de=b(Q).minSpan,Pe=b(Q).maxSpan;return de!=null&&Ae<Number(de)?me("form.daterange.minSpan",{min:String(de),unit:xe(Q,me)}):Pe!=null&&Ae>Number(Pe)?me("form.daterange.maxSpan",{max:String(Pe),unit:xe(Q,me)}):!0},live:{disabledDates(g){g.__popup&&g.__popup.hidden===!1&&K(g)}},focus(g){g.__input.focus()}})}),Ie("packages/modules/form/controls/file.js",function(S,te){"use strict";Object.defineProperty(S,"formatSize",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"accepts",{enumerable:!0,get:function(){return A}});const H=te("packages/modules/form/controls/registry.js").registerControl,L="lat-uploader",e="http://www.w3.org/2000/svg",E="data-lattice-uploader-styles";function I(){return`
|
|
2070
2070
|
.${L}{
|
|
2071
2071
|
--lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
|
|
2072
2072
|
--lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
|
|
@@ -2193,8 +2193,8 @@ ${N()}
|
|
|
2193
2193
|
.${L}__zone.is-dragover, .${L}__zone.is-invalid{ box-shadow:none; }
|
|
2194
2194
|
.${L}__item-fill{ transition:none; }
|
|
2195
2195
|
}
|
|
2196
|
-
`.trim()}function z(s){const d=s&&s.documentElement;if(!d||d.getAttribute(E))return;d.setAttribute(E,"1");const i=s.createElement("style");i.textContent=I(),(s.head||s.body||d).appendChild(i)}function N(s,d){const i=d&&d.defaultView,m=i&&i.Event,k=m?new m("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};s.dispatchEvent(k)}function G(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function C(s){const d=Number(s)||0;return d<1024?`${d} B`:d<1048576?`${(d/1024).toFixed(d<10240?1:0)} KB`:d<1073741824?`${(d/1048576).toFixed(1)} MB`:`${(d/1073741824).toFixed(2)} GB`}function A(s,d){if(!d||!d.length)return!0;const i=(s.name||"").toLowerCase(),m=(s.type||"").toLowerCase();return d.some(k=>{const w=String(k).trim().toLowerCase();return w.startsWith(".")?i.endsWith(w):w.endsWith("/*")?m.startsWith(w.slice(0,-1)):m===w})}function r(s){return s.length?s.length===1?s[0]:s.length===2?`${s[0]} or ${s[1]}`:`${s.slice(0,-1).join(", ")} or ${s[s.length-1]}`:""}function u(s){const d={".pdf":"PDF",".doc":"DOC",".docx":"DOCX",".xls":"XLS",".xlsx":"XLSX",".csv":"CSV",".txt":"TXT",".png":"PNG",".jpg":"JPG",".jpeg":"JPEG",".gif":"GIF",".svg":"SVG",".webp":"WEBP",".zip":"ZIP","image/*":"images","video/*":"videos","audio/*":"audio","text/*":"text","application/pdf":"PDF"},i=String(s).trim(),m=d[i.toLowerCase()];if(m)return m;if(i.startsWith("."))return i.slice(1).toUpperCase();if(i.endsWith("/*"))return`${i.slice(0,-2)}s`;const k=i.split("/")[1];return k?k.toUpperCase():i}function v(s,d,i,m){const k=[];return d&&d.length&&k.push(r(d.map(u))),i&&k.push(s("form.file.hint.size",{size:C(i)})),m&&k.push(s(m===1?"form.file.hint.file":"form.file.hint.files",{max:String(m)})),k.join(" · ")}function h(s){return{id:s.id,name:s.name,size:s.size,type:s.type,status:s.status,progress:s.progress,message:s.message||""}}function c(s,d){const i=s.createElementNS(e,"svg");i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("focusable","false"),i.setAttribute("aria-hidden","true"),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","1.5"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round");const m=s.createElementNS("http://www.w3.org/2000/svg","path");return m.setAttribute("d",d),i.appendChild(m),i}const l=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 t(s,d){const i=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let m;for(;m=i.exec(d);)s.setAttribute(m[1],m[3]===void 0?m[4]:m[3])}function p(s,d){const i=/<svg\b([^>]*)>/i.exec(d);if(!i)return null;const m=s.createElementNS(e,"svg");t(m,i[1]);const k=d.lastIndexOf("</svg"),w=k===-1?"":d.slice(i.index+i[0].length,k),f=/<(\w+)\b([^>]*?)(\/?)>/g;let $;for(;$=f.exec(w);){const b=s.createElementNS(e,$[1]);t(b,$[2]),m.appendChild(b)}return m.setAttribute("aria-hidden","true"),m.setAttribute("focusable","false"),m}function P(s,d){if(s===!1)return null;if(s!=null&&typeof s=="object"&&s.nodeType){const m=s;return m.classList.add(`${L}__icon`),m.setAttribute("aria-hidden","true"),m}if(typeof s!="string"||s==="")return null;const i=l[s]?c(d,l[s]):p(d,s);return i?(i.setAttribute("class",`${L}__icon`),i):null}function o(s){const d=s.type||"";return d.startsWith("image/")?"image":d==="application/pdf"||/\.pdf$/i.test(s.name)?"document":"file"}function y(s){if(s.thumb)return s.thumb;if(!s.file||!/^image\//.test(s.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{s.thumb=URL.createObjectURL(s.file)}catch{s.thumb=null}return s.thumb}function V(s){if(s.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(s.thumb)}catch{}s.thumb=null}H("file",{kind:"field",build(s,d){const i=d.doc,m=d.t,k=s.props||{},w=Array.isArray(k.accept)?k.accept.map(j=>String(j)):[],f=Number(k.maxSize)||0,$=Number(k.maxFiles)||0,b=k.multiple!==!1,_=typeof k.upload=="function"?k.upload:null,n=k.dropzone!==!1,O=k.dropText!=null?String(k.dropText):m("form.file.dropText"),ie=k.browseText!=null?String(k.browseText):m("form.file.browse"),F=m("form.file.dropToUpload"),se=m("form.file.addMore"),le=m("form.file.typeNotAccepted"),ke=k.hint!=null&&k.hint!==""?String(k.hint):v(m,w,f,$);z(i);const ce=i.createElement("div");ce.className=L;const B={accept:w,maxSize:f,maxFiles:$,multiple:b,upload:_,dropText:O,browse:ie,dropToUpload:F,addMore:se,typeNotAccepted:le,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:n,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};ce.__latFile=B;const be=i.createElement("input");be.type="file",be.className=`${L}__input`,be.tabIndex=-1,be.setAttribute("aria-hidden","true"),b&&(be.multiple=!0),w.length&&(be.accept=w.join(",")),ce.appendChild(be),B.input=be;const q=i.createElement("div");q.className=`${L}__zone`,q.setAttribute("role","button"),q.tabIndex=0,q.setAttribute("aria-label",`${O} ${ie}`);const D=k.icon==null?c(i,l.upload):P(k.icon,i);D&&(k.icon==null&&D.setAttribute("class",`${L}__icon`),q.appendChild(D));const J=i.createElement("span");J.className=`${L}__title`;const ne=i.createElement("span");ne.className=`${L}__title-rest`,ne.textContent=O,J.appendChild(ne);const oe=i.createElement("button");oe.type="button",oe.className=`${L}__browse`,oe.tabIndex=-1,oe.textContent=ie,J.appendChild(oe),q.appendChild(J),B.titleRest=ne,B.browseEl=oe;const ve=i.createElement("span");if(ve.className=`${L}__drop`,ve.textContent=F,q.appendChild(ve),ke){const j=i.createElement("span");j.className=`${L}__hint`,j.textContent=ke,q.appendChild(j)}const pe=i.createElement("span");pe.className=`${L}__compact`,pe.appendChild(c(i,l.upload));const x=i.createElement("span");x.className=`${L}__compact-text`,x.textContent=se,pe.appendChild(x),q.appendChild(pe),B.compactText=x,ce.appendChild(q),B.zone=q;const W=i.createElement("ul");W.className=`${L}__list`,W.setAttribute("role","list"),W.hidden=!0,ce.appendChild(W),B.list=W;const U=i.createElement("div");return U.className=`${L}__live`,U.setAttribute("role","status"),U.setAttribute("aria-live","polite"),ce.appendChild(U),B.live=U,ce.__latAnnounce=j=>{B.live&&(B.live.textContent="",B.live.textContent=j)},ce.__latDragState=j=>{B.zone.classList.toggle("is-dragover",j==="over"),B.zone.classList.toggle("is-invalid",j==="invalid"),j==="none"?(B.titleRest.textContent=B.dropText,B.browseEl.hidden=!1,B.compactText.textContent=B.addMore):j==="over"?(B.titleRest.textContent=B.dropToUpload,B.browseEl.hidden=!0,B.compactText.textContent=B.dropToUpload):(B.titleRest.textContent=B.typeNotAccepted,B.browseEl.hidden=!0,B.compactText.textContent=B.typeNotAccepted)},ce.__latPaint=()=>{const j=B.disabled||B.readOnly||!B.dropzone;B.zone.hidden=j,B.zone.tabIndex=j?-1:0,j?B.zone.setAttribute("aria-disabled","true"):B.zone.removeAttribute("aria-disabled"),B.input.disabled=j;const Z=B.entries.length>0;B.zone.classList.toggle("is-compact",Z),B.zone.setAttribute("aria-label",Z?B.addMore:`${B.dropText} ${B.browse}`),W.hidden=!B.entries.length,W.tabIndex=B.readOnly&&!B.disabled?0:-1,B.entries.some(re=>re.status==="rejected")?ce.setAttribute("aria-invalid","true"):ce.removeAttribute("aria-invalid"),W.textContent="";for(const re of B.entries){const R=i.createElement("li");R.className=`${L}__item is-${re.status}`,R.setAttribute("data-id",re.id),R.setAttribute("role","listitem");const ee=y(re);if(ee){const T=i.createElement("img");T.className=`${L}__item-thumb`,T.src=ee,T.alt="",R.appendChild(T)}else{const T=c(i,l[o(re)]);T.setAttribute("class",`${L}__item-icon`),R.appendChild(T)}const X=i.createElement("div");X.className=`${L}__item-main`,R.appendChild(X);const ge=i.createElement("div");ge.className=`${L}__item-row`,X.appendChild(ge);const $e=i.createElement("span");$e.className=`${L}__item-name`,$e.textContent=re.name,$e.title=re.name,ge.appendChild($e);const K=i.createElement("span");K.className=`${L}__item-size`,K.textContent=C(re.size),ge.appendChild(K);const he=i.createElement("span");if(he.className=`${L}__item-state`,re.status==="uploading"){const T=i.createElement("span");T.className=`${L}__item-pct`,T.textContent=`${re.progress}%`,he.appendChild(T)}else re.status==="done"?he.appendChild(c(i,l.check)):(re.status==="error"||re.status==="rejected")&&he.appendChild(c(i,l.warn));ge.appendChild(he);const Ee=i.createElement("button");if(Ee.type="button",Ee.className=`${L}__remove`,Ee.setAttribute("aria-label",`${m("form.file.remove")} ${re.name}`),Ee.title=m("form.file.remove"),Ee.appendChild(c(i,l.xmark)),Ee.setAttribute("data-remove",re.id),Ee.disabled=B.disabled||B.readOnly,ge.appendChild(Ee),re.status==="uploading"){const T=i.createElement("span");T.className=`${L}__item-bar`,T.setAttribute("role","progressbar"),T.setAttribute("aria-valuemin","0"),T.setAttribute("aria-valuemax","100"),T.setAttribute("aria-valuenow",String(re.progress));const g=i.createElement("span");g.className=`${L}__item-fill`,g.style.width=`${re.progress}%`,T.appendChild(g),X.appendChild(T)}if(re.message){const T=i.createElement("span");if(T.className=`${L}__item-message`,T.appendChild(i.createTextNode(re.message)),re.status==="error"){T.appendChild(i.createTextNode(" "));const g=i.createElement("button");g.type="button",g.className=`${L}__retry`,g.textContent=m("form.file.retry"),g.setAttribute("data-retry",re.id),g.disabled=B.disabled||B.readOnly,T.appendChild(g)}X.appendChild(T)}W.appendChild(R)}},ce.__latUpload=j=>{if(!B.upload){j.status="done",j.progress=100,ce.__latPaint();return}j.status="uploading",j.progress=0,j.message="";let Z=null;typeof AbortController<"u"&&(Z=new AbortController,B.controllers.set(j.id,Z));const ae=Z?Z.signal:void 0,re=ee=>{j.progress=Math.max(0,Math.min(100,Number(ee)||0)),j.status="uploading",ce.__latPaint()};let R;try{R=B.upload(j.file,{onProgress:re,signal:ae})}catch(ee){R=Promise.reject(ee)}R&&typeof R.then=="function"&&R.then(()=>{B.controllers.delete(j.id),j.status="done",j.progress=100,ce.__latPaint(),ce.__latAnnounce(m("form.file.uploaded",{name:j.name})),N(ce,d.doc)},ee=>{B.controllers.delete(j.id),j.status="error",j.message=ee&&ee.message?String(ee.message):m("form.file.uploadFailed"),ce.__latPaint(),ce.__latAnnounce(m("form.file.failed",{name:j.name})),N(ce,d.doc)})},ce.__latTake=j=>{const Z=[...j||[]];if(!Z.length||B.disabled||B.readOnly)return;const ae=B.multiple?Z:Z.slice(0,1),re=[],R=[];let ee=B.maxFiles?Math.max(0,B.maxFiles-B.entries.length):1/0;for(const X of ae){if(ee<=0){R.push({file:X,reason:"count"});continue}if(B.maxSize&&X.size>B.maxSize){R.push({file:X,reason:"size"});continue}if(!A(X,B.accept)){R.push({file:X,reason:"type"});continue}re.push({id:G(),file:X,name:X.name,size:X.size,type:X.type,status:"selected",progress:0,message:""}),ee-=1}if(re.length){B.multiple||(B.entries=[]),B.entries.push(...re),ce.__latPaint(),N(ce,d.doc),ce.__latAnnounce(re.length===1?m("form.file.addedOne"):m("form.file.added",{count:String(re.length)}));for(const X of re)ce.__latUpload(X)}for(const X of R){const ge=X.reason==="size"?m("form.file.rejected.size",{size:C(B.maxSize)}):X.reason==="type"?m("form.file.rejected.type"):m("form.file.rejected.count",{max:String(B.maxFiles)});B.entries.push({id:G(),file:X.file,name:X.file.name,size:X.file.size,type:X.file.type,status:"rejected",progress:0,message:ge}),ce.__latAnnounce(ge)}ce.__latPaint()},ce.__latRemove=j=>{const Z=B.controllers.get(j);Z&&(Z.abort(),B.controllers.delete(j));const ae=B.entries.find(re=>re.id===j);ae&&V(ae),B.entries=B.entries.filter(re=>re.id!==j),ce.__latPaint(),N(ce,d.doc)},ce.__latRetry=j=>{if(B.disabled||B.readOnly)return;const Z=B.entries.find(ae=>ae.id===j);!Z||!Z.file||Z.status==="rejected"||(ce.__latUpload(Z),N(ce,d.doc))},ce.__latClick=j=>{if(B.disabled||B.readOnly)return;const Z=j.target&&j.target.closest?j.target:null,ae=Z&&Z.closest?Z.closest("[data-remove]"):null;if(ae&&ce.contains(ae)){ce.__latRemove(ae.getAttribute("data-remove"));return}const re=Z&&Z.closest?Z.closest("[data-retry]"):null;if(re&&ce.contains(re)){ce.__latRetry(re.getAttribute("data-retry"));return}Z&&Z.closest&&Z.closest(`.${L}__zone`)&&B.input.click()},ce.__latKeydown=j=>{B.disabled||B.readOnly||(j.key==="Enter"||j.key===" "||j.key==="Spacebar")&&j.target===B.zone&&(j.preventDefault(),B.input.click())},ce.__latChange=()=>{ce.__latTake(B.input.files),B.input.value=""},ce.__latDragKind=j=>{if(!B.accept.length)return"over";const Z=j.dataTransfer;if(!Z||!Z.types||!Z.types.length)return"over";const ae=Array.from(Z.types);return ae.includes("Files")?"over":ae.every(re=>!A({name:"",type:re},B.accept))?"invalid":"over"},ce.__latDrag=j=>{if(!(B.disabled||B.readOnly)){if(j.type==="dragenter"||j.type==="dragover"){j.preventDefault(),ce.__latDragState(ce.__latDragKind(j));return}if(j.type==="dragleave"){if(j.relatedTarget&&B.zone.contains(j.relatedTarget))return;ce.__latDragState("none");return}j.type==="drop"&&(j.preventDefault(),ce.__latDragState("none"),ce.__latTake(j.dataTransfer&&j.dataTransfer.files))}},ce.__latPaste=j=>{if(B.disabled||B.readOnly||!j.clipboardData)return;const Z=[...j.clipboardData.files||[]];Z.length&&(j.preventDefault(),ce.__latTake(Z))},be.addEventListener("change",ce.__latChange),ce.addEventListener("click",ce.__latClick),ce.addEventListener("keydown",ce.__latKeydown),ce.addEventListener("paste",ce.__latPaste),n&&["dragenter","dragover","dragleave","drop"].forEach(j=>ce.addEventListener(j,ce.__latDrag)),ce.__latPaint(),ce},read(s){const d=s.__latFile;return d?d.entries.filter(i=>i.status!=="rejected").map(h):[]},write(s,d){const i=s.__latFile;if(!i)return;const m=Array.isArray(d)?d:[],k=i.entries.filter(w=>w.status==="rejected");for(const w of i.entries)k.includes(w)||V(w);i.entries=k;for(const w of m)i.entries.push({id:w&&w.id?String(w.id):G(),file:w&&w.file?w.file:null,name:w&&w.name!=null?String(w.name):"",size:w&&w.size!=null?Number(w.size):0,type:w&&w.type!=null?String(w.type):"",status:w&&w.status?String(w.status):"done",progress:w&&w.progress!=null?Number(w.progress):100,message:w&&w.message?String(w.message):""});s.__latPaint&&s.__latPaint()},state(s,d){const i=s.__latFile;i&&(i.disabled=d.disabled===!0,i.readOnly=d.readOnly===!0,i.disabled?s.setAttribute("aria-disabled","true"):s.removeAttribute("aria-disabled"),i.readOnly?s.setAttribute("aria-readonly","true"):s.removeAttribute("aria-readonly"),s.__latPaint&&s.__latPaint())},validate(s,d,i){const m=s.__latFile;if(!m)return null;const k=m.entries.find(w=>w.status==="rejected");return k&&k.message&&(!Array.isArray(i)||i.length===0)?k.message:m.maxFiles&&Array.isArray(i)&&i.length>m.maxFiles?`Too many files (max ${m.maxFiles})`:null}})}),Ie("packages/dom/src/editors/richtext-icons.js",function(S,te){"use strict";Object.defineProperty(S,"TOOL_GLYPHS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"letterGlyph",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"toolGlyph",{enumerable:!0,get:function(){return E}});const xe="http://www.w3.org/2000/svg",H=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),L=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 e(I,z){const N=H[z],G=I.createElementNS(xe,"svg");G.setAttribute("viewBox","0 0 16 16"),G.setAttribute("width","16"),G.setAttribute("height","16"),G.setAttribute("focusable","false"),G.setAttribute("aria-hidden","true");const C=I.createElementNS(xe,"text");return C.setAttribute("x","8"),C.setAttribute("y","12"),C.setAttribute("text-anchor","middle"),C.style.fontSize="12px",C.style.fill="currentColor",C.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',N.weight&&(C.style.fontWeight=N.weight),N.style&&(C.style.fontStyle=N.style),N.decoration&&(C.style.textDecoration=N.decoration),C.textContent=N.char,G.appendChild(C),G}function E(I,z){const N=I.createElementNS(xe,"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 G=I.createElementNS(xe,"path");return G.setAttribute("d",L[z]),N.appendChild(G),N}}),Ie("packages/modules/form/controls/swatches.js",function(S,te){"use strict";Object.defineProperty(S,"DEFAULT_COLORS",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"hslToHex",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"buildSwatchButton",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"buildSwatchGrid",{enumerable:!0,get:function(){return A}});const xe=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),H=Object.freeze([0,24,48,84,140,168,196,224,268,320]),L=Object.freeze([.82,.66,.5,.36,.22]),e=.62,E=Object.freeze([.92,.76,.56,.36,.18]);function I(r,u,v){let h=v;return h<0&&(h+=1),h>1&&(h-=1),h<1/6?r+(u-r)*6*h:h<1/2?u:h<2/3?r+(u-r)*(2/3-h)*6:r}function z(r,u,v){const h=(r%360+360)%360/360;let c,l,t;if(u===0)c=v,l=v,t=v;else{const P=v<.5?v*(1+u):v+u-v*u,o=2*v-P;c=I(o,P,h+1/3),l=I(o,P,h),t=I(o,P,h-1/3)}const p=P=>Math.round(P*255).toString(16).padStart(2,"0");return`#${p(c)}${p(l)}${p(t)}`}const N=Object.freeze(H.map(r=>Object.freeze(L.map(u=>z(r,e,u))))),G=Object.freeze(E.map(r=>z(0,0,r)));function C(r,u,v={}){const h=r.createElement("button");return h.type="button",h.className="lat-form__swatch",h.style.background=u,h.setAttribute("role","option"),h.setAttribute("data-color",u),h.setAttribute("aria-selected",v.selected?"true":"false"),v.selected&&h.classList.add("is-selected"),h.title=v.title!=null?v.title:u,h.tabIndex=-1,h}function A(r,u,v={}){const h=r.createElement("div");h.className="lat-form__swatch-grid",h.setAttribute("role","listbox");const c=[];for(const l of u){const t=r.createElement("div");t.className=v.rowClass?`lat-form__swatch-row ${v.rowClass}`:"lat-form__swatch-row";const p=[];for(const P of l){const o=C(r,P,{selected:typeof v.isSelected=="function"&&v.isSelected(P),title:typeof v.title=="function"?v.title(P):void 0});t.appendChild(o),p.push(o)}h.appendChild(t),c.push(p)}return typeof v.onPick=="function"&&h.addEventListener("click",l=>{const t=l.target&&l.target.closest?l.target.closest(".lat-form__swatch"):null;t&&h.contains(t)&&v.onPick(t.getAttribute("data-color"),t)}),{el:h,rows:c}}}),Ie("packages/modules/form/controls/richtext.js",function(S,te){"use strict";Object.defineProperty(S,"sanitize",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return E}});const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/dom/src/editors/sanitize-richtext.js"),e=L.sanitizeRichText,E=L.escapeHtml,I=te("packages/dom/src/editors/richtext-icons.js"),z=I.letterGlyph,N=I.toolGlyph,G=I.TOOL_GLYPHS,C=te("packages/modules/form/controls/swatches.js"),A=C.DEFAULT_COLORS,r=C.buildSwatchGrid,u=e,v=Object.freeze({basic:["bold","italic","underline","color","lowercase","uppercase","|","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","undo","redo"],html:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","clear","source","|","undo","redo"],rich:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","image","clear","source","|","undo","redo"]}),h=Object.freeze(["bold","italic","underline","strike"]),c=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 l(y){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"}}[y]||null}const t=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function p(y){return Array.isArray(y)?y.map(V=>String(V)):v[y]||v.basic}function P(y){return new Promise((V,s)=>{const d=new FileReader;d.onload=()=>V(d.result),d.onerror=()=>s(d.error||new Error("read failed")),d.readAsDataURL(y)})}H("richtext",{kind:"field",build(y,V){const s=V.doc,d=y.props||{},i=p(d.toolbar),m=Array.isArray(d.headings)?d.headings:t,k=Array.isArray(d.colors)?d.colors:A,w=d.linkTarget!=null?String(d.linkTarget):"_blank",f=Number(d.minHeight)||160,$=Number(d.maxHeight)||0,b=Number(d.maxImageSize)||0,_=typeof d.onImage=="function"?d.onImage:null,n=d.sanitizePaste!==!1,O=d.allowedTags,ie=d.placeholder!=null?String(d.placeholder):V.t("form.richtext.placeholder"),F=s.createElement("div");F.className="lat-form__richtext";const se={toolbar:i,headings:m,colors:k,linkTarget:w,minHeight:f,maxHeight:$,maxImageSize:b,onImage:_,sanitizePaste:n,allowedTags:O,placeholder:ie,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};F.__latRt=se;const le=u(s,y.value==null?"":String(y.value),O,{});se.history={stack:[le],index:0},se.lastValue=le;const ke=s.createElement("div");ke.className="lat-form__richtext-toolbar",ke.setAttribute("role","toolbar"),ke.setAttribute("aria-label",V.t("form.richtext.formatting")),se.toolbarEl=ke;for(const D of i){if(D==="|"){const ne=s.createElement("span");ne.className="lat-form__richtext-sep",ne.setAttribute("role","separator"),ke.appendChild(ne);continue}if(D==="heading"){const ne=s.createElement("select");ne.className="lat-form__richtext-select",ne.title=V.t(c.heading),ne.setAttribute("aria-label",V.t(c.heading)),ne.setAttribute("data-item","heading");for(const[oe,ve]of m){const pe=s.createElement("option");pe.value=oe,pe.textContent=String(ve),ne.appendChild(pe)}se.buttons.heading=ne,ke.appendChild(ne);continue}const J=s.createElement("button");J.type="button",J.className="lat-form__richtext-btn",J.setAttribute("data-item",D),J.title=V.t(c[D]||D),J.setAttribute("aria-label",V.t(c[D]||D)),D==="lowercase"||D==="uppercase"?(J.className+=" lat-form__richtext-btntext",J.textContent=V.t(D==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):h.includes(D)?J.appendChild(z(s,D)):G[D]?J.appendChild(N(s,D)):J.textContent=D,se.buttons[D]=J,ke.appendChild(J)}F.appendChild(ke);const ce=s.createElement("div");ce.className="lat-form__richtext-popover",ce.hidden=!0,F.appendChild(ce),se.popover=ce;const B=s.createElement("div");B.className="lat-form__richtext-editor",B.contentEditable=y.readOnly||y.disabled?"false":"true",B.setAttribute("role","textbox"),B.setAttribute("aria-multiline","true"),B.setAttribute("aria-label",y.label!=null?String(y.label):V.t("form.richtext.richText")),B.setAttribute("data-placeholder",ie),B.style.minHeight=`${f}px`,$&&(B.style.maxHeight=`${$}px`),B.innerHTML=le,F.appendChild(B),se.editor=B;const be=s.createElement("textarea");be.className="lat-form__richtext-source",be.setAttribute("aria-label",V.t("form.richtext.source")),be.spellcheck=!1,be.hidden=!0,F.appendChild(be),se.source=be;const q=s.createElement("input");return q.type="file",q.accept="image/*",q.className="lat-form__richtext-file",q.tabIndex=-1,q.setAttribute("aria-hidden","true"),F.appendChild(q),se.fileInput=q,F.__latSave=()=>{const D=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;D&&D.rangeCount&&B.contains(D.anchorNode)&&(se.range=D.getRangeAt(0).cloneRange())},F.__latRestore=()=>{if(!se.range)return;const D=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(D)try{D.removeAllRanges(),D.addRange(se.range)}catch{}},F.__latRefresh=()=>{Object.entries(se.buttons).forEach(([D,J])=>{const ne=l(D);if(ne&&ne.state&&J.tagName==="BUTTON"){let oe=!1;try{oe=s.queryCommandState(ne.state)}catch{oe=!1}J.setAttribute("aria-pressed",oe?"true":"false"),J.classList.toggle("is-active",oe)}if(D==="heading"&&J.tagName==="SELECT"){let oe="";try{oe=String(s.queryCommandValue("formatBlock")||"").toLowerCase()}catch{oe=""}const ve=[...J.options].some(pe=>pe.value===oe);J.value=ve?oe:"p"}})},F.__latExec=(D,J)=>{B.focus(),F.__latRestore();try{s.execCommand("styleWithCSS",!1,D==="foreColor")}catch{}try{s.execCommand(D,!1,J===void 0?null:J)}catch{}F.__latAfterEdit()},F.__latAfterEdit=()=>{const D=B.innerHTML,J=se.history;J.stack[J.index]!==D&&(J.stack=J.stack.slice(0,J.index+1),J.stack.push(D),J.stack.length>200&&J.stack.shift(),J.index=J.stack.length-1),F.__latRefresh();const ne=u(s,D,O,{}),oe=se.lastValue==null?u(s,J.stack[0]||"",O,{}):se.lastValue;se.lastValue=ne,o(F,s,oe,ne)},F.__latCaretEnd=()=>{const D=s.createRange();D.selectNodeContents(B),D.collapse(!1);const J=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;J&&(J.removeAllRanges(),J.addRange(D)),se.range=D.cloneRange()},F.__latUndo=()=>{const D=se.history;if(D.index<=0)return;D.index-=1,B.innerHTML=D.stack[D.index],F.__latCaretEnd(),F.__latRefresh();const J=u(s,B.innerHTML,O,{});se.lastValue=J,o(F,s,se.lastValue,J)},F.__latRedo=()=>{const D=se.history;if(D.index>=D.stack.length-1)return;D.index+=1,B.innerHTML=D.stack[D.index],F.__latCaretEnd(),F.__latRefresh();const J=u(s,B.innerHTML,O,{});se.lastValue=J,o(F,s,se.lastValue,J)},F.__latClosePopover=()=>{ce.hidden=!0,ce.textContent=""},F.__latOpenPopover=(D,J)=>{if(ce.textContent="",ce.hidden=!1,ce.style.left=`${Math.max(0,J.offsetLeft)}px`,D==="color"){const{el:ne}=r(s,[k],{onPick:x=>{F.__latRestore(),F.__latExec("foreColor",x),F.__latClosePopover()}});ce.appendChild(ne);const oe=s.createElement("div");oe.className="lat-form__richtext-poprow";const ve=s.createElement("input");ve.type="color",ve.className="lat-form__richtext-colorinput",ve.setAttribute("aria-label",V.t("form.richtext.colorCustom")),ve.addEventListener("input",()=>{F.__latRestore(),F.__latExec("foreColor",ve.value)});const pe=s.createElement("button");pe.type="button",pe.className="lat-form__richtext-popbtn",pe.textContent=V.t("form.richtext.colorRemove"),pe.addEventListener("click",()=>{F.__latRestore(),F.__latExec("foreColor","inherit"),F.__latClosePopover()}),oe.appendChild(ve),oe.appendChild(pe),ce.appendChild(oe)}else{const ne=F.__latClosestLink(),oe=s.createElement("input");oe.type="url",oe.className="lat-form__richtext-linkinput",oe.placeholder=V.t("form.richtext.linkPlaceholder"),oe.value=ne&&ne.getAttribute("href")||"",oe.setAttribute("aria-label",V.t("form.richtext.linkLabel"));const ve=()=>{const W=oe.value.trim();if(F.__latRestore(),!W){F.__latExec("unlink"),F.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(W)){oe.classList.add("is-invalid");return}if(ne)ne.setAttribute("href",W),F.__latAfterEdit();else{const U=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(U&&U.isCollapsed){const j=w?` target="${E(w)}" rel="noopener noreferrer"`:"";F.__latExec("insertHTML",u(s,`<a href="${E(W)}"${j}>${E(W)}</a>`,O,{}))}else{F.__latExec("createLink",W);const j=F.__latClosestLink();j&&w&&(j.setAttribute("target",w),j.setAttribute("rel","noopener noreferrer"))}}F.__latClosePopover()};oe.addEventListener("keydown",W=>{W.key==="Enter"&&(W.preventDefault(),ve()),W.key==="Escape"&&F.__latClosePopover()});const pe=s.createElement("div");pe.className="lat-form__richtext-poprow",pe.appendChild(oe);const x=s.createElement("button");if(x.type="button",x.className="lat-form__richtext-popbtn",x.textContent=ne?V.t("form.richtext.linkUpdate"):V.t("form.richtext.linkAdd"),x.addEventListener("click",ve),pe.appendChild(x),ne){const W=s.createElement("button");W.type="button",W.className="lat-form__richtext-popbtn",W.textContent=V.t("form.richtext.linkRemove"),W.addEventListener("click",()=>{F.__latRestore(),F.__latExec("unlink"),F.__latClosePopover()}),pe.appendChild(W)}ce.appendChild(pe),setTimeout(()=>oe.focus(),0)}},F.__latClosestLink=()=>{const D=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(!D||D.rangeCount===0)return null;let J=D.getRangeAt(0).commonAncestorContainer;J.nodeType===3&&(J=J.parentNode);const ne=J.closest?J.closest("a"):null;return ne&&B.contains(ne)?ne:null},F.__latRun=D=>{if(se.disabled||se.readOnly)return;D!=="source"&&se.sourceMode&&F.__latToggleSource(!1),F.__latRestore();const J=l(D);if(D==="color"||D==="link"){F.__latOpenPopover(D,se.buttons[D]);return}if(D==="undo"){F.__latUndo();return}if(D==="redo"){F.__latRedo();return}if(D==="source"){F.__latToggleSource();return}if(D==="image"){se.fileInput.click();return}if(D==="lowercase"||D==="uppercase"){F.__latCase(D==="uppercase");return}if(J){F.__latExec(J.cmd);return}},F.__latCase=D=>{const J=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(!J||J.rangeCount===0||J.isCollapsed)return;const ne=J.toString();F.__latExec("insertText",D?ne.toUpperCase():ne.toLowerCase())},F.__latToggleSource=D=>{const J=D===void 0?!se.sourceMode:!!D;if(J===se.sourceMode)return;J?(se.source.value=u(s,B.innerHTML,O,{}).replace(/></g,`>
|
|
2197
|
-
<`),B.hidden=!0,be.hidden=!1,be.focus()):(se.sourceDirty&&(B.innerHTML=u(s,be.value,O,{}),se.sourceDirty=!1),be.hidden=!0,B.hidden=!1,B.focus()),se.sourceMode=J;const ne=se.buttons.source;ne&&(ne.classList.toggle("is-active",J),ne.setAttribute("aria-pressed",J?"true":"false")),Object.entries(se.buttons).forEach(([oe,ve])=>{oe!=="source"&&(ve.disabled=J)}),J||F.__latAfterEdit()},F.__latInsertImage=async D=>{if(!/^image\//.test(D.type)||b&&D.size>b)return;let J;try{J=_?await _(D):await P(D)}catch{return}J&&F.__latExec("insertHTML",u(s,`<img src="${E(J)}" alt="${E(D.name)}" style="max-width:100%">`,O,{}))},F.__latToolbarClick=D=>{const J=D.target&&D.target.closest?D.target.closest("[data-item]"):null;!J||!ke.contains(J)||J.tagName==="SELECT"||(D.preventDefault(),F.__latRun(J.getAttribute("data-item")))},F.__latToolbarDown=D=>{D.target&&D.target.closest&&D.target.closest(".lat-form__richtext-btn")&&D.preventDefault()},F.__latSelect=D=>{D.target&&D.target.getAttribute&&D.target.getAttribute("data-item")==="heading"&&(F.__latRestore(),F.__latExec("formatBlock",D.target.value))},F.__latInput=()=>{F.__latAfterEdit()},F.__latKey=D=>{if(!(D.ctrlKey||D.metaKey))return;const J=D.key.toLowerCase();J==="z"&&!D.shiftKey?(D.preventDefault(),F.__latUndo()):J==="y"||J==="z"&&D.shiftKey?(D.preventDefault(),F.__latRedo()):J==="k"&&se.buttons.link&&(D.preventDefault(),F.__latRun("link"))},F.__latPaste=D=>{if(!n||!D.clipboardData)return;const J=D.clipboardData.getData("text/html"),ne=D.clipboardData.getData("text/plain");if(!J&&!ne)return;D.preventDefault();const oe=J?u(s,J,O,{stripStyles:!0}):E(ne).replace(/\r?\n/g,"<br>");F.__latExec("insertHTML",oe)},F.__latDrop=D=>{if(!n||!D.dataTransfer)return;const J=D.dataTransfer.files;if(J&&J.length){D.preventDefault();const pe=J[0];pe&&F.__latInsertImage(pe);return}const ne=D.dataTransfer.getData("text/html"),oe=D.dataTransfer.getData("text/plain");if(!ne&&!oe)return;D.preventDefault();const ve=ne?u(s,ne,O,{stripStyles:!0}):E(oe).replace(/\r?\n/g,"<br>");F.__latExec("insertHTML",ve)},F.__latBeforeInput=D=>{n&&(D.inputType==="insertFromDrop"||D.inputType==="insertFromPaste")&&D.preventDefault()},F.__latSelChange=()=>{s.activeElement===B&&(F.__latSave(),F.__latRefresh())},F.__latFile=()=>{const D=q.files&&q.files[0];q.value="",D&&F.__latInsertImage(D)},F.__latSourceInput=()=>{se.sourceDirty=!0},F.__latDocClick=D=>{ce&&!ce.hidden&&!ce.contains(D.target)&&!ke.contains(D.target)&&F.__latClosePopover()},ke.addEventListener("click",F.__latToolbarClick),ke.addEventListener("mousedown",F.__latToolbarDown),ke.addEventListener("change",F.__latSelect),B.addEventListener("input",F.__latInput),B.addEventListener("keydown",F.__latKey),B.addEventListener("paste",F.__latPaste),B.addEventListener("drop",F.__latDrop),B.addEventListener("beforeinput",F.__latBeforeInput),q.addEventListener("change",F.__latFile),be.addEventListener("input",F.__latSourceInput),s.addEventListener&&(s.addEventListener("selectionchange",F.__latSelChange),s.addEventListener("mousedown",F.__latDocClick,!0)),F},read(y){const V=y.__latRt;return V?V.sourceMode?u(y.ownerDocument,V.source.value,V.allowedTags,{}):u(y.ownerDocument,V.editor.innerHTML,V.allowedTags,{}):""},write(y,V){const s=y.__latRt;if(!s)return;const d=y.ownerDocument,i=u(d,V==null?"":String(V),s.allowedTags,{});s.sourceMode&&(s.source.value=i),s.editor.innerHTML=i,s.history={stack:[i],index:0},s.lastValue=i},state(y,V){const s=y.__latRt;s&&(s.disabled=V.disabled===!0,s.readOnly=V.readOnly===!0,s.editor.contentEditable=s.disabled||s.readOnly?"false":"true",s.editor.tabIndex=s.readOnly?0:-1,s.readOnly?s.editor.setAttribute("aria-readonly","true"):s.editor.removeAttribute("aria-readonly"),s.disabled?y.setAttribute("aria-disabled","true"):y.removeAttribute("aria-disabled"),s.readOnly?y.setAttribute("aria-readonly","true"):y.removeAttribute("aria-readonly"),Object.values(s.buttons).forEach(d=>{d.disabled=s.disabled||s.readOnly}))}});function o(y,V,s,d){const i=V&&V.defaultView,m=i&&i.Event,k=m?new m("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(k)}}),Ie("packages/modules/form/controls/rating.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=5,e=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 E(u){const v=String(u??"");return Object.hasOwn(e,v)?v:"star"}function I(u,v,h){return Math.min(Math.max(u,v),h)}function z(u,v){const h=v&&v.defaultView,c=h&&h.Event,l=c?new c("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(l)}function N(u,v,h){const c=u.createElementNS("http://www.w3.org/2000/svg","svg");c.setAttribute("viewBox","0 0 16 16"),c.setAttribute("focusable","false"),c.setAttribute("aria-hidden","true"),h?c.setAttribute("fill","currentColor"):(c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","1.5"),c.setAttribute("stroke-linejoin","round"));const l=u.createElementNS("http://www.w3.org/2000/svg","path");return l.setAttribute("d",e[v]),c.appendChild(l),c}function G(u,v,h){const c=Number(u),l=Number.isFinite(c)?c:0,t=h?Math.round(l*2)/2:Math.round(l);return I(t,0,v)}function C(u,v){return Math.min(1,Math.max(0,u-(v-1)))}H("rating",{kind:"field",build(u,v){const h=v.doc,c=u.props||{},l=Math.max(1,Math.floor(Number(u.max!=null?u.max:c.max)||L)),t=c.allowHalf===!0,p=c.allowClear!==!1,P=c.showValue===!0,o=Array.isArray(c.labels)?c.labels:null,y=E(c.icons&&c.icons.filled?c.icons.filled:c.icon),V=E(c.icons&&c.icons.empty?c.icons.empty:`${y}-outline`),s=c.size==="lg"||c.size==="sm"?c.size:"md",d=h.createElement("div");d.className=`lat-form__rating lat-form__rating--${s}`,d.setAttribute("role","slider"),d.setAttribute("aria-valuemin","0"),d.setAttribute("aria-valuemax",String(l)),d.setAttribute("aria-label",u.label!=null?String(u.label):v.t("form.rating"));const i={value:G(u.value,l,t),max:l,allowHalf:t,allowClear:p,labels:o,showValue:P,filledName:y,emptyName:V,items:[],fills:[],valueEl:null};d.__latRating=i;const m=h.createElement("span");m.className="lat-form__rating-track",m.setAttribute("aria-hidden","true");for(let k=0;k<l;k++){const w=h.createElement("span");w.className="lat-form__rating-item",w.setAttribute("data-index",String(k)),o&&o[k]!=null&&o[k]!==""&&(w.title=String(o[k])),w.appendChild(N(h,V,!1));const f=h.createElement("span");f.className="lat-form__rating-fill",f.setAttribute("aria-hidden","true"),f.appendChild(N(h,y,!0)),w.appendChild(f),m.appendChild(w),i.items.push(w),i.fills.push(f)}if(d.appendChild(m),P){const k=h.createElement("span");k.className="lat-form__rating-value",k.setAttribute("aria-hidden","true"),d.appendChild(k),i.valueEl=k}return d.__latPaint=()=>{for(let k=0;k<i.items.length;k++){const w=C(i.value,k+1);i.items[k].setAttribute("data-fill",w>=1?"full":w>0?"half":"empty"),i.fills[k].style.width=`${(w*100).toFixed(2)}%`}d.setAttribute("aria-valuenow",String(i.value)),d.setAttribute("aria-valuetext",A(i)),i.valueEl&&(i.valueEl.textContent=r(i))},d.__latSet=k=>{i.value=G(k,l,t),d.__latPaint()},d.__latClear=()=>{i.value=0,d.__latPaint()},d.__latPick=(k,w)=>{let f=k+1;if(t&&w&&Number.isFinite(w.clientX)){const $=i.items[k].getBoundingClientRect();$&&$.width>0&&(f=w.clientX-$.left<$.width/2?k+.5:k+1)}p&&f===i.value&&(f=0),d.__latSet(f),z(d,v.doc)},d.addEventListener("click",k=>{if(i.disabled||i.readOnly)return;const w=k.target&&k.target.closest?k.target.closest(".lat-form__rating-item"):null;!w||!d.contains(w)||d.__latPick(Number(w.getAttribute("data-index")),k)}),d.__latKey=k=>{if(i.disabled||i.readOnly)return;const w=t?.5:1;let f=i.value;if(k.key==="ArrowRight"||k.key==="ArrowUp")f+=w;else if(k.key==="ArrowLeft"||k.key==="ArrowDown")f-=w;else if(k.key==="Home")f=0;else if(k.key==="End")f=l;else if(k.key==="Backspace"||k.key==="Delete")f=0;else return;k.preventDefault(),d.__latSet(f),z(d,v.doc)},d.addEventListener("keydown",d.__latKey),d.__latPaint(),d},read(u){return u.__latRating?u.__latRating.value:0},write(u,v){u.__latRating&&(u.__latRating.value=G(v,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,v){const h=u.__latRating;h&&(h.disabled=v.disabled===!0,h.readOnly=v.readOnly===!0,u.tabIndex=h.disabled?-1:0,h.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),h.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function A(u){const v=Math.round(u.value);return u.labels&&u.labels[v-1]&&u.value===v?u.labels[v-1]:`${u.value} of ${u.max}`}function r(u){return String(u.value)}}),Ie("packages/modules/form/controls/stage.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl;function L(I,z){const N=z&&z.defaultView,G=N&&N.Event,C=G?new G("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};I.dispatchEvent(C)}function e(I,z){return typeof z=="number"&&Number.isFinite(z)?Math.min(Math.max(Math.round(z),0),I.length-1):typeof z=="string"?I.indexOf(z):-1}function E(I,z,N){return`${I}, ${z+1} of ${N}`}H("stage",{kind:"field",build(I,z){const N=z.doc,G=I.props||{},C=Array.isArray(G.stages)?G.stages.map(t=>String(t)):[],A=G.clickable!==!1,r=G.showIcons!==!1,u=e(C,I.value!=null?I.value:G.current),v=e(C,G.completed),h=N.createElement("div");h.className="lat-form__stage",h.setAttribute("role","radiogroup"),h.setAttribute("aria-label",I.label!=null?String(I.label):z.t("form.stage"));const c=[],l={stages:C,value:u>=0?C[u]:null,index:u,completed:v,clickable:A,showIcons:r,disabled:!1,readOnly:!1,focus:u>=0?u:0};h.__latStage=l;for(let t=0;t<C.length;t++){const p=N.createElement(A?"button":"span");if(p.type=A?"button":void 0,p.className="lat-form__stage-step",p.setAttribute("data-index",String(t)),A&&(p.setAttribute("role","radio"),p.setAttribute("aria-label",E(C[t],t,C.length))),r){const o=N.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 16 16"),o.setAttribute("aria-hidden","true"),o.setAttribute("class","lat-form__stage-check");const y=N.createElementNS("http://www.w3.org/2000/svg","path");y.setAttribute("d","M3 8.5l3 3 7-7"),y.setAttribute("fill","none"),y.setAttribute("stroke","currentColor"),y.setAttribute("stroke-width","2"),y.setAttribute("stroke-linecap","round"),y.setAttribute("stroke-linejoin","round"),o.appendChild(y),p.appendChild(o)}const P=N.createElement("span");P.className="lat-form__stage-label",P.textContent=C[t],p.appendChild(P),h.appendChild(p),c.push(p)}return h.__latPaint=()=>{for(let t=0;t<c.length;t++){const p=t===l.index,P=!p&&l.completed>=0&&t<=l.completed;c[t].setAttribute("data-state",p?"current":P?"done":"todo"),l.clickable&&(c[t].setAttribute("aria-checked",p?"true":"false"),c[t].tabIndex=l.disabled?-1:t===l.focus?0:-1)}},h.__latSelect=t=>{const p=t>=0&&t<C.length?C[t]:null;p!==l.value&&(l.index=t>=0&&t<C.length?t:-1,l.value=p,l.focus=l.index>=0?l.index:0,h.__latPaint(),L(h,z.doc))},h.__latKey=t=>{if(l.disabled||l.readOnly||!l.clickable||!C.length)return;let p=l.focus;if(t.key==="ArrowRight"||t.key==="ArrowDown")p+=1;else if(t.key==="ArrowLeft"||t.key==="ArrowUp")p-=1;else if(t.key==="Home")p=0;else if(t.key==="End")p=C.length-1;else return;t.preventDefault();const P=Math.min(Math.max(p,0),C.length-1);l.focus=P,c[P].focus(),h.__latSelect(P)},A&&(h.addEventListener("click",t=>{if(l.disabled||l.readOnly)return;const p=t.target&&t.target.closest?t.target.closest(".lat-form__stage-step"):null;if(!p||!h.contains(p))return;const P=Number(p.getAttribute("data-index"));l.focus=P,h.__latSelect(P)}),h.addEventListener("keydown",h.__latKey)),h.__latPaint(),h},read(I){return I.__latStage?I.__latStage.value:null},write(I,z){const N=I.__latStage;if(!N)return;const G=z==null?-1:e(N.stages,z);N.index=G,N.value=G>=0?N.stages[G]:null,N.focus=G>=0?G:0,I.__latPaint()},state(I,z){const N=I.__latStage;N&&(N.disabled=z.disabled===!0,N.readOnly=z.readOnly===!0,N.readOnly?I.setAttribute("aria-readonly","true"):I.removeAttribute("aria-readonly"),N.disabled?I.setAttribute("aria-disabled","true"):I.removeAttribute("aria-disabled"),I.__latPaint())}})}),Ie("packages/modules/form/controls/chips.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L="M3 8.5l3 3 7-7";function e(z,N){const G=N&&N.defaultView,C=G&&G.Event,A=C?new C("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};z.dispatchEvent(A)}function E(z){if(typeof z=="string")return{value:z,label:z,icon:null,disabled:!1};if(z!==null&&typeof z=="object"){const N=z.value===void 0?String(z.label):z.value;return{value:N,label:z.label==null?String(N):String(z.label),icon:typeof z.icon=="string"&&z.icon!==""?z.icon:null,disabled:z.disabled===!0}}return{value:z,label:String(z),icon:null,disabled:!1}}function I(z,N,G){const C=z.createElementNS("http://www.w3.org/2000/svg","svg");C.setAttribute("viewBox","0 0 16 16"),C.setAttribute("focusable","false"),C.setAttribute("aria-hidden","true");const A=z.createElementNS("http://www.w3.org/2000/svg","path");return A.setAttribute("d",N),G?A.setAttribute("fill","currentColor"):(A.setAttribute("fill","none"),A.setAttribute("stroke","currentColor"),A.setAttribute("stroke-width","2"),A.setAttribute("stroke-linecap","round"),A.setAttribute("stroke-linejoin","round")),C.appendChild(A),C}H("chips",{kind:"field",build(z,N){const G=N.doc,C=z.props||{},A=(Array.isArray(z.options)?z.options:[]).map(E),r=C.multiple===!0,u=C.allowEmpty===!0,v=C.wrap!==!1,h=z.max!=null&&Number.isFinite(Number(z.max))?Number(z.max):null,c=G.createElement("div");c.className=`lat-form__chips${v?"":" lat-form__chips--scroll"}`,c.setAttribute("role",r?"group":"radiogroup"),c.setAttribute("aria-label",z.label!=null?String(z.label):N.t("form.chips"));const l=[],t=new Set,p={options:A,multiple:r,allowEmpty:u,wrap:v,max:h,selected:t,disabled:!1,readOnly:!1,t:N.t};c.__latChips=p;for(let o=0;o<A.length;o++){const y=A[o],V=G.createElement("button");if(V.type="button",V.className="lat-form__chip",V.setAttribute("data-index",String(o)),V.disabled=y.disabled,r||V.setAttribute("role","radio"),y.icon){const d=I(G,y.icon,!0);d.setAttribute("class","lat-form__chip-icon"),V.appendChild(d)}const s=G.createElement("span");if(s.className="lat-form__chip-label",s.textContent=y.label,V.appendChild(s),r){const d=I(G,L,!1);d.setAttribute("class","lat-form__chip-check"),V.appendChild(d)}c.appendChild(V),l.push(V)}p.buttons=l,c.__latPaint=()=>{for(let o=0;o<l.length;o++){const y=A[o],V=t.has(y.value),s=l[o];s.disabled=y.disabled||p.disabled,r?(s.setAttribute("aria-pressed",V?"true":"false"),s.tabIndex=p.disabled?-1:0):(s.setAttribute("aria-checked",V?"true":"false"),s.tabIndex=p.disabled?-1:V?0:-1)}},c.__latValue=()=>{if(r)return A.filter(o=>t.has(o.value)).map(o=>o.value);for(const o of A)if(t.has(o.value))return o.value;return null},c.__latToggle=o=>{const y=A[o];if(!(!y||y.disabled||p.disabled||p.readOnly)){if(r)if(t.has(y.value))t.delete(y.value);else{if(h!=null&&t.size>=h)return;t.add(y.value)}else if(t.has(y.value))if(p.allowEmpty)t.clear();else return;else t.clear(),t.add(y.value);c.__latPaint(),e(c,N.doc)}},c.addEventListener("click",o=>{const y=o.target&&o.target.closest?o.target.closest(".lat-form__chip"):null;!y||!c.contains(y)||c.__latToggle(Number(y.getAttribute("data-index")))}),c.__latKey=o=>{if(p.multiple||p.disabled||p.readOnly||!l.length)return;let y=-1;for(let i=0;i<l.length;i++)if(t.has(A[i].value)){y=i;break}let V=y;if(o.key==="ArrowRight"||o.key==="ArrowDown")V=y+1;else if(o.key==="ArrowLeft"||o.key==="ArrowUp")V=y-1;else if(o.key==="Home")V=0;else if(o.key==="End")V=A.length-1;else return;o.preventDefault();const s=o.key==="ArrowLeft"||o.key==="ArrowUp"?-1:1;let d=V;for(;d>=0&&d<A.length&&A[d].disabled;)d+=s;d<0||d>=A.length||(t.clear(),t.add(A[d].value),c.__latPaint(),l[d].focus(),e(c,N.doc))},c.addEventListener("keydown",c.__latKey);const P=z.value;if(r){const o=Array.isArray(P)?P:[];for(const y of o)A.some(V=>V.value===y)&&t.add(y)}else if(P!=null&&A.some(o=>o.value===P))t.add(P);else if(!u){const o=A.find(y=>!y.disabled)||A[0];o&&t.add(o.value)}return c.__latPaint(),c},read(z){return z.__latChips?z.__latValue():null},write(z,N){const G=z.__latChips;if(G){if(G.selected.clear(),G.multiple){const C=Array.isArray(N)?N:[];for(const A of C)G.options.some(r=>r.value===A)&&G.selected.add(A)}else if(N!=null&&G.options.some(C=>C.value===N))G.selected.add(N);else if(!G.allowEmpty){const C=G.options.find(A=>!A.disabled)||G.options[0];C&&G.selected.add(C.value)}z.__latPaint()}},validate(z,N,G){const C=z.__latChips;if(!C||!C.multiple)return null;const A=Array.isArray(G)?G.length:0,r=N.min!=null&&Number.isFinite(Number(N.min))?Number(N.min):null,u=N.max!=null&&Number.isFinite(Number(N.max))?Number(N.max):null;return r!=null&&A<r?{code:"min",message:C.t("form.chips.min",{min:String(r)})}:u!=null&&A>u?{code:"max",message:C.t("form.chips.max",{max:String(u)})}:null},state(z,N){const G=z.__latChips;G&&(G.disabled=N.disabled===!0,G.readOnly=N.readOnly===!0,G.readOnly?z.setAttribute("aria-readonly","true"):z.removeAttribute("aria-readonly"),G.disabled?z.setAttribute("aria-disabled","true"):z.removeAttribute("aria-disabled"),z.__latPaint())}})}),Ie("packages/modules/form/controls/otp.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=6;function e(u){const v=Math.floor(Number(u));return Number.isFinite(v)&&v>=1?v:L}function E(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function I(u,v){return v==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function z(u,v){for(let h=u.length-1;h>=0;h-=1)if(I(u[h],v))return u[h];return""}function N(u,v,h){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(l=>I(l,v)).slice(0,h)}function G(u,v,h){const c=v&&v.defaultView,l=c&&c.Event,t=l?new l(h,{bubbles:!0}):{type:h,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(t)}function C(u,v){const h=N(v,u.mode,u.length);for(let c=0;c<u.length;c+=1)u.boxes[c].value=h[c]||""}function A(u){u.complete=u.boxes.every(v=>v.value!=="")}function r(u){return u.boxes.map(v=>v.value).join("")}H("otp",{kind:"field",domEvents:["complete"],build(u,v){const h=v.doc,c=u.props||{},l=e(c.length),t=E(u.mode!=null?u.mode:c.mode),p=c.mask===!0,P=h.createElement("div");P.className="lat-form__otp",P.setAttribute("role","group"),P.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):v.t("form.otp.label"));const o=[],y={length:l,mode:t,mask:p,boxes:o,complete:!1,disabled:!1,readOnly:!1};P.__latOtp=y;for(let s=0;s<l;s+=1){const d=h.createElement("input");d.type="text",d.className=`lat-form__otp-input${p?" lat-form__otp-input--masked":""}`,d.setAttribute("inputmode",t==="numeric"?"numeric":"text"),d.setAttribute("pattern",t==="numeric"?"[0-9]":"[A-Za-z0-9]"),d.setAttribute("maxlength","1"),d.setAttribute("aria-label",v.t("form.otp.digit",{n:s+1,total:l})),d.autocomplete=s===0?"one-time-code":"off",o.push(d),P.appendChild(d)}const V=()=>{if(P.__latPublishing)return;P.__latPublishing=!0;try{G(P,h,"input"),G(P,h,"change")}finally{P.__latPublishing=!1}const s=o.every(d=>d.value!=="");s&&!y.complete?(y.complete=!0,G(P,h,"complete")):!s&&y.complete&&(y.complete=!1)};return P.addEventListener("input",s=>{if(P.__latPublishing)return;s.stopImmediatePropagation();const d=s.target;if(!o.includes(d))return;d.value=z(d.value,t);const i=o.indexOf(d);d.value!==""&&i<l-1&&o[i+1].focus(),V()}),P.addEventListener("change",s=>{P.__latPublishing||s.stopImmediatePropagation()}),P.addEventListener("keydown",s=>{if(y.disabled||y.readOnly)return;const d=s.target;if(!o.includes(d))return;const i=o.indexOf(d);s.key==="Backspace"?(s.preventDefault(),d.value!==""?d.value="":i>0&&(o[i-1].value="",o[i-1].focus()),V()):s.key==="ArrowLeft"&&i>0?(s.preventDefault(),o[i-1].focus()):s.key==="ArrowRight"&&i<l-1?(s.preventDefault(),o[i+1].focus()):s.key.length===1&&!I(s.key,t)&&!s.ctrlKey&&!s.metaKey&&!s.altKey&&s.preventDefault()}),P.addEventListener("paste",s=>{if(y.disabled||y.readOnly)return;s.preventDefault();const d=s.clipboardData&&typeof s.clipboardData.getData=="function"?s.clipboardData.getData("text"):"";C(y,d),(o.find(m=>m.value==="")||o[l-1]).focus(),V()}),P.focus=()=>{const s=o.find(d=>!d.disabled&&!d.readOnly&&d.value==="")||o[0];s&&s.focus()},P.blur=()=>{for(const s of o)s.blur()},C(y,u.value),A(y),P},read(u){return u.__latOtp?r(u.__latOtp):""},write(u,v){u.__latOtp&&(C(u.__latOtp,v),A(u.__latOtp))},state(u,v){const h=u.__latOtp;if(h){h.disabled=v.disabled===!0,h.readOnly=v.readOnly===!0;for(const c of h.boxes)c.disabled=h.disabled,c.readOnly=h.readOnly;h.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),h.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),Ie("packages/modules/form/controls/color.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/swatches.js"),z=I.DEFAULT_PALETTE,N=I.DEFAULT_GRAY_SHADES,G=I.buildSwatchGrid,C=I.hslToHex,A=10,r=/^#?([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 v(B){return B}const h=new Set;function c(B,be){h.has(B)||(h.add(B),console.warn("[lattice]",be))}function l(B){if(typeof B!="string")return null;const be=B.trim();if(!r.test(be))return null;const q=be.replace(/^#/,"").toLowerCase();return`#${q.length===3?q.split("").map(J=>J+J).join(""):q}`}function t(B){if(typeof B!="string")return null;const be=l(B);if(be)return be;const q=u.exec(B.trim());if(!q)return null;const D=ne=>Math.max(0,Math.min(255,Number(ne))),J=ne=>D(ne).toString(16).padStart(2,"0");return`#${J(q[1])}${J(q[2])}${J(q[3])}`}function p(B){const be=l(B);return be?{r:parseInt(be.slice(1,3),16),g:parseInt(be.slice(3,5),16),b:parseInt(be.slice(5,7),16)}:null}function P(B,be,q){const D=J=>Math.max(0,Math.min(255,Math.round(J))).toString(16).padStart(2,"0");return`#${D(B)}${D(be)}${D(q)}`}function o(B,be,q){const D=B/255,J=be/255,ne=q/255,oe=Math.max(D,J,ne),ve=Math.min(D,J,ne),pe=(oe+ve)/2,x=oe-ve;if(x===0)return{h:0,s:0,l:pe};const W=pe>.5?x/(2-oe-ve):x/(oe+ve);let U;return oe===D?U=(J-ne)/x%6:oe===J?U=(ne-D)/x+2:U=(D-J)/x+4,U*=60,U<0&&(U+=360),{h:U,s:W,l:pe}}function y(B){return C(B.h,B.s,B.l)}function V(B,be,q){const D=B.ownerDocument,J=D&&D.defaultView,ne=J&&typeof J.CustomEvent=="function"?J.CustomEvent:null,oe=ne?new ne(be,{bubbles:!0,detail:q}):{type:be,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:q,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};B.dispatchEvent(oe)}function s(B){const be=B.props&&B.props.palette;return Array.isArray(be)&&be.length?be:z}function d(B){return!(B.props&&B.props.editable===!1)}function i(B){return!!(B.props&&B.props.clearable===!0)}function m(B){return!!(B.props&&B.props.pickerOnly===!0)}function k(B){return!(B.props&&B.props.grayShades===!1)}function w(B){const be=B.props&&B.props.icon;return typeof be=="string"&&be!==""?be:null}function f(B){const be=B.props&&B.props.customColors;return Array.isArray(be)?[...new Set(be.map(t).filter(Boolean))].slice(0,A):[]}function $(B){const be=l(B.__input.value);B.__swatchBtn.style.background=be||"transparent",B.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!be),B.__clearBtn&&(B.__clearBtn.hidden=B.__input.value.trim()==="")}function b(B,be){B.__value=be||null,B.__input.value=be||"",B.__lastCommittedText=be||"",$(B)}function _(B){if(d(B.__item)===!1)return;const be=B.__input.value.trim();if(be===B.__lastCommittedText)return;const q=l(be);(q||be==="")&&(B.__value=q,B.__lastCommittedText=be),V(B,"change")}function n(B,be){b(B,be),V(B,"change")}function O(B,be){const q=B.__customColors,D=q.filter(ne=>ne!==be),J=[be,...D].slice(0,A);J.length===q.length&&J.every((ne,oe)=>ne===q[oe])||(B.__customColors=J,V(B,"customColorsChange",{colors:J}))}function ie(B){const be=B.__popover,q=B.ownerDocument,D=q&&q.defaultView,J=B.__field.getBoundingClientRect(),ne=D?D.innerHeight:0,oe=be.offsetHeight||0;ne-J.bottom<oe+4&&J.top>oe+4?be.classList.add("lat-form__color-popover--above"):be.classList.remove("lat-form__color-popover--above")}function F(B,be,q,D){let J=Math.max(0,Math.min(B.length-1,be.row+q)),ne=be.col+D;if(D!==0){const oe=B[J].length;ne=Math.max(0,Math.min(oe-1,ne))}else ne=Math.max(0,Math.min(B[J].length-1,ne));return{row:J,col:ne}}function se(B){const be=B.__item,q=B.ownerDocument,D=B.__popover;for(;D.firstChild;)D.removeChild(D.firstChild);const J=[...s(be)];k(be)&&J.push([...N]),B.__customColors.length&&J.push([...B.__customColors]);const ne=B.__value,{el:oe,rows:ve}=G(q,J,{isSelected:x=>x===ne,onPick:x=>{n(B,x),ce(B,{restoreFocus:!0})}});oe.classList.add("lat-form__color-grid"),D.appendChild(oe);for(const x of ve)for(const W of x){if(W.getAttribute("aria-selected")!=="true")continue;const U=q.createElementNS("http://www.w3.org/2000/svg","svg");U.setAttribute("viewBox","0 0 16 16"),U.setAttribute("class","lat-form__color-check"),U.setAttribute("aria-hidden","true");const j=q.createElementNS("http://www.w3.org/2000/svg","path");j.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),j.setAttribute("fill","none"),j.setAttribute("stroke","#fff"),j.setAttribute("stroke-width","2.6"),j.setAttribute("stroke-linecap","round"),j.setAttribute("stroke-linejoin","round"),j.setAttribute("paint-order","stroke"),U.appendChild(j);const Z=q.createElementNS("http://www.w3.org/2000/svg","path");Z.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),Z.setAttribute("fill","none"),Z.setAttribute("stroke","#000"),Z.setAttribute("stroke-width","4.2"),Z.setAttribute("stroke-linecap","round"),Z.setAttribute("stroke-linejoin","round"),Z.setAttribute("opacity","0.35"),U.insertBefore(Z,j),W.appendChild(U)}let pe={row:0,col:0};e:for(let x=0;x<ve.length;x++)for(let W=0;W<ve[x].length;W++)if(ve[x][W].getAttribute("aria-selected")==="true"){pe={row:x,col:W};break e}for(const x of ve)for(const W of x)W.tabIndex=-1;if(ve[pe.row]&&ve[pe.row][pe.col]&&(ve[pe.row][pe.col].tabIndex=0),oe.addEventListener("keydown",x=>{if(x.key==="Enter"||x.key===" "){x.preventDefault(),x.stopPropagation(),ve[pe.row][pe.col].click();return}const U={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[x.key];if(!U)return;x.preventDefault();for(const Z of ve)for(const ae of Z)ae.tabIndex=-1;pe=F(ve,pe,U[0],U[1]);const j=ve[pe.row][pe.col];j.tabIndex=0,j.focus()}),!m(be)){const x=q.createElement("button");x.type="button",x.className="lat-form__color-custombtn",x.textContent=B.__t("form.color.customColor"),x.addEventListener("click",()=>{le(B,ne)}),D.appendChild(x)}ie(B)}function le(B,be){const q=B.__item,D=B.ownerDocument,J=B.__popover;for(;J.firstChild;)J.removeChild(J.firstChild);const ne=p(be)||{r:0,g:0,b:0},oe=o(ne.r,ne.g,ne.b),ve=D.createElement("div");ve.className="lat-form__color-picker",J.appendChild(ve);const pe=D.createElement("div");pe.className="lat-form__color-plane",pe.setAttribute("role","slider"),pe.setAttribute("aria-label",B.__t("form.color.saturationLightness")),pe.tabIndex=0;const x=D.createElement("div");x.className="lat-form__color-plane-thumb",pe.appendChild(x),ve.appendChild(pe);const W=D.createElement("div");W.className="lat-form__color-hue",W.setAttribute("role","slider"),W.setAttribute("aria-label",B.__t("form.color.hue")),W.tabIndex=0;const U=D.createElement("div");U.className="lat-form__color-hue-thumb",W.appendChild(U),ve.appendChild(W);const j=D.createElement("div");j.className="lat-form__color-fields";const Z=D.createElement("input");Z.type="text",Z.className="lat-form__color-hexfield",Z.setAttribute("aria-label",B.__t("form.color.hexLabel"));const ae=D.createElement("input");ae.type="number",ae.min="0",ae.max="255",ae.className="lat-form__color-rgbfield",ae.setAttribute("aria-label",B.__t("form.color.redLabel"));const re=D.createElement("input");re.type="number",re.min="0",re.max="255",re.className="lat-form__color-rgbfield",re.setAttribute("aria-label",B.__t("form.color.greenLabel"));const R=D.createElement("input");R.type="number",R.min="0",R.max="255",R.className="lat-form__color-rgbfield",R.setAttribute("aria-label",B.__t("form.color.blueLabel")),j.appendChild(Z),j.appendChild(ae),j.appendChild(re),j.appendChild(R),ve.appendChild(j);const ee=D.createElement("div");ee.className="lat-form__color-previewrow";const X=D.createElement("span");X.className="lat-form__color-preview",ee.appendChild(X),ve.appendChild(ee);const ge=D.createElement("div");if(ge.className="lat-form__color-actions",!m(q)){const a=D.createElement("button");a.type="button",a.className="lat-form__color-back",a.textContent=B.__t("form.back"),a.addEventListener("click",()=>{se(B)}),ge.appendChild(a)}const $e=D.createElement("button");$e.type="button",$e.className="lat-form__color-select",$e.textContent=B.__t("form.color.select"),ge.appendChild($e),ve.appendChild(ge);const K=()=>{const a=y(oe),Y=p(a);pe.style.setProperty("--lat-color-hue",String(oe.h)),x.style.left=`${oe.s*100}%`,x.style.top=`${(1-oe.l)*100}%`,U.style.left=`${oe.h/360*100}%`,Z.value=a,ae.value=String(Y.r),re.value=String(Y.g),R.value=String(Y.b),X.style.background=a,pe.setAttribute("aria-valuetext",a),W.setAttribute("aria-valuenow",String(Math.round(oe.h)))};K();const he=(a,Y,fe)=>{const me=a.getBoundingClientRect();if(!me.width||!me.height)return;const Ae=Math.max(0,Math.min(1,(Y.clientX-me.left)/me.width)),ue=Math.max(0,Math.min(1,(Y.clientY-me.top)/me.height));fe(Ae,ue)},Ee=(a,Y)=>{let fe=!1;a.addEventListener("pointerdown",me=>{fe=!0,he(a,me,Y)}),D.addEventListener("pointermove",me=>{fe&&he(a,me,Y)}),D.addEventListener("pointerup",()=>{fe=!1})};Ee(pe,(a,Y)=>{oe.s=a,oe.l=1-Y,K()}),Ee(W,a=>{oe.h=a*360,K()}),pe.addEventListener("keydown",a=>{if(a.key==="Enter"){a.preventDefault(),a.stopPropagation(),Q();return}const Y=a.shiftKey?.1:.02;if(a.key==="ArrowLeft")oe.s=Math.max(0,oe.s-Y);else if(a.key==="ArrowRight")oe.s=Math.min(1,oe.s+Y);else if(a.key==="ArrowUp")oe.l=Math.min(1,oe.l+Y);else if(a.key==="ArrowDown")oe.l=Math.max(0,oe.l-Y);else return;a.preventDefault(),K()}),W.addEventListener("keydown",a=>{if(a.key==="Enter"){a.preventDefault(),a.stopPropagation(),Q();return}const Y=a.shiftKey?10:2;if(a.key==="ArrowLeft"||a.key==="ArrowDown")oe.h=(oe.h-Y+360)%360;else if(a.key==="ArrowRight"||a.key==="ArrowUp")oe.h=(oe.h+Y)%360;else return;a.preventDefault(),K()});const T=()=>{const a=l(Z.value);if(!a){Z.value=y(oe);return}const Y=p(a);Object.assign(oe,o(Y.r,Y.g,Y.b)),K()};Z.addEventListener("change",T);const g=()=>{const a=Y=>Math.max(0,Math.min(255,Number(Y)||0));Object.assign(oe,o(a(ae.value),a(re.value),a(R.value))),K()};ae.addEventListener("change",g),re.addEventListener("change",g),R.addEventListener("change",g);const Q=()=>{const a=y(oe);n(B,a),O(B,a),ce(B,{restoreFocus:!0})};$e.addEventListener("click",Q);const M=a=>Y=>{Y.key==="Enter"&&(Y.preventDefault(),Y.stopPropagation(),a(),Q())};Z.addEventListener("keydown",M(T)),ae.addEventListener("keydown",M(g)),re.addEventListener("keydown",M(g)),R.addEventListener("keydown",M(g)),ie(B)}function ke(B){B.__open||B.__item.disabled===!0||B.__item.readOnly===!0||(B.__open=!0,B.__popover.hidden=!1,m(B.__item)||B.__item.mode==="picker"?le(B,B.__value):se(B))}function ce(B,be={}){if(B.__open){for(B.__open=!1,B.__popover.hidden=!0,B.__popover.classList.remove("lat-form__color-popover--above");B.__popover.firstChild;)B.__popover.removeChild(B.__popover.firstChild);be.restoreFocus&&B.__input.focus()}}H("color",{kind:"field",domEvents:["customColorsChange"],build(B,be){const q=be.doc;E(q);const D=q.createElement("div");D.className="lat-form__color",D.__item=B,D.__t=be.t||v,D.__open=!1,D.__value=t(B.value),D.__customColors=f(B);const J=q.createElement("div");J.className="lat-form__color-field",D.__field=J;const ne=q.createElement("button");ne.type="button",ne.className="lat-form__color-swatch",ne.setAttribute("aria-label",D.__t("form.color.open")),D.__swatchBtn=ne;const oe=q.createElement("input");oe.type="text",oe.className="lat-form__color-input",B.name&&(oe.name=B.name),B.placeholder!=null&&(oe.placeholder=String(B.placeholder)),B.label!=null&&B.label!==""&&oe.setAttribute("aria-label",String(B.label)),oe.setAttribute("autocomplete","off"),oe.readOnly=!d(B),D.__input=oe,J.appendChild(ne),J.appendChild(oe);let ve=null;if(i(B)){ve=q.createElement("button"),ve.type="button",ve.className="lat-form__color-clear",ve.setAttribute("aria-label",D.__t("form.color.clear"));const re=e(q,"close");re&&ve.appendChild(re),ve.addEventListener("click",()=>{n(D,null),oe.focus()}),J.appendChild(ve)}D.__clearBtn=ve;const pe=q.createElement("button");pe.type="button",pe.className="lat-form__color-toggle",pe.setAttribute("aria-label",D.__t("form.color.open"));const x=w(B),W=x?e(q,x):e(q,"chevronDown");W&&pe.appendChild(W),D.__toggleBtn=pe,J.appendChild(pe),D.appendChild(J);const U=q.createElement("div");U.className="lat-form__color-popover",U.hidden=!0,D.__popover=U,D.appendChild(U),b(D,D.__value);const j=()=>{D.__open?ce(D):ke(D)};ne.addEventListener("click",j),pe.addEventListener("click",j),oe.addEventListener("input",()=>{$(D)}),oe.addEventListener("change",re=>{re.stopPropagation(),_(D)}),oe.addEventListener("keydown",re=>{re.key==="Enter"?(re.preventDefault(),_(D)):re.key==="Escape"&&D.__open?ce(D):re.altKey&&re.key==="ArrowDown"&&(re.preventDefault(),ke(D))}),D.addEventListener("keydown",re=>{re.target!==oe&&(re.key==="Enter"&&!D.__open||re.altKey&&re.key==="ArrowDown"?(re.preventDefault(),ke(D)):re.key==="Escape"&&D.__open&&(re.preventDefault(),ce(D,{restoreFocus:!0})))});const Z=re=>{!D.__open||D.contains(re.target)||ce(D)},ae=re=>{D.__open&&(re.relatedTarget&&D.contains(re.relatedTarget)||ce(D))};return q.addEventListener("pointerdown",Z),D.addEventListener("focusout",ae),Array.isArray(be.disposers)&&be.disposers.push(()=>{q.removeEventListener("pointerdown",Z),D.removeEventListener("focusout",ae)}),D},read(B){const be=B.__input.value.trim();return be===""?null:l(be)||be},write(B,be){if(be==null||be===""){B.__value=null,b(B,null);return}const q=t(be);if(!q){c("form.color.setValue",`form.color: "${String(be)}" is not a colour (expected hex or a red-green-blue triplet); the value is unchanged.`);return}B.__value=q,b(B,q)},state(B,be){const q=be.disabled===!0||be.readOnly===!0;B.__input.disabled=be.disabled===!0,B.__input.readOnly=be.readOnly===!0||!d(be),B.__swatchBtn.disabled=q,B.__toggleBtn.disabled=q,B.__clearBtn&&(B.__clearBtn.disabled=q),q&&ce(B)},validate(B,be,q){return q==null||typeof q=="string"&&/^#[0-9a-f]{6}$/.test(q)?!0:typeof be.errorMessage=="string"&&be.errorMessage!==""?be.errorMessage:B.__t("form.color.invalidHex")},focus(B){B.__input.focus()}})}),Ie("packages/dom/src/cell/renderers/barcode/support.js",function(S,te){"use strict";Object.defineProperty(S,"expandWidths",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"joinCharacters",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"buildPattern",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"mod10Weighted",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"MOD43_ORDER",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"mod43Check",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"weightedModulo",{enumerable:!0,get:function(){return z}});function xe(N){const G=[];for(let C=0;C<N.length;C++){const A=C%2===0?1:0;for(let r=0;r<N[C];r++)G.push(A)}return G}function H(N,G){const C=[];return N.forEach((A,r)=>{if(r>0&&G>0)for(let u=0;u<G;u++)C.push(0);C.push(...A)}),C}function L(N,G){return H(N.map(xe),G)}function e(N,G=3){let C=0,A=G;for(let r=N.length-1;r>=0;r--)C+=Number(N[r])*A,A=A===3?1:3;return(10-C%10)%10}const E="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function I(N){let G=0;for(const C of N){const A=E.indexOf(C);if(A<0)return null;G+=A}return E[G%43]}function z(N,G,C=11){let A=0,r=1;for(let u=N.length-1;u>=0;u--)A+=N[u]*r,r=r===G?1:r+1;return A%C}}),Ie("packages/dom/src/cell/renderers/barcode/code39.js",function(S,te){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return h}});const xe=te("packages/dom/src/cell/renderers/barcode/support.js"),H=xe.buildPattern,L=xe.mod43Check,e=xe.MOD43_ORDER,E=2,I=["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"],z="010010100";function N(c){return c.split("").map(l=>l==="1"?E:1)}function G(c){const l=e.indexOf(c);return l<0?null:N(I[l])}function C(){const c=new Map,l=t=>String.fromCharCode(65+t);for(let t=1;t<=26;t++)c.set(t,`$${l(t-1)}`);c.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((t,p)=>c.set(27+p,t));for(let t=33;t<=44;t++)c.set(t,`/${l(t-33)}`);c.set(47,"/O"),c.set(58,"/Z");for(let t=59;t<=63;t++)c.set(t,`%${l(t-59+5)}`);c.set(64,"%V");for(let t=91;t<=95;t++)c.set(t,`%${l(t-91+10)}`);c.set(96,"%W");for(let t=97;t<=122;t++)c.set(t,`+${l(t-97)}`);for(let t=123;t<=127;t++)c.set(t,`%${l(t-123+15)}`);return c}const A=C(),r=new Map([...A].map(([c,l])=>[l,c]));function u(c){const l=[];for(const t of c){const p=t.codePointAt(0);if(p>127)return null;if(e.includes(t)){l.push(t);continue}const P=A.get(p);if(!P)return null;l.push(P[0],P[1])}return l}function v(c){let l="";for(let t=0;t<c.length;t++){const p=c[t]+(c[t+1]??"");if(r.has(p)){l+=String.fromCharCode(r.get(p)),t++;continue}l+=c[t]}return l}function h(c,l={}){const t=c==null?"":String(c);if(t==="")return{ok:!1,reason:"empty"};const p=l.extended?u(t):t.split("");if(!p)return{ok:!1,reason:"charset"};const P=[N(z)];for(const o of p){const y=G(o);if(!y)return{ok:!1,reason:"charset"};P.push(y)}if(l.checkDigit){const o=L(p.join(""));return o==null?{ok:!1,reason:"charset"}:(P.push(G(o)),P.push(N(z)),{ok:!0,modules:H(P,1),text:`${t}${o}`})}return P.push(N(z)),{ok:!0,modules:H(P,1),text:t}}}),Ie("packages/dom/src/cell/renderers/barcode/ean.js",function(S,te){"use strict";Object.defineProperty(S,"L_PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"G_PATTERNS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"R_PATTERNS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"EAN13_PARITY",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return C}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,L=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],e=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],E=L.map(A=>A.split("").map(r=>r==="1"?"0":"1").join("")),I=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function z(A){return A.split("").map(Number)}function N(A,r){const u=A==null?"":String(A);if(!/^\d+$/.test(u))return null;if(u.length===r)return{digits:u,check:H(u)};if(u.length===r+1){const v=u.slice(0,r),h=Number(u[r]),c=H(v);return h!==c?null:{digits:v,check:c}}return null}function G(A){const r=N(A,12);if(!r)return{ok:!1,reason:"checkDigit"};const u=r.digits+r.check,v=I[Number(u[0])],h=u.slice(1,7).split("").map((t,p)=>(v[p]==="L"?L:e)[Number(t)]),c=u.slice(7).split("").map(t=>E[Number(t)]);return{ok:!0,modules:[...z("101"),...h.flatMap(z),...z("01010"),...c.flatMap(z),...z("101")],text:u}}function C(A){const r=N(A,7);if(!r)return{ok:!1,reason:"checkDigit"};const u=r.digits+r.check,v=u.slice(0,4).split("").map(l=>L[Number(l)]),h=u.slice(4).split("").map(l=>E[Number(l)]);return{ok:!0,modules:[...z("101"),...v.flatMap(z),...z("01010"),...h.flatMap(z),...z("101")],text:u}}}),Ie("packages/dom/src/cell/renderers/barcode/upc.js",function(S,te){"use strict";Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return A}});const xe=te("packages/dom/src/cell/renderers/barcode/ean.js"),H=xe.L_PATTERNS,L=xe.G_PATTERNS,e=xe.encodeEan13,I=te("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function z(r){return r.split("").map(Number)}function N(r){const u=r==null?"":String(r);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const v=e(`0${u}`);return v.ok?{ok:!0,modules:v.modules,text:v.text.slice(1)}:v}function G(r,u){const v=r.split(""),h=v[5];return h<="2"?`${v[0]}${v[1]}${h}0000${v[2]}${v[3]}${v[4]}`:h==="3"?`${v[0]}${v[1]}${v[2]}00000${v[3]}${v[4]}`:h==="4"?`${v[0]}${v[1]}${v[2]}${v[3]}00000${v[4]}`:`${v[0]}${v[1]}${v[2]}${v[3]}${v[4]}0000${h}`}const C={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 A(r){const u=r==null?"":String(r);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let v,h,c=null;if(u.length===6?(v="0",h=u):u.length===7?(v=u[0],h=u.slice(1)):(v=u[0],h=u.slice(1,7),c=u[7]),v!=="0"&&v!=="1")return{ok:!1,reason:"checkDigit"};const l=G(h,v),t=I(v+l);if(c!=null&&Number(c)!==t)return{ok:!1,reason:"checkDigit"};const P=C[t][Number(v)].split("").map((y,V)=>(y==="O"?H:L)[Number(h[V])]);return{ok:!0,modules:[...z("101"),...P.flatMap(z),...z("010101")],text:`${v}${h}${t}`}}}),Ie("packages/dom/src/cell/renderers/barcode/code93.js",function(S,te){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"BASE_ORDER",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(S,"SHIFT_ORDER",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return e}});const xe="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",H=["($)","(%)","(/)","(+)"],L=[[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]],e=[1,1,1,1,4,1];function E(c){const l=[];for(let t=0;t<c.length;t++){const p=t%2===0?1:0;for(let P=0;P<c[t];P++)l.push(p)}return l}function I(c){return L[c]}function z(c){return xe.indexOf(c)}function N(){const c=new Map,l=43,t=44,p=45,P=46,o=y=>10+y;for(let y=1;y<=26;y++)c.set(y,[l,o(y-1)]);c.set(0,[t,o(20)]);for(let y=27;y<=31;y++)c.set(y,[t,o(y-27)]);for(let y=33;y<=44;y++)c.set(y,[p,o(y-33)]);c.set(47,[p,o(14)]),c.set(58,[p,o(25)]);for(let y=59;y<=63;y++)c.set(y,[t,o(y-59+5)]);c.set(64,[t,o(21)]);for(let y=91;y<=95;y++)c.set(y,[t,o(y-91+10)]);c.set(96,[t,o(22)]);for(let y=97;y<=122;y++)c.set(y,[P,o(y-97)]);for(let y=123;y<=127;y++)c.set(y,[t,o(y-123+15)]);return c}const G=N(),C=new Map([...G].map(([c,l])=>[l.join(","),c]));function A(c){const l=[];for(const t of c){const p=t.codePointAt(0);if(p>127)return null;const P=z(t);if(P>=0){l.push(P);continue}const o=G.get(p);if(!o)return null;l.push(o[0],o[1])}return l}function r(c){let l="";for(let t=0;t<c.length;t++){const p=`${c[t]},${c[t+1]??""}`;if(C.has(p)){l+=String.fromCharCode(C.get(p)),t++;continue}l+=xe[c[t]]}return l}function u(c){let l=0,t=1;for(let p=c.length-1;p>=0;p--)l+=c[p]*t,t=t===20?1:t+1;return l%47}function v(c){const l=u(c),t=u([...c,l]);return{c:l,k:t}}function h(c,l={}){const t=c==null?"":String(c);if(t==="")return{ok:!1,reason:"empty"};const p=l.extended?A(t):(()=>{const s=[];for(const d of t){const i=z(d);if(i<0)return null;s.push(i)}return s})();if(!p)return{ok:!1,reason:"charset"};const{c:P,k:o}=v(p),y=[e];for(const s of p)y.push(I(s));return y.push(I(P)),y.push(I(o)),y.push(e),{ok:!0,modules:y.flatMap(E),text:t}}}),Ie("packages/dom/src/cell/renderers/barcode/code128.js",function(S,te){"use strict";Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return c}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,L=["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"],e=103,E=104,I=105,z=106,N={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},G={A:e,B:E,C:I};function C(l){return l>=32&&l<=95?l-32:l>=0&&l<=31?l+64:null}function A(l){return l>=32&&l<=127?l-32:null}function r(l,t){const p=l.charCodeAt(t),P=l.charCodeAt(t+1);return p>=48&&p<=57&&P>=48&&P<=57}function u(l,t,p){const P=[],o=l.charCodeAt(t),y=C(o);if(y!=null){const s=p==="A"||p===null?[y]:[N[p].A,y];P.push({to:"A",symbols:s,advance:1})}const V=A(o);if(V!=null){const s=p==="B"||p===null?[V]:[N[p].B,V];P.push({to:"B",symbols:s,advance:1})}if(r(l,t)){const s=Number(l.slice(t,t+2)),d=p==="C"||p===null?[s]:[N[p].C,s];P.push({to:"C",symbols:d,advance:2})}return P}function v(l){const t=l.length,p=Array.from({length:t+1},()=>({}));p[0].start={cost:0,prev:null,symbols:[]};for(let i=0;i<=t;i++)for(const m of Object.keys(p[i])){const k=p[i][m];if(i===t)continue;const w=m==="start"?null:m;for(const f of u(l,i,w)){const $=i+f.advance,b=k.cost+f.symbols.length,_=p[$][f.to];(!_||b<_.cost)&&(p[$][f.to]={cost:b,prev:m,symbols:f.symbols,backI:i})}}const P=Object.entries(p[t]);if(P.length===0)return null;P.sort((i,m)=>i[1].cost-m[1].cost);const[,o]=P[0],y=[];let V=t,s=P[0][0],d=s;for(;V>0;){const i=p[V][s];y.push(i.symbols),d=s,V=i.backI,s=i.prev}return y.reverse(),{symbols:y.flat(),startSubset:d}}function h(l,t){let p=l;for(let P=0;P<t.length;P++)p+=t[P]*(P+1);return p%103}function c(l,t={}){const p=l==null?"":String(l);if(p==="")return{ok:!1,reason:"empty"};for(let i=0;i<p.length;i++)if(p.charCodeAt(i)>127)return{ok:!1,reason:"charset"};const P=v(p);if(!P)return{ok:!1,reason:"charset"};const o=G[P.startSubset],y=h(o,P.symbols);return{ok:!0,modules:[o,...P.symbols,y,z].map(i=>L[i].split("").map(Number)).flatMap(i=>H(i)),text:p}}}),Ie("packages/dom/src/cell/renderers/barcode/code11.js",function(S,te){"use strict";Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return I}});const xe=te("packages/dom/src/cell/renderers/barcode/support.js"),H=xe.buildPattern,L=xe.weightedModulo,e="0123456789-",E=[[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]],I=[2,1,1,1,2,1],z=r=>e.indexOf(r);function N(r){const u=z(r);return u<0?null:E[u]}function G(r){return e[L(r,10)]}function C(r){return e[L(r,9)]}function A(r,u={}){const v=r==null?"":String(r);if(v==="")return{ok:!1,reason:"empty"};const h=[];for(const o of v){const y=z(o);if(y<0)return{ok:!1,reason:"charset"};h.push(y)}const c=G(h),l=z(c),p=v.length>=10?`${c}${C([...h,l])}`:c,P=[I];for(const o of v)P.push(N(o));for(const o of p)P.push(N(o));return P.push(I),{ok:!0,modules:H(P,1),text:`${v}${p}`}}}),Ie("packages/dom/src/cell/renderers/barcode/codabar.js",function(S,te){"use strict";Object.defineProperty(S,"MOD16_ORDER",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return A}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,L=2,e={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"},E="0123456789-$:/.+",I="ABCD",z="0123456789-$:/.+ABCD";function N(r){return r.split("").map(u=>u==="w"?L:1)}function G(r){const u=e[r];return u?N(u):null}function C(r){let u=0;for(const h of r){const c=z.indexOf(h);if(c<0)return null;u+=c}const v=u%16;return v<10?String(v):null}function A(r,u={}){const v=r==null?"":String(r);if(v==="")return{ok:!1,reason:"empty"};const h=v.toUpperCase();if(h.length<2)return{ok:!1,reason:"charset"};const c=h[0],l=h[h.length-1];if(!I.includes(c)||!I.includes(l))return{ok:!1,reason:"charset"};const t=h.slice(1,-1);for(const o of t)if(!E.includes(o))return{ok:!1,reason:"charset"};const p=[c,...t.split(""),l];if(u.checkDigit){const o=C(p);if(o==null)return{ok:!1,reason:"checkDigit"};p.splice(p.length-1,0,o);const y=p.map(G),V=`${h.slice(0,-1)}${o}${l}`;return{ok:!0,modules:H(y,1),text:V}}const P=p.map(G);return{ok:!0,modules:H(P,1),text:h}}}),Ie("packages/dom/src/cell/renderers/barcode/code32.js",function(S,te){"use strict";Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"decodeCode32Modules",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return u}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,L=2,e="010010100",E={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"},I="0123456789BCDFGHJKLMNPQRSTUVWXYZ",z=v=>v.split("").map(h=>h==="1"?L:1),N=v=>E[v]?z(E[v]):null,G=()=>z(e);function C(v){let h=0;for(let c=0;c<8;c++){const l=c+1;let t=Number(v[c]);l%2===0&&(t*=2,t>=10&&(t-=9)),h+=t}return h%10}function A(v,h){let c="",l=v;for(let t=0;t<h;t++)c=I[l%32]+c,l=Math.floor(l/32);return c}function r(v){const h=[];for(let P=0;P<v.length;P++)P===0||v[P]!==v[P-1]?h.push(1):h[h.length-1]++;const c=1,l=P=>P>c?"1":"0",t=[];let p=9;for(;p<h.length;){p+=1;const P=h.slice(p,p+9);if(P.length<9)break;const o=P.map(l).join(""),y=Object.keys(E).find(V=>E[V]===o);t.push(y??"?"),p+=9}return t.pop(),t}function u(v,h={}){const c=v==null?"":String(v);if(c==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(c))return{ok:!1,reason:"charset"};const l=c.slice(0,8),t=C(l);let p;if(c.length===9){const d=Number(c[8]);if(d!==t)return{ok:!1,reason:"checkDigit"};p=d}else p=t;const P=`${l}${p}`,o=Number(P),V=`A${A(o,6)}`.split(""),s=[G()];for(const d of V){const i=N(d);if(!i)return{ok:!1,reason:"charset"};s.push(i)}return s.push(G()),{ok:!0,modules:H(s,1),text:P}}}),Ie("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(S,te){"use strict";Object.defineProperty(S,"gfMul",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"gfExp",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"generatorPoly",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"reedSolomon",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"SIZES",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"dataCodewords",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"errorCodewords",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"dataRegionSize",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"encodeAscii",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"base256Mask",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"encodeBase256",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"padCodewords",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"utahPlacementOrder",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"diagonalWalkCoverage",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"placeCodewords",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"buildSymbol",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return k}});const xe=301,H=new Uint8Array(512),L=new Uint8Array(256);{let w=1;for(let f=0;f<255;f++)H[f]=w,L[w]=f,w<<=1,w&256&&(w^=xe);for(let f=255;f<512;f++)H[f]=H[f-255]}function e(w,f){return w===0||f===0?0:H[L[w]+L[f]]}function E(w){return H[(w%255+255)%255]}function I(w){let f=new Uint8Array([1]);for(let $=0;$<w;$++){const b=new Uint8Array(f.length+1);for(let _=0;_<f.length;_++)b[_]^=f[_],b[_+1]^=e(f[_],E($));f=b}return f.subarray(1)}function z(w,f){const $=I(f),b=new Uint8Array(f);for(let _=0;_<w.length;_++){const n=w[_]^b[0];if(b.copyWithin(0,1),b[f-1]=0,n!==0)for(let O=0;O<f;O++)b[O]^=e($[O],n)}return b}const N={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]},G=Object.keys(N).map(Number).sort((w,f)=>w-f);function C(w){const f=N[w];if(!f)throw new RangeError(`unsupported Data Matrix size ${w}`);return f[0]}function A(w){const f=N[w];if(!f)throw new RangeError(`unsupported Data Matrix size ${w}`);return f[1]}function r(w){return w-2}const u=129,v=231,h=w=>w>=48&&w<=57;function c(w){const f=[];let $=0;for(;$<w.length;){const b=w[$],_=$+1<w.length?w[$+1]:-1;if(h(b)&&h(_)){const n=b-48,O=_-48;f.push(n*10+O+130),$+=2}else f.push(b+1),$+=1}return f}function l(w,f){const $=149*f%255+1;return(w+$)%256}function t(w,f){if(w.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const $=[v,w.length];for(let b=0;b<w.length;b++)$.push(l(w[b],f+2+b));return $}function p(w,f){if(w.length>f)throw new RangeError(`encoded stream (${w.length} codewords) exceeds capacity (${f})`);const $=w.slice();for(;$.length<f;)$.push(u);return $}function P(w){const f=new Array(w*w).fill(null),$=[],b=(ke,ce)=>ke>=0&&ke<w&&ce>=0&&ce<w,_=(ke,ce)=>{if(!b(ke,ce))return;const B=ke*w+ce;if(f[B]===null){const be={row:ke,col:ce};f[B]=be,$.push(be)}},n=(ke,ce)=>{const B=q=>(q%w+w)%w,be=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[q,D]of be)_(B(ke+q),B(ce+D))};let O=4,ie=0,F=0;const se=w*w+64;do{for(;O>=0&&ie<w;)n(O,ie),O-=2,ie+=2;for(O+=1,ie+=3;O<w&&ie>=0;)n(O,ie),O+=2,ie-=2;O+=3,ie+=1}while((O<w||ie<w)&&F++<se);const le=$.length;for(let ke=0;ke<w;ke++)for(let ce=0;ce<w;ce++)_(ke,ce);return Object.defineProperty($,"sweptCount",{value:$.length-le,enumerable:!1}),$}function o(w){return P(w).sweptCount}function y(w,f){const $=P(f),b=new Uint8Array(f*f);for(let _=0;_<$.length;_++){const n=Math.floor(_/8);if(n>=w.length)break;const O=7-_%8,ie=w[n]>>>O&1,{row:F,col:se}=$[_];b[F*f+se]=ie}return b}function V(w,f){const $=f+2,b=new Uint8Array($*$),_=(O,ie,F)=>{b[O*$+ie]=F},n=$-1;for(let O=0;O<$;O++)_(n,O,1);for(let O=0;O<$;O++)_(O,0,1);for(let O=0;O<$;O++)_(0,O,O%2===0?1:0);for(let O=0;O<$;O++)_(O,$-1,O%2===0?1:0);for(let O=0;O<f;O++)for(let ie=0;ie<f;ie++)b[(O+1)*$+(ie+1)]=w[O*f+ie];return{size:$,modules:b}}function s(w){const f=new Uint8Array(w.length);for(let $=0;$<w.length;$++)f[$]=w.charCodeAt($)&255;return f}function d(w){for(let f=0;f<w.length;f++)if(w[f]>127)return!1;return!0}function i(w){for(const f of G)if(C(f)>=w)return f;return 0}function m(w,f={}){if(w==null||w==="")return{ok:!1,reason:"empty"};const $=String(w),b=s($),_=f&&f.encodation==="base256";if(!_&&!d(b))return{ok:!1,reason:"charset"};let n;if(_){if(b.length>249)return{ok:!1,reason:"capacity"};n=t(b,1)}else n=c(b);const O=f&&f.size;let ie;if(O!=null){if(!N[O])return{ok:!1,reason:"capacity"};if(n.length>C(O))return{ok:!1,reason:"capacity"};ie=O}else if(ie=i(n.length),ie===0)return{ok:!1,reason:"capacity"};const F=C(ie),se=p(n,F),le=z(se,A(ie)),ke=new Uint8Array(F+le.length);ke.set(se,0),ke.set(le,F);const ce=r(ie),B=y(ke,ce),{modules:be}=V(B,ce);return{ok:!0,matrix:{size:ie,modules:be},text:$}}const k=m}),Ie("packages/dom/src/cell/renderers/barcode/index.js",function(S,te){"use strict";Object.defineProperty(S,"BARCODE_TYPES",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"encodeBarcode",{enumerable:!0,get:function(){return y}});const xe=te("packages/dom/src/cell/renderers/barcode/code39.js"),H=xe.encodeCode39,L=te("packages/dom/src/cell/renderers/barcode/ean.js"),e=L.encodeEan13,E=L.encodeEan8,I=te("packages/dom/src/cell/renderers/barcode/upc.js"),z=I.encodeUpcA,N=I.encodeUpcE,G=te("packages/dom/src/cell/renderers/barcode/code93.js"),C=G.encodeCode93,A=te("packages/dom/src/cell/renderers/barcode/code128.js"),r=A.encodeCode128,u=te("packages/dom/src/cell/renderers/barcode/code11.js"),v=u.encodeCode11,h=te("packages/dom/src/cell/renderers/barcode/codabar.js"),c=h.encodeCodabar,l=te("packages/dom/src/cell/renderers/barcode/code32.js"),t=l.encodeCode32,p=te("packages/dom/src/cell/renderers/barcode/datamatrix.js"),P=p.encodeDataMatrix;Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return xe.encodeCode39}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return L.encodeEan13}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return L.encodeEan8}}),Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return I.encodeUpcA}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return I.encodeUpcE}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return G.encodeCode93}}),Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return A.encodeCode128}}),Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return u.encodeCode11}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return h.encodeCodabar}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return l.encodeCode32}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return p.encodeDataMatrix}});const o=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function y(V,s,d={}){switch(V){case"code39":return H(s,{checkDigit:d.checkDigit});case"code39ext":return H(s,{extended:!0,checkDigit:d.checkDigit});case"ean13":return e(s);case"ean8":return E(s);case"upca":return z(s);case"upce":return N(s);case"code93":return C(s);case"code93ext":return C(s,{extended:!0});case"code128":return r(s);case"code11":return v(s);case"codabar":return c(s,{checkDigit:d.checkDigit});case"code32":return t(s);case"datamatrix":return P(s,{size:d.size,encodation:d.encodation});default:return{ok:!1,reason:"type"}}}}),Ie("packages/dom/src/cell/renderers/barcode/render.js",function(S,te){"use strict";Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"barsPathData",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"matrixPathData",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"paint",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"buildSvg",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"renderBarcode",{enumerable:!0,get:function(){return c}});const H=te("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,L="http://www.w3.org/2000/svg",e=60,E=16,I=4;function z(l,t,p){p==null||p===!1?l.removeAttribute(t):l.setAttribute(t,String(p))}const N=new Set;function G(l,t){N.has(l)||(N.add(l),console.warn("[lattice]",t))}function C(l,t,p){const P=[];let o=0;for(;o<l.length;){if(!l[o]){o++;continue}let y=1;for(;o+y<l.length&&l[o+y];)y++;P.push(`M${o+t} 0h${y}v${p}h-${y}z`),o+=y}return P.join("")}function A(l,t){const{size:p,modules:P}=l,o=[];for(let y=0;y<p;y++){let V=0;for(;V<p;){if(!P[y*p+V]){V++;continue}let s=1;for(;V+s<p&&P[y*p+V+s];)s++;o.push(`M${V+t} ${y+t}h${s}v1h-${s}z`),V+=s}}return o.join("")}function r(l){const t=l&&typeof l=="object"?l:{};return{show:t.show!==!1,position:t.position==="top"?"top":"bottom",align:t.align==="left"||t.align==="right"?t.align:"center",margin:Number.isFinite(Number(t.margin))?Number(t.margin):2,font:typeof t.font=="string"&&t.font?t.font:"10px sans-serif"}}function u(l){const t=Math.floor(Number(l));return!Number.isFinite(t)||t<0?10:Math.min(40,t)}function v(l,t,p){const P=u(p.quietZone),o=r(p.text),y=o.show,V=!!t.matrix,s=V?t.matrix.size:t.modules.length,d=V?s+P*2:e,i=y&&o.position==="top"?E+I:0,m=d+(y?E+I:0),k=s+P*2,w=Number(p.moduleWidth)||0,f=w>0?k*w:Number(p.width)||200,$=Number(p.height)||Math.round(f/k*m)||60;z(l.svg,"viewBox",`0 0 ${k} ${m}`),z(l.svg,"width",f),z(l.svg,"height",$);const b=p.print?"#000000":p.foreground||"currentColor",_=p.print?"#ffffff":p.background;if(_?(z(l.background,"x",0),z(l.background,"y",0),z(l.background,"width",k),z(l.background,"height",m),l.background.setAttribute("fill",_),l.background.style.display=""):l.background.style.display="none",l.path.setAttribute("fill",b),l.path.setAttribute("transform",`translate(0 ${i})`),l.path.setAttribute("d",V?A(t.matrix,P):C(t.modules,P,e)),!y){l.text.style.display="none";return}l.text.style.display="",l.text.style.font=o.font,l.text.setAttribute("fill",b),l.text.setAttribute("text-anchor",o.align==="left"?"start":o.align==="right"?"end":"middle");const n=o.align==="left"?P:o.align==="right"?k-P:k/2,O=o.position==="top"?E-o.margin:m-o.margin;z(l.text,"x",n),z(l.text,"y",O),l.text.textContent=t.text}function h(l){const t=l.createElementNS(L,"svg");t.setAttribute("class","lat-barcode__svg"),t.setAttribute("focusable","false"),t.setAttribute("preserveAspectRatio","none");const p=l.createElementNS(L,"rect");p.style.display="none";const P=l.createElementNS(L,"path"),o=l.createElementNS(L,"text");return t.appendChild(p),t.appendChild(P),t.appendChild(o),{svg:t,background:p,path:P,text:o}}function c(l,t){const p=l.ownerDocument,P=h(p);l.textContent="",l.appendChild(P.svg);const o=V=>{const s=V||{},d=String(s.type||"code39"),i=H(d,s.value,{checkDigit:s.checkDigit,size:s.size,encodation:s.encodation});if(!i.ok){G(`barcode:invalid:${d}`,`column "standalone" has a value that is not valid for the "${d}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),P.path.setAttribute("d","");return}v(P,i,s)};return o(t),{update:o,destroy:()=>{l.textContent=""}}}}),Ie("packages/modules/form/controls/barcode.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function E(I,z){const N=I.props&&I.props.source;if(!N)return I.value;const G=typeof z.form.getItem=="function"?z.form.getItem(N):null;return G&&typeof G.getValue=="function"?G.getValue():void 0}H("barcode",{kind:"display",build(I,z){const N=z.doc.createElement("span");N.className="lat-form__barcode";const G=e(N,{...I.props,value:E(I,z)}),C=I.props&&I.props.source;if(C){const A=z.emitter.on("change",r=>{r&&r.name===C&&G.update({...I.props,value:r.value})});z.disposers.push(A)}return z.disposers.push(()=>G.destroy()),N._barcodeHandle=G,N},read(I,z,N){return E(z,N)},write(I,z,N){I._barcodeHandle&&I._barcodeHandle.update({...z.props,value:N})},state(){}})}),Ie("packages/modules/form/controls/speeddial.js",function(S,te){"use strict";Object.defineProperty(S,"injectSpeedDialStyles",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return f}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,z=te("packages/modules/form/scheme.js"),N=z.rootDefaultsCss,G=z.darkAccentCss,A=te("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,r="lat-speeddial",u="data-lattice-speeddial-styles",v="http://www.w3.org/2000/svg",h=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),c=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),l=Object.freeze(["up","down","left","right"]);function t(){const $=`
|
|
2196
|
+
`.trim()}function z(s){const d=s&&s.documentElement;if(!d||d.getAttribute(E))return;d.setAttribute(E,"1");const i=s.createElement("style");i.textContent=I(),(s.head||s.body||d).appendChild(i)}function T(s,d){const i=d&&d.defaultView,m=i&&i.Event,k=m?new m("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};s.dispatchEvent(k)}function G(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function C(s){const d=Number(s)||0;return d<1024?`${d} B`:d<1048576?`${(d/1024).toFixed(d<10240?1:0)} KB`:d<1073741824?`${(d/1048576).toFixed(1)} MB`:`${(d/1073741824).toFixed(2)} GB`}function A(s,d){if(!d||!d.length)return!0;const i=(s.name||"").toLowerCase(),m=(s.type||"").toLowerCase();return d.some(k=>{const w=String(k).trim().toLowerCase();return w.startsWith(".")?i.endsWith(w):w.endsWith("/*")?m.startsWith(w.slice(0,-1)):m===w})}function r(s){return s.length?s.length===1?s[0]:s.length===2?`${s[0]} or ${s[1]}`:`${s.slice(0,-1).join(", ")} or ${s[s.length-1]}`:""}function u(s){const d={".pdf":"PDF",".doc":"DOC",".docx":"DOCX",".xls":"XLS",".xlsx":"XLSX",".csv":"CSV",".txt":"TXT",".png":"PNG",".jpg":"JPG",".jpeg":"JPEG",".gif":"GIF",".svg":"SVG",".webp":"WEBP",".zip":"ZIP","image/*":"images","video/*":"videos","audio/*":"audio","text/*":"text","application/pdf":"PDF"},i=String(s).trim(),m=d[i.toLowerCase()];if(m)return m;if(i.startsWith("."))return i.slice(1).toUpperCase();if(i.endsWith("/*"))return`${i.slice(0,-2)}s`;const k=i.split("/")[1];return k?k.toUpperCase():i}function v(s,d,i,m){const k=[];return d&&d.length&&k.push(r(d.map(u))),i&&k.push(s("form.file.hint.size",{size:C(i)})),m&&k.push(s(m===1?"form.file.hint.file":"form.file.hint.files",{max:String(m)})),k.join(" · ")}function h(s){return{id:s.id,name:s.name,size:s.size,type:s.type,status:s.status,progress:s.progress,message:s.message||""}}function c(s,d){const i=s.createElementNS(e,"svg");i.setAttribute("viewBox","0 0 16 16"),i.setAttribute("focusable","false"),i.setAttribute("aria-hidden","true"),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","1.5"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round");const m=s.createElementNS("http://www.w3.org/2000/svg","path");return m.setAttribute("d",d),i.appendChild(m),i}const l=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 t(s,d){const i=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let m;for(;m=i.exec(d);)s.setAttribute(m[1],m[3]===void 0?m[4]:m[3])}function p(s,d){const i=/<svg\b([^>]*)>/i.exec(d);if(!i)return null;const m=s.createElementNS(e,"svg");t(m,i[1]);const k=d.lastIndexOf("</svg"),w=k===-1?"":d.slice(i.index+i[0].length,k),f=/<(\w+)\b([^>]*?)(\/?)>/g;let $;for(;$=f.exec(w);){const b=s.createElementNS(e,$[1]);t(b,$[2]),m.appendChild(b)}return m.setAttribute("aria-hidden","true"),m.setAttribute("focusable","false"),m}function P(s,d){if(s===!1)return null;if(s!=null&&typeof s=="object"&&s.nodeType){const m=s;return m.classList.add(`${L}__icon`),m.setAttribute("aria-hidden","true"),m}if(typeof s!="string"||s==="")return null;const i=l[s]?c(d,l[s]):p(d,s);return i?(i.setAttribute("class",`${L}__icon`),i):null}function o(s){const d=s.type||"";return d.startsWith("image/")?"image":d==="application/pdf"||/\.pdf$/i.test(s.name)?"document":"file"}function y(s){if(s.thumb)return s.thumb;if(!s.file||!/^image\//.test(s.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{s.thumb=URL.createObjectURL(s.file)}catch{s.thumb=null}return s.thumb}function V(s){if(s.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(s.thumb)}catch{}s.thumb=null}H("file",{kind:"field",build(s,d){const i=d.doc,m=d.t,k=s.props||{},w=Array.isArray(k.accept)?k.accept.map(j=>String(j)):[],f=Number(k.maxSize)||0,$=Number(k.maxFiles)||0,b=k.multiple!==!1,_=typeof k.upload=="function"?k.upload:null,n=k.dropzone!==!1,O=k.dropText!=null?String(k.dropText):m("form.file.dropText"),ie=k.browseText!=null?String(k.browseText):m("form.file.browse"),F=m("form.file.dropToUpload"),se=m("form.file.addMore"),le=m("form.file.typeNotAccepted"),xe=k.hint!=null&&k.hint!==""?String(k.hint):v(m,w,f,$);z(i);const ue=i.createElement("div");ue.className=L;const R={accept:w,maxSize:f,maxFiles:$,multiple:b,upload:_,dropText:O,browse:ie,dropToUpload:F,addMore:se,typeNotAccepted:le,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:n,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};ue.__latFile=R;const be=i.createElement("input");be.type="file",be.className=`${L}__input`,be.tabIndex=-1,be.setAttribute("aria-hidden","true"),b&&(be.multiple=!0),w.length&&(be.accept=w.join(",")),ue.appendChild(be),R.input=be;const q=i.createElement("div");q.className=`${L}__zone`,q.setAttribute("role","button"),q.tabIndex=0,q.setAttribute("aria-label",`${O} ${ie}`);const D=k.icon==null?c(i,l.upload):P(k.icon,i);D&&(k.icon==null&&D.setAttribute("class",`${L}__icon`),q.appendChild(D));const J=i.createElement("span");J.className=`${L}__title`;const ne=i.createElement("span");ne.className=`${L}__title-rest`,ne.textContent=O,J.appendChild(ne);const oe=i.createElement("button");oe.type="button",oe.className=`${L}__browse`,oe.tabIndex=-1,oe.textContent=ie,J.appendChild(oe),q.appendChild(J),R.titleRest=ne,R.browseEl=oe;const ve=i.createElement("span");if(ve.className=`${L}__drop`,ve.textContent=F,q.appendChild(ve),xe){const j=i.createElement("span");j.className=`${L}__hint`,j.textContent=xe,q.appendChild(j)}const pe=i.createElement("span");pe.className=`${L}__compact`,pe.appendChild(c(i,l.upload));const x=i.createElement("span");x.className=`${L}__compact-text`,x.textContent=se,pe.appendChild(x),q.appendChild(pe),R.compactText=x,ue.appendChild(q),R.zone=q;const W=i.createElement("ul");W.className=`${L}__list`,W.setAttribute("role","list"),W.hidden=!0,ue.appendChild(W),R.list=W;const U=i.createElement("div");return U.className=`${L}__live`,U.setAttribute("role","status"),U.setAttribute("aria-live","polite"),ue.appendChild(U),R.live=U,ue.__latAnnounce=j=>{R.live&&(R.live.textContent="",R.live.textContent=j)},ue.__latDragState=j=>{R.zone.classList.toggle("is-dragover",j==="over"),R.zone.classList.toggle("is-invalid",j==="invalid"),j==="none"?(R.titleRest.textContent=R.dropText,R.browseEl.hidden=!1,R.compactText.textContent=R.addMore):j==="over"?(R.titleRest.textContent=R.dropToUpload,R.browseEl.hidden=!0,R.compactText.textContent=R.dropToUpload):(R.titleRest.textContent=R.typeNotAccepted,R.browseEl.hidden=!0,R.compactText.textContent=R.typeNotAccepted)},ue.__latPaint=()=>{const j=R.disabled||R.readOnly||!R.dropzone;R.zone.hidden=j,R.zone.tabIndex=j?-1:0,j?R.zone.setAttribute("aria-disabled","true"):R.zone.removeAttribute("aria-disabled"),R.input.disabled=j;const Z=R.entries.length>0;R.zone.classList.toggle("is-compact",Z),R.zone.setAttribute("aria-label",Z?R.addMore:`${R.dropText} ${R.browse}`),W.hidden=!R.entries.length,W.tabIndex=R.readOnly&&!R.disabled?0:-1,R.entries.some(re=>re.status==="rejected")?ue.setAttribute("aria-invalid","true"):ue.removeAttribute("aria-invalid"),W.textContent="";for(const re of R.entries){const B=i.createElement("li");B.className=`${L}__item is-${re.status}`,B.setAttribute("data-id",re.id),B.setAttribute("role","listitem");const ee=y(re);if(ee){const N=i.createElement("img");N.className=`${L}__item-thumb`,N.src=ee,N.alt="",B.appendChild(N)}else{const N=c(i,l[o(re)]);N.setAttribute("class",`${L}__item-icon`),B.appendChild(N)}const X=i.createElement("div");X.className=`${L}__item-main`,B.appendChild(X);const ge=i.createElement("div");ge.className=`${L}__item-row`,X.appendChild(ge);const $e=i.createElement("span");$e.className=`${L}__item-name`,$e.textContent=re.name,$e.title=re.name,ge.appendChild($e);const K=i.createElement("span");K.className=`${L}__item-size`,K.textContent=C(re.size),ge.appendChild(K);const he=i.createElement("span");if(he.className=`${L}__item-state`,re.status==="uploading"){const N=i.createElement("span");N.className=`${L}__item-pct`,N.textContent=`${re.progress}%`,he.appendChild(N)}else re.status==="done"?he.appendChild(c(i,l.check)):(re.status==="error"||re.status==="rejected")&&he.appendChild(c(i,l.warn));ge.appendChild(he);const Ee=i.createElement("button");if(Ee.type="button",Ee.className=`${L}__remove`,Ee.setAttribute("aria-label",`${m("form.file.remove")} ${re.name}`),Ee.title=m("form.file.remove"),Ee.appendChild(c(i,l.xmark)),Ee.setAttribute("data-remove",re.id),Ee.disabled=R.disabled||R.readOnly,ge.appendChild(Ee),re.status==="uploading"){const N=i.createElement("span");N.className=`${L}__item-bar`,N.setAttribute("role","progressbar"),N.setAttribute("aria-valuemin","0"),N.setAttribute("aria-valuemax","100"),N.setAttribute("aria-valuenow",String(re.progress));const g=i.createElement("span");g.className=`${L}__item-fill`,g.style.width=`${re.progress}%`,N.appendChild(g),X.appendChild(N)}if(re.message){const N=i.createElement("span");if(N.className=`${L}__item-message`,N.appendChild(i.createTextNode(re.message)),re.status==="error"){N.appendChild(i.createTextNode(" "));const g=i.createElement("button");g.type="button",g.className=`${L}__retry`,g.textContent=m("form.file.retry"),g.setAttribute("data-retry",re.id),g.disabled=R.disabled||R.readOnly,N.appendChild(g)}X.appendChild(N)}W.appendChild(B)}},ue.__latUpload=j=>{if(!R.upload){j.status="done",j.progress=100,ue.__latPaint();return}j.status="uploading",j.progress=0,j.message="";let Z=null;typeof AbortController<"u"&&(Z=new AbortController,R.controllers.set(j.id,Z));const ae=Z?Z.signal:void 0,re=ee=>{j.progress=Math.max(0,Math.min(100,Number(ee)||0)),j.status="uploading",ue.__latPaint()};let B;try{B=R.upload(j.file,{onProgress:re,signal:ae})}catch(ee){B=Promise.reject(ee)}B&&typeof B.then=="function"&&B.then(()=>{R.controllers.delete(j.id),j.status="done",j.progress=100,ue.__latPaint(),ue.__latAnnounce(m("form.file.uploaded",{name:j.name})),T(ue,d.doc)},ee=>{R.controllers.delete(j.id),j.status="error",j.message=ee&&ee.message?String(ee.message):m("form.file.uploadFailed"),ue.__latPaint(),ue.__latAnnounce(m("form.file.failed",{name:j.name})),T(ue,d.doc)})},ue.__latTake=j=>{const Z=[...j||[]];if(!Z.length||R.disabled||R.readOnly)return;const ae=R.multiple?Z:Z.slice(0,1),re=[],B=[];let ee=R.maxFiles?Math.max(0,R.maxFiles-R.entries.length):1/0;for(const X of ae){if(ee<=0){B.push({file:X,reason:"count"});continue}if(R.maxSize&&X.size>R.maxSize){B.push({file:X,reason:"size"});continue}if(!A(X,R.accept)){B.push({file:X,reason:"type"});continue}re.push({id:G(),file:X,name:X.name,size:X.size,type:X.type,status:"selected",progress:0,message:""}),ee-=1}if(re.length){R.multiple||(R.entries=[]),R.entries.push(...re),ue.__latPaint(),T(ue,d.doc),ue.__latAnnounce(re.length===1?m("form.file.addedOne"):m("form.file.added",{count:String(re.length)}));for(const X of re)ue.__latUpload(X)}for(const X of B){const ge=X.reason==="size"?m("form.file.rejected.size",{size:C(R.maxSize)}):X.reason==="type"?m("form.file.rejected.type"):m("form.file.rejected.count",{max:String(R.maxFiles)});R.entries.push({id:G(),file:X.file,name:X.file.name,size:X.file.size,type:X.file.type,status:"rejected",progress:0,message:ge}),ue.__latAnnounce(ge)}ue.__latPaint()},ue.__latRemove=j=>{const Z=R.controllers.get(j);Z&&(Z.abort(),R.controllers.delete(j));const ae=R.entries.find(re=>re.id===j);ae&&V(ae),R.entries=R.entries.filter(re=>re.id!==j),ue.__latPaint(),T(ue,d.doc)},ue.__latRetry=j=>{if(R.disabled||R.readOnly)return;const Z=R.entries.find(ae=>ae.id===j);!Z||!Z.file||Z.status==="rejected"||(ue.__latUpload(Z),T(ue,d.doc))},ue.__latClick=j=>{if(R.disabled||R.readOnly)return;const Z=j.target&&j.target.closest?j.target:null,ae=Z&&Z.closest?Z.closest("[data-remove]"):null;if(ae&&ue.contains(ae)){ue.__latRemove(ae.getAttribute("data-remove"));return}const re=Z&&Z.closest?Z.closest("[data-retry]"):null;if(re&&ue.contains(re)){ue.__latRetry(re.getAttribute("data-retry"));return}Z&&Z.closest&&Z.closest(`.${L}__zone`)&&R.input.click()},ue.__latKeydown=j=>{R.disabled||R.readOnly||(j.key==="Enter"||j.key===" "||j.key==="Spacebar")&&j.target===R.zone&&(j.preventDefault(),R.input.click())},ue.__latChange=()=>{ue.__latTake(R.input.files),R.input.value=""},ue.__latDragKind=j=>{if(!R.accept.length)return"over";const Z=j.dataTransfer;if(!Z||!Z.types||!Z.types.length)return"over";const ae=Array.from(Z.types);return ae.includes("Files")?"over":ae.every(re=>!A({name:"",type:re},R.accept))?"invalid":"over"},ue.__latDrag=j=>{if(!(R.disabled||R.readOnly)){if(j.type==="dragenter"||j.type==="dragover"){j.preventDefault(),ue.__latDragState(ue.__latDragKind(j));return}if(j.type==="dragleave"){if(j.relatedTarget&&R.zone.contains(j.relatedTarget))return;ue.__latDragState("none");return}j.type==="drop"&&(j.preventDefault(),ue.__latDragState("none"),ue.__latTake(j.dataTransfer&&j.dataTransfer.files))}},ue.__latPaste=j=>{if(R.disabled||R.readOnly||!j.clipboardData)return;const Z=[...j.clipboardData.files||[]];Z.length&&(j.preventDefault(),ue.__latTake(Z))},be.addEventListener("change",ue.__latChange),ue.addEventListener("click",ue.__latClick),ue.addEventListener("keydown",ue.__latKeydown),ue.addEventListener("paste",ue.__latPaste),n&&["dragenter","dragover","dragleave","drop"].forEach(j=>ue.addEventListener(j,ue.__latDrag)),ue.__latPaint(),ue},read(s){const d=s.__latFile;return d?d.entries.filter(i=>i.status!=="rejected").map(h):[]},write(s,d){const i=s.__latFile;if(!i)return;const m=Array.isArray(d)?d:[],k=i.entries.filter(w=>w.status==="rejected");for(const w of i.entries)k.includes(w)||V(w);i.entries=k;for(const w of m)i.entries.push({id:w&&w.id?String(w.id):G(),file:w&&w.file?w.file:null,name:w&&w.name!=null?String(w.name):"",size:w&&w.size!=null?Number(w.size):0,type:w&&w.type!=null?String(w.type):"",status:w&&w.status?String(w.status):"done",progress:w&&w.progress!=null?Number(w.progress):100,message:w&&w.message?String(w.message):""});s.__latPaint&&s.__latPaint()},state(s,d){const i=s.__latFile;i&&(i.disabled=d.disabled===!0,i.readOnly=d.readOnly===!0,i.disabled?s.setAttribute("aria-disabled","true"):s.removeAttribute("aria-disabled"),i.readOnly?s.setAttribute("aria-readonly","true"):s.removeAttribute("aria-readonly"),s.__latPaint&&s.__latPaint())},validate(s,d,i){const m=s.__latFile;if(!m)return null;const k=m.entries.find(w=>w.status==="rejected");return k&&k.message&&(!Array.isArray(i)||i.length===0)?k.message:m.maxFiles&&Array.isArray(i)&&i.length>m.maxFiles?`Too many files (max ${m.maxFiles})`:null}})}),Ie("packages/dom/src/editors/richtext-icons.js",function(S,te){"use strict";Object.defineProperty(S,"TOOL_GLYPHS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"letterGlyph",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"toolGlyph",{enumerable:!0,get:function(){return E}});const we="http://www.w3.org/2000/svg",H=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),L=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 e(I,z){const T=H[z],G=I.createElementNS(we,"svg");G.setAttribute("viewBox","0 0 16 16"),G.setAttribute("width","16"),G.setAttribute("height","16"),G.setAttribute("focusable","false"),G.setAttribute("aria-hidden","true");const C=I.createElementNS(we,"text");return C.setAttribute("x","8"),C.setAttribute("y","12"),C.setAttribute("text-anchor","middle"),C.style.fontSize="12px",C.style.fill="currentColor",C.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',T.weight&&(C.style.fontWeight=T.weight),T.style&&(C.style.fontStyle=T.style),T.decoration&&(C.style.textDecoration=T.decoration),C.textContent=T.char,G.appendChild(C),G}function E(I,z){const T=I.createElementNS(we,"svg");T.setAttribute("viewBox","0 0 16 16"),T.setAttribute("focusable","false"),T.setAttribute("aria-hidden","true"),T.setAttribute("fill","none"),T.setAttribute("stroke","currentColor"),T.setAttribute("stroke-width","1.5"),T.setAttribute("stroke-linecap","round"),T.setAttribute("stroke-linejoin","round");const G=I.createElementNS(we,"path");return G.setAttribute("d",L[z]),T.appendChild(G),T}}),Ie("packages/modules/form/controls/swatches.js",function(S,te){"use strict";Object.defineProperty(S,"DEFAULT_COLORS",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"hslToHex",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"buildSwatchButton",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"buildSwatchGrid",{enumerable:!0,get:function(){return A}});const we=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),H=Object.freeze([0,24,48,84,140,168,196,224,268,320]),L=Object.freeze([.82,.66,.5,.36,.22]),e=.62,E=Object.freeze([.92,.76,.56,.36,.18]);function I(r,u,v){let h=v;return h<0&&(h+=1),h>1&&(h-=1),h<1/6?r+(u-r)*6*h:h<1/2?u:h<2/3?r+(u-r)*(2/3-h)*6:r}function z(r,u,v){const h=(r%360+360)%360/360;let c,l,t;if(u===0)c=v,l=v,t=v;else{const P=v<.5?v*(1+u):v+u-v*u,o=2*v-P;c=I(o,P,h+1/3),l=I(o,P,h),t=I(o,P,h-1/3)}const p=P=>Math.round(P*255).toString(16).padStart(2,"0");return`#${p(c)}${p(l)}${p(t)}`}const T=Object.freeze(H.map(r=>Object.freeze(L.map(u=>z(r,e,u))))),G=Object.freeze(E.map(r=>z(0,0,r)));function C(r,u,v={}){const h=r.createElement("button");return h.type="button",h.className="lat-form__swatch",h.style.background=u,h.setAttribute("role","option"),h.setAttribute("data-color",u),h.setAttribute("aria-selected",v.selected?"true":"false"),v.selected&&h.classList.add("is-selected"),h.title=v.title!=null?v.title:u,h.tabIndex=-1,h}function A(r,u,v={}){const h=r.createElement("div");h.className="lat-form__swatch-grid",h.setAttribute("role","listbox");const c=[];for(const l of u){const t=r.createElement("div");t.className=v.rowClass?`lat-form__swatch-row ${v.rowClass}`:"lat-form__swatch-row";const p=[];for(const P of l){const o=C(r,P,{selected:typeof v.isSelected=="function"&&v.isSelected(P),title:typeof v.title=="function"?v.title(P):void 0});t.appendChild(o),p.push(o)}h.appendChild(t),c.push(p)}return typeof v.onPick=="function"&&h.addEventListener("click",l=>{const t=l.target&&l.target.closest?l.target.closest(".lat-form__swatch"):null;t&&h.contains(t)&&v.onPick(t.getAttribute("data-color"),t)}),{el:h,rows:c}}}),Ie("packages/modules/form/controls/richtext.js",function(S,te){"use strict";Object.defineProperty(S,"sanitize",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return E}});const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/dom/src/editors/sanitize-richtext.js"),e=L.sanitizeRichText,E=L.escapeHtml,I=te("packages/dom/src/editors/richtext-icons.js"),z=I.letterGlyph,T=I.toolGlyph,G=I.TOOL_GLYPHS,C=te("packages/modules/form/controls/swatches.js"),A=C.DEFAULT_COLORS,r=C.buildSwatchGrid,u=e,v=Object.freeze({basic:["bold","italic","underline","color","lowercase","uppercase","|","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","undo","redo"],html:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","clear","source","|","undo","redo"],rich:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","image","clear","source","|","undo","redo"]}),h=Object.freeze(["bold","italic","underline","strike"]),c=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 l(y){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"}}[y]||null}const t=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function p(y){return Array.isArray(y)?y.map(V=>String(V)):v[y]||v.basic}function P(y){return new Promise((V,s)=>{const d=new FileReader;d.onload=()=>V(d.result),d.onerror=()=>s(d.error||new Error("read failed")),d.readAsDataURL(y)})}H("richtext",{kind:"field",build(y,V){const s=V.doc,d=y.props||{},i=p(d.toolbar),m=Array.isArray(d.headings)?d.headings:t,k=Array.isArray(d.colors)?d.colors:A,w=d.linkTarget!=null?String(d.linkTarget):"_blank",f=Number(d.minHeight)||160,$=Number(d.maxHeight)||0,b=Number(d.maxImageSize)||0,_=typeof d.onImage=="function"?d.onImage:null,n=d.sanitizePaste!==!1,O=d.allowedTags,ie=d.placeholder!=null?String(d.placeholder):V.t("form.richtext.placeholder"),F=s.createElement("div");F.className="lat-form__richtext";const se={toolbar:i,headings:m,colors:k,linkTarget:w,minHeight:f,maxHeight:$,maxImageSize:b,onImage:_,sanitizePaste:n,allowedTags:O,placeholder:ie,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};F.__latRt=se;const le=u(s,y.value==null?"":String(y.value),O,{});se.history={stack:[le],index:0},se.lastValue=le;const xe=s.createElement("div");xe.className="lat-form__richtext-toolbar",xe.setAttribute("role","toolbar"),xe.setAttribute("aria-label",V.t("form.richtext.formatting")),se.toolbarEl=xe;for(const D of i){if(D==="|"){const ne=s.createElement("span");ne.className="lat-form__richtext-sep",ne.setAttribute("role","separator"),xe.appendChild(ne);continue}if(D==="heading"){const ne=s.createElement("select");ne.className="lat-form__richtext-select",ne.title=V.t(c.heading),ne.setAttribute("aria-label",V.t(c.heading)),ne.setAttribute("data-item","heading");for(const[oe,ve]of m){const pe=s.createElement("option");pe.value=oe,pe.textContent=String(ve),ne.appendChild(pe)}se.buttons.heading=ne,xe.appendChild(ne);continue}const J=s.createElement("button");J.type="button",J.className="lat-form__richtext-btn",J.setAttribute("data-item",D),J.title=V.t(c[D]||D),J.setAttribute("aria-label",V.t(c[D]||D)),D==="lowercase"||D==="uppercase"?(J.className+=" lat-form__richtext-btntext",J.textContent=V.t(D==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):h.includes(D)?J.appendChild(z(s,D)):G[D]?J.appendChild(T(s,D)):J.textContent=D,se.buttons[D]=J,xe.appendChild(J)}F.appendChild(xe);const ue=s.createElement("div");ue.className="lat-form__richtext-popover",ue.hidden=!0,F.appendChild(ue),se.popover=ue;const R=s.createElement("div");R.className="lat-form__richtext-editor",R.contentEditable=y.readOnly||y.disabled?"false":"true",R.setAttribute("role","textbox"),R.setAttribute("aria-multiline","true"),R.setAttribute("aria-label",y.label!=null?String(y.label):V.t("form.richtext.richText")),R.setAttribute("data-placeholder",ie),R.style.minHeight=`${f}px`,$&&(R.style.maxHeight=`${$}px`),R.innerHTML=le,F.appendChild(R),se.editor=R;const be=s.createElement("textarea");be.className="lat-form__richtext-source",be.setAttribute("aria-label",V.t("form.richtext.source")),be.spellcheck=!1,be.hidden=!0,F.appendChild(be),se.source=be;const q=s.createElement("input");return q.type="file",q.accept="image/*",q.className="lat-form__richtext-file",q.tabIndex=-1,q.setAttribute("aria-hidden","true"),F.appendChild(q),se.fileInput=q,F.__latSave=()=>{const D=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;D&&D.rangeCount&&R.contains(D.anchorNode)&&(se.range=D.getRangeAt(0).cloneRange())},F.__latRestore=()=>{if(!se.range)return;const D=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(D)try{D.removeAllRanges(),D.addRange(se.range)}catch{}},F.__latRefresh=()=>{Object.entries(se.buttons).forEach(([D,J])=>{const ne=l(D);if(ne&&ne.state&&J.tagName==="BUTTON"){let oe=!1;try{oe=s.queryCommandState(ne.state)}catch{oe=!1}J.setAttribute("aria-pressed",oe?"true":"false"),J.classList.toggle("is-active",oe)}if(D==="heading"&&J.tagName==="SELECT"){let oe="";try{oe=String(s.queryCommandValue("formatBlock")||"").toLowerCase()}catch{oe=""}const ve=[...J.options].some(pe=>pe.value===oe);J.value=ve?oe:"p"}})},F.__latExec=(D,J)=>{R.focus(),F.__latRestore();try{s.execCommand("styleWithCSS",!1,D==="foreColor")}catch{}try{s.execCommand(D,!1,J===void 0?null:J)}catch{}F.__latAfterEdit()},F.__latAfterEdit=()=>{const D=R.innerHTML,J=se.history;J.stack[J.index]!==D&&(J.stack=J.stack.slice(0,J.index+1),J.stack.push(D),J.stack.length>200&&J.stack.shift(),J.index=J.stack.length-1),F.__latRefresh();const ne=u(s,D,O,{}),oe=se.lastValue==null?u(s,J.stack[0]||"",O,{}):se.lastValue;se.lastValue=ne,o(F,s,oe,ne)},F.__latCaretEnd=()=>{const D=s.createRange();D.selectNodeContents(R),D.collapse(!1);const J=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;J&&(J.removeAllRanges(),J.addRange(D)),se.range=D.cloneRange()},F.__latUndo=()=>{const D=se.history;if(D.index<=0)return;D.index-=1,R.innerHTML=D.stack[D.index],F.__latCaretEnd(),F.__latRefresh();const J=u(s,R.innerHTML,O,{});se.lastValue=J,o(F,s,se.lastValue,J)},F.__latRedo=()=>{const D=se.history;if(D.index>=D.stack.length-1)return;D.index+=1,R.innerHTML=D.stack[D.index],F.__latCaretEnd(),F.__latRefresh();const J=u(s,R.innerHTML,O,{});se.lastValue=J,o(F,s,se.lastValue,J)},F.__latClosePopover=()=>{ue.hidden=!0,ue.textContent=""},F.__latOpenPopover=(D,J)=>{if(ue.textContent="",ue.hidden=!1,ue.style.left=`${Math.max(0,J.offsetLeft)}px`,D==="color"){const{el:ne}=r(s,[k],{onPick:x=>{F.__latRestore(),F.__latExec("foreColor",x),F.__latClosePopover()}});ue.appendChild(ne);const oe=s.createElement("div");oe.className="lat-form__richtext-poprow";const ve=s.createElement("input");ve.type="color",ve.className="lat-form__richtext-colorinput",ve.setAttribute("aria-label",V.t("form.richtext.colorCustom")),ve.addEventListener("input",()=>{F.__latRestore(),F.__latExec("foreColor",ve.value)});const pe=s.createElement("button");pe.type="button",pe.className="lat-form__richtext-popbtn",pe.textContent=V.t("form.richtext.colorRemove"),pe.addEventListener("click",()=>{F.__latRestore(),F.__latExec("foreColor","inherit"),F.__latClosePopover()}),oe.appendChild(ve),oe.appendChild(pe),ue.appendChild(oe)}else{const ne=F.__latClosestLink(),oe=s.createElement("input");oe.type="url",oe.className="lat-form__richtext-linkinput",oe.placeholder=V.t("form.richtext.linkPlaceholder"),oe.value=ne&&ne.getAttribute("href")||"",oe.setAttribute("aria-label",V.t("form.richtext.linkLabel"));const ve=()=>{const W=oe.value.trim();if(F.__latRestore(),!W){F.__latExec("unlink"),F.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(W)){oe.classList.add("is-invalid");return}if(ne)ne.setAttribute("href",W),F.__latAfterEdit();else{const U=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(U&&U.isCollapsed){const j=w?` target="${E(w)}" rel="noopener noreferrer"`:"";F.__latExec("insertHTML",u(s,`<a href="${E(W)}"${j}>${E(W)}</a>`,O,{}))}else{F.__latExec("createLink",W);const j=F.__latClosestLink();j&&w&&(j.setAttribute("target",w),j.setAttribute("rel","noopener noreferrer"))}}F.__latClosePopover()};oe.addEventListener("keydown",W=>{W.key==="Enter"&&(W.preventDefault(),ve()),W.key==="Escape"&&F.__latClosePopover()});const pe=s.createElement("div");pe.className="lat-form__richtext-poprow",pe.appendChild(oe);const x=s.createElement("button");if(x.type="button",x.className="lat-form__richtext-popbtn",x.textContent=ne?V.t("form.richtext.linkUpdate"):V.t("form.richtext.linkAdd"),x.addEventListener("click",ve),pe.appendChild(x),ne){const W=s.createElement("button");W.type="button",W.className="lat-form__richtext-popbtn",W.textContent=V.t("form.richtext.linkRemove"),W.addEventListener("click",()=>{F.__latRestore(),F.__latExec("unlink"),F.__latClosePopover()}),pe.appendChild(W)}ue.appendChild(pe),setTimeout(()=>oe.focus(),0)}},F.__latClosestLink=()=>{const D=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(!D||D.rangeCount===0)return null;let J=D.getRangeAt(0).commonAncestorContainer;J.nodeType===3&&(J=J.parentNode);const ne=J.closest?J.closest("a"):null;return ne&&R.contains(ne)?ne:null},F.__latRun=D=>{if(se.disabled||se.readOnly)return;D!=="source"&&se.sourceMode&&F.__latToggleSource(!1),F.__latRestore();const J=l(D);if(D==="color"||D==="link"){F.__latOpenPopover(D,se.buttons[D]);return}if(D==="undo"){F.__latUndo();return}if(D==="redo"){F.__latRedo();return}if(D==="source"){F.__latToggleSource();return}if(D==="image"){se.fileInput.click();return}if(D==="lowercase"||D==="uppercase"){F.__latCase(D==="uppercase");return}if(J){F.__latExec(J.cmd);return}},F.__latCase=D=>{const J=s.defaultView&&s.defaultView.getSelection?s.defaultView.getSelection():null;if(!J||J.rangeCount===0||J.isCollapsed)return;const ne=J.toString();F.__latExec("insertText",D?ne.toUpperCase():ne.toLowerCase())},F.__latToggleSource=D=>{const J=D===void 0?!se.sourceMode:!!D;if(J===se.sourceMode)return;J?(se.source.value=u(s,R.innerHTML,O,{}).replace(/></g,`>
|
|
2197
|
+
<`),R.hidden=!0,be.hidden=!1,be.focus()):(se.sourceDirty&&(R.innerHTML=u(s,be.value,O,{}),se.sourceDirty=!1),be.hidden=!0,R.hidden=!1,R.focus()),se.sourceMode=J;const ne=se.buttons.source;ne&&(ne.classList.toggle("is-active",J),ne.setAttribute("aria-pressed",J?"true":"false")),Object.entries(se.buttons).forEach(([oe,ve])=>{oe!=="source"&&(ve.disabled=J)}),J||F.__latAfterEdit()},F.__latInsertImage=async D=>{if(!/^image\//.test(D.type)||b&&D.size>b)return;let J;try{J=_?await _(D):await P(D)}catch{return}J&&F.__latExec("insertHTML",u(s,`<img src="${E(J)}" alt="${E(D.name)}" style="max-width:100%">`,O,{}))},F.__latToolbarClick=D=>{const J=D.target&&D.target.closest?D.target.closest("[data-item]"):null;!J||!xe.contains(J)||J.tagName==="SELECT"||(D.preventDefault(),F.__latRun(J.getAttribute("data-item")))},F.__latToolbarDown=D=>{D.target&&D.target.closest&&D.target.closest(".lat-form__richtext-btn")&&D.preventDefault()},F.__latSelect=D=>{D.target&&D.target.getAttribute&&D.target.getAttribute("data-item")==="heading"&&(F.__latRestore(),F.__latExec("formatBlock",D.target.value))},F.__latInput=()=>{F.__latAfterEdit()},F.__latKey=D=>{if(!(D.ctrlKey||D.metaKey))return;const J=D.key.toLowerCase();J==="z"&&!D.shiftKey?(D.preventDefault(),F.__latUndo()):J==="y"||J==="z"&&D.shiftKey?(D.preventDefault(),F.__latRedo()):J==="k"&&se.buttons.link&&(D.preventDefault(),F.__latRun("link"))},F.__latPaste=D=>{if(!n||!D.clipboardData)return;const J=D.clipboardData.getData("text/html"),ne=D.clipboardData.getData("text/plain");if(!J&&!ne)return;D.preventDefault();const oe=J?u(s,J,O,{stripStyles:!0}):E(ne).replace(/\r?\n/g,"<br>");F.__latExec("insertHTML",oe)},F.__latDrop=D=>{if(!n||!D.dataTransfer)return;const J=D.dataTransfer.files;if(J&&J.length){D.preventDefault();const pe=J[0];pe&&F.__latInsertImage(pe);return}const ne=D.dataTransfer.getData("text/html"),oe=D.dataTransfer.getData("text/plain");if(!ne&&!oe)return;D.preventDefault();const ve=ne?u(s,ne,O,{stripStyles:!0}):E(oe).replace(/\r?\n/g,"<br>");F.__latExec("insertHTML",ve)},F.__latBeforeInput=D=>{n&&(D.inputType==="insertFromDrop"||D.inputType==="insertFromPaste")&&D.preventDefault()},F.__latSelChange=()=>{s.activeElement===R&&(F.__latSave(),F.__latRefresh())},F.__latFile=()=>{const D=q.files&&q.files[0];q.value="",D&&F.__latInsertImage(D)},F.__latSourceInput=()=>{se.sourceDirty=!0},F.__latDocClick=D=>{ue&&!ue.hidden&&!ue.contains(D.target)&&!xe.contains(D.target)&&F.__latClosePopover()},xe.addEventListener("click",F.__latToolbarClick),xe.addEventListener("mousedown",F.__latToolbarDown),xe.addEventListener("change",F.__latSelect),R.addEventListener("input",F.__latInput),R.addEventListener("keydown",F.__latKey),R.addEventListener("paste",F.__latPaste),R.addEventListener("drop",F.__latDrop),R.addEventListener("beforeinput",F.__latBeforeInput),q.addEventListener("change",F.__latFile),be.addEventListener("input",F.__latSourceInput),s.addEventListener&&(s.addEventListener("selectionchange",F.__latSelChange),s.addEventListener("mousedown",F.__latDocClick,!0)),F},read(y){const V=y.__latRt;return V?V.sourceMode?u(y.ownerDocument,V.source.value,V.allowedTags,{}):u(y.ownerDocument,V.editor.innerHTML,V.allowedTags,{}):""},write(y,V){const s=y.__latRt;if(!s)return;const d=y.ownerDocument,i=u(d,V==null?"":String(V),s.allowedTags,{});s.sourceMode&&(s.source.value=i),s.editor.innerHTML=i,s.history={stack:[i],index:0},s.lastValue=i},state(y,V){const s=y.__latRt;s&&(s.disabled=V.disabled===!0,s.readOnly=V.readOnly===!0,s.editor.contentEditable=s.disabled||s.readOnly?"false":"true",s.editor.tabIndex=s.readOnly?0:-1,s.readOnly?s.editor.setAttribute("aria-readonly","true"):s.editor.removeAttribute("aria-readonly"),s.disabled?y.setAttribute("aria-disabled","true"):y.removeAttribute("aria-disabled"),s.readOnly?y.setAttribute("aria-readonly","true"):y.removeAttribute("aria-readonly"),Object.values(s.buttons).forEach(d=>{d.disabled=s.disabled||s.readOnly}))}});function o(y,V,s,d){const i=V&&V.defaultView,m=i&&i.Event,k=m?new m("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(k)}}),Ie("packages/modules/form/controls/rating.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=5,e=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 E(u){const v=String(u??"");return Object.hasOwn(e,v)?v:"star"}function I(u,v,h){return Math.min(Math.max(u,v),h)}function z(u,v){const h=v&&v.defaultView,c=h&&h.Event,l=c?new c("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(l)}function T(u,v,h){const c=u.createElementNS("http://www.w3.org/2000/svg","svg");c.setAttribute("viewBox","0 0 16 16"),c.setAttribute("focusable","false"),c.setAttribute("aria-hidden","true"),h?c.setAttribute("fill","currentColor"):(c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","1.5"),c.setAttribute("stroke-linejoin","round"));const l=u.createElementNS("http://www.w3.org/2000/svg","path");return l.setAttribute("d",e[v]),c.appendChild(l),c}function G(u,v,h){const c=Number(u),l=Number.isFinite(c)?c:0,t=h?Math.round(l*2)/2:Math.round(l);return I(t,0,v)}function C(u,v){return Math.min(1,Math.max(0,u-(v-1)))}H("rating",{kind:"field",build(u,v){const h=v.doc,c=u.props||{},l=Math.max(1,Math.floor(Number(u.max!=null?u.max:c.max)||L)),t=c.allowHalf===!0,p=c.allowClear!==!1,P=c.showValue===!0,o=Array.isArray(c.labels)?c.labels:null,y=E(c.icons&&c.icons.filled?c.icons.filled:c.icon),V=E(c.icons&&c.icons.empty?c.icons.empty:`${y}-outline`),s=c.size==="lg"||c.size==="sm"?c.size:"md",d=h.createElement("div");d.className=`lat-form__rating lat-form__rating--${s}`,d.setAttribute("role","slider"),d.setAttribute("aria-valuemin","0"),d.setAttribute("aria-valuemax",String(l)),d.setAttribute("aria-label",u.label!=null?String(u.label):v.t("form.rating"));const i={value:G(u.value,l,t),max:l,allowHalf:t,allowClear:p,labels:o,showValue:P,filledName:y,emptyName:V,items:[],fills:[],valueEl:null};d.__latRating=i;const m=h.createElement("span");m.className="lat-form__rating-track",m.setAttribute("aria-hidden","true");for(let k=0;k<l;k++){const w=h.createElement("span");w.className="lat-form__rating-item",w.setAttribute("data-index",String(k)),o&&o[k]!=null&&o[k]!==""&&(w.title=String(o[k])),w.appendChild(T(h,V,!1));const f=h.createElement("span");f.className="lat-form__rating-fill",f.setAttribute("aria-hidden","true"),f.appendChild(T(h,y,!0)),w.appendChild(f),m.appendChild(w),i.items.push(w),i.fills.push(f)}if(d.appendChild(m),P){const k=h.createElement("span");k.className="lat-form__rating-value",k.setAttribute("aria-hidden","true"),d.appendChild(k),i.valueEl=k}return d.__latPaint=()=>{for(let k=0;k<i.items.length;k++){const w=C(i.value,k+1);i.items[k].setAttribute("data-fill",w>=1?"full":w>0?"half":"empty"),i.fills[k].style.width=`${(w*100).toFixed(2)}%`}d.setAttribute("aria-valuenow",String(i.value)),d.setAttribute("aria-valuetext",A(i)),i.valueEl&&(i.valueEl.textContent=r(i))},d.__latSet=k=>{i.value=G(k,l,t),d.__latPaint()},d.__latClear=()=>{i.value=0,d.__latPaint()},d.__latPick=(k,w)=>{let f=k+1;if(t&&w&&Number.isFinite(w.clientX)){const $=i.items[k].getBoundingClientRect();$&&$.width>0&&(f=w.clientX-$.left<$.width/2?k+.5:k+1)}p&&f===i.value&&(f=0),d.__latSet(f),z(d,v.doc)},d.addEventListener("click",k=>{if(i.disabled||i.readOnly)return;const w=k.target&&k.target.closest?k.target.closest(".lat-form__rating-item"):null;!w||!d.contains(w)||d.__latPick(Number(w.getAttribute("data-index")),k)}),d.__latKey=k=>{if(i.disabled||i.readOnly)return;const w=t?.5:1;let f=i.value;if(k.key==="ArrowRight"||k.key==="ArrowUp")f+=w;else if(k.key==="ArrowLeft"||k.key==="ArrowDown")f-=w;else if(k.key==="Home")f=0;else if(k.key==="End")f=l;else if(k.key==="Backspace"||k.key==="Delete")f=0;else return;k.preventDefault(),d.__latSet(f),z(d,v.doc)},d.addEventListener("keydown",d.__latKey),d.__latPaint(),d},read(u){return u.__latRating?u.__latRating.value:0},write(u,v){u.__latRating&&(u.__latRating.value=G(v,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,v){const h=u.__latRating;h&&(h.disabled=v.disabled===!0,h.readOnly=v.readOnly===!0,u.tabIndex=h.disabled?-1:0,h.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),h.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function A(u){const v=Math.round(u.value);return u.labels&&u.labels[v-1]&&u.value===v?u.labels[v-1]:`${u.value} of ${u.max}`}function r(u){return String(u.value)}}),Ie("packages/modules/form/controls/stage.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl;function L(I,z){const T=z&&z.defaultView,G=T&&T.Event,C=G?new G("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};I.dispatchEvent(C)}function e(I,z){return typeof z=="number"&&Number.isFinite(z)?Math.min(Math.max(Math.round(z),0),I.length-1):typeof z=="string"?I.indexOf(z):-1}function E(I,z,T){return`${I}, ${z+1} of ${T}`}H("stage",{kind:"field",build(I,z){const T=z.doc,G=I.props||{},C=Array.isArray(G.stages)?G.stages.map(t=>String(t)):[],A=G.clickable!==!1,r=G.showIcons!==!1,u=e(C,I.value!=null?I.value:G.current),v=e(C,G.completed),h=T.createElement("div");h.className="lat-form__stage",h.setAttribute("role","radiogroup"),h.setAttribute("aria-label",I.label!=null?String(I.label):z.t("form.stage"));const c=[],l={stages:C,value:u>=0?C[u]:null,index:u,completed:v,clickable:A,showIcons:r,disabled:!1,readOnly:!1,focus:u>=0?u:0};h.__latStage=l;for(let t=0;t<C.length;t++){const p=T.createElement(A?"button":"span");if(p.type=A?"button":void 0,p.className="lat-form__stage-step",p.setAttribute("data-index",String(t)),A&&(p.setAttribute("role","radio"),p.setAttribute("aria-label",E(C[t],t,C.length))),r){const o=T.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 16 16"),o.setAttribute("aria-hidden","true"),o.setAttribute("class","lat-form__stage-check");const y=T.createElementNS("http://www.w3.org/2000/svg","path");y.setAttribute("d","M3 8.5l3 3 7-7"),y.setAttribute("fill","none"),y.setAttribute("stroke","currentColor"),y.setAttribute("stroke-width","2"),y.setAttribute("stroke-linecap","round"),y.setAttribute("stroke-linejoin","round"),o.appendChild(y),p.appendChild(o)}const P=T.createElement("span");P.className="lat-form__stage-label",P.textContent=C[t],p.appendChild(P),h.appendChild(p),c.push(p)}return h.__latPaint=()=>{for(let t=0;t<c.length;t++){const p=t===l.index,P=!p&&l.completed>=0&&t<=l.completed;c[t].setAttribute("data-state",p?"current":P?"done":"todo"),l.clickable&&(c[t].setAttribute("aria-checked",p?"true":"false"),c[t].tabIndex=l.disabled?-1:t===l.focus?0:-1)}},h.__latSelect=t=>{const p=t>=0&&t<C.length?C[t]:null;p!==l.value&&(l.index=t>=0&&t<C.length?t:-1,l.value=p,l.focus=l.index>=0?l.index:0,h.__latPaint(),L(h,z.doc))},h.__latKey=t=>{if(l.disabled||l.readOnly||!l.clickable||!C.length)return;let p=l.focus;if(t.key==="ArrowRight"||t.key==="ArrowDown")p+=1;else if(t.key==="ArrowLeft"||t.key==="ArrowUp")p-=1;else if(t.key==="Home")p=0;else if(t.key==="End")p=C.length-1;else return;t.preventDefault();const P=Math.min(Math.max(p,0),C.length-1);l.focus=P,c[P].focus(),h.__latSelect(P)},A&&(h.addEventListener("click",t=>{if(l.disabled||l.readOnly)return;const p=t.target&&t.target.closest?t.target.closest(".lat-form__stage-step"):null;if(!p||!h.contains(p))return;const P=Number(p.getAttribute("data-index"));l.focus=P,h.__latSelect(P)}),h.addEventListener("keydown",h.__latKey)),h.__latPaint(),h},read(I){return I.__latStage?I.__latStage.value:null},write(I,z){const T=I.__latStage;if(!T)return;const G=z==null?-1:e(T.stages,z);T.index=G,T.value=G>=0?T.stages[G]:null,T.focus=G>=0?G:0,I.__latPaint()},state(I,z){const T=I.__latStage;T&&(T.disabled=z.disabled===!0,T.readOnly=z.readOnly===!0,T.readOnly?I.setAttribute("aria-readonly","true"):I.removeAttribute("aria-readonly"),T.disabled?I.setAttribute("aria-disabled","true"):I.removeAttribute("aria-disabled"),I.__latPaint())}})}),Ie("packages/modules/form/controls/chips.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L="M3 8.5l3 3 7-7";function e(z,T){const G=T&&T.defaultView,C=G&&G.Event,A=C?new C("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};z.dispatchEvent(A)}function E(z){if(typeof z=="string")return{value:z,label:z,icon:null,disabled:!1};if(z!==null&&typeof z=="object"){const T=z.value===void 0?String(z.label):z.value;return{value:T,label:z.label==null?String(T):String(z.label),icon:typeof z.icon=="string"&&z.icon!==""?z.icon:null,disabled:z.disabled===!0}}return{value:z,label:String(z),icon:null,disabled:!1}}function I(z,T,G){const C=z.createElementNS("http://www.w3.org/2000/svg","svg");C.setAttribute("viewBox","0 0 16 16"),C.setAttribute("focusable","false"),C.setAttribute("aria-hidden","true");const A=z.createElementNS("http://www.w3.org/2000/svg","path");return A.setAttribute("d",T),G?A.setAttribute("fill","currentColor"):(A.setAttribute("fill","none"),A.setAttribute("stroke","currentColor"),A.setAttribute("stroke-width","2"),A.setAttribute("stroke-linecap","round"),A.setAttribute("stroke-linejoin","round")),C.appendChild(A),C}H("chips",{kind:"field",build(z,T){const G=T.doc,C=z.props||{},A=(Array.isArray(z.options)?z.options:[]).map(E),r=C.multiple===!0,u=C.allowEmpty===!0,v=C.wrap!==!1,h=z.max!=null&&Number.isFinite(Number(z.max))?Number(z.max):null,c=G.createElement("div");c.className=`lat-form__chips${v?"":" lat-form__chips--scroll"}`,c.setAttribute("role",r?"group":"radiogroup"),c.setAttribute("aria-label",z.label!=null?String(z.label):T.t("form.chips"));const l=[],t=new Set,p={options:A,multiple:r,allowEmpty:u,wrap:v,max:h,selected:t,disabled:!1,readOnly:!1,t:T.t};c.__latChips=p;for(let o=0;o<A.length;o++){const y=A[o],V=G.createElement("button");if(V.type="button",V.className="lat-form__chip",V.setAttribute("data-index",String(o)),V.disabled=y.disabled,r||V.setAttribute("role","radio"),y.icon){const d=I(G,y.icon,!0);d.setAttribute("class","lat-form__chip-icon"),V.appendChild(d)}const s=G.createElement("span");if(s.className="lat-form__chip-label",s.textContent=y.label,V.appendChild(s),r){const d=I(G,L,!1);d.setAttribute("class","lat-form__chip-check"),V.appendChild(d)}c.appendChild(V),l.push(V)}p.buttons=l,c.__latPaint=()=>{for(let o=0;o<l.length;o++){const y=A[o],V=t.has(y.value),s=l[o];s.disabled=y.disabled||p.disabled,r?(s.setAttribute("aria-pressed",V?"true":"false"),s.tabIndex=p.disabled?-1:0):(s.setAttribute("aria-checked",V?"true":"false"),s.tabIndex=p.disabled?-1:V?0:-1)}},c.__latValue=()=>{if(r)return A.filter(o=>t.has(o.value)).map(o=>o.value);for(const o of A)if(t.has(o.value))return o.value;return null},c.__latToggle=o=>{const y=A[o];if(!(!y||y.disabled||p.disabled||p.readOnly)){if(r)if(t.has(y.value))t.delete(y.value);else{if(h!=null&&t.size>=h)return;t.add(y.value)}else if(t.has(y.value))if(p.allowEmpty)t.clear();else return;else t.clear(),t.add(y.value);c.__latPaint(),e(c,T.doc)}},c.addEventListener("click",o=>{const y=o.target&&o.target.closest?o.target.closest(".lat-form__chip"):null;!y||!c.contains(y)||c.__latToggle(Number(y.getAttribute("data-index")))}),c.__latKey=o=>{if(p.multiple||p.disabled||p.readOnly||!l.length)return;let y=-1;for(let i=0;i<l.length;i++)if(t.has(A[i].value)){y=i;break}let V=y;if(o.key==="ArrowRight"||o.key==="ArrowDown")V=y+1;else if(o.key==="ArrowLeft"||o.key==="ArrowUp")V=y-1;else if(o.key==="Home")V=0;else if(o.key==="End")V=A.length-1;else return;o.preventDefault();const s=o.key==="ArrowLeft"||o.key==="ArrowUp"?-1:1;let d=V;for(;d>=0&&d<A.length&&A[d].disabled;)d+=s;d<0||d>=A.length||(t.clear(),t.add(A[d].value),c.__latPaint(),l[d].focus(),e(c,T.doc))},c.addEventListener("keydown",c.__latKey);const P=z.value;if(r){const o=Array.isArray(P)?P:[];for(const y of o)A.some(V=>V.value===y)&&t.add(y)}else if(P!=null&&A.some(o=>o.value===P))t.add(P);else if(!u){const o=A.find(y=>!y.disabled)||A[0];o&&t.add(o.value)}return c.__latPaint(),c},read(z){return z.__latChips?z.__latValue():null},write(z,T){const G=z.__latChips;if(G){if(G.selected.clear(),G.multiple){const C=Array.isArray(T)?T:[];for(const A of C)G.options.some(r=>r.value===A)&&G.selected.add(A)}else if(T!=null&&G.options.some(C=>C.value===T))G.selected.add(T);else if(!G.allowEmpty){const C=G.options.find(A=>!A.disabled)||G.options[0];C&&G.selected.add(C.value)}z.__latPaint()}},validate(z,T,G){const C=z.__latChips;if(!C||!C.multiple)return null;const A=Array.isArray(G)?G.length:0,r=T.min!=null&&Number.isFinite(Number(T.min))?Number(T.min):null,u=T.max!=null&&Number.isFinite(Number(T.max))?Number(T.max):null;return r!=null&&A<r?{code:"min",message:C.t("form.chips.min",{min:String(r)})}:u!=null&&A>u?{code:"max",message:C.t("form.chips.max",{max:String(u)})}:null},state(z,T){const G=z.__latChips;G&&(G.disabled=T.disabled===!0,G.readOnly=T.readOnly===!0,G.readOnly?z.setAttribute("aria-readonly","true"):z.removeAttribute("aria-readonly"),G.disabled?z.setAttribute("aria-disabled","true"):z.removeAttribute("aria-disabled"),z.__latPaint())}})}),Ie("packages/modules/form/controls/otp.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=6;function e(u){const v=Math.floor(Number(u));return Number.isFinite(v)&&v>=1?v:L}function E(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function I(u,v){return v==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function z(u,v){for(let h=u.length-1;h>=0;h-=1)if(I(u[h],v))return u[h];return""}function T(u,v,h){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(l=>I(l,v)).slice(0,h)}function G(u,v,h){const c=v&&v.defaultView,l=c&&c.Event,t=l?new l(h,{bubbles:!0}):{type:h,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(t)}function C(u,v){const h=T(v,u.mode,u.length);for(let c=0;c<u.length;c+=1)u.boxes[c].value=h[c]||""}function A(u){u.complete=u.boxes.every(v=>v.value!=="")}function r(u){return u.boxes.map(v=>v.value).join("")}H("otp",{kind:"field",domEvents:["complete"],build(u,v){const h=v.doc,c=u.props||{},l=e(c.length),t=E(u.mode!=null?u.mode:c.mode),p=c.mask===!0,P=h.createElement("div");P.className="lat-form__otp",P.setAttribute("role","group"),P.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):v.t("form.otp.label"));const o=[],y={length:l,mode:t,mask:p,boxes:o,complete:!1,disabled:!1,readOnly:!1};P.__latOtp=y;for(let s=0;s<l;s+=1){const d=h.createElement("input");d.type="text",d.className=`lat-form__otp-input${p?" lat-form__otp-input--masked":""}`,d.setAttribute("inputmode",t==="numeric"?"numeric":"text"),d.setAttribute("pattern",t==="numeric"?"[0-9]":"[A-Za-z0-9]"),d.setAttribute("maxlength","1"),d.setAttribute("aria-label",v.t("form.otp.digit",{n:s+1,total:l})),d.autocomplete=s===0?"one-time-code":"off",o.push(d),P.appendChild(d)}const V=()=>{if(P.__latPublishing)return;P.__latPublishing=!0;try{G(P,h,"input"),G(P,h,"change")}finally{P.__latPublishing=!1}const s=o.every(d=>d.value!=="");s&&!y.complete?(y.complete=!0,G(P,h,"complete")):!s&&y.complete&&(y.complete=!1)};return P.addEventListener("input",s=>{if(P.__latPublishing)return;s.stopImmediatePropagation();const d=s.target;if(!o.includes(d))return;d.value=z(d.value,t);const i=o.indexOf(d);d.value!==""&&i<l-1&&o[i+1].focus(),V()}),P.addEventListener("change",s=>{P.__latPublishing||s.stopImmediatePropagation()}),P.addEventListener("keydown",s=>{if(y.disabled||y.readOnly)return;const d=s.target;if(!o.includes(d))return;const i=o.indexOf(d);s.key==="Backspace"?(s.preventDefault(),d.value!==""?d.value="":i>0&&(o[i-1].value="",o[i-1].focus()),V()):s.key==="ArrowLeft"&&i>0?(s.preventDefault(),o[i-1].focus()):s.key==="ArrowRight"&&i<l-1?(s.preventDefault(),o[i+1].focus()):s.key.length===1&&!I(s.key,t)&&!s.ctrlKey&&!s.metaKey&&!s.altKey&&s.preventDefault()}),P.addEventListener("paste",s=>{if(y.disabled||y.readOnly)return;s.preventDefault();const d=s.clipboardData&&typeof s.clipboardData.getData=="function"?s.clipboardData.getData("text"):"";C(y,d),(o.find(m=>m.value==="")||o[l-1]).focus(),V()}),P.focus=()=>{const s=o.find(d=>!d.disabled&&!d.readOnly&&d.value==="")||o[0];s&&s.focus()},P.blur=()=>{for(const s of o)s.blur()},C(y,u.value),A(y),P},read(u){return u.__latOtp?r(u.__latOtp):""},write(u,v){u.__latOtp&&(C(u.__latOtp,v),A(u.__latOtp))},state(u,v){const h=u.__latOtp;if(h){h.disabled=v.disabled===!0,h.readOnly=v.readOnly===!0;for(const c of h.boxes)c.disabled=h.disabled,c.readOnly=h.readOnly;h.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),h.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),Ie("packages/modules/form/controls/color.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/swatches.js"),z=I.DEFAULT_PALETTE,T=I.DEFAULT_GRAY_SHADES,G=I.buildSwatchGrid,C=I.hslToHex,A=10,r=/^#?([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 v(R){return R}const h=new Set;function c(R,be){h.has(R)||(h.add(R),console.warn("[lattice]",be))}function l(R){if(typeof R!="string")return null;const be=R.trim();if(!r.test(be))return null;const q=be.replace(/^#/,"").toLowerCase();return`#${q.length===3?q.split("").map(J=>J+J).join(""):q}`}function t(R){if(typeof R!="string")return null;const be=l(R);if(be)return be;const q=u.exec(R.trim());if(!q)return null;const D=ne=>Math.max(0,Math.min(255,Number(ne))),J=ne=>D(ne).toString(16).padStart(2,"0");return`#${J(q[1])}${J(q[2])}${J(q[3])}`}function p(R){const be=l(R);return be?{r:parseInt(be.slice(1,3),16),g:parseInt(be.slice(3,5),16),b:parseInt(be.slice(5,7),16)}:null}function P(R,be,q){const D=J=>Math.max(0,Math.min(255,Math.round(J))).toString(16).padStart(2,"0");return`#${D(R)}${D(be)}${D(q)}`}function o(R,be,q){const D=R/255,J=be/255,ne=q/255,oe=Math.max(D,J,ne),ve=Math.min(D,J,ne),pe=(oe+ve)/2,x=oe-ve;if(x===0)return{h:0,s:0,l:pe};const W=pe>.5?x/(2-oe-ve):x/(oe+ve);let U;return oe===D?U=(J-ne)/x%6:oe===J?U=(ne-D)/x+2:U=(D-J)/x+4,U*=60,U<0&&(U+=360),{h:U,s:W,l:pe}}function y(R){return C(R.h,R.s,R.l)}function V(R,be,q){const D=R.ownerDocument,J=D&&D.defaultView,ne=J&&typeof J.CustomEvent=="function"?J.CustomEvent:null,oe=ne?new ne(be,{bubbles:!0,detail:q}):{type:be,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:q,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};R.dispatchEvent(oe)}function s(R){const be=R.props&&R.props.palette;return Array.isArray(be)&&be.length?be:z}function d(R){return!(R.props&&R.props.editable===!1)}function i(R){return!!(R.props&&R.props.clearable===!0)}function m(R){return!!(R.props&&R.props.pickerOnly===!0)}function k(R){return!(R.props&&R.props.grayShades===!1)}function w(R){const be=R.props&&R.props.icon;return typeof be=="string"&&be!==""?be:null}function f(R){const be=R.props&&R.props.customColors;return Array.isArray(be)?[...new Set(be.map(t).filter(Boolean))].slice(0,A):[]}function $(R){const be=l(R.__input.value);R.__swatchBtn.style.background=be||"transparent",R.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!be),R.__clearBtn&&(R.__clearBtn.hidden=R.__input.value.trim()==="")}function b(R,be){R.__value=be||null,R.__input.value=be||"",R.__lastCommittedText=be||"",$(R)}function _(R){if(d(R.__item)===!1)return;const be=R.__input.value.trim();if(be===R.__lastCommittedText)return;const q=l(be);(q||be==="")&&(R.__value=q,R.__lastCommittedText=be),V(R,"change")}function n(R,be){b(R,be),V(R,"change")}function O(R,be){const q=R.__customColors,D=q.filter(ne=>ne!==be),J=[be,...D].slice(0,A);J.length===q.length&&J.every((ne,oe)=>ne===q[oe])||(R.__customColors=J,V(R,"customColorsChange",{colors:J}))}function ie(R){const be=R.__popover,q=R.ownerDocument,D=q&&q.defaultView,J=R.__field.getBoundingClientRect(),ne=D?D.innerHeight:0,oe=be.offsetHeight||0;ne-J.bottom<oe+4&&J.top>oe+4?be.classList.add("lat-form__color-popover--above"):be.classList.remove("lat-form__color-popover--above")}function F(R,be,q,D){let J=Math.max(0,Math.min(R.length-1,be.row+q)),ne=be.col+D;if(D!==0){const oe=R[J].length;ne=Math.max(0,Math.min(oe-1,ne))}else ne=Math.max(0,Math.min(R[J].length-1,ne));return{row:J,col:ne}}function se(R){const be=R.__item,q=R.ownerDocument,D=R.__popover;for(;D.firstChild;)D.removeChild(D.firstChild);const J=[...s(be)];k(be)&&J.push([...T]),R.__customColors.length&&J.push([...R.__customColors]);const ne=R.__value,{el:oe,rows:ve}=G(q,J,{isSelected:x=>x===ne,onPick:x=>{n(R,x),ue(R,{restoreFocus:!0})}});oe.classList.add("lat-form__color-grid"),D.appendChild(oe);for(const x of ve)for(const W of x){if(W.getAttribute("aria-selected")!=="true")continue;const U=q.createElementNS("http://www.w3.org/2000/svg","svg");U.setAttribute("viewBox","0 0 16 16"),U.setAttribute("class","lat-form__color-check"),U.setAttribute("aria-hidden","true");const j=q.createElementNS("http://www.w3.org/2000/svg","path");j.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),j.setAttribute("fill","none"),j.setAttribute("stroke","#fff"),j.setAttribute("stroke-width","2.6"),j.setAttribute("stroke-linecap","round"),j.setAttribute("stroke-linejoin","round"),j.setAttribute("paint-order","stroke"),U.appendChild(j);const Z=q.createElementNS("http://www.w3.org/2000/svg","path");Z.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),Z.setAttribute("fill","none"),Z.setAttribute("stroke","#000"),Z.setAttribute("stroke-width","4.2"),Z.setAttribute("stroke-linecap","round"),Z.setAttribute("stroke-linejoin","round"),Z.setAttribute("opacity","0.35"),U.insertBefore(Z,j),W.appendChild(U)}let pe={row:0,col:0};e:for(let x=0;x<ve.length;x++)for(let W=0;W<ve[x].length;W++)if(ve[x][W].getAttribute("aria-selected")==="true"){pe={row:x,col:W};break e}for(const x of ve)for(const W of x)W.tabIndex=-1;if(ve[pe.row]&&ve[pe.row][pe.col]&&(ve[pe.row][pe.col].tabIndex=0),oe.addEventListener("keydown",x=>{if(x.key==="Enter"||x.key===" "){x.preventDefault(),x.stopPropagation(),ve[pe.row][pe.col].click();return}const U={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[x.key];if(!U)return;x.preventDefault();for(const Z of ve)for(const ae of Z)ae.tabIndex=-1;pe=F(ve,pe,U[0],U[1]);const j=ve[pe.row][pe.col];j.tabIndex=0,j.focus()}),!m(be)){const x=q.createElement("button");x.type="button",x.className="lat-form__color-custombtn",x.textContent=R.__t("form.color.customColor"),x.addEventListener("click",()=>{le(R,ne)}),D.appendChild(x)}ie(R)}function le(R,be){const q=R.__item,D=R.ownerDocument,J=R.__popover;for(;J.firstChild;)J.removeChild(J.firstChild);const ne=p(be)||{r:0,g:0,b:0},oe=o(ne.r,ne.g,ne.b),ve=D.createElement("div");ve.className="lat-form__color-picker",J.appendChild(ve);const pe=D.createElement("div");pe.className="lat-form__color-plane",pe.setAttribute("role","slider"),pe.setAttribute("aria-label",R.__t("form.color.saturationLightness")),pe.tabIndex=0;const x=D.createElement("div");x.className="lat-form__color-plane-thumb",pe.appendChild(x),ve.appendChild(pe);const W=D.createElement("div");W.className="lat-form__color-hue",W.setAttribute("role","slider"),W.setAttribute("aria-label",R.__t("form.color.hue")),W.tabIndex=0;const U=D.createElement("div");U.className="lat-form__color-hue-thumb",W.appendChild(U),ve.appendChild(W);const j=D.createElement("div");j.className="lat-form__color-fields";const Z=D.createElement("input");Z.type="text",Z.className="lat-form__color-hexfield",Z.setAttribute("aria-label",R.__t("form.color.hexLabel"));const ae=D.createElement("input");ae.type="number",ae.min="0",ae.max="255",ae.className="lat-form__color-rgbfield",ae.setAttribute("aria-label",R.__t("form.color.redLabel"));const re=D.createElement("input");re.type="number",re.min="0",re.max="255",re.className="lat-form__color-rgbfield",re.setAttribute("aria-label",R.__t("form.color.greenLabel"));const B=D.createElement("input");B.type="number",B.min="0",B.max="255",B.className="lat-form__color-rgbfield",B.setAttribute("aria-label",R.__t("form.color.blueLabel")),j.appendChild(Z),j.appendChild(ae),j.appendChild(re),j.appendChild(B),ve.appendChild(j);const ee=D.createElement("div");ee.className="lat-form__color-previewrow";const X=D.createElement("span");X.className="lat-form__color-preview",ee.appendChild(X),ve.appendChild(ee);const ge=D.createElement("div");if(ge.className="lat-form__color-actions",!m(q)){const a=D.createElement("button");a.type="button",a.className="lat-form__color-back",a.textContent=R.__t("form.back"),a.addEventListener("click",()=>{se(R)}),ge.appendChild(a)}const $e=D.createElement("button");$e.type="button",$e.className="lat-form__color-select",$e.textContent=R.__t("form.color.select"),ge.appendChild($e),ve.appendChild(ge);const K=()=>{const a=y(oe),Y=p(a);pe.style.setProperty("--lat-color-hue",String(oe.h)),x.style.left=`${oe.s*100}%`,x.style.top=`${(1-oe.l)*100}%`,U.style.left=`${oe.h/360*100}%`,Z.value=a,ae.value=String(Y.r),re.value=String(Y.g),B.value=String(Y.b),X.style.background=a,pe.setAttribute("aria-valuetext",a),W.setAttribute("aria-valuenow",String(Math.round(oe.h)))};K();const he=(a,Y,fe)=>{const me=a.getBoundingClientRect();if(!me.width||!me.height)return;const Ae=Math.max(0,Math.min(1,(Y.clientX-me.left)/me.width)),de=Math.max(0,Math.min(1,(Y.clientY-me.top)/me.height));fe(Ae,de)},Ee=(a,Y)=>{let fe=!1;a.addEventListener("pointerdown",me=>{fe=!0,he(a,me,Y)}),D.addEventListener("pointermove",me=>{fe&&he(a,me,Y)}),D.addEventListener("pointerup",()=>{fe=!1})};Ee(pe,(a,Y)=>{oe.s=a,oe.l=1-Y,K()}),Ee(W,a=>{oe.h=a*360,K()}),pe.addEventListener("keydown",a=>{if(a.key==="Enter"){a.preventDefault(),a.stopPropagation(),Q();return}const Y=a.shiftKey?.1:.02;if(a.key==="ArrowLeft")oe.s=Math.max(0,oe.s-Y);else if(a.key==="ArrowRight")oe.s=Math.min(1,oe.s+Y);else if(a.key==="ArrowUp")oe.l=Math.min(1,oe.l+Y);else if(a.key==="ArrowDown")oe.l=Math.max(0,oe.l-Y);else return;a.preventDefault(),K()}),W.addEventListener("keydown",a=>{if(a.key==="Enter"){a.preventDefault(),a.stopPropagation(),Q();return}const Y=a.shiftKey?10:2;if(a.key==="ArrowLeft"||a.key==="ArrowDown")oe.h=(oe.h-Y+360)%360;else if(a.key==="ArrowRight"||a.key==="ArrowUp")oe.h=(oe.h+Y)%360;else return;a.preventDefault(),K()});const N=()=>{const a=l(Z.value);if(!a){Z.value=y(oe);return}const Y=p(a);Object.assign(oe,o(Y.r,Y.g,Y.b)),K()};Z.addEventListener("change",N);const g=()=>{const a=Y=>Math.max(0,Math.min(255,Number(Y)||0));Object.assign(oe,o(a(ae.value),a(re.value),a(B.value))),K()};ae.addEventListener("change",g),re.addEventListener("change",g),B.addEventListener("change",g);const Q=()=>{const a=y(oe);n(R,a),O(R,a),ue(R,{restoreFocus:!0})};$e.addEventListener("click",Q);const M=a=>Y=>{Y.key==="Enter"&&(Y.preventDefault(),Y.stopPropagation(),a(),Q())};Z.addEventListener("keydown",M(N)),ae.addEventListener("keydown",M(g)),re.addEventListener("keydown",M(g)),B.addEventListener("keydown",M(g)),ie(R)}function xe(R){R.__open||R.__item.disabled===!0||R.__item.readOnly===!0||(R.__open=!0,R.__popover.hidden=!1,m(R.__item)||R.__item.mode==="picker"?le(R,R.__value):se(R))}function ue(R,be={}){if(R.__open){for(R.__open=!1,R.__popover.hidden=!0,R.__popover.classList.remove("lat-form__color-popover--above");R.__popover.firstChild;)R.__popover.removeChild(R.__popover.firstChild);be.restoreFocus&&R.__input.focus()}}H("color",{kind:"field",domEvents:["customColorsChange"],build(R,be){const q=be.doc;E(q);const D=q.createElement("div");D.className="lat-form__color",D.__item=R,D.__t=be.t||v,D.__open=!1,D.__value=t(R.value),D.__customColors=f(R);const J=q.createElement("div");J.className="lat-form__color-field",D.__field=J;const ne=q.createElement("button");ne.type="button",ne.className="lat-form__color-swatch",ne.setAttribute("aria-label",D.__t("form.color.open")),D.__swatchBtn=ne;const oe=q.createElement("input");oe.type="text",oe.className="lat-form__color-input",R.name&&(oe.name=R.name),R.placeholder!=null&&(oe.placeholder=String(R.placeholder)),R.label!=null&&R.label!==""&&oe.setAttribute("aria-label",String(R.label)),oe.setAttribute("autocomplete","off"),oe.readOnly=!d(R),D.__input=oe,J.appendChild(ne),J.appendChild(oe);let ve=null;if(i(R)){ve=q.createElement("button"),ve.type="button",ve.className="lat-form__color-clear",ve.setAttribute("aria-label",D.__t("form.color.clear"));const re=e(q,"close");re&&ve.appendChild(re),ve.addEventListener("click",()=>{n(D,null),oe.focus()}),J.appendChild(ve)}D.__clearBtn=ve;const pe=q.createElement("button");pe.type="button",pe.className="lat-form__color-toggle",pe.setAttribute("aria-label",D.__t("form.color.open"));const x=w(R),W=x?e(q,x):e(q,"chevronDown");W&&pe.appendChild(W),D.__toggleBtn=pe,J.appendChild(pe),D.appendChild(J);const U=q.createElement("div");U.className="lat-form__color-popover",U.hidden=!0,D.__popover=U,D.appendChild(U),b(D,D.__value);const j=()=>{D.__open?ue(D):xe(D)};ne.addEventListener("click",j),pe.addEventListener("click",j),oe.addEventListener("input",()=>{$(D)}),oe.addEventListener("change",re=>{re.stopPropagation(),_(D)}),oe.addEventListener("keydown",re=>{re.key==="Enter"?(re.preventDefault(),_(D)):re.key==="Escape"&&D.__open?ue(D):re.altKey&&re.key==="ArrowDown"&&(re.preventDefault(),xe(D))}),D.addEventListener("keydown",re=>{re.target!==oe&&(re.key==="Enter"&&!D.__open||re.altKey&&re.key==="ArrowDown"?(re.preventDefault(),xe(D)):re.key==="Escape"&&D.__open&&(re.preventDefault(),ue(D,{restoreFocus:!0})))});const Z=re=>{!D.__open||D.contains(re.target)||ue(D)},ae=re=>{D.__open&&(re.relatedTarget&&D.contains(re.relatedTarget)||ue(D))};return q.addEventListener("pointerdown",Z),D.addEventListener("focusout",ae),Array.isArray(be.disposers)&&be.disposers.push(()=>{q.removeEventListener("pointerdown",Z),D.removeEventListener("focusout",ae)}),D},read(R){const be=R.__input.value.trim();return be===""?null:l(be)||be},write(R,be){if(be==null||be===""){R.__value=null,b(R,null);return}const q=t(be);if(!q){c("form.color.setValue",`form.color: "${String(be)}" is not a colour (expected hex or a red-green-blue triplet); the value is unchanged.`);return}R.__value=q,b(R,q)},state(R,be){const q=be.disabled===!0||be.readOnly===!0;R.__input.disabled=be.disabled===!0,R.__input.readOnly=be.readOnly===!0||!d(be),R.__swatchBtn.disabled=q,R.__toggleBtn.disabled=q,R.__clearBtn&&(R.__clearBtn.disabled=q),q&&ue(R)},validate(R,be,q){return q==null||typeof q=="string"&&/^#[0-9a-f]{6}$/.test(q)?!0:typeof be.errorMessage=="string"&&be.errorMessage!==""?be.errorMessage:R.__t("form.color.invalidHex")},focus(R){R.__input.focus()}})}),Ie("packages/dom/src/cell/renderers/barcode/support.js",function(S,te){"use strict";Object.defineProperty(S,"expandWidths",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"joinCharacters",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"buildPattern",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"mod10Weighted",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"MOD43_ORDER",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"mod43Check",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"weightedModulo",{enumerable:!0,get:function(){return z}});function we(T){const G=[];for(let C=0;C<T.length;C++){const A=C%2===0?1:0;for(let r=0;r<T[C];r++)G.push(A)}return G}function H(T,G){const C=[];return T.forEach((A,r)=>{if(r>0&&G>0)for(let u=0;u<G;u++)C.push(0);C.push(...A)}),C}function L(T,G){return H(T.map(we),G)}function e(T,G=3){let C=0,A=G;for(let r=T.length-1;r>=0;r--)C+=Number(T[r])*A,A=A===3?1:3;return(10-C%10)%10}const E="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function I(T){let G=0;for(const C of T){const A=E.indexOf(C);if(A<0)return null;G+=A}return E[G%43]}function z(T,G,C=11){let A=0,r=1;for(let u=T.length-1;u>=0;u--)A+=T[u]*r,r=r===G?1:r+1;return A%C}}),Ie("packages/dom/src/cell/renderers/barcode/code39.js",function(S,te){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return h}});const we=te("packages/dom/src/cell/renderers/barcode/support.js"),H=we.buildPattern,L=we.mod43Check,e=we.MOD43_ORDER,E=2,I=["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"],z="010010100";function T(c){return c.split("").map(l=>l==="1"?E:1)}function G(c){const l=e.indexOf(c);return l<0?null:T(I[l])}function C(){const c=new Map,l=t=>String.fromCharCode(65+t);for(let t=1;t<=26;t++)c.set(t,`$${l(t-1)}`);c.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((t,p)=>c.set(27+p,t));for(let t=33;t<=44;t++)c.set(t,`/${l(t-33)}`);c.set(47,"/O"),c.set(58,"/Z");for(let t=59;t<=63;t++)c.set(t,`%${l(t-59+5)}`);c.set(64,"%V");for(let t=91;t<=95;t++)c.set(t,`%${l(t-91+10)}`);c.set(96,"%W");for(let t=97;t<=122;t++)c.set(t,`+${l(t-97)}`);for(let t=123;t<=127;t++)c.set(t,`%${l(t-123+15)}`);return c}const A=C(),r=new Map([...A].map(([c,l])=>[l,c]));function u(c){const l=[];for(const t of c){const p=t.codePointAt(0);if(p>127)return null;if(e.includes(t)){l.push(t);continue}const P=A.get(p);if(!P)return null;l.push(P[0],P[1])}return l}function v(c){let l="";for(let t=0;t<c.length;t++){const p=c[t]+(c[t+1]??"");if(r.has(p)){l+=String.fromCharCode(r.get(p)),t++;continue}l+=c[t]}return l}function h(c,l={}){const t=c==null?"":String(c);if(t==="")return{ok:!1,reason:"empty"};const p=l.extended?u(t):t.split("");if(!p)return{ok:!1,reason:"charset"};const P=[T(z)];for(const o of p){const y=G(o);if(!y)return{ok:!1,reason:"charset"};P.push(y)}if(l.checkDigit){const o=L(p.join(""));return o==null?{ok:!1,reason:"charset"}:(P.push(G(o)),P.push(T(z)),{ok:!0,modules:H(P,1),text:`${t}${o}`})}return P.push(T(z)),{ok:!0,modules:H(P,1),text:t}}}),Ie("packages/dom/src/cell/renderers/barcode/ean.js",function(S,te){"use strict";Object.defineProperty(S,"L_PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"G_PATTERNS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"R_PATTERNS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"EAN13_PARITY",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return C}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,L=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],e=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],E=L.map(A=>A.split("").map(r=>r==="1"?"0":"1").join("")),I=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function z(A){return A.split("").map(Number)}function T(A,r){const u=A==null?"":String(A);if(!/^\d+$/.test(u))return null;if(u.length===r)return{digits:u,check:H(u)};if(u.length===r+1){const v=u.slice(0,r),h=Number(u[r]),c=H(v);return h!==c?null:{digits:v,check:c}}return null}function G(A){const r=T(A,12);if(!r)return{ok:!1,reason:"checkDigit"};const u=r.digits+r.check,v=I[Number(u[0])],h=u.slice(1,7).split("").map((t,p)=>(v[p]==="L"?L:e)[Number(t)]),c=u.slice(7).split("").map(t=>E[Number(t)]);return{ok:!0,modules:[...z("101"),...h.flatMap(z),...z("01010"),...c.flatMap(z),...z("101")],text:u}}function C(A){const r=T(A,7);if(!r)return{ok:!1,reason:"checkDigit"};const u=r.digits+r.check,v=u.slice(0,4).split("").map(l=>L[Number(l)]),h=u.slice(4).split("").map(l=>E[Number(l)]);return{ok:!0,modules:[...z("101"),...v.flatMap(z),...z("01010"),...h.flatMap(z),...z("101")],text:u}}}),Ie("packages/dom/src/cell/renderers/barcode/upc.js",function(S,te){"use strict";Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return A}});const we=te("packages/dom/src/cell/renderers/barcode/ean.js"),H=we.L_PATTERNS,L=we.G_PATTERNS,e=we.encodeEan13,I=te("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function z(r){return r.split("").map(Number)}function T(r){const u=r==null?"":String(r);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const v=e(`0${u}`);return v.ok?{ok:!0,modules:v.modules,text:v.text.slice(1)}:v}function G(r,u){const v=r.split(""),h=v[5];return h<="2"?`${v[0]}${v[1]}${h}0000${v[2]}${v[3]}${v[4]}`:h==="3"?`${v[0]}${v[1]}${v[2]}00000${v[3]}${v[4]}`:h==="4"?`${v[0]}${v[1]}${v[2]}${v[3]}00000${v[4]}`:`${v[0]}${v[1]}${v[2]}${v[3]}${v[4]}0000${h}`}const C={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 A(r){const u=r==null?"":String(r);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let v,h,c=null;if(u.length===6?(v="0",h=u):u.length===7?(v=u[0],h=u.slice(1)):(v=u[0],h=u.slice(1,7),c=u[7]),v!=="0"&&v!=="1")return{ok:!1,reason:"checkDigit"};const l=G(h,v),t=I(v+l);if(c!=null&&Number(c)!==t)return{ok:!1,reason:"checkDigit"};const P=C[t][Number(v)].split("").map((y,V)=>(y==="O"?H:L)[Number(h[V])]);return{ok:!0,modules:[...z("101"),...P.flatMap(z),...z("010101")],text:`${v}${h}${t}`}}}),Ie("packages/dom/src/cell/renderers/barcode/code93.js",function(S,te){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"BASE_ORDER",{enumerable:!0,get:function(){return we}}),Object.defineProperty(S,"SHIFT_ORDER",{enumerable:!0,get:function(){return H}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return e}});const we="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",H=["($)","(%)","(/)","(+)"],L=[[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]],e=[1,1,1,1,4,1];function E(c){const l=[];for(let t=0;t<c.length;t++){const p=t%2===0?1:0;for(let P=0;P<c[t];P++)l.push(p)}return l}function I(c){return L[c]}function z(c){return we.indexOf(c)}function T(){const c=new Map,l=43,t=44,p=45,P=46,o=y=>10+y;for(let y=1;y<=26;y++)c.set(y,[l,o(y-1)]);c.set(0,[t,o(20)]);for(let y=27;y<=31;y++)c.set(y,[t,o(y-27)]);for(let y=33;y<=44;y++)c.set(y,[p,o(y-33)]);c.set(47,[p,o(14)]),c.set(58,[p,o(25)]);for(let y=59;y<=63;y++)c.set(y,[t,o(y-59+5)]);c.set(64,[t,o(21)]);for(let y=91;y<=95;y++)c.set(y,[t,o(y-91+10)]);c.set(96,[t,o(22)]);for(let y=97;y<=122;y++)c.set(y,[P,o(y-97)]);for(let y=123;y<=127;y++)c.set(y,[t,o(y-123+15)]);return c}const G=T(),C=new Map([...G].map(([c,l])=>[l.join(","),c]));function A(c){const l=[];for(const t of c){const p=t.codePointAt(0);if(p>127)return null;const P=z(t);if(P>=0){l.push(P);continue}const o=G.get(p);if(!o)return null;l.push(o[0],o[1])}return l}function r(c){let l="";for(let t=0;t<c.length;t++){const p=`${c[t]},${c[t+1]??""}`;if(C.has(p)){l+=String.fromCharCode(C.get(p)),t++;continue}l+=we[c[t]]}return l}function u(c){let l=0,t=1;for(let p=c.length-1;p>=0;p--)l+=c[p]*t,t=t===20?1:t+1;return l%47}function v(c){const l=u(c),t=u([...c,l]);return{c:l,k:t}}function h(c,l={}){const t=c==null?"":String(c);if(t==="")return{ok:!1,reason:"empty"};const p=l.extended?A(t):(()=>{const s=[];for(const d of t){const i=z(d);if(i<0)return null;s.push(i)}return s})();if(!p)return{ok:!1,reason:"charset"};const{c:P,k:o}=v(p),y=[e];for(const s of p)y.push(I(s));return y.push(I(P)),y.push(I(o)),y.push(e),{ok:!0,modules:y.flatMap(E),text:t}}}),Ie("packages/dom/src/cell/renderers/barcode/code128.js",function(S,te){"use strict";Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return c}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,L=["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"],e=103,E=104,I=105,z=106,T={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},G={A:e,B:E,C:I};function C(l){return l>=32&&l<=95?l-32:l>=0&&l<=31?l+64:null}function A(l){return l>=32&&l<=127?l-32:null}function r(l,t){const p=l.charCodeAt(t),P=l.charCodeAt(t+1);return p>=48&&p<=57&&P>=48&&P<=57}function u(l,t,p){const P=[],o=l.charCodeAt(t),y=C(o);if(y!=null){const s=p==="A"||p===null?[y]:[T[p].A,y];P.push({to:"A",symbols:s,advance:1})}const V=A(o);if(V!=null){const s=p==="B"||p===null?[V]:[T[p].B,V];P.push({to:"B",symbols:s,advance:1})}if(r(l,t)){const s=Number(l.slice(t,t+2)),d=p==="C"||p===null?[s]:[T[p].C,s];P.push({to:"C",symbols:d,advance:2})}return P}function v(l){const t=l.length,p=Array.from({length:t+1},()=>({}));p[0].start={cost:0,prev:null,symbols:[]};for(let i=0;i<=t;i++)for(const m of Object.keys(p[i])){const k=p[i][m];if(i===t)continue;const w=m==="start"?null:m;for(const f of u(l,i,w)){const $=i+f.advance,b=k.cost+f.symbols.length,_=p[$][f.to];(!_||b<_.cost)&&(p[$][f.to]={cost:b,prev:m,symbols:f.symbols,backI:i})}}const P=Object.entries(p[t]);if(P.length===0)return null;P.sort((i,m)=>i[1].cost-m[1].cost);const[,o]=P[0],y=[];let V=t,s=P[0][0],d=s;for(;V>0;){const i=p[V][s];y.push(i.symbols),d=s,V=i.backI,s=i.prev}return y.reverse(),{symbols:y.flat(),startSubset:d}}function h(l,t){let p=l;for(let P=0;P<t.length;P++)p+=t[P]*(P+1);return p%103}function c(l,t={}){const p=l==null?"":String(l);if(p==="")return{ok:!1,reason:"empty"};for(let i=0;i<p.length;i++)if(p.charCodeAt(i)>127)return{ok:!1,reason:"charset"};const P=v(p);if(!P)return{ok:!1,reason:"charset"};const o=G[P.startSubset],y=h(o,P.symbols);return{ok:!0,modules:[o,...P.symbols,y,z].map(i=>L[i].split("").map(Number)).flatMap(i=>H(i)),text:p}}}),Ie("packages/dom/src/cell/renderers/barcode/code11.js",function(S,te){"use strict";Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return I}});const we=te("packages/dom/src/cell/renderers/barcode/support.js"),H=we.buildPattern,L=we.weightedModulo,e="0123456789-",E=[[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]],I=[2,1,1,1,2,1],z=r=>e.indexOf(r);function T(r){const u=z(r);return u<0?null:E[u]}function G(r){return e[L(r,10)]}function C(r){return e[L(r,9)]}function A(r,u={}){const v=r==null?"":String(r);if(v==="")return{ok:!1,reason:"empty"};const h=[];for(const o of v){const y=z(o);if(y<0)return{ok:!1,reason:"charset"};h.push(y)}const c=G(h),l=z(c),p=v.length>=10?`${c}${C([...h,l])}`:c,P=[I];for(const o of v)P.push(T(o));for(const o of p)P.push(T(o));return P.push(I),{ok:!0,modules:H(P,1),text:`${v}${p}`}}}),Ie("packages/dom/src/cell/renderers/barcode/codabar.js",function(S,te){"use strict";Object.defineProperty(S,"MOD16_ORDER",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return A}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,L=2,e={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"},E="0123456789-$:/.+",I="ABCD",z="0123456789-$:/.+ABCD";function T(r){return r.split("").map(u=>u==="w"?L:1)}function G(r){const u=e[r];return u?T(u):null}function C(r){let u=0;for(const h of r){const c=z.indexOf(h);if(c<0)return null;u+=c}const v=u%16;return v<10?String(v):null}function A(r,u={}){const v=r==null?"":String(r);if(v==="")return{ok:!1,reason:"empty"};const h=v.toUpperCase();if(h.length<2)return{ok:!1,reason:"charset"};const c=h[0],l=h[h.length-1];if(!I.includes(c)||!I.includes(l))return{ok:!1,reason:"charset"};const t=h.slice(1,-1);for(const o of t)if(!E.includes(o))return{ok:!1,reason:"charset"};const p=[c,...t.split(""),l];if(u.checkDigit){const o=C(p);if(o==null)return{ok:!1,reason:"checkDigit"};p.splice(p.length-1,0,o);const y=p.map(G),V=`${h.slice(0,-1)}${o}${l}`;return{ok:!0,modules:H(y,1),text:V}}const P=p.map(G);return{ok:!0,modules:H(P,1),text:h}}}),Ie("packages/dom/src/cell/renderers/barcode/code32.js",function(S,te){"use strict";Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"decodeCode32Modules",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return u}});const H=te("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,L=2,e="010010100",E={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"},I="0123456789BCDFGHJKLMNPQRSTUVWXYZ",z=v=>v.split("").map(h=>h==="1"?L:1),T=v=>E[v]?z(E[v]):null,G=()=>z(e);function C(v){let h=0;for(let c=0;c<8;c++){const l=c+1;let t=Number(v[c]);l%2===0&&(t*=2,t>=10&&(t-=9)),h+=t}return h%10}function A(v,h){let c="",l=v;for(let t=0;t<h;t++)c=I[l%32]+c,l=Math.floor(l/32);return c}function r(v){const h=[];for(let P=0;P<v.length;P++)P===0||v[P]!==v[P-1]?h.push(1):h[h.length-1]++;const c=1,l=P=>P>c?"1":"0",t=[];let p=9;for(;p<h.length;){p+=1;const P=h.slice(p,p+9);if(P.length<9)break;const o=P.map(l).join(""),y=Object.keys(E).find(V=>E[V]===o);t.push(y??"?"),p+=9}return t.pop(),t}function u(v,h={}){const c=v==null?"":String(v);if(c==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(c))return{ok:!1,reason:"charset"};const l=c.slice(0,8),t=C(l);let p;if(c.length===9){const d=Number(c[8]);if(d!==t)return{ok:!1,reason:"checkDigit"};p=d}else p=t;const P=`${l}${p}`,o=Number(P),V=`A${A(o,6)}`.split(""),s=[G()];for(const d of V){const i=T(d);if(!i)return{ok:!1,reason:"charset"};s.push(i)}return s.push(G()),{ok:!0,modules:H(s,1),text:P}}}),Ie("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(S,te){"use strict";Object.defineProperty(S,"gfMul",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"gfExp",{enumerable:!0,get:function(){return E}}),Object.defineProperty(S,"generatorPoly",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"reedSolomon",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"SIZES",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"dataCodewords",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"errorCodewords",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"dataRegionSize",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"encodeAscii",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"base256Mask",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"encodeBase256",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"padCodewords",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"utahPlacementOrder",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"diagonalWalkCoverage",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"placeCodewords",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"buildSymbol",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return k}});const we=301,H=new Uint8Array(512),L=new Uint8Array(256);{let w=1;for(let f=0;f<255;f++)H[f]=w,L[w]=f,w<<=1,w&256&&(w^=we);for(let f=255;f<512;f++)H[f]=H[f-255]}function e(w,f){return w===0||f===0?0:H[L[w]+L[f]]}function E(w){return H[(w%255+255)%255]}function I(w){let f=new Uint8Array([1]);for(let $=0;$<w;$++){const b=new Uint8Array(f.length+1);for(let _=0;_<f.length;_++)b[_]^=f[_],b[_+1]^=e(f[_],E($));f=b}return f.subarray(1)}function z(w,f){const $=I(f),b=new Uint8Array(f);for(let _=0;_<w.length;_++){const n=w[_]^b[0];if(b.copyWithin(0,1),b[f-1]=0,n!==0)for(let O=0;O<f;O++)b[O]^=e($[O],n)}return b}const T={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]},G=Object.keys(T).map(Number).sort((w,f)=>w-f);function C(w){const f=T[w];if(!f)throw new RangeError(`unsupported Data Matrix size ${w}`);return f[0]}function A(w){const f=T[w];if(!f)throw new RangeError(`unsupported Data Matrix size ${w}`);return f[1]}function r(w){return w-2}const u=129,v=231,h=w=>w>=48&&w<=57;function c(w){const f=[];let $=0;for(;$<w.length;){const b=w[$],_=$+1<w.length?w[$+1]:-1;if(h(b)&&h(_)){const n=b-48,O=_-48;f.push(n*10+O+130),$+=2}else f.push(b+1),$+=1}return f}function l(w,f){const $=149*f%255+1;return(w+$)%256}function t(w,f){if(w.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const $=[v,w.length];for(let b=0;b<w.length;b++)$.push(l(w[b],f+2+b));return $}function p(w,f){if(w.length>f)throw new RangeError(`encoded stream (${w.length} codewords) exceeds capacity (${f})`);const $=w.slice();for(;$.length<f;)$.push(u);return $}function P(w){const f=new Array(w*w).fill(null),$=[],b=(xe,ue)=>xe>=0&&xe<w&&ue>=0&&ue<w,_=(xe,ue)=>{if(!b(xe,ue))return;const R=xe*w+ue;if(f[R]===null){const be={row:xe,col:ue};f[R]=be,$.push(be)}},n=(xe,ue)=>{const R=q=>(q%w+w)%w,be=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[q,D]of be)_(R(xe+q),R(ue+D))};let O=4,ie=0,F=0;const se=w*w+64;do{for(;O>=0&&ie<w;)n(O,ie),O-=2,ie+=2;for(O+=1,ie+=3;O<w&&ie>=0;)n(O,ie),O+=2,ie-=2;O+=3,ie+=1}while((O<w||ie<w)&&F++<se);const le=$.length;for(let xe=0;xe<w;xe++)for(let ue=0;ue<w;ue++)_(xe,ue);return Object.defineProperty($,"sweptCount",{value:$.length-le,enumerable:!1}),$}function o(w){return P(w).sweptCount}function y(w,f){const $=P(f),b=new Uint8Array(f*f);for(let _=0;_<$.length;_++){const n=Math.floor(_/8);if(n>=w.length)break;const O=7-_%8,ie=w[n]>>>O&1,{row:F,col:se}=$[_];b[F*f+se]=ie}return b}function V(w,f){const $=f+2,b=new Uint8Array($*$),_=(O,ie,F)=>{b[O*$+ie]=F},n=$-1;for(let O=0;O<$;O++)_(n,O,1);for(let O=0;O<$;O++)_(O,0,1);for(let O=0;O<$;O++)_(0,O,O%2===0?1:0);for(let O=0;O<$;O++)_(O,$-1,O%2===0?1:0);for(let O=0;O<f;O++)for(let ie=0;ie<f;ie++)b[(O+1)*$+(ie+1)]=w[O*f+ie];return{size:$,modules:b}}function s(w){const f=new Uint8Array(w.length);for(let $=0;$<w.length;$++)f[$]=w.charCodeAt($)&255;return f}function d(w){for(let f=0;f<w.length;f++)if(w[f]>127)return!1;return!0}function i(w){for(const f of G)if(C(f)>=w)return f;return 0}function m(w,f={}){if(w==null||w==="")return{ok:!1,reason:"empty"};const $=String(w),b=s($),_=f&&f.encodation==="base256";if(!_&&!d(b))return{ok:!1,reason:"charset"};let n;if(_){if(b.length>249)return{ok:!1,reason:"capacity"};n=t(b,1)}else n=c(b);const O=f&&f.size;let ie;if(O!=null){if(!T[O])return{ok:!1,reason:"capacity"};if(n.length>C(O))return{ok:!1,reason:"capacity"};ie=O}else if(ie=i(n.length),ie===0)return{ok:!1,reason:"capacity"};const F=C(ie),se=p(n,F),le=z(se,A(ie)),xe=new Uint8Array(F+le.length);xe.set(se,0),xe.set(le,F);const ue=r(ie),R=y(xe,ue),{modules:be}=V(R,ue);return{ok:!0,matrix:{size:ie,modules:be},text:$}}const k=m}),Ie("packages/dom/src/cell/renderers/barcode/index.js",function(S,te){"use strict";Object.defineProperty(S,"BARCODE_TYPES",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"encodeBarcode",{enumerable:!0,get:function(){return y}});const we=te("packages/dom/src/cell/renderers/barcode/code39.js"),H=we.encodeCode39,L=te("packages/dom/src/cell/renderers/barcode/ean.js"),e=L.encodeEan13,E=L.encodeEan8,I=te("packages/dom/src/cell/renderers/barcode/upc.js"),z=I.encodeUpcA,T=I.encodeUpcE,G=te("packages/dom/src/cell/renderers/barcode/code93.js"),C=G.encodeCode93,A=te("packages/dom/src/cell/renderers/barcode/code128.js"),r=A.encodeCode128,u=te("packages/dom/src/cell/renderers/barcode/code11.js"),v=u.encodeCode11,h=te("packages/dom/src/cell/renderers/barcode/codabar.js"),c=h.encodeCodabar,l=te("packages/dom/src/cell/renderers/barcode/code32.js"),t=l.encodeCode32,p=te("packages/dom/src/cell/renderers/barcode/datamatrix.js"),P=p.encodeDataMatrix;Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return we.encodeCode39}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return L.encodeEan13}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return L.encodeEan8}}),Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return I.encodeUpcA}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return I.encodeUpcE}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return G.encodeCode93}}),Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return A.encodeCode128}}),Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return u.encodeCode11}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return h.encodeCodabar}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return l.encodeCode32}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return p.encodeDataMatrix}});const o=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function y(V,s,d={}){switch(V){case"code39":return H(s,{checkDigit:d.checkDigit});case"code39ext":return H(s,{extended:!0,checkDigit:d.checkDigit});case"ean13":return e(s);case"ean8":return E(s);case"upca":return z(s);case"upce":return T(s);case"code93":return C(s);case"code93ext":return C(s,{extended:!0});case"code128":return r(s);case"code11":return v(s);case"codabar":return c(s,{checkDigit:d.checkDigit});case"code32":return t(s);case"datamatrix":return P(s,{size:d.size,encodation:d.encodation});default:return{ok:!1,reason:"type"}}}}),Ie("packages/dom/src/cell/renderers/barcode/render.js",function(S,te){"use strict";Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"barsPathData",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"matrixPathData",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"paint",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"buildSvg",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"renderBarcode",{enumerable:!0,get:function(){return c}});const H=te("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,L="http://www.w3.org/2000/svg",e=60,E=16,I=4;function z(l,t,p){p==null||p===!1?l.removeAttribute(t):l.setAttribute(t,String(p))}const T=new Set;function G(l,t){T.has(l)||(T.add(l),console.warn("[lattice]",t))}function C(l,t,p){const P=[];let o=0;for(;o<l.length;){if(!l[o]){o++;continue}let y=1;for(;o+y<l.length&&l[o+y];)y++;P.push(`M${o+t} 0h${y}v${p}h-${y}z`),o+=y}return P.join("")}function A(l,t){const{size:p,modules:P}=l,o=[];for(let y=0;y<p;y++){let V=0;for(;V<p;){if(!P[y*p+V]){V++;continue}let s=1;for(;V+s<p&&P[y*p+V+s];)s++;o.push(`M${V+t} ${y+t}h${s}v1h-${s}z`),V+=s}}return o.join("")}function r(l){const t=l&&typeof l=="object"?l:{};return{show:t.show!==!1,position:t.position==="top"?"top":"bottom",align:t.align==="left"||t.align==="right"?t.align:"center",margin:Number.isFinite(Number(t.margin))?Number(t.margin):2,font:typeof t.font=="string"&&t.font?t.font:"10px sans-serif"}}function u(l){const t=Math.floor(Number(l));return!Number.isFinite(t)||t<0?10:Math.min(40,t)}function v(l,t,p){const P=u(p.quietZone),o=r(p.text),y=o.show,V=!!t.matrix,s=V?t.matrix.size:t.modules.length,d=V?s+P*2:e,i=y&&o.position==="top"?E+I:0,m=d+(y?E+I:0),k=s+P*2,w=Number(p.moduleWidth)||0,f=w>0?k*w:Number(p.width)||200,$=Number(p.height)||Math.round(f/k*m)||60;z(l.svg,"viewBox",`0 0 ${k} ${m}`),z(l.svg,"width",f),z(l.svg,"height",$);const b=p.print?"#000000":p.foreground||"currentColor",_=p.print?"#ffffff":p.background;if(_?(z(l.background,"x",0),z(l.background,"y",0),z(l.background,"width",k),z(l.background,"height",m),l.background.setAttribute("fill",_),l.background.style.display=""):l.background.style.display="none",l.path.setAttribute("fill",b),l.path.setAttribute("transform",`translate(0 ${i})`),l.path.setAttribute("d",V?A(t.matrix,P):C(t.modules,P,e)),!y){l.text.style.display="none";return}l.text.style.display="",l.text.style.font=o.font,l.text.setAttribute("fill",b),l.text.setAttribute("text-anchor",o.align==="left"?"start":o.align==="right"?"end":"middle");const n=o.align==="left"?P:o.align==="right"?k-P:k/2,O=o.position==="top"?E-o.margin:m-o.margin;z(l.text,"x",n),z(l.text,"y",O),l.text.textContent=t.text}function h(l){const t=l.createElementNS(L,"svg");t.setAttribute("class","lat-barcode__svg"),t.setAttribute("focusable","false"),t.setAttribute("preserveAspectRatio","none");const p=l.createElementNS(L,"rect");p.style.display="none";const P=l.createElementNS(L,"path"),o=l.createElementNS(L,"text");return t.appendChild(p),t.appendChild(P),t.appendChild(o),{svg:t,background:p,path:P,text:o}}function c(l,t){const p=l.ownerDocument,P=h(p);l.textContent="",l.appendChild(P.svg);const o=V=>{const s=V||{},d=String(s.type||"code39"),i=H(d,s.value,{checkDigit:s.checkDigit,size:s.size,encodation:s.encodation});if(!i.ok){G(`barcode:invalid:${d}`,`column "standalone" has a value that is not valid for the "${d}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),P.path.setAttribute("d","");return}v(P,i,s)};return o(t),{update:o,destroy:()=>{l.textContent=""}}}}),Ie("packages/modules/form/controls/barcode.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function E(I,z){const T=I.props&&I.props.source;if(!T)return I.value;const G=typeof z.form.getItem=="function"?z.form.getItem(T):null;return G&&typeof G.getValue=="function"?G.getValue():void 0}H("barcode",{kind:"display",build(I,z){const T=z.doc.createElement("span");T.className="lat-form__barcode";const G=e(T,{...I.props,value:E(I,z)}),C=I.props&&I.props.source;if(C){const A=z.emitter.on("change",r=>{r&&r.name===C&&G.update({...I.props,value:r.value})});z.disposers.push(A)}return z.disposers.push(()=>G.destroy()),T._barcodeHandle=G,T},read(I,z,T){return E(z,T)},write(I,z,T){I._barcodeHandle&&I._barcodeHandle.update({...z.props,value:T})},state(){}})}),Ie("packages/modules/form/controls/speeddial.js",function(S,te){"use strict";Object.defineProperty(S,"injectSpeedDialStyles",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return f}});const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,I=te("packages/modules/form/ids.js").nextId,z=te("packages/modules/form/scheme.js"),T=z.rootDefaultsCss,G=z.darkAccentCss,A=te("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,r="lat-speeddial",u="data-lattice-speeddial-styles",v="http://www.w3.org/2000/svg",h=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),c=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),l=Object.freeze(["up","down","left","right"]);function t(){const $=`
|
|
2198
2198
|
.lat-form,
|
|
2199
2199
|
.lat-speeddial[data-lattice-standalone]{
|
|
2200
2200
|
--lattice-speeddial-primary-bg:#5a46d6;
|
|
@@ -2307,7 +2307,7 @@ ${N()}
|
|
|
2307
2307
|
--lattice-border-color:#2a3138;
|
|
2308
2308
|
}}}
|
|
2309
2309
|
${G(".lat-speeddial[data-lattice-standalone]","--lattice-accent:#4e9bea; --lattice-focus-ring:#6cb0f2;")}
|
|
2310
|
-
${
|
|
2310
|
+
${T()}
|
|
2311
2311
|
/* Inside a form the control cell gives the FAB its room. */
|
|
2312
2312
|
.lat-form__control .lat-speeddial{ min-height:calc(var(--lat-sd-size) + var(--lat-sd-pad) * 2); }
|
|
2313
2313
|
|
|
@@ -2379,6 +2379,6 @@ ${N()}
|
|
|
2379
2379
|
${$}
|
|
2380
2380
|
${_}
|
|
2381
2381
|
${b}
|
|
2382
|
-
`.trim()}function p($){const b=$&&$.documentElement;if(!b||b.getAttribute(u))return;b.setAttribute(u,"1");const _=$.createElement("style");_.textContent=t(),($.head||$.body||b).appendChild(_)}function P($){return h.includes($)?$:"bottom-right"}function o($){return c.includes($)?$:"primary"}function y($,b){return l.includes(b)?b:$.startsWith("top-")?"down":$.startsWith("bottom-")?"up":$==="middle-left"?"right":"left"}function V($){switch($){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 s($,b){const _=b&&typeof b=="object"?b:{},n=V($),O=typeof _.startAngle=="number"?_.startAngle:n.startAngle,ie=typeof _.endAngle=="number"?_.endAngle:n.endAngle,F=typeof _.offset=="number"&&_.offset>0?_.offset:0;return{startAngle:O,endAngle:ie,offset:F,defaulted:_.startAngle==null&&_.endAngle==null}}function d($,b){const _=A[b];if(!_)return null;const n=$.createElementNS(v,"svg");n.setAttribute("viewBox",_.viewBox||"0 0 16 16"),n.setAttribute("aria-hidden","true"),n.setAttribute("focusable","false");const O=_.paint==="stroke";for(const ie of _.paths||[]){const F=$.createElementNS(v,"path");F.setAttribute("d",ie),O?(F.setAttribute("fill","none"),F.setAttribute("stroke","currentColor"),F.setAttribute("stroke-width","1.5"),F.setAttribute("stroke-linecap","round"),F.setAttribute("stroke-linejoin","round")):F.setAttribute("fill","currentColor"),n.appendChild(F)}return n}function i($,b){if($==null)return null;if(typeof $=="object"&&$.nodeType)return $;if(typeof $!="string"||$==="")return null;const _=$;if(/^(https?:)?\/\//i.test(_)||/^data:/i.test(_)){const n=b.createElement("img");return n.src=_,n.alt="",n}return d(b,_)}function m($,b,_){const n=$&&$.defaultView;return n&&n.CustomEvent?new n.CustomEvent(b,{bubbles:!0,detail:_}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:_,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function k($){return Array.isArray($)?$.map(b=>{const _=b&&typeof b=="object"?b:{};return{id:_.id,icon:_.icon,text:_.text,disabled:_.disabled===!0,render:typeof _.render=="function"?_.render:null}}):[]}function w($,b){const _="var(--lat-sd-size)",n="var(--lat-sd-gap)",O="var(--lat-sd-pad)";if(b==="up"||b==="down"){const se={flexDirection:"column"};return $.endsWith("-left")?(se.insetInlineStart=O,se.alignItems="flex-start"):$.endsWith("-right")?(se.insetInlineEnd=O,se.alignItems="flex-end"):(se.left="50%",se.transform="translateX(-50%)",se.alignItems="center"),b==="down"?se.top=`calc(${O} + ${_} + ${n})`:se.bottom=`calc(${O} + ${_} + ${n})`,se}const F={flexDirection:"row"};return $.startsWith("top-")?(F.top=O,F.alignItems="flex-start"):$.startsWith("bottom-")?(F.bottom=O,F.alignItems="flex-end"):(F.top="50%",F.transform="translateY(-50%)",F.alignItems="center"),b==="right"?F.insetInlineStart=`calc(${O} + ${_} + ${n})`:F.insetInlineEnd=`calc(${O} + ${_} + ${n})`,F}function f($,b={}){const _=b.doc||$&&$.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;_&&p(_);const n=typeof b.t=="function"?b.t:e,O=b.inForm===!0,ie=b.emitter||null,F=b.itemName!=null?String(b.itemName):"",se=b.formItem||null,le=P(b.position),ke=b.fixed===!0,ce=b.openOnHover===!0,B=b.mode==="radial"?"radial":"linear",be=o(b.variant),q=y(le,b.direction),D=b.modal===!0,J=b.text!=null?String(b.text):"",ne=b.openIcon!=null?b.openIcon:"plus",oe=b.closeIcon!=null?b.closeIcon:"close",ve=B==="radial"?s(le,b.radial):null;let pe=b.disabled===!0,x=k(b.items);const W=_.createElement("div");W.className=r,W.setAttribute("data-variant",be),W.setAttribute("data-fixed",ke?"true":"false"),O||W.setAttribute("data-lattice-standalone","true");const U=I("lat-speeddial-menu"),j=_.createElement("button");j.type="button",j.className=`${r}__fab`,j.setAttribute("data-position",le),j.setAttribute("aria-haspopup","menu"),j.setAttribute("aria-expanded","false"),j.setAttribute("aria-controls",U),J&&j.setAttribute("data-text","true");const Z=_.createElement("span");if(Z.className=`${r}__fab-icon`,Z.setAttribute("aria-hidden","true"),j.appendChild(Z),J){const Oe=_.createElement("span");Oe.className=`${r}__fab-text`,Oe.textContent=J,j.appendChild(Oe)}const ae=_.createElement("div");ae.className=`${r}__backdrop`,ae.hidden=!0;const re=_.createElement("div");re.className=`${r}__menu`,re.setAttribute("role","menu"),re.setAttribute("aria-label",n("form.speeddial.menu")),re.id=U,re.setAttribute("data-mode",B),B==="linear"&&re.setAttribute("data-direction",q),re.hidden=!0,W.appendChild(ae),W.appendChild(re),W.appendChild(j);let R=!1;const ee=[];let X=!1;const ge=(Oe,He)=>{ie?ie.emit(Oe,{name:F,item:se,...He}):$.dispatchEvent(m(_,Oe,He))},$e=()=>J||n(R?"form.speeddial.close":"form.speeddial.open"),K=()=>{for(;Z.firstChild;)Z.removeChild(Z.firstChild);const Oe=i(R?oe:ne,_);Oe&&Z.appendChild(Oe)},he=(Oe,He)=>{const Re=_.createElement("button");Re.type="button",Re.className=`${r}__item`,Re.setAttribute("role","menuitem"),Re.setAttribute("tabindex","-1"),Re.dataset.index=String(He);const Fe=Oe.text!=null&&String(Oe.text)!==""?String(Oe.text):Oe.id!=null?String(Oe.id):"";Fe&&Re.setAttribute("aria-label",Fe),Oe.disabled&&Re.setAttribute("aria-disabled","true");const Ge=i(Oe.icon,_),Ze=Oe.text!=null?String(Oe.text):"";if(typeof Oe.render=="function"){const Le=Oe.render(Oe,He);Le&&typeof Le=="object"&&Le.nodeType?Re.appendChild(Le):Re.textContent=Le!=null?String(Le):""}else{if(Ge){const Le=_.createElement("span");Le.className=`${r}__item-icon`,Le.setAttribute("aria-hidden","true"),Le.appendChild(Ge),Re.appendChild(Le)}if(Ze!==""){const Le=_.createElement("span");Le.className=`${r}__item-text`,Le.textContent=Ze,Re.appendChild(Le)}}Re.setAttribute("data-icon-only",Ge!=null&&Ze===""?"true":"false"),Re.setAttribute("data-text-only",Ge==null&&Ze!==""?"true":"false");const _e=Le=>{Le.stopPropagation(),!(Oe.disabled||pe)&&(ge("itemClick",{item:Oe,index:He}),Q(!1),j.focus())};Re.addEventListener("click",_e),ee.push(()=>Re.removeEventListener("click",_e));const je=Le=>{Le.key==="Escape"?(Le.preventDefault(),Le.stopPropagation(),Q(!1),j.focus()):Le.key==="ArrowDown"||Le.key==="ArrowRight"?(Le.preventDefault(),M(He,1)):(Le.key==="ArrowUp"||Le.key==="ArrowLeft")&&(Le.preventDefault(),M(He,-1))};return Re.addEventListener("keydown",je),ee.push(()=>Re.removeEventListener("keydown",je)),Re};let Ee=[];const T=()=>{for(;re.firstChild;)re.removeChild(re.firstChild);Ee=x.map((Oe,He)=>he(Oe,He));for(const Oe of Ee)re.appendChild(Oe);K()},g=()=>{if(B!=="radial"||!ve)return;const Oe=j.getBoundingClientRect(),He=ke?0:W.getBoundingClientRect().left,Re=ke?0:W.getBoundingClientRect().top,Fe=Oe.left+Oe.width/2-He,Ge=Oe.top+Oe.height/2-Re,Ze=ve.offset||Math.round(Oe.width/2+28);let _e=ve.startAngle,je=ve.endAngle;if(ve.defaulted&&getComputedStyle(W).direction==="rtl"){const We=180-je;je=180-_e,_e=We}const Le=Ee.length;Ee.forEach((We,rt)=>{const Ke=(Le<=1?(_e+je)/2:_e+(je-_e)*(rt/(Le-1)))*Math.PI/180;We.style.left=`${Math.round(Fe+Ze*Math.cos(Ke))}px`,We.style.top=`${Math.round(Ge-Ze*Math.sin(Ke))}px`})},Q=(Oe,He={})=>{X||pe||R===Oe||(R=Oe,j.setAttribute("aria-expanded",R?"true":"false"),j.setAttribute("aria-label",$e()),re.hidden=!R,D&&(ae.hidden=!R),K(),R?(ge("open",{}),g(),He.focusItems!==!1&&M(-1,1)):ge("close",{}))},M=(Oe,He)=>{const Re=Ee.length;if(Re===0)return;let Fe=Oe===-1?He>0?0:Re-1:(Oe+He+Re)%Re;for(let Ge=0;Ge<Re;Ge+=1){if(!x[Fe].disabled){Ee[Fe].focus();return}Fe=(Fe+He+Re)%Re}},a=()=>{Q(!0,{focusItems:!1})},Y=()=>{R&&(Q(!1),j.focus())},fe=()=>{Q(!R,{focusItems:!1})};if(B==="linear"){const Oe=w(le,q);for(const He of Object.keys(Oe))re.style[He]=Oe[He]}const me=()=>{pe||fe()};j.addEventListener("click",me),ee.push(()=>j.removeEventListener("click",me));const Ae=()=>{ce&&!pe&&Q(!0,{focusItems:!1})};j.addEventListener("pointerenter",Ae),ee.push(()=>j.removeEventListener("pointerenter",Ae));const ue=()=>{ce&&R&&Q(!1)};W.addEventListener("pointerleave",ue),ee.push(()=>W.removeEventListener("pointerleave",ue));const Pe=Oe=>{Oe.stopPropagation(),Y()};ae.addEventListener("click",Pe),ee.push(()=>ae.removeEventListener("click",Pe));const Se=Oe=>{if(!R)return;const He=Oe.target;He&&W.contains(He)||Y()};_.addEventListener("pointerdown",Se,!0),ee.push(()=>_.removeEventListener("pointerdown",Se,!0));const Be=Oe=>{!R||Oe.key!=="Escape"||(Oe.preventDefault(),Y())};_.addEventListener("keydown",Be,!0),ee.push(()=>_.removeEventListener("keydown",Be,!0));const Te=Oe=>{Oe.key==="Escape"?R&&(Oe.preventDefault(),Oe.stopPropagation(),Y()):Oe.key==="ArrowDown"||Oe.key==="ArrowRight"?(Oe.preventDefault(),Q(!0),M(-1,1)):(Oe.key==="ArrowUp"||Oe.key==="ArrowLeft")&&(Oe.preventDefault(),Q(!0),M(-1,-1))};j.addEventListener("keydown",Te),ee.push(()=>j.removeEventListener("keydown",Te));const Ne=Oe=>{pe=Oe===!0,j.disabled=pe,j.setAttribute("aria-disabled",pe?"true":"false"),pe&&R&&Q(!1)},Me={el:W,fab:j,menu:re,open:a,close:Y,toggle:fe,setItems(Oe){x=k(Oe),T()},setDisabled:Ne,destroy(){X=!0;for(const Oe of ee.splice(0))Oe();for(;W.firstChild;)W.removeChild(W.firstChild);W.parentNode&&W.parentNode.removeChild(W)}};return Ne(pe),T(),$.appendChild(W),$.__latSpeedDial=Me,Me}H("speeddial",{kind:"button",action:!0,build($,b){const _=$.props||{},n=b.doc.createElement("div"),O=f(n,{items:_.speedDialItems||_.items,position:_.position,fixed:_.fixed,openOnHover:_.openOnHover,direction:_.direction,mode:$.mode,radial:_.radial,modal:_.modal,openIcon:_.openIcon,closeIcon:_.closeIcon,text:_.text!=null?_.text:$.label,variant:_.variant,disabled:$.disabled,t:b.t,doc:b.doc,inForm:!0,emitter:b.emitter,itemName:$.name,formItem:$});return b.disposers.push(()=>O.destroy()),n},read(){return null},write(){},state($,b){const _=$&&$.__latSpeedDial;_&&_.setDisabled(b.disabled===!0)}})}),Ie("packages/modules/form/controls/multipart-upload.js",function(S,te){"use strict";Object.defineProperty(S,"uploadMultipart",{enumerable:!0,get:function(){return xe}});function xe(H,L,e={}){return new Promise((E,I)=>{const z=new XMLHttpRequest,N=new FormData,G=L.fieldName||"file";if(L.params)for(const[C,A]of Object.entries(L.params))N.append(C,String(A));if(N.append(G,H,H.name),z.open("POST",L.target,!0),L.headers)for(const[C,A]of Object.entries(L.headers))z.setRequestHeader(C,A);if(z.upload.addEventListener("progress",C=>{e.onProgress&&C.lengthComputable&&e.onProgress(Math.round(C.loaded/C.total*100))}),z.addEventListener("load",()=>{if(z.status>=200&&z.status<300){let C=z.responseText;try{C=JSON.parse(z.responseText)}catch{}E(C)}else I(new Error(`upload failed with status ${z.status}`))}),z.addEventListener("error",()=>I(new Error("upload failed"))),z.addEventListener("abort",()=>I(new Error("upload aborted"))),e.signal){if(e.signal.aborted){z.abort();return}e.signal.addEventListener("abort",()=>z.abort())}z.send(N)})}}),Ie("packages/modules/form/controls/avatar.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/file.js"),z=I.accepts,N=I.formatSize,C=te("packages/modules/form/controls/multipart-upload.js").uploadMultipart,A=Object.freeze({small:40,medium:64,large:96}),r=Object.freeze({photo:"M3 4.5h2l1-1.5h4l1 1.5h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM8 7a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"});function u(p){return p}function v(p,P){const o="http://www.w3.org/2000/svg",y=p.createElementNS(o,"svg");y.setAttribute("viewBox","0 0 16 16"),y.setAttribute("focusable","false"),y.setAttribute("aria-hidden","true");const V=p.createElementNS(o,"path");return V.setAttribute("d",P),V.setAttribute("fill","currentColor"),y.appendChild(V),y}function h(p){return typeof p=="number"&&Number.isFinite(p)&&p>0?p:typeof p=="string"&&A[p]?A[p]:A.medium}function c(p,P){const o=P&&P.defaultView,y=o&&o.Event,V=y?new y("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(V)}function l(p){if(!p||typeof p!="object")return null;const P=p;return P.src==null||P.src===""?null:P}function t(p){return new Promise((P,o)=>{const y=new FileReader;y.onload=()=>P(String(y.result)),y.onerror=()=>o(y.error||new Error("could not read the file")),y.readAsDataURL(p)})}H("avatar",{kind:"field",build(p,P){const o=P.doc,y=P.t||u;E(o);const V=p.props||{},s=Array.isArray(V.accept)&&V.accept.length?V.accept.map(String):["image/*"],d=Number(V.maxSize)||0,i=o.createElement("div");i.className="lat-form__avatar";const m={value:l(p.value),rejectedMessage:null,accept:s,maxSize:d,size:h(V.size),circle:V.circle===!0,alt:V.alt!=null?String(V.alt):"",preview:V.preview!=null&&V.preview!==""?String(V.preview):null,icon:V.icon,placeholder:p.placeholder!=null&&p.placeholder!==""?String(p.placeholder):y("form.avatar.placeholder"),removeIcon:V.removeIcon!==!1,upload:V.upload&&typeof V.upload=="object"?V.upload:null,disabled:p.disabled===!0,readOnly:p.readOnly===!0,label:p.label!=null&&p.label!==""?String(p.label):null};i.__latAvatar=m;const k=o.createElement("input");k.type="file",k.className="lat-form__avatar-input",k.tabIndex=-1,k.setAttribute("aria-hidden","true"),s.length&&(k.accept=s.join(",")),i.appendChild(k);const w=o.createElement("button");w.type="button",w.className="lat-form__avatar-picture",i.appendChild(w);const f=o.createElement("button");f.type="button",f.className="lat-form__avatar-remove",f.setAttribute("aria-label",y("form.avatar.remove")),f.title=y("form.avatar.remove"),f.appendChild(e(o,"close")||v(o,r.photo)),i.appendChild(f);const $=o.createElement("span");return $.className="lat-form__avatar-status",i.appendChild($),i.style.setProperty("--lat-avatar-size",`${m.size}px`),i.__latPaint=()=>{i.style.setProperty("--lat-avatar-size",`${m.size}px`),w.classList.toggle("lat-form__avatar-picture--circle",m.circle);const b=m.disabled||m.readOnly;w.disabled=b,w.tabIndex=b?-1:0,w.setAttribute("aria-label",m.label||y("form.avatar.choose")),w.textContent="";const _=m.value&&m.value.src?m.value.src:null;if(_){const O=o.createElement("img");O.className="lat-form__avatar-img",O.src=_,O.alt=m.alt,w.appendChild(O)}else if(m.preview){const O=o.createElement("img");O.className="lat-form__avatar-img",O.src=m.preview,O.alt=m.alt,w.appendChild(O)}else if(m.icon!=null&&m.icon!==!1){if(typeof m.icon=="object"&&m.icon.nodeType)w.appendChild(m.icon);else if(typeof m.icon=="string"){const O=o.createElement("img");O.className="lat-form__avatar-img",O.src=m.icon,O.alt=m.alt,w.appendChild(O)}}else{const O=o.createElement("span");O.className="lat-form__avatar-placeholder",O.appendChild(v(o,r.photo));const ie=o.createElement("span");ie.className="lat-form__avatar-placeholder-text",ie.textContent=m.placeholder,O.appendChild(ie),w.appendChild(O)}const n=!!(m.value&&m.value.src);f.hidden=!n||!m.removeIcon||m.disabled||m.readOnly,f.disabled=m.disabled||m.readOnly,$.textContent="",$.className="lat-form__avatar-status",m.value&&m.value.status==="uploading"?($.classList.add("lat-form__avatar-status--uploading"),$.textContent=`${Math.round(m.value.progress||0)}%`):m.value&&m.value.status==="failed"&&($.classList.add("lat-form__avatar-status--failed"),$.textContent=m.value.message||y("form.avatar.uploadFailed"))},i.__latStartUpload=()=>{const b=m.upload,_=m.value;!b||!_||!_.file||b.autosend===!1||(_.status="uploading",_.progress=0,i.__latPaint(),C(_.file,b,{onProgress(n){m.value===_&&(_.progress=n,i.__latPaint())}}).then(n=>{m.value===_&&(_.status="done",_.progress=100,b.updateFromResponse!==!1&&n&&typeof n=="object"&&(n.src!=null&&(_.src=String(n.src)),n.id!=null&&(_.id=n.id)),i.__latPaint(),c(i,o))},n=>{m.value===_&&(_.status="failed",_.message=n&&n.message?String(n.message):y("form.avatar.uploadFailed"),i.__latPaint(),c(i,o))}))},i.__latAdmit=b=>{if(!(!b||m.disabled||m.readOnly)){if(m.maxSize&&b.size>m.maxSize){m.rejectedMessage=y("form.avatar.rejected.size",{size:N(m.maxSize)});return}if(!z(b,m.accept)){m.rejectedMessage=y("form.avatar.rejected.type");return}m.rejectedMessage=null,t(b).then(_=>{m.value={src:_,file:b,name:b.name,size:b.size,status:"pending"},i.__latPaint(),c(i,o),i.__latStartUpload()})}},i.__latRemove=()=>{m.disabled||m.readOnly||(m.value=null,i.__latPaint(),c(i,o))},k.addEventListener("change",()=>{const b=k.files&&k.files[0];i.__latAdmit(b),k.value=""}),w.addEventListener("click",()=>{m.disabled||m.readOnly||k.click()}),w.addEventListener("keydown",b=>{m.disabled||m.readOnly||(b.key==="Enter"||b.key===" "||b.key==="Spacebar")&&(b.preventDefault(),k.click())}),f.addEventListener("click",b=>{b.stopPropagation(),i.__latRemove()}),["dragenter","dragover"].forEach(b=>w.addEventListener(b,_=>{m.disabled||m.readOnly||(_.preventDefault(),w.classList.add("lat-form__avatar-picture--dragover"))})),w.addEventListener("dragleave",()=>{w.classList.remove("lat-form__avatar-picture--dragover")}),w.addEventListener("drop",b=>{if(b.preventDefault(),w.classList.remove("lat-form__avatar-picture--dragover"),m.disabled||m.readOnly)return;const _=b.dataTransfer&&b.dataTransfer.files&&b.dataTransfer.files[0];i.__latAdmit(_)}),i.__latPaint(),m.value&&m.value.file&&m.value.status==="pending"&&i.__latStartUpload(),i},read(p){return p.__latAvatar?p.__latAvatar.value:null},write(p,P){const o=p.__latAvatar;o&&(o.value=l(P),p.__latPaint&&p.__latPaint())},state(p,P){const o=p.__latAvatar;o&&(o.disabled=P.disabled===!0,o.readOnly=P.readOnly===!0,o.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"),o.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly"),p.__latPaint&&p.__latPaint())},validate(p,P,o){const y=p.__latAvatar;return y&&y.rejectedMessage?y.rejectedMessage:null},focus(p){const P=p.querySelector(".lat-form__avatar-picture");P&&P.focus()}})}),Ie("packages/modules/form/controls/togglegroup.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/controls/button.js").buildIcon,E="lat-form__togglegroup",I="lat-form__togglegroup-btn";function z(C,A){const r=C!==null&&typeof C=="object"?C:{},u=r.id!=null?String(r.id):r.value!=null?String(r.value):String(A),v=r.text!=null?String(r.text):u;return{id:u,text:v,offText:r.offText!=null?String(r.offText):v,icon:r.icon!=null?r.icon:null,offIcon:r.offIcon!=null?r.offIcon:r.icon,selected:r.selected===!0,disabled:r.disabled===!0,hidden:r.hidden===!0,full:r.full===!0}}function N(C,A){const r=A&&A.defaultView,u=r&&r.Event,v=u?new u("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};C.dispatchEvent(v)}function G(C){return typeof C=="number"&&Number.isFinite(C)&&C>=0?C:0}H("togglegroup",{kind:"field",build(C,A){const r=A.doc,u=C.props||{},v=u.multiselect===!0,h=u.full===!0,c=r.createElement("div");c.className=E,c.setAttribute("role","group"),c.setAttribute("aria-label",C.label!=null&&C.label!==""?String(C.label):A.t("form.togglegroup")),c.style.setProperty("--lat-form-gap",`${G(u.gap)}px`),h&&c.setAttribute("data-full","true");const l=(Array.isArray(C.options)?C.options:[]).map(z).filter(d=>!d.hidden),t=[],p={},P={doc:r,options:l,buttons:t,pressed:p,multiselect:v,disabled:C.disabled===!0,readOnly:C.readOnly===!0};c.__latToggleGroup=P;for(const d of l){const i=r.createElement("button");i.type="button",i.className=I,i.setAttribute("data-index",String(t.length)),d.full&&i.setAttribute("data-full","true"),i.disabled=d.disabled||P.disabled,i.__tg={opt:d,pressed:!1},c.appendChild(i),t.push(i),p[d.id]=!1}const o=d=>{const i=d.__tg,m=i.opt,k=i.pressed;d.setAttribute("aria-pressed",k?"true":"false"),d.removeAttribute("aria-label"),d.textContent="";const w=e(k?m.icon:m.offIcon,r);w&&d.appendChild(w);const f=k?m.text:m.offText;if(f!==""){const $=r.createElement("span");$.className=`${I}-label`,$.textContent=f,d.appendChild($)}else w&&d.setAttribute("aria-label",m.id)},y=()=>{for(const d of t)d.__tg.pressed=p[d.__tg.opt.id]===!0,o(d)},V=d=>{if(d.disabled||P.disabled||P.readOnly)return!1;if(v)p[d.id]=!p[d.id];else{if(p[d.id])return!1;for(const i of l)p[i.id]=i.id===d.id}return y(),!0},s=C.value!=null&&typeof C.value=="object"?C.value:{};for(const d of l)p[d.id]=s[d.id]===!0;if(v)for(const d of l)p[d.id]=p[d.id]||d.selected===!0;else{let d=l.find(i=>p[i.id]);d||(d=l.find(i=>i.selected)),d||(d=l[0]);for(const i of l)p[i.id]=i.id===(d&&d.id)}return y(),c.addEventListener("click",d=>{const i=d.target&&d.target.closest?d.target.closest(`.${I}`):null;if(!i||!c.contains(i)||!i.__tg)return;const m=i.__tg.opt;V(m)&&(c.__latChangeDetail={id:m.id,pressed:p[m.id]},N(c,r))}),c.__latKey=d=>{if(d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;const i=t.filter(f=>!f.disabled);if(!i.length)return;const m=i.indexOf(r.activeElement),k=d.key==="ArrowRight"?1:-1,w=m===-1?k===1?0:i.length-1:m+k;w<0||w>=i.length||(d.preventDefault(),i[w].focus())},c.addEventListener("keydown",c.__latKey),c},read(C){const A=C&&C.__latToggleGroup,r={};if(!A)return r;for(const u of A.options)r[u.id]=A.pressed[u.id]===!0;return r},write(C,A){const r=C&&C.__latToggleGroup;if(!r)return;const u=A!=null&&typeof A=="object"&&!Array.isArray(A)?A:{};for(const h of r.options)r.pressed[h.id]=u[h.id]===!0;if(!r.multiselect){const h=r.options.find(c=>r.pressed[c.id]);for(const c of r.options)r.pressed[c.id]=c.id===(h?h.id:r.options[0]&&r.options[0].id)}for(const h of r.buttons)h.__tg.pressed=r.pressed[h.__tg.opt.id]===!0;const v=r.doc;for(const h of r.buttons){const c=h.__tg,l=c.opt,t=c.pressed;h.setAttribute("aria-pressed",t?"true":"false"),h.removeAttribute("aria-label"),h.textContent="";const p=e(t?l.icon:l.offIcon,v);p&&h.appendChild(p);const P=t?l.text:l.offText;if(P!==""){const o=v.createElement("span");o.className=`${I}-label`,o.textContent=P,h.appendChild(o)}else p&&h.setAttribute("aria-label",l.id)}},state(C,A){const r=C&&C.__latToggleGroup;if(r){r.disabled=A.disabled===!0,r.readOnly=A.readOnly===!0,r.readOnly?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly"),r.disabled?C.setAttribute("aria-disabled","true"):C.removeAttribute("aria-disabled");for(const u of r.buttons)u.disabled=r.disabled||u.__tg.opt.disabled}},focus(C){const A=C&&C.__latToggleGroup,r=A&&A.buttons.find(u=>!u.disabled);r&&typeof r.focus=="function"&&r.focus()}})}),Ie("packages/modules/form/controls/grid.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/model.js").cssSize,E="__latFormTotal",I="__latFormTotals",z=new Set(["number","currency","percent","integer","decimal"]),N="lat-invalid",G=240;function C(x){return x!==null&&typeof x=="object"&&!Array.isArray(x)}function A(x){return x==null||x===""}function r(x){if(typeof x=="number")return Number.isFinite(x)?x:null;if(C(x)&&Object.hasOwn(x,"amount"))return r(x.amount);if(typeof x=="string"&&x.trim()!==""){const W=Number(x);return Number.isFinite(W)?W:null}return null}function u(x){return C(x)&&Object.hasOwn(x,"amount")&&Object.keys(x).every(W=>W==="amount"||W==="code")?x.amount:x}function v(x,W,U){if(typeof x=="function")try{return x(W,U)}catch{return null}const j=W.map(r).filter(ae=>ae!==null);if(x==="count")return W.filter(ae=>!A(ae)).length;if(j.length===0)return x==="avg"?null:0;const Z=j.reduce((ae,re)=>ae+re,0);return x==="avg"?Z/j.length:Z}function h(x){return typeof x=="function"||x==="sum"||x==="avg"||x==="count"?x:"sum"}function c(x){if(typeof x=="string")return x;if(C(x)){if(x.field!=null)return String(x.field);if(x.id!=null)return String(x.id)}return null}function l(x,W){if(x===!0)return{enabled:()=>W()};if(typeof x=="string")return{editor:x,enabled:()=>W()};if(C(x)&&x.enabled!==void 0&&x.enabled!==!1){const U=x.enabled;return{...x,enabled:j=>W()&&(typeof U=="function"?U(j)!==!1:!0)}}return x}function t(x,W){if(!(!x||!x.children))for(const U of Array.from(x.children))W(U),t(U,W)}function p(x,W,U){let j=null;return t(x,Z=>{j||!Z.getAttribute||Z.getAttribute("data-key")!==W||t(Z,ae=>{!j&&ae.getAttribute&&ae.getAttribute("data-col")===U&&(j=ae)})}),j}function P(x,W,U={}){const j=x.cal.model&&x.cal.model.messages;if(j&&typeof j.t=="function"){const ae=j.t(W,U);if(ae!==W)return ae}const Z=x.grid&&x.grid.messages;if(Z&&typeof Z.t=="function")try{const ae=Z.t(W,U);if(ae!==W)return ae}catch{}return x.cal.t(W,U)}function o(x){return x.grid?x.grid.rows.data().map(W=>{const U={};for(const j of Object.keys(W))j!==E&&(U[j]=u(W[j]));return U}):x.pending.map(W=>({...W}))}function y(x,W){return x.valueAs==="arrays"?W.map(U=>x.fields.map(j=>U[j]===void 0?null:U[j])):W}function V(x,W){if(!Array.isArray(W))return[];const U=[];for(const j of W)if(Array.isArray(j)){const Z={};x.fields.forEach((ae,re)=>{Z[ae]=j[re]===void 0?null:j[re]}),U.push(Z)}else C(j)&&U.push({...j});return U}function s(x,W){x.mute+=1;try{return W()}finally{x.mute-=1}}function d(x,W,U){const j=o(x).find(Z=>String(Z[x.rowKey])===String(W));return!j||j[U]===void 0?null:j[U]}function i(x){const W=o(x);for(const U of x.mapped){const j=W.find(ae=>String(ae[x.rowKey])===String(U.row)),Z=j&&j[U.col]!==void 0?j[U.col]:null;U.record.value=Z,U.record.item.value=Z}}function m(x,W,U){if(typeof U!="number")return U;const j=x.grid.rows.get(0);let Z=null;if(j&&j.key!=null)try{Z=x.grid.rows.value(j.key,W)}catch{Z=null}return C(Z)&&Object.hasOwn(Z,"amount")?{...Z,amount:U}:U}function k(x){const W=x.totals&&x.totals.row;if(!W||!x.grid||typeof x.grid.setPinnedRows!="function")return;const U=o(x),j={[x.rowKey]:I};for(const Z of W.fields){const ae=v(W.fns[Z],U.map(re=>re[Z]),{field:Z,rows:U});j[Z]=m(x,Z,ae)}W.labelField&&(j[W.labelField]=W.label!=null?W.label:P(x,"form.grid.total")),x.grid.setPinnedRows([j],{edge:"bottom"})}function w(x,W,U){const j=U[W],Z=x.columnSpecs.get(W)||{},ae=x.grid,re=String(U[x.rowKey]);let R=null;try{R=ae.validation.check(W,j,U)}catch{R=null}if(R)return R.message;const ee=C(Z.edit)?Z.edit:{},X=C(ee.props)?ee.props:{},ge=r(j);if(ge!==null){if(typeof X.min=="number"&&ge<X.min)return P(x,"form.validation.min",{min:X.min});if(typeof X.max=="number"&&ge>X.max)return P(x,"form.validation.max",{max:X.max})}if(typeof ee.validate=="function"){let $e;try{$e=ee.validate({value:j,row:ae.rows.byKey(re),column:ae.columns.get(W),grid:ae,data:U})}catch{$e="Invalid value"}if(typeof $e=="string")return $e}return null}function f(x){const W=[];return x.grid&&(o(x).forEach((j,Z)=>{for(const ae of x.fields){const re=w(x,ae,j);re&&W.push({key:String(j[x.rowKey]),field:ae,row:Z+1,message:re})}}),x.invalid=new Map(W.map(j=>[`${j.key}\0${j.field}`,j])),_(x)),W}function $(x,W){let U=null;try{U=x.grid.columns.get(W)}catch{U=null}const j=x.columnSpecs.get(W)||{},Z=U&&U.title||j.title||j.header;return Z!=null&&Z!==""?String(Z):W}function b(x,W){return P(x,"form.grid.cellInvalid",{row:W.row,column:$(x,W.field),message:W.message})}function _(x){if(!x.grid||!x.gridEl)return;const W=new Set;for(const U of x.invalid.values()){const j=p(x.gridEl,U.key,U.field);j&&(W.add(j),j.classList.add(N),j.setAttribute("aria-invalid","true"),j.setAttribute("title",b(x,U)),j.getAttribute("tabindex")==null&&j.setAttribute("tabindex","-1"))}for(const U of x.marked)!W.has(U)&&U.classList&&U.classList.contains(N)&&(U.classList.remove(N),U.removeAttribute("aria-invalid"),U.removeAttribute("title"));x.marked=W}function n(x){if(!x.grid)return;const W=x.invalid.values().next().value||null,U=o(x),j=W?W.key:U.length?String(U[0][x.rowKey]):null,Z=W?W.field:x.fields[0];if(j==null||Z==null)return;try{x.grid.scroll.toCell(j,Z)}catch{}const ae=p(x.gridEl,j,Z);ae&&typeof ae.focus=="function"&&(ae.getAttribute("tabindex")==null&&ae.setAttribute("tabindex","-1"),ae.focus())}function O(x,W){const U=W.map(ae=>ae[x.rowKey]);if(U.length&&U.every(ae=>typeof ae=="number"))return Math.max(...U)+1;const j=new Set(U.map(String));let Z=W.length+1;for(;j.has(`row-${Z}`);)Z+=1;return`row-${Z}`}function ie(x,W,U){let j=U;if(!C(j)){const ae=typeof x.newRow=="function"?x.newRow(W.map(re=>({...re}))):x.newRow;j=C(ae)?ae:{}}const Z={};for(const ae of x.fields)Z[ae]=null;return Object.assign(Z,j),(Z[x.rowKey]==null||W.some(ae=>String(ae[x.rowKey])===String(Z[x.rowKey])))&&(Z[x.rowKey]=O(x,W)),Z}function F(x,W,U){const j=String(W.row);if(U.type==="cellEdit"){const ae=String(U.key)===j&&U.colId===W.col;return{touched:ae,value:ae?U.value:void 0}}if(U.type==="rowAdd"){const ae=String(U.row[x.rowKey])===j;return{touched:ae,value:ae&&U.row[W.col]!==void 0?U.row[W.col]:null}}return{touched:String(U.key)===j,value:null}}function se(x,W,U){const{cal:j,record:Z}=x,ae=j.emitter,re=[ae.emitBefore("beforeChange",{name:Z.item.name,value:y(x,U),previousValue:Z.value,item:Z.item,change:W},"user")];for(const R of x.mapped){const ee=F(x,R,W);ee.touched&&re.push(ae.emitBefore("beforeChange",{name:R.prop,value:ee.value,previousValue:R.record.value,item:R.record.item,change:W},"user"))}return re.some(R=>R&&typeof R.then=="function")?Promise.all(re).then(R=>R.every(ee=>ee!==!1)):re.every(R=>R!==!1)}function le(x,W,U,j){const{cal:Z,record:ae,hooks:re}=x,R=y(x,o(x));ae.value=R,ae.item.value=R,i(x),k(x),re.clearError();const ee=ae.validation&&ae.validation.valid===!1;(x.invalid.size>0||ae.item.validationMode==="change")&&f(x),Z.emitter.emit("change",{name:ae.item.name,value:R,previousValue:U,item:ae.item,change:W});for(const X of x.mapped){const ge=j.get(X.prop);X.record.value!==ge&&F(x,X,W).touched&&Z.emitter.emit("change",{name:X.prop,value:X.record.value,previousValue:ge,item:X.record.item,change:W})}re.applyRules(),(ae.item.validationMode==="change"||ee)&&re.validateItem()}function ke(x){return{rows:x.record.value,mapped:new Map(x.mapped.map(W=>[W.prop,W.record.value]))}}function ce(x,W){if(!x.grid||!x.editable())return null;const U=o(x),j=ie(x,U,W),Z=String(j[x.rowKey]),ae={type:"rowAdd",key:Z,row:{...j}},re=ke(x),R=X=>{if(!X)return null;const ge=s(x,()=>x.grid.rows.apply({add:[j]}));return ge&&ge.rejected&&ge.rejected.length?null:(le(x,ae,re.rows,re.mapped),Z)},ee=se(x,ae,[...U,j]);return ee&&typeof ee.then=="function"?ee.then(R):R(ee)}function B(x,W){if(!x.grid||!x.editable())return[];const U=[];for(const j of[].concat(W)){const Z=String(j),ae=o(x);if(!ae.some($e=>String($e[x.rowKey])===Z))continue;const re={type:"rowRemove",key:Z},R=ke(x),ee=ae.filter($e=>String($e[x.rowKey])!==Z),X=$e=>{$e&&(s(x,()=>x.grid.rows.apply({remove:[Z]})),x.activeKey===Z&&(x.activeKey=null),le(x,re,R.rows,R.mapped))},ge=se(x,re,ee);ge&&typeof ge.then=="function"?ge.then(X):X(ge),U.push(Z)}return U}function be(x){let W=[];try{W=x.grid.selection.keys()}catch{W=[]}return W.length?W.map(String):x.activeKey!=null?[x.activeKey]:[]}function q(x){const W=x.cal.doc,U=W.createElement("div");U.className="lat-form__grid-controls",U.setAttribute("role","toolbar"),U.setAttribute("aria-label",P(x,"form.grid.rowControls"));const j=(Z,ae,re)=>{const R=W.createElement("button");return R.type="button",R.className=`lat-form__grid-btn lat-form__grid-${Z}`,R.textContent=ae,R.setAttribute("aria-label",ae),R.addEventListener("click",re),U.appendChild(R),R};return x.addBtn=j("add",P(x,"form.grid.addRow"),()=>{const Z=ce(x);Z!=null&&typeof Z=="string"&&(x.activeKey=Z)}),x.delBtn=j("delete",P(x,"form.grid.deleteRow"),()=>{B(x,be(x))}),U}function D(x,W,U){if(!C(x))return null;const j=W.filter(re=>z.has((U.get(re)||{}).type));let Z=null,ae=null;if(x.row){const re=x.row===!0||typeof x.row=="function"||typeof x.row=="string"?{fn:x.row===!0?void 0:x.row}:x.row,R=C(re.columns)&&!Array.isArray(re.columns)?re.columns:null,ee=Array.isArray(re.columns)?re.columns.map(String):R?Object.keys(R):j,X={};for(const ge of ee)X[ge]=h(R&&R[ge]!==void 0?R[ge]:re.fn);Z={fields:ee,fns:X,label:re.label,labelField:re.labelColumn!=null?String(re.labelColumn):W.find(ge=>!ee.includes(ge))||null}}if(x.column){const re=x.column===!0||typeof x.column=="function"||typeof x.column=="string"?{fn:x.column===!0?void 0:x.column}:x.column;ae={fn:h(re.fn),fields:Array.isArray(re.columns)?re.columns.map(String):j,title:re.title,column:C(re.column)?re.column:{}}}return Z||ae?{row:Z,column:ae}:null}function J(x){const W=x.createGrid;if(typeof W!="function"){console.warn(`lattice-form: a "grid" item needs createGrid — pass it on the item or the form config: { type: 'grid', createGrid, … }.`);return}const U=x.props,j=x.columnDefs.map(re=>C(re)?re.edit===void 0?re:{...re,edit:l(re.edit,x.editable)}:re);if(x.totals&&x.totals.column){const re=x.totals.column;j.push({id:E,field:E,title:re.title!=null?re.title:x.say("form.grid.total"),sort:!1,...re.column,value:{deps:"*",compute:R=>v(re.fn,re.fields.map(ee=>R[ee]),{row:R})}})}const Z={...C(U.gridOptions)?U.gridOptions:{},rowKey:x.rowKey,columns:j,rows:x.pending,density:x.density},ae=W(x.gridEl,Z);x.grid=ae,x.pending=[];for(const re of x.columnDefs){const R=c(re);R&&!x.columnSpecs.has(R)&&x.columnSpecs.set(R,C(re)?re:{field:R})}ae.on("beforeEdit",re=>{if(x.mute>0||re.defaultPrevented)return;if(!x.editable()){re.preventDefault("readOnly");return}const R=o(x),ee=R.findIndex(ge=>String(ge[x.rowKey])===String(re.key));if(ee<0||!re.changes.length)return;const X=[];for(const ge of re.changes){const $e={type:"cellEdit",key:String(re.key),colId:ge.colId,value:u(ge.newValue),oldValue:u(ge.oldValue)},K=R.map((he,Ee)=>Ee===ee?{...he,[ge.colId]:$e.value}:he);X.push(se(x,$e,K))}if(X.some(ge=>ge&&typeof ge.then=="function"))return Promise.all(X).then(ge=>{ge.some($e=>$e===!1)&&re.preventDefault("prevented")});X.some(ge=>ge===!1)&&re.preventDefault("prevented")}),ae.on("cell:changed",re=>{if(x.mute>0)return;const R={type:"cellEdit",key:String(re.key),colId:re.colId,value:u(re.value),oldValue:u(re.oldValue)},ee={rows:x.record.value,mapped:new Map(x.mapped.map(X=>[X.prop,X.record.value]))};le(x,R,ee.rows,ee.mapped)}),ae.on("render:done",()=>_(x)),ae.on("cell:clicked",re=>{re&&re.key!=null&&(x.activeKey=String(re.key))}),x.gridEl.addEventListener("focusin",re=>{let R=re.target;for(;R&&R!==x.gridEl;){const ee=R.getAttribute&&R.getAttribute("data-key");if(ee!=null&&ee!==""){x.activeKey=ee;return}R=R.parentNode}}),k(x)}function ne(x,W){const U=W.doc,j=x.props||{},Z=U.createElement("div");Z.className="lat-form__grid",Z.setAttribute("role","group"),x.label!=null&&x.label!==""&&Z.setAttribute("aria-label",String(x.label));const ae=x.height==null?G:x.height,re=ae==="100%";Z.style.width="100%",re&&(Z.style.flex="1 1 auto",Z.style.minHeight="0");const R=Array.isArray(j.columns)?j.columns:[],ee=R.map(c).filter(he=>he!=null),X=new Map;R.forEach(he=>{const Ee=c(he);Ee&&X.set(Ee,C(he)?he:{field:Ee})});const ge={cal:W,item:x,props:j,el:Z,record:null,hooks:null,grid:null,gridEl:null,columnDefs:R,columnSpecs:X,fields:ee,rowKey:j.rowKey!=null?String(j.rowKey):"id",valueAs:j.valueAs==="arrays"?"arrays":"rows",valueRows:j.valueRows!==!1,createGrid:typeof j.createGrid=="function"?j.createGrid:W.model.createGrid,density:W.model.density,newRow:j.newRow,totals:null,mapped:[],pending:[],mute:0,invalid:new Map,marked:new Set,activeKey:null,readOnly:!1,disabled:!1,editable:()=>!ge.readOnly&&!ge.disabled,say:(he,Ee)=>P(ge,he,Ee)};ge.totals=D(j.totals,ee,X),ge.pending=V(ge,x.value),Z.__latGrid=ge;const $e=U.createElement("div");$e.className="lat-form__grid-host",$e.style.width="100%",re?($e.style.flex="1 1 auto",$e.style.minHeight="0"):$e.style.height=e(ae),ge.gridEl=$e,Z.appendChild($e),J(ge),j.rowControls===!0&&Z.appendChild(q(ge));let K=!1;return Z.addEventListener("focusin",()=>{K||(K=!0,oe(Z,U,"focus"))}),Z.addEventListener("focusout",he=>{Z.contains(he.relatedTarget)||(K=!1,oe(Z,U,"blur"))}),Z}function oe(x,W,U){const j=W&&W.defaultView,Z=j&&j.Event,ae=Z?new Z(U,{bubbles:!0}):{type:U,bubbles:!0,cancelable:!1,defaultPrevented:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){}};x.dispatchEvent(ae)}function ve(x,W){return{kind:"mapped",custom:!0,read(){return d(x,W.row,W.col)},write(U,j){x.grid&&(s(x,()=>x.grid.edit.setCells([{key:String(W.row),colId:W.col,value:j}])),pe(x))},state(){},validate(){if(!x.grid)return null;const U=o(x).find(Z=>String(Z[x.rowKey])===String(W.row));if(!U)return null;const j=w(x,W.col,U);return j?{code:"cell",message:j}:null},focus(){if(!x.grid)return;try{x.grid.scroll.toCell(String(W.row),W.col)}catch{}const U=p(x.gridEl,String(W.row),W.col);U&&typeof U.focus=="function"&&(U.getAttribute("tabindex")==null&&U.setAttribute("tabindex","-1"),U.focus())}}}function pe(x){const W=y(x,o(x));x.record.value=W,x.record.item.value=W,i(x),k(x),x.invalid=new Map,_(x)}H("grid",{kind:"grid",build:ne,read(x){const W=x.__latGrid;return y(W,o(W))},write(x,W){const U=x.__latGrid,j=V(U,W);if(!U.grid){U.pending=j;return}s(U,()=>U.grid.rows.load(j)),U.invalid=new Map,i(U),k(U),_(U)},state(x,W){const U=x.__latGrid;U.readOnly=W.readOnly===!0,U.disabled=W.disabled===!0,U.readOnly?x.setAttribute("aria-readonly","true"):x.removeAttribute("aria-readonly"),x.toggleAttribute("inert",U.disabled),x.inert=U.disabled,U.disabled?x.setAttribute("aria-disabled","true"):x.removeAttribute("aria-disabled");const j=!U.editable();for(const Z of[U.addBtn,U.delBtn])Z&&(Z.disabled=j)},validate(x,W){const U=x.__latGrid;if(!U.grid)return null;const j=f(U);return W.required===!0&&o(U).length===0?{code:"required",message:P(U,"form.grid.required")}:j.length?{code:"cell",message:b(U,j[0])}:null},focus(x){n(x.__latGrid)},blur(x){const W=x.ownerDocument&&x.ownerDocument.activeElement;W&&x.contains(W)&&typeof W.blur=="function"&&W.blur()},density(x,W){const U=x.__latGrid;if(U.density=W,U.grid&&typeof U.grid.set=="function")try{U.grid.set("density",W)}catch{}},connect(x,W,U){const j=x.control.__latGrid;j.record=x,j.hooks=U;const Z=C(j.props.fields)?j.props.fields:{};for(const ae of Object.keys(Z)){const re=Z[ae];if(!C(re)||re.row==null||re.col==null||W.items.has(ae))continue;const R={prop:ae,row:String(re.row),col:String(re.col),record:null},ee=ve(j,R),X=d(j,R.row,R.col);R.record={item:{kind:"item",name:ae,type:"grid",value:X,label:void 0,disabled:!1,readOnly:!1,required:!1,validation:null,validationMode:"submit",props:{},mappedFrom:x.item.name},el:x.el,control:x.control,controlWrap:null,def:ee,value:X,hidden:!1,validation:{pristine:!0,valid:null,code:null,message:null},validationEl:W.doc.createElement("div"),preEl:null,tooltipId:null,mapped:!0},j.mapped.push(R),W.items.set(ae,R.record)}x.mapped=j.mapped.map(ae=>ae.record),x.valueRows=j.valueRows,x.control.__latGridApi={addRow:ae=>ce(j,ae),removeRows:ae=>B(j,ae),grid:()=>j.grid}},destroy(x){const W=x.__latGrid;W&&W.grid&&typeof W.grid.destroy=="function"&&W.grid.destroy(),W&&(W.grid=null)}})}),Ie("packages/modules/form/controls/slider.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,E=0,I=100,z=1;function N(f,$,b){return Math.min(Math.max(f,$),b)}function G(f,$,b){return b>0?$+Math.round((f-$)/b)*b:f}function C(f){const $=typeof f.min=="number"&&Number.isFinite(f.min)?f.min:E;let b=typeof f.max=="number"&&Number.isFinite(f.max)?f.max:I;const _=typeof f.step=="number"&&Number.isFinite(f.step)&&f.step>0?f.step:z;return b<=$&&(b=$+_),{min:$,max:b,step:_}}function A(f,$,b,_){const n=Number(f),O=Number.isFinite(n)?n:$;return N(G(O,$,_),$,b)}function r(f,$,b,_){const n=Array.isArray(f)&&f.length>=2?f:[$,b];let O=A(n[0],$,b,_),ie=A(n[1],$,b,_);if(O>ie){const F=O;O=ie,ie=F}return[O,ie]}function u(f){return f.props&&typeof f.props=="object"?f.props:{}}function v(f){return u(f).range===!0}function h(f){return f.mode==="vertical"}function c(f){return u(f).inverse===!0}function l(f){return f.tooltip!==!1}function t(f){const $=u(f).tickTemplate;return typeof $=="function"?$:b=>String(b)}function p(f,$,b){const _=$&&$.defaultView,n=_&&_.Event,O=n?new n(b,{bubbles:!0}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};f.dispatchEvent(O)}function P(f,$){const b=N(($-f.min)/(f.max-f.min),0,1);return f.inverse?1-b:b}function o(f,$){const b=f.inverse?1-$:$;return N(G(f.min+b*(f.max-f.min),f.min,f.step),f.min,f.max)}function y(f,$,b,_){const n=f.vertical?$.height>0?($.bottom-_)/$.height:0:$.width>0?(b-$.left)/$.width:0;return N(n,0,1)}function V(f,$){const b=f.isRange?f.value[$]:f.value,_=`${(P(f,b)*100).toFixed(4)}%`,n=f.thumbs[$];f.vertical?n.style.bottom=_:n.style.left=_;const O=f.template(b);n.setAttribute("aria-valuenow",String(b)),n.setAttribute("aria-valuetext",O);const ie=f.tooltips[$];ie&&(ie.textContent=O)}function s(f){const $=f.isRange?P(f,f.value[0]):Math.min(P(f,f.min),P(f,f.value)),b=f.isRange?P(f,f.value[1]):Math.max(P(f,f.min),P(f,f.value)),_=`${(Math.min($,b)*100).toFixed(4)}%`,n=`${(Math.abs(b-$)*100).toFixed(4)}%`;f.vertical?(f.fill.style.bottom=_,f.fill.style.height=n):(f.fill.style.left=_,f.fill.style.width=n)}function d(f){const $=f.doc;for(;f.ticksEl.firstChild;)f.ticksEl.removeChild(f.ticksEl.firstChild);if(!f.tick&&!f.majorTick){f.ticksEl.hidden=!0;return}f.ticksEl.hidden=!1;const b=new Set;if(f.majorTick>0)for(let n=f.min;n<=f.max+1e-9;n+=f.majorTick)b.add(Math.round(n/f.step)*f.step);const _=(n,O)=>{const ie=N(n,f.min,f.max),F=`${(P(f,ie)*100).toFixed(4)}%`,se=$.createElement("span");if(se.className=O?"lat-form__slider-tick lat-form__slider-tick--major":"lat-form__slider-tick",se.setAttribute("aria-hidden","true"),f.vertical?se.style.bottom=F:se.style.left=F,f.ticksEl.appendChild(se),O){const le=$.createElement("span");le.className="lat-form__slider-tick-label",le.setAttribute("aria-hidden","true"),le.textContent=f.template(ie),f.vertical?le.style.bottom=F:le.style.left=F,f.ticksEl.appendChild(le)}};if(f.tick>0)for(let n=f.min;n<=f.max+1e-9;n+=f.tick){const O=Math.min(f.max,n);b.has(Math.round(O/f.step)*f.step)||_(O,!1)}for(const n of b)_(Math.min(f.max,Math.max(f.min,n)),!0)}function i(f){for(let $=0;$<f.thumbs.length;$++)V(f,$);s(f)}function m(f,$,b){const _=f.tooltips[$];_&&(b?_.classList.add("lat-form__slider-tooltip--visible"):_.classList.remove("lat-form__slider-tooltip--visible"))}function k(f,$,b){const _=N(G(b,f.min,f.step),f.min,f.max);if(!f.isRange){f.value=_,i(f);return}const n=f.value.slice();$===0?n[0]=Math.min(_,n[1]):n[1]=Math.max(_,n[0]),f.value=n,i(f)}function w(f,$){return f.isRange?f.value[$]:f.value}H("slider",{kind:"field",build(f,$){const b=$.doc,_=typeof $.t=="function"?$.t:e,{min:n,max:O,step:ie}=C(f),F=v(f),se=h(f),le=c(f),ke=b.createElement("div");ke.className=se?"lat-form__slider lat-form__slider--vertical":"lat-form__slider";const ce=b.createElement("div");ce.className="lat-form__slider-track",ke.appendChild(ce);const B=b.createElement("div");B.className="lat-form__slider-fill",ce.appendChild(B);const be=b.createElement("div");be.className="lat-form__slider-ticks",be.setAttribute("aria-hidden","true"),ce.appendChild(be);const q={doc:b,t:_,min:n,max:O,step:ie,isRange:F,vertical:se,inverse:le,tooltipOn:l(f),template:t(f),tick:Number(u(f).tick)>0?Number(u(f).tick):0,majorTick:Number(u(f).majorTick)>0?Number(u(f).majorTick):0,value:F?r(f.value,n,O,ie):A(f.value,n,O,ie),track:ce,fill:B,ticksEl:be,thumbs:[],tooltips:[],disabled:!1,readOnly:!1,dragging:null,disposers:[]};ke.__latSlider=q;const D=F?[_("form.slider.low"),_("form.slider.high")]:[null];for(let U=0;U<D.length;U++){const j=b.createElement("div");j.className="lat-form__slider-thumb",j.setAttribute("role","slider"),j.setAttribute("aria-orientation",se?"vertical":"horizontal"),j.setAttribute("aria-valuemin",String(n)),j.setAttribute("aria-valuemax",String(O));const Z=f.label!=null&&f.label!==""?String(f.label):_("form.slider");j.setAttribute("aria-label",D[U]!=null?`${Z} – ${D[U]}`:Z),j.tabIndex=0,ce.appendChild(j),q.thumbs.push(j);let ae=null;q.tooltipOn&&(ae=b.createElement("span"),ae.className="lat-form__slider-tooltip",ae.setAttribute("aria-hidden","true"),j.appendChild(ae)),q.tooltips.push(ae)}d(q),i(q);const J=()=>{p(ke,b,"change")},ne=()=>{p(ke,b,"input")},oe=(U,j)=>{if(q.disabled||q.readOnly)return;const Z=w(q,j);if(U.key==="ArrowRight"||U.key==="ArrowUp")k(q,j,Z+q.step);else if(U.key==="ArrowLeft"||U.key==="ArrowDown")k(q,j,Z-q.step);else if(U.key==="PageUp")k(q,j,Z+q.step*10);else if(U.key==="PageDown")k(q,j,Z-q.step*10);else if(U.key==="Home")k(q,j,q.min);else if(U.key==="End")k(q,j,q.max);else return;U.preventDefault(),w(q,j)!==Z&&(ne(),J())},ve=(U,j)=>{q.disabled||q.readOnly||(U.preventDefault(),q.dragging=j,q.dragStartValue=w(q,j),m(q,j,!0),q.thumbs[j].focus())},pe=U=>{if(q.disabled||q.readOnly||U.target!==ce&&U.target!==B)return;const j=ce.getBoundingClientRect(),Z=o(q,y(q,j,U.clientX,U.clientY)),ae=q.isRange?Math.abs(Z-q.value[0])<=Math.abs(Z-q.value[1])?0:1:0;q.dragging=ae,q.dragStartValue=w(q,ae),k(q,ae,Z),ne(),m(q,ae,!0),q.thumbs[ae].focus()},x=U=>{if(q.dragging==null)return;const j=ce.getBoundingClientRect(),Z=o(q,y(q,j,U.clientX,U.clientY));Z!==w(q,q.dragging)&&(k(q,q.dragging,Z),ne())},W=()=>{if(q.dragging==null)return;const U=q.dragging;q.dragging=null,(!q.focused||q.focused!==U)&&m(q,U,!1),w(q,U)!==q.dragStartValue&&J()};return ce.addEventListener("pointerdown",pe),b.addEventListener("pointermove",x),b.addEventListener("pointerup",W),q.disposers.push(()=>ce.removeEventListener("pointerdown",pe),()=>b.removeEventListener("pointermove",x),()=>b.removeEventListener("pointerup",W)),q.thumbs.forEach((U,j)=>{const Z=ee=>{ee.stopPropagation(),ve(ee,j)},ae=ee=>oe(ee,j),re=()=>{q.focused=j,m(q,j,!0)},R=()=>{q.focused===j&&(q.focused=null),q.dragging!==j&&m(q,j,!1)};U.addEventListener("pointerdown",Z),U.addEventListener("keydown",ae),U.addEventListener("focus",re),U.addEventListener("blur",R),q.disposers.push(()=>U.removeEventListener("pointerdown",Z),()=>U.removeEventListener("keydown",ae),()=>U.removeEventListener("focus",re),()=>U.removeEventListener("blur",R))}),ke},read(f){const $=f.__latSlider;return $?$.value:E},write(f,$){const b=f.__latSlider;b&&(b.value=b.isRange?r($,b.min,b.max,b.step):A($,b.min,b.max,b.step),i(b))},state(f,$){const b=f.__latSlider;if(b){b.disabled=$.disabled===!0,b.readOnly=$.readOnly===!0,f.setAttribute("data-disabled",String(b.disabled)),f.setAttribute("data-readonly",String(b.readOnly));for(const _ of b.thumbs)_.tabIndex=b.disabled?-1:0,b.disabled?_.setAttribute("aria-disabled","true"):_.removeAttribute("aria-disabled"),b.readOnly?_.setAttribute("aria-readonly","true"):_.removeAttribute("aria-readonly")}},focus(f){const $=f.__latSlider;$&&$.thumbs[0]&&typeof $.thumbs[0].focus=="function"&&$.thumbs[0].focus()},blur(f){const $=f.__latSlider;if($)for(const b of $.thumbs)typeof b.blur=="function"&&b.blur()},destroy(f){const $=f.__latSlider;if($)for(const b of $.disposers.splice(0))b()},live:{min(f,$){const b=f.__latSlider;if(b){b.min=typeof $=="number"&&Number.isFinite($)?$:E,b.max<=b.min&&(b.max=b.min+b.step);for(const _ of b.thumbs)_.setAttribute("aria-valuemin",String(b.min));d(b),i(b)}},max(f,$){const b=f.__latSlider;if(b){b.max=typeof $=="number"&&Number.isFinite($)&&$>b.min?$:b.min+b.step;for(const _ of b.thumbs)_.setAttribute("aria-valuemax",String(b.max));d(b),i(b)}},step(f,$){const b=f.__latSlider;b&&(b.step=typeof $=="number"&&Number.isFinite($)&&$>0?$:z,d(b),i(b))},tick(f,$){const b=f.__latSlider;b&&(b.tick=Number($)>0?Number($):0,d(b))},majorTick(f,$){const b=f.__latSlider;b&&(b.majorTick=Number($)>0?Number($):0,d(b))}}})}),Ie("packages/modules/form/controls/index.js",function(S,te){"use strict";const xe=te("packages/modules/form/controls/input.js"),H=te("packages/modules/form/controls/number.js"),L=te("packages/modules/form/controls/textarea.js"),e=te("packages/modules/form/controls/checkbox.js"),E=te("packages/modules/form/controls/button.js"),I=te("packages/modules/form/controls/buttons.js"),z=te("packages/modules/form/controls/text.js"),N=te("packages/modules/form/controls/combo.js"),G=te("packages/modules/form/controls/select.js"),C=te("packages/modules/form/controls/listbox.js"),A=te("packages/modules/form/controls/radiogroup.js"),r=te("packages/modules/form/controls/checkboxgroup.js"),u=te("packages/modules/form/controls/toggle.js"),v=te("packages/modules/form/controls/datepicker.js"),h=te("packages/modules/form/controls/time.js"),c=te("packages/modules/form/controls/daterange.js"),l=te("packages/modules/form/controls/file.js"),t=te("packages/modules/form/controls/richtext.js"),p=te("packages/modules/form/controls/rating.js"),P=te("packages/modules/form/controls/stage.js"),o=te("packages/modules/form/controls/chips.js"),y=te("packages/modules/form/controls/otp.js"),V=te("packages/modules/form/controls/color.js"),s=te("packages/modules/form/controls/barcode.js"),d=te("packages/modules/form/controls/speeddial.js"),i=te("packages/modules/form/controls/container.js"),m=te("packages/modules/form/controls/avatar.js"),k=te("packages/modules/form/controls/togglegroup.js"),w=te("packages/modules/form/controls/grid.js"),f=te("packages/modules/form/controls/slider.js")}),Ie("packages/modules/form/create.js",function(S,te){"use strict";Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return W}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return U}});const xe=te("packages/modules/form/styles.js"),H=xe.NS,L=xe.injectStyles,e=te("packages/modules/form/model.js"),E=e.resolveConfig,I=e.DENSITIES,z=e.cssSize,N=e.resolveLabelPosition,G=te("packages/modules/form/view.js"),C=G.markValidation,A=G.mount,r=G.runValidation,u=G.validateItem,v=G.wizardBack,h=G.wizardGoTo,c=G.wizardNext,l=G.VALIDATED_KINDS,t=G.applyCss,p=G.applyItemWidth,P=G.applyItemHeight,o=G.applyItemLabelPosition,y=G.applyItemLabelWidth,V=te("packages/modules/form/emitter.js"),s=V.Emitter,d=V.FORM_EVENTS,m=te("packages/modules/form/messages.js").createTranslator,k=te("packages/modules/form/bind.js"),w=k.resolveBind,f=k.applyBinding,b=te("packages/modules/form/rules.js").applyRules,n=te("packages/modules/form/state.js").syncRecordState,O=te("packages/modules/form/controls/container.js"),ie=O.attachToContainer,F=O.attachHtmlToContainer,se=O.getContainerWidget,ke=te("packages/modules/form/controls/button.js").setButtonCaption,B=te("packages/modules/form/ready.js").createReadySignal,q=te("packages/dom/src/watermark.js").mountViewWatermark,D=te("packages/modules/form/controls/index.js"),J=new Set;function ne(j,Z){J.has(j)||(J.add(j),console.warn("[lattice]",Z))}const oe=new Set(["min","max","step"]);function ve(j,Z){const ae=j.item;switch(Z){case"label":return ae.label!=null?String(ae.label):null;case"helpMessage":return ae.helpMessage!=null?String(ae.helpMessage):null;case"placeholder":return ae.placeholder!=null?String(ae.placeholder):null;case"labelPosition":return j.labelPosition;case"hiddenLabel":return ae.hiddenLabel===!0;case"labelWidth":return j.labelWidth!=null?j.labelWidth:null;case"required":return ae.required===!0;case"readOnly":return ae.readOnly===!0;case"disabled":return ae.disabled===!0;case"hidden":return j.hidden===!0;case"width":return ae.width!=null?ae.width:null;case"height":return ae.height!=null?ae.height:null;case"padding":return ae.padding!=null?ae.padding:null;case"min":return ae.min!=null?ae.min:null;case"max":return ae.max!=null?ae.max:null;case"step":return ae.step!=null?ae.step:null;case"options":return ae.options!=null?ae.options:null;case"validation":return ae.validation!=null?ae.validation:null;case"errorMessage":return ae.errorMessage!=null?ae.errorMessage:null;case"css":return ae.css!=null?ae.css:null;default:if(ae.props&&Object.hasOwn(ae.props,Z))return ae.props[Z];ne(`form.item.get.unknown:${Z}`,`lattice-form: getItem(name).get("${Z}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`);return}}function pe(j,Z,ae,re){const R=Z.item,ee=Z.facade;switch(ae){case"label":{const X=re==null?"":String(re);R.label=X,Z.def.kind==="button"?ke(Z.control,X):Z.labelEl?Z.labelEl.textContent=X:Z.placeholderEl&&X!==""&&Z.placeholderEl.setAttribute("aria-label",X);return}case"helpMessage":{const X=re==null?null:String(re);if(R.helpMessage=X,X==null||X===""){Z.helpEl&&(Z.helpEl.remove(),Z.helpEl=null);return}if(Z.helpEl)Z.helpEl.textContent=X;else{const ge=j.doc.createElement("div");ge.className=`${H}__help`,ge.textContent=X,Z.controlWrap.appendChild(ge),Z.helpEl=ge}return}case"placeholder":{R.placeholder=re,Z.placeholderBase=re==null?"":String(re),Z.def.live&&typeof Z.def.live.placeholder=="function"&&Z.def.live.placeholder(Z.control,re,R,Z),b(j);return}case"labelPosition":{o(Z,N(re)),R.labelPosition=Z.labelPosition;return}case"labelWidth":{R.labelWidth=re,y(Z,re);return}case"hiddenLabel":{R.hiddenLabel=re===!0,o(Z,R.hiddenLabel?"hidden":Z.labelPositionBase);return}case"required":{R.required=re===!0,b(j);return}case"readOnly":{R.readOnly=re===!0,n(Z);return}case"disabled":{R.disabled=re===!0,n(Z);return}case"hidden":{re===!0?ee.hide():ee.show();return}case"width":{R.width=re,p(Z,re);return}case"height":{R.height=re,P(Z,re);return}case"padding":{R.padding=re==null?null:z(re),Z.def.kind==="container"?Z.control.style.padding=R.padding==null?"":R.padding:Z.el.style.padding=R.padding==null?"":R.padding;return}case"css":{R.css=re,t(Z.el,re);return}case"validation":{R.validation=re;return}case"errorMessage":{R.errorMessage=re;return}case"options":{ee.setOptions(re);return}default:{const X=Z.def.live;if(X&&typeof X[ae]=="function"){oe.has(ae)?R[ae]=re:(R.props||(R.props={}),R.props[ae]=re),X[ae](Z.control,re,R,Z);return}ne(`form.item.set.unknown:${ae}`,`lattice-form: getItem(name).set() was given "${ae}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`)}}}function x(j){if(Array.isArray(j))return j.map(x);if(j==null||typeof j!="object"||typeof j.nodeType=="number"||Object.getPrototypeOf(j)!==Object.prototype)return j;const Z=j.type==="buttons"?"buttons":j.type==="speeddial"?"speedDialItems":null,ae=Z!=null&&Array.isArray(j.items),re={};for(const R of Object.keys(j))ae&&R==="items"||(re[R]=x(j[R]));return ae&&(re[Z]=j.items.map(x)),re}function W(j,Z={}){const ae=j&&j.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,re=w(Z);let R=Z;if(re){if(R={...Z},R.density===void 0){const g=re.density();g!=null&&(R.density=g)}if(!(Array.isArray(R.rows)&&R.rows.length||Array.isArray(R.cols)&&R.cols.length)){const g=re.items();g.length&&(R.rows=[{items:g}])}}const ee=E(x(R)),X={el:j||null,doc:ae,model:ee,config:ee,items:new Map,order:[],emitter:new s,t:m(ee.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ge=T=>{if(T.kind==="fieldset")return T.facade||(T.facade={el:T.el,name:T.name,getValue(){},setValue(){return T.facade},show(){return T.hidden=!1,T.el.hidden=!1,T.facade},hide(){return T.hidden=!0,T.el.hidden=!0,T.facade},isVisible(){return!T.hidden},disable(){return T.facade},enable(){return T.facade},focus(){return typeof T.el.focus=="function"&&T.el.focus(),T.facade},blur(){return typeof T.el.blur=="function"&&T.el.blur(),T.facade},validate(){return!0},setLoading(){return T.facade},setOptions(){return T.facade},reload(){return T.facade},getLabel(){return T.label},setLabel(g){const Q=g==null?"":String(g);if(T.label=Q,T.legendEl)T.legendEl.textContent=Q;else{const M=X.doc.createElement("legend");M.className=`${H}__legend`,M.textContent=Q,T.el.insertBefore(M,T.el.firstChild),T.legendEl=M}return T.facade},setHelp(g){if(g==null||g==="")return T.helpEl&&(T.helpEl.remove(),T.helpEl=null),T.facade;const Q=String(g);if(T.helpEl)T.helpEl.textContent=Q;else{const M=X.doc.createElement("div");M.className=`${H}__help`,M.textContent=Q,T.el.appendChild(M),T.helpEl=M}return T.facade},set(g){if(g==null||typeof g!="object")return T.facade;for(const Q of Object.keys(g))Q==="label"?T.facade.setLabel(g[Q]):Q==="helpMessage"?T.facade.setHelp(g[Q]):ne(`form.item.set.unknown:${Q}`,`lattice-form: getItem(name).set() was given "${Q}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`);return T.facade},get(g){if(g==="label")return T.label!=null?T.label:null;if(g==="helpMessage")return T.helpEl?T.helpEl.textContent:null;ne(`form.item.get.unknown:${g}`,`lattice-form: getItem(name).get("${g}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`)},setPlaceholder(){return T.facade},getPlaceholder(){return null}}),T.facade;if(!T.facade&&(T.facade={el:T.el,item:T.item,name:T.item.name,get labelEffectivePosition(){return T.labelEffectivePosition},getValue(){return T.value},setValue(g){return T.def.write(T.control,g),T.value=T.def.read(T.control),T.item.value=T.value,b(X),T.facade},show(){return T.hidden=!1,T.el.hidden=!1,T.facade},hide(){return T.hidden=!0,T.el.hidden=!0,T.facade},isVisible(){return!(T.hidden||T.ruleHidden)},disable(){return T.item.disabled=!0,n(T),T.facade},enable(){return T.item.disabled=!1,n(T),T.facade},focus(){return typeof T.def.focus=="function"?T.def.focus(T.control):typeof T.control.focus=="function"&&T.control.focus(),T.facade},blur(){return typeof T.def.blur=="function"?T.def.blur(T.control):typeof T.control.blur=="function"&&T.control.blur(),T.facade},validate(){return u(X,T)},setLoading(g){return typeof T.def.setLoading=="function"&&T.def.setLoading(T.control,g===!0),T.facade},setOptions(g){const Q=T.control&&(T.control.__combo||T.control.__select);return Q&&typeof Q.setOptions=="function"&&(Q.setOptions(g),T.item.options=g),T.facade},reload(){const g=T.control&&(T.control.__combo||T.control.__select);return g&&typeof g.reload=="function"&&g.reload(),T.facade},getOptions(){const g=T.control&&T.control.__listbox;return g&&typeof g.getOptions=="function"?g.getOptions():void 0},addOption(g,Q){const M=T.control&&T.control.__listbox;return M&&typeof M.addOption=="function"&&M.addOption(g,Q),T.facade},removeOption(g){const Q=T.control&&T.control.__listbox;return Q&&typeof Q.removeOption=="function"&&Q.removeOption(g),T.facade},updateOption(g,Q){const M=T.control&&T.control.__listbox;return M&&typeof M.updateOption=="function"&&M.updateOption(g,Q),T.facade},filter(g){const Q=T.control&&T.control.__listbox;return Q&&typeof Q.filter=="function"&&Q.filter(g),T.facade},getLabel(){return T.item.label!=null?String(T.item.label):null},setLabel(g){return T.facade.set({label:g})},setHelp(g){return T.facade.set({helpMessage:g})},getPlaceholder(){return T.facade.get("placeholder")},setPlaceholder(g){return T.facade.set({placeholder:g})},set(g){if(g==null||typeof g!="object")return T.facade;for(const Q of Object.keys(g))pe(X,T,Q,g[Q]);return T.facade},get(g){return ve(T,g)}},T.def.kind==="container"&&(T.facade.attach=(g,Q)=>(ie(T.control,g,Q),T.facade),T.facade.attachHTML=g=>(F(X.doc,T.control,g),T.facade),T.facade.getWidget=()=>se(T.control)),T.def.kind==="grid")){const g=T.control.__latGridApi;T.facade.addRow=Q=>g.addRow(Q),T.facade.removeRows=Q=>g.removeRows(Q),T.facade.getGrid=()=>g.grid()}return T.facade};j&&ae&&L(ae);const $e=j&&typeof j.style.cssText=="string"?j.style.cssText:"",K=new Set(["field","toggle","display","grid"]),he={el:j||null,config:ee,getItem(T){const g=X.items.get(String(T));return g?ge(g):void 0},getValue(){const T={};for(const g of X.order)if(g.item.name!=null&&K.has(g.def.kind)&&(g.valueRows!==!1&&(T[g.item.name]=g.value),g.mapped))for(const Q of g.mapped)T[Q.item.name]=Q.value;return T},setValue(T){if(T==null||typeof T!="object")return he;for(const g of Object.keys(T)){const Q=X.items.get(g);Q&&ge(Q).setValue(T[g])}return he},clear(){for(const T of X.order)if(T.item.name!=null)if(T.def.kind==="field"){const g=T.item.props&&T.item.props.multiple===!0,Q=T.item.type==="togglegroup"?{}:T.item.type==="chips"?g?[]:null:T.item.type==="number"||T.item.type==="radiogroup"||T.item.type==="datepicker"||T.item.type==="stage"||T.item.type==="combo"&&!g?null:T.item.type==="rating"?0:T.item.type==="file"||T.item.type==="checkboxgroup"||(T.item.type==="select"||T.item.type==="combo")&&g?[]:"";T.value=Q,T.item.value=Q,T.def.write(T.control,Q)}else T.def.kind==="toggle"?(T.value=!1,T.item.value=!1,T.def.write(T.control,!1)):T.def.kind==="grid"&&(T.def.write(T.control,[]),T.value=T.def.read(T.control),T.item.value=T.value);return b(X),he},validate(){const T=[];let g=!0;for(const Q of X.order){if(Q.item.name==null||!l.has(Q.def.kind)||Q.item.disabled===!0||Q.ruleHidden===!0||Q.hidden===!0||(typeof Q.def.reset=="function"&&Q.def.reset(Q.control,Q.item),Q.item.required!==!0&&Q.item.validation==null&&typeof Q.def.validate!="function"&&Q.ruleRequired!==!0))continue;const M=r(X,Q);C(X,Q,M),M&&(g=!1,T.push({name:Q.item.name,rule:M.code,message:M.message}))}return X.emitter.emit("validated",{name:null,item:null,value:void 0,valid:g,failures:T}),g},forEach(T){for(const g of X.order)T(ge(g))},on(T,g){return T!=="*"&&!d.includes(T)?(console.warn(`lattice-form: "${T}" is not a form event and will never fire.`),()=>{}):X.emitter.on(T,g)},off(T,g){X.emitter.off(T,g)},setDensity(T){if(!I.includes(T))return he;ee.density=T,j&&j.setAttribute("data-density",T);for(const g of X.order)typeof g.def.density=="function"&&g.def.density(g.control,T);return he},setReadOnly(T){for(const g of X.order)g.item.readOnly=T===!0,n(g);return he},setDisabled(T){for(const g of X.order)g.item.disabled=T===!0,n(g);return he},setSpacing(T){const g=T==null?null:z(T);return ee.spacing=g,j&&(g==null?j.style.removeProperty("--lattice-form-item-gap"):j.style.setProperty("--lattice-form-item-gap",g)),he},isDirty(T){return T==null?X.dirty.size>0:X.dirty.has(String(T))},isConflicted(T){return T==null?X.conflicts.size>0:X.conflicts.has(String(T))},save(){const T=X.bound;if(!T)return!1;if(X.dirty.size===0)return!0;const g={};for(const a of X.dirty){const Y=he.getItem(a);Y&&(g[a]=Y.getValue())}const Q=T.save(g),M=a=>{if(!a)return!1;for(const Y of Object.keys(g))X.baseline[Y]=g[Y],X.dirty.delete(Y),X.conflicts.delete(Y);return!0};return Q&&typeof Q.then=="function"?Q.then(M):M(Q)},revert(){for(const T of X.dirty){if(!Object.hasOwn(X.baseline,T))continue;const g=X.items.get(T);g&&ge(g).setValue(X.baseline[T])}return X.dirty.clear(),X.conflicts.clear(),he},_bind(T){return f(X,he,T),he},_commit(T){for(const g of Object.keys(T||{}))X.baseline[g]=T[g],X.dirty.delete(g),X.conflicts.delete(g)},get steps(){return X.model.steps||[]},get activeStep(){return X.wizard?X.wizard.active:0},next(){return c(X)},back(){return v(X)},goToStep(T){return h(X,T)},__reapplyRules(){return b(X),he},destroy(){Ee.fail(new Error("lattice-grid: the form was destroyed before it became ready."));for(const g of X.disposers.splice(0))g();X.emitter.clear();const T=X.el;if(T){for(;T.firstChild;)T.removeChild(T.firstChild);T.classList.remove(H),T.removeAttribute("data-density"),T.removeAttribute("data-lattice-standalone"),T.style.cssText=$e,T.__latticeForm===he&&(T.__latticeForm=null)}X.items.clear(),X.order.length=0,X.dirty.clear(),X.conflicts.clear(),X.baseline={},X.bound=null}};j&&(j.__latticeForm=he),X.form=he,j&&ae&&(A(X),X.disposers.push(q(j,Z).destroy)),re&&f(X,he,re);const Ee=B();return Ee.settleSoon(),he.ready=Ee.promise,he}const U=W}),Ie("packages/modules/form/group.js",function(S,te){"use strict";Object.defineProperty(S,"GROUP_EVENTS",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return l}});const H=te("packages/modules/form/emitter.js").Emitter,e=te("packages/modules/form/bind-router.js").routerBinding,E=te("packages/modules/form/group-rules.js"),I=E.attachRuleResolver,z=E.detachRuleResolver,N=E.makeRuleResolver,G=E.reapplyMembers,C=Object.freeze(["change","validated"]),A=new Set;function r(t){const p={},P=t.getValue();for(const o of Object.keys(P))t.isDirty(o)===!0&&(p[o]=P[o]);return p}function u(t,p){A.has(t)||(A.add(t),console.warn("[lattice]",p))}const v=new WeakMap;function h(t,p){let P=v.get(t);if(!P){const o=t.destroy;P={original:o,watchers:new Set},v.set(t,P),t.destroy=function(){const V=v.get(t)||P;for(const s of[...V.watchers])s.detach(t);return o.call(t)}}P.watchers.add(p)}function c(t,p={}){const P=[],o=new Map,y=new Map,V=new H,s=p&&typeof p.bind=="object"&&p.bind.router!=null?p.bind:null,d=s?e(s):null,i=()=>{o.clear(),y.clear();for(const $ of P){const b=Object.keys($.form.getValue());for(const _ of b)o.has(_)?u(`form.group.duplicate-field:${_}`,`form group: the field "${_}" is owned by more than one form; the first one added wins.`):o.set(_,$);$.id!=null&&!y.has($.id)&&y.set($.id,$)}},m=N({owners:o,byId:y,warnOnce:u}),k=$=>{const b=P.findIndex(O=>O.form===$);if(b===-1)return!1;const[_]=P.splice(b,1);for(const O of _.unsubs)O();i();const n=v.get($);return n&&(n.watchers.delete(w),n.watchers.size===0&&(v.delete($),$.destroy=n.original)),z($),typeof $.__reapplyRules=="function"&&$.__reapplyRules(),G(P),!0},w={detach:k},f={get forms(){return P.map($=>$.form)},add($,b){if(!$||typeof $!="object"||typeof $.getValue!="function"||P.some(ie=>ie.form===$))return f;const _={form:$,id:b&&b.id,unsubs:[],lastFailures:[]};P.push(_),d&&typeof $._bind=="function"&&$._bind(d);const n=ie=>{V.emit("change",{form:$,name:ie.name,value:ie.value}),G(P)},O=ie=>{_.lastFailures=ie.failures||[],V.emit("validated",{form:$,valid:ie.valid})};return _.unsubs.push($.on("change",n)),_.unsubs.push($.on("validated",O)),h($,w),i(),I($,m),G(P),f},remove($){return k($),f},getValue(){const $={};for(const b of P)Object.assign($,b.form.getValue());return p.transform&&typeof p.transform.get=="function"?p.transform.get($):$},setValue($){if(p.transform&&typeof p.transform.set=="function")p.transform.set($);else if($!=null&&typeof $=="object")for(const b of Object.keys($)){const _=o.get(b);_&&_.form.setValue({[b]:$[b]})}return G(P),f},getItem($){const b=o.get(String($));return b?b.form.getItem($):void 0},validate(){let $=!0;const b=[];for(const _ of P){_.form.validate()===!1&&($=!1);for(const O of _.lastFailures||[])b.push({form:_.form,name:O.name})}if(!$){const _=b.find(n=>n.name!=null);if(_){const n=_.form.getItem(_.name);n&&(n.focus(),n.el&&typeof n.el.scrollIntoView=="function"&&n.el.scrollIntoView({block:"nearest"}))}}return $},setReadOnly($){for(const b of P)b.form.setReadOnly($===!0);return f},setDisabled($){for(const b of P)b.form.setDisabled($===!0);return f},clear(){for(const $ of P)$.form.clear();return f},reset(){for(const $ of P)typeof $.form.revert=="function"&&$.form.revert();return f},save(){if(!d)return!1;const $=P.map(O=>({member:O,changes:r(O.form)})),b={};for(const O of $)Object.assign(b,O.changes);if(!Object.keys(b).length)return!0;const _=d.save(b),n=O=>{if(!O)return!1;for(const ie of $)ie.member.form&&typeof ie.member.form._commit=="function"&&ie.member.form._commit(ie.changes);return!0};return _&&typeof _.then=="function"?_.then(n):n(_)},isDirty(){return P.some($=>$.form.isDirty()===!0)},on($,b){return $!=="*"&&!C.includes($)?(console.warn(`lattice-form: "${$}" is not a form group event and will never fire.`),()=>{}):V.on($,b)},off($,b){V.off($,b)},destroy(){for(;P.length;){const $=P[P.length-1].form;k($)}V.clear()}};if(Array.isArray(t))for(const $ of t)f.add($);else t&&typeof t=="object"&&typeof t.getValue=="function"&&f.add(t);return f}const l=c}),Ie("packages/modules/form/enhance.js",function(S,te){"use strict";Object.defineProperty(S,"itemForField",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"configForForm",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return A}});const H=te("packages/modules/form/create.js").createForm,L=Object.freeze(["text","email","password","url"]);function e(r){const u=r&&r.type?String(r.type).toLowerCase():"";return u==="submit"||u==="image"||r&&r.tagName==="BUTTON"&&u!=="button"}function E(r){if(!r||!r.name)return!1;const u=r&&r.type?String(r.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||r.tagName==="BUTTON")}function I(r,u){if(typeof r.getAttribute=="function"){const v=r.getAttribute("data-label");if(v!=null&&v!=="")return v;const h=r.getAttribute("aria-label");if(h!=null&&h!=="")return h}if(r.id&&typeof u.querySelector=="function"){const v=u.querySelector(`label[for="${r.id}"]`);if(v&&v.textContent!=null){const h=String(v.textContent).trim();if(h)return h}}return String(r.name||"")}function z(r){return r.type==="checkbox"?r.checked===!0:r.value==null?"":r.value}function N(r,u){if(e(r)||!E(r))return null;const v=r.type?String(r.type).toLowerCase():"text",h={type:"input",name:r.name,label:I(r,u),value:z(r)};if(v==="number")h.type="number",r.min!=null&&r.min!==""&&(h.min=Number(r.min)),r.max!=null&&r.max!==""&&(h.max=Number(r.max)),r.step!=null&&r.step!==""&&(h.step=Number(r.step));else if(v==="checkbox")h.type="checkbox";else if(r.tagName==="TEXTAREA")h.type="textarea";else if(L.includes(v))h.subtype=v,(v==="email"||v==="url")&&(h.validation=v);else return null;if(r.placeholder!=null&&r.placeholder!==""&&(h.placeholder=r.placeholder),r.required===!0&&(h.required=!0),r.disabled===!0&&(h.disabled=!0),r.readOnly===!0&&(h.readOnly=!0),typeof r.getAttribute=="function"){const c=r.getAttribute("data-validation")||r.getAttribute("data-rule");c&&(h.validation=c);const l=r.getAttribute("data-error-message");l&&(h.errorMessage=l);const t=r.getAttribute("data-help");t&&(h.helpMessage=t)}return h}function G(r,u){const v=r&&r.ownerDocument||(typeof document<"u"?document:null),h=[],c=r&&r.elements?r.elements:[];for(const l of c){const t=N(l,v);t&&h.push(t)}return{...u||{},rows:h}}function C(r,u){if(!r)return null;if(r.__latticeForm)return r.__latticeForm;const v=r.ownerDocument||(typeof document<"u"?document:null),h=[],c=r.elements?r.elements:[];for(const t of c)e(t)&&h.push(t);const l=H(r,G(r,u));r.__latticeForm=l;for(const t of h)t.parentNode!==r&&r.appendChild(t);return typeof r.addEventListener=="function"&&v&&r.addEventListener("submit",t=>{l.validate()||(t.preventDefault(),t.stopImmediatePropagation())},!0),l}const A=C}),Ie("packages/modules/form/index.js",function(S,te){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return v}});const H=te("packages/modules/form/styles.js").NS,e=te("packages/modules/form/controls/registry.js").registerControl,I=te("packages/modules/form/model.js").cssSize,N=te("packages/modules/form/create.js").createForm,G=te("packages/modules/form/controls/combo.js");Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return G.createCombo}});const C=te("packages/modules/form/controls/speeddial.js");Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return C.createSpeedDial}});const A=te("packages/modules/form/group.js");Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return A.createFormGroup}});const r=te("packages/modules/form/enhance.js");Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return r.enhanceForm}});function u(h,c){if(c===null||typeof c!="object"||typeof c.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const l=typeof c.getValue=="function"?c.getValue:()=>null,t=typeof c.setValue=="function"?c.setValue:()=>{};e(String(h),{kind:"field",custom:!0,validate:typeof c.validate=="function"?(p,P,o)=>c.validate(o,P,p):void 0,destroy:typeof c.destroy=="function"?p=>c.destroy(p):void 0,build(p,P){const o=P.doc.createElement("div");o.className=`${H}__custom`;const y={name:p.name,item:p,getValue(){return y._read?y._read():void 0},setValue(V){y._write&&y._write(V)},onChange(V){y._commit&&y._commit(V===void 0?l(o):V)},onInput(V){y._input&&y._input(V===void 0?l(o):V)}};return o.__latticeFormApi=y,c.create(o,p,y),p.height!=null&&(o.style.height=I(p.height)),t(o,p.value),o},read(p){return l(p)},write(p,P){t(p,P)},state(p,P){p.setAttribute("data-disabled",P.disabled===!0?"true":"false"),p.setAttribute("data-readonly",P.readOnly===!0?"true":"false")}})}const v=N});const Dt=lr("packages/modules/form/index.js"),Sr=Dt.createCombo,Or=Dt.createSpeedDial,jr=Dt.registerControl,Nr=Dt.createForm,Tr=Dt.createFormGroup,Pr=Dt.enhanceForm;var Lr=Dt.default;export{Sr as createCombo,Nr as createForm,Tr as createFormGroup,Or as createSpeedDial,Lr as default,Pr as enhanceForm,jr as registerControl};
|
|
2382
|
+
`.trim()}function p($){const b=$&&$.documentElement;if(!b||b.getAttribute(u))return;b.setAttribute(u,"1");const _=$.createElement("style");_.textContent=t(),($.head||$.body||b).appendChild(_)}function P($){return h.includes($)?$:"bottom-right"}function o($){return c.includes($)?$:"primary"}function y($,b){return l.includes(b)?b:$.startsWith("top-")?"down":$.startsWith("bottom-")?"up":$==="middle-left"?"right":"left"}function V($){switch($){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 s($,b){const _=b&&typeof b=="object"?b:{},n=V($),O=typeof _.startAngle=="number"?_.startAngle:n.startAngle,ie=typeof _.endAngle=="number"?_.endAngle:n.endAngle,F=typeof _.offset=="number"&&_.offset>0?_.offset:0;return{startAngle:O,endAngle:ie,offset:F,defaulted:_.startAngle==null&&_.endAngle==null}}function d($,b){const _=A[b];if(!_)return null;const n=$.createElementNS(v,"svg");n.setAttribute("viewBox",_.viewBox||"0 0 16 16"),n.setAttribute("aria-hidden","true"),n.setAttribute("focusable","false");const O=_.paint==="stroke";for(const ie of _.paths||[]){const F=$.createElementNS(v,"path");F.setAttribute("d",ie),O?(F.setAttribute("fill","none"),F.setAttribute("stroke","currentColor"),F.setAttribute("stroke-width","1.5"),F.setAttribute("stroke-linecap","round"),F.setAttribute("stroke-linejoin","round")):F.setAttribute("fill","currentColor"),n.appendChild(F)}return n}function i($,b){if($==null)return null;if(typeof $=="object"&&$.nodeType)return $;if(typeof $!="string"||$==="")return null;const _=$;if(/^(https?:)?\/\//i.test(_)||/^data:/i.test(_)){const n=b.createElement("img");return n.src=_,n.alt="",n}return d(b,_)}function m($,b,_){const n=$&&$.defaultView;return n&&n.CustomEvent?new n.CustomEvent(b,{bubbles:!0,detail:_}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:_,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function k($){return Array.isArray($)?$.map(b=>{const _=b&&typeof b=="object"?b:{};return{id:_.id,icon:_.icon,text:_.text,disabled:_.disabled===!0,render:typeof _.render=="function"?_.render:null}}):[]}function w($,b){const _="var(--lat-sd-size)",n="var(--lat-sd-gap)",O="var(--lat-sd-pad)";if(b==="up"||b==="down"){const se={flexDirection:"column"};return $.endsWith("-left")?(se.insetInlineStart=O,se.alignItems="flex-start"):$.endsWith("-right")?(se.insetInlineEnd=O,se.alignItems="flex-end"):(se.left="50%",se.transform="translateX(-50%)",se.alignItems="center"),b==="down"?se.top=`calc(${O} + ${_} + ${n})`:se.bottom=`calc(${O} + ${_} + ${n})`,se}const F={flexDirection:"row"};return $.startsWith("top-")?(F.top=O,F.alignItems="flex-start"):$.startsWith("bottom-")?(F.bottom=O,F.alignItems="flex-end"):(F.top="50%",F.transform="translateY(-50%)",F.alignItems="center"),b==="right"?F.insetInlineStart=`calc(${O} + ${_} + ${n})`:F.insetInlineEnd=`calc(${O} + ${_} + ${n})`,F}function f($,b={}){const _=b.doc||$&&$.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;_&&p(_);const n=typeof b.t=="function"?b.t:e,O=b.inForm===!0,ie=b.emitter||null,F=b.itemName!=null?String(b.itemName):"",se=b.formItem||null,le=P(b.position),xe=b.fixed===!0,ue=b.openOnHover===!0,R=b.mode==="radial"?"radial":"linear",be=o(b.variant),q=y(le,b.direction),D=b.modal===!0,J=b.text!=null?String(b.text):"",ne=b.openIcon!=null?b.openIcon:"plus",oe=b.closeIcon!=null?b.closeIcon:"close",ve=R==="radial"?s(le,b.radial):null;let pe=b.disabled===!0,x=k(b.items);const W=_.createElement("div");W.className=r,W.setAttribute("data-variant",be),W.setAttribute("data-fixed",xe?"true":"false"),O||W.setAttribute("data-lattice-standalone","true");const U=I("lat-speeddial-menu"),j=_.createElement("button");j.type="button",j.className=`${r}__fab`,j.setAttribute("data-position",le),j.setAttribute("aria-haspopup","menu"),j.setAttribute("aria-expanded","false"),j.setAttribute("aria-controls",U),J&&j.setAttribute("data-text","true");const Z=_.createElement("span");if(Z.className=`${r}__fab-icon`,Z.setAttribute("aria-hidden","true"),j.appendChild(Z),J){const Oe=_.createElement("span");Oe.className=`${r}__fab-text`,Oe.textContent=J,j.appendChild(Oe)}const ae=_.createElement("div");ae.className=`${r}__backdrop`,ae.hidden=!0;const re=_.createElement("div");re.className=`${r}__menu`,re.setAttribute("role","menu"),re.setAttribute("aria-label",n("form.speeddial.menu")),re.id=U,re.setAttribute("data-mode",R),R==="linear"&&re.setAttribute("data-direction",q),re.hidden=!0,W.appendChild(ae),W.appendChild(re),W.appendChild(j);let B=!1;const ee=[];let X=!1;const ge=(Oe,He)=>{ie?ie.emit(Oe,{name:F,item:se,...He}):$.dispatchEvent(m(_,Oe,He))},$e=()=>J||n(B?"form.speeddial.close":"form.speeddial.open"),K=()=>{for(;Z.firstChild;)Z.removeChild(Z.firstChild);const Oe=i(B?oe:ne,_);Oe&&Z.appendChild(Oe)},he=(Oe,He)=>{const Re=_.createElement("button");Re.type="button",Re.className=`${r}__item`,Re.setAttribute("role","menuitem"),Re.setAttribute("tabindex","-1"),Re.dataset.index=String(He);const Fe=Oe.text!=null&&String(Oe.text)!==""?String(Oe.text):Oe.id!=null?String(Oe.id):"";Fe&&Re.setAttribute("aria-label",Fe),Oe.disabled&&Re.setAttribute("aria-disabled","true");const Ge=i(Oe.icon,_),Ze=Oe.text!=null?String(Oe.text):"";if(typeof Oe.render=="function"){const Le=Oe.render(Oe,He);Le&&typeof Le=="object"&&Le.nodeType?Re.appendChild(Le):Re.textContent=Le!=null?String(Le):""}else{if(Ge){const Le=_.createElement("span");Le.className=`${r}__item-icon`,Le.setAttribute("aria-hidden","true"),Le.appendChild(Ge),Re.appendChild(Le)}if(Ze!==""){const Le=_.createElement("span");Le.className=`${r}__item-text`,Le.textContent=Ze,Re.appendChild(Le)}}Re.setAttribute("data-icon-only",Ge!=null&&Ze===""?"true":"false"),Re.setAttribute("data-text-only",Ge==null&&Ze!==""?"true":"false");const _e=Le=>{Le.stopPropagation(),!(Oe.disabled||pe)&&(ge("itemClick",{item:Oe,index:He}),Q(!1),j.focus())};Re.addEventListener("click",_e),ee.push(()=>Re.removeEventListener("click",_e));const je=Le=>{Le.key==="Escape"?(Le.preventDefault(),Le.stopPropagation(),Q(!1),j.focus()):Le.key==="ArrowDown"||Le.key==="ArrowRight"?(Le.preventDefault(),M(He,1)):(Le.key==="ArrowUp"||Le.key==="ArrowLeft")&&(Le.preventDefault(),M(He,-1))};return Re.addEventListener("keydown",je),ee.push(()=>Re.removeEventListener("keydown",je)),Re};let Ee=[];const N=()=>{for(;re.firstChild;)re.removeChild(re.firstChild);Ee=x.map((Oe,He)=>he(Oe,He));for(const Oe of Ee)re.appendChild(Oe);K()},g=()=>{if(R!=="radial"||!ve)return;const Oe=j.getBoundingClientRect(),He=xe?0:W.getBoundingClientRect().left,Re=xe?0:W.getBoundingClientRect().top,Fe=Oe.left+Oe.width/2-He,Ge=Oe.top+Oe.height/2-Re,Ze=ve.offset||Math.round(Oe.width/2+28);let _e=ve.startAngle,je=ve.endAngle;if(ve.defaulted&&getComputedStyle(W).direction==="rtl"){const We=180-je;je=180-_e,_e=We}const Le=Ee.length;Ee.forEach((We,nt)=>{const Ke=(Le<=1?(_e+je)/2:_e+(je-_e)*(nt/(Le-1)))*Math.PI/180;We.style.left=`${Math.round(Fe+Ze*Math.cos(Ke))}px`,We.style.top=`${Math.round(Ge-Ze*Math.sin(Ke))}px`})},Q=(Oe,He={})=>{X||pe||B===Oe||(B=Oe,j.setAttribute("aria-expanded",B?"true":"false"),j.setAttribute("aria-label",$e()),re.hidden=!B,D&&(ae.hidden=!B),K(),B?(ge("open",{}),g(),He.focusItems!==!1&&M(-1,1)):ge("close",{}))},M=(Oe,He)=>{const Re=Ee.length;if(Re===0)return;let Fe=Oe===-1?He>0?0:Re-1:(Oe+He+Re)%Re;for(let Ge=0;Ge<Re;Ge+=1){if(!x[Fe].disabled){Ee[Fe].focus();return}Fe=(Fe+He+Re)%Re}},a=()=>{Q(!0,{focusItems:!1})},Y=()=>{B&&(Q(!1),j.focus())},fe=()=>{Q(!B,{focusItems:!1})};if(R==="linear"){const Oe=w(le,q);for(const He of Object.keys(Oe))re.style[He]=Oe[He]}const me=()=>{pe||fe()};j.addEventListener("click",me),ee.push(()=>j.removeEventListener("click",me));const Ae=()=>{ue&&!pe&&Q(!0,{focusItems:!1})};j.addEventListener("pointerenter",Ae),ee.push(()=>j.removeEventListener("pointerenter",Ae));const de=()=>{ue&&B&&Q(!1)};W.addEventListener("pointerleave",de),ee.push(()=>W.removeEventListener("pointerleave",de));const Pe=Oe=>{Oe.stopPropagation(),Y()};ae.addEventListener("click",Pe),ee.push(()=>ae.removeEventListener("click",Pe));const Se=Oe=>{if(!B)return;const He=Oe.target;He&&W.contains(He)||Y()};_.addEventListener("pointerdown",Se,!0),ee.push(()=>_.removeEventListener("pointerdown",Se,!0));const Be=Oe=>{!B||Oe.key!=="Escape"||(Oe.preventDefault(),Y())};_.addEventListener("keydown",Be,!0),ee.push(()=>_.removeEventListener("keydown",Be,!0));const Te=Oe=>{Oe.key==="Escape"?B&&(Oe.preventDefault(),Oe.stopPropagation(),Y()):Oe.key==="ArrowDown"||Oe.key==="ArrowRight"?(Oe.preventDefault(),Q(!0),M(-1,1)):(Oe.key==="ArrowUp"||Oe.key==="ArrowLeft")&&(Oe.preventDefault(),Q(!0),M(-1,-1))};j.addEventListener("keydown",Te),ee.push(()=>j.removeEventListener("keydown",Te));const Ne=Oe=>{pe=Oe===!0,j.disabled=pe,j.setAttribute("aria-disabled",pe?"true":"false"),pe&&B&&Q(!1)},Me={el:W,fab:j,menu:re,open:a,close:Y,toggle:fe,setItems(Oe){x=k(Oe),N()},setDisabled:Ne,destroy(){X=!0;for(const Oe of ee.splice(0))Oe();for(;W.firstChild;)W.removeChild(W.firstChild);W.parentNode&&W.parentNode.removeChild(W)}};return Ne(pe),N(),$.appendChild(W),$.__latSpeedDial=Me,Me}H("speeddial",{kind:"button",action:!0,build($,b){const _=$.props||{},n=b.doc.createElement("div"),O=f(n,{items:_.speedDialItems||_.items,position:_.position,fixed:_.fixed,openOnHover:_.openOnHover,direction:_.direction,mode:$.mode,radial:_.radial,modal:_.modal,openIcon:_.openIcon,closeIcon:_.closeIcon,text:_.text!=null?_.text:$.label,variant:_.variant,disabled:$.disabled,t:b.t,doc:b.doc,inForm:!0,emitter:b.emitter,itemName:$.name,formItem:$});return b.disposers.push(()=>O.destroy()),n},read(){return null},write(){},state($,b){const _=$&&$.__latSpeedDial;_&&_.setDisabled(b.disabled===!0)}})}),Ie("packages/modules/form/controls/multipart-upload.js",function(S,te){"use strict";Object.defineProperty(S,"uploadMultipart",{enumerable:!0,get:function(){return we}});function we(H,L,e={}){return new Promise((E,I)=>{const z=new XMLHttpRequest,T=new FormData,G=L.fieldName||"file";if(L.params)for(const[C,A]of Object.entries(L.params))T.append(C,String(A));if(T.append(G,H,H.name),z.open("POST",L.target,!0),L.headers)for(const[C,A]of Object.entries(L.headers))z.setRequestHeader(C,A);if(z.upload.addEventListener("progress",C=>{e.onProgress&&C.lengthComputable&&e.onProgress(Math.round(C.loaded/C.total*100))}),z.addEventListener("load",()=>{if(z.status>=200&&z.status<300){let C=z.responseText;try{C=JSON.parse(z.responseText)}catch{}E(C)}else I(new Error(`upload failed with status ${z.status}`))}),z.addEventListener("error",()=>I(new Error("upload failed"))),z.addEventListener("abort",()=>I(new Error("upload aborted"))),e.signal){if(e.signal.aborted){z.abort();return}e.signal.addEventListener("abort",()=>z.abort())}z.send(T)})}}),Ie("packages/modules/form/controls/avatar.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,L=te("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,E=L.injectFieldIconStyles,I=te("packages/modules/form/controls/file.js"),z=I.accepts,T=I.formatSize,C=te("packages/modules/form/controls/multipart-upload.js").uploadMultipart,A=Object.freeze({small:40,medium:64,large:96}),r=Object.freeze({photo:"M3 4.5h2l1-1.5h4l1 1.5h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM8 7a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"});function u(p){return p}function v(p,P){const o="http://www.w3.org/2000/svg",y=p.createElementNS(o,"svg");y.setAttribute("viewBox","0 0 16 16"),y.setAttribute("focusable","false"),y.setAttribute("aria-hidden","true");const V=p.createElementNS(o,"path");return V.setAttribute("d",P),V.setAttribute("fill","currentColor"),y.appendChild(V),y}function h(p){return typeof p=="number"&&Number.isFinite(p)&&p>0?p:typeof p=="string"&&A[p]?A[p]:A.medium}function c(p,P){const o=P&&P.defaultView,y=o&&o.Event,V=y?new y("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(V)}function l(p){if(!p||typeof p!="object")return null;const P=p;return P.src==null||P.src===""?null:P}function t(p){return new Promise((P,o)=>{const y=new FileReader;y.onload=()=>P(String(y.result)),y.onerror=()=>o(y.error||new Error("could not read the file")),y.readAsDataURL(p)})}H("avatar",{kind:"field",build(p,P){const o=P.doc,y=P.t||u;E(o);const V=p.props||{},s=Array.isArray(V.accept)&&V.accept.length?V.accept.map(String):["image/*"],d=Number(V.maxSize)||0,i=o.createElement("div");i.className="lat-form__avatar";const m={value:l(p.value),rejectedMessage:null,accept:s,maxSize:d,size:h(V.size),circle:V.circle===!0,alt:V.alt!=null?String(V.alt):"",preview:V.preview!=null&&V.preview!==""?String(V.preview):null,icon:V.icon,placeholder:p.placeholder!=null&&p.placeholder!==""?String(p.placeholder):y("form.avatar.placeholder"),removeIcon:V.removeIcon!==!1,upload:V.upload&&typeof V.upload=="object"?V.upload:null,disabled:p.disabled===!0,readOnly:p.readOnly===!0,label:p.label!=null&&p.label!==""?String(p.label):null};i.__latAvatar=m;const k=o.createElement("input");k.type="file",k.className="lat-form__avatar-input",k.tabIndex=-1,k.setAttribute("aria-hidden","true"),s.length&&(k.accept=s.join(",")),i.appendChild(k);const w=o.createElement("button");w.type="button",w.className="lat-form__avatar-picture",i.appendChild(w);const f=o.createElement("button");f.type="button",f.className="lat-form__avatar-remove",f.setAttribute("aria-label",y("form.avatar.remove")),f.title=y("form.avatar.remove"),f.appendChild(e(o,"close")||v(o,r.photo)),i.appendChild(f);const $=o.createElement("span");return $.className="lat-form__avatar-status",i.appendChild($),i.style.setProperty("--lat-avatar-size",`${m.size}px`),i.__latPaint=()=>{i.style.setProperty("--lat-avatar-size",`${m.size}px`),w.classList.toggle("lat-form__avatar-picture--circle",m.circle);const b=m.disabled||m.readOnly;w.disabled=b,w.tabIndex=b?-1:0,w.setAttribute("aria-label",m.label||y("form.avatar.choose")),w.textContent="";const _=m.value&&m.value.src?m.value.src:null;if(_){const O=o.createElement("img");O.className="lat-form__avatar-img",O.src=_,O.alt=m.alt,w.appendChild(O)}else if(m.preview){const O=o.createElement("img");O.className="lat-form__avatar-img",O.src=m.preview,O.alt=m.alt,w.appendChild(O)}else if(m.icon!=null&&m.icon!==!1){if(typeof m.icon=="object"&&m.icon.nodeType)w.appendChild(m.icon);else if(typeof m.icon=="string"){const O=o.createElement("img");O.className="lat-form__avatar-img",O.src=m.icon,O.alt=m.alt,w.appendChild(O)}}else{const O=o.createElement("span");O.className="lat-form__avatar-placeholder",O.appendChild(v(o,r.photo));const ie=o.createElement("span");ie.className="lat-form__avatar-placeholder-text",ie.textContent=m.placeholder,O.appendChild(ie),w.appendChild(O)}const n=!!(m.value&&m.value.src);f.hidden=!n||!m.removeIcon||m.disabled||m.readOnly,f.disabled=m.disabled||m.readOnly,$.textContent="",$.className="lat-form__avatar-status",m.value&&m.value.status==="uploading"?($.classList.add("lat-form__avatar-status--uploading"),$.textContent=`${Math.round(m.value.progress||0)}%`):m.value&&m.value.status==="failed"&&($.classList.add("lat-form__avatar-status--failed"),$.textContent=m.value.message||y("form.avatar.uploadFailed"))},i.__latStartUpload=()=>{const b=m.upload,_=m.value;!b||!_||!_.file||b.autosend===!1||(_.status="uploading",_.progress=0,i.__latPaint(),C(_.file,b,{onProgress(n){m.value===_&&(_.progress=n,i.__latPaint())}}).then(n=>{m.value===_&&(_.status="done",_.progress=100,b.updateFromResponse!==!1&&n&&typeof n=="object"&&(n.src!=null&&(_.src=String(n.src)),n.id!=null&&(_.id=n.id)),i.__latPaint(),c(i,o))},n=>{m.value===_&&(_.status="failed",_.message=n&&n.message?String(n.message):y("form.avatar.uploadFailed"),i.__latPaint(),c(i,o))}))},i.__latAdmit=b=>{if(!(!b||m.disabled||m.readOnly)){if(m.maxSize&&b.size>m.maxSize){m.rejectedMessage=y("form.avatar.rejected.size",{size:T(m.maxSize)});return}if(!z(b,m.accept)){m.rejectedMessage=y("form.avatar.rejected.type");return}m.rejectedMessage=null,t(b).then(_=>{m.value={src:_,file:b,name:b.name,size:b.size,status:"pending"},i.__latPaint(),c(i,o),i.__latStartUpload()})}},i.__latRemove=()=>{m.disabled||m.readOnly||(m.value=null,i.__latPaint(),c(i,o))},k.addEventListener("change",()=>{const b=k.files&&k.files[0];i.__latAdmit(b),k.value=""}),w.addEventListener("click",()=>{m.disabled||m.readOnly||k.click()}),w.addEventListener("keydown",b=>{m.disabled||m.readOnly||(b.key==="Enter"||b.key===" "||b.key==="Spacebar")&&(b.preventDefault(),k.click())}),f.addEventListener("click",b=>{b.stopPropagation(),i.__latRemove()}),["dragenter","dragover"].forEach(b=>w.addEventListener(b,_=>{m.disabled||m.readOnly||(_.preventDefault(),w.classList.add("lat-form__avatar-picture--dragover"))})),w.addEventListener("dragleave",()=>{w.classList.remove("lat-form__avatar-picture--dragover")}),w.addEventListener("drop",b=>{if(b.preventDefault(),w.classList.remove("lat-form__avatar-picture--dragover"),m.disabled||m.readOnly)return;const _=b.dataTransfer&&b.dataTransfer.files&&b.dataTransfer.files[0];i.__latAdmit(_)}),i.__latPaint(),m.value&&m.value.file&&m.value.status==="pending"&&i.__latStartUpload(),i},read(p){return p.__latAvatar?p.__latAvatar.value:null},write(p,P){const o=p.__latAvatar;o&&(o.value=l(P),p.__latPaint&&p.__latPaint())},state(p,P){const o=p.__latAvatar;o&&(o.disabled=P.disabled===!0,o.readOnly=P.readOnly===!0,o.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"),o.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly"),p.__latPaint&&p.__latPaint())},validate(p,P,o){const y=p.__latAvatar;return y&&y.rejectedMessage?y.rejectedMessage:null},focus(p){const P=p.querySelector(".lat-form__avatar-picture");P&&P.focus()}})}),Ie("packages/modules/form/controls/togglegroup.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/controls/button.js").buildIcon,E="lat-form__togglegroup",I="lat-form__togglegroup-btn";function z(C,A){const r=C!==null&&typeof C=="object"?C:{},u=r.id!=null?String(r.id):r.value!=null?String(r.value):String(A),v=r.text!=null?String(r.text):u;return{id:u,text:v,offText:r.offText!=null?String(r.offText):v,icon:r.icon!=null?r.icon:null,offIcon:r.offIcon!=null?r.offIcon:r.icon,selected:r.selected===!0,disabled:r.disabled===!0,hidden:r.hidden===!0,full:r.full===!0}}function T(C,A){const r=A&&A.defaultView,u=r&&r.Event,v=u?new u("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};C.dispatchEvent(v)}function G(C){return typeof C=="number"&&Number.isFinite(C)&&C>=0?C:0}H("togglegroup",{kind:"field",build(C,A){const r=A.doc,u=C.props||{},v=u.multiselect===!0,h=u.full===!0,c=r.createElement("div");c.className=E,c.setAttribute("role","group"),c.setAttribute("aria-label",C.label!=null&&C.label!==""?String(C.label):A.t("form.togglegroup")),c.style.setProperty("--lat-form-gap",`${G(u.gap)}px`),h&&c.setAttribute("data-full","true");const l=(Array.isArray(C.options)?C.options:[]).map(z).filter(d=>!d.hidden),t=[],p={},P={doc:r,options:l,buttons:t,pressed:p,multiselect:v,disabled:C.disabled===!0,readOnly:C.readOnly===!0};c.__latToggleGroup=P;for(const d of l){const i=r.createElement("button");i.type="button",i.className=I,i.setAttribute("data-index",String(t.length)),d.full&&i.setAttribute("data-full","true"),i.disabled=d.disabled||P.disabled,i.__tg={opt:d,pressed:!1},c.appendChild(i),t.push(i),p[d.id]=!1}const o=d=>{const i=d.__tg,m=i.opt,k=i.pressed;d.setAttribute("aria-pressed",k?"true":"false"),d.removeAttribute("aria-label"),d.textContent="";const w=e(k?m.icon:m.offIcon,r);w&&d.appendChild(w);const f=k?m.text:m.offText;if(f!==""){const $=r.createElement("span");$.className=`${I}-label`,$.textContent=f,d.appendChild($)}else w&&d.setAttribute("aria-label",m.id)},y=()=>{for(const d of t)d.__tg.pressed=p[d.__tg.opt.id]===!0,o(d)},V=d=>{if(d.disabled||P.disabled||P.readOnly)return!1;if(v)p[d.id]=!p[d.id];else{if(p[d.id])return!1;for(const i of l)p[i.id]=i.id===d.id}return y(),!0},s=C.value!=null&&typeof C.value=="object"?C.value:{};for(const d of l)p[d.id]=s[d.id]===!0;if(v)for(const d of l)p[d.id]=p[d.id]||d.selected===!0;else{let d=l.find(i=>p[i.id]);d||(d=l.find(i=>i.selected)),d||(d=l[0]);for(const i of l)p[i.id]=i.id===(d&&d.id)}return y(),c.addEventListener("click",d=>{const i=d.target&&d.target.closest?d.target.closest(`.${I}`):null;if(!i||!c.contains(i)||!i.__tg)return;const m=i.__tg.opt;V(m)&&(c.__latChangeDetail={id:m.id,pressed:p[m.id]},T(c,r))}),c.__latKey=d=>{if(d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;const i=t.filter(f=>!f.disabled);if(!i.length)return;const m=i.indexOf(r.activeElement),k=d.key==="ArrowRight"?1:-1,w=m===-1?k===1?0:i.length-1:m+k;w<0||w>=i.length||(d.preventDefault(),i[w].focus())},c.addEventListener("keydown",c.__latKey),c},read(C){const A=C&&C.__latToggleGroup,r={};if(!A)return r;for(const u of A.options)r[u.id]=A.pressed[u.id]===!0;return r},write(C,A){const r=C&&C.__latToggleGroup;if(!r)return;const u=A!=null&&typeof A=="object"&&!Array.isArray(A)?A:{};for(const h of r.options)r.pressed[h.id]=u[h.id]===!0;if(!r.multiselect){const h=r.options.find(c=>r.pressed[c.id]);for(const c of r.options)r.pressed[c.id]=c.id===(h?h.id:r.options[0]&&r.options[0].id)}for(const h of r.buttons)h.__tg.pressed=r.pressed[h.__tg.opt.id]===!0;const v=r.doc;for(const h of r.buttons){const c=h.__tg,l=c.opt,t=c.pressed;h.setAttribute("aria-pressed",t?"true":"false"),h.removeAttribute("aria-label"),h.textContent="";const p=e(t?l.icon:l.offIcon,v);p&&h.appendChild(p);const P=t?l.text:l.offText;if(P!==""){const o=v.createElement("span");o.className=`${I}-label`,o.textContent=P,h.appendChild(o)}else p&&h.setAttribute("aria-label",l.id)}},state(C,A){const r=C&&C.__latToggleGroup;if(r){r.disabled=A.disabled===!0,r.readOnly=A.readOnly===!0,r.readOnly?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly"),r.disabled?C.setAttribute("aria-disabled","true"):C.removeAttribute("aria-disabled");for(const u of r.buttons)u.disabled=r.disabled||u.__tg.opt.disabled}},focus(C){const A=C&&C.__latToggleGroup,r=A&&A.buttons.find(u=>!u.disabled);r&&typeof r.focus=="function"&&r.focus()}})}),Ie("packages/modules/form/controls/grid.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/model.js").cssSize,E="__latFormTotal",I="__latFormTotals",z=new Set(["number","currency","percent","integer","decimal"]),T="lat-invalid",G=240;function C(x){return x!==null&&typeof x=="object"&&!Array.isArray(x)}function A(x){return x==null||x===""}function r(x){if(typeof x=="number")return Number.isFinite(x)?x:null;if(C(x)&&Object.hasOwn(x,"amount"))return r(x.amount);if(typeof x=="string"&&x.trim()!==""){const W=Number(x);return Number.isFinite(W)?W:null}return null}function u(x){return C(x)&&Object.hasOwn(x,"amount")&&Object.keys(x).every(W=>W==="amount"||W==="code")?x.amount:x}function v(x,W,U){if(typeof x=="function")try{return x(W,U)}catch{return null}const j=W.map(r).filter(ae=>ae!==null);if(x==="count")return W.filter(ae=>!A(ae)).length;if(j.length===0)return x==="avg"?null:0;const Z=j.reduce((ae,re)=>ae+re,0);return x==="avg"?Z/j.length:Z}function h(x){return typeof x=="function"||x==="sum"||x==="avg"||x==="count"?x:"sum"}function c(x){if(typeof x=="string")return x;if(C(x)){if(x.field!=null)return String(x.field);if(x.id!=null)return String(x.id)}return null}function l(x,W){if(x===!0)return{enabled:()=>W()};if(typeof x=="string")return{editor:x,enabled:()=>W()};if(C(x)&&x.enabled!==void 0&&x.enabled!==!1){const U=x.enabled;return{...x,enabled:j=>W()&&(typeof U=="function"?U(j)!==!1:!0)}}return x}function t(x,W){if(!(!x||!x.children))for(const U of Array.from(x.children))W(U),t(U,W)}function p(x,W,U){let j=null;return t(x,Z=>{j||!Z.getAttribute||Z.getAttribute("data-key")!==W||t(Z,ae=>{!j&&ae.getAttribute&&ae.getAttribute("data-col")===U&&(j=ae)})}),j}function P(x,W,U={}){const j=x.cal.model&&x.cal.model.messages;if(j&&typeof j.t=="function"){const ae=j.t(W,U);if(ae!==W)return ae}const Z=x.grid&&x.grid.messages;if(Z&&typeof Z.t=="function")try{const ae=Z.t(W,U);if(ae!==W)return ae}catch{}return x.cal.t(W,U)}function o(x){return x.grid?x.grid.rows.data().map(W=>{const U={};for(const j of Object.keys(W))j!==E&&(U[j]=u(W[j]));return U}):x.pending.map(W=>({...W}))}function y(x,W){return x.valueAs==="arrays"?W.map(U=>x.fields.map(j=>U[j]===void 0?null:U[j])):W}function V(x,W){if(!Array.isArray(W))return[];const U=[];for(const j of W)if(Array.isArray(j)){const Z={};x.fields.forEach((ae,re)=>{Z[ae]=j[re]===void 0?null:j[re]}),U.push(Z)}else C(j)&&U.push({...j});return U}function s(x,W){x.mute+=1;try{return W()}finally{x.mute-=1}}function d(x,W,U){const j=o(x).find(Z=>String(Z[x.rowKey])===String(W));return!j||j[U]===void 0?null:j[U]}function i(x){const W=o(x);for(const U of x.mapped){const j=W.find(ae=>String(ae[x.rowKey])===String(U.row)),Z=j&&j[U.col]!==void 0?j[U.col]:null;U.record.value=Z,U.record.item.value=Z}}function m(x,W,U){if(typeof U!="number")return U;const j=x.grid.rows.get(0);let Z=null;if(j&&j.key!=null)try{Z=x.grid.rows.value(j.key,W)}catch{Z=null}return C(Z)&&Object.hasOwn(Z,"amount")?{...Z,amount:U}:U}function k(x){const W=x.totals&&x.totals.row;if(!W||!x.grid||typeof x.grid.setPinnedRows!="function")return;const U=o(x),j={[x.rowKey]:I};for(const Z of W.fields){const ae=v(W.fns[Z],U.map(re=>re[Z]),{field:Z,rows:U});j[Z]=m(x,Z,ae)}W.labelField&&(j[W.labelField]=W.label!=null?W.label:P(x,"form.grid.total")),x.grid.setPinnedRows([j],{edge:"bottom"})}function w(x,W,U){const j=U[W],Z=x.columnSpecs.get(W)||{},ae=x.grid,re=String(U[x.rowKey]);let B=null;try{B=ae.validation.check(W,j,U)}catch{B=null}if(B)return B.message;const ee=C(Z.edit)?Z.edit:{},X=C(ee.props)?ee.props:{},ge=r(j);if(ge!==null){if(typeof X.min=="number"&&ge<X.min)return P(x,"form.validation.min",{min:X.min});if(typeof X.max=="number"&&ge>X.max)return P(x,"form.validation.max",{max:X.max})}if(typeof ee.validate=="function"){let $e;try{$e=ee.validate({value:j,row:ae.rows.byKey(re),column:ae.columns.get(W),grid:ae,data:U})}catch{$e="Invalid value"}if(typeof $e=="string")return $e}return null}function f(x){const W=[];return x.grid&&(o(x).forEach((j,Z)=>{for(const ae of x.fields){const re=w(x,ae,j);re&&W.push({key:String(j[x.rowKey]),field:ae,row:Z+1,message:re})}}),x.invalid=new Map(W.map(j=>[`${j.key}\0${j.field}`,j])),_(x)),W}function $(x,W){let U=null;try{U=x.grid.columns.get(W)}catch{U=null}const j=x.columnSpecs.get(W)||{},Z=U&&U.title||j.title||j.header;return Z!=null&&Z!==""?String(Z):W}function b(x,W){return P(x,"form.grid.cellInvalid",{row:W.row,column:$(x,W.field),message:W.message})}function _(x){if(!x.grid||!x.gridEl)return;const W=new Set;for(const U of x.invalid.values()){const j=p(x.gridEl,U.key,U.field);j&&(W.add(j),j.classList.add(T),j.setAttribute("aria-invalid","true"),j.setAttribute("title",b(x,U)),j.getAttribute("tabindex")==null&&j.setAttribute("tabindex","-1"))}for(const U of x.marked)!W.has(U)&&U.classList&&U.classList.contains(T)&&(U.classList.remove(T),U.removeAttribute("aria-invalid"),U.removeAttribute("title"));x.marked=W}function n(x){if(!x.grid)return;const W=x.invalid.values().next().value||null,U=o(x),j=W?W.key:U.length?String(U[0][x.rowKey]):null,Z=W?W.field:x.fields[0];if(j==null||Z==null)return;try{x.grid.scroll.toCell(j,Z)}catch{}const ae=p(x.gridEl,j,Z);ae&&typeof ae.focus=="function"&&(ae.getAttribute("tabindex")==null&&ae.setAttribute("tabindex","-1"),ae.focus())}function O(x,W){const U=W.map(ae=>ae[x.rowKey]);if(U.length&&U.every(ae=>typeof ae=="number"))return Math.max(...U)+1;const j=new Set(U.map(String));let Z=W.length+1;for(;j.has(`row-${Z}`);)Z+=1;return`row-${Z}`}function ie(x,W,U){let j=U;if(!C(j)){const ae=typeof x.newRow=="function"?x.newRow(W.map(re=>({...re}))):x.newRow;j=C(ae)?ae:{}}const Z={};for(const ae of x.fields)Z[ae]=null;return Object.assign(Z,j),(Z[x.rowKey]==null||W.some(ae=>String(ae[x.rowKey])===String(Z[x.rowKey])))&&(Z[x.rowKey]=O(x,W)),Z}function F(x,W,U){const j=String(W.row);if(U.type==="cellEdit"){const ae=String(U.key)===j&&U.colId===W.col;return{touched:ae,value:ae?U.value:void 0}}if(U.type==="rowAdd"){const ae=String(U.row[x.rowKey])===j;return{touched:ae,value:ae&&U.row[W.col]!==void 0?U.row[W.col]:null}}return{touched:String(U.key)===j,value:null}}function se(x,W,U){const{cal:j,record:Z}=x,ae=j.emitter,re=[ae.emitBefore("beforeChange",{name:Z.item.name,value:y(x,U),previousValue:Z.value,item:Z.item,change:W},"user")];for(const B of x.mapped){const ee=F(x,B,W);ee.touched&&re.push(ae.emitBefore("beforeChange",{name:B.prop,value:ee.value,previousValue:B.record.value,item:B.record.item,change:W},"user"))}return re.some(B=>B&&typeof B.then=="function")?Promise.all(re).then(B=>B.every(ee=>ee!==!1)):re.every(B=>B!==!1)}function le(x,W,U,j){const{cal:Z,record:ae,hooks:re}=x,B=y(x,o(x));ae.value=B,ae.item.value=B,i(x),k(x),re.clearError();const ee=ae.validation&&ae.validation.valid===!1;(x.invalid.size>0||ae.item.validationMode==="change")&&f(x),Z.emitter.emit("change",{name:ae.item.name,value:B,previousValue:U,item:ae.item,change:W});for(const X of x.mapped){const ge=j.get(X.prop);X.record.value!==ge&&F(x,X,W).touched&&Z.emitter.emit("change",{name:X.prop,value:X.record.value,previousValue:ge,item:X.record.item,change:W})}re.applyRules(),(ae.item.validationMode==="change"||ee)&&re.validateItem()}function xe(x){return{rows:x.record.value,mapped:new Map(x.mapped.map(W=>[W.prop,W.record.value]))}}function ue(x,W){if(!x.grid||!x.editable())return null;const U=o(x),j=ie(x,U,W),Z=String(j[x.rowKey]),ae={type:"rowAdd",key:Z,row:{...j}},re=xe(x),B=X=>{if(!X)return null;const ge=s(x,()=>x.grid.rows.apply({add:[j]}));return ge&&ge.rejected&&ge.rejected.length?null:(le(x,ae,re.rows,re.mapped),Z)},ee=se(x,ae,[...U,j]);return ee&&typeof ee.then=="function"?ee.then(B):B(ee)}function R(x,W){if(!x.grid||!x.editable())return[];const U=[];for(const j of[].concat(W)){const Z=String(j),ae=o(x);if(!ae.some($e=>String($e[x.rowKey])===Z))continue;const re={type:"rowRemove",key:Z},B=xe(x),ee=ae.filter($e=>String($e[x.rowKey])!==Z),X=$e=>{$e&&(s(x,()=>x.grid.rows.apply({remove:[Z]})),x.activeKey===Z&&(x.activeKey=null),le(x,re,B.rows,B.mapped))},ge=se(x,re,ee);ge&&typeof ge.then=="function"?ge.then(X):X(ge),U.push(Z)}return U}function be(x){let W=[];try{W=x.grid.selection.keys()}catch{W=[]}return W.length?W.map(String):x.activeKey!=null?[x.activeKey]:[]}function q(x){const W=x.cal.doc,U=W.createElement("div");U.className="lat-form__grid-controls",U.setAttribute("role","toolbar"),U.setAttribute("aria-label",P(x,"form.grid.rowControls"));const j=(Z,ae,re)=>{const B=W.createElement("button");return B.type="button",B.className=`lat-form__grid-btn lat-form__grid-${Z}`,B.textContent=ae,B.setAttribute("aria-label",ae),B.addEventListener("click",re),U.appendChild(B),B};return x.addBtn=j("add",P(x,"form.grid.addRow"),()=>{const Z=ue(x);Z!=null&&typeof Z=="string"&&(x.activeKey=Z)}),x.delBtn=j("delete",P(x,"form.grid.deleteRow"),()=>{R(x,be(x))}),U}function D(x,W,U){if(!C(x))return null;const j=W.filter(re=>z.has((U.get(re)||{}).type));let Z=null,ae=null;if(x.row){const re=x.row===!0||typeof x.row=="function"||typeof x.row=="string"?{fn:x.row===!0?void 0:x.row}:x.row,B=C(re.columns)&&!Array.isArray(re.columns)?re.columns:null,ee=Array.isArray(re.columns)?re.columns.map(String):B?Object.keys(B):j,X={};for(const ge of ee)X[ge]=h(B&&B[ge]!==void 0?B[ge]:re.fn);Z={fields:ee,fns:X,label:re.label,labelField:re.labelColumn!=null?String(re.labelColumn):W.find(ge=>!ee.includes(ge))||null}}if(x.column){const re=x.column===!0||typeof x.column=="function"||typeof x.column=="string"?{fn:x.column===!0?void 0:x.column}:x.column;ae={fn:h(re.fn),fields:Array.isArray(re.columns)?re.columns.map(String):j,title:re.title,column:C(re.column)?re.column:{}}}return Z||ae?{row:Z,column:ae}:null}function J(x){const W=x.createGrid;if(typeof W!="function"){console.warn(`lattice-form: a "grid" item needs createGrid — pass it on the item or the form config: { type: 'grid', createGrid, … }.`);return}const U=x.props,j=x.columnDefs.map(re=>C(re)?re.edit===void 0?re:{...re,edit:l(re.edit,x.editable)}:re);if(x.totals&&x.totals.column){const re=x.totals.column;j.push({id:E,field:E,title:re.title!=null?re.title:x.say("form.grid.total"),sort:!1,...re.column,value:{deps:"*",compute:B=>v(re.fn,re.fields.map(ee=>B[ee]),{row:B})}})}const Z={...C(U.gridOptions)?U.gridOptions:{},rowKey:x.rowKey,columns:j,rows:x.pending,density:x.density},ae=W(x.gridEl,Z);x.grid=ae,x.pending=[];for(const re of x.columnDefs){const B=c(re);B&&!x.columnSpecs.has(B)&&x.columnSpecs.set(B,C(re)?re:{field:B})}ae.on("beforeEdit",re=>{if(x.mute>0||re.defaultPrevented)return;if(!x.editable()){re.preventDefault("readOnly");return}const B=o(x),ee=B.findIndex(ge=>String(ge[x.rowKey])===String(re.key));if(ee<0||!re.changes.length)return;const X=[];for(const ge of re.changes){const $e={type:"cellEdit",key:String(re.key),colId:ge.colId,value:u(ge.newValue),oldValue:u(ge.oldValue)},K=B.map((he,Ee)=>Ee===ee?{...he,[ge.colId]:$e.value}:he);X.push(se(x,$e,K))}if(X.some(ge=>ge&&typeof ge.then=="function"))return Promise.all(X).then(ge=>{ge.some($e=>$e===!1)&&re.preventDefault("prevented")});X.some(ge=>ge===!1)&&re.preventDefault("prevented")}),ae.on("cell:changed",re=>{if(x.mute>0)return;const B={type:"cellEdit",key:String(re.key),colId:re.colId,value:u(re.value),oldValue:u(re.oldValue)},ee={rows:x.record.value,mapped:new Map(x.mapped.map(X=>[X.prop,X.record.value]))};le(x,B,ee.rows,ee.mapped)}),ae.on("render:done",()=>_(x)),ae.on("cell:clicked",re=>{re&&re.key!=null&&(x.activeKey=String(re.key))}),x.gridEl.addEventListener("focusin",re=>{let B=re.target;for(;B&&B!==x.gridEl;){const ee=B.getAttribute&&B.getAttribute("data-key");if(ee!=null&&ee!==""){x.activeKey=ee;return}B=B.parentNode}}),k(x)}function ne(x,W){const U=W.doc,j=x.props||{},Z=U.createElement("div");Z.className="lat-form__grid",Z.setAttribute("role","group"),x.label!=null&&x.label!==""&&Z.setAttribute("aria-label",String(x.label));const ae=x.height==null?G:x.height,re=ae==="100%";Z.style.width="100%",re&&(Z.style.flex="1 1 auto",Z.style.minHeight="0");const B=Array.isArray(j.columns)?j.columns:[],ee=B.map(c).filter(he=>he!=null),X=new Map;B.forEach(he=>{const Ee=c(he);Ee&&X.set(Ee,C(he)?he:{field:Ee})});const ge={cal:W,item:x,props:j,el:Z,record:null,hooks:null,grid:null,gridEl:null,columnDefs:B,columnSpecs:X,fields:ee,rowKey:j.rowKey!=null?String(j.rowKey):"id",valueAs:j.valueAs==="arrays"?"arrays":"rows",valueRows:j.valueRows!==!1,createGrid:typeof j.createGrid=="function"?j.createGrid:W.model.createGrid,density:W.model.density,newRow:j.newRow,totals:null,mapped:[],pending:[],mute:0,invalid:new Map,marked:new Set,activeKey:null,readOnly:!1,disabled:!1,editable:()=>!ge.readOnly&&!ge.disabled,say:(he,Ee)=>P(ge,he,Ee)};ge.totals=D(j.totals,ee,X),ge.pending=V(ge,x.value),Z.__latGrid=ge;const $e=U.createElement("div");$e.className="lat-form__grid-host",$e.style.width="100%",re?($e.style.flex="1 1 auto",$e.style.minHeight="0"):$e.style.height=e(ae),ge.gridEl=$e,Z.appendChild($e),J(ge),j.rowControls===!0&&Z.appendChild(q(ge));let K=!1;return Z.addEventListener("focusin",()=>{K||(K=!0,oe(Z,U,"focus"))}),Z.addEventListener("focusout",he=>{Z.contains(he.relatedTarget)||(K=!1,oe(Z,U,"blur"))}),Z}function oe(x,W,U){const j=W&&W.defaultView,Z=j&&j.Event,ae=Z?new Z(U,{bubbles:!0}):{type:U,bubbles:!0,cancelable:!1,defaultPrevented:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){}};x.dispatchEvent(ae)}function ve(x,W){return{kind:"mapped",custom:!0,read(){return d(x,W.row,W.col)},write(U,j){x.grid&&(s(x,()=>x.grid.edit.setCells([{key:String(W.row),colId:W.col,value:j}])),pe(x))},state(){},validate(){if(!x.grid)return null;const U=o(x).find(Z=>String(Z[x.rowKey])===String(W.row));if(!U)return null;const j=w(x,W.col,U);return j?{code:"cell",message:j}:null},focus(){if(!x.grid)return;try{x.grid.scroll.toCell(String(W.row),W.col)}catch{}const U=p(x.gridEl,String(W.row),W.col);U&&typeof U.focus=="function"&&(U.getAttribute("tabindex")==null&&U.setAttribute("tabindex","-1"),U.focus())}}}function pe(x){const W=y(x,o(x));x.record.value=W,x.record.item.value=W,i(x),k(x),x.invalid=new Map,_(x)}H("grid",{kind:"grid",build:ne,read(x){const W=x.__latGrid;return y(W,o(W))},write(x,W){const U=x.__latGrid,j=V(U,W);if(!U.grid){U.pending=j;return}s(U,()=>U.grid.rows.load(j)),U.invalid=new Map,i(U),k(U),_(U)},state(x,W){const U=x.__latGrid;U.readOnly=W.readOnly===!0,U.disabled=W.disabled===!0,U.readOnly?x.setAttribute("aria-readonly","true"):x.removeAttribute("aria-readonly"),x.toggleAttribute("inert",U.disabled),x.inert=U.disabled,U.disabled?x.setAttribute("aria-disabled","true"):x.removeAttribute("aria-disabled");const j=!U.editable();for(const Z of[U.addBtn,U.delBtn])Z&&(Z.disabled=j)},validate(x,W){const U=x.__latGrid;if(!U.grid)return null;const j=f(U);return W.required===!0&&o(U).length===0?{code:"required",message:P(U,"form.grid.required")}:j.length?{code:"cell",message:b(U,j[0])}:null},focus(x){n(x.__latGrid)},blur(x){const W=x.ownerDocument&&x.ownerDocument.activeElement;W&&x.contains(W)&&typeof W.blur=="function"&&W.blur()},density(x,W){const U=x.__latGrid;if(U.density=W,U.grid&&typeof U.grid.set=="function")try{U.grid.set("density",W)}catch{}},connect(x,W,U){const j=x.control.__latGrid;j.record=x,j.hooks=U;const Z=C(j.props.fields)?j.props.fields:{};for(const ae of Object.keys(Z)){const re=Z[ae];if(!C(re)||re.row==null||re.col==null||W.items.has(ae))continue;const B={prop:ae,row:String(re.row),col:String(re.col),record:null},ee=ve(j,B),X=d(j,B.row,B.col);B.record={item:{kind:"item",name:ae,type:"grid",value:X,label:void 0,disabled:!1,readOnly:!1,required:!1,validation:null,validationMode:"submit",props:{},mappedFrom:x.item.name},el:x.el,control:x.control,controlWrap:null,def:ee,value:X,hidden:!1,validation:{pristine:!0,valid:null,code:null,message:null},validationEl:W.doc.createElement("div"),preEl:null,tooltipId:null,mapped:!0},j.mapped.push(B),W.items.set(ae,B.record)}x.mapped=j.mapped.map(ae=>ae.record),x.valueRows=j.valueRows,x.control.__latGridApi={addRow:ae=>ue(j,ae),removeRows:ae=>R(j,ae),grid:()=>j.grid}},destroy(x){const W=x.__latGrid;W&&W.grid&&typeof W.grid.destroy=="function"&&W.grid.destroy(),W&&(W.grid=null)}})}),Ie("packages/modules/form/controls/slider.js",function(S,te){"use strict";const H=te("packages/modules/form/controls/registry.js").registerControl,e=te("packages/modules/form/messages.js").t,E=0,I=100,z=1;function T(f,$,b){return Math.min(Math.max(f,$),b)}function G(f,$,b){return b>0?$+Math.round((f-$)/b)*b:f}function C(f){const $=typeof f.min=="number"&&Number.isFinite(f.min)?f.min:E;let b=typeof f.max=="number"&&Number.isFinite(f.max)?f.max:I;const _=typeof f.step=="number"&&Number.isFinite(f.step)&&f.step>0?f.step:z;return b<=$&&(b=$+_),{min:$,max:b,step:_}}function A(f,$,b,_){const n=Number(f),O=Number.isFinite(n)?n:$;return T(G(O,$,_),$,b)}function r(f,$,b,_){const n=Array.isArray(f)&&f.length>=2?f:[$,b];let O=A(n[0],$,b,_),ie=A(n[1],$,b,_);if(O>ie){const F=O;O=ie,ie=F}return[O,ie]}function u(f){return f.props&&typeof f.props=="object"?f.props:{}}function v(f){return u(f).range===!0}function h(f){return f.mode==="vertical"}function c(f){return u(f).inverse===!0}function l(f){return f.tooltip!==!1}function t(f){const $=u(f).tickTemplate;return typeof $=="function"?$:b=>String(b)}function p(f,$,b){const _=$&&$.defaultView,n=_&&_.Event,O=n?new n(b,{bubbles:!0}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};f.dispatchEvent(O)}function P(f,$){const b=T(($-f.min)/(f.max-f.min),0,1);return f.inverse?1-b:b}function o(f,$){const b=f.inverse?1-$:$;return T(G(f.min+b*(f.max-f.min),f.min,f.step),f.min,f.max)}function y(f,$,b,_){const n=f.vertical?$.height>0?($.bottom-_)/$.height:0:$.width>0?(b-$.left)/$.width:0;return T(n,0,1)}function V(f,$){const b=f.isRange?f.value[$]:f.value,_=`${(P(f,b)*100).toFixed(4)}%`,n=f.thumbs[$];f.vertical?n.style.bottom=_:n.style.left=_;const O=f.template(b);n.setAttribute("aria-valuenow",String(b)),n.setAttribute("aria-valuetext",O);const ie=f.tooltips[$];ie&&(ie.textContent=O)}function s(f){const $=f.isRange?P(f,f.value[0]):Math.min(P(f,f.min),P(f,f.value)),b=f.isRange?P(f,f.value[1]):Math.max(P(f,f.min),P(f,f.value)),_=`${(Math.min($,b)*100).toFixed(4)}%`,n=`${(Math.abs(b-$)*100).toFixed(4)}%`;f.vertical?(f.fill.style.bottom=_,f.fill.style.height=n):(f.fill.style.left=_,f.fill.style.width=n)}function d(f){const $=f.doc;for(;f.ticksEl.firstChild;)f.ticksEl.removeChild(f.ticksEl.firstChild);if(!f.tick&&!f.majorTick){f.ticksEl.hidden=!0;return}f.ticksEl.hidden=!1;const b=new Set;if(f.majorTick>0)for(let n=f.min;n<=f.max+1e-9;n+=f.majorTick)b.add(Math.round(n/f.step)*f.step);const _=(n,O)=>{const ie=T(n,f.min,f.max),F=`${(P(f,ie)*100).toFixed(4)}%`,se=$.createElement("span");if(se.className=O?"lat-form__slider-tick lat-form__slider-tick--major":"lat-form__slider-tick",se.setAttribute("aria-hidden","true"),f.vertical?se.style.bottom=F:se.style.left=F,f.ticksEl.appendChild(se),O){const le=$.createElement("span");le.className="lat-form__slider-tick-label",le.setAttribute("aria-hidden","true"),le.textContent=f.template(ie),f.vertical?le.style.bottom=F:le.style.left=F,f.ticksEl.appendChild(le)}};if(f.tick>0)for(let n=f.min;n<=f.max+1e-9;n+=f.tick){const O=Math.min(f.max,n);b.has(Math.round(O/f.step)*f.step)||_(O,!1)}for(const n of b)_(Math.min(f.max,Math.max(f.min,n)),!0)}function i(f){for(let $=0;$<f.thumbs.length;$++)V(f,$);s(f)}function m(f,$,b){const _=f.tooltips[$];_&&(b?_.classList.add("lat-form__slider-tooltip--visible"):_.classList.remove("lat-form__slider-tooltip--visible"))}function k(f,$,b){const _=T(G(b,f.min,f.step),f.min,f.max);if(!f.isRange){f.value=_,i(f);return}const n=f.value.slice();$===0?n[0]=Math.min(_,n[1]):n[1]=Math.max(_,n[0]),f.value=n,i(f)}function w(f,$){return f.isRange?f.value[$]:f.value}H("slider",{kind:"field",build(f,$){const b=$.doc,_=typeof $.t=="function"?$.t:e,{min:n,max:O,step:ie}=C(f),F=v(f),se=h(f),le=c(f),xe=b.createElement("div");xe.className=se?"lat-form__slider lat-form__slider--vertical":"lat-form__slider";const ue=b.createElement("div");ue.className="lat-form__slider-track",xe.appendChild(ue);const R=b.createElement("div");R.className="lat-form__slider-fill",ue.appendChild(R);const be=b.createElement("div");be.className="lat-form__slider-ticks",be.setAttribute("aria-hidden","true"),ue.appendChild(be);const q={doc:b,t:_,min:n,max:O,step:ie,isRange:F,vertical:se,inverse:le,tooltipOn:l(f),template:t(f),tick:Number(u(f).tick)>0?Number(u(f).tick):0,majorTick:Number(u(f).majorTick)>0?Number(u(f).majorTick):0,value:F?r(f.value,n,O,ie):A(f.value,n,O,ie),track:ue,fill:R,ticksEl:be,thumbs:[],tooltips:[],disabled:!1,readOnly:!1,dragging:null,disposers:[]};xe.__latSlider=q;const D=F?[_("form.slider.low"),_("form.slider.high")]:[null];for(let U=0;U<D.length;U++){const j=b.createElement("div");j.className="lat-form__slider-thumb",j.setAttribute("role","slider"),j.setAttribute("aria-orientation",se?"vertical":"horizontal"),j.setAttribute("aria-valuemin",String(n)),j.setAttribute("aria-valuemax",String(O));const Z=f.label!=null&&f.label!==""?String(f.label):_("form.slider");j.setAttribute("aria-label",D[U]!=null?`${Z} – ${D[U]}`:Z),j.tabIndex=0,ue.appendChild(j),q.thumbs.push(j);let ae=null;q.tooltipOn&&(ae=b.createElement("span"),ae.className="lat-form__slider-tooltip",ae.setAttribute("aria-hidden","true"),j.appendChild(ae)),q.tooltips.push(ae)}d(q),i(q);const J=()=>{p(xe,b,"change")},ne=()=>{p(xe,b,"input")},oe=(U,j)=>{if(q.disabled||q.readOnly)return;const Z=w(q,j);if(U.key==="ArrowRight"||U.key==="ArrowUp")k(q,j,Z+q.step);else if(U.key==="ArrowLeft"||U.key==="ArrowDown")k(q,j,Z-q.step);else if(U.key==="PageUp")k(q,j,Z+q.step*10);else if(U.key==="PageDown")k(q,j,Z-q.step*10);else if(U.key==="Home")k(q,j,q.min);else if(U.key==="End")k(q,j,q.max);else return;U.preventDefault(),w(q,j)!==Z&&(ne(),J())},ve=(U,j)=>{q.disabled||q.readOnly||(U.preventDefault(),q.dragging=j,q.dragStartValue=w(q,j),m(q,j,!0),q.thumbs[j].focus())},pe=U=>{if(q.disabled||q.readOnly||U.target!==ue&&U.target!==R)return;const j=ue.getBoundingClientRect(),Z=o(q,y(q,j,U.clientX,U.clientY)),ae=q.isRange?Math.abs(Z-q.value[0])<=Math.abs(Z-q.value[1])?0:1:0;q.dragging=ae,q.dragStartValue=w(q,ae),k(q,ae,Z),ne(),m(q,ae,!0),q.thumbs[ae].focus()},x=U=>{if(q.dragging==null)return;const j=ue.getBoundingClientRect(),Z=o(q,y(q,j,U.clientX,U.clientY));Z!==w(q,q.dragging)&&(k(q,q.dragging,Z),ne())},W=()=>{if(q.dragging==null)return;const U=q.dragging;q.dragging=null,(!q.focused||q.focused!==U)&&m(q,U,!1),w(q,U)!==q.dragStartValue&&J()};return ue.addEventListener("pointerdown",pe),b.addEventListener("pointermove",x),b.addEventListener("pointerup",W),q.disposers.push(()=>ue.removeEventListener("pointerdown",pe),()=>b.removeEventListener("pointermove",x),()=>b.removeEventListener("pointerup",W)),q.thumbs.forEach((U,j)=>{const Z=ee=>{ee.stopPropagation(),ve(ee,j)},ae=ee=>oe(ee,j),re=()=>{q.focused=j,m(q,j,!0)},B=()=>{q.focused===j&&(q.focused=null),q.dragging!==j&&m(q,j,!1)};U.addEventListener("pointerdown",Z),U.addEventListener("keydown",ae),U.addEventListener("focus",re),U.addEventListener("blur",B),q.disposers.push(()=>U.removeEventListener("pointerdown",Z),()=>U.removeEventListener("keydown",ae),()=>U.removeEventListener("focus",re),()=>U.removeEventListener("blur",B))}),xe},read(f){const $=f.__latSlider;return $?$.value:E},write(f,$){const b=f.__latSlider;b&&(b.value=b.isRange?r($,b.min,b.max,b.step):A($,b.min,b.max,b.step),i(b))},state(f,$){const b=f.__latSlider;if(b){b.disabled=$.disabled===!0,b.readOnly=$.readOnly===!0,f.setAttribute("data-disabled",String(b.disabled)),f.setAttribute("data-readonly",String(b.readOnly));for(const _ of b.thumbs)_.tabIndex=b.disabled?-1:0,b.disabled?_.setAttribute("aria-disabled","true"):_.removeAttribute("aria-disabled"),b.readOnly?_.setAttribute("aria-readonly","true"):_.removeAttribute("aria-readonly")}},focus(f){const $=f.__latSlider;$&&$.thumbs[0]&&typeof $.thumbs[0].focus=="function"&&$.thumbs[0].focus()},blur(f){const $=f.__latSlider;if($)for(const b of $.thumbs)typeof b.blur=="function"&&b.blur()},destroy(f){const $=f.__latSlider;if($)for(const b of $.disposers.splice(0))b()},live:{min(f,$){const b=f.__latSlider;if(b){b.min=typeof $=="number"&&Number.isFinite($)?$:E,b.max<=b.min&&(b.max=b.min+b.step);for(const _ of b.thumbs)_.setAttribute("aria-valuemin",String(b.min));d(b),i(b)}},max(f,$){const b=f.__latSlider;if(b){b.max=typeof $=="number"&&Number.isFinite($)&&$>b.min?$:b.min+b.step;for(const _ of b.thumbs)_.setAttribute("aria-valuemax",String(b.max));d(b),i(b)}},step(f,$){const b=f.__latSlider;b&&(b.step=typeof $=="number"&&Number.isFinite($)&&$>0?$:z,d(b),i(b))},tick(f,$){const b=f.__latSlider;b&&(b.tick=Number($)>0?Number($):0,d(b))},majorTick(f,$){const b=f.__latSlider;b&&(b.majorTick=Number($)>0?Number($):0,d(b))}}})}),Ie("packages/modules/form/controls/index.js",function(S,te){"use strict";const we=te("packages/modules/form/controls/input.js"),H=te("packages/modules/form/controls/number.js"),L=te("packages/modules/form/controls/textarea.js"),e=te("packages/modules/form/controls/checkbox.js"),E=te("packages/modules/form/controls/button.js"),I=te("packages/modules/form/controls/buttons.js"),z=te("packages/modules/form/controls/text.js"),T=te("packages/modules/form/controls/combo.js"),G=te("packages/modules/form/controls/select.js"),C=te("packages/modules/form/controls/listbox.js"),A=te("packages/modules/form/controls/radiogroup.js"),r=te("packages/modules/form/controls/checkboxgroup.js"),u=te("packages/modules/form/controls/toggle.js"),v=te("packages/modules/form/controls/datepicker.js"),h=te("packages/modules/form/controls/time.js"),c=te("packages/modules/form/controls/daterange.js"),l=te("packages/modules/form/controls/file.js"),t=te("packages/modules/form/controls/richtext.js"),p=te("packages/modules/form/controls/rating.js"),P=te("packages/modules/form/controls/stage.js"),o=te("packages/modules/form/controls/chips.js"),y=te("packages/modules/form/controls/otp.js"),V=te("packages/modules/form/controls/color.js"),s=te("packages/modules/form/controls/barcode.js"),d=te("packages/modules/form/controls/speeddial.js"),i=te("packages/modules/form/controls/container.js"),m=te("packages/modules/form/controls/avatar.js"),k=te("packages/modules/form/controls/togglegroup.js"),w=te("packages/modules/form/controls/grid.js"),f=te("packages/modules/form/controls/slider.js")}),Ie("packages/modules/form/create.js",function(S,te){"use strict";Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return W}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return U}});const we=te("packages/modules/form/styles.js"),H=we.NS,L=we.injectStyles,e=te("packages/modules/form/model.js"),E=e.resolveConfig,I=e.DENSITIES,z=e.cssSize,T=e.resolveLabelPosition,G=te("packages/modules/form/view.js"),C=G.markValidation,A=G.mount,r=G.runValidation,u=G.validateItem,v=G.wizardBack,h=G.wizardGoTo,c=G.wizardNext,l=G.VALIDATED_KINDS,t=G.applyCss,p=G.applyItemWidth,P=G.applyItemHeight,o=G.applyItemLabelPosition,y=G.applyItemLabelWidth,V=te("packages/modules/form/emitter.js"),s=V.Emitter,d=V.FORM_EVENTS,m=te("packages/modules/form/messages.js").createTranslator,k=te("packages/modules/form/bind.js"),w=k.resolveBind,f=k.applyBinding,b=te("packages/modules/form/rules.js").applyRules,n=te("packages/modules/form/state.js").syncRecordState,O=te("packages/modules/form/controls/container.js"),ie=O.attachToContainer,F=O.attachHtmlToContainer,se=O.getContainerWidget,xe=te("packages/modules/form/controls/button.js").setButtonCaption,R=te("packages/modules/form/ready.js").createReadySignal,q=te("packages/dom/src/watermark.js").mountViewWatermark,D=te("packages/modules/form/controls/index.js"),J=new Set;function ne(j,Z){J.has(j)||(J.add(j),console.warn("[lattice]",Z))}const oe=new Set(["min","max","step"]);function ve(j,Z){const ae=j.item;switch(Z){case"label":return ae.label!=null?String(ae.label):null;case"helpMessage":return ae.helpMessage!=null?String(ae.helpMessage):null;case"placeholder":return ae.placeholder!=null?String(ae.placeholder):null;case"labelPosition":return j.labelPosition;case"hiddenLabel":return ae.hiddenLabel===!0;case"labelWidth":return j.labelWidth!=null?j.labelWidth:null;case"required":return ae.required===!0;case"readOnly":return ae.readOnly===!0;case"disabled":return ae.disabled===!0;case"hidden":return j.hidden===!0;case"width":return ae.width!=null?ae.width:null;case"height":return ae.height!=null?ae.height:null;case"padding":return ae.padding!=null?ae.padding:null;case"min":return ae.min!=null?ae.min:null;case"max":return ae.max!=null?ae.max:null;case"step":return ae.step!=null?ae.step:null;case"options":return ae.options!=null?ae.options:null;case"validation":return ae.validation!=null?ae.validation:null;case"errorMessage":return ae.errorMessage!=null?ae.errorMessage:null;case"css":return ae.css!=null?ae.css:null;default:if(ae.props&&Object.hasOwn(ae.props,Z))return ae.props[Z];ne(`form.item.get.unknown:${Z}`,`lattice-form: getItem(name).get("${Z}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`);return}}function pe(j,Z,ae,re){const B=Z.item,ee=Z.facade;switch(ae){case"label":{const X=re==null?"":String(re);B.label=X,Z.def.kind==="button"?xe(Z.control,X):Z.labelEl?Z.labelEl.textContent=X:Z.placeholderEl&&X!==""&&Z.placeholderEl.setAttribute("aria-label",X);return}case"helpMessage":{const X=re==null?null:String(re);if(B.helpMessage=X,X==null||X===""){Z.helpEl&&(Z.helpEl.remove(),Z.helpEl=null);return}if(Z.helpEl)Z.helpEl.textContent=X;else{const ge=j.doc.createElement("div");ge.className=`${H}__help`,ge.textContent=X,Z.controlWrap.appendChild(ge),Z.helpEl=ge}return}case"placeholder":{B.placeholder=re,Z.placeholderBase=re==null?"":String(re),Z.def.live&&typeof Z.def.live.placeholder=="function"&&Z.def.live.placeholder(Z.control,re,B,Z),b(j);return}case"labelPosition":{o(Z,T(re)),B.labelPosition=Z.labelPosition;return}case"labelWidth":{B.labelWidth=re,y(Z,re);return}case"hiddenLabel":{B.hiddenLabel=re===!0,o(Z,B.hiddenLabel?"hidden":Z.labelPositionBase);return}case"required":{B.required=re===!0,b(j);return}case"readOnly":{B.readOnly=re===!0,n(Z);return}case"disabled":{B.disabled=re===!0,n(Z);return}case"hidden":{re===!0?ee.hide():ee.show();return}case"width":{B.width=re,p(Z,re);return}case"height":{B.height=re,P(Z,re);return}case"padding":{B.padding=re==null?null:z(re),Z.def.kind==="container"?Z.control.style.padding=B.padding==null?"":B.padding:Z.el.style.padding=B.padding==null?"":B.padding;return}case"css":{B.css=re,t(Z.el,re);return}case"validation":{B.validation=re;return}case"errorMessage":{B.errorMessage=re;return}case"options":{ee.setOptions(re);return}default:{const X=Z.def.live;if(X&&typeof X[ae]=="function"){oe.has(ae)?B[ae]=re:(B.props||(B.props={}),B.props[ae]=re),X[ae](Z.control,re,B,Z);return}ne(`form.item.set.unknown:${ae}`,`lattice-form: getItem(name).set() was given "${ae}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`)}}}function x(j){if(Array.isArray(j))return j.map(x);if(j==null||typeof j!="object"||typeof j.nodeType=="number"||Object.getPrototypeOf(j)!==Object.prototype)return j;const Z=j.type==="buttons"?"buttons":j.type==="speeddial"?"speedDialItems":null,ae=Z!=null&&Array.isArray(j.items),re={};for(const B of Object.keys(j))ae&&B==="items"||(re[B]=x(j[B]));return ae&&(re[Z]=j.items.map(x)),re}function W(j,Z={}){const ae=j&&j.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,re=w(Z);let B=Z;if(re){if(B={...Z},B.density===void 0){const g=re.density();g!=null&&(B.density=g)}if(!(Array.isArray(B.rows)&&B.rows.length||Array.isArray(B.cols)&&B.cols.length)){const g=re.items();g.length&&(B.rows=[{items:g}])}}const ee=E(x(B)),X={el:j||null,doc:ae,model:ee,config:ee,items:new Map,order:[],emitter:new s,t:m(ee.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ge=N=>{if(N.kind==="fieldset")return N.facade||(N.facade={el:N.el,name:N.name,getValue(){},setValue(){return N.facade},show(){return N.hidden=!1,N.el.hidden=!1,N.facade},hide(){return N.hidden=!0,N.el.hidden=!0,N.facade},isVisible(){return!N.hidden},disable(){return N.facade},enable(){return N.facade},focus(){return typeof N.el.focus=="function"&&N.el.focus(),N.facade},blur(){return typeof N.el.blur=="function"&&N.el.blur(),N.facade},validate(){return!0},setLoading(){return N.facade},setOptions(){return N.facade},reload(){return N.facade},getLabel(){return N.label},setLabel(g){const Q=g==null?"":String(g);if(N.label=Q,N.legendEl)N.legendEl.textContent=Q;else{const M=X.doc.createElement("legend");M.className=`${H}__legend`,M.textContent=Q,N.el.insertBefore(M,N.el.firstChild),N.legendEl=M}return N.facade},setHelp(g){if(g==null||g==="")return N.helpEl&&(N.helpEl.remove(),N.helpEl=null),N.facade;const Q=String(g);if(N.helpEl)N.helpEl.textContent=Q;else{const M=X.doc.createElement("div");M.className=`${H}__help`,M.textContent=Q,N.el.appendChild(M),N.helpEl=M}return N.facade},set(g){if(g==null||typeof g!="object")return N.facade;for(const Q of Object.keys(g))Q==="label"?N.facade.setLabel(g[Q]):Q==="helpMessage"?N.facade.setHelp(g[Q]):ne(`form.item.set.unknown:${Q}`,`lattice-form: getItem(name).set() was given "${Q}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`);return N.facade},get(g){if(g==="label")return N.label!=null?N.label:null;if(g==="helpMessage")return N.helpEl?N.helpEl.textContent:null;ne(`form.item.get.unknown:${g}`,`lattice-form: getItem(name).get("${g}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`)},setPlaceholder(){return N.facade},getPlaceholder(){return null}}),N.facade;if(!N.facade&&(N.facade={el:N.el,item:N.item,name:N.item.name,get labelEffectivePosition(){return N.labelEffectivePosition},getValue(){return N.value},setValue(g){return N.def.write(N.control,g),N.value=N.def.read(N.control),N.item.value=N.value,b(X),N.facade},show(){return N.hidden=!1,N.el.hidden=!1,N.facade},hide(){return N.hidden=!0,N.el.hidden=!0,N.facade},isVisible(){return!(N.hidden||N.ruleHidden)},disable(){return N.item.disabled=!0,n(N),N.facade},enable(){return N.item.disabled=!1,n(N),N.facade},focus(){return typeof N.def.focus=="function"?N.def.focus(N.control):typeof N.control.focus=="function"&&N.control.focus(),N.facade},blur(){return typeof N.def.blur=="function"?N.def.blur(N.control):typeof N.control.blur=="function"&&N.control.blur(),N.facade},validate(){return u(X,N)},setLoading(g){return typeof N.def.setLoading=="function"&&N.def.setLoading(N.control,g===!0),N.facade},setOptions(g){const Q=N.control&&(N.control.__combo||N.control.__select);return Q&&typeof Q.setOptions=="function"&&(Q.setOptions(g),N.item.options=g),N.facade},reload(){const g=N.control&&(N.control.__combo||N.control.__select);return g&&typeof g.reload=="function"&&g.reload(),N.facade},getOptions(){const g=N.control&&N.control.__listbox;return g&&typeof g.getOptions=="function"?g.getOptions():void 0},addOption(g,Q){const M=N.control&&N.control.__listbox;return M&&typeof M.addOption=="function"&&M.addOption(g,Q),N.facade},removeOption(g){const Q=N.control&&N.control.__listbox;return Q&&typeof Q.removeOption=="function"&&Q.removeOption(g),N.facade},updateOption(g,Q){const M=N.control&&N.control.__listbox;return M&&typeof M.updateOption=="function"&&M.updateOption(g,Q),N.facade},filter(g){const Q=N.control&&N.control.__listbox;return Q&&typeof Q.filter=="function"&&Q.filter(g),N.facade},remeasure(){const g=N.control&&N.control.__listbox;return g&&typeof g.remeasure=="function"&&g.remeasure(),N.facade},getLabel(){return N.item.label!=null?String(N.item.label):null},setLabel(g){return N.facade.set({label:g})},setHelp(g){return N.facade.set({helpMessage:g})},getPlaceholder(){return N.facade.get("placeholder")},setPlaceholder(g){return N.facade.set({placeholder:g})},set(g){if(g==null||typeof g!="object")return N.facade;for(const Q of Object.keys(g))pe(X,N,Q,g[Q]);return N.facade},get(g){return ve(N,g)}},N.def.kind==="container"&&(N.facade.attach=(g,Q)=>(ie(N.control,g,Q),N.facade),N.facade.attachHTML=g=>(F(X.doc,N.control,g),N.facade),N.facade.getWidget=()=>se(N.control)),N.def.kind==="grid")){const g=N.control.__latGridApi;N.facade.addRow=Q=>g.addRow(Q),N.facade.removeRows=Q=>g.removeRows(Q),N.facade.getGrid=()=>g.grid()}return N.facade};j&&ae&&L(ae);const $e=j&&typeof j.style.cssText=="string"?j.style.cssText:"",K=new Set(["field","toggle","display","grid"]),he={el:j||null,config:ee,getItem(N){const g=X.items.get(String(N));return g?ge(g):void 0},getValue(){const N={};for(const g of X.order)if(g.item.name!=null&&K.has(g.def.kind)&&(g.valueRows!==!1&&(N[g.item.name]=g.value),g.mapped))for(const Q of g.mapped)N[Q.item.name]=Q.value;return N},setValue(N){if(N==null||typeof N!="object")return he;for(const g of Object.keys(N)){const Q=X.items.get(g);Q&&ge(Q).setValue(N[g])}return he},clear(){for(const N of X.order)if(N.item.name!=null)if(N.def.kind==="field"){const g=N.item.props&&N.item.props.multiple===!0,Q=N.item.type==="togglegroup"?{}:N.item.type==="chips"?g?[]:null:N.item.type==="number"||N.item.type==="radiogroup"||N.item.type==="datepicker"||N.item.type==="stage"||N.item.type==="combo"&&!g?null:N.item.type==="rating"?0:N.item.type==="file"||N.item.type==="checkboxgroup"||(N.item.type==="select"||N.item.type==="combo")&&g?[]:"";N.value=Q,N.item.value=Q,N.def.write(N.control,Q)}else N.def.kind==="toggle"?(N.value=!1,N.item.value=!1,N.def.write(N.control,!1)):N.def.kind==="grid"&&(N.def.write(N.control,[]),N.value=N.def.read(N.control),N.item.value=N.value);return b(X),he},validate(){const N=[];let g=!0;for(const Q of X.order){if(Q.item.name==null||!l.has(Q.def.kind)||Q.item.disabled===!0||Q.ruleHidden===!0||Q.hidden===!0||(typeof Q.def.reset=="function"&&Q.def.reset(Q.control,Q.item),Q.item.required!==!0&&Q.item.validation==null&&typeof Q.def.validate!="function"&&Q.ruleRequired!==!0))continue;const M=r(X,Q);C(X,Q,M),M&&(g=!1,N.push({name:Q.item.name,rule:M.code,message:M.message}))}return X.emitter.emit("validated",{name:null,item:null,value:void 0,valid:g,failures:N}),g},forEach(N){for(const g of X.order)N(ge(g))},on(N,g){return N!=="*"&&!d.includes(N)?(console.warn(`lattice-form: "${N}" is not a form event and will never fire.`),()=>{}):X.emitter.on(N,g)},off(N,g){X.emitter.off(N,g)},setDensity(N){if(!I.includes(N))return he;ee.density=N,j&&j.setAttribute("data-density",N);for(const g of X.order)typeof g.def.density=="function"&&g.def.density(g.control,N);return he},setReadOnly(N){for(const g of X.order)g.item.readOnly=N===!0,n(g);return he},setDisabled(N){for(const g of X.order)g.item.disabled=N===!0,n(g);return he},setSpacing(N){const g=N==null?null:z(N);return ee.spacing=g,j&&(g==null?j.style.removeProperty("--lattice-form-item-gap"):j.style.setProperty("--lattice-form-item-gap",g)),he},isDirty(N){return N==null?X.dirty.size>0:X.dirty.has(String(N))},isConflicted(N){return N==null?X.conflicts.size>0:X.conflicts.has(String(N))},save(){const N=X.bound;if(!N)return!1;if(X.dirty.size===0)return!0;const g={};for(const a of X.dirty){const Y=he.getItem(a);Y&&(g[a]=Y.getValue())}const Q=N.save(g),M=a=>{if(!a)return!1;for(const Y of Object.keys(g))X.baseline[Y]=g[Y],X.dirty.delete(Y),X.conflicts.delete(Y);return!0};return Q&&typeof Q.then=="function"?Q.then(M):M(Q)},revert(){for(const N of X.dirty){if(!Object.hasOwn(X.baseline,N))continue;const g=X.items.get(N);g&&ge(g).setValue(X.baseline[N])}return X.dirty.clear(),X.conflicts.clear(),he},_bind(N){return f(X,he,N),he},_commit(N){for(const g of Object.keys(N||{}))X.baseline[g]=N[g],X.dirty.delete(g),X.conflicts.delete(g)},get steps(){return X.model.steps||[]},get activeStep(){return X.wizard?X.wizard.active:0},next(){return c(X)},back(){return v(X)},goToStep(N){return h(X,N)},__reapplyRules(){return b(X),he},destroy(){Ee.fail(new Error("lattice-grid: the form was destroyed before it became ready."));for(const g of X.disposers.splice(0))g();X.emitter.clear();const N=X.el;if(N){for(;N.firstChild;)N.removeChild(N.firstChild);N.classList.remove(H),N.removeAttribute("data-density"),N.removeAttribute("data-lattice-standalone"),N.style.cssText=$e,N.__latticeForm===he&&(N.__latticeForm=null)}X.items.clear(),X.order.length=0,X.dirty.clear(),X.conflicts.clear(),X.baseline={},X.bound=null}};j&&(j.__latticeForm=he),X.form=he,j&&ae&&(A(X),X.disposers.push(q(j,Z).destroy)),re&&f(X,he,re);const Ee=R();return Ee.settleSoon(),he.ready=Ee.promise,he}const U=W}),Ie("packages/modules/form/group.js",function(S,te){"use strict";Object.defineProperty(S,"GROUP_EVENTS",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return l}});const H=te("packages/modules/form/emitter.js").Emitter,e=te("packages/modules/form/bind-router.js").routerBinding,E=te("packages/modules/form/group-rules.js"),I=E.attachRuleResolver,z=E.detachRuleResolver,T=E.makeRuleResolver,G=E.reapplyMembers,C=Object.freeze(["change","validated"]),A=new Set;function r(t){const p={},P=t.getValue();for(const o of Object.keys(P))t.isDirty(o)===!0&&(p[o]=P[o]);return p}function u(t,p){A.has(t)||(A.add(t),console.warn("[lattice]",p))}const v=new WeakMap;function h(t,p){let P=v.get(t);if(!P){const o=t.destroy;P={original:o,watchers:new Set},v.set(t,P),t.destroy=function(){const V=v.get(t)||P;for(const s of[...V.watchers])s.detach(t);return o.call(t)}}P.watchers.add(p)}function c(t,p={}){const P=[],o=new Map,y=new Map,V=new H,s=p&&typeof p.bind=="object"&&p.bind.router!=null?p.bind:null,d=s?e(s):null,i=()=>{o.clear(),y.clear();for(const $ of P){const b=Object.keys($.form.getValue());for(const _ of b)o.has(_)?u(`form.group.duplicate-field:${_}`,`form group: the field "${_}" is owned by more than one form; the first one added wins.`):o.set(_,$);$.id!=null&&!y.has($.id)&&y.set($.id,$)}},m=T({owners:o,byId:y,warnOnce:u}),k=$=>{const b=P.findIndex(O=>O.form===$);if(b===-1)return!1;const[_]=P.splice(b,1);for(const O of _.unsubs)O();i();const n=v.get($);return n&&(n.watchers.delete(w),n.watchers.size===0&&(v.delete($),$.destroy=n.original)),z($),typeof $.__reapplyRules=="function"&&$.__reapplyRules(),G(P),!0},w={detach:k},f={get forms(){return P.map($=>$.form)},add($,b){if(!$||typeof $!="object"||typeof $.getValue!="function"||P.some(ie=>ie.form===$))return f;const _={form:$,id:b&&b.id,unsubs:[],lastFailures:[]};P.push(_),d&&typeof $._bind=="function"&&$._bind(d);const n=ie=>{V.emit("change",{form:$,name:ie.name,value:ie.value}),G(P)},O=ie=>{_.lastFailures=ie.failures||[],V.emit("validated",{form:$,valid:ie.valid})};return _.unsubs.push($.on("change",n)),_.unsubs.push($.on("validated",O)),h($,w),i(),I($,m),G(P),f},remove($){return k($),f},getValue(){const $={};for(const b of P)Object.assign($,b.form.getValue());return p.transform&&typeof p.transform.get=="function"?p.transform.get($):$},setValue($){if(p.transform&&typeof p.transform.set=="function")p.transform.set($);else if($!=null&&typeof $=="object")for(const b of Object.keys($)){const _=o.get(b);_&&_.form.setValue({[b]:$[b]})}return G(P),f},getItem($){const b=o.get(String($));return b?b.form.getItem($):void 0},validate(){let $=!0;const b=[];for(const _ of P){_.form.validate()===!1&&($=!1);for(const O of _.lastFailures||[])b.push({form:_.form,name:O.name})}if(!$){const _=b.find(n=>n.name!=null);if(_){const n=_.form.getItem(_.name);n&&(n.focus(),n.el&&typeof n.el.scrollIntoView=="function"&&n.el.scrollIntoView({block:"nearest"}))}}return $},setReadOnly($){for(const b of P)b.form.setReadOnly($===!0);return f},setDisabled($){for(const b of P)b.form.setDisabled($===!0);return f},clear(){for(const $ of P)$.form.clear();return f},reset(){for(const $ of P)typeof $.form.revert=="function"&&$.form.revert();return f},save(){if(!d)return!1;const $=P.map(O=>({member:O,changes:r(O.form)})),b={};for(const O of $)Object.assign(b,O.changes);if(!Object.keys(b).length)return!0;const _=d.save(b),n=O=>{if(!O)return!1;for(const ie of $)ie.member.form&&typeof ie.member.form._commit=="function"&&ie.member.form._commit(ie.changes);return!0};return _&&typeof _.then=="function"?_.then(n):n(_)},isDirty(){return P.some($=>$.form.isDirty()===!0)},on($,b){return $!=="*"&&!C.includes($)?(console.warn(`lattice-form: "${$}" is not a form group event and will never fire.`),()=>{}):V.on($,b)},off($,b){V.off($,b)},destroy(){for(;P.length;){const $=P[P.length-1].form;k($)}V.clear()}};if(Array.isArray(t))for(const $ of t)f.add($);else t&&typeof t=="object"&&typeof t.getValue=="function"&&f.add(t);return f}const l=c}),Ie("packages/modules/form/enhance.js",function(S,te){"use strict";Object.defineProperty(S,"itemForField",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"configForForm",{enumerable:!0,get:function(){return G}}),Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return C}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return A}});const H=te("packages/modules/form/create.js").createForm,L=Object.freeze(["text","email","password","url"]);function e(r){const u=r&&r.type?String(r.type).toLowerCase():"";return u==="submit"||u==="image"||r&&r.tagName==="BUTTON"&&u!=="button"}function E(r){if(!r||!r.name)return!1;const u=r&&r.type?String(r.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||r.tagName==="BUTTON")}function I(r,u){if(typeof r.getAttribute=="function"){const v=r.getAttribute("data-label");if(v!=null&&v!=="")return v;const h=r.getAttribute("aria-label");if(h!=null&&h!=="")return h}if(r.id&&typeof u.querySelector=="function"){const v=u.querySelector(`label[for="${r.id}"]`);if(v&&v.textContent!=null){const h=String(v.textContent).trim();if(h)return h}}return String(r.name||"")}function z(r){return r.type==="checkbox"?r.checked===!0:r.value==null?"":r.value}function T(r,u){if(e(r)||!E(r))return null;const v=r.type?String(r.type).toLowerCase():"text",h={type:"input",name:r.name,label:I(r,u),value:z(r)};if(v==="number")h.type="number",r.min!=null&&r.min!==""&&(h.min=Number(r.min)),r.max!=null&&r.max!==""&&(h.max=Number(r.max)),r.step!=null&&r.step!==""&&(h.step=Number(r.step));else if(v==="checkbox")h.type="checkbox";else if(r.tagName==="TEXTAREA")h.type="textarea";else if(L.includes(v))h.subtype=v,(v==="email"||v==="url")&&(h.validation=v);else return null;if(r.placeholder!=null&&r.placeholder!==""&&(h.placeholder=r.placeholder),r.required===!0&&(h.required=!0),r.disabled===!0&&(h.disabled=!0),r.readOnly===!0&&(h.readOnly=!0),typeof r.getAttribute=="function"){const c=r.getAttribute("data-validation")||r.getAttribute("data-rule");c&&(h.validation=c);const l=r.getAttribute("data-error-message");l&&(h.errorMessage=l);const t=r.getAttribute("data-help");t&&(h.helpMessage=t)}return h}function G(r,u){const v=r&&r.ownerDocument||(typeof document<"u"?document:null),h=[],c=r&&r.elements?r.elements:[];for(const l of c){const t=T(l,v);t&&h.push(t)}return{...u||{},rows:h}}function C(r,u){if(!r)return null;if(r.__latticeForm)return r.__latticeForm;const v=r.ownerDocument||(typeof document<"u"?document:null),h=[],c=r.elements?r.elements:[];for(const t of c)e(t)&&h.push(t);const l=H(r,G(r,u));r.__latticeForm=l;for(const t of h)t.parentNode!==r&&r.appendChild(t);return typeof r.addEventListener=="function"&&v&&r.addEventListener("submit",t=>{l.validate()||(t.preventDefault(),t.stopImmediatePropagation())},!0),l}const A=C}),Ie("packages/modules/form/index.js",function(S,te){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return v}});const H=te("packages/modules/form/styles.js").NS,e=te("packages/modules/form/controls/registry.js").registerControl,I=te("packages/modules/form/model.js").cssSize,T=te("packages/modules/form/create.js").createForm,G=te("packages/modules/form/controls/combo.js");Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return G.createCombo}});const C=te("packages/modules/form/controls/speeddial.js");Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return C.createSpeedDial}});const A=te("packages/modules/form/group.js");Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return A.createFormGroup}});const r=te("packages/modules/form/enhance.js");Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return r.enhanceForm}});function u(h,c){if(c===null||typeof c!="object"||typeof c.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const l=typeof c.getValue=="function"?c.getValue:()=>null,t=typeof c.setValue=="function"?c.setValue:()=>{};e(String(h),{kind:"field",custom:!0,validate:typeof c.validate=="function"?(p,P,o)=>c.validate(o,P,p):void 0,destroy:typeof c.destroy=="function"?p=>c.destroy(p):void 0,build(p,P){const o=P.doc.createElement("div");o.className=`${H}__custom`;const y={name:p.name,item:p,getValue(){return y._read?y._read():void 0},setValue(V){y._write&&y._write(V)},onChange(V){y._commit&&y._commit(V===void 0?l(o):V)},onInput(V){y._input&&y._input(V===void 0?l(o):V)}};return o.__latticeFormApi=y,c.create(o,p,y),p.height!=null&&(o.style.height=I(p.height)),t(o,p.value),o},read(p){return l(p)},write(p,P){t(p,P)},state(p,P){p.setAttribute("data-disabled",P.disabled===!0?"true":"false"),p.setAttribute("data-readonly",P.readOnly===!0?"true":"false")}})}const v=T});const Mt=sr("packages/modules/form/index.js"),Sr=Mt.createCombo,Or=Mt.createSpeedDial,jr=Mt.registerControl,Nr=Mt.createForm,Tr=Mt.createFormGroup,Pr=Mt.enhanceForm;var Lr=Mt.default;export{Sr as createCombo,Nr as createForm,Tr as createFormGroup,Or as createSpeedDial,Lr as default,Pr as enhanceForm,jr as registerControl};
|
|
2383
2383
|
|
|
2384
2384
|
//# sourceMappingURL=form.esm.min.js.map
|