@toclocoinc/lattice-grid 1.117.2 → 1.117.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 +6 -0
- package/README.md +1 -1
- package/angular/package.json +1 -1
- package/docs/API.html +4 -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 +1 -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 +1 -1
- 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 +4 -4
- 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 +1 -1
- package/modules/form.esm.min.js +17 -17
- package/modules/form.esm.min.js.map +2 -2
- package/modules/form.min.cjs +17 -17
- package/modules/form.min.js +17 -17
- 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.min.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.117.
|
|
2
|
+
* Lattice Grid 1.117.3, form module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
6
|
-
(function(
|
|
6
|
+
(function(hn){"use strict";var Tn=!0,sn=Object.create(null),cn=Object.create(null);function Me(A,J){sn[A]=J}function un(A){var J=cn[A];if(J)return J;var _e=Object.create(null);cn[A]=_e;var F=sn[A];if(!F)throw new Error("[lattice] missing module: "+A);return F(_e,un),_e}Me("packages/modules/form/scheme.js",function(A,J){"use strict";Object.defineProperty(A,"ACCENT_IS_DEFAULT",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"rootDefaultsCss",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"DARK_ACCENT_FAMILY",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"darkAccentCss",{enumerable:!0,get:function(){return e}});const _e="style(--lattice-accent: #1a6bc7) or style(--lattice-accent: #4e9bea)";function F(){return`
|
|
7
7
|
@layer lattice{
|
|
8
8
|
:where(:root,:host){
|
|
9
9
|
--lattice-border-color:#dfe3e6;
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
}
|
|
24
24
|
}`}const L="--lattice-accent:#4e9bea; --lattice-accent-contrast:#06101b; --lattice-focus-color:#6cb0f2;";function e(P,D=L){return`
|
|
25
25
|
@scope ([data-theme="dark"]){ @container ${_e}{ :scope${P},${P}{ ${D} } } }
|
|
26
|
-
@media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ @container ${_e}{ :scope${P},${P}{ ${D} } } } }`}}),
|
|
26
|
+
@media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ @container ${_e}{ :scope${P},${P}{ ${D} } } } }`}}),Me("packages/modules/form/styles.js",function(A,J){"use strict";Object.defineProperty(A,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"css",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"injectStyles",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"injectColsBreakpoint",{enumerable:!0,get:function(){return S}});const _e=J("packages/modules/form/scheme.js"),F=_e.rootDefaultsCss,L=_e.darkAccentCss,e="lat-form",P="lat-cols-never",D="data-lattice-form-styles",I=`: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(", ")})`,M=`: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(", ")})`,W=`: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(", ")})`,E=`: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(", ")})`,T=`: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 i(){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
|
|
@@ -1604,13 +1604,13 @@ ${E}[readonly]{
|
|
|
1604
1604
|
@media (prefers-reduced-motion: reduce){ .${e}__slider-tooltip{ transition:none; } }
|
|
1605
1605
|
${F()}
|
|
1606
1606
|
${L(`.${e}[data-lattice-standalone]`)}
|
|
1607
|
-
`.trim()}function p(k){const d=k&&k.documentElement;if(!d||d.getAttribute(D))return;d.setAttribute(D,"1");const c=k.createElement("style");c.textContent=i(),(k.head||k.body||d).appendChild(c)}function S(k,d){const c=`lat-cols-bp-${String(d).replace(/[^0-9]/g,"")}`,t=`data-lattice-cols-breakpoint-${c}`,s=k&&k.documentElement;if(s&&!s.querySelector(`style[${t}]`)){const u=k.createElement("style");u.setAttribute(t,"1"),u.textContent=`@container ${c} (max-width:${d}px){.${e}__cols > *{flex:1 1 100%}}`,(k.head||k.body||s).appendChild(u)}return c}}),De("packages/modules/form/controls/registry.js",function(A,J){"use strict";Object.defineProperty(A,"registerControl",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"resolveControl",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"controlTypes",{enumerable:!0,get:function(){return e}});const _e=new Map;function F(P,D){_e.set(P,D)}function L(P){return _e.get(P)||null}function e(){return[..._e.keys()]}}),De("packages/dom/src/input-mask.js",function(A,J){"use strict";Object.defineProperty(A,"parseInputMask",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"formatInputMask",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"isInputMaskComplete",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"inputMaskPlaceholder",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"isInputMaskNumeric",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"inputMaskDescription",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"inputMaskValidator",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"applyInputMaskEdit",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"attachInputMask",{enumerable:!0,get:function(){return t}});const _e=/^\p{L}$/u,F=/^[0-9]$/,L=new Map;function e(s){const u=String(s),r=L.get(u);if(r)return r;const m=[],z=[];for(const g of u){let w="literal";g==="9"?w="digit":g==="A"?w="letter":g==="*"&&(w="alnum"),w!=="literal"&&z.push(m.length),m.push({kind:w,ch:g})}const l={pattern:u,tokens:m,slotAt:z,slotCount:z.length};return L.set(u,l),l}function P(s,u){return s==="digit"?F.test(u):s==="letter"?_e.test(u):s==="alnum"?_e.test(u)||F.test(u):!1}function D(s,u,r){return u<s.slotCount&&P(s.tokens[s.slotAt[u]].kind,r)}function I(s,u,r=[]){const m=r.slice();for(const z of u)D(s,m.length,z)&&m.push(z);return m}function M(s,u){if(u.length===0)return"";const r=u.length<s.slotCount?s.slotAt[u.length]:s.tokens.length;let m=0,z="";for(let l=0;l<r;l+=1){const g=s.tokens[l];z+=g.kind==="literal"?g.ch:u[m++]}return z}function W(s,u){let r=0;for(;r<s.slotCount&&s.slotAt[r]<u;)r+=1;return r}function E(s,u){return u<=0?0:u<s.slotCount?s.slotAt[u]:s.tokens.length}function T(s,u){const r=e(s);return M(r,I(r,u==null?"":String(u)))}function i(s,u){const r=e(s),m=u==null?"":String(u),z=I(r,m);return z.length===r.slotCount&&M(r,z)===m}function p(s){return e(s).tokens.map(u=>u.kind==="literal"?u.ch:"_").join("")}function S(s){const u=e(s);return u.slotCount>0&&u.slotAt.every(r=>u.tokens[r].kind==="digit")}function k(s){return`Format ${p(s)}. 9 is a digit, A is a letter, * is a letter or digit.`}function d(s){return({value:u})=>u==null||u===""||i(s,u)?!0:`Value must match ${p(s)}`}function c(s,u,r,m,z,l=null){const g=e(s),w=I(g,u),x=W(g,r),v=W(g,m),f={text:u,caret:E(g,Math.min(x,w.length)),refused:!0};if(z===""){let $=x,ee=v;if($===ee&&(l==="back"?$-=1:l==="forward"&&(ee+=1)),$=Math.max(0,$),ee=Math.min(w.length,ee),$>=ee)return f;const O=I(g,w.slice(ee).join(""),w.slice(0,$));return{text:M(g,O),caret:E(g,$),refused:!1}}const o=w.slice(0,x),_=I(g,z,o),b=_.length-o.length;if(b===0){const $=x===0?0:g.slotAt[x-1]+1,ee=x<g.slotCount?g.slotAt[x]:g.tokens.length,O=[...z].length===1;for(let ae=$;O&&ae<ee;ae+=1)if(g.tokens[ae].ch===z)return{text:u,caret:E(g,Math.min(x,w.length)),refused:!1};return f}const y=w.slice(v),h=I(g,y.join(""),_);return[...z].length===1&&x===v&&h.length<_.length+y.length?f:{text:M(g,h),caret:E(g,x+b),refused:!1}}function t(s,u,r={}){let m=null;const z=()=>{const f=s.value.length,o=typeof s.selectionStart=="number"?s.selectionStart:f,_=typeof s.selectionEnd=="number"?s.selectionEnd:f;return{start:o,end:_}},l=(f,o=f)=>{try{s.setSelectionRange(f,o)}catch{}},g=f=>{const{start:o,end:_}=z();m={value:s.value,start:o,end:_,type:f.inputType||""}},w=f=>{const o=m;if(m=null,f.isComposing)return;const _=s.value;if(!o||o.type.startsWith("history")){const h=T(u,_);h!==_&&(s.value=h);return}const b=o.value.length;let y;if(o.type.startsWith("insert")){const h=_.slice(o.start,Math.max(o.start,_.length-(b-o.end)));y=c(u,o.value,o.start,o.end,h)}else{const h=Math.max(0,b-_.length),$=o.type.includes("Backward");let ee=null,O=o.start,ae=o.end;o.start===o.end&&(ee=$?"back":"forward",$?O=Math.max(0,o.start-h):ae=Math.min(b,o.start+h)),y=c(u,o.value,O,ae,"",ee)}if(y.refused){s.value=o.value,l(o.start,o.end),f.stopImmediatePropagation();return}y.text!==s.value&&(s.value=y.text),l(y.caret),y.text===o.value&&f.stopImmediatePropagation()};s.addEventListener("beforeinput",g,!0),s.addEventListener("input",w,!0);const x=e(u),v=T(u,s.value);return v!==s.value&&(s.value=v),s.getAttribute("placeholder")||s.setAttribute("placeholder",p(u)),S(u)&&s.setAttribute("inputmode","numeric"),s.setAttribute("aria-description",r.description||k(u)),s.setAttribute("data-lat-input-mask",x.pattern),{pattern:x.pattern,destroy(){s.removeEventListener("beforeinput",g,!0),s.removeEventListener("input",w,!0)}}}}),De("packages/modules/form/validation.js",function(A,J){"use strict";Object.defineProperty(A,"maskPlaceholderOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"VALIDATION_MODES",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"BUILTIN_RULES",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"isEmpty",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"resolveValidationMode",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"validateValue",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"normalizeHookResult",{enumerable:!0,get:function(){return k}});const _e=J("packages/dom/src/input-mask.js"),F=_e.isInputMaskComplete,L=_e.inputMaskPlaceholder;function e(d){const c=d&&d.type==="input"&&d.props?d.props.mask:null;return typeof c=="string"&&c!==""?L(c):""}const P=Object.freeze(["change","blur","submit"]),D=Object.freeze(["email","number","integer","url"]),I=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function M(d){return d==null||d===""||d===!1||Array.isArray(d)&&d.length===0}function W(d){return P.includes(d)?d:"submit"}function E(d){return Object.prototype.toString.call(d)==="[object RegExp]"}function T(d,c){if(d==="email")return typeof c=="string"&&I.test(c);if(d==="number")return Number.isFinite(Number(c));if(d==="integer")return typeof c=="number"?Number.isInteger(c):typeof c=="string"&&/^-?\d+$/.test(c);if(d==="url"){if(typeof c!="string")return!1;try{const t=new URL(c);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}return!0}function i(d,c){return typeof d.errorMessage=="string"&&d.errorMessage!==""?d.errorMessage:c}function p(d,c,t,s){let u;try{u=d(c,t)}catch{return{code:"custom",message:i(t,s("form.validation.custom"))}}return u===!0||u===void 0||u===null?null:u===!1?{code:"custom",message:i(t,s("form.validation.custom"))}:{code:"custom",message:String(u)}}function S(d,c,t,s){if((d.required===!0||s===!0)&&M(c))return{code:"required",message:i(d,t("form.validation.required"))};const u=d.type==="input"&&d.props?d.props.mask:null;if(typeof u=="string"&&u!==""&&!M(c)&&!F(u,c))return{code:"mask",message:i(d,t("form.validation.mask"))};const r=d.validation;return r==null?null:typeof r=="function"?p(r,c,d,t):E(r)?M(c)||r.test(String(c))?null:{code:"pattern",message:i(d,t("form.validation.pattern"))}:typeof r=="string"&&D.includes(r)?M(c)||T(r,c)?null:{code:r,message:i(d,t(`form.validation.${r}`))}:null}function k(d,c,t){return d==null||d===!0?null:d===!1?{code:"custom",message:i(c,t("form.validation.custom"))}:typeof d=="string"?{code:"custom",message:d}:typeof d=="object"?{code:d.code||"custom",message:d.message!=null?String(d.message):i(c,t("form.validation.custom"))}:null}}),De("packages/modules/form/model.js",function(A,J){"use strict";Object.defineProperty(A,"isEmpty",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"DENSITIES",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"CONTROL_TYPES",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"cssSize",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"resolveSize",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"resolveLabelPosition",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"resolveDensity",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"resolveColsBreakpoint",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"axisOf",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"normalizeItem",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"normalizeBlock",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"resolveConfig",{enumerable:!0,get:function(){return d}});const F=J("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 P=Object.freeze(["compact","standard","comfortable"]),D=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","ipv4","ipv6","cidr","mac","vlan"]);function I(t){return typeof t=="number"?`${t}px`:String(t)}function M(t){return t==="content"?"content":I(t)}function W(t){return t==="left"||t==="hidden"?t:"top"}function E(t){return P.includes(t)?t:"standard"}function T(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function i(t){const s=t.columnGap!=null?t.columnGap:t.gap,u=t.rowGap!=null?t.rowGap:t.gap;return{columnGap:s==null?null:I(s),rowGap:u==null?null:I(u)}}function p(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 S(t,s){const u=t.text!=null&&t.type===void 0,r=u?"text":t.type!=null&&t.type!==""?String(t.type):"input",m=u?t.text:t.value,z={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:r,label:t.label,labelPosition:t.labelPosition==null?null:W(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:I(t.padding),placeholder:t.placeholder,autocomplete:typeof t.autocomplete=="string"?t.autocomplete:void 0,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:m,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:F(t.validationMode),props:L(t.props)?Object.assign({},t.props):{},path:s};for(const l of Object.keys(t))!(l in z)&&l!=="text"&&l!=="value"&&l!=="type"&&(z.props[l]=t[l]);return z}function k(t,s){if(!L(t))return null;if(t.fieldset!=null){const r=L(t.fieldset)?t.fieldset:t,m=L(t.fieldset)?t.fieldset.legend:t.fieldset,z=p(r),l=z==="items"?r.items:z==="rows"?r.rows:z==="cols"?r.cols:[];return{kind:"fieldset",name:r.name!=null&&r.name!==""?String(r.name):null,legend:m==null?null:String(m),axis:z,spacing:r.spacing==null?null:I(r.spacing),labelPosition:r.labelPosition==null?null:W(r.labelPosition),labelWidth:r.labelWidth,controlMinWidth:r.controlMinWidth,padding:r.padding==null?null:I(r.padding),wrap:r.wrap===!0,...i(r),width:r.width,blocks:l.filter(L).map((g,w)=>k(g,`${s}/${w}`)).filter(Boolean),css:r.css,hidden:r.hidden===!0}}if(t.container!=null){const r=L(t.container)?t.container:t,m=p(r),z=m==="items"?r.items:m==="rows"?r.rows:m==="cols"?r.cols:[];return{kind:"container",axis:m,spacing:r.spacing==null?null:I(r.spacing),labelPosition:r.labelPosition==null?null:W(r.labelPosition),labelWidth:r.labelWidth,controlMinWidth:r.controlMinWidth,padding:r.padding==null?null:I(r.padding),wrap:r.wrap===!0,...i(r),width:r.width,blocks:z.filter(L).map((l,g)=>k(l,`${s}/${g}`)).filter(Boolean),css:r.css,hidden:r.hidden===!0}}if(t.panel!=null){const r=L(t.panel)?t.panel:{},m=L(t.panel)&&p(t.panel)?t.panel:t,z=p(m),l=z==="items"?m.items:z==="rows"?m.rows:z==="cols"?m.cols:[],g=Array.isArray(r.actions)?r.actions.filter(L).map(w=>({icon:w.icon,ariaLabel:w.ariaLabel!=null&&w.ariaLabel!==""?String(w.ariaLabel):null,onClick:typeof w.onClick=="function"?w.onClick:null})):[];return{kind:"panel",title:r.title!=null&&r.title!==""?String(r.title):null,subtitle:r.subtitle!=null&&r.subtitle!==""?String(r.subtitle):null,actions:g,collapsible:r.collapsible===!0,axis:z,spacing:m.spacing==null?null:I(m.spacing),labelPosition:m.labelPosition==null?null:W(m.labelPosition),labelWidth:m.labelWidth,controlMinWidth:m.controlMinWidth,padding:m.padding==null?null:I(m.padding),wrap:m.wrap===!0,...i(m),width:m.width,blocks:l.filter(L).map((w,x)=>k(w,`${s}/${x}`)).filter(Boolean),css:m.css,hidden:m.hidden===!0}}const u=p(t);if(u){const r=u==="items"?t.items:u==="rows"?t.rows:t.cols;return{kind:"container",axis:u,spacing:t.spacing==null?null:I(t.spacing),labelPosition:t.labelPosition==null?null:W(t.labelPosition),labelWidth:t.labelWidth,controlMinWidth:t.controlMinWidth,padding:t.padding==null?null:I(t.padding),wrap:t.wrap===!0,...i(t),width:t.width,blocks:r.filter(L).map((m,z)=>k(m,`${s}/${z}`)).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}:S(t,s)}function d(t={}){const s=L(t)?t:{},u=Array.isArray(s.steps)?s.steps.filter(L).map((w,x)=>c(w,x)).filter(Boolean):[],r=u.length>0,m=!r&&Array.isArray(s.rows)&&s.rows.length,z=!r&&!m&&Array.isArray(s.cols)&&s.cols.length,l=m||r?"rows":"cols",g=r?[]:m?s.rows:z?s.cols:[];return{axis:l,density:E(s.density),css:s.css,messages:s.messages,createGrid:typeof s.createGrid=="function"?s.createGrid:null,colsBreakpoint:T(s.colsBreakpoint),wrap:s.wrap===!0,...i(s),spacing:s.spacing==null?null:I(s.spacing),labelGap:s.labelGap==null?null:I(s.labelGap),labelPosition:s.labelPosition==null?null:W(s.labelPosition),labelWidth:s.labelWidth,controlMinWidth:s.controlMinWidth,requiredHint:s.requiredHint,blocks:g.filter(L).map((w,x)=>k(w,String(x))).filter(Boolean),steps:u,stepOrientation:s.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:s.validateSteps!==!1}}function c(t,s){const r=(Array.isArray(t.rows)?t.rows:[]).filter(L).map((m,z)=>k(m,`step${s}/${z}`)).filter(Boolean);return r.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${s}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:r,css:t.css}}}),De("packages/modules/form/ids.js",function(A,J){"use strict";Object.defineProperty(A,"nextId",{enumerable:!0,get:function(){return F}});let _e=0;function F(L){return _e+=1,`${L}-${_e}`}}),De("packages/modules/form/state.js",function(A,J){"use strict";Object.defineProperty(A,"applyBooleanInputState",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"guardBooleanInput",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"syncRootAria",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"syncRecordState",{enumerable:!0,get:function(){return e}});function _e(P,D,I){P.disabled=D===!0,P.__latReadOnly=I===!0,I===!0?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly")}function F(P){const D=()=>P.__latReadOnly===!0,I=T=>{D()&&T.preventDefault()},M=T=>{D()&&(T.preventDefault(),T.stopPropagation())},W=T=>{D()&&(T.key===" "||T.key==="Enter")&&T.preventDefault()},E=T=>{D()&&T.key===" "&&T.preventDefault()};P.addEventListener("pointerdown",I),P.addEventListener("click",M),P.addEventListener("keydown",W),P.addEventListener("keyup",E)}function L(P,D,I){D?P.setAttribute("aria-disabled","true"):P.removeAttribute("aria-disabled"),I?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly")}function e(P){const D=P.item,I=D.disabled===!0,M=D.readOnly===!0||P.ruleReadOnly===!0;P.controlWrap&&(P.controlWrap.setAttribute("data-disabled",I?"true":"false"),P.controlWrap.setAttribute("data-readonly",M?"true":"false")),P.def.state(P.control,{...D,readOnly:M}),typeof P.syncLock=="function"&&P.syncLock(),typeof P.syncAddons=="function"&&P.syncAddons()}}),De("packages/modules/form/group-rules.js",function(A,J){"use strict";Object.defineProperty(A,"attachRuleResolver",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"detachRuleResolver",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"ruleResolverFor",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"makeRuleResolver",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"reapplyMembers",{enumerable:!0,get:function(){return D}});const _e=new WeakMap;function F(I,M){_e.set(I,M)}function L(I){_e.delete(I)}function e(I){return _e.get(I)}function P(I){const{owners:M,byId:W,warnOnce:E}=I;return function(i,p){if(i==null||typeof i!="object")return;const S=i.name;if(i.form!=null){const d=W.get(i.form);if(!d){E(`form.group.unknown-member:${String(i.form)}`,`form group: a rule pins the member "${i.form}", but no member has that id; the rule reads an empty value.`);return}return S!=null?d.form.getValue()[S]:void 0}if(S==null)return;if(Object.prototype.hasOwnProperty.call(p,S))return p[S];const k=M.get(String(S));if(k)return k.form.getValue()[S]}}function D(I){for(const M of I)M.form&&typeof M.form.__reapplyRules=="function"&&M.form.__reapplyRules()}}),De("packages/modules/form/rules.js",function(A,J){"use strict";Object.defineProperty(A,"evalRule",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"applyRules",{enumerable:!0,get:function(){return M}});const F=J("packages/modules/form/model.js").isEmpty,e=J("packages/modules/form/state.js").syncRecordState,D=J("packages/modules/form/group-rules.js").ruleResolverFor;function I(E,T,i){if(E==null)return null;if(typeof E=="function")return!!E(T);if(typeof E=="boolean")return E;if(typeof E=="object"){const p=i?i(E,T):E.name!=null?T[E.name]:void 0;if(typeof E.fn=="function")return!!E.fn(p,T);let S=!0,k=!1;return Object.prototype.hasOwnProperty.call(E,"equals")&&(k=!0,S=S&&p===E.equals),Object.prototype.hasOwnProperty.call(E,"in")&&(k=!0,S=S&&Array.isArray(E.in)&&E.in.includes(p)),Object.prototype.hasOwnProperty.call(E,"empty")&&(k=!0,S=S&&F(p)===!!E.empty),k?S:!1}return!1}function M(E){const T={};for(const p of E.order)if(p.item.name!=null&&(T[p.item.name]=p.value),p.mapped)for(const S of p.mapped)T[S.item.name]=S.value;const i=E.form?D(E.form):void 0;for(const p of E.order){const S=p.item;p.ruleHidden=I(S.visibleWhen,T,i)===!1,p.ruleReadOnly=I(S.readOnlyWhen,T,i)===!0,p.ruleRequired=I(S.requiredWhen,T,i)===!0,p.el.hidden=p.hidden||p.ruleHidden,e(p);const k=S.required===!0||p.ruleRequired,d=p.labelEl!=null&&p.labelPosition!=="hidden",c=p.placeholderEl||p.control;k?c.setAttribute("aria-required","true"):c.removeAttribute("aria-required"),k&&d?p.el.setAttribute("data-required","true"):p.el.removeAttribute("data-required"),W(p,k,d,t=>E.t(t))}}function W(E,T,i,p){const S=E.placeholderEl;if(!S)return;const k=E.placeholderBase;if(T&&!i&&k!==""){const d=E.requiredHint,c=d===!1?"":typeof d=="string"?p(d):" *";S.placeholder=k+c}else S.placeholder=k}}),De("packages/modules/form/enter-submit.js",function(A,J){"use strict";Object.defineProperty(A,"attachEnterSubmit",{enumerable:!0,get:function(){return M}});const _e=new Set(["ipv4","ipv6","cidr","mac","vlan"]);function F(W){const E=W.control;if(!E)return null;const T=W.item&&W.item.type;return T==="input"?E.__latPassword?E.__latPassword.input:E:T==="number"?E.__latNumber?E.__latNumber.input:E:_e.has(T)?E:(T==="datepicker"||T==="daterange")&&E.__input||null}function L(W,E){for(const T of W.order){const i=T.control;if(i&&(i===E||typeof i.contains=="function"&&i.contains(E)))return T}return null}function e(W,E){const T=W.item&&W.item.type;if(T==="otp"){const p=W.control&&W.control.__latOtp;return!p||!Array.isArray(p.boxes)||p.boxes.length===0?!1:E===p.boxes[p.boxes.length-1]}if(T==="combo"||T==="select")return!1;const i=F(W);if(!i||E!==i)return!1;if(T==="input"||T==="number"||_e.has(T))return!0;if(T==="datepicker"||T==="daterange"){const p=W.control&&W.control.__popup;return!p||p.hidden!==!1}return!1}function P(W){for(const E of W.order){if(E.hidden)continue;const T=E.item&&E.item.type;if(T==="button"){const i=E.control&&E.control.__latButton;if(i&&i.buttonType==="submit")return E.control}else if(T==="buttons"){const i=E.control&&E.control.children;if(!i)continue;for(const p of i){const S=p&&p.__latButton;if(S&&S.buttonType==="submit")return p}}}return null}function D(W,E){const T=E&&E.defaultView,i=T&&(T.MouseEvent||T.Event),p=i?new i("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};W.dispatchEvent(p)}function I(W,E,T){const i=W.doc,p=i&&i.defaultView,S=F(E)||T;if(!S||typeof S.dispatchEvent!="function")return!1;const k=p&&(p.FocusEvent||p.Event);k&&S.dispatchEvent(new k("blur",{bubbles:!1}));const d=E.def,c=d&&typeof d.read=="function"?d.read(E.control,E.item):void 0;if(c===void 0||c===E.value)return!1;const t=p&&p.Event;return t?S.dispatchEvent(new t("change",{bubbles:!0})):S.dispatchEvent({type:"change",bubbles:!0,target:S}),!0}function M(W){const E=T=>{if(T.key!=="Enter"||T.altKey||T.ctrlKey||T.metaKey||T.shiftKey||T.isComposing)return;const i=T.target;if(!i)return;const p=L(W,i);if(!p||!e(p,i))return;const S=P(W);if(!S)return;T.preventDefault(),I(W,p,i)?Promise.resolve().then(()=>D(S,W.doc)):D(S,W.doc)};W.el.addEventListener("keydown",E),W.disposers.push(()=>W.el.removeEventListener("keydown",E))}}),De("packages/modules/form/stepper.js",function(A,J){"use strict";Object.defineProperty(A,"createStepper",{enumerable:!0,get:function(){return e}});const F=J("packages/modules/form/styles.js").NS;function L(P,D,I){return Math.min(I,Math.max(D,P))}function e(P,D){const I=D.doc,M=D.steps||[],W=D.t||(r=>r),E=D.orientation==="vertical"?"vertical":"horizontal";let T=L(Number(D.active)||0,0,Math.max(0,M.length-1));const i=[];P.className=`${F}__stepper ${F}__stepper--${E}`,P.setAttribute("data-orientation",E),P.setAttribute("role","navigation"),P.setAttribute("aria-label",W("form.steps"));const p=I.createElement("ol");p.className=`${F}__stepper-list`,p.setAttribute("role","tablist"),p.setAttribute("aria-orientation",E),P.appendChild(p);let S=[];const k=r=>i[r]?i[r]:r<T?"complete":r===T?"active":"pending",d=r=>r<=T+1,c=()=>{p.textContent="",S=M.map((r,m)=>{const z=k(m),l=I.createElement("li");l.className=`${F}__stepper-item is-${z}`+(m===T?" is-active":"")+(d(m)?"":" is-locked");const g=I.createElement("button");g.type="button",g.className=`${F}__stepper-step`,g.setAttribute("role","tab"),g.setAttribute("aria-selected",m===T?"true":"false"),m===T&&g.setAttribute("aria-current","step"),g.tabIndex=m===T?0:-1,g.setAttribute("aria-disabled",d(m)?"false":"true");const w=I.createElement("span");w.className=`${F}__stepper-marker`,w.setAttribute("aria-hidden","true"),w.textContent=z==="complete"?"✓":z==="error"?"!":String(m+1),g.appendChild(w);const x=I.createElement("span");return x.className=`${F}__stepper-label`,x.textContent=r.label!=null&&r.label!==""?r.label:`${W("form.step")} ${m+1}`,g.appendChild(x),l.appendChild(g),p.appendChild(l),g})},t=r=>{typeof D.onGoTo=="function"&&d(r)&&D.onGoTo(r)},s=r=>{const m=r.target&&r.target.closest?r.target.closest(`.${F}__stepper-step`):null;if(!m||!p.contains(m))return;const z=S.indexOf(m);z>=0&&t(z)},u=r=>{const m=r.target&&r.target.closest?r.target.closest(`.${F}__stepper-step`):null;if(!m||!p.contains(m))return;const z=M.length;let l=S.indexOf(m);if(l<0)return;if(r.key==="ArrowRight"||r.key==="ArrowDown")l=(l+1)%z;else if(r.key==="ArrowLeft"||r.key==="ArrowUp")l=(l-1+z)%z;else if(r.key==="Home")l=0;else if(r.key==="End")l=z-1;else if(r.key==="Enter"||r.key===" "){r.preventDefault(),t(l);return}else return;r.preventDefault();const g=S[l];g&&g.focus()};return p.addEventListener("click",s),p.addEventListener("keydown",u),c(),{el:P,setActive(r){T=L(Number(r)||0,0,Math.max(0,M.length-1)),c()},setStatus(r,m){i[r]=m,c()},statusOf:k}}}),De("packages/core/src/internal/icon-builtins.js",function(A,J){"use strict";Object.defineProperty(A,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"normaliseIcon",{enumerable:!0,get:function(){return F}});const _e={chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},dash:{viewBox:"0 0 16 16",paths:["M4 8h8"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},minus:{viewBox:"0 0 16 16",paths:["M3.5 8h9"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},calendar:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3z","M3 5.5h10","M5.5 1.5v2","M10.5 1.5v2"],paint:"stroke"},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},filter:{viewBox:"0 0 16 16",paths:["M2 3h12l-4.5 5.2V13L6.5 11.5V8.2Z"]},pause:{viewBox:"0 0 16 16",paths:["M4.5 3h2.5v10H4.5zM9 3h2.5v10H9z"]},play:{viewBox:"0 0 16 16",paths:["M4.5 3l8 5-8 5z"]},chart:{viewBox:"0 0 16 16",paths:["M2.5 13.5h11","M4.5 13.5v-4","M8 13.5v-8","M11.5 13.5v-6"],paint:"stroke"},palette:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 0 0 0 13c.7 0 1.2-.5 1.2-1.1 0-.3-.1-.6-.3-.8a1.1 1.1 0 0 1 .8-1.9h1.4A3.4 3.4 0 0 0 14.5 7c0-3-2.9-5.5-6.5-5.5Z","M4.6 7.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM6.7 4.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM9.9 4.7a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM11.9 6.9a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"]},undo:{viewBox:"0 0 16 16",paths:["M3 8h6.5a3.25 3.25 0 0 1 0 6.5H6M3 8l3-3M3 8l3 3"],paint:"stroke"},redo:{viewBox:"0 0 16 16",paths:["M13 8H6.5a3.25 3.25 0 0 0 0 6.5H10M13 8l-3-3M13 8l-3 3"],paint:"stroke"},columns:{viewBox:"0 0 16 16",paths:["M2.5 2.5h11v11h-11zM6.5 2.5v11M10 2.5v11"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},restore:{viewBox:"0 0 16 16",paths:["M3 8a5 5 0 1 0 1.6-3.7M3 3v2.8h2.8"],paint:"stroke"},spreadsheet:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3zM3 6h10M3 9.5h10M6.5 6v7.5"],paint:"stroke"},print:{viewBox:"0 0 16 16",paths:["M4.5 6V2.5h7V6M4.5 11.5h-2V6h11v5.5h-2M4.5 9.5h7v4h-7z"],paint:"stroke"},maximise:{viewBox:"0 0 16 16",paths:["M2.5 6V2.5H6M10 2.5h3.5V6M13.5 10v3.5H10M6 13.5H2.5V10"],paint:"stroke"},minimise:{viewBox:"0 0 16 16",paths:["M6 2.5V6H2.5M13.5 6H10V2.5M10 13.5V10h3.5M2.5 10H6v3.5"],paint:"stroke"},views:{viewBox:"0 0 16 16",paths:["M4 2.5h8v11L8 11l-4 2.5z"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},share:{viewBox:"0 0 16 16",paths:["M11.5 5.5a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M4.5 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M11.5 14.1a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M6.1 7.1l3.8-1.9M6.1 8.9l3.8 1.9"],paint:"stroke"},pin:{viewBox:"0 0 16 16",paths:["M8 2v6M5 8h6l1 2.5H4zM8 10.5V14"],paint:"stroke"},sortAsc:{viewBox:"0 0 16 16",paths:["M8 3.5 12 8H4Z"]},sortDesc:{viewBox:"0 0 16 16",paths:["M8 12.5 4 8h8Z"]},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"},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 F(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"}}}),De("packages/modules/form/controls/field-icon.js",function(A,J){"use strict";Object.defineProperty(A,"fieldIconStylesheet",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"injectFieldIconStyles",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"makeFieldIcon",{enumerable:!0,get:function(){return I}});const F=J("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 P(){return`
|
|
1607
|
+
`.trim()}function p(k){const d=k&&k.documentElement;if(!d||d.getAttribute(D))return;d.setAttribute(D,"1");const c=k.createElement("style");c.textContent=i(),(k.head||k.body||d).appendChild(c)}function S(k,d){const c=`lat-cols-bp-${String(d).replace(/[^0-9]/g,"")}`,t=`data-lattice-cols-breakpoint-${c}`,s=k&&k.documentElement;if(s&&!s.querySelector(`style[${t}]`)){const u=k.createElement("style");u.setAttribute(t,"1"),u.textContent=`@container ${c} (max-width:${d}px){.${e}__cols > *{flex:1 1 100%}}`,(k.head||k.body||s).appendChild(u)}return c}}),Me("packages/modules/form/controls/registry.js",function(A,J){"use strict";Object.defineProperty(A,"registerControl",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"resolveControl",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"controlTypes",{enumerable:!0,get:function(){return e}});const _e=new Map;function F(P,D){_e.set(P,D)}function L(P){return _e.get(P)||null}function e(){return[..._e.keys()]}}),Me("packages/dom/src/input-mask.js",function(A,J){"use strict";Object.defineProperty(A,"parseInputMask",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"formatInputMask",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"isInputMaskComplete",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"inputMaskPlaceholder",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"isInputMaskNumeric",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"inputMaskDescription",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"inputMaskValidator",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"applyInputMaskEdit",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"attachInputMask",{enumerable:!0,get:function(){return t}});const _e=/^\p{L}$/u,F=/^[0-9]$/,L=new Map;function e(s){const u=String(s),r=L.get(u);if(r)return r;const m=[],z=[];for(const g of u){let w="literal";g==="9"?w="digit":g==="A"?w="letter":g==="*"&&(w="alnum"),w!=="literal"&&z.push(m.length),m.push({kind:w,ch:g})}const l={pattern:u,tokens:m,slotAt:z,slotCount:z.length};return L.set(u,l),l}function P(s,u){return s==="digit"?F.test(u):s==="letter"?_e.test(u):s==="alnum"?_e.test(u)||F.test(u):!1}function D(s,u,r){return u<s.slotCount&&P(s.tokens[s.slotAt[u]].kind,r)}function I(s,u,r=[]){const m=r.slice();for(const z of u)D(s,m.length,z)&&m.push(z);return m}function M(s,u){if(u.length===0)return"";const r=u.length<s.slotCount?s.slotAt[u.length]:s.tokens.length;let m=0,z="";for(let l=0;l<r;l+=1){const g=s.tokens[l];z+=g.kind==="literal"?g.ch:u[m++]}return z}function W(s,u){let r=0;for(;r<s.slotCount&&s.slotAt[r]<u;)r+=1;return r}function E(s,u){return u<=0?0:u<s.slotCount?s.slotAt[u]:s.tokens.length}function T(s,u){const r=e(s);return M(r,I(r,u==null?"":String(u)))}function i(s,u){const r=e(s),m=u==null?"":String(u),z=I(r,m);return z.length===r.slotCount&&M(r,z)===m}function p(s){return e(s).tokens.map(u=>u.kind==="literal"?u.ch:"_").join("")}function S(s){const u=e(s);return u.slotCount>0&&u.slotAt.every(r=>u.tokens[r].kind==="digit")}function k(s){return`Format ${p(s)}. 9 is a digit, A is a letter, * is a letter or digit.`}function d(s){return({value:u})=>u==null||u===""||i(s,u)?!0:`Value must match ${p(s)}`}function c(s,u,r,m,z,l=null){const g=e(s),w=I(g,u),x=W(g,r),v=W(g,m),f={text:u,caret:E(g,Math.min(x,w.length)),refused:!0};if(z===""){let $=x,ee=v;if($===ee&&(l==="back"?$-=1:l==="forward"&&(ee+=1)),$=Math.max(0,$),ee=Math.min(w.length,ee),$>=ee)return f;const O=I(g,w.slice(ee).join(""),w.slice(0,$));return{text:M(g,O),caret:E(g,$),refused:!1}}const o=w.slice(0,x),_=I(g,z,o),b=_.length-o.length;if(b===0){const $=x===0?0:g.slotAt[x-1]+1,ee=x<g.slotCount?g.slotAt[x]:g.tokens.length,O=[...z].length===1;for(let ae=$;O&&ae<ee;ae+=1)if(g.tokens[ae].ch===z)return{text:u,caret:E(g,Math.min(x,w.length)),refused:!1};return f}const y=w.slice(v),h=I(g,y.join(""),_);return[...z].length===1&&x===v&&h.length<_.length+y.length?f:{text:M(g,h),caret:E(g,x+b),refused:!1}}function t(s,u,r={}){let m=null;const z=()=>{const f=s.value.length,o=typeof s.selectionStart=="number"?s.selectionStart:f,_=typeof s.selectionEnd=="number"?s.selectionEnd:f;return{start:o,end:_}},l=(f,o=f)=>{try{s.setSelectionRange(f,o)}catch{}},g=f=>{const{start:o,end:_}=z();m={value:s.value,start:o,end:_,type:f.inputType||""}},w=f=>{const o=m;if(m=null,f.isComposing)return;const _=s.value;if(!o||o.type.startsWith("history")){const h=T(u,_);h!==_&&(s.value=h);return}const b=o.value.length;let y;if(o.type.startsWith("insert")){const h=_.slice(o.start,Math.max(o.start,_.length-(b-o.end)));y=c(u,o.value,o.start,o.end,h)}else{const h=Math.max(0,b-_.length),$=o.type.includes("Backward");let ee=null,O=o.start,ae=o.end;o.start===o.end&&(ee=$?"back":"forward",$?O=Math.max(0,o.start-h):ae=Math.min(b,o.start+h)),y=c(u,o.value,O,ae,"",ee)}if(y.refused){s.value=o.value,l(o.start,o.end),f.stopImmediatePropagation();return}y.text!==s.value&&(s.value=y.text),l(y.caret),y.text===o.value&&f.stopImmediatePropagation()};s.addEventListener("beforeinput",g,!0),s.addEventListener("input",w,!0);const x=e(u),v=T(u,s.value);return v!==s.value&&(s.value=v),s.getAttribute("placeholder")||s.setAttribute("placeholder",p(u)),S(u)&&s.setAttribute("inputmode","numeric"),s.setAttribute("aria-description",r.description||k(u)),s.setAttribute("data-lat-input-mask",x.pattern),{pattern:x.pattern,destroy(){s.removeEventListener("beforeinput",g,!0),s.removeEventListener("input",w,!0)}}}}),Me("packages/modules/form/validation.js",function(A,J){"use strict";Object.defineProperty(A,"maskPlaceholderOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"VALIDATION_MODES",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"BUILTIN_RULES",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"isEmpty",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"resolveValidationMode",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"validateValue",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"normalizeHookResult",{enumerable:!0,get:function(){return k}});const _e=J("packages/dom/src/input-mask.js"),F=_e.isInputMaskComplete,L=_e.inputMaskPlaceholder;function e(d){const c=d&&d.type==="input"&&d.props?d.props.mask:null;return typeof c=="string"&&c!==""?L(c):""}const P=Object.freeze(["change","blur","submit"]),D=Object.freeze(["email","number","integer","url"]),I=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function M(d){return d==null||d===""||d===!1||Array.isArray(d)&&d.length===0}function W(d){return P.includes(d)?d:"submit"}function E(d){return Object.prototype.toString.call(d)==="[object RegExp]"}function T(d,c){if(d==="email")return typeof c=="string"&&I.test(c);if(d==="number")return Number.isFinite(Number(c));if(d==="integer")return typeof c=="number"?Number.isInteger(c):typeof c=="string"&&/^-?\d+$/.test(c);if(d==="url"){if(typeof c!="string")return!1;try{const t=new URL(c);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}return!0}function i(d,c){return typeof d.errorMessage=="string"&&d.errorMessage!==""?d.errorMessage:c}function p(d,c,t,s){let u;try{u=d(c,t)}catch{return{code:"custom",message:i(t,s("form.validation.custom"))}}return u===!0||u===void 0||u===null?null:u===!1?{code:"custom",message:i(t,s("form.validation.custom"))}:{code:"custom",message:String(u)}}function S(d,c,t,s){if((d.required===!0||s===!0)&&M(c))return{code:"required",message:i(d,t("form.validation.required"))};const u=d.type==="input"&&d.props?d.props.mask:null;if(typeof u=="string"&&u!==""&&!M(c)&&!F(u,c))return{code:"mask",message:i(d,t("form.validation.mask"))};const r=d.validation;return r==null?null:typeof r=="function"?p(r,c,d,t):E(r)?M(c)||r.test(String(c))?null:{code:"pattern",message:i(d,t("form.validation.pattern"))}:typeof r=="string"&&D.includes(r)?M(c)||T(r,c)?null:{code:r,message:i(d,t(`form.validation.${r}`))}:null}function k(d,c,t){return d==null||d===!0?null:d===!1?{code:"custom",message:i(c,t("form.validation.custom"))}:typeof d=="string"?{code:"custom",message:d}:typeof d=="object"?{code:d.code||"custom",message:d.message!=null?String(d.message):i(c,t("form.validation.custom"))}:null}}),Me("packages/modules/form/model.js",function(A,J){"use strict";Object.defineProperty(A,"isEmpty",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"DENSITIES",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"CONTROL_TYPES",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"cssSize",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"resolveSize",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"resolveLabelPosition",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"resolveDensity",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"resolveColsBreakpoint",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"axisOf",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"normalizeItem",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"normalizeBlock",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"resolveConfig",{enumerable:!0,get:function(){return d}});const F=J("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 P=Object.freeze(["compact","standard","comfortable"]),D=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","ipv4","ipv6","cidr","mac","vlan"]);function I(t){return typeof t=="number"?`${t}px`:String(t)}function M(t){return t==="content"?"content":I(t)}function W(t){return t==="left"||t==="hidden"?t:"top"}function E(t){return P.includes(t)?t:"standard"}function T(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function i(t){const s=t.columnGap!=null?t.columnGap:t.gap,u=t.rowGap!=null?t.rowGap:t.gap;return{columnGap:s==null?null:I(s),rowGap:u==null?null:I(u)}}function p(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 S(t,s){const u=t.text!=null&&t.type===void 0,r=u?"text":t.type!=null&&t.type!==""?String(t.type):"input",m=u?t.text:t.value,z={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:r,label:t.label,labelPosition:t.labelPosition==null?null:W(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:I(t.padding),placeholder:t.placeholder,autocomplete:typeof t.autocomplete=="string"?t.autocomplete:void 0,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:m,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:F(t.validationMode),props:L(t.props)?Object.assign({},t.props):{},path:s};for(const l of Object.keys(t))!(l in z)&&l!=="text"&&l!=="value"&&l!=="type"&&(z.props[l]=t[l]);return z}function k(t,s){if(!L(t))return null;if(t.fieldset!=null){const r=L(t.fieldset)?t.fieldset:t,m=L(t.fieldset)?t.fieldset.legend:t.fieldset,z=p(r),l=z==="items"?r.items:z==="rows"?r.rows:z==="cols"?r.cols:[];return{kind:"fieldset",name:r.name!=null&&r.name!==""?String(r.name):null,legend:m==null?null:String(m),axis:z,spacing:r.spacing==null?null:I(r.spacing),labelPosition:r.labelPosition==null?null:W(r.labelPosition),labelWidth:r.labelWidth,controlMinWidth:r.controlMinWidth,padding:r.padding==null?null:I(r.padding),wrap:r.wrap===!0,...i(r),width:r.width,blocks:l.filter(L).map((g,w)=>k(g,`${s}/${w}`)).filter(Boolean),css:r.css,hidden:r.hidden===!0}}if(t.container!=null){const r=L(t.container)?t.container:t,m=p(r),z=m==="items"?r.items:m==="rows"?r.rows:m==="cols"?r.cols:[];return{kind:"container",axis:m,spacing:r.spacing==null?null:I(r.spacing),labelPosition:r.labelPosition==null?null:W(r.labelPosition),labelWidth:r.labelWidth,controlMinWidth:r.controlMinWidth,padding:r.padding==null?null:I(r.padding),wrap:r.wrap===!0,...i(r),width:r.width,blocks:z.filter(L).map((l,g)=>k(l,`${s}/${g}`)).filter(Boolean),css:r.css,hidden:r.hidden===!0}}if(t.panel!=null){const r=L(t.panel)?t.panel:{},m=L(t.panel)&&p(t.panel)?t.panel:t,z=p(m),l=z==="items"?m.items:z==="rows"?m.rows:z==="cols"?m.cols:[],g=Array.isArray(r.actions)?r.actions.filter(L).map(w=>({icon:w.icon,ariaLabel:w.ariaLabel!=null&&w.ariaLabel!==""?String(w.ariaLabel):null,onClick:typeof w.onClick=="function"?w.onClick:null})):[];return{kind:"panel",title:r.title!=null&&r.title!==""?String(r.title):null,subtitle:r.subtitle!=null&&r.subtitle!==""?String(r.subtitle):null,actions:g,collapsible:r.collapsible===!0,axis:z,spacing:m.spacing==null?null:I(m.spacing),labelPosition:m.labelPosition==null?null:W(m.labelPosition),labelWidth:m.labelWidth,controlMinWidth:m.controlMinWidth,padding:m.padding==null?null:I(m.padding),wrap:m.wrap===!0,...i(m),width:m.width,blocks:l.filter(L).map((w,x)=>k(w,`${s}/${x}`)).filter(Boolean),css:m.css,hidden:m.hidden===!0}}const u=p(t);if(u){const r=u==="items"?t.items:u==="rows"?t.rows:t.cols;return{kind:"container",axis:u,spacing:t.spacing==null?null:I(t.spacing),labelPosition:t.labelPosition==null?null:W(t.labelPosition),labelWidth:t.labelWidth,controlMinWidth:t.controlMinWidth,padding:t.padding==null?null:I(t.padding),wrap:t.wrap===!0,...i(t),width:t.width,blocks:r.filter(L).map((m,z)=>k(m,`${s}/${z}`)).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}:S(t,s)}function d(t={}){const s=L(t)?t:{},u=Array.isArray(s.steps)?s.steps.filter(L).map((w,x)=>c(w,x)).filter(Boolean):[],r=u.length>0,m=!r&&Array.isArray(s.rows)&&s.rows.length,z=!r&&!m&&Array.isArray(s.cols)&&s.cols.length,l=m||r?"rows":"cols",g=r?[]:m?s.rows:z?s.cols:[];return{axis:l,density:E(s.density),css:s.css,messages:s.messages,createGrid:typeof s.createGrid=="function"?s.createGrid:null,colsBreakpoint:T(s.colsBreakpoint),wrap:s.wrap===!0,...i(s),spacing:s.spacing==null?null:I(s.spacing),labelGap:s.labelGap==null?null:I(s.labelGap),labelPosition:s.labelPosition==null?null:W(s.labelPosition),labelWidth:s.labelWidth,controlMinWidth:s.controlMinWidth,requiredHint:s.requiredHint,blocks:g.filter(L).map((w,x)=>k(w,String(x))).filter(Boolean),steps:u,stepOrientation:s.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:s.validateSteps!==!1}}function c(t,s){const r=(Array.isArray(t.rows)?t.rows:[]).filter(L).map((m,z)=>k(m,`step${s}/${z}`)).filter(Boolean);return r.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${s}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:r,css:t.css}}}),Me("packages/modules/form/ids.js",function(A,J){"use strict";Object.defineProperty(A,"nextId",{enumerable:!0,get:function(){return F}});let _e=0;function F(L){return _e+=1,`${L}-${_e}`}}),Me("packages/modules/form/state.js",function(A,J){"use strict";Object.defineProperty(A,"applyBooleanInputState",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"guardBooleanInput",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"syncRootAria",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"syncRecordState",{enumerable:!0,get:function(){return e}});function _e(P,D,I){P.disabled=D===!0,P.__latReadOnly=I===!0,I===!0?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly")}function F(P){const D=()=>P.__latReadOnly===!0,I=T=>{D()&&T.preventDefault()},M=T=>{D()&&(T.preventDefault(),T.stopPropagation())},W=T=>{D()&&(T.key===" "||T.key==="Enter")&&T.preventDefault()},E=T=>{D()&&T.key===" "&&T.preventDefault()};P.addEventListener("pointerdown",I),P.addEventListener("click",M),P.addEventListener("keydown",W),P.addEventListener("keyup",E)}function L(P,D,I){D?P.setAttribute("aria-disabled","true"):P.removeAttribute("aria-disabled"),I?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly")}function e(P){const D=P.item,I=D.disabled===!0,M=D.readOnly===!0||P.ruleReadOnly===!0;P.controlWrap&&(P.controlWrap.setAttribute("data-disabled",I?"true":"false"),P.controlWrap.setAttribute("data-readonly",M?"true":"false")),P.def.state(P.control,{...D,readOnly:M}),typeof P.syncLock=="function"&&P.syncLock(),typeof P.syncAddons=="function"&&P.syncAddons()}}),Me("packages/modules/form/group-rules.js",function(A,J){"use strict";Object.defineProperty(A,"attachRuleResolver",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"detachRuleResolver",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"ruleResolverFor",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"makeRuleResolver",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"reapplyMembers",{enumerable:!0,get:function(){return D}});const _e=new WeakMap;function F(I,M){_e.set(I,M)}function L(I){_e.delete(I)}function e(I){return _e.get(I)}function P(I){const{owners:M,byId:W,warnOnce:E}=I;return function(i,p){if(i==null||typeof i!="object")return;const S=i.name;if(i.form!=null){const d=W.get(i.form);if(!d){E(`form.group.unknown-member:${String(i.form)}`,`form group: a rule pins the member "${i.form}", but no member has that id; the rule reads an empty value.`);return}return S!=null?d.form.getValue()[S]:void 0}if(S==null)return;if(Object.prototype.hasOwnProperty.call(p,S))return p[S];const k=M.get(String(S));if(k)return k.form.getValue()[S]}}function D(I){for(const M of I)M.form&&typeof M.form.__reapplyRules=="function"&&M.form.__reapplyRules()}}),Me("packages/modules/form/rules.js",function(A,J){"use strict";Object.defineProperty(A,"evalRule",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"applyRules",{enumerable:!0,get:function(){return M}});const F=J("packages/modules/form/model.js").isEmpty,e=J("packages/modules/form/state.js").syncRecordState,D=J("packages/modules/form/group-rules.js").ruleResolverFor;function I(E,T,i){if(E==null)return null;if(typeof E=="function")return!!E(T);if(typeof E=="boolean")return E;if(typeof E=="object"){const p=i?i(E,T):E.name!=null?T[E.name]:void 0;if(typeof E.fn=="function")return!!E.fn(p,T);let S=!0,k=!1;return Object.prototype.hasOwnProperty.call(E,"equals")&&(k=!0,S=S&&p===E.equals),Object.prototype.hasOwnProperty.call(E,"in")&&(k=!0,S=S&&Array.isArray(E.in)&&E.in.includes(p)),Object.prototype.hasOwnProperty.call(E,"empty")&&(k=!0,S=S&&F(p)===!!E.empty),k?S:!1}return!1}function M(E){const T={};for(const p of E.order)if(p.item.name!=null&&(T[p.item.name]=p.value),p.mapped)for(const S of p.mapped)T[S.item.name]=S.value;const i=E.form?D(E.form):void 0;for(const p of E.order){const S=p.item;p.ruleHidden=I(S.visibleWhen,T,i)===!1,p.ruleReadOnly=I(S.readOnlyWhen,T,i)===!0,p.ruleRequired=I(S.requiredWhen,T,i)===!0,p.el.hidden=p.hidden||p.ruleHidden,e(p);const k=S.required===!0||p.ruleRequired,d=p.labelEl!=null&&p.labelPosition!=="hidden",c=p.placeholderEl||p.control;k?c.setAttribute("aria-required","true"):c.removeAttribute("aria-required"),k&&d?p.el.setAttribute("data-required","true"):p.el.removeAttribute("data-required"),W(p,k,d,t=>E.t(t))}}function W(E,T,i,p){const S=E.placeholderEl;if(!S)return;const k=E.placeholderBase;if(T&&!i&&k!==""){const d=E.requiredHint,c=d===!1?"":typeof d=="string"?p(d):" *";S.placeholder=k+c}else S.placeholder=k}}),Me("packages/modules/form/enter-submit.js",function(A,J){"use strict";Object.defineProperty(A,"attachEnterSubmit",{enumerable:!0,get:function(){return M}});const _e=new Set(["ipv4","ipv6","cidr","mac","vlan"]);function F(W){const E=W.control;if(!E)return null;const T=W.item&&W.item.type;return T==="input"?E.__latPassword?E.__latPassword.input:E:T==="number"?E.__latNumber?E.__latNumber.input:E:_e.has(T)?E:(T==="datepicker"||T==="daterange")&&E.__input||null}function L(W,E){for(const T of W.order){const i=T.control;if(i&&(i===E||typeof i.contains=="function"&&i.contains(E)))return T}return null}function e(W,E){const T=W.item&&W.item.type;if(T==="otp"){const p=W.control&&W.control.__latOtp;return!p||!Array.isArray(p.boxes)||p.boxes.length===0?!1:E===p.boxes[p.boxes.length-1]}if(T==="combo"||T==="select")return!1;const i=F(W);if(!i||E!==i)return!1;if(T==="input"||T==="number"||_e.has(T))return!0;if(T==="datepicker"||T==="daterange"){const p=W.control&&W.control.__popup;return!p||p.hidden!==!1}return!1}function P(W){for(const E of W.order){if(E.hidden)continue;const T=E.item&&E.item.type;if(T==="button"){const i=E.control&&E.control.__latButton;if(i&&i.buttonType==="submit")return E.control}else if(T==="buttons"){const i=E.control&&E.control.children;if(!i)continue;for(const p of i){const S=p&&p.__latButton;if(S&&S.buttonType==="submit")return p}}}return null}function D(W,E){const T=E&&E.defaultView,i=T&&(T.MouseEvent||T.Event),p=i?new i("click",{bubbles:!0,cancelable:!0}):{type:"click",bubbles:!0,cancelable:!0,defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}};W.dispatchEvent(p)}function I(W,E,T){const i=W.doc,p=i&&i.defaultView,S=F(E)||T;if(!S||typeof S.dispatchEvent!="function")return!1;const k=p&&(p.FocusEvent||p.Event);k&&S.dispatchEvent(new k("blur",{bubbles:!1}));const d=E.def,c=d&&typeof d.read=="function"?d.read(E.control,E.item):void 0;if(c===void 0||c===E.value)return!1;const t=p&&p.Event;return t?S.dispatchEvent(new t("change",{bubbles:!0})):S.dispatchEvent({type:"change",bubbles:!0,target:S}),!0}function M(W){const E=T=>{if(T.key!=="Enter"||T.altKey||T.ctrlKey||T.metaKey||T.shiftKey||T.isComposing)return;const i=T.target;if(!i)return;const p=L(W,i);if(!p||!e(p,i))return;const S=P(W);if(!S)return;T.preventDefault(),I(W,p,i)?Promise.resolve().then(()=>D(S,W.doc)):D(S,W.doc)};W.el.addEventListener("keydown",E),W.disposers.push(()=>W.el.removeEventListener("keydown",E))}}),Me("packages/modules/form/stepper.js",function(A,J){"use strict";Object.defineProperty(A,"createStepper",{enumerable:!0,get:function(){return e}});const F=J("packages/modules/form/styles.js").NS;function L(P,D,I){return Math.min(I,Math.max(D,P))}function e(P,D){const I=D.doc,M=D.steps||[],W=D.t||(r=>r),E=D.orientation==="vertical"?"vertical":"horizontal";let T=L(Number(D.active)||0,0,Math.max(0,M.length-1));const i=[];P.className=`${F}__stepper ${F}__stepper--${E}`,P.setAttribute("data-orientation",E),P.setAttribute("role","navigation"),P.setAttribute("aria-label",W("form.steps"));const p=I.createElement("ol");p.className=`${F}__stepper-list`,p.setAttribute("role","tablist"),p.setAttribute("aria-orientation",E),P.appendChild(p);let S=[];const k=r=>i[r]?i[r]:r<T?"complete":r===T?"active":"pending",d=r=>r<=T+1,c=()=>{p.textContent="",S=M.map((r,m)=>{const z=k(m),l=I.createElement("li");l.className=`${F}__stepper-item is-${z}`+(m===T?" is-active":"")+(d(m)?"":" is-locked");const g=I.createElement("button");g.type="button",g.className=`${F}__stepper-step`,g.setAttribute("role","tab"),g.setAttribute("aria-selected",m===T?"true":"false"),m===T&&g.setAttribute("aria-current","step"),g.tabIndex=m===T?0:-1,g.setAttribute("aria-disabled",d(m)?"false":"true");const w=I.createElement("span");w.className=`${F}__stepper-marker`,w.setAttribute("aria-hidden","true"),w.textContent=z==="complete"?"✓":z==="error"?"!":String(m+1),g.appendChild(w);const x=I.createElement("span");return x.className=`${F}__stepper-label`,x.textContent=r.label!=null&&r.label!==""?r.label:`${W("form.step")} ${m+1}`,g.appendChild(x),l.appendChild(g),p.appendChild(l),g})},t=r=>{typeof D.onGoTo=="function"&&d(r)&&D.onGoTo(r)},s=r=>{const m=r.target&&r.target.closest?r.target.closest(`.${F}__stepper-step`):null;if(!m||!p.contains(m))return;const z=S.indexOf(m);z>=0&&t(z)},u=r=>{const m=r.target&&r.target.closest?r.target.closest(`.${F}__stepper-step`):null;if(!m||!p.contains(m))return;const z=M.length;let l=S.indexOf(m);if(l<0)return;if(r.key==="ArrowRight"||r.key==="ArrowDown")l=(l+1)%z;else if(r.key==="ArrowLeft"||r.key==="ArrowUp")l=(l-1+z)%z;else if(r.key==="Home")l=0;else if(r.key==="End")l=z-1;else if(r.key==="Enter"||r.key===" "){r.preventDefault(),t(l);return}else return;r.preventDefault();const g=S[l];g&&g.focus()};return p.addEventListener("click",s),p.addEventListener("keydown",u),c(),{el:P,setActive(r){T=L(Number(r)||0,0,Math.max(0,M.length-1)),c()},setStatus(r,m){i[r]=m,c()},statusOf:k}}}),Me("packages/core/src/internal/icon-builtins.js",function(A,J){"use strict";Object.defineProperty(A,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"normaliseIcon",{enumerable:!0,get:function(){return F}});const _e={chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},dash:{viewBox:"0 0 16 16",paths:["M4 8h8"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},minus:{viewBox:"0 0 16 16",paths:["M3.5 8h9"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},calendar:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3z","M3 5.5h10","M5.5 1.5v2","M10.5 1.5v2"],paint:"stroke"},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},filter:{viewBox:"0 0 16 16",paths:["M2 3h12l-4.5 5.2V13L6.5 11.5V8.2Z"]},pause:{viewBox:"0 0 16 16",paths:["M4.5 3h2.5v10H4.5zM9 3h2.5v10H9z"]},play:{viewBox:"0 0 16 16",paths:["M4.5 3l8 5-8 5z"]},chart:{viewBox:"0 0 16 16",paths:["M2.5 13.5h11","M4.5 13.5v-4","M8 13.5v-8","M11.5 13.5v-6"],paint:"stroke"},palette:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 0 0 0 13c.7 0 1.2-.5 1.2-1.1 0-.3-.1-.6-.3-.8a1.1 1.1 0 0 1 .8-1.9h1.4A3.4 3.4 0 0 0 14.5 7c0-3-2.9-5.5-6.5-5.5Z","M4.6 7.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM6.7 4.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM9.9 4.7a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM11.9 6.9a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"]},undo:{viewBox:"0 0 16 16",paths:["M3 8h6.5a3.25 3.25 0 0 1 0 6.5H6M3 8l3-3M3 8l3 3"],paint:"stroke"},redo:{viewBox:"0 0 16 16",paths:["M13 8H6.5a3.25 3.25 0 0 0 0 6.5H10M13 8l-3-3M13 8l-3 3"],paint:"stroke"},columns:{viewBox:"0 0 16 16",paths:["M2.5 2.5h11v11h-11zM6.5 2.5v11M10 2.5v11"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},restore:{viewBox:"0 0 16 16",paths:["M3 8a5 5 0 1 0 1.6-3.7M3 3v2.8h2.8"],paint:"stroke"},spreadsheet:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3zM3 6h10M3 9.5h10M6.5 6v7.5"],paint:"stroke"},print:{viewBox:"0 0 16 16",paths:["M4.5 6V2.5h7V6M4.5 11.5h-2V6h11v5.5h-2M4.5 9.5h7v4h-7z"],paint:"stroke"},maximise:{viewBox:"0 0 16 16",paths:["M2.5 6V2.5H6M10 2.5h3.5V6M13.5 10v3.5H10M6 13.5H2.5V10"],paint:"stroke"},minimise:{viewBox:"0 0 16 16",paths:["M6 2.5V6H2.5M13.5 6H10V2.5M10 13.5V10h3.5M2.5 10H6v3.5"],paint:"stroke"},views:{viewBox:"0 0 16 16",paths:["M4 2.5h8v11L8 11l-4 2.5z"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},share:{viewBox:"0 0 16 16",paths:["M11.5 5.5a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M4.5 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M11.5 14.1a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M6.1 7.1l3.8-1.9M6.1 8.9l3.8 1.9"],paint:"stroke"},pin:{viewBox:"0 0 16 16",paths:["M8 2v6M5 8h6l1 2.5H4zM8 10.5V14"],paint:"stroke"},sortAsc:{viewBox:"0 0 16 16",paths:["M8 3.5 12 8H4Z"]},sortDesc:{viewBox:"0 0 16 16",paths:["M8 12.5 4 8h8Z"]},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"},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 F(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"}}}),Me("packages/modules/form/controls/field-icon.js",function(A,J){"use strict";Object.defineProperty(A,"fieldIconStylesheet",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"injectFieldIconStyles",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"makeFieldIcon",{enumerable:!0,get:function(){return I}});const F=J("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 P(){return`
|
|
1608
1608
|
.lat-form__field-icon{
|
|
1609
1609
|
display:block; flex:0 0 auto;
|
|
1610
1610
|
width:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1611
1611
|
height:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1612
1612
|
}
|
|
1613
|
-
`.trim()}function D(M){const W=M&&M.documentElement;if(!W||W.getAttribute(e))return;W.setAttribute(e,"1");const E=M.createElement("style");E.textContent=P(),(M.head||M.body||W).appendChild(E)}function I(M,W){const E=F[W];if(!E)return null;const T=M.createElementNS(L,"svg");T.setAttribute("class","lat-form__field-icon"),T.setAttribute("viewBox",E.viewBox||"0 0 16 16"),T.setAttribute("aria-hidden","true"),T.setAttribute("focusable","false");const i=E.paint==="stroke";for(const p of E.paths||[]){const S=M.createElementNS(L,"path");S.setAttribute("d",p),i?(S.setAttribute("fill","none"),S.setAttribute("stroke","currentColor"),S.setAttribute("stroke-width","1.5"),S.setAttribute("stroke-linecap","round"),S.setAttribute("stroke-linejoin","round")):S.setAttribute("fill","currentColor"),T.appendChild(S)}return T}}),De("packages/modules/form/messages.js",function(A,J){"use strict";Object.defineProperty(A,"FALLBACK_EN",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"t",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"createTranslator",{enumerable:!0,get:function(){return D}});const _e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.select.clear":"Clear selection","form.combo.toggle":"Show options","form.combo.clear":"Clear selection","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.noMatches":"No matches","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.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.mask":"Fill in every position of the format.","form.mask.format":"Format {pattern}. 9 is a digit, A is a letter, * is a letter or digit.","form.validation.custom":"Validation failed.","form.validation.ipv4":"Enter an IPv4 address, for example 10.0.0.1.","form.validation.ipv6":"Enter an IPv6 address, for example 2001:db8::1.","form.validation.cidr":"Enter a network in CIDR form, for example 10.0.0.0/24.","form.validation.mac":"Enter a MAC address with colons, hyphens, Cisco dots or bare hex, for example 00:1a:2b:3c:4d:5e.","form.validation.vlan":"Enter a VLAN ID from 1 to 4094, or a list of IDs and ranges, for example 10,20-30.","form.validation.vlanSingle":"Enter one VLAN ID from 1 to 4094. A list or a range is not allowed here.","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"}),F=Object.freeze({..._e});function L(I,M={}){const W=_e[I];return W===void 0?I:W.replace(/\{(\w+)\}/g,(E,T)=>M[T]===void 0?E:String(M[T]))}const e={t(I,M={}){return L(I,M)}};function P(I,M={}){return e.t(I,M)}function D(I){return{t(M,W={}){const E=I&&typeof I.t=="function"?I.t(M,W):M;return E===M?L(M,W):E}}}}),De("packages/dom/src/editors/sanitize-richtext.js",function(A,J){"use strict";Object.defineProperty(A,"ALLOWED",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"escapeHtml",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"sanitizeRichText",{enumerable:!0,get:function(){return E}});const _e={p:["style","class"],br:[],h1:["style"],h2:["style"],h3:["style"],h4:["style"],blockquote:["style"],pre:[],code:[],b:[],strong:[],i:[],em:[],u:[],s:[],strike:[],sub:[],sup:[],span:["style","class"],font:["color"],ins:["class"],del:["class"],ul:[],ol:["start"],li:["style","class"],a:["href","target","rel","title"],img:["src","alt","width","height","style"],hr:[],div:["style"],table:[],thead:[],tbody:[],tr:[],th:["style"],td:["style"]},F={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"],P=/^(data:image\/|https?:\/\/|\/)/i,D={"&":"&","<":"<",">":">",'"':""","'":"'"};function I(T){const i=T==null?"":String(T);return/[&<>"']/.test(i)?i.replace(/[&<>"']/g,p=>D[p]):i}function M(T,i){const p=String(T).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return p.startsWith("javascript:")||p.startsWith("vbscript:")?!0:p.startsWith("data:")?!(i&&p.startsWith("data:image/")):!1}function W(T){if(T.__latRtCanParse!==void 0)return T.__latRtCanParse;try{const i=T.createElement("template");i.innerHTML="<p>x</p>";const p=!!(i.content&&i.content.childNodes&&i.content.childNodes.length);return T.__latRtCanParse=p,p}catch{return T.__latRtCanParse=!1,!1}}function E(T,i,p=_e,S={}){const k=p||_e,d=String(i??"");if(!W(T))return I(d.replace(/<[^>]*>/g,""));const c=S.imageSrcPattern||P,t=T.createElement("template");t.innerHTML=d;const s=u=>{[...u.childNodes].forEach(r=>{if(r.nodeType===8){r.remove();return}if(r.nodeType!==1)return;const m=r.tagName.toLowerCase();if(L.has(m)){r.remove();return}if(s(r),!k[m]){const z=e.includes(m)?T.createElement("p"):null;if(z){for(;r.firstChild;)z.appendChild(r.firstChild);r.replaceWith(z)}else{for(;r.firstChild;)r.parentNode.insertBefore(r.firstChild,r);r.remove()}return}if([...r.attributes].forEach(z=>{const l=z.name.toLowerCase();if(/^on/i.test(l)||l==="srcdoc"||l==="id"||l==="name"){r.removeAttribute(z.name);return}if(l==="class"&&S.keepClass){r.setAttribute("class",z.value);return}if(!k[m].includes(l)){r.removeAttribute(z.name);return}if(l==="href"){const g=z.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(g)||M(g))&&r.removeAttribute("href")}else if(l==="src"){const g=z.value.trim();(!c.test(g)||M(g,!0))&&r.removeAttribute("src")}else if(l==="style"){if(S.stripStyles&&m!=="img"){r.removeAttribute("style");return}const g=z.value.split(";").map(w=>w.trim()).filter(Boolean).map(w=>{const x=w.indexOf(":");return[w.slice(0,x).trim().toLowerCase(),w.slice(x+1).trim()]}).filter(([w,x])=>F[w]&&F[w].test(x)).map(([w,x])=>`${w}: ${x}`).join("; ");g?r.setAttribute("style",g):r.removeAttribute("style")}else if(l==="target"&&z.value!=="_blank")r.removeAttribute("target");else if(l==="class"){const g=z.value.split(/\s+/).filter(w=>/^lat-/.test(w)||/^dfc-/.test(w)).join(" ");g?r.setAttribute("class",g):r.removeAttribute("class")}}),m==="div"){const z=T.createElement("p");for([...r.attributes].forEach(l=>z.setAttribute(l.name,l.value));r.firstChild;)z.appendChild(r.firstChild);r.replaceWith(z)}if(m==="img"&&!r.getAttribute("src")&&r.remove(),m==="a")if(r.getAttribute("href"))r.getAttribute("target")==="_blank"&&r.setAttribute("rel","noopener noreferrer");else{for(;r.firstChild;)r.parentNode.insertBefore(r.firstChild,r);r.remove()}})};return s(t.content),t.innerHTML}}),De("packages/dom/src/themeof.js",function(A,J){"use strict";Object.defineProperty(A,"themeOf",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"carryTheme",{enumerable:!0,get:function(){return F}});function _e(L){for(let e=L;e;e=e.parentNode){if(typeof e.getAttribute!="function")continue;const P=e.getAttribute("data-theme");if(P)return P}return null}function F(L,e){if(!L||typeof L.setAttribute!="function")return;const P=_e(e);P?L.setAttribute("data-theme",P):typeof L.removeAttribute=="function"&&L.removeAttribute("data-theme")}}),De("packages/modules/form/controls/popup-layer.js",function(A,J){"use strict";Object.defineProperty(A,"getLayerHost",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"flushOutsideFocus",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"placeAgainstField",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"openInLayer",{enumerable:!0,get:function(){return u}});const F=J("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"]),P="2147483647";function D(r){return typeof r.showPopover=="function"&&typeof r.hidePopover=="function"}function I(r){if(r.style.zIndex=`var(--lattice-popup-z, ${P})`,!!D(r)){r.setAttribute("popover","manual"),r.style.margin="0",r.style.inset="auto";try{r.showPopover()}catch{}}}function M(r){if(D(r)&&r.hasAttribute("popover")){try{r.hidePopover()}catch{}r.removeAttribute("popover")}r.style.zIndex="",r.style.margin="",r.style.inset=""}function W(r,m){const z=m.ownerDocument&&m.ownerDocument.defaultView;if(!z||typeof z.getComputedStyle!="function")return;const l=z.getComputedStyle(m);for(const g of e){const w=l.getPropertyValue(g);w&&r.style.setProperty(g,w)}}const E=new WeakMap,T=new WeakMap,i=new WeakMap;function p(r){for(let m=r;m;m=m.parentNode){if(typeof m.getAttribute!="function")continue;if((typeof m.tagName=="string"?m.tagName.toUpperCase():"")==="DIALOG"&&m.getAttribute("open")!==null)return m}return null}function S(r,m){const z=m?p(m):null;if(z){const v=T.get(z);if(v&&v.parentNode===z)return v;let f=null;for(const _ of z.childNodes||[])if(_&&typeof _.className=="string"&&_.className.split(/\s+/).includes(L)){f=_;break}const o=f||r.createElement("div");return f||(o.className=L,z.appendChild(o)),T.set(z,o),o}const l=E.get(r);if(l&&l.isConnected!==!1)return l;const g=r.body||r.documentElement,w=g&&typeof g.querySelector=="function"?g.querySelector(`.${L}`):null,x=w||r.createElement("div");return w||(x.className=L,g.appendChild(x)),E.set(r,x),x}function k(r,m,z){return r.bottom<=0||r.top>=z||r.right<=0||r.left>=m}function d(r,m){const z=r&&r.ownerDocument,l=z&&z.activeElement;!l||l===z.body||l===r||r.contains(l)||m&&m.contains(l)||typeof l.blur=="function"&&l.blur()}function c(r,m,z={}){const l=m.ownerDocument,g=l&&l.defaultView,w=g?g.innerWidth:0,x=g?g.innerHeight:0;r.style.position="fixed";const v=m.getBoundingClientRect();if(k(v,w,x))return!0;r.style.marginTop="0",r.style.marginBottom="0",r.style.marginLeft="0",r.style.marginRight="0",z.matchWidth===!1?r.style.minWidth=`${v.width}px`:r.style.width=`${v.width}px`;let f=v.left;const o=r.offsetWidth||v.width;w&&f+o>w&&(f=Math.max(0,w-o)),r.style.left=`${f}px`,r.style.right="auto";const _=r.offsetHeight||0;return x-v.bottom<_+4&&v.top>_+4?(r.style.top="auto",r.style.bottom=`${Math.max(0,x-v.top)}px`,z.aboveClass&&r.classList.add(z.aboveClass)):(r.style.bottom="auto",r.style.top=`${v.bottom}px`,z.aboveClass&&r.classList.remove(z.aboveClass)),!1}function t(r,m,z){let l=i.get(r);if(!l){const g=r.defaultView;l={entries:new Set,onTrack(){for(const w of[...l.entries])w.reposition()},ro:typeof ResizeObserver=="function"?new ResizeObserver(()=>l.onTrack()):null},g&&(g.addEventListener("scroll",l.onTrack,!0),g.addEventListener("resize",l.onTrack)),i.set(r,l)}l.entries.add(m),l.ro&&l.ro.observe(z)}function s(r,m,z){const l=i.get(r);if(l&&(l.entries.delete(m),l.ro&&l.ro.unobserve(z),l.entries.size===0)){const g=r.defaultView;g&&(g.removeEventListener("scroll",l.onTrack,!0),g.removeEventListener("resize",l.onTrack)),l.ro&&l.ro.disconnect(),i.delete(r)}}function u(r,m,z={}){const l=m.ownerDocument,g=S(l,m),w=r.parentNode,x=r.nextSibling;let v=!1;g.appendChild(r),F(r,m),W(r,m),W(g,m),I(r);const f={reposition(){if(v)return;c(r,m,z)&&typeof z.onOffscreen=="function"&&z.onOffscreen()},close(){v||(v=!0,s(l,f,m),M(r),w&&(x&&x.parentNode===w?w.insertBefore(r,x):w.appendChild(r)))}};return t(l,f,m),f.reposition(),f}}),De("packages/dom/src/autofill.js",function(A,J){"use strict";Object.defineProperty(A,"fieldName",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"ensureOpaqueName",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"noHistory",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"applyAutocomplete",{enumerable:!0,get:function(){return P}});let _e=0;function F(D="lat-f"){return _e+=1,`${D}-${_e.toString(36)}`}function L(D){D.getAttribute("name")||D.setAttribute("name",F())}function e(D){return D.setAttribute("autocomplete","off"),L(D),D}function P(D,I,M=null){typeof I=="string"&&I!==""?D.setAttribute("autocomplete",I):M&&D.setAttribute("autocomplete",M)}}),De("packages/modules/form/controls/combo.js",function(A,J){"use strict";Object.defineProperty(A,"adornmentStylesheet",{enumerable:!0,get:function(){return _}}),Object.defineProperty(A,"injectAdornmentStyles",{enumerable:!0,get:function(){return b}}),Object.defineProperty(A,"isImageUrl",{enumerable:!0,get:function(){return y}}),Object.defineProperty(A,"initialsFor",{enumerable:!0,get:function(){return h}}),Object.defineProperty(A,"stableHash",{enumerable:!0,get:function(){return $}}),Object.defineProperty(A,"avatarColor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(A,"applyAvatarTint",{enumerable:!0,get:function(){return O}}),Object.defineProperty(A,"makeIcon",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(A,"renderIcon",{enumerable:!0,get:function(){return se}}),Object.defineProperty(A,"renderAvatar",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(A,"renderDot",{enumerable:!0,get:function(){return we}}),Object.defineProperty(A,"renderAdornment",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(A,"renderTemplateContent",{enumerable:!0,get:function(){return C}}),Object.defineProperty(A,"createCombo",{enumerable:!0,get:function(){return me}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,M=J("packages/modules/form/styles.js").injectStyles,E=J("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,i=J("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,p=J("packages/modules/form/controls/field-icon.js"),S=p.makeFieldIcon,k=p.injectFieldIconStyles,d=J("packages/modules/form/controls/popup-layer.js"),c=d.openInLayer,t=d.flushOutsideFocus,s=J("packages/dom/src/autofill.js"),u=s.noHistory,r=s.applyAutocomplete,m=250,z="lat-combo__popup--above",l=20,g=48,w="data-lattice-combo-chip-row-styles";function x(){return`
|
|
1613
|
+
`.trim()}function D(M){const W=M&&M.documentElement;if(!W||W.getAttribute(e))return;W.setAttribute(e,"1");const E=M.createElement("style");E.textContent=P(),(M.head||M.body||W).appendChild(E)}function I(M,W){const E=F[W];if(!E)return null;const T=M.createElementNS(L,"svg");T.setAttribute("class","lat-form__field-icon"),T.setAttribute("viewBox",E.viewBox||"0 0 16 16"),T.setAttribute("aria-hidden","true"),T.setAttribute("focusable","false");const i=E.paint==="stroke";for(const p of E.paths||[]){const S=M.createElementNS(L,"path");S.setAttribute("d",p),i?(S.setAttribute("fill","none"),S.setAttribute("stroke","currentColor"),S.setAttribute("stroke-width","1.5"),S.setAttribute("stroke-linecap","round"),S.setAttribute("stroke-linejoin","round")):S.setAttribute("fill","currentColor"),T.appendChild(S)}return T}}),Me("packages/modules/form/messages.js",function(A,J){"use strict";Object.defineProperty(A,"FALLBACK_EN",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"t",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"createTranslator",{enumerable:!0,get:function(){return D}});const _e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.select.clear":"Clear selection","form.combo.toggle":"Show options","form.combo.clear":"Clear selection","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.noMatches":"No matches","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.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.mask":"Fill in every position of the format.","form.mask.format":"Format {pattern}. 9 is a digit, A is a letter, * is a letter or digit.","form.validation.custom":"Validation failed.","form.validation.ipv4":"Enter an IPv4 address, for example 10.0.0.1.","form.validation.ipv6":"Enter an IPv6 address, for example 2001:db8::1.","form.validation.cidr":"Enter a network in CIDR form, for example 10.0.0.0/24.","form.validation.mac":"Enter a MAC address with colons, hyphens, Cisco dots or bare hex, for example 00:1a:2b:3c:4d:5e.","form.validation.vlan":"Enter a VLAN ID from 1 to 4094, or a list of IDs and ranges, for example 10,20-30.","form.validation.vlanSingle":"Enter one VLAN ID from 1 to 4094. A list or a range is not allowed here.","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"}),F=Object.freeze({..._e});function L(I,M={}){const W=_e[I];return W===void 0?I:W.replace(/\{(\w+)\}/g,(E,T)=>M[T]===void 0?E:String(M[T]))}const e={t(I,M={}){return L(I,M)}};function P(I,M={}){return e.t(I,M)}function D(I){return{t(M,W={}){const E=I&&typeof I.t=="function"?I.t(M,W):M;return E===M?L(M,W):E}}}}),Me("packages/dom/src/editors/sanitize-richtext.js",function(A,J){"use strict";Object.defineProperty(A,"ALLOWED",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"escapeHtml",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"sanitizeRichText",{enumerable:!0,get:function(){return E}});const _e={p:["style","class"],br:[],h1:["style"],h2:["style"],h3:["style"],h4:["style"],blockquote:["style"],pre:[],code:[],b:[],strong:[],i:[],em:[],u:[],s:[],strike:[],sub:[],sup:[],span:["style","class"],font:["color"],ins:["class"],del:["class"],ul:[],ol:["start"],li:["style","class"],a:["href","target","rel","title"],img:["src","alt","width","height","style"],hr:[],div:["style"],table:[],thead:[],tbody:[],tr:[],th:["style"],td:["style"]},F={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"],P=/^(data:image\/|https?:\/\/|\/)/i,D={"&":"&","<":"<",">":">",'"':""","'":"'"};function I(T){const i=T==null?"":String(T);return/[&<>"']/.test(i)?i.replace(/[&<>"']/g,p=>D[p]):i}function M(T,i){const p=String(T).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return p.startsWith("javascript:")||p.startsWith("vbscript:")?!0:p.startsWith("data:")?!(i&&p.startsWith("data:image/")):!1}function W(T){if(T.__latRtCanParse!==void 0)return T.__latRtCanParse;try{const i=T.createElement("template");i.innerHTML="<p>x</p>";const p=!!(i.content&&i.content.childNodes&&i.content.childNodes.length);return T.__latRtCanParse=p,p}catch{return T.__latRtCanParse=!1,!1}}function E(T,i,p=_e,S={}){const k=p||_e,d=String(i??"");if(!W(T))return I(d.replace(/<[^>]*>/g,""));const c=S.imageSrcPattern||P,t=T.createElement("template");t.innerHTML=d;const s=u=>{[...u.childNodes].forEach(r=>{if(r.nodeType===8){r.remove();return}if(r.nodeType!==1)return;const m=r.tagName.toLowerCase();if(L.has(m)){r.remove();return}if(s(r),!k[m]){const z=e.includes(m)?T.createElement("p"):null;if(z){for(;r.firstChild;)z.appendChild(r.firstChild);r.replaceWith(z)}else{for(;r.firstChild;)r.parentNode.insertBefore(r.firstChild,r);r.remove()}return}if([...r.attributes].forEach(z=>{const l=z.name.toLowerCase();if(/^on/i.test(l)||l==="srcdoc"||l==="id"||l==="name"){r.removeAttribute(z.name);return}if(l==="class"&&S.keepClass){r.setAttribute("class",z.value);return}if(!k[m].includes(l)){r.removeAttribute(z.name);return}if(l==="href"){const g=z.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(g)||M(g))&&r.removeAttribute("href")}else if(l==="src"){const g=z.value.trim();(!c.test(g)||M(g,!0))&&r.removeAttribute("src")}else if(l==="style"){if(S.stripStyles&&m!=="img"){r.removeAttribute("style");return}const g=z.value.split(";").map(w=>w.trim()).filter(Boolean).map(w=>{const x=w.indexOf(":");return[w.slice(0,x).trim().toLowerCase(),w.slice(x+1).trim()]}).filter(([w,x])=>F[w]&&F[w].test(x)).map(([w,x])=>`${w}: ${x}`).join("; ");g?r.setAttribute("style",g):r.removeAttribute("style")}else if(l==="target"&&z.value!=="_blank")r.removeAttribute("target");else if(l==="class"){const g=z.value.split(/\s+/).filter(w=>/^lat-/.test(w)||/^dfc-/.test(w)).join(" ");g?r.setAttribute("class",g):r.removeAttribute("class")}}),m==="div"){const z=T.createElement("p");for([...r.attributes].forEach(l=>z.setAttribute(l.name,l.value));r.firstChild;)z.appendChild(r.firstChild);r.replaceWith(z)}if(m==="img"&&!r.getAttribute("src")&&r.remove(),m==="a")if(r.getAttribute("href"))r.getAttribute("target")==="_blank"&&r.setAttribute("rel","noopener noreferrer");else{for(;r.firstChild;)r.parentNode.insertBefore(r.firstChild,r);r.remove()}})};return s(t.content),t.innerHTML}}),Me("packages/dom/src/themeof.js",function(A,J){"use strict";Object.defineProperty(A,"themeOf",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"carryTheme",{enumerable:!0,get:function(){return F}});function _e(L){for(let e=L;e;e=e.parentNode){if(typeof e.getAttribute!="function")continue;const P=e.getAttribute("data-theme");if(P)return P}return null}function F(L,e){if(!L||typeof L.setAttribute!="function")return;const P=_e(e);P?L.setAttribute("data-theme",P):typeof L.removeAttribute=="function"&&L.removeAttribute("data-theme")}}),Me("packages/modules/form/controls/popup-layer.js",function(A,J){"use strict";Object.defineProperty(A,"getLayerHost",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"flushOutsideFocus",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"placeAgainstField",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"openInLayer",{enumerable:!0,get:function(){return u}});const F=J("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"]),P="2147483647";function D(r){return typeof r.showPopover=="function"&&typeof r.hidePopover=="function"}function I(r){if(r.style.zIndex=`var(--lattice-popup-z, ${P})`,!!D(r)){r.setAttribute("popover","manual"),r.style.margin="0",r.style.inset="auto";try{r.showPopover()}catch{}}}function M(r){if(D(r)&&r.hasAttribute("popover")){try{r.hidePopover()}catch{}r.removeAttribute("popover")}r.style.zIndex="",r.style.margin="",r.style.inset=""}function W(r,m){const z=m.ownerDocument&&m.ownerDocument.defaultView;if(!z||typeof z.getComputedStyle!="function")return;const l=z.getComputedStyle(m);for(const g of e){const w=l.getPropertyValue(g);w&&r.style.setProperty(g,w)}}const E=new WeakMap,T=new WeakMap,i=new WeakMap;function p(r){for(let m=r;m;m=m.parentNode){if(typeof m.getAttribute!="function")continue;if((typeof m.tagName=="string"?m.tagName.toUpperCase():"")==="DIALOG"&&m.getAttribute("open")!==null)return m}return null}function S(r,m){const z=m?p(m):null;if(z){const v=T.get(z);if(v&&v.parentNode===z)return v;let f=null;for(const _ of z.childNodes||[])if(_&&typeof _.className=="string"&&_.className.split(/\s+/).includes(L)){f=_;break}const o=f||r.createElement("div");return f||(o.className=L,z.appendChild(o)),T.set(z,o),o}const l=E.get(r);if(l&&l.isConnected!==!1)return l;const g=r.body||r.documentElement,w=g&&typeof g.querySelector=="function"?g.querySelector(`.${L}`):null,x=w||r.createElement("div");return w||(x.className=L,g.appendChild(x)),E.set(r,x),x}function k(r,m,z){return r.bottom<=0||r.top>=z||r.right<=0||r.left>=m}function d(r,m){const z=r&&r.ownerDocument,l=z&&z.activeElement;!l||l===z.body||l===r||r.contains(l)||m&&m.contains(l)||typeof l.blur=="function"&&l.blur()}function c(r,m,z={}){const l=m.ownerDocument,g=l&&l.defaultView,w=g?g.innerWidth:0,x=g?g.innerHeight:0;r.style.position="fixed";const v=m.getBoundingClientRect();if(k(v,w,x))return!0;r.style.marginTop="0",r.style.marginBottom="0",r.style.marginLeft="0",r.style.marginRight="0",z.matchWidth===!1?r.style.minWidth=`${v.width}px`:r.style.width=`${v.width}px`;let f=v.left;const o=r.offsetWidth||v.width;w&&f+o>w&&(f=Math.max(0,w-o)),r.style.left=`${f}px`,r.style.right="auto";const _=r.offsetHeight||0;return x-v.bottom<_+4&&v.top>_+4?(r.style.top="auto",r.style.bottom=`${Math.max(0,x-v.top)}px`,z.aboveClass&&r.classList.add(z.aboveClass)):(r.style.bottom="auto",r.style.top=`${v.bottom}px`,z.aboveClass&&r.classList.remove(z.aboveClass)),!1}function t(r,m,z){let l=i.get(r);if(!l){const g=r.defaultView;l={entries:new Set,onTrack(){for(const w of[...l.entries])w.reposition()},ro:typeof ResizeObserver=="function"?new ResizeObserver(()=>l.onTrack()):null},g&&(g.addEventListener("scroll",l.onTrack,!0),g.addEventListener("resize",l.onTrack)),i.set(r,l)}l.entries.add(m),l.ro&&l.ro.observe(z)}function s(r,m,z){const l=i.get(r);if(l&&(l.entries.delete(m),l.ro&&l.ro.unobserve(z),l.entries.size===0)){const g=r.defaultView;g&&(g.removeEventListener("scroll",l.onTrack,!0),g.removeEventListener("resize",l.onTrack)),l.ro&&l.ro.disconnect(),i.delete(r)}}function u(r,m,z={}){const l=m.ownerDocument,g=S(l,m),w=r.parentNode,x=r.nextSibling;let v=!1;g.appendChild(r),F(r,m),W(r,m),W(g,m),I(r);const f={reposition(){if(v)return;c(r,m,z)&&typeof z.onOffscreen=="function"&&z.onOffscreen()},close(){v||(v=!0,s(l,f,m),M(r),w&&(x&&x.parentNode===w?w.insertBefore(r,x):w.appendChild(r)))}};return t(l,f,m),f.reposition(),f}}),Me("packages/dom/src/autofill.js",function(A,J){"use strict";Object.defineProperty(A,"fieldName",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"ensureOpaqueName",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"noHistory",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"applyAutocomplete",{enumerable:!0,get:function(){return P}});let _e=0;function F(D="lat-f"){return _e+=1,`${D}-${_e.toString(36)}`}function L(D){D.getAttribute("name")||D.setAttribute("name",F())}function e(D){return D.setAttribute("autocomplete","off"),L(D),D}function P(D,I,M=null){typeof I=="string"&&I!==""?D.setAttribute("autocomplete",I):M&&D.setAttribute("autocomplete",M)}}),Me("packages/modules/form/controls/combo.js",function(A,J){"use strict";Object.defineProperty(A,"adornmentStylesheet",{enumerable:!0,get:function(){return _}}),Object.defineProperty(A,"injectAdornmentStyles",{enumerable:!0,get:function(){return b}}),Object.defineProperty(A,"isImageUrl",{enumerable:!0,get:function(){return y}}),Object.defineProperty(A,"initialsFor",{enumerable:!0,get:function(){return h}}),Object.defineProperty(A,"stableHash",{enumerable:!0,get:function(){return $}}),Object.defineProperty(A,"avatarColor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(A,"applyAvatarTint",{enumerable:!0,get:function(){return O}}),Object.defineProperty(A,"makeIcon",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(A,"renderIcon",{enumerable:!0,get:function(){return le}}),Object.defineProperty(A,"renderAvatar",{enumerable:!0,get:function(){return se}}),Object.defineProperty(A,"renderDot",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(A,"renderAdornment",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(A,"renderTemplateContent",{enumerable:!0,get:function(){return C}}),Object.defineProperty(A,"createCombo",{enumerable:!0,get:function(){return be}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,M=J("packages/modules/form/styles.js").injectStyles,E=J("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,i=J("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,p=J("packages/modules/form/controls/field-icon.js"),S=p.makeFieldIcon,k=p.injectFieldIconStyles,d=J("packages/modules/form/controls/popup-layer.js"),c=d.openInLayer,t=d.flushOutsideFocus,s=J("packages/dom/src/autofill.js"),u=s.noHistory,r=s.applyAutocomplete,m=250,z="lat-combo__popup--above",l=20,g=48,w="data-lattice-combo-chip-row-styles";function x(){return`
|
|
1614
1614
|
.lat-combo__control{ position:relative; }
|
|
1615
1615
|
.lat-combo__chip-row{
|
|
1616
1616
|
display:flex;flex-wrap:wrap;align-items:flex-start;
|
|
@@ -1665,7 +1665,7 @@ ${L(`.${e}[data-lattice-standalone]`)}
|
|
|
1665
1665
|
.lat-select__value[data-placeholder='true']{ display:block; }
|
|
1666
1666
|
.lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
|
|
1667
1667
|
.lat-combo input.lat-combo__input.lat-combo__input--text-hidden{ color:transparent; caret-color:transparent; }
|
|
1668
|
-
`.trim()}function b(X){const de=X&&X.documentElement;if(!de||de.getAttribute(f))return;de.setAttribute(f,"1");const pe=X.createElement("style");pe.textContent=_(),(X.head||X.body||de).appendChild(pe)}function y(X){return/^(https?:|data:image\/|\/)/i.test(X)}function h(X){const de=String(X??"").trim();if(!de)return"";const pe=de.split(/\s+/);return pe.length>=2?(pe[0][0]+pe[1][0]).toUpperCase():de.slice(0,2).toUpperCase()}function $(X){let de=5381;const pe=String(X??"");for(let Y=0;Y<pe.length;Y++)de=(de<<5)+de+pe.charCodeAt(Y)>>>0;return de}function ee(X){if(X&&X.color!=null&&String(X.color)!=="")return String(X.color);const de=X&&X.label!=null?String(X.label):X&&X.value!=null?String(X.value):"";return`hsl(${$(de)%360}, 62%, 45%)`}function O(X,de){X.style.background=ee(de),X.style.color="#fff"}function ae(X,de){const pe=E[de];if(!pe)return null;const Y=X.createElementNS(o,"svg");Y.setAttribute("class","lat-combo__icon"),Y.setAttribute("viewBox",pe.viewBox||"0 0 16 16"),Y.setAttribute("aria-hidden","true"),Y.setAttribute("focusable","false");const re=pe.paint==="stroke";for(const N of pe.paths||[]){const ue=X.createElementNS(o,"path");ue.setAttribute("d",N),re?(ue.setAttribute("fill","none"),ue.setAttribute("stroke","currentColor"),ue.setAttribute("stroke-width","1.5"),ue.setAttribute("stroke-linecap","round"),ue.setAttribute("stroke-linejoin","round")):ue.setAttribute("fill","currentColor"),Y.appendChild(ue)}return Y}function se(X,de,pe){if(de==null||de==="")return null;let Y;if(de.nodeType)Y=de.cloneNode(!0),Y.setAttribute&&Y.setAttribute("aria-hidden","true");else{const re=String(de),N=ae(X,re);N?Y=N:(Y=X.createElement("span"),Y.className="lat-combo__icon lat-combo__icon--glyph",Y.setAttribute("aria-hidden","true"),Y.textContent=re.slice(0,2))}return pe!=null&&String(pe)!==""&&Y&&Y.style&&(Y.style.color=String(pe)),Y}function ce(X,de){const pe=X.createElement("span");pe.className="lat-combo__avatar",pe.setAttribute("aria-hidden","true");const Y=String(de.avatar);if(y(Y)){const re=X.createElement("img");return re.className="lat-combo__avatar-img",re.alt="",re.src=Y,re.addEventListener("error",()=>{for(;pe.firstChild;)pe.removeChild(pe.firstChild);pe.classList.add("lat-combo__avatar--initials"),pe.textContent=h(de.label),O(pe,de)}),pe.appendChild(re),pe}return pe.classList.add("lat-combo__avatar--initials"),pe.textContent=Y.slice(0,2),O(pe,de),pe}const Z={r:255,g:255,b:255},Q={r:20,g:24,b:28},Pe=3;function ie(X){const de=X.split(/[,/\s]+/).filter(Boolean).map(Number);return de.length<3||de.some(pe=>Number.isNaN(pe))?null:{r:de[0],g:de[1],b:de[2]}}function j(X,de){const pe=String(de).trim();if(!pe)return null;if(X&&X.createElement)try{const re=X.defaultView;if(re&&re.getComputedStyle){const N=X.createElement("span");N.style.color=pe;const ue=/rgba?\(([^)]+)\)/.exec(re.getComputedStyle(N).color||"");if(ue)return ie(ue[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(pe)){let re=pe.slice(1);return(re.length===3||re.length===4)&&(re=re.split("").map(N=>N+N).join("")),{r:parseInt(re.slice(0,2),16),g:parseInt(re.slice(2,4),16),b:parseInt(re.slice(4,6),16)}}const Y=/rgba?\(([^)]+)\)/.exec(pe);return Y?ie(Y[1]):null}function H(X){const de=pe=>{const Y=pe/255;return Y<=.03928?Y/12.92:((Y+.055)/1.055)**2.4};return .2126*de(X.r)+.7152*de(X.g)+.0722*de(X.b)}function ne(X,de){const pe=H(X),Y=H(de),re=Math.max(pe,Y),N=Math.min(pe,Y);return(re+.05)/(N+.05)}function q(X,de){const pe=j(X,de);return pe?ne(pe,Z)<Pe||ne(pe,Q)<Pe:!0}function we(X,de){const pe=X.createElement("span");pe.className="lat-combo__dot",pe.setAttribute("aria-hidden","true");const Y=String(de.dot);return pe.style.background=Y,q(X,Y)&&pe.setAttribute("data-ring","true"),pe}function $e(X,de){const pe=de&&de.dot;if(pe!=null&&pe!=="")return we(X,de);const Y=de&&de.icon;if(Y!=null&&Y!=="")return se(X,Y,de.color);const re=de&&de.avatar;return re!=null&&re!==""?ce(X,de):null}function C(X,de,pe){if(typeof pe!="function")return null;const Y=pe(de);if(Y==null||Y===!1)return null;if(Y.nodeType)return Y.cloneNode(!0);const re=X.createElement("span");re.className="lat-combo__template";const N=String(Y);return N.includes("<")?re.innerHTML=i(X,N,void 0,{keepClass:!0}):re.textContent=N,re}function K(X){return X!=null&&typeof X=="object"?X.value:X}function G(X){return X==null?"":typeof X!="object"?String(X):X.label!=null?String(X.label):X.title!=null?String(X.title):X.value==null?"":String(X.value)}function B(X){return X==null||typeof X!="object"?null:X.description!=null?String(X.description):X.subtitle!=null?String(X.subtitle):null}function te(X){return B(X)!=null||X!=null&&typeof X=="object"&&(X.avatar!=null||X.icon!=null)}function ge(X){const de=X!=null&&typeof X=="object"?X:{};return{value:K(X),label:G(X),description:B(X),avatar:de.avatar,icon:de.icon,color:de.color,dot:de.dot,disabled:de.disabled===!0}}function oe(X){if(Array.isArray(X))return{items:X,total:X.length,hasMore:!1};if(X&&typeof X=="object"){const de=Array.isArray(X.items)?X.items:[];return{items:de,total:typeof X.total=="number"?X.total:de.length,hasMore:X.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function fe(X,de){return X===de?!0:X!=null&&de!=null&&String(X)===String(de)}function ve(X,de,pe={}){const Y=X&&X.defaultView;return Y&&Y.Event?new Y.Event(de,pe):{type:de,bubbles:pe.bubbles!==!1,cancelable:pe.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function me(X,de={}){const pe=de.doc||X&&X.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;pe&&(M(pe),b(pe),k(pe));const Y=typeof de.t=="function"?de.t:e,re=de.multiple===!0,N=re&&["above","below"].includes(de.chipPlacement)?de.chipPlacement:"inside";pe&&N!=="inside"&&v(pe);const ue=typeof de.debounce=="number"&&de.debounce>=0?de.debounce:m,ye=typeof de.pageSize=="number"&&de.pageSize>0?de.pageSize:l,R=de.selectAll===!0,n=re?Array.isArray(de.value)?de.value:de.value==null?[]:[de.value]:de.value==null?null:de.value,a=pe.createElement("div");a.className="lat-combo",re&&a.setAttribute("data-multiple","true"),N!=="inside"&&a.setAttribute("data-chip-placement",N),de.inForm||(a.setAttribute("data-lattice-standalone","true"),a.setAttribute("data-density",["compact","standard","comfortable"].includes(de.density)?de.density:"standard"));const U=pe.createElement("div");U.className="lat-combo__control";const V=pe.createElement("div");V.className="lat-combo__chips";const le=pe.createElement("span");le.className="lat-combo__summary",le.hidden=!0;const Ae=pe.createElement("div");Ae.className="lat-combo__chip-row",Ae.setAttribute("role","group"),Ae.hidden=!0;const he=N==="inside"?V:Ae;typeof de.maxHeight=="number"&&(he.style.maxHeight=`${de.maxHeight}px`);const je=pe.createElement("span");je.className="lat-combo__value",je.setAttribute("aria-hidden","true"),je.hidden=!0;const ke=pe.createElement("input");ke.className="lat-combo__input",ke.type="text",ke.setAttribute("role","combobox"),ke.setAttribute("aria-autocomplete","list"),u(ke),r(ke,de.autocomplete),typeof de.name=="string"&&de.name!==""&&typeof de.autocomplete=="string"&&ke.setAttribute("name",de.name),ke.setAttribute("aria-haspopup","listbox"),ke.setAttribute("aria-expanded","false"),re&&ke.setAttribute("aria-multiselectable","true"),de.placeholder!=null&&(ke.placeholder=String(de.placeholder)),de.inForm&&de.ariaLabel!=null&&ke.setAttribute("aria-label",String(de.ariaLabel));const Re=pe.createElement("button");Re.type="button",Re.className="lat-combo__toggle",Re.setAttribute("aria-label",Y("form.combo.toggle")),Re.setAttribute("aria-haspopup","listbox"),Re.setAttribute("aria-expanded","false");const Ne=S(pe,"chevronDown");Ne&&Re.appendChild(Ne);const Me=pe.createElement("button");Me.type="button",Me.className="lat-combo__clear",Me.setAttribute("aria-label",Y("form.combo.clear")),Me.hidden=!0;const Oe=S(pe,"close");Oe&&Me.appendChild(Oe);const Te=!re&&de.clearable===!0,Le=pe.createElement("div");Le.className="lat-combo__popup lat-combo",Le.hidden=!0;const We=pe.createElement("div");We.className="lat-combo__list",We.setAttribute("role","listbox");const Ve=pe.createElement("div");Ve.className="lat-combo__spacer",We.appendChild(Ve);const Ze=pe.createElement("div");Ze.className="lat-combo__status",Ze.setAttribute("role","status"),Ze.setAttribute("aria-live","polite");const He=pe.createElement("div");He.className="lat-combo__option lat-combo__option--create",He.setAttribute("role","option"),He.hidden=!0,We.insertBefore(He,Ve);const rt=pe.createElement("div");rt.className="lat-combo__empty",rt.setAttribute("role","presentation"),rt.setAttribute("aria-live","polite"),rt.hidden=!0,We.insertBefore(rt,Ve),Le.appendChild(We),Le.appendChild(Ze),U.appendChild(Le),N!=="inside"?(U.appendChild(ke),U.appendChild(Re),Ae.appendChild(V),Ae.appendChild(le),N==="above"&&a.appendChild(Ae),a.appendChild(U),N==="below"&&a.appendChild(Ae)):(U.appendChild(V),U.appendChild(le),U.appendChild(je),U.appendChild(ke),Te&&U.appendChild(Me),U.appendChild(Re),a.appendChild(U));const Xe=D("lat-combo-lb");We.id=Xe,ke.setAttribute("aria-controls",Xe);let Ge=[],xe=[];const Ke=new Map;let Fe=0,Be=0,Qe=!1,qe=!1,ht=!1,mt="",lt=!1,bt=-1,xt=null,St=0,ft=null;const Vt=new Map;let Lt=Array.isArray(de.options)?de.options:[];const gt=[],ot=[];let At=0,Ct=0;const Wt=[];let vt=!1,Rt=!1,jt=!1,wt=null;function dt(Ce,ze,Ue){Ce.addEventListener(ze,Ue),Wt.push(()=>Ce.removeEventListener(ze,Ue))}function kt(Ce){const ze=Ke.get(String(Ce));if(ze)return ze;if(Ce!=null){for(const Ue of Ke.values())if(fe(Ue.value,Ce))return Ue}return null}function Mt(Ce){const ze=kt(Ce);return ze?ze.label:Ce==null?"":String(Ce)}function $t(Ce){Ce.value!=null&&Ke.set(String(Ce.value),Ce)}function Nt(Ce){if(typeof de.resolveLabels!="function")return;const ze=Ce.filter(at=>at!=null&&!kt(at));if(ze.length===0)return;const Ue=de.resolveLabels(ze),Je=at=>{if(!(vt||!Array.isArray(at))){for(const it of at){const tt=ge(it);tt.value!=null&&$t(tt)}xe=xe.map(it=>kt(it.value)||it),Ee(),Ft()}};Ue&&typeof Ue.then=="function"?Ue.then(Je):Je(Ue)}function Pt(){X.dispatchEvent(ve(pe,"change",{bubbles:!0}))}function Yt(){return re?xe.map(Ce=>Ce.value):xe.length?xe[0].value:null}function Gt(Ce){let ze;if(re)ze=Array.isArray(Ce)?Ce:Ce==null?[]:[Ce];else{const Je=Array.isArray(Ce)?Ce.length?Ce[0]:null:Ce;ze=Je==null?[]:[Je]}const Ue=ze.filter(Je=>Je!=null&&(Je!==""||kt(Je)!=null));xe=Ue.map(Je=>kt(Je)||{value:Je,label:Je==null?"":String(Je),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Nt(Ue),Ee(),et(),Tt()}function yt(){return de.readOnly===!0}function Bt(){xe.length!==0&&(xe=[],Ee(),et(),Tt(),Dt(),Ft(),Pt())}function Xt(Ce){const ze=pe.createElement("span");ze.className="lat-combo__chip",ze.dataset.value=String(Ce.value);const Ue=C(pe,Ce,de.selectedTemplate);if(Ue){const Je=pe.createElement("span");Je.className="lat-combo__chip-label",Je.appendChild(Ue),ze.appendChild(Je)}else{const Je=$e(pe,Ce);Je&&ze.appendChild(Je);const at=pe.createElement("span");at.className="lat-combo__chip-label",at.textContent=Mt(Ce.value),ze.appendChild(at)}if(!Ce.disabled&&!yt()){const Je=pe.createElement("button");Je.type="button",Je.className="lat-combo__chip-remove",Je.setAttribute("aria-label",Y("form.combo.remove",{label:Mt(Ce.value)})),Je.textContent="×",dt(Je,"click",it=>{it.stopPropagation(),Ie(Ce.value)}),ze.appendChild(Je)}return ze}function Dt(){re||(ke.value=xe.length?Mt(xe[0].value):"")}function Ft(){if(re){je.hidden=!0,jt=!1,pt();return}for(;je.firstChild;)je.removeChild(je.firstChild);if(xe.length===0){je.hidden=!0,jt=!1,pt();return}const Ce=xe[0],ze=C(pe,Ce,de.selectedTemplate),Ue=ze||$e(pe,Ce);jt=!!ze,Ue&&je.appendChild(Ue),pt()}function pt(){if(!jt){je.hidden=je.childNodes.length===0,ke.classList.remove("lat-combo__input--text-hidden");return}je.hidden=Rt,ke.classList.toggle("lat-combo__input--text-hidden",!Rt)}function be(Ce){const ze=Y("form.combo.selected",{count:Ce});return ze==="form.combo.selected"?`Selected: ${Ce}`:ze}function Ee(){for(;V.firstChild;)V.removeChild(V.firstChild);if(re){for(const Ce of xe)V.appendChild(Xt(Ce));V.hidden=xe.length===0}else V.hidden=!0;N!=="inside"&&(Ae.hidden=!re||xe.length===0,Ae.setAttribute("aria-label",be(xe.length))),Dt(),Ft(),Se()}function Se(){if(!re||xe.length===0){le.hidden=!0;return}const Ce=he.getBoundingClientRect().bottom;let ze=0;const Ue=[...V.children];for(const Je of Ue)Je.getBoundingClientRect().top>=Ce-1&&(ze+=1);ze>0?(le.hidden=!1,le.textContent=Y("form.combo.more",{count:ze})):le.hidden=!0}function Ie(Ce){if(yt())return;const ze=xe.length;xe=xe.filter(Ue=>!fe(Ue.value,Ce)),xe.length!==ze&&(Ee(),et(),Tt(),Pt())}function nt(Ce){if(yt())return;const ze=kt(Ce)||{value:Ce,label:Ce==null?"":String(Ce),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if($t(ze),re){if(xe.some(Ue=>fe(Ue.value,Ce)))return;xe=[...xe,ze]}else{if(xe.length&&fe(xe[0].value,Ce))return;xe=[ze]}Ee(),et(),Tt(),Pt()}function Ye(){if(yt())return;const Ce=Ge.filter(ze=>!ze.disabled).map(ze=>({...ze}));if(!(Ce.length===0&&xe.length===0)){for(const ze of Ce)$t(ze);xe=Ce,Ee(),et(),Tt(),Pt()}}function st(){return Ge.length>0&&Ge.every(Ce=>xe.some(ze=>fe(ze.value,Ce.value)))}function et(){const Ce=a.querySelector(".lat-combo__select-all");if(!Ce)return;const ze=st();Ce.setAttribute("aria-selected",ze?"true":"false"),Ce.textContent=Y("form.combo.selectAll")}function ct(){lt||vt||de.disabled||yt()||(lt=!0,Le.hidden=!1,ke.setAttribute("aria-expanded","true"),Re.setAttribute("aria-expanded","true"),wt=c(Le,U,{aboveClass:z,onOffscreen:_t}),_n(),Ge.length===0&&de.load&&!qe&&!ht?It(0):Ht())}function _t(){lt&&(lt=!1,Le.hidden=!0,Le.classList.remove(z),wt&&(wt.close(),wt=null),ke.setAttribute("aria-expanded","false"),Re.setAttribute("aria-expanded","false"),ke.removeAttribute("aria-activedescendant"))}function pn(){vt||(ke.focus(),ct())}function mn(){ke.blur()}function zt(Ce){if(bt=Ce,!lt)return;const ze=Ce===-1?`${He.id}`:`${Xe}-opt-${Ce}`;ke.setAttribute("aria-activedescendant",ze)}function Kt(Ce){const ze=He.hidden===!1,Ue=ze?-1:0,Je=Math.max(Ue,Ge.length-1);if(Ge.length===0&&!ze){zt(-1);return}zt(Math.max(Ue,Math.min(Je,bt+Ce))),Jt()}function Jt(){if(bt<0)return;const Ce=ot[bt]||0,ze=Ce+(gt[bt]||rn(Ge[bt]));Ce<Ct?We.scrollTop=Ce:ze>Ct+At&&(We.scrollTop=ze-At)}function rn(Ce){return te(Ce)?52:30}function on(Ce){return`${Xe}-opt-${Ce}`}function bn(Ce,ze){const Ue=pe.createElement("div");Ue.className="lat-combo__option",Ue.setAttribute("role","option"),Ue.id=on(ze);const Je=xe.some(tt=>fe(tt.value,Ce.value));Ue.setAttribute("aria-selected",Je?"true":"false"),Ce.disabled&&Ue.setAttribute("aria-disabled","true");const at=C(pe,Ce,de.optionTemplate);if(at)Ue.appendChild(at);else{const tt=$e(pe,Ce);tt&&Ue.appendChild(tt);const ut=pe.createElement("span");ut.className="lat-combo__text";const Ot=pe.createElement("span");if(Ot.className="lat-combo__title",Ot.textContent=Ce.label,ut.appendChild(Ot),Ce.description!=null){const Qt=pe.createElement("span");Qt.className="lat-combo__subtitle",Qt.textContent=Ce.description,ut.appendChild(Qt)}Ue.appendChild(ut)}return dt(Ue,"click",tt=>{tt.stopPropagation(),un(ze)}),Ue}function gn(){const Ce=de.newOptions&&!yt()&&mt.trim()!=="",ze=Ge.some(Ue=>fe(Ue.value,mt)||Ue.label===mt);if(!Ce||ze){He.hidden=!0;return}He.hidden=!1,He.id=`${Xe}-create`,He.textContent=Y("form.combo.create",{query:mt}),bt===-1&&zt(-1)}function hn(){const Ce=!qe&&!ht&&(typeof de.load=="function"||Lt.length>0);rt.hidden=!Ce,Ce&&(rt.textContent=Y("form.combo.noMatches"))}function Ht(){if(gn(),lt&&(At=We.clientHeight||At),Ge.length===0){for(Ve.style.height="0px";Ve.firstChild;)Ve.removeChild(Ve.firstChild);hn(),He.hidden!==!1&&(bt=-1,ke.removeAttribute("aria-activedescendant")),Ut(),wt&&wt.reposition();return}rt.hidden=!0;let Ce=!1;for(let tt=0;tt<Ge.length;tt++)gt[tt]==null&&(gt[tt]=rn(Ge[tt]));ot.length=0,ot[0]=0;for(let tt=1;tt<=Ge.length;tt++)ot[tt]=ot[tt-1]+gt[tt-1];const ze=ot[Ge.length];Ve.style.height=`${ze}px`;const Ue=Ct,Je=Ct+At;let at=0;for(;at<Ge.length-1&&ot[at+1]<Ue;)at+=1;let it=at;for(;it<Ge.length&&ot[it]<Je;)it+=1;for(it=Math.min(Ge.length,it+2);Ve.firstChild;)Ve.removeChild(Ve.firstChild);for(let tt=at;tt<it;tt++){const ut=bn(Ge[tt],tt);ut.style.position="absolute",ut.style.left="0",ut.style.right="0",ut.style.top="0",ut.style.transform=`translateY(${ot[tt]}px)`,Ve.appendChild(ut)}for(let tt=at;tt<it;tt++){const ut=pe.getElementById(on(tt));if(!ut)continue;const Ot=ut.getBoundingClientRect().height;Ot>0&&Math.abs(Ot-gt[tt])>.5&&(gt[tt]=Ot,Ce=!0)}if(Ce){Ht();return}Ut(),wt&&wt.reposition()}function Ut(){for(;Ze.firstChild;)Ze.removeChild(Ze.firstChild);if(qe)Ze.textContent=Y("form.combo.loading"),Ze.dataset.state="loading";else if(ht){Ze.textContent=Y("form.combo.error"),Ze.dataset.state="error";const Ce=pe.createElement("button");Ce.type="button",Ce.className="lat-combo__retry",Ce.textContent=Y("form.combo.retry"),dt(Ce,"click",Ue=>{Ue.stopPropagation(),ln()}),Ze.appendChild(Ce)}else Ge.length===0&&!de.load&&Lt.length===0?Ze.textContent="":Ge.length===0?(Ze.textContent=Y("form.combo.empty"),Ze.dataset.state="empty"):(Ze.textContent=Y("form.combo.results",{count:Be}),Ze.dataset.state="results")}function Tt(){const Ce=`${Xe}-opt-`;for(const ze of We.querySelectorAll('.lat-combo__option[role="option"]')){const Ue=ze.id||"";if(!Ue.startsWith(Ce))continue;const Je=Number(Ue.slice(Ce.length));if(Number.isNaN(Je))continue;const at=Ge[Je];at&&ze.setAttribute("aria-selected",xe.some(it=>fe(it.value,at.value))?"true":"false")}et(),Te&&(Me.hidden=xe.length===0||yt())}function _n(){At=We.clientHeight||240}function vn(){if(R&&re){const Ce=pe.createElement("div");Ce.className="lat-combo__select-all",Ce.setAttribute("role","option"),dt(Ce,"click",Ue=>{Ue.stopPropagation(),!yt()&&(st()?(xe=[],Ee(),Tt(),Pt()):Ye())}),Le.insertBefore(Ce,We)}}function It(Ce){if(vt)return;if(typeof de.load!="function"){const it=mt.trim().toLowerCase(),tt=Lt.map(ge).filter(ut=>it===""||ut.label.toLowerCase().includes(it));Ge=tt,Be=tt.length,Qe=!1,Fe=1,gt.length=0,ot.length=0;for(const ut of Ge)$t(ut);Ht();return}if(qe)return;qe=!0,ht=!1,St+=1;const ze=St;xt&&xt.abort(),xt=new AbortController;const Ue=xt.signal;Ut();let Je;try{Je=de.load({search:mt,page:Ce,signal:Ue,pageSize:ye})}catch{qe=!1,ht=!0,Ut();return}const at=it=>{if(vt||ze!==St)return;qe=!1;const tt=oe(it),ut=tt.items.map(ge);Ce===0?(Ge=ut,gt.length=0,ot.length=0,Vt.set(mt,{items:ut,total:tt.total,hasMore:tt.hasMore,nextPage:1})):Ge=Ge.concat(ut),Be=typeof tt.total=="number"?tt.total:Ge.length,Qe=tt.hasMore,Fe=Ce+1;for(const Ot of ut)$t(Ot);gt.length=Ge.length,Ht(),an()};Je&&typeof Je.then=="function"?Je.then(at).catch(it=>{vt||ze!==St||it&&it.name==="AbortError"||(qe=!1,ht=!0,Ut())}):at(Je)}function an(){if(!Qe||qe||!lt)return;(ot[Ge.length]||0)<At+g&&It(Fe)}function ln(){vt||(ft&&(clearTimeout(ft),ft=null),xt&&xt.abort(),St+=1,Vt.delete(mt),Ge=[],Be=0,Qe=!1,qe=!1,ht=!1,Fe=0,gt.length=0,ot.length=0,bt=-1,It(0))}function yn(Ce){if(vt||(Lt=Array.isArray(Ce)?Ce:[],typeof de.load=="function"))return;It(0);const ze=xe.length;xe=xe.filter(Ue=>Ge.some(Je=>fe(Je.value,Ue.value))).map(Ue=>kt(Ue.value)||Ue),xe.length!==ze?(Ee(),et(),Tt(),Pt()):Ee()}function wn(){return!re&&xe.length&&ke.value===Mt(xe[0].value)?"":ke.value}function sn(){re||(Dt(),mt!==""&&qt())}function kn(){return re?!1:xe.length&&ke.value.trim()===""&&!yt()?(Bt(),!0):(sn(),!1)}function qt(){mt=wn(),xt&&xt.abort(),St+=1;const Ce=Vt.get(mt);if(Ce&&typeof de.load=="function"){Ge=Ce.items.map(ge),Be=Ce.total,Qe=Ce.hasMore,Fe=Ce.nextPage,qe=!1,ht=!1,gt.length=0,ot.length=0,bt=-1;for(const ze of Ge)$t(ze);Ht(),an();return}Ge=[],Be=0,Qe=!1,qe=!1,ht=!1,Fe=0,gt.length=0,ot.length=0,bt=-1,It(0)}function xn(){ft&&clearTimeout(ft),ft=setTimeout(()=>{ft=null,qt()},ue)}function An(Ce){const ze=He.hidden===!1,Ue=Ge.length+(ze?1:0);if(Ce.key==="ArrowDown"){if(Ce.preventDefault(),ct(),Ue===0)return;bt===-1?zt(Ge.length?0:-1):Kt(1)}else if(Ce.key==="ArrowUp"){if(Ce.preventDefault(),!lt){ct();return}if(bt===-1){Ge.length&&zt(0);return}Kt(-1)}else if(Ce.key==="Home"){if(!lt)return;Ce.preventDefault(),zt(ze?-1:0),Jt()}else if(Ce.key==="End"){if(!lt)return;Ce.preventDefault(),zt(Ge.length-1),Jt()}else if(Ce.key==="PageDown"){if(!lt)return;Ce.preventDefault(),Kt(Math.max(1,Math.floor(Math.max(At,60)/30)))}else if(Ce.key==="PageUp"){if(!lt)return;Ce.preventDefault(),Kt(-Math.max(1,Math.floor(Math.max(At,60)/30)))}else if(Ce.key==="Enter"){if(!re&&xe.length&&ke.value.trim()===""&&!yt()){Ce.preventDefault(),_t(),Bt();return}if(!lt){ct();return}bt===-1&&ze?(Ce.preventDefault(),cn()):bt>=0&&Ge[bt]&&(Ce.preventDefault(),un(bt))}else Ce.key==="Escape"?(ft&&(clearTimeout(ft),ft=null),lt&&(Ce.preventDefault(),_t()),sn()):Ce.key==="Backspace"&&re&&ke.value===""&&xe.length?(Ce.preventDefault(),Ie(xe[xe.length-1].value)):Ce.key==="Tab"&&_t()}function cn(){if(!de.newOptions||yt())return;const Ce=mt.trim();if(Ce==="")return;let ze;typeof de.newOptions=="object"&&typeof de.newOptions.create=="function"?ze=de.newOptions.create(Ce):ze={value:Ce,label:Ce};const Ue=ge(ze);$t(Ue),nt(Ue.value),re?ke.focus():_t()}function un(Ce){if(yt())return;const ze=Ge[Ce];!ze||ze.disabled||(re?(xe.some(Ue=>fe(Ue.value,ze.value))?Ie(ze.value):nt(ze.value),ke.focus()):(ft&&(clearTimeout(ft),ft=null),nt(ze.value),_t(),ke.value=ze.label,mt!==""&&qt()))}const Cn=()=>{lt||(ke.focus(),!re&&xe.length&&ke.select(),ct())},$n=Ce=>{Ce.stopPropagation(),lt?_t():(ke.focus(),ct())},dn=()=>{t(a,Le)},En=()=>{xn()},On=Ce=>{Ce.stopPropagation()},Sn=()=>{Ct=We.scrollTop,Ht(),Qe&&!qe&&We.scrollTop+We.clientHeight>=We.scrollHeight-g&&It(Fe)},jn=()=>{Rt=!0,pt(),!re&&xe.length&&ke.select(),X.dispatchEvent(ve(pe,"focus"))},Nn=()=>{Rt=!1,X.dispatchEvent(ve(pe,"blur")),ft&&(clearTimeout(ft),ft=null),_t(),kn(),pt()},Pn=()=>{yt()||(Bt(),Dt(),ke.focus())};dt(U,"pointerdown",dn),dt(U,"click",Cn),Te&&dt(Me,"click",Pn),dt(Re,"pointerdown",dn),dt(Re,"click",$n),dt(ke,"input",En),dt(ke,"change",On),dt(ke,"keydown",An),dt(ke,"focus",jn),dt(ke,"blur",Nn),dt(We,"scroll",Sn),dt(Le,"mousedown",Ce=>Ce.preventDefault()),dt(He,"click",Ce=>{Ce.stopPropagation(),cn()}),vn(),Lt.length&&typeof de.load!="function"&&(mt="",It(0)),Gt(n);const Et={el:X,root:a,input:ke,getValue:Yt,setValue(Ce){return Gt(Ce),Et},reload(){return ln(),Et},setOptions(Ce){return yn(Ce),Et},clear(){return Bt(),Et},open(){return ct(),Et},close(){return _t(),Et},focus(){return pn(),Et},blur(){return mn(),Et},setDisabled(Ce){de.disabled=Ce,ke.disabled=Ce,Re.disabled=Ce,Ce&&_t()},setReadOnly(Ce){de.readOnly=Ce,ke.readOnly=Ce,Ce?(ke.setAttribute("aria-readonly","true"),_t()):ke.removeAttribute("aria-readonly"),Ee(),Tt()},destroy(){_t(),vt=!0,ft&&clearTimeout(ft),xt&&xt.abort();for(const Ce of Wt.splice(0))Ce();for(;a.firstChild;)a.removeChild(a.firstChild)}};return X.appendChild(a),X.__combo=Et,Et}F("combo",{kind:"field",build(X,de){const pe=de.doc.createElement("div"),Y=X.props||{},re=me(pe,{load:Y.load,options:X.options,multiple:Y.multiple,value:X.value,resolveLabels:Y.resolveLabels,newOptions:Y.newOptions,optionTemplate:Y.optionTemplate,selectedTemplate:Y.selectedTemplate,selectAll:Y.selectAll,debounce:Y.debounce,pageSize:Y.pageSize,maxHeight:Y.maxHeight,chipPlacement:Y.chipPlacement,clearable:Y.clearable,placeholder:X.placeholder,ariaLabel:X.label,autocomplete:X.autocomplete,name:X.name,t:de.t,doc:de.doc,inForm:!0});if(de.disposers.push(()=>re.destroy()),Array.isArray(Y.dependsOn))for(const N of Y.dependsOn){const ue=R=>{R.name===N&&(re.clear(),re.reload())},ye=de.emitter.on("change",ue);de.disposers.push(ye)}return pe.focus=()=>re.focus(),pe.blur=()=>re.blur(),pe},read(X){return X.__combo?X.__combo.getValue():null},write(X,de){X.__combo&&X.__combo.setValue(de)},state(X,de){X.__combo&&(X.__combo.setDisabled(de.disabled===!0),X.__combo.setReadOnly(de.readOnly===!0))}})}),De("packages/modules/form/extras.js",function(A,J){"use strict";Object.defineProperty(A,"injectChromeStyles",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"buildTooltip",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"renderAvatarAddon",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"buildAddons",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"buildPanel",{enumerable:!0,get:function(){return z}});const F=J("packages/modules/form/styles.js").NS,e=J("packages/modules/form/ids.js").nextId,P=J("packages/modules/form/controls/field-icon.js"),D=P.makeFieldIcon,I=P.injectFieldIconStyles,M=J("packages/modules/form/controls/combo.js"),W=M.initialsFor,E=M.renderAvatar,T="data-lattice-form-chrome-styles";function i(l){return l==="cols"?`${F}__cols`:l==="items"?`${F}__items`:`${F}__rows`}function p(){return`
|
|
1668
|
+
`.trim()}function b(X){const de=X&&X.documentElement;if(!de||de.getAttribute(f))return;de.setAttribute(f,"1");const pe=X.createElement("style");pe.textContent=_(),(X.head||X.body||de).appendChild(pe)}function y(X){return/^(https?:|data:image\/|\/)/i.test(X)}function h(X){const de=String(X??"").trim();if(!de)return"";const pe=de.split(/\s+/);return pe.length>=2?(pe[0][0]+pe[1][0]).toUpperCase():de.slice(0,2).toUpperCase()}function $(X){let de=5381;const pe=String(X??"");for(let Y=0;Y<pe.length;Y++)de=(de<<5)+de+pe.charCodeAt(Y)>>>0;return de}function ee(X){if(X&&X.color!=null&&String(X.color)!=="")return String(X.color);const de=X&&X.label!=null?String(X.label):X&&X.value!=null?String(X.value):"";return`hsl(${$(de)%360}, 62%, 45%)`}function O(X,de){X.style.background=ee(de),X.style.color="#fff"}function ae(X,de){const pe=E[de];if(!pe)return null;const Y=X.createElementNS(o,"svg");Y.setAttribute("class","lat-combo__icon"),Y.setAttribute("viewBox",pe.viewBox||"0 0 16 16"),Y.setAttribute("aria-hidden","true"),Y.setAttribute("focusable","false");const re=pe.paint==="stroke";for(const N of pe.paths||[]){const ce=X.createElementNS(o,"path");ce.setAttribute("d",N),re?(ce.setAttribute("fill","none"),ce.setAttribute("stroke","currentColor"),ce.setAttribute("stroke-width","1.5"),ce.setAttribute("stroke-linecap","round"),ce.setAttribute("stroke-linejoin","round")):ce.setAttribute("fill","currentColor"),Y.appendChild(ce)}return Y}function le(X,de,pe){if(de==null||de==="")return null;let Y;if(de.nodeType)Y=de.cloneNode(!0),Y.setAttribute&&Y.setAttribute("aria-hidden","true");else{const re=String(de),N=ae(X,re);N?Y=N:(Y=X.createElement("span"),Y.className="lat-combo__icon lat-combo__icon--glyph",Y.setAttribute("aria-hidden","true"),Y.textContent=re.slice(0,2))}return pe!=null&&String(pe)!==""&&Y&&Y.style&&(Y.style.color=String(pe)),Y}function se(X,de){const pe=X.createElement("span");pe.className="lat-combo__avatar",pe.setAttribute("aria-hidden","true");const Y=String(de.avatar);if(y(Y)){const re=X.createElement("img");return re.className="lat-combo__avatar-img",re.alt="",re.src=Y,re.addEventListener("error",()=>{for(;pe.firstChild;)pe.removeChild(pe.firstChild);pe.classList.add("lat-combo__avatar--initials"),pe.textContent=h(de.label),O(pe,de)}),pe.appendChild(re),pe}return pe.classList.add("lat-combo__avatar--initials"),pe.textContent=Y.slice(0,2),O(pe,de),pe}const Z={r:255,g:255,b:255},Q={r:20,g:24,b:28},Pe=3;function ie(X){const de=X.split(/[,/\s]+/).filter(Boolean).map(Number);return de.length<3||de.some(pe=>Number.isNaN(pe))?null:{r:de[0],g:de[1],b:de[2]}}function j(X,de){const pe=String(de).trim();if(!pe)return null;if(X&&X.createElement)try{const re=X.defaultView;if(re&&re.getComputedStyle){const N=X.createElement("span");N.style.color=pe;const ce=/rgba?\(([^)]+)\)/.exec(re.getComputedStyle(N).color||"");if(ce)return ie(ce[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(pe)){let re=pe.slice(1);return(re.length===3||re.length===4)&&(re=re.split("").map(N=>N+N).join("")),{r:parseInt(re.slice(0,2),16),g:parseInt(re.slice(2,4),16),b:parseInt(re.slice(4,6),16)}}const Y=/rgba?\(([^)]+)\)/.exec(pe);return Y?ie(Y[1]):null}function H(X){const de=pe=>{const Y=pe/255;return Y<=.03928?Y/12.92:((Y+.055)/1.055)**2.4};return .2126*de(X.r)+.7152*de(X.g)+.0722*de(X.b)}function ne(X,de){const pe=H(X),Y=H(de),re=Math.max(pe,Y),N=Math.min(pe,Y);return(re+.05)/(N+.05)}function q(X,de){const pe=j(X,de);return pe?ne(pe,Z)<Pe||ne(pe,Q)<Pe:!0}function ke(X,de){const pe=X.createElement("span");pe.className="lat-combo__dot",pe.setAttribute("aria-hidden","true");const Y=String(de.dot);return pe.style.background=Y,q(X,Y)&&pe.setAttribute("data-ring","true"),pe}function Ee(X,de){const pe=de&&de.dot;if(pe!=null&&pe!=="")return ke(X,de);const Y=de&&de.icon;if(Y!=null&&Y!=="")return le(X,Y,de.color);const re=de&&de.avatar;return re!=null&&re!==""?se(X,de):null}function C(X,de,pe){if(typeof pe!="function")return null;const Y=pe(de);if(Y==null||Y===!1)return null;if(Y.nodeType)return Y.cloneNode(!0);const re=X.createElement("span");re.className="lat-combo__template";const N=String(Y);return N.includes("<")?re.innerHTML=i(X,N,void 0,{keepClass:!0}):re.textContent=N,re}function K(X){return X!=null&&typeof X=="object"?X.value:X}function G(X){return X==null?"":typeof X!="object"?String(X):X.label!=null?String(X.label):X.title!=null?String(X.title):X.value==null?"":String(X.value)}function B(X){return X==null||typeof X!="object"?null:X.description!=null?String(X.description):X.subtitle!=null?String(X.subtitle):null}function te(X){return B(X)!=null||X!=null&&typeof X=="object"&&(X.avatar!=null||X.icon!=null)}function ge(X){const de=X!=null&&typeof X=="object"?X:{};return{value:K(X),label:G(X),description:B(X),avatar:de.avatar,icon:de.icon,color:de.color,dot:de.dot,disabled:de.disabled===!0}}function oe(X){if(Array.isArray(X))return{items:X,total:X.length,hasMore:!1};if(X&&typeof X=="object"){const de=Array.isArray(X.items)?X.items:[];return{items:de,total:typeof X.total=="number"?X.total:de.length,hasMore:X.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function fe(X,de){return X===de?!0:X!=null&&de!=null&&String(X)===String(de)}function ve(X,de,pe={}){const Y=X&&X.defaultView;return Y&&Y.Event?new Y.Event(de,pe):{type:de,bubbles:pe.bubbles!==!1,cancelable:pe.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function be(X,de={}){const pe=de.doc||X&&X.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;pe&&(M(pe),b(pe),k(pe));const Y=typeof de.t=="function"?de.t:e,re=de.multiple===!0,N=re&&["above","below"].includes(de.chipPlacement)?de.chipPlacement:"inside";pe&&N!=="inside"&&v(pe);const ce=typeof de.debounce=="number"&&de.debounce>=0?de.debounce:m,ye=typeof de.pageSize=="number"&&de.pageSize>0?de.pageSize:l,R=de.selectAll===!0,n=re?Array.isArray(de.value)?de.value:de.value==null?[]:[de.value]:de.value==null?null:de.value,a=pe.createElement("div");a.className="lat-combo",re&&a.setAttribute("data-multiple","true"),N!=="inside"&&a.setAttribute("data-chip-placement",N),de.inForm||(a.setAttribute("data-lattice-standalone","true"),a.setAttribute("data-density",["compact","standard","comfortable"].includes(de.density)?de.density:"standard"));const U=pe.createElement("div");U.className="lat-combo__control";const V=pe.createElement("div");V.className="lat-combo__chips";const ue=pe.createElement("span");ue.className="lat-combo__summary",ue.hidden=!0;const Ce=pe.createElement("div");Ce.className="lat-combo__chip-row",Ce.setAttribute("role","group"),Ce.hidden=!0;const he=N==="inside"?V:Ce;typeof de.maxHeight=="number"&&(he.style.maxHeight=`${de.maxHeight}px`);const je=pe.createElement("span");je.className="lat-combo__value",je.setAttribute("aria-hidden","true"),je.hidden=!0;const we=pe.createElement("input");we.className="lat-combo__input",we.type="text",we.setAttribute("role","combobox"),we.setAttribute("aria-autocomplete","list"),u(we),r(we,de.autocomplete),typeof de.name=="string"&&de.name!==""&&typeof de.autocomplete=="string"&&we.setAttribute("name",de.name),we.setAttribute("aria-haspopup","listbox"),we.setAttribute("aria-expanded","false"),re&&we.setAttribute("aria-multiselectable","true"),de.placeholder!=null&&(we.placeholder=String(de.placeholder)),de.inForm&&de.ariaLabel!=null&&we.setAttribute("aria-label",String(de.ariaLabel));const Ie=pe.createElement("button");Ie.type="button",Ie.className="lat-combo__toggle",Ie.setAttribute("aria-label",Y("form.combo.toggle")),Ie.setAttribute("aria-haspopup","listbox"),Ie.setAttribute("aria-expanded","false");const Ne=S(pe,"chevronDown");Ne&&Ie.appendChild(Ne);const Re=pe.createElement("button");Re.type="button",Re.className="lat-combo__clear",Re.setAttribute("aria-label",Y("form.combo.clear")),Re.hidden=!0;const Se=S(pe,"close");Se&&Re.appendChild(Se);const Le=!re&&de.clearable===!0,Te=pe.createElement("div");Te.className="lat-combo__popup lat-combo",Te.hidden=!0;const We=pe.createElement("div");We.className="lat-combo__list",We.setAttribute("role","listbox");const Ge=pe.createElement("div");Ge.className="lat-combo__spacer",We.appendChild(Ge);const Ve=pe.createElement("div");Ve.className="lat-combo__status",Ve.setAttribute("role","status"),Ve.setAttribute("aria-live","polite");const Fe=pe.createElement("div");Fe.className="lat-combo__option lat-combo__option--create",Fe.setAttribute("role","option"),Fe.hidden=!0,We.insertBefore(Fe,Ge);const rt=pe.createElement("div");rt.className="lat-combo__empty",rt.setAttribute("role","presentation"),rt.setAttribute("aria-live","polite"),rt.hidden=!0,We.insertBefore(rt,Ge),Te.appendChild(We),Te.appendChild(Ve),U.appendChild(Te),N!=="inside"?(U.appendChild(we),U.appendChild(Ie),Ce.appendChild(V),Ce.appendChild(ue),N==="above"&&a.appendChild(Ce),a.appendChild(U),N==="below"&&a.appendChild(Ce)):(U.appendChild(V),U.appendChild(ue),U.appendChild(je),U.appendChild(we),Le&&U.appendChild(Re),U.appendChild(Ie),a.appendChild(U));const Xe=D("lat-combo-lb");We.id=Xe,we.setAttribute("aria-controls",Xe);let Ue=[],Ae=[];const Ke=new Map;let He=0,Be=0,Qe=!1,Je=!1,_t=!1,ft="",ut=!1,gt=-1,yt=null,Ot=0,pt=null;const Wt=new Map;let Dt=Array.isArray(de.options)?de.options:[];const vt=[],mt=[];let xt=0,zt=0;const qt=[];let At=!1,Vt=!1,Gt=!1,wt=null;function at($e,ze,Ze){$e.addEventListener(ze,Ze),qt.push(()=>$e.removeEventListener(ze,Ze))}function St($e){const ze=Ke.get(String($e));if(ze)return ze;if($e!=null){for(const Ze of Ke.values())if(fe(Ze.value,$e))return Ze}return null}function jt($e){const ze=St($e);return ze?ze.label:$e==null?"":String($e)}function Nt($e){$e.value!=null&&Ke.set(String($e.value),$e)}function It($e){if(typeof de.resolveLabels!="function")return;const ze=$e.filter(it=>it!=null&&!St(it));if(ze.length===0)return;const Ze=de.resolveLabels(ze),qe=it=>{if(!(At||!Array.isArray(it))){for(const lt of it){const tt=ge(lt);tt.value!=null&&Nt(tt)}Ae=Ae.map(lt=>St(lt.value)||lt),kt(),$t()}};Ze&&typeof Ze.then=="function"?Ze.then(qe):qe(Ze)}function Lt(){X.dispatchEvent(ve(pe,"change",{bubbles:!0}))}function Kt(){return re?Ae.map($e=>$e.value):Ae.length?Ae[0].value:null}function Rt($e){let ze;if(re)ze=Array.isArray($e)?$e:$e==null?[]:[$e];else{const qe=Array.isArray($e)?$e.length?$e[0]:null:$e;ze=qe==null?[]:[qe]}const Ze=ze.filter(qe=>qe!=null&&(qe!==""||St(qe)!=null));Ae=Ze.map(qe=>St(qe)||{value:qe,label:qe==null?"":String(qe),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),It(Ze),kt(),st(),Mt()}function ht(){return de.readOnly===!0}function Ct(){Ae.length!==0&&(Ae=[],kt(),st(),Mt(),Bt(),$t(),Lt())}function Qt($e){const ze=pe.createElement("span");ze.className="lat-combo__chip",ze.dataset.value=String($e.value);const Ze=C(pe,$e,de.selectedTemplate);if(Ze){const qe=pe.createElement("span");qe.className="lat-combo__chip-label",qe.appendChild(Ze),ze.appendChild(qe)}else{const qe=Ee(pe,$e);qe&&ze.appendChild(qe);const it=pe.createElement("span");it.className="lat-combo__chip-label",it.textContent=jt($e.value),ze.appendChild(it)}if(!$e.disabled&&!ht()){const qe=pe.createElement("button");qe.type="button",qe.className="lat-combo__chip-remove",qe.setAttribute("aria-label",Y("form.combo.remove",{label:jt($e.value)})),qe.textContent="×",at(qe,"click",lt=>{lt.stopPropagation(),Zt($e.value)}),ze.appendChild(qe)}return ze}function Bt(){re||(we.value=Ae.length?jt(Ae[0].value):"")}function $t(){if(re){je.hidden=!0,Gt=!1,Ft();return}for(;je.firstChild;)je.removeChild(je.firstChild);if(Ae.length===0){je.hidden=!0,Gt=!1,Ft();return}const $e=Ae[0],ze=C(pe,$e,de.selectedTemplate),Ze=ze||Ee(pe,$e);Gt=!!ze,Ze&&je.appendChild(Ze),Ft()}function Ft(){if(!Gt){je.hidden=je.childNodes.length===0,we.classList.remove("lat-combo__input--text-hidden");return}je.hidden=Vt,we.classList.toggle("lat-combo__input--text-hidden",!Vt)}function rn($e){const ze=Y("form.combo.selected",{count:$e});return ze==="form.combo.selected"?`Selected: ${$e}`:ze}function kt(){for(;V.firstChild;)V.removeChild(V.firstChild);if(re){for(const $e of Ae)V.appendChild(Qt($e));V.hidden=Ae.length===0}else V.hidden=!0;N!=="inside"&&(Ce.hidden=!re||Ae.length===0,Ce.setAttribute("aria-label",rn(Ae.length))),Bt(),$t(),on()}function on(){if(!re||Ae.length===0){ue.hidden=!0;return}const $e=he.getBoundingClientRect().bottom;let ze=0;const Ze=[...V.children];for(const qe of Ze)qe.getBoundingClientRect().top>=$e-1&&(ze+=1);ze>0?(ue.hidden=!1,ue.textContent=Y("form.combo.more",{count:ze})):ue.hidden=!0}function Zt($e){if(ht())return;const ze=Ae.length;Ae=Ae.filter(Ze=>!fe(Ze.value,$e)),Ae.length!==ze&&(kt(),st(),Mt(),Lt())}function Yt($e){if(ht())return;const ze=St($e)||{value:$e,label:$e==null?"":String($e),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(Nt(ze),re){if(Ae.some(Ze=>fe(Ze.value,$e)))return;Ae=[...Ae,ze]}else{if(Ae.length&&fe(Ae[0].value,$e))return;Ae=[ze]}kt(),st(),Mt(),Lt()}function en(){if(ht())return;const $e=Ue.filter(ze=>!ze.disabled).map(ze=>({...ze}));if(!($e.length===0&&Ae.length===0)){for(const ze of $e)Nt(ze);Ae=$e,kt(),st(),Mt(),Lt()}}function Xt(){return Ue.length>0&&Ue.every($e=>Ae.some(ze=>fe(ze.value,$e.value)))}function st(){const $e=a.querySelector(".lat-combo__select-all");if(!$e)return;const ze=Xt();$e.setAttribute("aria-selected",ze?"true":"false"),$e.textContent=Y("form.combo.selectAll")}function me(){ut||At||de.disabled||ht()||(ut=!0,Te.hidden=!1,we.setAttribute("aria-expanded","true"),Ie.setAttribute("aria-expanded","true"),wt=c(Te,U,{aboveClass:z,onOffscreen:xe}),_n(),Ue.length===0&&de.load&&!Je&&!_t?Ht(0):Ut())}function xe(){ut&&(ut=!1,Te.hidden=!0,Te.classList.remove(z),wt&&(wt.close(),wt=null),we.setAttribute("aria-expanded","false"),Ie.setAttribute("aria-expanded","false"),we.removeAttribute("aria-activedescendant"))}function Oe(){At||(we.focus(),me())}function De(){we.blur()}function et($e){if(gt=$e,!ut)return;const ze=$e===-1?`${Fe.id}`:`${Xe}-opt-${$e}`;we.setAttribute("aria-activedescendant",ze)}function nt($e){const ze=Fe.hidden===!1,Ze=ze?-1:0,qe=Math.max(Ze,Ue.length-1);if(Ue.length===0&&!ze){et(-1);return}et(Math.max(Ze,Math.min(qe,gt+$e))),Ye()}function Ye(){if(gt<0)return;const $e=mt[gt]||0,ze=$e+(vt[gt]||dt(Ue[gt]));$e<zt?We.scrollTop=$e:ze>zt+xt&&(We.scrollTop=ze-xt)}function dt($e){return te($e)?52:30}function ot($e){return`${Xe}-opt-${$e}`}function bt($e,ze){const Ze=pe.createElement("div");Ze.className="lat-combo__option",Ze.setAttribute("role","option"),Ze.id=ot(ze);const qe=Ae.some(tt=>fe(tt.value,$e.value));Ze.setAttribute("aria-selected",qe?"true":"false"),$e.disabled&&Ze.setAttribute("aria-disabled","true");const it=C(pe,$e,de.optionTemplate);if(it)Ze.appendChild(it);else{const tt=Ee(pe,$e);tt&&Ze.appendChild(tt);const ct=pe.createElement("span");ct.className="lat-combo__text";const Tt=pe.createElement("span");if(Tt.className="lat-combo__title",Tt.textContent=$e.label,ct.appendChild(Tt),$e.description!=null){const ln=pe.createElement("span");ln.className="lat-combo__subtitle",ln.textContent=$e.description,ct.appendChild(ln)}Ze.appendChild(ct)}return at(Ze,"click",tt=>{tt.stopPropagation(),bn(ze)}),Ze}function Pt(){const $e=de.newOptions&&!ht()&&ft.trim()!=="",ze=Ue.some(Ze=>fe(Ze.value,ft)||Ze.label===ft);if(!$e||ze){Fe.hidden=!0;return}Fe.hidden=!1,Fe.id=`${Xe}-create`,Fe.textContent=Y("form.combo.create",{query:ft}),gt===-1&&et(-1)}function tn(){const $e=!Je&&!_t&&(typeof de.load=="function"||Dt.length>0);rt.hidden=!$e,$e&&(rt.textContent=Y("form.combo.noMatches"))}function Ut(){if(Pt(),ut&&(xt=We.clientHeight||xt),Ue.length===0){for(Ge.style.height="0px";Ge.firstChild;)Ge.removeChild(Ge.firstChild);tn(),Fe.hidden!==!1&&(gt=-1,we.removeAttribute("aria-activedescendant")),Jt(),wt&&wt.reposition();return}rt.hidden=!0;let $e=!1;for(let tt=0;tt<Ue.length;tt++)vt[tt]==null&&(vt[tt]=dt(Ue[tt]));mt.length=0,mt[0]=0;for(let tt=1;tt<=Ue.length;tt++)mt[tt]=mt[tt-1]+vt[tt-1];const ze=mt[Ue.length];Ge.style.height=`${ze}px`;const Ze=zt,qe=zt+xt;let it=0;for(;it<Ue.length-1&&mt[it+1]<Ze;)it+=1;let lt=it;for(;lt<Ue.length&&mt[lt]<qe;)lt+=1;for(lt=Math.min(Ue.length,lt+2);Ge.firstChild;)Ge.removeChild(Ge.firstChild);for(let tt=it;tt<lt;tt++){const ct=bt(Ue[tt],tt);ct.style.position="absolute",ct.style.left="0",ct.style.right="0",ct.style.top="0",ct.style.transform=`translateY(${mt[tt]}px)`,Ge.appendChild(ct)}for(let tt=it;tt<lt;tt++){const ct=pe.getElementById(ot(tt));if(!ct)continue;const Tt=ct.getBoundingClientRect().height;Tt>0&&Math.abs(Tt-vt[tt])>.5&&(vt[tt]=Tt,$e=!0)}if($e){Ut();return}Jt(),wt&&wt.reposition()}function Jt(){for(;Ve.firstChild;)Ve.removeChild(Ve.firstChild);if(Je)Ve.textContent=Y("form.combo.loading"),Ve.dataset.state="loading";else if(_t){Ve.textContent=Y("form.combo.error"),Ve.dataset.state="error";const $e=pe.createElement("button");$e.type="button",$e.className="lat-combo__retry",$e.textContent=Y("form.combo.retry"),at($e,"click",Ze=>{Ze.stopPropagation(),fn()}),Ve.appendChild($e)}else Ue.length===0&&!de.load&&Dt.length===0?Ve.textContent="":Ue.length===0?(Ve.textContent=Y("form.combo.empty"),Ve.dataset.state="empty"):(Ve.textContent=Y("form.combo.results",{count:Be}),Ve.dataset.state="results")}function Mt(){const $e=`${Xe}-opt-`;for(const ze of We.querySelectorAll('.lat-combo__option[role="option"]')){const Ze=ze.id||"";if(!Ze.startsWith($e))continue;const qe=Number(Ze.slice($e.length));if(Number.isNaN(qe))continue;const it=Ue[qe];it&&ze.setAttribute("aria-selected",Ae.some(lt=>fe(lt.value,it.value))?"true":"false")}st(),Le&&(Re.hidden=Ae.length===0||ht())}function _n(){xt=We.clientHeight||240}function vn(){if(R&&re){const $e=pe.createElement("div");$e.className="lat-combo__select-all",$e.setAttribute("role","option"),at($e,"click",Ze=>{Ze.stopPropagation(),!ht()&&(Xt()?(Ae=[],kt(),Mt(),Lt()):en())}),Te.insertBefore($e,We)}}function Ht($e){if(At)return;if(typeof de.load!="function"){const lt=ft.trim().toLowerCase(),tt=Dt.map(ge).filter(ct=>lt===""||ct.label.toLowerCase().includes(lt));Ue=tt,Be=tt.length,Qe=!1,He=1,vt.length=0,mt.length=0;for(const ct of Ue)Nt(ct);Ut();return}if(Je)return;Je=!0,_t=!1,Ot+=1;const ze=Ot;yt&&yt.abort(),yt=new AbortController;const Ze=yt.signal;Jt();let qe;try{qe=de.load({search:ft,page:$e,signal:Ze,pageSize:ye})}catch{Je=!1,_t=!0,Jt();return}const it=lt=>{if(At||ze!==Ot)return;Je=!1;const tt=oe(lt),ct=tt.items.map(ge);$e===0?(Ue=ct,vt.length=0,mt.length=0,Wt.set(ft,{items:ct,total:tt.total,hasMore:tt.hasMore,nextPage:1})):Ue=Ue.concat(ct),Be=typeof tt.total=="number"?tt.total:Ue.length,Qe=tt.hasMore,He=$e+1;for(const Tt of ct)Nt(Tt);vt.length=Ue.length,Ut(),dn()};qe&&typeof qe.then=="function"?qe.then(it).catch(lt=>{At||ze!==Ot||lt&<.name==="AbortError"||(Je=!1,_t=!0,Jt())}):it(qe)}function dn(){if(!Qe||Je||!ut)return;(mt[Ue.length]||0)<xt+g&&Ht(He)}function fn(){At||(pt&&(clearTimeout(pt),pt=null),yt&&yt.abort(),Ot+=1,Wt.delete(ft),Ue=[],Be=0,Qe=!1,Je=!1,_t=!1,He=0,vt.length=0,mt.length=0,gt=-1,Ht(0))}function yn($e){if(At||(Dt=Array.isArray($e)?$e:[],typeof de.load=="function"))return;Ht(0);const ze=Ae.length;Ae=Ae.filter(Ze=>Ue.some(qe=>fe(qe.value,Ze.value))).map(Ze=>St(Ze.value)||Ze),Ae.length!==ze?(kt(),st(),Mt(),Lt()):kt()}function wn(){return!re&&Ae.length&&we.value===jt(Ae[0].value)?"":we.value}function pn(){re||(Bt(),ft!==""&&an())}function kn(){return re?!1:Ae.length&&we.value.trim()===""&&!ht()?(Ct(),!0):(pn(),!1)}function an(){ft=wn(),yt&&yt.abort(),Ot+=1;const $e=Wt.get(ft);if($e&&typeof de.load=="function"){Ue=$e.items.map(ge),Be=$e.total,Qe=$e.hasMore,He=$e.nextPage,Je=!1,_t=!1,vt.length=0,mt.length=0,gt=-1;for(const ze of Ue)Nt(ze);Ut(),dn();return}Ue=[],Be=0,Qe=!1,Je=!1,_t=!1,He=0,vt.length=0,mt.length=0,gt=-1,Ht(0)}function xn(){pt&&clearTimeout(pt),pt=setTimeout(()=>{pt=null,an()},ce)}function An($e){const ze=Fe.hidden===!1,Ze=Ue.length+(ze?1:0);if($e.key==="ArrowDown"){if($e.preventDefault(),me(),Ze===0)return;gt===-1?et(Ue.length?0:-1):nt(1)}else if($e.key==="ArrowUp"){if($e.preventDefault(),!ut){me();return}if(gt===-1){Ue.length&&et(0);return}nt(-1)}else if($e.key==="Home"){if(!ut)return;$e.preventDefault(),et(ze?-1:0),Ye()}else if($e.key==="End"){if(!ut)return;$e.preventDefault(),et(Ue.length-1),Ye()}else if($e.key==="PageDown"){if(!ut)return;$e.preventDefault(),nt(Math.max(1,Math.floor(Math.max(xt,60)/30)))}else if($e.key==="PageUp"){if(!ut)return;$e.preventDefault(),nt(-Math.max(1,Math.floor(Math.max(xt,60)/30)))}else if($e.key==="Enter"){if(!re&&Ae.length&&we.value.trim()===""&&!ht()){$e.preventDefault(),xe(),Ct();return}if(!ut){me();return}gt===-1&&ze?($e.preventDefault(),mn()):gt>=0&&Ue[gt]&&($e.preventDefault(),bn(gt))}else $e.key==="Escape"?(pt&&(clearTimeout(pt),pt=null),ut&&($e.preventDefault(),xe()),pn()):$e.key==="Backspace"&&re&&we.value===""&&Ae.length?($e.preventDefault(),Zt(Ae[Ae.length-1].value)):$e.key==="Tab"&&xe()}function mn(){if(!de.newOptions||ht())return;const $e=ft.trim();if($e==="")return;let ze;typeof de.newOptions=="object"&&typeof de.newOptions.create=="function"?ze=de.newOptions.create($e):ze={value:$e,label:$e};const Ze=ge(ze);Nt(Ze),Yt(Ze.value),re?we.focus():xe()}function bn($e){if(ht())return;const ze=Ue[$e];!ze||ze.disabled||(re?(Ae.some(Ze=>fe(Ze.value,ze.value))?Zt(ze.value):Yt(ze.value),we.focus()):(pt&&(clearTimeout(pt),pt=null),Yt(ze.value),xe(),we.value=ze.label,ft!==""&&an()))}const Cn=()=>{ut||(we.focus(),!re&&Ae.length&&we.select(),me())},$n=$e=>{$e.stopPropagation(),ut?xe():(we.focus(),me())},gn=()=>{t(a,Te)},En=()=>{xn()},On=$e=>{$e.stopPropagation()},Sn=()=>{zt=We.scrollTop,Ut(),Qe&&!Je&&We.scrollTop+We.clientHeight>=We.scrollHeight-g&&Ht(He)},jn=()=>{Vt=!0,Ft(),!re&&Ae.length&&we.select(),X.dispatchEvent(ve(pe,"focus"))},Nn=()=>{Vt=!1,X.dispatchEvent(ve(pe,"blur")),pt&&(clearTimeout(pt),pt=null),xe(),kn(),Ft()},Pn=()=>{ht()||(Ct(),Bt(),we.focus())};at(U,"pointerdown",gn),at(U,"click",Cn),Le&&at(Re,"click",Pn),at(Ie,"pointerdown",gn),at(Ie,"click",$n),at(we,"input",En),at(we,"change",On),at(we,"keydown",An),at(we,"focus",jn),at(we,"blur",Nn),at(We,"scroll",Sn),at(Te,"mousedown",$e=>$e.preventDefault()),at(Fe,"click",$e=>{$e.stopPropagation(),mn()}),vn(),Dt.length&&typeof de.load!="function"&&(ft="",Ht(0)),Rt(n);const Et={el:X,root:a,input:we,getValue:Kt,setValue($e){return Rt($e),Et},reload(){return fn(),Et},setOptions($e){return yn($e),Et},clear(){return Ct(),Et},open(){return me(),Et},close(){return xe(),Et},focus(){return Oe(),Et},blur(){return De(),Et},setDisabled($e){de.disabled=$e,we.disabled=$e,Ie.disabled=$e,$e&&xe()},setReadOnly($e){de.readOnly=$e,we.readOnly=$e,$e?(we.setAttribute("aria-readonly","true"),xe()):we.removeAttribute("aria-readonly"),kt(),Mt()},destroy(){xe(),At=!0,pt&&clearTimeout(pt),yt&&yt.abort();for(const $e of qt.splice(0))$e();for(;a.firstChild;)a.removeChild(a.firstChild)}};return X.appendChild(a),X.__combo=Et,Et}F("combo",{kind:"field",build(X,de){const pe=de.doc.createElement("div"),Y=X.props||{},re=be(pe,{load:Y.load,options:X.options,multiple:Y.multiple,value:X.value,resolveLabels:Y.resolveLabels,newOptions:Y.newOptions,optionTemplate:Y.optionTemplate,selectedTemplate:Y.selectedTemplate,selectAll:Y.selectAll,debounce:Y.debounce,pageSize:Y.pageSize,maxHeight:Y.maxHeight,chipPlacement:Y.chipPlacement,clearable:Y.clearable,placeholder:X.placeholder,ariaLabel:X.label,autocomplete:X.autocomplete,name:X.name,t:de.t,doc:de.doc,inForm:!0});if(de.disposers.push(()=>re.destroy()),Array.isArray(Y.dependsOn))for(const N of Y.dependsOn){const ce=R=>{R.name===N&&(re.clear(),re.reload())},ye=de.emitter.on("change",ce);de.disposers.push(ye)}return pe.focus=()=>re.focus(),pe.blur=()=>re.blur(),pe},read(X){return X.__combo?X.__combo.getValue():null},write(X,de){X.__combo&&X.__combo.setValue(de)},state(X,de){X.__combo&&(X.__combo.setDisabled(de.disabled===!0),X.__combo.setReadOnly(de.readOnly===!0))}})}),Me("packages/modules/form/extras.js",function(A,J){"use strict";Object.defineProperty(A,"injectChromeStyles",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"buildTooltip",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"renderAvatarAddon",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"buildAddons",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"buildPanel",{enumerable:!0,get:function(){return z}});const F=J("packages/modules/form/styles.js").NS,e=J("packages/modules/form/ids.js").nextId,P=J("packages/modules/form/controls/field-icon.js"),D=P.makeFieldIcon,I=P.injectFieldIconStyles,M=J("packages/modules/form/controls/combo.js"),W=M.initialsFor,E=M.renderAvatar,T="data-lattice-form-chrome-styles";function i(l){return l==="cols"?`${F}__cols`:l==="items"?`${F}__items`:`${F}__rows`}function p(){return`
|
|
1669
1669
|
.${F}__label-group{
|
|
1670
1670
|
display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
|
|
1671
1671
|
min-width:0; box-sizing:border-box;
|
|
@@ -1805,7 +1805,7 @@ ${L(`.${e}[data-lattice-standalone]`)}
|
|
|
1805
1805
|
.${F}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
1806
1806
|
.${F}__panel-body{ min-width:0; min-height:0; }
|
|
1807
1807
|
.${F}__panel-body[hidden]{ display:none; }
|
|
1808
|
-
`.trim()}function S(l){const g=l&&l.documentElement;if(!g||(I(l),g.getAttribute(T)))return;g.setAttribute(T,"1");const w=l.createElement("style");w.textContent=p(),(l.head||l.body||g).appendChild(w)}function k(l,g,w,x){g.addEventListener(w,x),l.disposers.push(()=>g.removeEventListener(w,x))}function d(l,g){if(g==null||g==="")return null;if(g.nodeType){const v=g.cloneNode(!0);return v.setAttribute&&v.setAttribute("aria-hidden","true"),v}const w=D(l,String(g));if(w)return w;const x=l.createElement("span");return x.className=`${F}__icon-glyph`,x.setAttribute("aria-hidden","true"),x.textContent=String(g).slice(0,2),x}function c(l,g){const{labelEl:w,item:x,labelPosition:v,labelWidth:f}=g,o=x.tooltip;if(typeof o!="string"||o===""||v==="hidden")return null;S(l.doc);const _=l.doc,b=_.createElement("div");b.className=`${F}__label-group`,v==="left"&&f!=null&&(b.style.flex=`0 0 ${typeof f=="number"?`${f}px`:String(f)}`),b.appendChild(w);const y=e("lat-form-tip"),h=_.createElement("span");h.className=`${F}__tooltip-wrap`;const $=_.createElement("button");$.type="button",$.className=`${F}__tooltip-trigger`,$.setAttribute("aria-label",l.t("form.tooltip.help")),$.setAttribute("aria-expanded","false"),$.setAttribute("aria-controls",y),$.textContent="?";const ee=_.createElement("span");ee.className=`${F}__tooltip`,ee.setAttribute("id",y),ee.setAttribute("role","tooltip"),ee.textContent=o,h.appendChild($),h.appendChild(ee),b.appendChild(h);let O=!1;const ae=()=>{$.setAttribute("aria-expanded","true"),ee.classList.add(`${F}__tooltip--open`)},
|
|
1808
|
+
`.trim()}function S(l){const g=l&&l.documentElement;if(!g||(I(l),g.getAttribute(T)))return;g.setAttribute(T,"1");const w=l.createElement("style");w.textContent=p(),(l.head||l.body||g).appendChild(w)}function k(l,g,w,x){g.addEventListener(w,x),l.disposers.push(()=>g.removeEventListener(w,x))}function d(l,g){if(g==null||g==="")return null;if(g.nodeType){const v=g.cloneNode(!0);return v.setAttribute&&v.setAttribute("aria-hidden","true"),v}const w=D(l,String(g));if(w)return w;const x=l.createElement("span");return x.className=`${F}__icon-glyph`,x.setAttribute("aria-hidden","true"),x.textContent=String(g).slice(0,2),x}function c(l,g){const{labelEl:w,item:x,labelPosition:v,labelWidth:f}=g,o=x.tooltip;if(typeof o!="string"||o===""||v==="hidden")return null;S(l.doc);const _=l.doc,b=_.createElement("div");b.className=`${F}__label-group`,v==="left"&&f!=null&&(b.style.flex=`0 0 ${typeof f=="number"?`${f}px`:String(f)}`),b.appendChild(w);const y=e("lat-form-tip"),h=_.createElement("span");h.className=`${F}__tooltip-wrap`;const $=_.createElement("button");$.type="button",$.className=`${F}__tooltip-trigger`,$.setAttribute("aria-label",l.t("form.tooltip.help")),$.setAttribute("aria-expanded","false"),$.setAttribute("aria-controls",y),$.textContent="?";const ee=_.createElement("span");ee.className=`${F}__tooltip`,ee.setAttribute("id",y),ee.setAttribute("role","tooltip"),ee.textContent=o,h.appendChild($),h.appendChild(ee),b.appendChild(h);let O=!1;const ae=()=>{$.setAttribute("aria-expanded","true"),ee.classList.add(`${F}__tooltip--open`)},le=()=>{O||($.setAttribute("aria-expanded","false"),ee.classList.remove(`${F}__tooltip--open`))};return k(l,$,"mouseenter",ae),k(l,$,"mouseleave",le),k(l,$,"focus",ae),k(l,$,"blur",le),k(l,$,"click",se=>{se.stopPropagation(),O=!O,O?ae():le()}),{group:b,tooltipId:y}}function t(l,g,w,x){const v=x&&x.tagName,f=v==="DIV"&&(w.type==="select"||w.type==="combo");if(!(w.lockIcon!==!1&&(v==="INPUT"||v==="TEXTAREA"||f)&&(w.readOnly===!0||w.readOnlyWhen!=null)))return null;S(l.doc);const _=l.doc.createElement("span");_.className=`${F}__lock`,f&&_.classList.add(`${F}__lock--choice`),_.setAttribute("aria-hidden","true"),_.title=l.t("form.readonly");const b=D(l.doc,"lock");return b&&_.appendChild(b),g.appendChild(_),{el:_}}function s(l,g){if(!Array.isArray(l))return null;const w=g==null?"":String(g);for(const x of l){if(x!=null&&typeof x=="object"&&Array.isArray(x.options)){const v=s(x.options,g);if(v)return v;continue}if(x!=null&&typeof x=="object"){const v=x.value==null?"":String(x.value);if(v===w)return{label:x.label!=null?String(x.label):v,avatar:x.avatar,color:x.color}}else{const v=String(x);if(v===w)return{label:v,avatar:void 0,color:void 0}}}return null}function u(l,g,w){let x=null,v=g==null?"":String(g),f;if(typeof l=="function")x=l(g,w);else if(l===!0){const o=s(w.options,g);o&&(v=o.label,f=o.color,o.avatar!=null&&o.avatar!==""&&(x=String(o.avatar)))}else x=String(l);if(x==null||x===""){if(v==null||v==="")return null;x=W(v)}return{avatar:x,label:v,color:f}}function r(l,g,w,x,v){for(;g.firstChild;)g.removeChild(g.firstChild);const f=u(w.avatar,x,v);f&&g.appendChild(E(l,f))}function m(l,g){const w=g.addons;if(!Array.isArray(w)||w.length===0)return null;S(l.doc);const x=l.doc,v=x.createElement("div");v.className=`${F}__addons`;const f=[];for(const o of w){if(o==null||typeof o!="object")continue;if(o.avatar!==void 0&&o.avatar!==null&&o.avatar!==!1){const $=x.createElement("span");$.className=`${F}__addon-avatar`,$.setAttribute("aria-hidden","true"),v.appendChild($),f.push({el:$,spec:o,avatar:!0});continue}const b=o.href,y=x.createElement(b!=null?"a":"button");y.className=`${F}__addon`,b==null?y.type="button":y.href=String(b),o.ariaLabel!=null&&o.ariaLabel!==""&&(y.setAttribute("aria-label",String(o.ariaLabel)),y.title=o.tooltip!=null&&o.tooltip!==""?String(o.tooltip):String(o.ariaLabel));const h=d(x,o.icon);h&&y.appendChild(h),v.appendChild(y),f.push({el:y,spec:o,avatar:!1})}return{bar:v,entries:f}}function z(l,g,w,x,v){S(l.doc);const f=l.doc,o=f.createElement("section");o.className=`${F}__panel`;const _=f.createElement("div");_.className=`${F}__panel-header`;const b=f.createElement("div");if(b.className=`${F}__panel-heading`,g.title!=null){const $=f.createElement("h3");$.className=`${F}__panel-title`,$.textContent=g.title,b.appendChild($)}if(g.subtitle!=null){const $=f.createElement("p");$.className=`${F}__panel-subtitle`,$.textContent=g.subtitle,b.appendChild($)}_.appendChild(b);const y=f.createElement("div");y.className=`${F}__panel-actions`,_.appendChild(y),o.appendChild(_);const h=f.createElement("div");h.className=`${F}__panel-body`,g.axis&&(h.classList.add(i(g.axis)),g.axis==="cols"&&v.applyColsGap(h,g.columnGap,g.rowGap),v.buildChildren(l,h,g.blocks,g.axis,x,g.wrap)),o.appendChild(h);for(const $ of g.actions){const ee=f.createElement("button");ee.type="button",ee.className=`${F}__panel-action`,$.ariaLabel!=null&&$.ariaLabel!==""&&(ee.setAttribute("aria-label",String($.ariaLabel)),ee.title=String($.ariaLabel));const O=d(f,$.icon);O&&ee.appendChild(O),typeof $.onClick=="function"&&k(l,ee,"click",()=>{$.onClick()}),y.appendChild(ee)}if(g.collapsible){const $=f.createElement("button");$.type="button",$.className=`${F}__panel-action ${F}__panel-collapse`,$.setAttribute("aria-expanded","true");const ee=l.t("form.panel.collapse");$.setAttribute("aria-label",ee),$.title=ee;const O=D(f,"chevronUp");O&&$.appendChild(O);let ae=!1;k(l,$,"click",()=>{ae=!ae,h.hidden=ae,$.setAttribute("aria-expanded",ae?"false":"true");const le=l.t(ae?"form.panel.expand":"form.panel.collapse");for($.setAttribute("aria-label",le),$.title=le;$.firstChild;)$.removeChild($.firstChild);const se=D(f,ae?"chevronDown":"chevronUp");se&&$.appendChild(se)}),y.appendChild($)}return v.applyCss(o,g.css),g.spacing!=null&&o.style.setProperty("--lattice-form-item-gap",g.spacing),g.padding!=null&&(o.style.padding=g.padding),g.hidden&&(o.hidden=!0),w.appendChild(o),o}}),Me("packages/modules/form/view.js",function(A,J){"use strict";Object.defineProperty(A,"VALIDATED_KINDS",{enumerable:!0,get:function(){return _}}),Object.defineProperty(A,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return h}}),Object.defineProperty(A,"applyCss",{enumerable:!0,get:function(){return $}}),Object.defineProperty(A,"runValidation",{enumerable:!0,get:function(){return j}}),Object.defineProperty(A,"markValidation",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(A,"validateItem",{enumerable:!0,get:function(){return q}}),Object.defineProperty(A,"widthFlex",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(A,"applyItemWidth",{enumerable:!0,get:function(){return te}}),Object.defineProperty(A,"applyItemHeight",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(A,"applyItemLabelPosition",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(A,"applyItemLabelWidth",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(A,"buildItem",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(A,"buildBlock",{enumerable:!0,get:function(){return be}}),Object.defineProperty(A,"buildChildren",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(A,"mount",{enumerable:!0,get:function(){return re}}),Object.defineProperty(A,"wizardGoTo",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(A,"wizardNext",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(A,"wizardBack",{enumerable:!0,get:function(){return R}});const _e=J("packages/modules/form/styles.js"),F=_e.NS,L=_e.injectColsBreakpoint,e=_e.NEVER_STACK_COLS_CONTAINER,P=J("packages/modules/form/model.js"),D=P.cssSize,I=P.isEmpty,M=P.resolveSize,E=J("packages/modules/form/ids.js").nextId,i=J("packages/modules/form/controls/registry.js").resolveControl,S=J("packages/modules/form/rules.js").applyRules,d=J("packages/modules/form/enter-submit.js").attachEnterSubmit,t=J("packages/modules/form/state.js").syncRecordState,u=J("packages/modules/form/stepper.js").createStepper,r=J("packages/modules/form/validation.js"),m=r.maskPlaceholderOf,z=r.normalizeHookResult,l=r.validateValue,g=J("packages/modules/form/extras.js"),w=g.buildTooltip,x=g.buildLock,v=g.buildAddons,f=g.renderAvatarAddon,o=g.buildPanel,_=new Set(["field","toggle","grid"]),b="data-lattice-separator-label-styles";function y(){return`
|
|
1809
1809
|
.${F}__separator--labelled{
|
|
1810
1810
|
display:flex; align-items:center; gap:var(--lattice-space);
|
|
1811
1811
|
border-top:0; margin:var(--lattice-space) 0; width:100%;
|
|
@@ -1818,7 +1818,7 @@ ${L(`.${e}[data-lattice-standalone]`)}
|
|
|
1818
1818
|
color:var(--lattice-foreground-muted);
|
|
1819
1819
|
font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
|
|
1820
1820
|
}
|
|
1821
|
-
`.trim()}function h(n){const a=n&&n.documentElement;if(!a||a.getAttribute(b))return;a.setAttribute(b,"1");const U=n.createElement("style");U.textContent=y(),(n.head||n.body||a).appendChild(U)}function $(n,a){if(a!=null){if(typeof a=="string"){if(a.trim()){const U=typeof n.style.cssText=="string"?n.style.cssText:"";n.style.cssText=U?`${U};${a}`:a}return}for(const U of Object.keys(a))n.style[U]=a[U]}}function ee(n){return n==="cols"?`${F}__cols`:n==="items"?`${F}__items`:`${F}__rows`}function O(n,a,U){n.style.setProperty("--lattice-cols-column-gap",a??"var(--lattice-space)"),n.style.setProperty("--lattice-cols-row-gap",U??"var(--lattice-space)")}function ae(n,a,U,V){a.addEventListener(U,V),n.disposers.push(()=>a.removeEventListener(U,V))}function se(n,a){if(n==null)return null;const U=n.tagName;return U==="INPUT"||U==="TEXTAREA"||U==="SELECT"?n:a&&(a.kind==="container"||a.kind==="grid"||a.custom===!0)?null:typeof n.querySelector=="function"?n.querySelector("input, textarea, select"):null}function ce(n,a,U){const V={name:a.item.name,value:U,previousValue:a.value,item:a.item},le=n.emitter.emitBefore("beforeChange",V,"user"),Ae=()=>{a.value=U,a.item.value=U,ie(a);const ke=a.control&&a.control.__latChangeDetail,Re=a.validation&&a.validation.valid===!1;n.emitter.emit("change",{name:a.item.name,value:U,previousValue:V.previousValue,item:a.item,...ke&&typeof ke=="object"?ke:{}}),S(n),(a.item.validationMode==="change"||Re)&&q(n,a)},he=(ke,Re)=>{Re||a.def.write(a.control,a.value),Pe(n,a,ke)},je=ke=>{if(!ke){a.def.write(a.control,a.value);return}const Re=Z(n,a,U);Re&&typeof Re.then=="function"?Re.then(Ne=>{Ne.ok?Ae():he(Ne.message,Ne.keepText)}):Re.ok?Ae():he(Re.message,Re.keepText)};le&&typeof le.then=="function"?le.then(je):je(le)}function Z(n,a,U){if(a.ruleRequired&&I(U))return{ok:!1,message:n.t("form.required")};const V=a.def;if(typeof V.validate!="function")return{ok:!0,message:null};const le=V.validate(a.control,a.item,U);return le&&typeof le.then=="function"?le.then(Ae=>Q(n,Ae)):Q(n,le)}function Q(n,a){return a===!1?{ok:!1,message:n.t("form.invalid")}:typeof a=="string"?{ok:!1,message:a}:a&&typeof a=="object"&&a.keepText===!0?{ok:!1,message:a.message!=null?String(a.message):n.t("form.invalid"),keepText:!0}:{ok:!0,message:null}}function Pe(n,a,U){let V=a.errorEl;V||(V=n.doc.createElement("div"),V.className=`${F}__error`,V.id=E("lat-form"),a.controlWrap.appendChild(V),a.errorEl=V);const le=U==null||U===""?n.t("form.invalid"):String(U);V.textContent=le;const Ae=a.validationEl;!Ae.hidden&&Ae.className.includes(`${F}__validation--error`)&&(Ae.textContent="",Ae.className=`${F}__validation`,Ae.hidden=!0),a.el.setAttribute("data-invalid","true"),a.control.setAttribute("aria-invalid","true");const he=(a.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!a.validationEl.hidden&&a.validationEl.textContent===le&&he.includes(a.validationEl.id))&&!he.includes(V.id)&&(he.push(V.id),a.control.setAttribute("aria-describedby",he.join(" ")))}function ie(n){n.errorEl&&(n.errorEl.remove(),n.errorEl=null),n.el.removeAttribute("data-invalid"),n.control.removeAttribute("aria-invalid")}function j(n,a){const U=a.value,V=a.item;if(typeof a.def.validate=="function"){const le=z(a.def.validate(a.control,V,U),V,n.t);if(le)return le}return l(V,U,n.t,a.ruleRequired===!0)}function H(n){const a=n.control;if(n.def&&(n.def.kind==="container"||n.def.kind==="grid"||n.def.custom===!0)||!a||typeof a.querySelector!="function")return a||null;let U=null;try{U=a.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{U=null}return U||a}function ne(n,a,U){const V=a.item,le=a.validationEl;if(a.validation.pristine=!1,a.preEl&&(a.preEl.hidden=!0),U){a.validation.valid=!1,a.validation.code=U.code,a.validation.message=U.message,a.control.setAttribute("aria-invalid","true");const he=a.tooltipId?`${a.tooltipId} ${le.id}`:le.id;a.control.setAttribute("aria-describedby",he);const je=H(a);je&&(je.setAttribute("aria-invalid","true"),je.setAttribute("aria-describedby",he)),le.textContent=U.message,le.className=`${F}__validation ${F}__validation--error`,le.hidden=!1,a.errorEl&&(a.errorEl.remove(),a.errorEl=null,a.el.removeAttribute("data-invalid"));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=H(a);Ae&&Ae!==a.control&&(Ae.removeAttribute("aria-invalid"),a.tooltipId?Ae.setAttribute("aria-describedby",a.tooltipId):Ae.removeAttribute("aria-describedby")),typeof V.successMessage=="string"&&V.successMessage!==""?(le.textContent=V.successMessage,le.className=`${F}__validation ${F}__validation--success`,le.hidden=!1):(le.textContent="",le.className=`${F}__validation`,le.hidden=!0)}function q(n,a){typeof a.def.reset=="function"&&a.def.reset(a.control,a.item);const U=j(n,a);ne(n,a,U);const V=U==null;return n.emitter.emit("validated",{name:a.item.name,item:a.item,value:a.value,valid:V,failures:U?[{name:a.item.name,rule:U.code,message:U.message}]:[]}),V}function we(n,a){const U=a.control,V=a.item,le=a.def,Ae=he=>()=>{n.emitter.emit(he,{name:V.name,item:V}),he==="blur"&&V.validationMode==="blur"&&q(n,a)};if(le.kind==="field"){const he=()=>{n.emitter.emit("input",{name:V.name,value:le.read(U,V),item:V})},je=()=>{ce(n,a,le.read(U,V))};ae(n,U,"input",he),ae(n,U,"change",je);for(const ke of le.domEvents||[])ae(n,U,ke,Ne=>{const Me=Ne&&typeof Ne=="object"&&Ne.detail&&typeof Ne.detail=="object"?Ne.detail:null;n.emitter.emit(ke,Me?{name:V.name,item:V,...Me}:{name:V.name,value:le.read(U,V),item:V})})}else le.kind==="toggle"?ae(n,U,"change",()=>{ce(n,a,le.read(U,V))}):le.kind==="button"&&ae(n,U,"click",()=>{U.disabled||U.getAttribute("aria-disabled")==="true"||n.emitter.emit("click",{name:V.name,item:V,value:null})});le.kind!=="display"&&(ae(n,U,"focus",Ae("focus")),ae(n,U,"blur",Ae("blur")))}function $e(n,a,U){if(typeof n=="string"&&/%$/.test(n.trim())){const V=parseFloat(n);if(Number.isFinite(V)){const le=Math.round(V*a/100*1e6)/1e6;return`0 0 calc(${V}% - ${le} * ${U??"var(--lattice-cols-column-gap, var(--lattice-space))"})`}}return`0 0 ${D(n)}`}const C=8;function K(n,a,U){if(typeof U=="number")return U;const V=String(U).trim(),le=/^(-?[\d.]+)px$/.exec(V);if(le)return parseFloat(le[1]);const Ae=n.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=D(U),a.appendChild(Ae);const he=Ae.getBoundingClientRect().width;return Ae.remove(),he}function G(n,a,U){if(U!=null)return K(n,a.parentElement||a,U);const V=a.style.flex,le=a.style.position,Ae=a.style.whiteSpace;a.style.flex="none",a.style.position="absolute",a.style.whiteSpace="nowrap";const he=a.getBoundingClientRect().width;return a.style.flex=V,a.style.position=le,a.style.whiteSpace=Ae,he}function B(n,a,U,V,le,Ae){if(typeof ResizeObserver!="function")return;const he=K(n.doc,U,Ae),je=()=>{const Te=n.doc.defaultView,Le=Te&&typeof Te.getComputedStyle=="function"&&parseFloat(Te.getComputedStyle(U).columnGap)||0,We=U.getBoundingClientRect().width-G(n.doc,V,le)-Le,Ve=U.getAttribute("data-label-effective");let Ze=Ve;Ve!=="top"&&We<he?Ze="top":Ve==="top"&&We>=he+C&&(Ze="left"),Ze!==Ve&&(U.setAttribute("data-label-effective",Ze),a.labelEffectivePosition=Ze)},ke=n.doc.defaultView,Re=ke&&typeof ke.requestAnimationFrame=="function";let Ne=-1,Me=0;const Oe=new ResizeObserver(Te=>{const Le=Te&&Te.length?Te[Te.length-1]:null,We=Le&&Le.contentRect?Le.contentRect.width:-1;if(!Re){je();return}We>=0&&We===Ne||Me||(Ne=We,Me=ke.requestAnimationFrame(()=>{Me=0,je()}))});Oe.observe(U),n.disposers.push(()=>{Oe.disconnect(),Me&&ke.cancelAnimationFrame(Me),Me=0})}function te(n,a){const U=n.el;if(a==null){U.style.removeProperty("--lattice-item-flex"),U.style.width="",U.style.flex="";return}if(a==="content"){n.colsGapCount!=null?U.style.setProperty("--lattice-item-flex","0 0 auto"):(U.style.width="fit-content",U.style.flex="0 0 auto");return}n.colsGapCount!=null?U.style.setProperty("--lattice-item-flex",$e(a,n.colsGapCount,n.colsColumnGap)):(U.style.width=D(a),U.style.flex="0 0 auto")}function ge(n,a){if(n.def.kind==="container"){n.control.style.height=a==null||a==="content"?"fit-content":D(a);return}if(n.def.kind==="grid"||n.item.type==="listbox"||n.def.custom===!0)return;const U=n.el;if(a==null){U.style.removeProperty("--lattice-form-item-height"),U.removeAttribute("data-item-height");return}U.style.setProperty("--lattice-form-item-height",a==="content"?"auto":D(a)),U.setAttribute("data-item-height","")}function oe(n,a){n.labelPosition=a,n.el.setAttribute("data-label-position",a),n.labelEl&&(n.labelEl.classList.toggle(`${F}__label--hidden`,a==="hidden"),a==="left"&&n.labelWidth!=null?n.labelEl.style.flex=`0 0 ${D(n.labelWidth)}`:n.labelEl.style.flex=""),n.fieldRow&&(n.fieldRow.style.flex=a==="left"?"1 1 auto":""),n.isAction&&n.fieldRow&&(a==="left"&&n.labelWidth!=null&&!(n.item.props&&n.item.props.fullWidth===!0)?n.fieldRow.style.paddingLeft=`calc(${D(n.labelWidth)} + var(--lattice-space))`:n.fieldRow.style.paddingLeft="")}function fe(n,a){n.labelWidth=a,oe(n,n.labelPosition)}function ve(n,a,U,V={}){const le=i(a.type)||i("text"),Ae=a.labelPosition!=null?a.labelPosition:V.labelPosition!=null?V.labelPosition:"top",he=a.hiddenLabel===!0?"hidden":Ae,je=a.labelWidth!=null?a.labelWidth:V.labelWidth,ke=a.controlMinWidth!=null?a.controlMinWidth:V.controlMinWidth,Re=a.requiredHint!==void 0?a.requiredHint:V.requiredHint,Ne=n.doc.createElement("div");Ne.className=`${F}__item`,Ne.setAttribute("data-label-position",he),(le.custom||le.kind==="container")&&Ne.setAttribute("data-host","");const Me=le.build(a,n),Oe=le.action===!0,Te=!Oe&&a.label!=null&&a.label!=="";let Le=null,We=null,Ve=null;if(Te){Le=n.doc.createElement("label"),Le.className=`${F}__label`,Le.textContent=String(a.label);const Qe=E("lat-form");Le.setAttribute("for",Qe),(se(Me,le)||Me).id=Qe,he==="hidden"&&Le.classList.add(`${F}__label--hidden`),Ve=w(n,{labelEl:Le,item:a,labelPosition:he,labelWidth:je}),Ve?(We=Ve.tooltipId,Ne.appendChild(Ve.group)):(he==="left"&&je!=null&&(Le.style.flex=`0 0 ${D(je)}`),Ne.appendChild(Le))}else if(he==="hidden"&&!Oe){const Qe=se(Me,le);Qe&&a.placeholder!=null&&a.placeholder!==""&&Qe.setAttribute("aria-label",String(a.placeholder))}const Ze=n.doc.createElement("div");Ze.className=`${F}__control`,Ze.appendChild(Me);const He=x(n,Ze,a,Me),rt=v(n,a);let Xe=Ze;rt&&(Xe=n.doc.createElement("div"),Xe.className=`${F}__field`,Xe.appendChild(Ze),Xe.appendChild(rt.bar)),Ne.appendChild(Xe);let Ge=null;!Oe&&a.helpMessage!=null&&a.helpMessage!==""&&(Ge=n.doc.createElement("div"),Ge.className=`${F}__help`,Ge.textContent=String(a.helpMessage),Ze.appendChild(Ge));let xe=null;!Oe&&a.preMessage!=null&&a.preMessage!==""&&(xe=n.doc.createElement("div"),xe.className=`${F}__pre`,xe.textContent=String(a.preMessage),Ze.appendChild(xe));const Ke=n.doc.createElement("div");Ke.className=`${F}__validation`,Ke.id=E("lat-form"),Ke.hidden=!0,Ze.appendChild(Ke),a.width!=null&&te({el:Ne,colsGapCount:V.colsGapCount},a.width),he==="left"&&(Xe.style.flex="1 1 auto"),Oe&&he==="left"&&je!=null&&!(a.props&&a.props.fullWidth===!0)&&(Xe.style.paddingLeft=`calc(${D(je)} + var(--lattice-space))`),$(Ne,a.css),a.padding!=null&&le.kind!=="container"&&(Ne.style.padding=a.padding);const Fe=le.read(Me,a),Be={item:a,el:Ne,control:Me,controlWrap:Ze,def:le,value:Fe,hidden:a.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ke,preEl:xe,labelEl:Le,helpEl:Ge,labelPosition:he,labelPositionBase:Ae,labelEffectivePosition:he==="left"&&Te?"left":he,requiredHint:Re,placeholderEl:se(Me,le),placeholderBase:a.placeholder!=null?String(a.placeholder):m(a),validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:We,lockEl:He?He.el:null,fieldRow:Xe,isAction:Oe,labelWidth:je,colsGapCount:V.colsGapCount};if(a.value=Fe,ge(Be,a.height),We&&Be.control.setAttribute("aria-describedby",We),rt)for(const Qe of rt.entries){if(Qe.avatar){f(n.doc,Qe.el,Qe.spec,Be.value,Be.item);continue}typeof Qe.spec.onClick=="function"&&ae(n,Qe.el,"click",()=>{Qe.spec.onClick(Be.value,Be.item)})}if(Be.syncLock=()=>{if(!Be.lockEl)return;const Qe=Be.item.readOnly===!0||Be.ruleReadOnly;Be.lockEl.hidden=!Qe,Be.lockEl.parentElement.classList.toggle(`${F}__control--lock`,Qe)},Be.syncAddons=()=>{if(!rt)return;const Qe=Be.item.disabled===!0;for(const qe of rt.entries){if(qe.avatar){f(n.doc,qe.el,qe.spec,Be.value,Be.item);continue}qe.el.tagName==="A"?qe.el.setAttribute("aria-disabled",Qe?"true":"false"):qe.el.disabled=Qe}},t(Be),Be.hidden&&(Ne.hidden=!0),le.custom&&Me.__latticeFormApi){const Qe=Me.__latticeFormApi;Qe._read=()=>Be.value,Qe._write=qe=>{Be.value=qe,Be.item.value=qe,le.write(Me,qe),S(n)},Qe._commit=qe=>{ce(n,Be,qe)},Qe._input=qe=>{n.emitter.emit("input",{name:Be.item.name,value:qe,item:Be.item})}}return typeof le.connect=="function"&&le.connect(Be,n,{clearError:()=>ie(Be),validateItem:()=>q(n,Be),applyRules:()=>S(n)}),typeof le.destroy=="function"&&n.disposers.push(()=>le.destroy(Me)),we(n,Be),n.order.push(Be),a.name!=null&&n.items.set(a.name,Be),U.appendChild(Ne),he==="left"&&Te&&(Ne.setAttribute("data-label-effective","left"),le.kind!=="toggle"&&ke!=null&&B(n,Be,Ne,Ve?Ve.group:Le,je,ke)),Be}function me(n,a,U,V={}){const le={labelPosition:a.labelPosition!=null?a.labelPosition:V.labelPosition,labelWidth:a.labelWidth!=null?a.labelWidth:V.labelWidth,controlMinWidth:a.controlMinWidth!=null?a.controlMinWidth:V.controlMinWidth,requiredHint:V.requiredHint};if(a.kind==="panel"){const he=o(n,a,U,le,{buildChildren:pe,applyCss:$,applyColsGap:O});return a.width!=null&&te({el:he,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),he}if(a.kind==="spacer"){const he=n.doc.createElement("div");return he.className=`${F}__spacer`,$(he,a.css),a.width!=null&&te({el:he,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),a.hidden&&(he.hidden=!0),U.appendChild(he),he}if(a.kind==="separator"){const he=n.doc.createElement("div");he.className=`${F}__separator`,he.setAttribute("role","separator");const je=a.label;if(je!=null){h(n.doc),he.classList.add(`${F}__separator--labelled`);const ke=n.t(je);he.setAttribute("aria-label",ke);const Re=n.doc.createElement("span");Re.className=`${F}__separator-rule`,Re.setAttribute("aria-hidden","true");const Ne=n.doc.createElement("span");Ne.className=`${F}__separator-label`,Ne.textContent=ke;const Me=n.doc.createElement("span");Me.className=`${F}__separator-rule`,Me.setAttribute("aria-hidden","true"),he.appendChild(Re),he.appendChild(Ne),he.appendChild(Me)}else he.setAttribute("aria-label",n.t("form.separator"));return $(he,a.css),a.hidden&&(he.hidden=!0),U.appendChild(he),he}if(a.kind==="fieldset"){const he=n.doc.createElement("fieldset");he.className=`${F}__fieldset`;let je=null;a.legend!=null&&(je=n.doc.createElement("legend"),je.className=`${F}__legend`,je.textContent=a.legend,he.appendChild(je));const ke=n.doc.createElement("div");return ke.className=`${F}__fieldset-body`,a.axis&&ke.classList.add(ee(a.axis)),a.axis==="cols"&&O(ke,a.columnGap,a.rowGap),a.axis&&pe(n,ke,a.blocks,a.axis,le,a.wrap),he.appendChild(ke),$(he,a.css),a.spacing!=null&&he.style.setProperty("--lattice-form-item-gap",a.spacing),a.padding!=null&&(he.style.padding=a.padding),a.hidden&&(he.hidden=!0),a.width!=null&&te({el:he,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),U.appendChild(he),a.name!=null&&n.items.set(a.name,{kind:"fieldset",name:a.name,el:he,legendEl:je,label:a.legend!=null?String(a.legend):null,helpEl:null,hidden:a.hidden===!0}),he}const Ae=n.doc.createElement("div");return Ae.className=ee(a.axis),a.axis==="cols"&&O(Ae,a.columnGap,a.rowGap),a.axis&&pe(n,Ae,a.blocks,a.axis,le,a.wrap),$(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&&te({el:Ae,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),U.appendChild(Ae),Ae}function X(n){const a=n.length-1;for(const he of n)he.colsGapCount!==a&&(he.colsGapCount=a,he.item.width!=null&&te(he,he.item.width));const U=n.filter(he=>!he.el.hidden);let V=[],le=null;const Ae=[];for(const he of U){const je=he.el.getBoundingClientRect().top;V.length&&Math.abs(je-le)>1&&(Ae.push(V),V=[]),V.length||(le=je),V.push(he)}V.length&&Ae.push(V);for(const he of Ae){const je=he.length-1;for(const ke of he)ke.colsGapCount!==je&&(ke.colsGapCount=je,ke.item.width!=null&&te(ke,ke.item.width))}}function de(n,a,U){const V=()=>X(U);if(V(),typeof ResizeObserver=="function"){const le=new ResizeObserver(V);le.observe(a),n.disposers.push(()=>le.disconnect())}if(typeof MutationObserver=="function"){const le=new MutationObserver(Ae=>{Ae.some(he=>he.target.parentElement===a)&&V()});le.observe(a,{attributes:!0,attributeFilter:["hidden"],subtree:!0}),n.disposers.push(()=>le.disconnect())}}function pe(n,a,U,V,le={},Ae=!1){const he=V==="cols"?{...le,colsGapCount:U.length-1,colsColumnGap:a.style.getPropertyValue("--lattice-cols-column-gap")||"var(--lattice-space)"}:le,je=V==="cols"&&Ae?[]:null;for(const ke of U)if(ke.kind==="item"){const Re=ve(n,ke,a,he);je&&je.push(Re)}else{const Re=me(n,ke,a,he);je&&je.push({el:Re,item:{width:ke.width},colsGapCount:he.colsGapCount,colsColumnGap:he.colsColumnGap})}je&&je.length&&n.pendingColsWrap.push({containerEl:a,records:je})}function Y(n){for(let a=n&&n.parentNode;a;a=a.parentNode){const U=a.classList;if(U&&typeof U.contains=="function"&&(U.contains("lattice")||U.contains("lattice-tokens")))return!0}return!1}function re(n){const a=n.el;for(;a.firstChild;)a.removeChild(a.firstChild);n.items.clear(),n.order.length=0,n.pendingColsWrap=[];const U=n.model;a.classList.add(F,ee(U.axis)),U.axis==="cols"&&O(a,U.columnGap,U.rowGap),a.setAttribute("data-density",U.density),Y(a)?a.removeAttribute("data-lattice-standalone"):a.setAttribute("data-lattice-standalone","true"),U.colsBreakpoint===!1?a.style.setProperty("--lattice-cols-container",e):U.colsBreakpoint!==480&&a.style.setProperty("--lattice-cols-container",L(n.doc,U.colsBreakpoint)),n.disposers.push(()=>{a.classList.remove(`${F}__rows`,`${F}__cols`,`${F}__items`)}),$(a,U.css),U.spacing!=null&&a.style.setProperty("--lattice-form-item-gap",U.spacing),U.labelGap!=null&&a.style.setProperty("--lattice-form-label-gap",U.labelGap);const V={labelPosition:U.labelPosition,labelWidth:U.labelWidth,controlMinWidth:U.controlMinWidth,requiredHint:U.requiredHint};U.steps&&U.steps.length?N(n,V):pe(n,a,U.blocks,U.axis==="cols"?"cols":"rows",V,U.wrap),S(n);for(const{containerEl:le,records:Ae}of n.pendingColsWrap.splice(0))de(n,le,Ae);d(n)}function N(n,a={}){const U=n.model,V=U.steps,le=n.doc,Ae=n.el,he=le.createElement("div");Ae.appendChild(he);const je=u(he,{doc:le,t:n.t,steps:V.map(Ve=>({id:Ve.id,label:Ve.label})),active:0,orientation:U.stepOrientation,onGoTo:Ve=>{ue(n,Ve)}}),ke=[];let Re=n.order.length;for(const Ve of V){const Ze=le.createElement("div");Ze.className=`${F}__step`,Ze.hidden=!0,pe(n,Ze,Ve.blocks,Ve.axis,a),Ve.css&&$(Ze,Ve.css),Ae.appendChild(Ze);const He=n.order.length;Ze.__records=n.order.slice(Re,He),Re=He,ke.push(Ze)}const Ne=le.createElement("div");Ne.className=`${F}__step-nav`;const Me=le.createElement("button");Me.type="button",Me.className=`${F}__step-back`,Me.textContent=n.t("form.back");const Oe=le.createElement("button");Oe.type="button",Oe.className=`${F}__step-next`,Oe.textContent=n.t("form.next"),Ne.appendChild(Me),Ne.appendChild(Oe),Ae.appendChild(Ne);const Te={steps:V,bodies:ke,stepper:je,back:Me,next:Oe,active:0};n.wizard=Te;const Le=()=>{je.setActive(Te.active),ke.forEach((Ve,Ze)=>{Ve.hidden=Ze!==Te.active}),Me.disabled=Te.active===0,Oe.textContent=Te.active===V.length-1?n.t("form.finish"):n.t("form.next")},We=Ve=>{const Ze=ke[Ve].__records||[];for(const He of Ze)if(He.item.name!=null&&_.has(He.def.kind)&&He.item.disabled!==!0&&!(He.ruleHidden===!0||He.hidden===!0)&&!(He.item.required!==!0&&He.item.validation==null&&typeof He.def.validate!="function"&&He.ruleRequired!==!0)&&!q(n,He))return typeof He.def.focus=="function"?He.def.focus(He.control):typeof He.control.focus=="function"&&He.control.focus(),He;return null};Te._stepInvalid=We,Te._render=Le,Me.addEventListener("click",()=>{R(n)}),Oe.addEventListener("click",()=>{ye(n)}),Le()}async function ue(n,a){const U=n.wizard;if(!U)return!1;const V=U.steps.length,le=Number(a);if(!Number.isFinite(le)||le<0||le>=V)return!1;const Ae=U.active;if(le===Ae)return!1;if(le>Ae&&n.model.validateSteps!==!1)for(let he=Ae;he<le;he+=1){if(U._stepInvalid(he))return U.stepper.setStatus(he,"error"),!1;U.stepper.setStatus(he,"complete")}return U.active=le,U._render(),!0}function ye(n){const a=n.wizard;if(!a)return Promise.resolve(!1);if(a.active>=a.steps.length-1){if(n.model.validateSteps===!1)return Promise.resolve(!0);const U=a._stepInvalid(a.active);return a.stepper.setStatus(a.active,U?"error":"complete"),Promise.resolve(U==null)}return ue(n,a.active+1)}function R(n){const a=n.wizard;return a?ue(n,a.active-1):Promise.resolve(!1)}}),De("packages/modules/form/emitter.js",function(A,J){"use strict";Object.defineProperty(A,"FORM_EVENTS",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"Emitter",{enumerable:!0,get:function(){return L}});const _e=new Set(["api","user"]),F=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick","activate"]);class L{#e=new Map;on(P,D){if(typeof D!="function")return()=>{};let I=this.#e.get(P);return I||(I=new Set,this.#e.set(P,I)),I.add(D),()=>this.off(P,D)}off(P,D){const I=this.#e.get(P);I&&I.delete(D)}emit(P,D){const I=this.#e.get(P),M=this.#e.get("*");if((!I||I.size===0)&&(!M||M.size===0))return;const W={...D||null,type:P},E=[],T=i=>{for(const p of[...i])try{p(W)}catch(S){E.push(S)}};I&&I.size&&T(I),M&&M.size&&T(M);for(const i of E)queueMicrotask(()=>{throw i})}emitBefore(P,D,I){const M=this.#e.get(P);if(!M||M.size===0)return!0;let W=!1,E=null;const T=c=>{W=!0,c!=null&&E===null&&(E=String(c))},i=I||D&&D.origin,p={...D||null,type:P,origin:_e.has(i)?i:"user",get defaultPrevented(){return W},get reason(){return E},preventDefault(c){T(c)}},S=[...M],k=()=>(W&&E===null&&(E="prevented"),W&&D&&typeof D=="object"&&(D.reason=E),!W),d=[];for(let c=0;c<S.length;c++){const t=S[c];try{const s=t(p);s&&typeof s.then=="function"?d.push(s):s===!1&&T("prevented")}catch(s){T("error"),console.warn(`lattice-form: a '${P}' before-handler threw; the commit was cancelled.`,s)}}return d.length===0?k():Promise.allSettled(d).then(c=>{for(const t of c)t.status==="rejected"?(T("error"),console.warn(`lattice-form: a '${P}' before-handler rejected; the commit was cancelled.`,t.reason)):t.value===!1&&T("prevented");return k()})}clear(){this.#e.clear()}}}),De("packages/modules/form/bind-router.js",function(A,J){"use strict";Object.defineProperty(A,"routerBinding",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"writeRouterRecord",{enumerable:!0,get:function(){return L}});function _e(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function F(e){const{router:P,route:D,key:I}=e,M=i=>i!=null&&String(i.rowKey??i.id)===String(I);return{kind:"router",record:()=>P&&typeof P.get=="function"?P.get(D,I):void 0,items:()=>[],density:()=>{},subscribe:i=>{if(!P||typeof P.subscribe!="function")return()=>{};const p=k=>{if(k){for(const d of k.add||[])M(d)&&i(null,null,d);for(const d of k.update||[])M(d)&&i(null,null,d)}},S=P.subscribe(D,p);return typeof S=="function"?S:()=>{}},save:i=>L(e,i)}}function L(e,P){const{router:D,route:I,key:M,onSave:W}=e;if(!Object.keys(P||{}).length)return!0;const T=()=>D&&typeof D.get=="function"?D.get(I,M):void 0,i=c=>{!D||typeof D.apply!="function"||D.apply([{op:"upsert",row:c}])},p=()=>{!D||typeof D.apply!="function"||(_e(S)?D.apply([{op:"upsert",row:S}]):D.apply([{op:"delete",row:k}]))},S=T(),k={..._e(S)?S:{},...P};if(i(k),typeof W!="function")return!0;let d;try{d=W(P,k)}catch{return p(),!1}return d&&typeof d.then=="function"?d.then(()=>!0,()=>(p(),!1)):!0}}),De("packages/modules/form/bind.js",function(A,J){"use strict";Object.defineProperty(A,"mergeBoundNetworkOptions",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"resolveBind",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"isBound",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"applyBinding",{enumerable:!0,get:function(){return s}});const F=J("packages/modules/form/model.js").DENSITIES,e=J("packages/modules/form/bind-router.js").routerBinding,P=new Set(["number","currency","percent","integer","decimal","duration"]),D=new Set(["ipv4","ipv6","cidr","mac","vlan"]);function I(u){const r=u&&u.dataType;if(r&&(r.unitConfig||r.temperatureConfig))return!0;const m=u&&u.edit?u.edit.editor:null;return m==="unit"||m==="temperature"}function M(u){return u!==null&&typeof u=="object"&&!Array.isArray(u)}function W(u){const r=u&&u.edit?u.edit.editor:null,m=u&&u.type;return r==="checkbox"||m==="boolean"?"checkbox":m!=null&&D.has(m)?m:r==="number"||m!=null&&P.has(m)||I(u)?"number":"input"}function E(u,r){if(r==="mac"){const m=u.typeOptions&&u.typeOptions.macFormat;return m!=null?{macFormat:m}:{}}if(r==="vlan")return u.typeOptions&&u.typeOptions.vlanSingle?{vlanSingle:!0}:{};if(r==="cidr"){const m=u.edit&&u.edit.props&&u.edit.props.prefix,z=u.typeOptions&&u.typeOptions.cidrNetwork,l={};return m!=null&&(l.prefix=m),z&&(l.cidrNetwork=!0),l}return{}}function T(u){const r=u&&u.columns&&typeof u.columns.all=="function"?u.columns.all():[],m=[];for(const z of r){if(!z||!z.field||z.generated||z.computed)continue;const l={type:W(z),name:z.field,label:z.title,format:z.format},g=z.dataType,w=g&&g.unitConfig,x=g&&g.temperatureConfig;w?Object.assign(l,{system:w.system,unit:w.unit,binary:w.binary,decimals:w.decimals,minDecimals:w.minDecimals,maxDecimals:w.maxDecimals,display:w.display,group:w.group,space:w.space,placement:w.placement,significantFigures:w.significantFigures,compound:w.compound,nullDisplay:w.nullDisplay}):x?Object.assign(l,{scale:x.scale,display:x.display,decimals:x.decimals,minDecimals:x.minDecimals,maxDecimals:x.maxDecimals,space:x.space,nullDisplay:x.nullDisplay}):D.has(l.type)&&Object.assign(l,E(z,l.type)),m.push(l)}return m}function i(u,r){const m=u&&u.columns&&typeof u.columns.all=="function"?u.columns.all():[];for(const z of m)if(z&&z.field===r)return z;return null}function p(u,r){if(Array.isArray(r)){for(const z of r)p(u,z);return}if(r==null||typeof r!="object")return;if(!(r.rows!=null||r.cols!=null||r.items!=null||r.fieldset!=null||r.container!=null||r.panel!=null)){if(typeof r.name=="string"&&r.name!==""){const z=i(u,r.name);if(z&&D.has(z.type)&&(r.type==null||r.type===z.type)){r.type=z.type;const l=E(z,z.type);for(const g of Object.keys(l))r[g]===void 0&&(r[g]=l[g])}}return}for(const z of["rows","cols","items","steps"])Array.isArray(r[z])&&p(u,r[z]);r.fieldset!=null&&p(u,r.fieldset),r.container!=null&&p(u,r.container),r.panel!=null&&p(u,r.panel)}function S(u){const r=u&&typeof u.get=="function"?u.get("density"):void 0;return F.includes(r)?r:void 0}function k(u){const{grid:r,rowKey:m}=u,z=()=>{const x=r&&r.rows&&typeof r.rows.byKey=="function"?r.rows.byKey(m):null;return x&&M(x.data)?{...x.data}:{}},l=x=>{const v=i(r,x);return v?v.id:x};return{kind:"grid",record:z,items:()=>T(r),density:()=>S(r),subscribe:x=>{if(!r||typeof r.on!="function")return()=>{};const v=f=>{if(!f||f.key!==m)return;const o=r.columns&&typeof r.columns.get=="function"?r.columns.get(f.colId):null,_=o?o.field:f.colId;_&&x(_,f.value)};return r.on("cell:changed",v)},save:x=>{const v=Object.keys(x);if(!v.length)return!0;if(!r||!r.edit||typeof r.edit.setCells!="function")return!1;const f=v.map(_=>({key:m,colId:l(_),value:x[_]})),o=r.edit.setCells(f,"cell",{origin:"form"});return o&&typeof o.then=="function"?o.then(_=>_>0):o>0}}}function d(u){return{kind:"values",record:()=>({...u}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:z=>{for(const l of Object.keys(z))u[l]=z[l];return!0}}}function c(u){const r=u&&u.bind;return r==null||typeof r!="object"?null:r.grid!=null&&M(r.grid)?k(r):r.router!=null?e(r):d(r)}function t(u){return!!(u&&u.bind!=null&&typeof u.bind=="object")}function s(u,r,m){u.bound=m;const z=(w,x)=>{const v=r.getItem(w);v&&v.setValue(x)},l=(w,x,v)=>{if(v!=null){for(const f of Object.keys(v))if(u.items.has(f)){if(u.dirty.has(f)){u.conflicts.add(f);continue}u.baseline[f]=v[f],z(f,v[f])}return}if(u.items.has(w)){if(u.dirty.has(w)){u.conflicts.add(w);return}u.baseline[w]=x,z(w,x)}},g=m.record();if(g!=null&&typeof g=="object")for(const w of Object.keys(g))u.items.has(w)&&(u.baseline[w]=g[w],z(w,g[w]));u.disposers.push(r.on("change",w=>{u.dirty.add(w.name),u.conflicts.delete(w.name)})),u.disposers.push(m.subscribe(l))}}),De("packages/modules/shared/sanitise-html.js",function(A,J){"use strict";Object.defineProperty(A,"parseSanitisedHtml",{enumerable:!0,get:function(){return c}});const _e=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),F="http://www.w3.org/2000/svg",L=new Set(["foreignobject","desc","title"]),e=/^<!--[\s\S]*?-->/,P=/^<![^>]*>/,D=/^<\/([a-zA-Z][a-zA-Z0-9:-]*)\s*>/,I=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,M=`(?:\\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s"'>]+))?)*`,W=new RegExp(`^<([a-zA-Z][a-zA-Z0-9:-]*)(${M})\\s*(/?)>`),E={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function T(t){return t.replace(/&(#x?[\da-f]+|\w+);/gi,(s,u)=>{if(u[0]==="#"){const r=+(/x/i.test(u[1])?"0"+u.slice(1):u.slice(1));return r<1114112?String.fromCodePoint(r):s}return E[u]||s})}const i=new WeakMap;function p(t){const s=S(t);return i.set(t,s),s}function S(t){const s={text:T,attr:T};try{const u=t.implementation.createHTMLDocument(""),r=u.createElement("textarea");if(r.innerHTML="& ",r.value!=="& ")return s;const m=u.createElement("div");return{text(z){return r.innerHTML=z,r.value},attr(z,l){return m.innerHTML=`<i a=${l}${z}${l}></i>`,m.firstChild.getAttribute("a")}}}catch{return s}}function k(t,s){const u=s.replace(/\/\*.*?\*\/|[\s\u0000-\u001f\\]+/g,"");return/^style$/i.test(t)?/expression\(|javascript:/i.test(u):/^javascript:/i.test(u)}function d(t,s,u){if(!u)return;I.lastIndex=0;let r=I.exec(u);for(;r;){const m=r[1];if(!/^on/i.test(m)){const z=r[2]!==void 0?r[2]:r[3]!==void 0?r[3]:r[4]!==void 0?r[4]:"",l=t.attr(z,r[3]!==void 0?"'":'"');k(m,l)||s.setAttribute(m,l)}r=I.exec(u)}}function c(t,s,u){const r=i.get(t)||p(t),m=[s],z=[null];let l=0,g=!1;const w=()=>m[m.length-1],x=(v,f)=>{if(!v)return t.createElement(f);const o=typeof t.createElementNS=="function"?t.createElementNS(v,f):t.createElement(f);return o.namespaceURI!==v&&(o.namespaceURI=v),o};for(;l<u.length;){if(g){const _=u.slice(l),b=/<\/script\s*>/i.exec(_);if(!b)break;l+=b.index+b[0].length,g=!1;continue}const v=u.indexOf("<",l);if(v===-1){w().appendChild(t.createTextNode(r.text(u.slice(l))));break}v>l&&w().appendChild(t.createTextNode(r.text(u.slice(l,v))));const f=u.slice(v);let o=e.exec(f);if(o){l=v+o[0].length;continue}if(o=D.exec(f),o){const _=o[1].toLowerCase();for(let b=m.length-1;b>0;b-=1)if(m[b].__latTag===_){m.length=b,z.length=b;break}l=v+o[0].length;continue}if(o=W.exec(f),o){const _=o[1].toLowerCase(),b=o[3]==="/";if(l=v+o[0].length,_==="script"){b||(g=!0);continue}const y=z[z.length-1],h=_==="svg"?F:y,$=x(h,h===F?o[1]:_);if($.__latTag=_,d(r,$,o[2]),w().appendChild($),!b&&!_e.has(_)){const ee=_==="svg"?F:y===F&&L.has(_)?null:y;m.push($),z.push(ee)}continue}if(o=P.exec(f),o){l=v+o[0].length;continue}w().appendChild(t.createTextNode("<")),l=v+1}}}),De("packages/modules/form/controls/container.js",function(A,J){"use strict";Object.defineProperty(A,"attachToContainer",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"attachHtmlToContainer",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"getContainerWidget",{enumerable:!0,get:function(){return S}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/model.js").cssSize,D=J("packages/modules/shared/sanitise-html.js").parseSanitisedHtml;function I(k,d,c){if(c!=null){if(typeof c=="object"&&typeof c.nodeType=="number"){d.appendChild(c);return}D(k,d,String(c))}}function M(k){for(;k.firstChild;)k.removeChild(k.firstChild)}function W(k){const d=k.__latAttached;d&&(k.__latAttached=null,!d.keep&&d.view&&typeof d.view.destroy=="function"&&d.view.destroy())}function E(k){return k==null||k==="content"?"fit-content":e(k)}F("container",{kind:"container",build(k,d){const c=d.doc,t=k.props||{},s=c.createElement("div");return s.className="lat-form__container",s.setAttribute("role","region"),k.label!=null&&k.label!==""&&s.setAttribute("aria-label",String(k.label)),s.style.width="100%",s.style.height=E(k.height),k.padding!=null&&(s.style.padding=k.padding),I(c,s,t.html),s},read(){},write(){},state(k,d){const c=d.disabled===!0;k.toggleAttribute("inert",c),k.inert=c,c?k.setAttribute("aria-disabled","true"):k.removeAttribute("aria-disabled")},destroy(k){W(k)}});function T(k){return k.el||k.root||k.element||null}function i(k,d,c={}){W(k),M(k);const s=!(d!=null&&typeof d.nodeType=="number")&&d!=null&&typeof d=="object"?T(d):null,u=s?d:null,r=s||d;r.style.width="100%",k.style.height&&k.style.height!=="fit-content"&&(r.style.height=k.style.height),k.appendChild(r),k.__latAttached={view:u,node:r,keep:c.keep===!0}}function p(k,d,c){W(d),M(d),I(k,d,c)}function S(k){const d=k.__latAttached;return d?d.view||d.node:null}}),De("packages/modules/form/controls/button.js",function(A,J){"use strict";Object.defineProperty(A,"injectButtonStyles",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"buildIcon",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"setButtonCaption",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"buttonItemFrom",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"buildButton",{enumerable:!0,get:function(){return w}});const F=J("packages/modules/form/controls/registry.js").registerControl,L="lat-button",e="data-lattice-button-styles",P="http://www.w3.org/2000/svg",D=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"}}),I=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),M=Object.freeze(["sm","md","lg"]),W=Object.freeze(["button","submit","reset"]);function E(){const x=`
|
|
1821
|
+
`.trim()}function h(n){const a=n&&n.documentElement;if(!a||a.getAttribute(b))return;a.setAttribute(b,"1");const U=n.createElement("style");U.textContent=y(),(n.head||n.body||a).appendChild(U)}function $(n,a){if(a!=null){if(typeof a=="string"){if(a.trim()){const U=typeof n.style.cssText=="string"?n.style.cssText:"";n.style.cssText=U?`${U};${a}`:a}return}for(const U of Object.keys(a))n.style[U]=a[U]}}function ee(n){return n==="cols"?`${F}__cols`:n==="items"?`${F}__items`:`${F}__rows`}function O(n,a,U){n.style.setProperty("--lattice-cols-column-gap",a??"var(--lattice-space)"),n.style.setProperty("--lattice-cols-row-gap",U??"var(--lattice-space)")}function ae(n,a,U,V){a.addEventListener(U,V),n.disposers.push(()=>a.removeEventListener(U,V))}function le(n,a){if(n==null)return null;const U=n.tagName;return U==="INPUT"||U==="TEXTAREA"||U==="SELECT"?n:a&&(a.kind==="container"||a.kind==="grid"||a.custom===!0)?null:typeof n.querySelector=="function"?n.querySelector("input, textarea, select"):null}function se(n,a,U){const V={name:a.item.name,value:U,previousValue:a.value,item:a.item},ue=n.emitter.emitBefore("beforeChange",V,"user"),Ce=()=>{a.value=U,a.item.value=U,ie(a);const we=a.control&&a.control.__latChangeDetail,Ie=a.validation&&a.validation.valid===!1;n.emitter.emit("change",{name:a.item.name,value:U,previousValue:V.previousValue,item:a.item,...we&&typeof we=="object"?we:{}}),S(n),(a.item.validationMode==="change"||Ie)&&q(n,a)},he=(we,Ie)=>{Ie||a.def.write(a.control,a.value),Pe(n,a,we)},je=we=>{if(!we){a.def.write(a.control,a.value);return}const Ie=Z(n,a,U);Ie&&typeof Ie.then=="function"?Ie.then(Ne=>{Ne.ok?Ce():he(Ne.message,Ne.keepText)}):Ie.ok?Ce():he(Ie.message,Ie.keepText)};ue&&typeof ue.then=="function"?ue.then(je):je(ue)}function Z(n,a,U){if(a.ruleRequired&&I(U))return{ok:!1,message:n.t("form.required")};const V=a.def;if(typeof V.validate!="function")return{ok:!0,message:null};const ue=V.validate(a.control,a.item,U);return ue&&typeof ue.then=="function"?ue.then(Ce=>Q(n,Ce)):Q(n,ue)}function Q(n,a){return a===!1?{ok:!1,message:n.t("form.invalid")}:typeof a=="string"?{ok:!1,message:a}:a&&typeof a=="object"&&a.keepText===!0?{ok:!1,message:a.message!=null?String(a.message):n.t("form.invalid"),keepText:!0}:{ok:!0,message:null}}function Pe(n,a,U){let V=a.errorEl;V||(V=n.doc.createElement("div"),V.className=`${F}__error`,V.id=E("lat-form"),a.controlWrap.appendChild(V),a.errorEl=V);const ue=U==null||U===""?n.t("form.invalid"):String(U);V.textContent=ue;const Ce=a.validationEl;!Ce.hidden&&Ce.className.includes(`${F}__validation--error`)&&(Ce.textContent="",Ce.className=`${F}__validation`,Ce.hidden=!0),a.el.setAttribute("data-invalid","true"),a.control.setAttribute("aria-invalid","true");const he=(a.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!a.validationEl.hidden&&a.validationEl.textContent===ue&&he.includes(a.validationEl.id))&&!he.includes(V.id)&&(he.push(V.id),a.control.setAttribute("aria-describedby",he.join(" ")))}function ie(n){n.errorEl&&(n.errorEl.remove(),n.errorEl=null),n.el.removeAttribute("data-invalid"),n.control.removeAttribute("aria-invalid")}function j(n,a){const U=a.value,V=a.item;if(typeof a.def.validate=="function"){const ue=z(a.def.validate(a.control,V,U),V,n.t);if(ue)return ue}return l(V,U,n.t,a.ruleRequired===!0)}function H(n){const a=n.control;if(n.def&&(n.def.kind==="container"||n.def.kind==="grid"||n.def.custom===!0)||!a||typeof a.querySelector!="function")return a||null;let U=null;try{U=a.querySelector('input:not([type="hidden"]), textarea, select, button, [role="combobox"], [tabindex="0"]')}catch{U=null}return U||a}function ne(n,a,U){const V=a.item,ue=a.validationEl;if(a.validation.pristine=!1,a.preEl&&(a.preEl.hidden=!0),U){a.validation.valid=!1,a.validation.code=U.code,a.validation.message=U.message,a.control.setAttribute("aria-invalid","true");const he=a.tooltipId?`${a.tooltipId} ${ue.id}`:ue.id;a.control.setAttribute("aria-describedby",he);const je=H(a);je&&(je.setAttribute("aria-invalid","true"),je.setAttribute("aria-describedby",he)),ue.textContent=U.message,ue.className=`${F}__validation ${F}__validation--error`,ue.hidden=!1,a.errorEl&&(a.errorEl.remove(),a.errorEl=null,a.el.removeAttribute("data-invalid"));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 Ce=H(a);Ce&&Ce!==a.control&&(Ce.removeAttribute("aria-invalid"),a.tooltipId?Ce.setAttribute("aria-describedby",a.tooltipId):Ce.removeAttribute("aria-describedby")),typeof V.successMessage=="string"&&V.successMessage!==""?(ue.textContent=V.successMessage,ue.className=`${F}__validation ${F}__validation--success`,ue.hidden=!1):(ue.textContent="",ue.className=`${F}__validation`,ue.hidden=!0)}function q(n,a){typeof a.def.reset=="function"&&a.def.reset(a.control,a.item);const U=j(n,a);ne(n,a,U);const V=U==null;return n.emitter.emit("validated",{name:a.item.name,item:a.item,value:a.value,valid:V,failures:U?[{name:a.item.name,rule:U.code,message:U.message}]:[]}),V}function ke(n,a){const U=a.control,V=a.item,ue=a.def,Ce=he=>()=>{n.emitter.emit(he,{name:V.name,item:V}),he==="blur"&&V.validationMode==="blur"&&q(n,a)};if(ue.kind==="field"){const he=()=>{n.emitter.emit("input",{name:V.name,value:ue.read(U,V),item:V})},je=()=>{se(n,a,ue.read(U,V))};ae(n,U,"input",he),ae(n,U,"change",je);for(const we of ue.domEvents||[])ae(n,U,we,Ne=>{const Re=Ne&&typeof Ne=="object"&&Ne.detail&&typeof Ne.detail=="object"?Ne.detail:null;n.emitter.emit(we,Re?{name:V.name,item:V,...Re}:{name:V.name,value:ue.read(U,V),item:V})})}else ue.kind==="toggle"?ae(n,U,"change",()=>{se(n,a,ue.read(U,V))}):ue.kind==="button"&&ae(n,U,"click",()=>{U.disabled||U.getAttribute("aria-disabled")==="true"||n.emitter.emit("click",{name:V.name,item:V,value:null})});ue.kind!=="display"&&(ae(n,U,"focus",Ce("focus")),ae(n,U,"blur",Ce("blur")))}function Ee(n,a,U){if(typeof n=="string"&&/%$/.test(n.trim())){const V=parseFloat(n);if(Number.isFinite(V)){const ue=Math.round(V*a/100*1e6)/1e6;return`0 0 calc(${V}% - ${ue} * ${U??"var(--lattice-cols-column-gap, var(--lattice-space))"})`}}return`0 0 ${D(n)}`}const C=8;function K(n,a,U){if(typeof U=="number")return U;const V=String(U).trim(),ue=/^(-?[\d.]+)px$/.exec(V);if(ue)return parseFloat(ue[1]);const Ce=n.createElement("div");Ce.style.position="absolute",Ce.style.visibility="hidden",Ce.style.height="0",Ce.style.overflow="hidden",Ce.style.pointerEvents="none",Ce.style.width=D(U),a.appendChild(Ce);const he=Ce.getBoundingClientRect().width;return Ce.remove(),he}function G(n,a,U){if(U!=null)return K(n,a.parentElement||a,U);const V=a.style.flex,ue=a.style.position,Ce=a.style.whiteSpace;a.style.flex="none",a.style.position="absolute",a.style.whiteSpace="nowrap";const he=a.getBoundingClientRect().width;return a.style.flex=V,a.style.position=ue,a.style.whiteSpace=Ce,he}function B(n,a,U,V,ue,Ce){if(typeof ResizeObserver!="function")return;const he=K(n.doc,U,Ce),je=()=>{const Le=n.doc.defaultView,Te=Le&&typeof Le.getComputedStyle=="function"&&parseFloat(Le.getComputedStyle(U).columnGap)||0,We=U.getBoundingClientRect().width-G(n.doc,V,ue)-Te,Ge=U.getAttribute("data-label-effective");let Ve=Ge;Ge!=="top"&&We<he?Ve="top":Ge==="top"&&We>=he+C&&(Ve="left"),Ve!==Ge&&(U.setAttribute("data-label-effective",Ve),a.labelEffectivePosition=Ve)},we=n.doc.defaultView,Ie=we&&typeof we.requestAnimationFrame=="function";let Ne=-1,Re=0;const Se=new ResizeObserver(Le=>{const Te=Le&&Le.length?Le[Le.length-1]:null,We=Te&&Te.contentRect?Te.contentRect.width:-1;if(!Ie){je();return}We>=0&&We===Ne||Re||(Ne=We,Re=we.requestAnimationFrame(()=>{Re=0,je()}))});Se.observe(U),n.disposers.push(()=>{Se.disconnect(),Re&&we.cancelAnimationFrame(Re),Re=0})}function te(n,a){const U=n.el;if(a==null){U.style.removeProperty("--lattice-item-flex"),U.style.width="",U.style.flex="";return}if(a==="content"){n.colsGapCount!=null?U.style.setProperty("--lattice-item-flex","0 0 auto"):(U.style.width="fit-content",U.style.flex="0 0 auto");return}n.colsGapCount!=null?U.style.setProperty("--lattice-item-flex",Ee(a,n.colsGapCount,n.colsColumnGap)):(U.style.width=D(a),U.style.flex="0 0 auto")}function ge(n,a){if(n.def.kind==="container"){n.control.style.height=a==null||a==="content"?"fit-content":D(a);return}if(n.def.kind==="grid"||n.item.type==="listbox"||n.def.custom===!0)return;const U=n.el;if(a==null){U.style.removeProperty("--lattice-form-item-height"),U.removeAttribute("data-item-height");return}U.style.setProperty("--lattice-form-item-height",a==="content"?"auto":D(a)),U.setAttribute("data-item-height","")}function oe(n,a){n.labelPosition=a,n.el.setAttribute("data-label-position",a),n.labelEl&&(n.labelEl.classList.toggle(`${F}__label--hidden`,a==="hidden"),a==="left"&&n.labelWidth!=null?n.labelEl.style.flex=`0 0 ${D(n.labelWidth)}`:n.labelEl.style.flex=""),n.fieldRow&&(n.fieldRow.style.flex=a==="left"?"1 1 auto":""),n.isAction&&n.fieldRow&&(a==="left"&&n.labelWidth!=null&&!(n.item.props&&n.item.props.fullWidth===!0)?n.fieldRow.style.paddingLeft=`calc(${D(n.labelWidth)} + var(--lattice-space))`:n.fieldRow.style.paddingLeft="")}function fe(n,a){n.labelWidth=a,oe(n,n.labelPosition)}function ve(n,a,U,V={}){const ue=i(a.type)||i("text"),Ce=a.labelPosition!=null?a.labelPosition:V.labelPosition!=null?V.labelPosition:"top",he=a.hiddenLabel===!0?"hidden":Ce,je=a.labelWidth!=null?a.labelWidth:V.labelWidth,we=a.controlMinWidth!=null?a.controlMinWidth:V.controlMinWidth,Ie=a.requiredHint!==void 0?a.requiredHint:V.requiredHint,Ne=n.doc.createElement("div");Ne.className=`${F}__item`,Ne.setAttribute("data-label-position",he),(ue.custom||ue.kind==="container")&&Ne.setAttribute("data-host","");const Re=ue.build(a,n),Se=ue.action===!0,Le=!Se&&a.label!=null&&a.label!=="";let Te=null,We=null,Ge=null;if(Le){Te=n.doc.createElement("label"),Te.className=`${F}__label`,Te.textContent=String(a.label);const Qe=E("lat-form");Te.setAttribute("for",Qe),(le(Re,ue)||Re).id=Qe,he==="hidden"&&Te.classList.add(`${F}__label--hidden`),Ge=w(n,{labelEl:Te,item:a,labelPosition:he,labelWidth:je}),Ge?(We=Ge.tooltipId,Ne.appendChild(Ge.group)):(he==="left"&&je!=null&&(Te.style.flex=`0 0 ${D(je)}`),Ne.appendChild(Te))}else if(he==="hidden"&&!Se){const Qe=le(Re,ue);Qe&&a.placeholder!=null&&a.placeholder!==""&&Qe.setAttribute("aria-label",String(a.placeholder))}const Ve=n.doc.createElement("div");Ve.className=`${F}__control`,Ve.appendChild(Re);const Fe=x(n,Ve,a,Re),rt=v(n,a);let Xe=Ve;rt&&(Xe=n.doc.createElement("div"),Xe.className=`${F}__field`,Xe.appendChild(Ve),Xe.appendChild(rt.bar)),Ne.appendChild(Xe);let Ue=null;!Se&&a.helpMessage!=null&&a.helpMessage!==""&&(Ue=n.doc.createElement("div"),Ue.className=`${F}__help`,Ue.textContent=String(a.helpMessage),Ve.appendChild(Ue));let Ae=null;!Se&&a.preMessage!=null&&a.preMessage!==""&&(Ae=n.doc.createElement("div"),Ae.className=`${F}__pre`,Ae.textContent=String(a.preMessage),Ve.appendChild(Ae));const Ke=n.doc.createElement("div");Ke.className=`${F}__validation`,Ke.id=E("lat-form"),Ke.hidden=!0,Ve.appendChild(Ke),a.width!=null&&te({el:Ne,colsGapCount:V.colsGapCount},a.width),he==="left"&&(Xe.style.flex="1 1 auto"),Se&&he==="left"&&je!=null&&!(a.props&&a.props.fullWidth===!0)&&(Xe.style.paddingLeft=`calc(${D(je)} + var(--lattice-space))`),$(Ne,a.css),a.padding!=null&&ue.kind!=="container"&&(Ne.style.padding=a.padding);const He=ue.read(Re,a),Be={item:a,el:Ne,control:Re,controlWrap:Ve,def:ue,value:He,hidden:a.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ke,preEl:Ae,labelEl:Te,helpEl:Ue,labelPosition:he,labelPositionBase:Ce,labelEffectivePosition:he==="left"&&Le?"left":he,requiredHint:Ie,placeholderEl:le(Re,ue),placeholderBase:a.placeholder!=null?String(a.placeholder):m(a),validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:We,lockEl:Fe?Fe.el:null,fieldRow:Xe,isAction:Se,labelWidth:je,colsGapCount:V.colsGapCount};if(a.value=He,ge(Be,a.height),We&&Be.control.setAttribute("aria-describedby",We),rt)for(const Qe of rt.entries){if(Qe.avatar){f(n.doc,Qe.el,Qe.spec,Be.value,Be.item);continue}typeof Qe.spec.onClick=="function"&&ae(n,Qe.el,"click",()=>{Qe.spec.onClick(Be.value,Be.item)})}if(Be.syncLock=()=>{if(!Be.lockEl)return;const Qe=Be.item.readOnly===!0||Be.ruleReadOnly;Be.lockEl.hidden=!Qe,Be.lockEl.parentElement.classList.toggle(`${F}__control--lock`,Qe)},Be.syncAddons=()=>{if(!rt)return;const Qe=Be.item.disabled===!0;for(const Je of rt.entries){if(Je.avatar){f(n.doc,Je.el,Je.spec,Be.value,Be.item);continue}Je.el.tagName==="A"?Je.el.setAttribute("aria-disabled",Qe?"true":"false"):Je.el.disabled=Qe}},t(Be),Be.hidden&&(Ne.hidden=!0),ue.custom&&Re.__latticeFormApi){const Qe=Re.__latticeFormApi;Qe._read=()=>Be.value,Qe._write=Je=>{Be.value=Je,Be.item.value=Je,ue.write(Re,Je),S(n)},Qe._commit=Je=>{se(n,Be,Je)},Qe._input=Je=>{n.emitter.emit("input",{name:Be.item.name,value:Je,item:Be.item})}}return typeof ue.connect=="function"&&ue.connect(Be,n,{clearError:()=>ie(Be),validateItem:()=>q(n,Be),applyRules:()=>S(n)}),typeof ue.destroy=="function"&&n.disposers.push(()=>ue.destroy(Re)),ke(n,Be),n.order.push(Be),a.name!=null&&n.items.set(a.name,Be),U.appendChild(Ne),he==="left"&&Le&&(Ne.setAttribute("data-label-effective","left"),ue.kind!=="toggle"&&we!=null&&B(n,Be,Ne,Ge?Ge.group:Te,je,we)),Be}function be(n,a,U,V={}){const ue={labelPosition:a.labelPosition!=null?a.labelPosition:V.labelPosition,labelWidth:a.labelWidth!=null?a.labelWidth:V.labelWidth,controlMinWidth:a.controlMinWidth!=null?a.controlMinWidth:V.controlMinWidth,requiredHint:V.requiredHint};if(a.kind==="panel"){const he=o(n,a,U,ue,{buildChildren:pe,applyCss:$,applyColsGap:O});return a.width!=null&&te({el:he,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),he}if(a.kind==="spacer"){const he=n.doc.createElement("div");return he.className=`${F}__spacer`,$(he,a.css),a.width!=null&&te({el:he,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),a.hidden&&(he.hidden=!0),U.appendChild(he),he}if(a.kind==="separator"){const he=n.doc.createElement("div");he.className=`${F}__separator`,he.setAttribute("role","separator");const je=a.label;if(je!=null){h(n.doc),he.classList.add(`${F}__separator--labelled`);const we=n.t(je);he.setAttribute("aria-label",we);const Ie=n.doc.createElement("span");Ie.className=`${F}__separator-rule`,Ie.setAttribute("aria-hidden","true");const Ne=n.doc.createElement("span");Ne.className=`${F}__separator-label`,Ne.textContent=we;const Re=n.doc.createElement("span");Re.className=`${F}__separator-rule`,Re.setAttribute("aria-hidden","true"),he.appendChild(Ie),he.appendChild(Ne),he.appendChild(Re)}else he.setAttribute("aria-label",n.t("form.separator"));return $(he,a.css),a.hidden&&(he.hidden=!0),U.appendChild(he),he}if(a.kind==="fieldset"){const he=n.doc.createElement("fieldset");he.className=`${F}__fieldset`;let je=null;a.legend!=null&&(je=n.doc.createElement("legend"),je.className=`${F}__legend`,je.textContent=a.legend,he.appendChild(je));const we=n.doc.createElement("div");return we.className=`${F}__fieldset-body`,a.axis&&we.classList.add(ee(a.axis)),a.axis==="cols"&&O(we,a.columnGap,a.rowGap),a.axis&&pe(n,we,a.blocks,a.axis,ue,a.wrap),he.appendChild(we),$(he,a.css),a.spacing!=null&&he.style.setProperty("--lattice-form-item-gap",a.spacing),a.padding!=null&&(he.style.padding=a.padding),a.hidden&&(he.hidden=!0),a.width!=null&&te({el:he,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),U.appendChild(he),a.name!=null&&n.items.set(a.name,{kind:"fieldset",name:a.name,el:he,legendEl:je,label:a.legend!=null?String(a.legend):null,helpEl:null,hidden:a.hidden===!0}),he}const Ce=n.doc.createElement("div");return Ce.className=ee(a.axis),a.axis==="cols"&&O(Ce,a.columnGap,a.rowGap),a.axis&&pe(n,Ce,a.blocks,a.axis,ue,a.wrap),$(Ce,a.css),a.spacing!=null&&Ce.style.setProperty("--lattice-form-item-gap",a.spacing),a.padding!=null&&(Ce.style.padding=a.padding),a.hidden&&(Ce.hidden=!0),a.width!=null&&te({el:Ce,colsGapCount:V.colsGapCount,colsColumnGap:V.colsColumnGap},a.width),U.appendChild(Ce),Ce}function X(n){const a=n.length-1;for(const he of n)he.colsGapCount!==a&&(he.colsGapCount=a,he.item.width!=null&&te(he,he.item.width));const U=n.filter(he=>!he.el.hidden);let V=[],ue=null;const Ce=[];for(const he of U){const je=he.el.getBoundingClientRect().top;V.length&&Math.abs(je-ue)>1&&(Ce.push(V),V=[]),V.length||(ue=je),V.push(he)}V.length&&Ce.push(V);for(const he of Ce){const je=he.length-1;for(const we of he)we.colsGapCount!==je&&(we.colsGapCount=je,we.item.width!=null&&te(we,we.item.width))}}function de(n,a,U){const V=()=>X(U);if(V(),typeof ResizeObserver=="function"){const ue=new ResizeObserver(V);ue.observe(a),n.disposers.push(()=>ue.disconnect())}if(typeof MutationObserver=="function"){const ue=new MutationObserver(Ce=>{Ce.some(he=>he.target.parentElement===a)&&V()});ue.observe(a,{attributes:!0,attributeFilter:["hidden"],subtree:!0}),n.disposers.push(()=>ue.disconnect())}}function pe(n,a,U,V,ue={},Ce=!1){const he=V==="cols"?{...ue,colsGapCount:U.length-1,colsColumnGap:a.style.getPropertyValue("--lattice-cols-column-gap")||"var(--lattice-space)"}:ue,je=V==="cols"&&Ce?[]:null;for(const we of U)if(we.kind==="item"){const Ie=ve(n,we,a,he);je&&je.push(Ie)}else{const Ie=be(n,we,a,he);je&&je.push({el:Ie,item:{width:we.width},colsGapCount:he.colsGapCount,colsColumnGap:he.colsColumnGap})}je&&je.length&&n.pendingColsWrap.push({containerEl:a,records:je})}function Y(n){for(let a=n&&n.parentNode;a;a=a.parentNode){const U=a.classList;if(U&&typeof U.contains=="function"&&(U.contains("lattice")||U.contains("lattice-tokens")))return!0}return!1}function re(n){const a=n.el;for(;a.firstChild;)a.removeChild(a.firstChild);n.items.clear(),n.order.length=0,n.pendingColsWrap=[];const U=n.model;a.classList.add(F,ee(U.axis)),U.axis==="cols"&&O(a,U.columnGap,U.rowGap),a.setAttribute("data-density",U.density),Y(a)?a.removeAttribute("data-lattice-standalone"):a.setAttribute("data-lattice-standalone","true"),U.colsBreakpoint===!1?a.style.setProperty("--lattice-cols-container",e):U.colsBreakpoint!==480&&a.style.setProperty("--lattice-cols-container",L(n.doc,U.colsBreakpoint)),n.disposers.push(()=>{a.classList.remove(`${F}__rows`,`${F}__cols`,`${F}__items`)}),$(a,U.css),U.spacing!=null&&a.style.setProperty("--lattice-form-item-gap",U.spacing),U.labelGap!=null&&a.style.setProperty("--lattice-form-label-gap",U.labelGap);const V={labelPosition:U.labelPosition,labelWidth:U.labelWidth,controlMinWidth:U.controlMinWidth,requiredHint:U.requiredHint};U.steps&&U.steps.length?N(n,V):pe(n,a,U.blocks,U.axis==="cols"?"cols":"rows",V,U.wrap),S(n);for(const{containerEl:ue,records:Ce}of n.pendingColsWrap.splice(0))de(n,ue,Ce);d(n)}function N(n,a={}){const U=n.model,V=U.steps,ue=n.doc,Ce=n.el,he=ue.createElement("div");Ce.appendChild(he);const je=u(he,{doc:ue,t:n.t,steps:V.map(Ge=>({id:Ge.id,label:Ge.label})),active:0,orientation:U.stepOrientation,onGoTo:Ge=>{ce(n,Ge)}}),we=[];let Ie=n.order.length;for(const Ge of V){const Ve=ue.createElement("div");Ve.className=`${F}__step`,Ve.hidden=!0,pe(n,Ve,Ge.blocks,Ge.axis,a),Ge.css&&$(Ve,Ge.css),Ce.appendChild(Ve);const Fe=n.order.length;Ve.__records=n.order.slice(Ie,Fe),Ie=Fe,we.push(Ve)}const Ne=ue.createElement("div");Ne.className=`${F}__step-nav`;const Re=ue.createElement("button");Re.type="button",Re.className=`${F}__step-back`,Re.textContent=n.t("form.back");const Se=ue.createElement("button");Se.type="button",Se.className=`${F}__step-next`,Se.textContent=n.t("form.next"),Ne.appendChild(Re),Ne.appendChild(Se),Ce.appendChild(Ne);const Le={steps:V,bodies:we,stepper:je,back:Re,next:Se,active:0};n.wizard=Le;const Te=()=>{je.setActive(Le.active),we.forEach((Ge,Ve)=>{Ge.hidden=Ve!==Le.active}),Re.disabled=Le.active===0,Se.textContent=Le.active===V.length-1?n.t("form.finish"):n.t("form.next")},We=Ge=>{const Ve=we[Ge].__records||[];for(const Fe of Ve)if(Fe.item.name!=null&&_.has(Fe.def.kind)&&Fe.item.disabled!==!0&&!(Fe.ruleHidden===!0||Fe.hidden===!0)&&!(Fe.item.required!==!0&&Fe.item.validation==null&&typeof Fe.def.validate!="function"&&Fe.ruleRequired!==!0)&&!q(n,Fe))return typeof Fe.def.focus=="function"?Fe.def.focus(Fe.control):typeof Fe.control.focus=="function"&&Fe.control.focus(),Fe;return null};Le._stepInvalid=We,Le._render=Te,Re.addEventListener("click",()=>{R(n)}),Se.addEventListener("click",()=>{ye(n)}),Te()}async function ce(n,a){const U=n.wizard;if(!U)return!1;const V=U.steps.length,ue=Number(a);if(!Number.isFinite(ue)||ue<0||ue>=V)return!1;const Ce=U.active;if(ue===Ce)return!1;if(ue>Ce&&n.model.validateSteps!==!1)for(let he=Ce;he<ue;he+=1){if(U._stepInvalid(he))return U.stepper.setStatus(he,"error"),!1;U.stepper.setStatus(he,"complete")}return U.active=ue,U._render(),!0}function ye(n){const a=n.wizard;if(!a)return Promise.resolve(!1);if(a.active>=a.steps.length-1){if(n.model.validateSteps===!1)return Promise.resolve(!0);const U=a._stepInvalid(a.active);return a.stepper.setStatus(a.active,U?"error":"complete"),Promise.resolve(U==null)}return ce(n,a.active+1)}function R(n){const a=n.wizard;return a?ce(n,a.active-1):Promise.resolve(!1)}}),Me("packages/modules/form/emitter.js",function(A,J){"use strict";Object.defineProperty(A,"FORM_EVENTS",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"Emitter",{enumerable:!0,get:function(){return L}});const _e=new Set(["api","user"]),F=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick","activate"]);class L{#e=new Map;on(P,D){if(typeof D!="function")return()=>{};let I=this.#e.get(P);return I||(I=new Set,this.#e.set(P,I)),I.add(D),()=>this.off(P,D)}off(P,D){const I=this.#e.get(P);I&&I.delete(D)}emit(P,D){const I=this.#e.get(P),M=this.#e.get("*");if((!I||I.size===0)&&(!M||M.size===0))return;const W={...D||null,type:P},E=[],T=i=>{for(const p of[...i])try{p(W)}catch(S){E.push(S)}};I&&I.size&&T(I),M&&M.size&&T(M);for(const i of E)queueMicrotask(()=>{throw i})}emitBefore(P,D,I){const M=this.#e.get(P);if(!M||M.size===0)return!0;let W=!1,E=null;const T=c=>{W=!0,c!=null&&E===null&&(E=String(c))},i=I||D&&D.origin,p={...D||null,type:P,origin:_e.has(i)?i:"user",get defaultPrevented(){return W},get reason(){return E},preventDefault(c){T(c)}},S=[...M],k=()=>(W&&E===null&&(E="prevented"),W&&D&&typeof D=="object"&&(D.reason=E),!W),d=[];for(let c=0;c<S.length;c++){const t=S[c];try{const s=t(p);s&&typeof s.then=="function"?d.push(s):s===!1&&T("prevented")}catch(s){T("error"),console.warn(`lattice-form: a '${P}' before-handler threw; the commit was cancelled.`,s)}}return d.length===0?k():Promise.allSettled(d).then(c=>{for(const t of c)t.status==="rejected"?(T("error"),console.warn(`lattice-form: a '${P}' before-handler rejected; the commit was cancelled.`,t.reason)):t.value===!1&&T("prevented");return k()})}clear(){this.#e.clear()}}}),Me("packages/modules/form/bind-router.js",function(A,J){"use strict";Object.defineProperty(A,"routerBinding",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"writeRouterRecord",{enumerable:!0,get:function(){return L}});function _e(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function F(e){const{router:P,route:D,key:I}=e,M=i=>i!=null&&String(i.rowKey??i.id)===String(I);return{kind:"router",record:()=>P&&typeof P.get=="function"?P.get(D,I):void 0,items:()=>[],density:()=>{},subscribe:i=>{if(!P||typeof P.subscribe!="function")return()=>{};const p=k=>{if(k){for(const d of k.add||[])M(d)&&i(null,null,d);for(const d of k.update||[])M(d)&&i(null,null,d)}},S=P.subscribe(D,p);return typeof S=="function"?S:()=>{}},save:i=>L(e,i)}}function L(e,P){const{router:D,route:I,key:M,onSave:W}=e;if(!Object.keys(P||{}).length)return!0;const T=()=>D&&typeof D.get=="function"?D.get(I,M):void 0,i=c=>{!D||typeof D.apply!="function"||D.apply([{op:"upsert",row:c}])},p=()=>{!D||typeof D.apply!="function"||(_e(S)?D.apply([{op:"upsert",row:S}]):D.apply([{op:"delete",row:k}]))},S=T(),k={..._e(S)?S:{},...P};if(i(k),typeof W!="function")return!0;let d;try{d=W(P,k)}catch{return p(),!1}return d&&typeof d.then=="function"?d.then(()=>!0,()=>(p(),!1)):!0}}),Me("packages/modules/form/bind.js",function(A,J){"use strict";Object.defineProperty(A,"mergeBoundNetworkOptions",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"resolveBind",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"isBound",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"applyBinding",{enumerable:!0,get:function(){return s}});const F=J("packages/modules/form/model.js").DENSITIES,e=J("packages/modules/form/bind-router.js").routerBinding,P=new Set(["number","currency","percent","integer","decimal","duration"]),D=new Set(["ipv4","ipv6","cidr","mac","vlan"]);function I(u){const r=u&&u.dataType;if(r&&(r.unitConfig||r.temperatureConfig))return!0;const m=u&&u.edit?u.edit.editor:null;return m==="unit"||m==="temperature"}function M(u){return u!==null&&typeof u=="object"&&!Array.isArray(u)}function W(u){const r=u&&u.edit?u.edit.editor:null,m=u&&u.type;return r==="checkbox"||m==="boolean"?"checkbox":m!=null&&D.has(m)?m:r==="number"||m!=null&&P.has(m)||I(u)?"number":"input"}function E(u,r){if(r==="mac"){const m=u.typeOptions&&u.typeOptions.macFormat;return m!=null?{macFormat:m}:{}}if(r==="vlan")return u.typeOptions&&u.typeOptions.vlanSingle?{vlanSingle:!0}:{};if(r==="cidr"){const m=u.edit&&u.edit.props&&u.edit.props.prefix,z=u.typeOptions&&u.typeOptions.cidrNetwork,l={};return m!=null&&(l.prefix=m),z&&(l.cidrNetwork=!0),l}return{}}function T(u){const r=u&&u.columns&&typeof u.columns.all=="function"?u.columns.all():[],m=[];for(const z of r){if(!z||!z.field||z.generated||z.computed)continue;const l={type:W(z),name:z.field,label:z.title,format:z.format},g=z.dataType,w=g&&g.unitConfig,x=g&&g.temperatureConfig;w?Object.assign(l,{system:w.system,unit:w.unit,binary:w.binary,decimals:w.decimals,minDecimals:w.minDecimals,maxDecimals:w.maxDecimals,display:w.display,group:w.group,space:w.space,placement:w.placement,significantFigures:w.significantFigures,compound:w.compound,nullDisplay:w.nullDisplay}):x?Object.assign(l,{scale:x.scale,display:x.display,decimals:x.decimals,minDecimals:x.minDecimals,maxDecimals:x.maxDecimals,space:x.space,nullDisplay:x.nullDisplay}):D.has(l.type)&&Object.assign(l,E(z,l.type)),m.push(l)}return m}function i(u,r){const m=u&&u.columns&&typeof u.columns.all=="function"?u.columns.all():[];for(const z of m)if(z&&z.field===r)return z;return null}function p(u,r){if(Array.isArray(r)){for(const z of r)p(u,z);return}if(r==null||typeof r!="object")return;if(!(r.rows!=null||r.cols!=null||r.items!=null||r.fieldset!=null||r.container!=null||r.panel!=null)){if(typeof r.name=="string"&&r.name!==""){const z=i(u,r.name);if(z&&D.has(z.type)&&(r.type==null||r.type===z.type)){r.type=z.type;const l=E(z,z.type);for(const g of Object.keys(l))r[g]===void 0&&(r[g]=l[g])}}return}for(const z of["rows","cols","items","steps"])Array.isArray(r[z])&&p(u,r[z]);r.fieldset!=null&&p(u,r.fieldset),r.container!=null&&p(u,r.container),r.panel!=null&&p(u,r.panel)}function S(u){const r=u&&typeof u.get=="function"?u.get("density"):void 0;return F.includes(r)?r:void 0}function k(u){const{grid:r,rowKey:m}=u,z=()=>{const x=r&&r.rows&&typeof r.rows.byKey=="function"?r.rows.byKey(m):null;return x&&M(x.data)?{...x.data}:{}},l=x=>{const v=i(r,x);return v?v.id:x};return{kind:"grid",record:z,items:()=>T(r),density:()=>S(r),subscribe:x=>{if(!r||typeof r.on!="function")return()=>{};const v=f=>{if(!f||f.key!==m)return;const o=r.columns&&typeof r.columns.get=="function"?r.columns.get(f.colId):null,_=o?o.field:f.colId;_&&x(_,f.value)};return r.on("cell:changed",v)},save:x=>{const v=Object.keys(x);if(!v.length)return!0;if(!r||!r.edit||typeof r.edit.setCells!="function")return!1;const f=v.map(_=>({key:m,colId:l(_),value:x[_]})),o=r.edit.setCells(f,"cell",{origin:"form"});return o&&typeof o.then=="function"?o.then(_=>_>0):o>0}}}function d(u){return{kind:"values",record:()=>({...u}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:z=>{for(const l of Object.keys(z))u[l]=z[l];return!0}}}function c(u){const r=u&&u.bind;return r==null||typeof r!="object"?null:r.grid!=null&&M(r.grid)?k(r):r.router!=null?e(r):d(r)}function t(u){return!!(u&&u.bind!=null&&typeof u.bind=="object")}function s(u,r,m){u.bound=m;const z=(w,x)=>{const v=r.getItem(w);v&&v.setValue(x)},l=(w,x,v)=>{if(v!=null){for(const f of Object.keys(v))if(u.items.has(f)){if(u.dirty.has(f)){u.conflicts.add(f);continue}u.baseline[f]=v[f],z(f,v[f])}return}if(u.items.has(w)){if(u.dirty.has(w)){u.conflicts.add(w);return}u.baseline[w]=x,z(w,x)}},g=m.record();if(g!=null&&typeof g=="object")for(const w of Object.keys(g))u.items.has(w)&&(u.baseline[w]=g[w],z(w,g[w]));u.disposers.push(r.on("change",w=>{u.dirty.add(w.name),u.conflicts.delete(w.name)})),u.disposers.push(m.subscribe(l))}}),Me("packages/modules/shared/sanitise-html.js",function(A,J){"use strict";Object.defineProperty(A,"parseSanitisedHtml",{enumerable:!0,get:function(){return c}});const _e=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),F="http://www.w3.org/2000/svg",L=new Set(["foreignobject","desc","title"]),e=/^<!--[\s\S]*?-->/,P=/^<![^>]*>/,D=/^<\/([a-zA-Z][a-zA-Z0-9:-]*)\s*>/,I=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g,M=`(?:\\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s"'>]+))?)*`,W=new RegExp(`^<([a-zA-Z][a-zA-Z0-9:-]*)(${M})\\s*(/?)>`),E={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function T(t){return t.replace(/&(#x?[\da-f]+|\w+);/gi,(s,u)=>{if(u[0]==="#"){const r=+(/x/i.test(u[1])?"0"+u.slice(1):u.slice(1));return r<1114112?String.fromCodePoint(r):s}return E[u]||s})}const i=new WeakMap;function p(t){const s=S(t);return i.set(t,s),s}function S(t){const s={text:T,attr:T};try{const u=t.implementation.createHTMLDocument(""),r=u.createElement("textarea");if(r.innerHTML="& ",r.value!=="& ")return s;const m=u.createElement("div");return{text(z){return r.innerHTML=z,r.value},attr(z,l){return m.innerHTML=`<i a=${l}${z}${l}></i>`,m.firstChild.getAttribute("a")}}}catch{return s}}function k(t,s){const u=s.replace(/\/\*.*?\*\/|[\s\u0000-\u001f\\]+/g,"");return/^style$/i.test(t)?/expression\(|javascript:/i.test(u):/^javascript:/i.test(u)}function d(t,s,u){if(!u)return;I.lastIndex=0;let r=I.exec(u);for(;r;){const m=r[1];if(!/^on/i.test(m)){const z=r[2]!==void 0?r[2]:r[3]!==void 0?r[3]:r[4]!==void 0?r[4]:"",l=t.attr(z,r[3]!==void 0?"'":'"');k(m,l)||s.setAttribute(m,l)}r=I.exec(u)}}function c(t,s,u){const r=i.get(t)||p(t),m=[s],z=[null];let l=0,g=!1;const w=()=>m[m.length-1],x=(v,f)=>{if(!v)return t.createElement(f);const o=typeof t.createElementNS=="function"?t.createElementNS(v,f):t.createElement(f);return o.namespaceURI!==v&&(o.namespaceURI=v),o};for(;l<u.length;){if(g){const _=u.slice(l),b=/<\/script\s*>/i.exec(_);if(!b)break;l+=b.index+b[0].length,g=!1;continue}const v=u.indexOf("<",l);if(v===-1){w().appendChild(t.createTextNode(r.text(u.slice(l))));break}v>l&&w().appendChild(t.createTextNode(r.text(u.slice(l,v))));const f=u.slice(v);let o=e.exec(f);if(o){l=v+o[0].length;continue}if(o=D.exec(f),o){const _=o[1].toLowerCase();for(let b=m.length-1;b>0;b-=1)if(m[b].__latTag===_){m.length=b,z.length=b;break}l=v+o[0].length;continue}if(o=W.exec(f),o){const _=o[1].toLowerCase(),b=o[3]==="/";if(l=v+o[0].length,_==="script"){b||(g=!0);continue}const y=z[z.length-1],h=_==="svg"?F:y,$=x(h,h===F?o[1]:_);if($.__latTag=_,d(r,$,o[2]),w().appendChild($),!b&&!_e.has(_)){const ee=_==="svg"?F:y===F&&L.has(_)?null:y;m.push($),z.push(ee)}continue}if(o=P.exec(f),o){l=v+o[0].length;continue}w().appendChild(t.createTextNode("<")),l=v+1}}}),Me("packages/modules/form/controls/container.js",function(A,J){"use strict";Object.defineProperty(A,"attachToContainer",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"attachHtmlToContainer",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"getContainerWidget",{enumerable:!0,get:function(){return S}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/model.js").cssSize,D=J("packages/modules/shared/sanitise-html.js").parseSanitisedHtml;function I(k,d,c){if(c!=null){if(typeof c=="object"&&typeof c.nodeType=="number"){d.appendChild(c);return}D(k,d,String(c))}}function M(k){for(;k.firstChild;)k.removeChild(k.firstChild)}function W(k){const d=k.__latAttached;d&&(k.__latAttached=null,!d.keep&&d.view&&typeof d.view.destroy=="function"&&d.view.destroy())}function E(k){return k==null||k==="content"?"fit-content":e(k)}F("container",{kind:"container",build(k,d){const c=d.doc,t=k.props||{},s=c.createElement("div");return s.className="lat-form__container",s.setAttribute("role","region"),k.label!=null&&k.label!==""&&s.setAttribute("aria-label",String(k.label)),s.style.width="100%",s.style.height=E(k.height),k.padding!=null&&(s.style.padding=k.padding),I(c,s,t.html),s},read(){},write(){},state(k,d){const c=d.disabled===!0;k.toggleAttribute("inert",c),k.inert=c,c?k.setAttribute("aria-disabled","true"):k.removeAttribute("aria-disabled")},destroy(k){W(k)}});function T(k){return k.el||k.root||k.element||null}function i(k,d,c={}){W(k),M(k);const s=!(d!=null&&typeof d.nodeType=="number")&&d!=null&&typeof d=="object"?T(d):null,u=s?d:null,r=s||d;r.style.width="100%",k.style.height&&k.style.height!=="fit-content"&&(r.style.height=k.style.height),k.appendChild(r),k.__latAttached={view:u,node:r,keep:c.keep===!0}}function p(k,d,c){W(d),M(d),I(k,d,c)}function S(k){const d=k.__latAttached;return d?d.view||d.node:null}}),Me("packages/modules/form/controls/button.js",function(A,J){"use strict";Object.defineProperty(A,"injectButtonStyles",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"buildIcon",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"setButtonCaption",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"buttonItemFrom",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"buildButton",{enumerable:!0,get:function(){return w}});const F=J("packages/modules/form/controls/registry.js").registerControl,L="lat-button",e="data-lattice-button-styles",P="http://www.w3.org/2000/svg",D=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"}}),I=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),M=Object.freeze(["sm","md","lg"]),W=Object.freeze(["button","submit","reset"]);function E(){const x=`
|
|
1822
1822
|
.lat-form{
|
|
1823
1823
|
--lattice-button-primary-bg:var(--lattice-accent);
|
|
1824
1824
|
--lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
|
|
@@ -1923,7 +1923,7 @@ ${v}
|
|
|
1923
1923
|
|
|
1924
1924
|
.lat-form__control .${L}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
|
|
1925
1925
|
.lat-form__control .${L}[aria-busy='true']{ cursor:default; pointer-events:none; }
|
|
1926
|
-
`.trim()}function T(x){const v=x&&x.documentElement;if(!v||v.getAttribute(e))return;v.setAttribute(e,"1");const f=x.createElement("style");f.textContent=E(),(x.head||x.body||v).appendChild(f)}function i(x){return I.includes(x)?x:"secondary"}function p(x){return M.includes(x)?x:"md"}function S(x){return W.includes(x)?x:"button"}function k(x){return x==="end"?"end":"start"}function d(x){return x==="uppercase"?"uppercase":"none"}function c(x){const v=x.props&&x.props.href;return typeof v=="string"&&v!==""}function t(x,v){const f=x.createElementNS(P,"svg");f.setAttribute("viewBox",v.viewBox),f.setAttribute("focusable","false"),f.setAttribute("aria-hidden","true"),v.paint==="stroke"?(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");for(const o of v.paths){const _=x.createElementNS(P,"path");_.setAttribute("d",o),f.appendChild(_)}return f}function s(x,v){if(x==null)return null;if(typeof x=="object"&&x.nodeType)return x;if(typeof x!="string"||x==="")return null;const f=x;if(/^(https?:)?\/\//i.test(f)||/^data:/i.test(f)){const _=v.createElement("img");return _.src=f,_.alt="",_}const o=D[f];return o?t(v,o):null}function u(x){const v=x.createElementNS(P,"svg");v.setAttribute("viewBox","0 0 16 16"),v.setAttribute("focusable","false"),v.setAttribute("aria-hidden","true"),v.setAttribute("class",`${L}__spinner`);const f=x.createElementNS(P,"circle");return f.setAttribute("cx","8"),f.setAttribute("cy","8"),f.setAttribute("r","6"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","2"),f.setAttribute("stroke-linecap","round"),f.setAttribute("stroke-dasharray","28"),f.setAttribute("stroke-dashoffset","10"),v.appendChild(f),v}function r(x,v,f){const o=v&&v.defaultView,_=o&&o.CustomEvent,b=_?new _("submit",{bubbles:!0,detail:{values:f}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:f},preventDefault(){this.defaultPrevented=!0}};x.dispatchEvent(b)}function m(x){const v=x.loading===!0,f=x.disabled===!0&&x.focusableWhenDisabled!==!0||v;x.el.disabled=f,x.el.setAttribute("aria-disabled",x.disabled===!0||v?"true":"false")}function z(x,v){x.loading=v===!0,x.el.setAttribute("aria-busy",x.loading?"true":"false"),m(x);const f=x.iconSlot;if(!f)return;for(;f.firstChild;)f.removeChild(f.firstChild);const o=x.loading?u(x.doc):x.iconEl;o?(f.appendChild(o),f.parentNode||(x.position==="end"?x.el.appendChild(f):x.el.insertBefore(f,x.el.firstChild))):f.parentNode&&f.parentNode.removeChild(f)}function l(x,v){const f=x&&x.__latButton;if(!f)return;const o=v==null?"":String(v);if(f.label)f.label.textContent=o;else if(o!==""){const _=f.doc.createElement("span");_.className=`${L}__label`,_.textContent=o,f.label=_,x.removeAttribute("data-icon-only"),f.position==="end"?x.insertBefore(_,x.firstChild):x.appendChild(_)}f.autoAriaLabel&&o!==""&&(x.removeAttribute("aria-label"),f.autoAriaLabel=!1)}function g(x){return{kind:"item",type:"button",name:x.name!=null&&x.name!==""?String(x.name):null,label:x.label,disabled:x.disabled===!0,props:{icon:x.icon,iconPosition:x.iconPosition,variant:x.variant,fullWidth:x.fullWidth,size:x.size,textTransform:x.textTransform,buttonType:x.buttonType,loading:x.loading,href:x.href,ariaLabel:x.ariaLabel,toggle:x.toggle,focusableWhenDisabled:x.focusableWhenDisabled}}}function w(x,v){const f=v.doc,o=x.props||{},_=x.label!=null?String(x.label):"",b=s(o.icon,f),y=b!=null&&_==="",h=c(x)?f.createElement("a"):f.createElement("button");h.className=L,h.setAttribute("data-variant",i(o.variant)),h.setAttribute("data-size",p(o.size)),h.setAttribute("data-text-transform",d(o.textTransform)),o.fullWidth===!0&&h.setAttribute("data-full","true"),y&&h.setAttribute("data-icon-only","true"),x.name&&!c(x)&&(h.name=x.name),c(x)?h.setAttribute("href",o.href):h.type="button";const $=o.ariaLabel!=null?String(o.ariaLabel):y?String(x.name||""):"";$&&h.setAttribute("aria-label",$);const ee=f.createElement("span");ee.className=`${L}__icon`,ee.setAttribute("aria-hidden","true"),b&&ee.appendChild(b);let O=null;y||(O=f.createElement("span"),O.className=`${L}__label`,O.textContent=_!==""?_:String(x.name||""));const ae=k(o.iconPosition);ae==="end"?(O&&h.appendChild(O),ee.firstChild&&h.appendChild(ee)):(ee.firstChild&&h.appendChild(ee),O&&h.appendChild(O));const se={el:h,doc:f,iconSlot:ee,iconEl:b,label:O,position:ae,buttonType:S(o.buttonType),loading:!1,disabled:x.disabled===!0,toggle:o.toggle===!0,pressed:o.toggle===!0&&x.value===!0,focusableWhenDisabled:o.focusableWhenDisabled===!0,autoAriaLabel:o.ariaLabel==null&&$!==""};h.__latButton=se,se.toggle&&h.setAttribute("aria-pressed",se.pressed?"true":"false");const ce=()=>{if(se.loading||se.disabled)return;if(se.toggle){const Q=se.pressed;se.pressed=!se.pressed,h.setAttribute("aria-pressed",se.pressed?"true":"false"),v.emitter.emit("change",{name:x.name,value:se.pressed,previousValue:Q,item:x})}const Z=se.buttonType;Z==="submit"?(typeof v.form.validate!="function"||v.form.validate())&&r(v.el,f,typeof v.form.getValue=="function"?v.form.getValue():{}):Z==="reset"&&typeof v.form.clear=="function"&&v.form.clear()};return h.addEventListener("click",ce),v.disposers.push(()=>h.removeEventListener("click",ce)),z(se,o.loading===!0),h}F("button",{kind:"button",action:!0,build(x,v){return T(v.doc),w(x,v)},read(x){const v=x&&x.__latButton;return v&&v.toggle?v.pressed:null},write(){},state(x,v){const f=x.__latButton;f&&(f.disabled=v.disabled===!0,m(f))},setLoading(x,v){const f=x.__latButton;f&&z(f,v)}})}),De("packages/modules/form/ready.js",function(A,J){"use strict";Object.defineProperty(A,"createReadySignal",{enumerable:!0,get:function(){return _e}});function _e(){let F=!1,L,e;const P=new Promise((D,I)=>{L=D,e=I});return P.catch(()=>{}),{promise:P,settleSoon(){F||queueMicrotask(()=>{F||(F=!0,L())})},fail(D){F||(F=!0,e(D))}}}}),De("packages/core/src/internal/predicates.js",function(A,J){"use strict";Object.defineProperty(A,"isObject",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"isFunction",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"isNil",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"isBlank",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"isCtor",{enumerable:!0,get:function(){return P}});function _e(D){return D!==null&&typeof D=="object"&&!Array.isArray(D)}function F(D){return typeof D=="function"}function L(D){return D==null}function e(D){return D==null||D===""}function P(D){return typeof D!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(D))?!0:!!(D.prototype&&Object.getOwnPropertyNames(D.prototype).length>1)}}),De("packages/core/src/registry/free-tier-notice.js",function(A,J){"use strict";Object.defineProperty(A,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"WATERMARK_TEXT",{enumerable:!0,get:function(){return F}});const _e="Free for non-commercial use: latticegrid.dev/free",F="Unlicensed: Lattice Grid trial"}),De("packages/core/src/internal/warn.js",function(A,J){"use strict";Object.defineProperty(A,"reportedWarnings",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"warnOnce",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"infoOnce",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"resetWarnings",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"fail",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"invariant",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"DEV",{enumerable:!0,get:function(){return k}});const _e=new Set,F=2e3;function L(d){if(_e.add(d),_e.size>F){const c=_e.values().next().value;c!==void 0&&_e.delete(c)}}const e=[],P=500;function D(d,c,t){e.push({key:d,level:c,message:t.map(s=>typeof s=="string"?s:I(s)).join(" "),at:Date.now()}),e.length>P&&e.shift()}function I(d){if(d instanceof Error)return d.message;try{return JSON.stringify(d)}catch{return String(d)}}function M(){return e.map(d=>({...d}))}function W(d){if(d.length===0||typeof d[0]!="string")return d;const c=d[0].replace(/^\[lattice\]\s*/,"");return c===d[0]?d:[c,...d.slice(1)]}function E(d,...c){if(_e.has(d))return;L(d);const t=W(c);D(d,"warn",t),console.warn("[lattice]",...t)}function T(d,...c){if(_e.has(d))return;L(d);const t=W(c);D(d,"info",t),console.info("[lattice]",...t)}function i(){_e.clear(),e.length=0}function p(d,c){const t=new Error(`[lattice] ${d}`);throw c!==void 0&&(t.cause=c),t}function S(d,c){d||p(c)}const k=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),De("packages/core/src/registry/licence.js",function(A,J){"use strict";Object.defineProperty(A,"PRODUCT",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"LICENCE_VERSION",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"PUBLIC_KEY",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"fromBase64Url",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"toBase64Url",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"asciiBytes",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"parseLicence",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"hasEd25519",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"verifyLicence",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"isLocalHost",{enumerable:!0,get:function(){return w}}),Object.defineProperty(A,"currentHost",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"matchesDomain",{enumerable:!0,get:function(){return v}}),Object.defineProperty(A,"LicenceHolder",{enumerable:!0,get:function(){return o}}),Object.defineProperty(A,"setLicence",{enumerable:!0,get:function(){return h}}),Object.defineProperty(A,"licenceInfo",{enumerable:!0,get:function(){return $}}),Object.defineProperty(A,"watermark",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(A,"licenceState",{enumerable:!0,get:function(){return O}}),Object.defineProperty(A,"sharedLicence",{enumerable:!0,get:function(){return ae}});const F=J("packages/core/src/internal/warn.js").warnOnce,L=J("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE;Object.defineProperty(A,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return L.FREE_TIER_NOTICE}});const P="lattice-grid",D=1,I="LG1",M=64,W="GwmaCOkGedHulqsa-DOV1TU8On1rsalWv519c_dW4j4",E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",T=(()=>{const se=new Int16Array(128).fill(-1);for(let ce=0;ce<E.length;ce++)se[E.charCodeAt(ce)]=ce;return se[43]=62,se[47]=63,se})();function i(se){if(typeof se!="string")return null;let ce="";for(let H=0;H<se.length;H++){const ne=se.charCodeAt(H);if(ne!==61){if(ne>127||T[ne]<0)return null;ce+=se[H]}}const Z=ce.length;if(Z%4===1)return null;const Q=new Uint8Array(Math.floor(Z*3/4));let Pe=0,ie=0,j=0;for(let H=0;H<Z;H++)Pe=Pe<<6|T[ce.charCodeAt(H)],ie+=6,ie>=8&&(ie-=8,Q[j++]=Pe>>ie&255);return j===Q.length?Q:Q.subarray(0,j)}function p(se){let ce="",Z=0;for(;Z+2<se.length;Z+=3){const Pe=se[Z]<<16|se[Z+1]<<8|se[Z+2];ce+=E[Pe>>18&63]+E[Pe>>12&63]+E[Pe>>6&63]+E[Pe&63]}const Q=se.length-Z;if(Q===1){const Pe=se[Z]<<16;ce+=E[Pe>>18&63]+E[Pe>>12&63]}else if(Q===2){const Pe=se[Z]<<16|se[Z+1]<<8;ce+=E[Pe>>18&63]+E[Pe>>12&63]+E[Pe>>6&63]}return ce}function S(se){const ce=new Uint8Array(se.length);for(let Z=0;Z<se.length;Z++)ce[Z]=se.charCodeAt(Z)&127;return ce}function k(se){if(typeof TextDecoder=="function")return new TextDecoder().decode(se);let ce="";for(let Z=0;Z<se.length;Z++)ce+=String.fromCharCode(se[Z]);return ce}function d(se){const ce={ok:!1,reason:"malformed",product:null,issuedTo:null,expires:null,terms:null,features:[],deployments:[],version:0,message:null,signature:null,raw:typeof se=="string"?se:""};if(typeof se!="string"||se.length===0)return{...ce,reason:"missing"};const Z=se.trim(),Q=Z.split(".");if(Q.length!==3)return ce;const[Pe,ie,j]=Q;if(Pe!==I)return{...ce,reason:"prefix"};const H=i(ie),ne=i(j);if(!H||!ne)return ce;let q;try{q=JSON.parse(k(H))}catch{return ce}return q===null||typeof q!="object"?ce:{ok:!0,reason:null,product:typeof q.p=="string"?q.p:null,issuedTo:typeof q.t=="string"?q.t:null,expires:typeof q.e=="string"?q.e:null,terms:typeof q.terms=="string"?q.terms:null,features:Array.isArray(q.f)?q.f.slice():[],deployments:Array.isArray(q.d)?q.d.slice():[],version:typeof q.v=="number"?q.v:0,message:S(ie),signature:ne,raw:Z}}function c(se,ce){if(!se)return!1;const Z=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(se)?`${se}T23:59:59.999Z`:se);return Number.isNaN(Z)?!0:ce>Z}function t(se){return se==="non-commercial"?"non-commercial":"commercial"}let s=null,u=null,r=null;function m(){const se=globalThis.crypto;return se&&se.subtle?se.subtle:null}async function z(se){if(s&&u===se)return s;const ce=m();if(!ce)return null;const Z=i(se);if(!Z)return null;try{const Q=await ce.importKey("raw",Z,{name:"Ed25519"},!1,["verify"]);return s=Q,u=se,Q}catch{return null}}async function l(){return r!==null||(r=await z(W)!==null),r}async function g(se,ce={}){const Z=ce.warn!==!1,Q=ce.product||P,Pe=ce.publicKey||W,ie=ce.now??Date.now(),j=ce.host??x(),H=w(j)?"":` ${e}`,ne=d(se);if(!ne.ok){const K=ne.reason==="missing"?"missing":"malformed";return Z&&F(`licence.${K}`,K==="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.${H}`:`licence key could not be read. The grid will render with a watermark.${H}`),{valid:!1,reason:K,terms:"commercial"}}const q={product:ne.product||void 0,issuedTo:ne.issuedTo||void 0,expires:ne.expires||void 0,terms:t(ne.terms)};if(ne.product!==Q)return Z&&F("licence.product",`licence key is for '${ne.product}', not '${Q}'. The grid will render with a watermark.`),{valid:!1,...q,reason:"product"};if(c(ne.expires,ie))return Z&&F("licence.expired",`licence expired on ${ne.expires}. The grid will render with a watermark. Renew at latticegrid.dev.`),{valid:!1,...q,reason:"expired"};const we=ne.deployments||[];if(we.length&&j&&!w(j)&&!v(j,we))return Z&&F("licence.domain",`licence key is not valid for ${j}; it covers ${we.join(", ")}. The grid will render with a watermark.`),{valid:!1,...q,reason:"domain"};const $e=await z(Pe);if(!$e){const K=!!ne.signature&&ne.signature.length===M;return Z&&F("licence.algorithm","this host does not provide crypto.subtle Ed25519, so the licence signature could not be verified. A structural check was used instead."),K?{valid:!0,...q,reason:"unverified"}:{valid:!1,...q,reason:"signature"}}let C=!1;try{C=await m().verify({name:"Ed25519"},$e,ne.signature,ne.message)}catch{C=!1}return C?{valid:!0,...q}:(Z&&F("licence.signature","licence signature is not valid. The grid will render with a watermark."),{valid:!1,...q,reason:"signature"})}function w(se){const ce=String(se??x()??"").trim().toLowerCase().replace(/^\[/,"").replace(/\]$/,"");return!ce||ce==="localhost"||ce.endsWith(".localhost")||ce==="::1"||ce==="0:0:0:0:0:0:0:1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ce)}function x(){const se=globalThis.location;return se&&typeof se.hostname=="string"?se.hostname:null}function v(se,ce){const Z=f(se);return!Z||!Array.isArray(ce)?!1:ce.some(Q=>{const Pe=f(Q);if(!Pe)return!1;if(Pe==="*")return!0;if(Pe.startsWith("*.")){const ie=Pe.slice(2);return Z===ie||Z.endsWith(`.${ie}`)}return Z===Pe})}function f(se){return String(se??"").trim().toLowerCase().replace(/\.$/,"")}class o{#e="";#t={valid:!1,reason:"missing",terms:"commercial"};#n=null;#r=null;#i;#o=new Set;constructor(ce={}){this.#i=ce}set(ce){this.#e=typeof ce=="string"?ce.trim():"";const Z=d(this.#e);return this.#t=Z.ok?{valid:!c(Z.expires,Date.now())&&Z.product===(this.#i.product||P),product:Z.product||void 0,issuedTo:Z.issuedTo||void 0,expires:Z.expires||void 0,terms:t(Z.terms),reason:"pending"}:{valid:!1,reason:Z.reason||"malformed",terms:"commercial"},this.#n=null,this.#e&&this.verify(),this.#t}verify(){if(this.#n)return this.#n;const ce=this.#e;return this.#n=g(ce,this.#i).then(Z=>{if(this.#e===ce){this.#t=Z;for(const Q of this.#o)Q(Z)}return Z}),this.#n}onSettled(ce){return this.#o.add(ce),()=>this.#o.delete(ce)}info(){return{...this.#t}}watermark(){return this.#t.valid?!1:!w(this.#r)}setHost(ce){this.#r=ce}state(){return this.#t.valid?"licensed":w(this.#r)?"localhost":"trial"}reset(){this.#e="",this.#t={valid:!1,reason:"missing",terms:"commercial"},this.#n=null,this.#o.clear()}}const _=Symbol.for("lattice-grid/licence/holder");function b(){const se=globalThis,ce=se&&se[_];if(ce&&typeof ce.set=="function"&&typeof ce.watermark=="function")return ce;const Z=new o;if(se)try{se[_]=Z}catch{}return Z}const y=b();function h(se){return y.set(se)}function $(){return y.info()}function ee(){return y.watermark()}function O(){return y.state()}function ae(){return y}}),De("packages/dom/src/watermark.js",function(A,J){"use strict";Object.defineProperty(A,"WATERMARK_CLASS",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"WATERMARK_LAYER_CLASS",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"Watermark",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"viewLicenceHost",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"mountViewWatermark",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return l}});const F=J("packages/core/src/internal/predicates.js").isFunction,L=J("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE,P=L.WATERMARK_TEXT,D=J("packages/core/src/registry/licence.js"),I=D.watermark,M=D.setLicence,W=Object.freeze({t:g=>g==="licence.watermark.free"?e:P});function E(g,w,x={}){const v=g.createElement(w);if(x.class)for(const f of x.class.split(/\s+/))f&&v.classList.add(f);if(x.text!==void 0&&(v.textContent=x.text),x.attrs)for(const[f,o]of Object.entries(x.attrs))v.setAttribute(f,o);if(x.children)for(const f of x.children)v.appendChild(f);return v}function T(g,w,x){return g.addEventListener(w,x),()=>g.removeEventListener(w,x)}const i="lat-watermark",p="https://www.latticegrid.dev",S=["br","bl","tl","tr"],k=4e3,d=Symbol.for("lattice-grid/licence/holder"),c="data-lat-watermark-owner",t="lat-watermark-layer",s="lat-watermark-style",u=`
|
|
1926
|
+
`.trim()}function T(x){const v=x&&x.documentElement;if(!v||v.getAttribute(e))return;v.setAttribute(e,"1");const f=x.createElement("style");f.textContent=E(),(x.head||x.body||v).appendChild(f)}function i(x){return I.includes(x)?x:"secondary"}function p(x){return M.includes(x)?x:"md"}function S(x){return W.includes(x)?x:"button"}function k(x){return x==="end"?"end":"start"}function d(x){return x==="uppercase"?"uppercase":"none"}function c(x){const v=x.props&&x.props.href;return typeof v=="string"&&v!==""}function t(x,v){const f=x.createElementNS(P,"svg");f.setAttribute("viewBox",v.viewBox),f.setAttribute("focusable","false"),f.setAttribute("aria-hidden","true"),v.paint==="stroke"?(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");for(const o of v.paths){const _=x.createElementNS(P,"path");_.setAttribute("d",o),f.appendChild(_)}return f}function s(x,v){if(x==null)return null;if(typeof x=="object"&&x.nodeType)return x;if(typeof x!="string"||x==="")return null;const f=x;if(/^(https?:)?\/\//i.test(f)||/^data:/i.test(f)){const _=v.createElement("img");return _.src=f,_.alt="",_}const o=D[f];return o?t(v,o):null}function u(x){const v=x.createElementNS(P,"svg");v.setAttribute("viewBox","0 0 16 16"),v.setAttribute("focusable","false"),v.setAttribute("aria-hidden","true"),v.setAttribute("class",`${L}__spinner`);const f=x.createElementNS(P,"circle");return f.setAttribute("cx","8"),f.setAttribute("cy","8"),f.setAttribute("r","6"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","2"),f.setAttribute("stroke-linecap","round"),f.setAttribute("stroke-dasharray","28"),f.setAttribute("stroke-dashoffset","10"),v.appendChild(f),v}function r(x,v,f){const o=v&&v.defaultView,_=o&&o.CustomEvent,b=_?new _("submit",{bubbles:!0,detail:{values:f}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:f},preventDefault(){this.defaultPrevented=!0}};x.dispatchEvent(b)}function m(x){const v=x.loading===!0,f=x.disabled===!0&&x.focusableWhenDisabled!==!0||v;x.el.disabled=f,x.el.setAttribute("aria-disabled",x.disabled===!0||v?"true":"false")}function z(x,v){x.loading=v===!0,x.el.setAttribute("aria-busy",x.loading?"true":"false"),m(x);const f=x.iconSlot;if(!f)return;for(;f.firstChild;)f.removeChild(f.firstChild);const o=x.loading?u(x.doc):x.iconEl;o?(f.appendChild(o),f.parentNode||(x.position==="end"?x.el.appendChild(f):x.el.insertBefore(f,x.el.firstChild))):f.parentNode&&f.parentNode.removeChild(f)}function l(x,v){const f=x&&x.__latButton;if(!f)return;const o=v==null?"":String(v);if(f.label)f.label.textContent=o;else if(o!==""){const _=f.doc.createElement("span");_.className=`${L}__label`,_.textContent=o,f.label=_,x.removeAttribute("data-icon-only"),f.position==="end"?x.insertBefore(_,x.firstChild):x.appendChild(_)}f.autoAriaLabel&&o!==""&&(x.removeAttribute("aria-label"),f.autoAriaLabel=!1)}function g(x){return{kind:"item",type:"button",name:x.name!=null&&x.name!==""?String(x.name):null,label:x.label,disabled:x.disabled===!0,props:{icon:x.icon,iconPosition:x.iconPosition,variant:x.variant,fullWidth:x.fullWidth,size:x.size,textTransform:x.textTransform,buttonType:x.buttonType,loading:x.loading,href:x.href,ariaLabel:x.ariaLabel,toggle:x.toggle,focusableWhenDisabled:x.focusableWhenDisabled}}}function w(x,v){const f=v.doc,o=x.props||{},_=x.label!=null?String(x.label):"",b=s(o.icon,f),y=b!=null&&_==="",h=c(x)?f.createElement("a"):f.createElement("button");h.className=L,h.setAttribute("data-variant",i(o.variant)),h.setAttribute("data-size",p(o.size)),h.setAttribute("data-text-transform",d(o.textTransform)),o.fullWidth===!0&&h.setAttribute("data-full","true"),y&&h.setAttribute("data-icon-only","true"),x.name&&!c(x)&&(h.name=x.name),c(x)?h.setAttribute("href",o.href):h.type="button";const $=o.ariaLabel!=null?String(o.ariaLabel):y?String(x.name||""):"";$&&h.setAttribute("aria-label",$);const ee=f.createElement("span");ee.className=`${L}__icon`,ee.setAttribute("aria-hidden","true"),b&&ee.appendChild(b);let O=null;y||(O=f.createElement("span"),O.className=`${L}__label`,O.textContent=_!==""?_:String(x.name||""));const ae=k(o.iconPosition);ae==="end"?(O&&h.appendChild(O),ee.firstChild&&h.appendChild(ee)):(ee.firstChild&&h.appendChild(ee),O&&h.appendChild(O));const le={el:h,doc:f,iconSlot:ee,iconEl:b,label:O,position:ae,buttonType:S(o.buttonType),loading:!1,disabled:x.disabled===!0,toggle:o.toggle===!0,pressed:o.toggle===!0&&x.value===!0,focusableWhenDisabled:o.focusableWhenDisabled===!0,autoAriaLabel:o.ariaLabel==null&&$!==""};h.__latButton=le,le.toggle&&h.setAttribute("aria-pressed",le.pressed?"true":"false");const se=()=>{if(le.loading||le.disabled)return;if(le.toggle){const Q=le.pressed;le.pressed=!le.pressed,h.setAttribute("aria-pressed",le.pressed?"true":"false"),v.emitter.emit("change",{name:x.name,value:le.pressed,previousValue:Q,item:x})}const Z=le.buttonType;Z==="submit"?(typeof v.form.validate!="function"||v.form.validate())&&r(v.el,f,typeof v.form.getValue=="function"?v.form.getValue():{}):Z==="reset"&&typeof v.form.clear=="function"&&v.form.clear()};return h.addEventListener("click",se),v.disposers.push(()=>h.removeEventListener("click",se)),z(le,o.loading===!0),h}F("button",{kind:"button",action:!0,build(x,v){return T(v.doc),w(x,v)},read(x){const v=x&&x.__latButton;return v&&v.toggle?v.pressed:null},write(){},state(x,v){const f=x.__latButton;f&&(f.disabled=v.disabled===!0,m(f))},setLoading(x,v){const f=x.__latButton;f&&z(f,v)}})}),Me("packages/modules/form/ready.js",function(A,J){"use strict";Object.defineProperty(A,"createReadySignal",{enumerable:!0,get:function(){return _e}});function _e(){let F=!1,L,e;const P=new Promise((D,I)=>{L=D,e=I});return P.catch(()=>{}),{promise:P,settleSoon(){F||queueMicrotask(()=>{F||(F=!0,L())})},fail(D){F||(F=!0,e(D))}}}}),Me("packages/core/src/internal/predicates.js",function(A,J){"use strict";Object.defineProperty(A,"isObject",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"isFunction",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"isNil",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"isBlank",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"isCtor",{enumerable:!0,get:function(){return P}});function _e(D){return D!==null&&typeof D=="object"&&!Array.isArray(D)}function F(D){return typeof D=="function"}function L(D){return D==null}function e(D){return D==null||D===""}function P(D){return typeof D!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(D))?!0:!!(D.prototype&&Object.getOwnPropertyNames(D.prototype).length>1)}}),Me("packages/core/src/registry/free-tier-notice.js",function(A,J){"use strict";Object.defineProperty(A,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"WATERMARK_TEXT",{enumerable:!0,get:function(){return F}});const _e="Free for non-commercial use: latticegrid.dev/free",F="Unlicensed: Lattice Grid trial"}),Me("packages/core/src/internal/warn.js",function(A,J){"use strict";Object.defineProperty(A,"reportedWarnings",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"warnOnce",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"infoOnce",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"resetWarnings",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"fail",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"invariant",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"DEV",{enumerable:!0,get:function(){return k}});const _e=new Set,F=2e3;function L(d){if(_e.add(d),_e.size>F){const c=_e.values().next().value;c!==void 0&&_e.delete(c)}}const e=[],P=500;function D(d,c,t){e.push({key:d,level:c,message:t.map(s=>typeof s=="string"?s:I(s)).join(" "),at:Date.now()}),e.length>P&&e.shift()}function I(d){if(d instanceof Error)return d.message;try{return JSON.stringify(d)}catch{return String(d)}}function M(){return e.map(d=>({...d}))}function W(d){if(d.length===0||typeof d[0]!="string")return d;const c=d[0].replace(/^\[lattice\]\s*/,"");return c===d[0]?d:[c,...d.slice(1)]}function E(d,...c){if(_e.has(d))return;L(d);const t=W(c);D(d,"warn",t),console.warn("[lattice]",...t)}function T(d,...c){if(_e.has(d))return;L(d);const t=W(c);D(d,"info",t),console.info("[lattice]",...t)}function i(){_e.clear(),e.length=0}function p(d,c){const t=new Error(`[lattice] ${d}`);throw c!==void 0&&(t.cause=c),t}function S(d,c){d||p(c)}const k=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Me("packages/core/src/registry/licence.js",function(A,J){"use strict";Object.defineProperty(A,"PRODUCT",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"LICENCE_VERSION",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"PUBLIC_KEY",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"fromBase64Url",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"toBase64Url",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"asciiBytes",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"parseLicence",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"hasEd25519",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"verifyLicence",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"isLocalHost",{enumerable:!0,get:function(){return w}}),Object.defineProperty(A,"currentHost",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"matchesDomain",{enumerable:!0,get:function(){return v}}),Object.defineProperty(A,"LicenceHolder",{enumerable:!0,get:function(){return o}}),Object.defineProperty(A,"setLicence",{enumerable:!0,get:function(){return h}}),Object.defineProperty(A,"licenceInfo",{enumerable:!0,get:function(){return $}}),Object.defineProperty(A,"watermark",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(A,"licenceState",{enumerable:!0,get:function(){return O}}),Object.defineProperty(A,"sharedLicence",{enumerable:!0,get:function(){return ae}});const F=J("packages/core/src/internal/warn.js").warnOnce,L=J("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE;Object.defineProperty(A,"FREE_TIER_NOTICE",{enumerable:!0,get:function(){return L.FREE_TIER_NOTICE}});const P="lattice-grid",D=1,I="LG1",M=64,W="GwmaCOkGedHulqsa-DOV1TU8On1rsalWv519c_dW4j4",E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",T=(()=>{const le=new Int16Array(128).fill(-1);for(let se=0;se<E.length;se++)le[E.charCodeAt(se)]=se;return le[43]=62,le[47]=63,le})();function i(le){if(typeof le!="string")return null;let se="";for(let H=0;H<le.length;H++){const ne=le.charCodeAt(H);if(ne!==61){if(ne>127||T[ne]<0)return null;se+=le[H]}}const Z=se.length;if(Z%4===1)return null;const Q=new Uint8Array(Math.floor(Z*3/4));let Pe=0,ie=0,j=0;for(let H=0;H<Z;H++)Pe=Pe<<6|T[se.charCodeAt(H)],ie+=6,ie>=8&&(ie-=8,Q[j++]=Pe>>ie&255);return j===Q.length?Q:Q.subarray(0,j)}function p(le){let se="",Z=0;for(;Z+2<le.length;Z+=3){const Pe=le[Z]<<16|le[Z+1]<<8|le[Z+2];se+=E[Pe>>18&63]+E[Pe>>12&63]+E[Pe>>6&63]+E[Pe&63]}const Q=le.length-Z;if(Q===1){const Pe=le[Z]<<16;se+=E[Pe>>18&63]+E[Pe>>12&63]}else if(Q===2){const Pe=le[Z]<<16|le[Z+1]<<8;se+=E[Pe>>18&63]+E[Pe>>12&63]+E[Pe>>6&63]}return se}function S(le){const se=new Uint8Array(le.length);for(let Z=0;Z<le.length;Z++)se[Z]=le.charCodeAt(Z)&127;return se}function k(le){if(typeof TextDecoder=="function")return new TextDecoder().decode(le);let se="";for(let Z=0;Z<le.length;Z++)se+=String.fromCharCode(le[Z]);return se}function d(le){const se={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{...se,reason:"missing"};const Z=le.trim(),Q=Z.split(".");if(Q.length!==3)return se;const[Pe,ie,j]=Q;if(Pe!==I)return{...se,reason:"prefix"};const H=i(ie),ne=i(j);if(!H||!ne)return se;let q;try{q=JSON.parse(k(H))}catch{return se}return q===null||typeof q!="object"?se:{ok:!0,reason:null,product:typeof q.p=="string"?q.p:null,issuedTo:typeof q.t=="string"?q.t:null,expires:typeof q.e=="string"?q.e:null,terms:typeof q.terms=="string"?q.terms:null,features:Array.isArray(q.f)?q.f.slice():[],deployments:Array.isArray(q.d)?q.d.slice():[],version:typeof q.v=="number"?q.v:0,message:S(ie),signature:ne,raw:Z}}function c(le,se){if(!le)return!1;const Z=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(le)?`${le}T23:59:59.999Z`:le);return Number.isNaN(Z)?!0:se>Z}function t(le){return le==="non-commercial"?"non-commercial":"commercial"}let s=null,u=null,r=null;function m(){const le=globalThis.crypto;return le&&le.subtle?le.subtle:null}async function z(le){if(s&&u===le)return s;const se=m();if(!se)return null;const Z=i(le);if(!Z)return null;try{const Q=await se.importKey("raw",Z,{name:"Ed25519"},!1,["verify"]);return s=Q,u=le,Q}catch{return null}}async function l(){return r!==null||(r=await z(W)!==null),r}async function g(le,se={}){const Z=se.warn!==!1,Q=se.product||P,Pe=se.publicKey||W,ie=se.now??Date.now(),j=se.host??x(),H=w(j)?"":` ${e}`,ne=d(le);if(!ne.ok){const K=ne.reason==="missing"?"missing":"malformed";return Z&&F(`licence.${K}`,K==="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.${H}`:`licence key could not be read. The grid will render with a watermark.${H}`),{valid:!1,reason:K,terms:"commercial"}}const q={product:ne.product||void 0,issuedTo:ne.issuedTo||void 0,expires:ne.expires||void 0,terms:t(ne.terms)};if(ne.product!==Q)return Z&&F("licence.product",`licence key is for '${ne.product}', not '${Q}'. The grid will render with a watermark.`),{valid:!1,...q,reason:"product"};if(c(ne.expires,ie))return Z&&F("licence.expired",`licence expired on ${ne.expires}. The grid will render with a watermark. Renew at latticegrid.dev.`),{valid:!1,...q,reason:"expired"};const ke=ne.deployments||[];if(ke.length&&j&&!w(j)&&!v(j,ke))return Z&&F("licence.domain",`licence key is not valid for ${j}; it covers ${ke.join(", ")}. The grid will render with a watermark.`),{valid:!1,...q,reason:"domain"};const Ee=await z(Pe);if(!Ee){const K=!!ne.signature&&ne.signature.length===M;return Z&&F("licence.algorithm","this host does not provide crypto.subtle Ed25519, so the licence signature could not be verified. A structural check was used instead."),K?{valid:!0,...q,reason:"unverified"}:{valid:!1,...q,reason:"signature"}}let C=!1;try{C=await m().verify({name:"Ed25519"},Ee,ne.signature,ne.message)}catch{C=!1}return C?{valid:!0,...q}:(Z&&F("licence.signature","licence signature is not valid. The grid will render with a watermark."),{valid:!1,...q,reason:"signature"})}function w(le){const se=String(le??x()??"").trim().toLowerCase().replace(/^\[/,"").replace(/\]$/,"");return!se||se==="localhost"||se.endsWith(".localhost")||se==="::1"||se==="0:0:0:0:0:0:0:1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(se)}function x(){const le=globalThis.location;return le&&typeof le.hostname=="string"?le.hostname:null}function v(le,se){const Z=f(le);return!Z||!Array.isArray(se)?!1:se.some(Q=>{const Pe=f(Q);if(!Pe)return!1;if(Pe==="*")return!0;if(Pe.startsWith("*.")){const ie=Pe.slice(2);return Z===ie||Z.endsWith(`.${ie}`)}return Z===Pe})}function f(le){return String(le??"").trim().toLowerCase().replace(/\.$/,"")}class o{#e="";#t={valid:!1,reason:"missing",terms:"commercial"};#n=null;#r=null;#i;#o=new Set;constructor(se={}){this.#i=se}set(se){this.#e=typeof se=="string"?se.trim():"";const Z=d(this.#e);return this.#t=Z.ok?{valid:!c(Z.expires,Date.now())&&Z.product===(this.#i.product||P),product:Z.product||void 0,issuedTo:Z.issuedTo||void 0,expires:Z.expires||void 0,terms:t(Z.terms),reason:"pending"}:{valid:!1,reason:Z.reason||"malformed",terms:"commercial"},this.#n=null,this.#e&&this.verify(),this.#t}verify(){if(this.#n)return this.#n;const se=this.#e;return this.#n=g(se,this.#i).then(Z=>{if(this.#e===se){this.#t=Z;for(const Q of this.#o)Q(Z)}return Z}),this.#n}onSettled(se){return this.#o.add(se),()=>this.#o.delete(se)}info(){return{...this.#t}}watermark(){return this.#t.valid?!1:!w(this.#r)}setHost(se){this.#r=se}state(){return this.#t.valid?"licensed":w(this.#r)?"localhost":"trial"}reset(){this.#e="",this.#t={valid:!1,reason:"missing",terms:"commercial"},this.#n=null,this.#o.clear()}}const _=Symbol.for("lattice-grid/licence/holder");function b(){const le=globalThis,se=le&&le[_];if(se&&typeof se.set=="function"&&typeof se.watermark=="function")return se;const Z=new o;if(le)try{le[_]=Z}catch{}return Z}const y=b();function h(le){return y.set(le)}function $(){return y.info()}function ee(){return y.watermark()}function O(){return y.state()}function ae(){return y}}),Me("packages/dom/src/watermark.js",function(A,J){"use strict";Object.defineProperty(A,"WATERMARK_CLASS",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"WATERMARK_LAYER_CLASS",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"Watermark",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"viewLicenceHost",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"mountViewWatermark",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return l}});const F=J("packages/core/src/internal/predicates.js").isFunction,L=J("packages/core/src/registry/free-tier-notice.js"),e=L.FREE_TIER_NOTICE,P=L.WATERMARK_TEXT,D=J("packages/core/src/registry/licence.js"),I=D.watermark,M=D.setLicence,W=Object.freeze({t:g=>g==="licence.watermark.free"?e:P});function E(g,w,x={}){const v=g.createElement(w);if(x.class)for(const f of x.class.split(/\s+/))f&&v.classList.add(f);if(x.text!==void 0&&(v.textContent=x.text),x.attrs)for(const[f,o]of Object.entries(x.attrs))v.setAttribute(f,o);if(x.children)for(const f of x.children)v.appendChild(f);return v}function T(g,w,x){return g.addEventListener(w,x),()=>g.removeEventListener(w,x)}const i="lat-watermark",p="https://www.latticegrid.dev",S=["br","bl","tl","tr"],k=4e3,d=Symbol.for("lattice-grid/licence/holder"),c="data-lat-watermark-owner",t="lat-watermark-layer",s="lat-watermark-style",u=`
|
|
1927
1927
|
.${t}{position:absolute;inset:0;pointer-events:none;z-index:2147483000;overflow:hidden}
|
|
1928
1928
|
.${t} .${i}{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}
|
|
1929
1929
|
.${t} .${i}--br{inset-inline-end:0;bottom:0}
|
|
@@ -1933,7 +1933,7 @@ ${v}
|
|
|
1933
1933
|
.${t} .${i}__link{color:inherit;pointer-events:auto;text-decoration:underline;text-underline-offset:2px}
|
|
1934
1934
|
.${t} .${i}__free{display:block;margin-top:2px;font-size:12px;font-weight:500;letter-spacing:0;opacity:.92}
|
|
1935
1935
|
@media print{.${t} .${i}{opacity:1}}
|
|
1936
|
-
`;class r{#e;#t;#n;#r=null;#i=[];#o;#u=0;#l=null;#a=null;#d=!1;constructor(w){this.#a=w.owner||null,this.#a&&F(this.#a.setAttribute)&&this.#a.setAttribute(c,""),this.#e=w.grid,this.#t=w.document,this.#n=w.element,this.#o=w.window||(typeof globalThis>"u"?{}:globalThis)}mount(){this.refresh(),F(this.#e.on)&&this.#i.push(this.#e.on("licence:changed",()=>this.refresh()));const w=this.#e.licence&&this.#e.licence.ready;w&&F(w.then)&&w.then(()=>this.refresh(),()=>this.refresh())}refresh(){const w=this.#m()&&!this.#f();w&&!this.#r?(this.#b(),this.#p()):!w&&this.#r&&(this.#s(),this.#c())}#f(){const w=this.#n;let x=w&&w.parentNode;for(this.#a&&x===this.#a&&(x=x.parentNode);x&&x.nodeType===1;){if(F(x.hasAttribute)&&x.hasAttribute(c))return!0;x=x.parentNode}return!1}#g(){const w=this.#o;if(!w||!F(w.matchMedia))return!1;try{return!!w.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}#p(){this.#c(),F(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)%S.length,this.#s(),this.#b(),this.#p()},k)))}#c(){this.#l!==null&&F(this.#o.clearTimeout)&&this.#o.clearTimeout(this.#l),this.#l=null}#m(){const w=this.#e.licence;return!!(w&&F(w.watermark)&&w.watermark())}#b(){const w=this.#e.messages&&F(this.#e.messages.t)?this.#e.messages:W,x=E(this.#t,"a",{class:`${i}__link`,text:w.t("licence.watermark"),attrs:{href:p,target:"_blank",rel:"noopener noreferrer"}}),v=E(this.#t,"span",{class:`${i}__free`,text:w.t("licence.watermark.free")});this.#r=E(this.#t,"div",{class:`${i} ${i}--${S[this.#u]}`,attrs:{role:"note",title:"This grid is unlicensed for this domain. Visit latticegrid.dev for a licence."},children:[x,v]}),this.#i.push(T(this.#r,"pointerdown",f=>{F(f.stopPropagation)&&f.stopPropagation()})),this.#n&&F(this.#n.appendChild)&&this.#n.appendChild(this.#r),typeof queueMicrotask=="function"&&!this.#d&&(this.#d=!0,queueMicrotask(()=>{this.#d=!1,this.#r&&this.#f()&&(this.#s(),this.#c())}))}#s(){this.#r&&F(this.#r.remove)&&this.#r.remove(),this.#r=null}destroy(){this.#c(),this.#a&&F(this.#a.removeAttribute)&&this.#a.removeAttribute(c);for(const w of this.#i)w();this.#i=[],this.#s()}}function m(g={},w=void 0){const x=globalThis[d],v=!g.licence&&w&&F(w.querySelector)?w.querySelector('meta[name="lattice-license"]')?.getAttribute("content"):null,f=g.licence||v;return f&&M(f),{licence:{watermark:()=>I(),get ready(){return x?x.verify():Promise.resolve()}},on:(o,_)=>o==="licence:changed"&&x?x.onSettled(()=>_()):()=>{}}}function z(g,w={}){const x=g&&g.ownerDocument;if(!x||!F(x.createElement))return{destroy(){},refresh(){}};const v=x.defaultView||void 0,f=m(w,x);let o=null,_=null,b=null,y=!1;const h=()=>{if(!x.getElementById(s)&&x.head){const O=x.createElement("style");O.id=s,O.textContent=u,x.head.appendChild(O)}v&&F(v.getComputedStyle)&&v.getComputedStyle(g).position==="static"&&(g.style.position="relative"),o=x.createElement("div"),o.className=t,g.appendChild(o),_=new r({grid:f,document:x,element:o,window:v,owner:g}),_.mount(),v&&F(v.MutationObserver)&&(b=new v.MutationObserver(()=>{!y&&o&&o.parentNode!==g&&g.appendChild(o)}),b.observe(g,{childList:!0}))},$=()=>{y||(_?_.refresh():f.licence.watermark()&&h())};$();const ee=f.on("licence:changed",$);return f.licence.ready,{refresh:$,destroy(){y||(y=!0,ee(),b&&b.disconnect(),_&&_.destroy(),o&&o.parentNode&&o.parentNode.removeChild(o))}}}const l=r}),De("packages/modules/form/controls/input.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/dom/src/autofill.js"),e=L.applyAutocomplete,P=L.ensureOpaqueName,D=J("packages/dom/src/input-mask.js"),I=D.attachInputMask,M=D.formatInputMask,W=D.inputMaskPlaceholder,E=Object.freeze(["text","email","password","url"]),T=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"}),i=Object.freeze({viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"});function p(u){return E.includes(u)?u:"text"}function S(u){return!(u.props&&u.props.reveal===!1)}function k(u){const r=u.props&&u.props.mask;return typeof r=="string"&&r!==""?r:null}function d(u,r,m){const z=k(r);if(!z)return;const l=I(u,z,{description:m.t("form.mask.format",{pattern:W(z)})});u.__latMask=l}function c(u,r){const m=r?i:T,z=u.createElementNS("http://www.w3.org/2000/svg","svg");z.setAttribute("viewBox",m.viewBox),z.setAttribute("focusable","false"),z.setAttribute("aria-hidden","true"),m.paint==="stroke"?(z.setAttribute("fill","none"),z.setAttribute("stroke","currentColor"),z.setAttribute("stroke-width","1.5"),z.setAttribute("stroke-linecap","round"),z.setAttribute("stroke-linejoin","round")):z.setAttribute("fill","currentColor");for(const l of m.paths){const g=u.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("d",l),z.appendChild(g)}return z}function t(u){return u.__latPassword?u.__latPassword.input:u}function s(u,r,m){const z=r&&r.defaultView,l=z&&z.Event,g=l?new l(m,{bubbles:!0}):{type:m,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(g)}F("input",{kind:"field",build(u,r){const m=r.doc,z=p(u.subtype);if(z!=="password"||!S(u)){const _=m.createElement("input");return _.type=z,u.name?_.name=u.name:P(_),e(_,u.autocomplete,z==="password"?"new-password":null),u.placeholder!=null&&(_.placeholder=String(u.placeholder)),_.value=u.value==null?"":String(u.value),d(_,u,r),_}const l=m.createElement("div");l.className="lat-form__password";const g=m.createElement("input");g.type="password",u.name?g.name=u.name:P(g),e(g,u.autocomplete,"new-password"),u.placeholder!=null&&(g.placeholder=String(u.placeholder)),g.value=u.value==null?"":String(u.value),d(g,u,r),l.appendChild(g);const w=m.createElement("button");w.type="button",w.className="lat-form__password-btn",w.setAttribute("aria-pressed","false");const x=r.t("form.password.show");w.setAttribute("aria-label",x),w.title=x,w.appendChild(c(m,!1)),l.appendChild(w);const v={revealed:!1,disabled:!1,input:g,btn:w};l.__latPassword=v;const f=_=>{v.revealed=_===!0,g.type=v.revealed?"text":"password",w.setAttribute("aria-pressed",v.revealed?"true":"false");const b=r.t(v.revealed?"form.password.hide":"form.password.show");w.setAttribute("aria-label",b),w.title=b,w.replaceChild(c(m,v.revealed),w.firstChild)};v.setRevealed=f,w.addEventListener("click",()=>{v.disabled||f(!v.revealed)});let o=!1;return l.addEventListener("focusin",()=>{o||(o=!0,s(l,m,"focus"))}),l.addEventListener("focusout",_=>{l.contains(_.relatedTarget)||(o=!1,f(!1),s(l,m,"blur"))}),l},read(u){return t(u).value},write(u,r){const m=t(u),z=m.__latMask,l=r==null?"":String(r);m.value=z?M(z.pattern,l):l},state(u,r){const m=t(u);m.disabled=r.disabled===!0,m.readOnly=r.readOnly===!0;const z=u.__latPassword;z&&(z.disabled=r.disabled===!0,z.btn&&(z.btn.disabled=z.disabled))},reset(u){const r=u.__latPassword;r&&typeof r.setRevealed=="function"&&r.setRevealed(!1)}})}),De("packages/core/src/format/mask.js",function(A,J){"use strict";Object.defineProperty(A,"splitSections",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"parseSection",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"compileMask",{enumerable:!0,get:function(){return D}});const _e=new Set(["0","#","?",",","."]),F="\0";function L(M){const W=[];let E="",T=!1;for(let i=0;i<M.length;i++){const p=M[i];if(p==="\\"){E+=p+(M[i+1]??""),i+=1;continue}if(p==='"'){T=!T,E+=p;continue}if(p===";"&&!T){W.push(E),E="";continue}E+=p}return W.push(E),W}function e(M){let W="",E="",T="",i=1,p=!1,S=!1;const k=l=>{S?E+=l:W+=l};for(let l=0;l<M.length;l++){const g=M[l];if(g==="\\"){k(M[l+1]??""),l+=1;continue}if(g==='"'){const w=M.indexOf('"',l+1);k(w===-1?M.slice(l+1):M.slice(l+1,w)),l=w===-1?M.length:w;continue}if(g==="%"){i*=100,k("%");continue}if(g==="@"){p=!0,k("\0");continue}if(_e.has(g)){T+=g,S=!0;continue}k(g)}let d=-1;for(let l=T.length-1;l>=0;l--){const g=T[l];if(g==="0"||g==="#"||g==="?"){d=l;break}}let c=!1,t="";for(let l=0;l<T.length;l++){const g=T[l];if(g===","){l>d?i/=1e3:c=!0;continue}t+=g}const s=t.indexOf("."),u=s===-1?t:t.slice(0,s),r=s===-1?"":t.slice(s+1);let m=0;for(const l of u)l==="0"&&(m+=1);let z=0;for(const l of r)l==="0"&&(z+=1);return{prefix:W,suffix:E,minInt:m,minDec:z,maxDec:r.length,grouping:c,scale:i,hasNumber:d!==-1,isText:p}}function P(M,W){const E=new Intl.NumberFormat(W,{minimumIntegerDigits:Math.max(M.minInt,1),minimumFractionDigits:M.minDec,maximumFractionDigits:Math.max(M.maxDec,M.minDec),useGrouping:M.grouping}),{prefix:T,suffix:i,scale:p,hasNumber:S}=M;return k=>{if(!S)return T+i;const d=p===1?k:k*p;return T+E.format(d)+i}}function D(M,W){const T=L(String(M)).map(e),i=T.map(t=>P(t,W)),p=0,S=T.length>1?1:-1,k=T.length>2?2:-1,d=T.length>3?3:-1,c=t=>{if(t==null||t==="")return"";if(typeof t!="number"||Number.isNaN(t)){const s=Number(t);if(Number.isNaN(s))return d===-1?String(t):(T[d].prefix+T[d].suffix).split("\0").join(String(t));t=s}return t===0&&k!==-1?i[k](0):t<0&&S!==-1?i[S](-t):i[p](t)};return c.spec={mask:M},{format:c,ooxml:I(String(M))}}function I(M){return M.trim()}}),De("packages/core/src/format/pattern.js",function(A,J){"use strict";Object.defineProperty(A,"parseNumberPattern",{enumerable:!0,get:function(){return P}});const F=J("packages/core/src/format/mask.js").splitSections;function L(D){let I="",M="",W="",E="",T=!1,i=!1,p=!1,S=!1;const k=c=>{p?M+=c:I+=c};for(let c=0;c<D.length;c++){const t=D[c];if(t==="\\"){k(D[c+1]??""),c+=1;continue}if(t==='"'){const s=D.indexOf('"',c+1);k(s===-1?D.slice(c+1):D.slice(c+1,s)),c=s===-1?D.length:s;continue}if(t==="%"){i=!0;continue}if(t==="0"||t==="#"){p=!0,S?E+=t:W+=t;continue}if(t===","){S||(T=!0);continue}if(t==="."&&!S){S=!0;continue}k(t)}if(!p)return{hasDigit:!1,prefix:I,suffix:M,minDec:0,maxDec:0,grouping:!1,percent:i};let d=0;for(const c of E)c==="0"&&(d+=1);return{hasDigit:!0,prefix:I,suffix:M,minDec:d,maxDec:E.length,grouping:T,percent:i}}function e(D,I){const M=I.trim(),W=D.trim();return M.startsWith("(")&&M.endsWith(")")&&M.slice(1,-1).trim()===W?"parentheses":M.endsWith("-")?"suffix":"minus"}function P(D){if(typeof D!="string")return null;const I=F(D);if(I.length===0)return null;const M=L(I[0]);if(!M.hasDigit)return null;const W={style:M.percent?"percent":"decimal",prefix:M.prefix,suffix:M.suffix,minDecimals:M.minDec,maxDecimals:Math.max(M.maxDec,M.minDec),thousandsSeparator:M.grouping?void 0:!1};if(I.length>1&&(W.negative=e(I[0],I[1])),I.length>2){const E=L(I[2]);E.hasDigit||(W.zeroDisplay=E.prefix+E.suffix)}return W}}),De("packages/core/src/format/number.js",function(A,J){"use strict";Object.defineProperty(A,"compileNumber",{enumerable:!0,get:function(){return I}});const F=J("packages/core/src/internal/predicates.js").isNil,e=J("packages/core/src/internal/warn.js").warnOnce,D=J("packages/core/src/format/pattern.js").parseNumberPattern;function I(M,W){const E=typeof M=="string"?{pattern:M}:M||{};let T=E;if(typeof E.pattern=="string"){const b=D(E.pattern);if(b){const{pattern:y,...h}=E;T={...b,...h}}else e(`format:pattern:${E.pattern}`,`invalid number format pattern "${E.pattern}"; the value will use the default number format`)}const i=T.locale||W||void 0,p=T.style||"decimal",S=typeof T.scale=="number"?T.scale:1,k=T.nullDisplay??"",d=T.zeroDisplay,c=T.prefix||"",t=T.suffix||"",s=T.negative||"minus",u=T.signed===!0,r={style:p,notation:T.notation||"standard"};p==="currency"&&(r.currency=T.currency||"USD",T.currencyDisplay&&(r.currencyDisplay=T.currencyDisplay)),typeof T.decimals=="number"?(r.minimumFractionDigits=T.decimals,r.maximumFractionDigits=T.decimals):(typeof T.minDecimals=="number"&&(r.minimumFractionDigits=T.minDecimals),typeof T.maxDecimals=="number"&&(r.maximumFractionDigits=T.maxDecimals),r.minimumFractionDigits>(r.maximumFractionDigits??20)&&(r.maximumFractionDigits=r.minimumFractionDigits)),T.thousandsSeparator===!1&&(r.useGrouping=!1),r.notation==="compact"&&(r.compactDisplay=T.compactDisplay||"short");const m=new Intl.NumberFormat(i,r),z=typeof T.thousandsSeparator=="string"?T.thousandsSeparator:null,l=typeof T.decimalSeparator=="string"?T.decimalSeparator:null;let g=",",w=".";if(z||l)for(const b of m.formatToParts(12345.6))b.type==="group"?g=b.value:b.type==="decimal"&&(w=b.value);const x=b=>{let y=b;return z&&(y=y.split(g).join("")),l&&(y=y.split(w).join("")),z&&(y=y.split("").join(z)),l&&(y=y.split("").join(l)),y},v=!!(z||l),f=c!==""&&p==="currency",o=b=>{let y;if(f){const h=m.formatToParts(b);let $=!1;y="";for(const ee of h)y+=ee.value,!$&&ee.type==="currency"&&(y+=c,$=!0);$||(y=c+y)}else y=c+m.format(b);return v&&(y=x(y)),y+t},_=b=>{if(F(b)||b==="")return k;const y=typeof b=="number"?b:Number(b);if(Number.isNaN(y))return k;const h=S===1?y:y*S;return h===0&&d!==void 0?d:h<0?s==="parentheses"?`(${o(-h)})`:s==="suffix"?`${o(-h)}-`:o(h):u&&h>0?`+${o(h)}`:o(h)};return _.negativeClass=T.negativeClass||null,_.spec=T,_}}),De("packages/core/src/columns/types/unit.js",function(A,J){"use strict";Object.defineProperty(A,"defineUnit",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"registerUnitSystem",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"unitSystemNames",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"unitsOf",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"findUnit",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"localeSeparators",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"parseUnit",{enumerable:!0,get:function(){return _}}),Object.defineProperty(A,"formatUnit",{enumerable:!0,get:function(){return se}}),Object.defineProperty(A,"createUnitType",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return Pe}});const F=J("packages/core/src/internal/predicates.js").isNil,e=J("packages/core/src/internal/warn.js").warnOnce;function P(ie,j,H,ne){return Object.freeze({symbol:ie,factor:j,aliases:Object.freeze(H||[]),binary:!!(ne&&ne.binary),prefix:ne&&ne.prefix||null,auto:!(ne&&ne.auto===!1)})}function D(ie,j,H,ne){return P(ie,j,H,ne)}const I=Object.freeze({data:Object.freeze([P("B",1,["byte","bytes"]),P("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),P("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),P("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),P("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),P("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),P("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),P("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),P("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),P("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([P("bps",1,["bit","bits","bit/s","b/s"]),P("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),P("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),P("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),P("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([P("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),P("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),P("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),P("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),P("in",.0254,["inch","inches"],{auto:!1}),P("ft",.3048,["foot","feet"],{auto:!1}),P("yd",.9144,["yard","yards"],{auto:!1}),P("m",1,["metre","metres","meter","meters"]),P("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),P("mi",1609.344,["mile","miles"],{auto:!1}),P("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([P("mg",.001,["milligram","milligrams"]),P("g",1,["gram","grams"]),P("oz",28.349523125,["ounce","ounces"],{auto:!1}),P("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),P("kg",1e3,["kilogram","kilograms"]),P("st",6350.29318,["stone"],{auto:!1}),P("t",1e6,["tonne","tonnes","ton"],{auto:!1}),P("ton (US)",907184.74,["ton","shortton"],{auto:!1}),P("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([P("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),P("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),P("ms",.001,["msec","msecs","millisecond","milliseconds"]),P("s",1,["sec","secs","second","seconds"]),P("m",60,["min","mins","minute","minutes"]),P("h",3600,["hr","hrs","hour","hours"]),P("d",86400,["day","days"])]),speed:Object.freeze([P("mm/s",.001,["millimetre/s","millimeter/s"]),P("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),P("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),P("mph",.44704,["mile/h","miles/h"],{auto:!1}),P("kn",1852/3600,["knot","knots"],{auto:!1}),P("m/s",1,["metre/s","meter/s","mps"]),P("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([P("mm/s²",.001,["mm/s2"]),P("ft/s²",.3048,["ft/s2"],{auto:!1}),P("m/s²",1,["m/s2","metre/s2","meter/s2"]),P("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([P("mm²",1e-6,["mm2"]),P("cm²",1e-4,["cm2"]),P("in²",64516e-8,["in2","sqin"],{auto:!1}),P("ft²",.09290304,["ft2","sqft"],{auto:!1}),P("yd²",.83612736,["yd2","sqyd"],{auto:!1}),P("m²",1,["m2","sqm"]),P("ha",1e4,["hectare","hectares"],{auto:!1}),P("ac",4046.8564224,["acre","acres"],{auto:!1}),P("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([P("µL",1e-6,["ul","microlitre","microliter"]),P("mL",.001,["millilitre","milliliter"]),P("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),P("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),P("L",1,["litre","litres","liter","liters"]),P("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),P("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),P("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),P("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([P("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),P("J",1,["joule","joules"]),P("cal",4.184,["calorie","calories"],{auto:!1}),P("kJ",1e3,["kilojoule","kilojoules"]),P("BTU",1055.05585262,["btu"],{auto:!1}),P("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),P("MJ",1e6,["megajoule","megajoules"]),P("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),P("GJ",1e9,["gigajoule","gigajoules"]),P("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([P("mW",.001,["milliwatt","milliwatts"]),P("W",1,["watt","watts"]),P("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),P("kW",1e3,["kilowatt","kilowatts"]),P("hp",745.6998715822702,["horsepower"],{auto:!1}),P("MW",1e6,["megawatt","megawatts"]),P("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([P("mN",.001,["millinewton","millinewtons"]),P("N",1,["newton","newtons"]),P("lbf",4.4482216152605,["poundforce"],{auto:!1}),P("kgf",9.80665,["kilogramforce"],{auto:!1}),P("kN",1e3,["kilonewton","kilonewtons"]),P("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([P("Pa",1,["pascal","pascals"]),P("mbar",100,["millibar"],{auto:!1}),P("inH₂O",249.0889,["inh2o"],{auto:!1}),P("mmHg",133.322387415,["torr"],{auto:!1}),P("kPa",1e3,["kilopascal","kilopascals"]),P("inHg",3386.388640341,["inhg"],{auto:!1}),P("psi",6894.757293168361,["lbf/in2"],{auto:!1}),P("bar",1e5,[],{auto:!1}),P("atm",101325,["atmosphere","atmospheres"],{auto:!1}),P("MPa",1e6,["megapascal","megapascals"]),P("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([P("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),P("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),P("kN·m",1e3,["knm","kn.m"],{auto:!1}),P("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([P("kg/m³",1,["kg/m3"]),P("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),P("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),P("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([P("L/min",1/6e4,["lpm","l/min"],{auto:!1}),P("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),P("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),P("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),P("cfm",.0004719474432,["ft3/min"],{auto:!1}),P("L/s",.001,["lps","l/s"],{auto:!1}),P("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([P("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),P("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),P("mrad",.001,["milliradian","milliradians"],{auto:!1}),P("mil",Math.PI/3200,["nato-mil"],{auto:!1}),P("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),P("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),P("rad",1,["radian","radians"]),P("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([P("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),P("rad/s",1,["radps","radians/s"]),P("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),P("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([P("ppt",1e-12,["partspertrillion"],{auto:!1}),P("ppb",1e-9,["partsperbillion"]),P("ppm",1e-6,["partspermillion"]),P("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),P("‰",.001,["permille","permil"],{auto:!1}),P("%",.01,["pct","percent"]),P("×",1,["x","ratio","times"])]),molarity:Object.freeze([P("pM",1e-12,["picomolar","picomolarity"]),P("nM",1e-9,["nanomolar","nanomolarity"]),P("µM",1e-6,["um-molar","micromolar","micromolarity"]),P("mM",.001,["millimolar","millimolarity"]),P("M",1,["molar","mol/l","mol/L","molarity"]),P("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([P("mg/s",1e-6,["milligrams/s"]),P("g/s",.001,["grams/s"]),P("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),P("kg/s",1,["kilograms/s","kgps"]),P("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),P("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),P("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([P("µPa·s",1e-6,["upas","micropascalsecond"]),P("cP",.001,["centipoise"],{auto:!1}),P("mPa·s",.001,["mpas","millipascalsecond"]),P("P",.1,["poise"],{auto:!1}),P("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([P("cSt",1e-6,["centistokes","centistoke"]),P("mm²/s",1e-6,["mm2/s"],{auto:!1}),P("St",1e-4,["stokes","stoke"],{auto:!1}),P("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([P("mW/(m·K)",.001,["mw/mk"]),P("W/(m·K)",1,["w/mk","wmk"]),P("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),P("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([P("J/(kg·K)",1,["j/kgk","jkgk"]),P("kJ/(kg·K)",1e3,["kj/kgk"]),P("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([P("nSv/h",1e-9,["nsvh"]),P("µSv/h",1e-6,["usv/h","usvh"]),P("mSv/h",.001,["msvh"]),P("Sv/h",1,["svh"]),P("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),M=Symbol("ambiguous"),W=new Map,E=new Map;function T(ie,j){const H=String(ie||"").trim();if(!H)throw new Error("[lattice] a unit system needs a name");if(I[H]||E.has(H))throw new Error(`[lattice] unit system "${H}" already exists`);const ne=[...j||[]];if(!ne.length)throw new Error(`[lattice] unit system "${H}" has no units`);if(!ne.some(we=>we.factor===1))throw new Error(`[lattice] unit system "${H}" has no base unit (none with factor 1)`);const q=new Set;for(const we of ne){if(q.has(we.symbol))throw new Error(`[lattice] unit system "${H}" declares "${we.symbol}" twice`);q.add(we.symbol)}return E.set(H,Object.freeze(ne)),W.delete(H),H}function i(){return[...Object.keys(I),...E.keys()]}function p(ie){const j=S(ie);return j?j.units:[]}function S(ie){const j=String(ie||""),H=W.get(j);if(H!==void 0)return H;const ne=I[j]||E.get(j);if(!ne)return W.set(j,null),null;const q=Object.freeze([...ne].sort((G,B)=>G.factor-B.factor)),we=new Map,$e=new Map,C=(G,B)=>{const te=we.get(G);te===void 0?we.set(G,B):te!==B&&we.set(G,M)};for(const G of q){C(G.symbol.toLowerCase(),G);for(const B of G.aliases)C(B.toLowerCase(),G);if(G.prefix){const B=$e.get(G.prefix)||[];B.push(G),$e.set(G.prefix,B)}}const K={units:q,byToken:we,byPrefix:$e,decimal:q.filter(G=>!G.binary&&G.auto),binary:q.some(G=>G.binary)?q.filter(G=>(G.binary||G.factor===1)&&G.auto):null};return W.set(j,K),K}function k(ie,j){return j&&ie.binary||ie.decimal}function d(ie,j){const H=S(ie);if(!H||F(j))return null;const ne=H.units.find(we=>we.symbol===String(j));if(ne)return ne;const q=H.byToken.get(String(j).trim().toLowerCase());return q&&q!==M?q:null}const c=new WeakMap;function t(ie){const j=ie||{};if(typeof j=="object"&&j!==null){const we=c.get(j);if(we!==void 0)return we}const H=j.system||"data",ne=S(H);let q=null;if(!ne)e(`unit:system:${H}`,`unknown unit system "${H}"; known systems are ${i().join(", ")}`);else{let we=j.unit?d(H,j.unit):null;we||(j.unit&&e(`unit:unit:${H}:${j.unit}`,`unknown unit "${j.unit}" in system "${H}"; falling back to ${ne.units[0].symbol}`),we=ne.units.find($e=>$e.factor===1)||ne.units[0]),q={index:ne,base:we,binary:j.binary===!0}}return typeof j=="object"&&j!==null&&c.set(j,q),q}const s=new WeakMap;function u(ie,j){if(!ie||!j||!Array.isArray(ie.compound)||ie.compound.length===0)return null;const H=s.get(ie);if(H!==void 0)return H;const ne=new Set,q=[];for(const $e of ie.compound){const C=d(ie.system||"data",$e);if(!C){e(`unit:compound:${ie.system}:${$e}`,`unknown compound unit "${$e}" in system "${ie.system||"data"}"; ignoring it`);continue}ne.has(C.symbol)||(ne.add(C.symbol),q.push(C))}q.sort(($e,C)=>C.factor-$e.factor);const we=q.length>=2?q:null;return s.set(ie,we),we}function r(ie,j,H){return j===H||j.factor===H.factor?ie:ie*j.factor/H.factor}const m=new Map;function z(ie){const j=ie||"",H=m.get(j);if(H)return H;const ne={group:",",decimal:"."};try{for(const q of new Intl.NumberFormat(ie||void 0).formatToParts(12345.6))q.type==="group"?ne.group=q.value:q.type==="decimal"&&(ne.decimal=q.value)}catch{}return m.set(j,ne),ne}const l=/[\s ]/g,g=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,w=/^[^\d+\-(.,\s]+\s*/,x=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function v(ie,j){const{group:H,decimal:ne}=z(j);let q=String(ie).replace(l,"");if(q==="")return null;const we=ne?q.indexOf(ne):-1;if(H&&H!==ne){if(we>=0&&q.indexOf(H,we+ne.length)>=0)return null;q=q.split(H).join("")}if(ne&&ne!=="."&&(q=q.split(ne).join(".")),!x.test(q))return null;const $e=Number(q);return Number.isFinite($e)?$e:null}function f(ie,j,H){const ne=String(ie).trim().replace(/\.$/,"");if(ne==="")return null;const q=j.units.find(B=>B.symbol===ne);if(q)return q;const we=ne.toLowerCase(),$e=j.byToken.get(we);if($e===M)return null;if($e)return $e;const C=j.byPrefix.get(we);if(!C||!C.length)return null;const K=k(j,H),G=C.filter(B=>K.includes(B));return G.length===1?G[0]:null}function o(ie,j,H,ne){let q=ie,we=0,$e=!1,C=!1;for(;q!=="";){const K=g.exec(q)[0];if(K==="")return null;const G=v(K,ne&&ne.locale);if(G===null)return null;q=q.slice(K.length).trim();const B=q.search(/[+-]?[\d]/),te=(B>=0?q.slice(0,B):q).trim();if(q=B>=0?q.slice(B).trim():"",te===""){if($e)return null;C=!0,we+=r(G,H[0],j.base)}else{const ge=f(te,j.index,j.binary);if(!ge)return null;we+=r(G,ge,j.base)}if($e=!0,C&&q!=="")return null}return $e?we:null}function _(ie,j){if(F(ie))return null;if(typeof ie=="number")return Number.isFinite(ie)?ie:null;const H=t(j);if(!H)return null;let ne=String(ie).trim();if(ne==="")return null;let q=!1;ne.startsWith("(")&&ne.endsWith(")")&&(q=!0,ne=ne.slice(1,-1).trim());const we=u(j,H);if(we){ne.startsWith("-")&&(q=!0,ne=ne.slice(1).trim());const oe=o(ne,H,we,j);return oe===null?null:q?-oe:oe}let $e=null;const C=w.exec(ne);if(C&&C[0]){const oe=f(C[0].trim(),H.index,H.binary);oe&&($e=oe,ne=ne.slice(C[0].length).trim())}const K=g.exec(ne)[0],G=v(K,j&&j.locale);if(G===null)return null;const B=ne.slice(K.length).trim();if($e&&B!=="")return null;const te=$e||(B===""?H.base:f(B,H.index,H.binary));if(!te)return null;const ge=r(G,te,H.base);return q?-ge:ge}const b=new Map;function y(ie,j,H,ne){const q=`${ie||""}|${j}|${H}|${ne?1:0}`;let we=b.get(q);return we||(we=new Intl.NumberFormat(ie||void 0,{minimumFractionDigits:j,maximumFractionDigits:H,useGrouping:ne}),b.set(q,we)),we}function h(ie,j){if(!Number.isFinite(ie)||ie===0)return Math.max(0,j-1);const H=Math.floor(Math.log10(Math.abs(ie)));return Math.min(20,Math.max(0,j-1-H))}function $(ie,j){if(!Number.isFinite(ie)||ie===0)return ie;const H=Math.ceil(Math.log10(Math.abs(ie))),ne=10**(j-H);return Math.round(ie*ne)/ne}function ee(ie,j,H){if(!H||H===j.base.symbol)return j.base;if(H!=="auto")return O(j,H);if(ie===0||!Number.isFinite(ie))return j.base;const ne=Math.abs(ie)*j.base.factor,q=k(j.index,j.binary);let we=q[0];for(const K of q)ne>=K.factor&&(we=K);if(ne>=we.factor)return we;let $e=we;for(const K of j.index.units)K.binary!==j.binary&&K.factor!==1||K.factor<=ne&&K.factor>($e===we?0:$e.factor)&&($e=K);if($e!==we)return $e;let C=we;for(const K of j.index.units)K.binary!==j.binary&&K.factor!==1||K.factor<C.factor&&(C=K);return C.factor<j.base.factor?C:j.base}function O(ie,j){const H=ie.index.units.find(q=>q.symbol===j);if(H)return H;const ne=ie.index.byToken.get(String(j).toLowerCase());return ne&&ne!==M?ne:(e(`unit:display:${j}`,`unknown display unit "${j}"; rendering in ${ie.base.symbol}`),ie.base)}function ae(ie,j,H,ne){const q=ie<0;let we=Math.abs(ie)*j.base.factor;const $e=typeof ne.decimals=="number"?ne.decimals:ne.minDecimals??0,C=typeof ne.decimals=="number"?ne.decimals:ne.maxDecimals??Math.max($e,2),K=ne.space??" ",G=[];for(let te=0;te<H.length;te++){const ge=H[te],oe=te===H.length-1;let fe=oe?we/ge.factor:Math.floor(we/ge.factor);if(we-=fe*ge.factor,oe){const me=10**C;fe=Math.round(fe*me)/me+0}const ve=oe?y(ne.locale,$e,C,ne.group!==!1):y(ne.locale,0,0,ne.group!==!1);G.push(`${ve.format(fe)}${K}${ge.symbol}`)}const B=G.join(" ");return q?`-${B}`:B}function se(ie,j){const H=j||{},ne=H.nullDisplay??"";if(F(ie)||ie==="")return ne;const q=typeof ie=="number"?ie:Number(ie);if(!Number.isFinite(q))return ne;const we=t(H);if(!we)return String(q);const $e=u(H,we);if($e)return ae(q,we,$e,H);const C=typeof H.significantFigures=="number"&&H.significantFigures>0?H.significantFigures:0,K=C?$(q,C):q,G=ee(K,we,H.display),B=r(K,we.base,G);let te=typeof H.decimals=="number"?H.decimals:H.minDecimals??0,ge=typeof H.decimals=="number"?H.decimals:H.maxDecimals??Math.max(te,2);C&&(te=h(B,C),ge=te);const oe=y(H.locale,te,ge,H.group!==!1).format(B),fe=H.space??" ";return H.placement==="prefix"?`${G.symbol}${H.space??""}${oe}`:`${oe}${fe}${G.symbol}`}function ce(ie,j){const H=F(ie)||Number.isNaN(ie)?null:Number(ie),ne=F(j)||Number.isNaN(j)?null:Number(j);return H===null||Number.isNaN(H)?ne===null||Number.isNaN(ne)?0:1:ne===null||Number.isNaN(ne)||H<ne?-1:H>ne?1:0}function Z(ie){const j=typeof ie.decimals=="number"&&ie.decimals>0?`.${"0".repeat(ie.decimals)}`:"";return`${typeof ie.decimals=="number"?`#,##0${j}`:"#,##0.##"}" ${ie.symbol}"`}function Q(ie){const j={system:"data",...ie||{}},H=t(j),ne=H?H.base.symbol:String(j.unit||""),q=Object.freeze({...j,unit:ne}),we=Object.freeze({...q,display:ne,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),$e=new Map([[q.locale||"",q]]),C=K=>{const G=K||"";let B=$e.get(G);return B||(B=Object.freeze({...q,locale:K||void 0}),$e.set(G,B)),B};return{base:"number",extends:"number",storage:"float64",unitConfig:q,format:K=>se(K.value,K.locale?C(K.locale):q),parse:K=>_(K.text,K.locale?C(K.locale):q),compare:ce,defaults:{filter:"number",editor:"unit",align:"end",total:j.total||"sum"},...j.totals?{totals:j.totals}:{},excel:j.excel||Z({decimals:j.decimals,symbol:ne}),toStorage:K=>typeof K=="number"?Number.isFinite(K)?K:null:typeof K=="string"?_(K,q):F(K)?null:_(String(K),q),toClipboard:K=>se(K,we),fromClipboard:K=>_(K,q)}}const Pe=Q}),De("packages/core/src/columns/types/temperature.js",function(A,J){"use strict";Object.defineProperty(A,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"findScale",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"convertTemperature",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"formatTemperature",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"parseTemperature",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"createTemperatureType",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return S}});const F=J("packages/core/src/internal/predicates.js").isNil,L=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:k=>k+273.15,fromKelvin:k=>k-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:k=>(k+459.67)*(5/9),fromKelvin:k=>k*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:k=>k,fromKelvin:k=>k}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:k=>k*(5/9),fromKelvin:k=>k*(9/5)})});function e(k){if(F(k))return null;const d=String(k).trim();if(d==="")return null;for(const[t,s]of Object.entries(L))if(d===t||d===s.symbol)return{key:t,scale:s};const c=d.toLowerCase();for(const[t,s]of Object.entries(L))if(s.aliases.includes(c))return{key:t,scale:s};return null}function P(k,d,c){const t=e(d),s=e(c);return!t||!s||!Number.isFinite(Number(k))?null:t.key===s.key?Number(k):s.scale.fromKelvin(t.scale.toKelvin(Number(k)))}const D=new Map;function I(k,d,c){const t=`${k||""}|${d}|${c}`;let s=D.get(t);return s||(s=new Intl.NumberFormat(k||void 0,{minimumFractionDigits:d,maximumFractionDigits:c}),D.set(t,s)),s}function M(k,d){const c=d||{},t=c.nullDisplay??"";if(F(k)||k==="")return t;const s=Number(k);if(!Number.isFinite(s))return t;const u=e(c.scale||"C");if(!u)return String(s);const r=e(c.display||c.scale||"C")||u,m=r.key===u.key?s:r.scale.fromKelvin(u.scale.toKelvin(s)),z=typeof c.decimals=="number"?c.decimals:null,l=z??c.minDecimals??0,g=z??c.maxDecimals??1;return`${I(c.locale,l,g).format(m)}${c.space??" "}${r.scale.symbol}`}const W=/^[+-]?[\d\s., ]*\d/;function E(k,d){const c=String(k).trim();if(c==="")return null;const t=new Intl.NumberFormat(d||void 0).formatToParts(1.1).find(m=>m.type==="decimal")?.value||".",s=t===","?".":",",u=c.split(s).join("").split(/[\s ]/).join("").replace(t,"."),r=Number(u);return Number.isFinite(r)?r:null}function T(k,d){if(F(k))return null;const c=d||{},t=e(c.scale||"C");if(!t)return null;if(typeof k=="number")return Number.isFinite(k)?k:null;let s=String(k).trim();if(s==="")return null;let u=!1;s.startsWith("(")&&s.endsWith(")")&&(u=!0,s=s.slice(1,-1).trim());const r=W.exec(s);if(!r)return null;const m=E(r[0],c.locale);if(m===null)return null;const z=s.slice(r[0].length).trim();if(z==="")return u?-m:m;const l=e(z);if(!l)return null;const g=l.key===t.key?m:t.scale.fromKelvin(l.scale.toKelvin(m));return u?-g:g}function i(k){const d=Object.freeze({scale:"C",...k||{}}),t=(e(d.scale)||e("C")).scale.symbol,s=Object.freeze({...d,display:d.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),u=new Map([[d.locale||"",d]]),r=m=>{const z=m||"";let l=u.get(z);return l||(l=Object.freeze({...d,locale:m||void 0}),u.set(z,l)),l};return{base:"number",extends:"number",storage:"float64",temperatureConfig:d,format:m=>M(m.value,m.locale?r(m.locale):d),parse:m=>T(m.text,m.locale?r(m.locale):d),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:d.excel||`#,##0${typeof d.decimals=="number"&&d.decimals>0?`.${"0".repeat(d.decimals)}`:".#"}" ${t}"`,toStorage:m=>typeof m=="number"?Number.isFinite(m)?m:null:typeof m=="string"?T(m,d):F(m)?null:T(String(m),d),toClipboard:m=>M(m,s),fromClipboard:m=>T(m,d)}}const p=Object.freeze({celsius:i({scale:"C"}),fahrenheit:i({scale:"F"}),kelvin:i({scale:"K"})}),S=i}),De("packages/modules/form/controls/number.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/core/src/format/number.js").compileNumber,I=J("packages/dom/src/autofill.js"),M=I.applyAutocomplete,W=I.ensureOpaqueName,E=J("packages/core/src/columns/types/unit.js"),T=E.parseUnit,i=E.formatUnit,p=E.findUnit,S=E.unitsOf,k=J("packages/core/src/columns/types/temperature.js"),d=k.parseTemperature,c=k.formatTemperature,t=k.findScale,s="data-lattice-form-number-styles";function u(){return`
|
|
1936
|
+
`;class r{#e;#t;#n;#r=null;#i=[];#o;#u=0;#l=null;#a=null;#d=!1;constructor(w){this.#a=w.owner||null,this.#a&&F(this.#a.setAttribute)&&this.#a.setAttribute(c,""),this.#e=w.grid,this.#t=w.document,this.#n=w.element,this.#o=w.window||(typeof globalThis>"u"?{}:globalThis)}mount(){this.refresh(),F(this.#e.on)&&this.#i.push(this.#e.on("licence:changed",()=>this.refresh()));const w=this.#e.licence&&this.#e.licence.ready;w&&F(w.then)&&w.then(()=>this.refresh(),()=>this.refresh())}refresh(){const w=this.#m()&&!this.#f();w&&!this.#r?(this.#b(),this.#p()):!w&&this.#r&&(this.#s(),this.#c())}#f(){const w=this.#n;let x=w&&w.parentNode;for(this.#a&&x===this.#a&&(x=x.parentNode);x&&x.nodeType===1;){if(F(x.hasAttribute)&&x.hasAttribute(c))return!0;x=x.parentNode}return!1}#g(){const w=this.#o;if(!w||!F(w.matchMedia))return!1;try{return!!w.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}#p(){this.#c(),F(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)%S.length,this.#s(),this.#b(),this.#p()},k)))}#c(){this.#l!==null&&F(this.#o.clearTimeout)&&this.#o.clearTimeout(this.#l),this.#l=null}#m(){const w=this.#e.licence;return!!(w&&F(w.watermark)&&w.watermark())}#b(){const w=this.#e.messages&&F(this.#e.messages.t)?this.#e.messages:W,x=E(this.#t,"a",{class:`${i}__link`,text:w.t("licence.watermark"),attrs:{href:p,target:"_blank",rel:"noopener noreferrer"}}),v=E(this.#t,"span",{class:`${i}__free`,text:w.t("licence.watermark.free")});this.#r=E(this.#t,"div",{class:`${i} ${i}--${S[this.#u]}`,attrs:{role:"note",title:"This grid is unlicensed for this domain. Visit latticegrid.dev for a licence."},children:[x,v]}),this.#i.push(T(this.#r,"pointerdown",f=>{F(f.stopPropagation)&&f.stopPropagation()})),this.#n&&F(this.#n.appendChild)&&this.#n.appendChild(this.#r),typeof queueMicrotask=="function"&&!this.#d&&(this.#d=!0,queueMicrotask(()=>{this.#d=!1,this.#r&&this.#f()&&(this.#s(),this.#c())}))}#s(){this.#r&&F(this.#r.remove)&&this.#r.remove(),this.#r=null}destroy(){this.#c(),this.#a&&F(this.#a.removeAttribute)&&this.#a.removeAttribute(c);for(const w of this.#i)w();this.#i=[],this.#s()}}function m(g={},w=void 0){const x=globalThis[d],v=!g.licence&&w&&F(w.querySelector)?w.querySelector('meta[name="lattice-license"]')?.getAttribute("content"):null,f=g.licence||v;return f&&M(f),{licence:{watermark:()=>I(),get ready(){return x?x.verify():Promise.resolve()}},on:(o,_)=>o==="licence:changed"&&x?x.onSettled(()=>_()):()=>{}}}function z(g,w={}){const x=g&&g.ownerDocument;if(!x||!F(x.createElement))return{destroy(){},refresh(){}};const v=x.defaultView||void 0,f=m(w,x);let o=null,_=null,b=null,y=!1;const h=()=>{if(!x.getElementById(s)&&x.head){const O=x.createElement("style");O.id=s,O.textContent=u,x.head.appendChild(O)}v&&F(v.getComputedStyle)&&v.getComputedStyle(g).position==="static"&&(g.style.position="relative"),o=x.createElement("div"),o.className=t,g.appendChild(o),_=new r({grid:f,document:x,element:o,window:v,owner:g}),_.mount(),v&&F(v.MutationObserver)&&(b=new v.MutationObserver(()=>{!y&&o&&o.parentNode!==g&&g.appendChild(o)}),b.observe(g,{childList:!0}))},$=()=>{y||(_?_.refresh():f.licence.watermark()&&h())};$();const ee=f.on("licence:changed",$);return f.licence.ready,{refresh:$,destroy(){y||(y=!0,ee(),b&&b.disconnect(),_&&_.destroy(),o&&o.parentNode&&o.parentNode.removeChild(o))}}}const l=r}),Me("packages/modules/form/controls/input.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/dom/src/autofill.js"),e=L.applyAutocomplete,P=L.ensureOpaqueName,D=J("packages/dom/src/input-mask.js"),I=D.attachInputMask,M=D.formatInputMask,W=D.inputMaskPlaceholder,E=Object.freeze(["text","email","password","url"]),T=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"}),i=Object.freeze({viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"});function p(u){return E.includes(u)?u:"text"}function S(u){return!(u.props&&u.props.reveal===!1)}function k(u){const r=u.props&&u.props.mask;return typeof r=="string"&&r!==""?r:null}function d(u,r,m){const z=k(r);if(!z)return;const l=I(u,z,{description:m.t("form.mask.format",{pattern:W(z)})});u.__latMask=l}function c(u,r){const m=r?i:T,z=u.createElementNS("http://www.w3.org/2000/svg","svg");z.setAttribute("viewBox",m.viewBox),z.setAttribute("focusable","false"),z.setAttribute("aria-hidden","true"),m.paint==="stroke"?(z.setAttribute("fill","none"),z.setAttribute("stroke","currentColor"),z.setAttribute("stroke-width","1.5"),z.setAttribute("stroke-linecap","round"),z.setAttribute("stroke-linejoin","round")):z.setAttribute("fill","currentColor");for(const l of m.paths){const g=u.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("d",l),z.appendChild(g)}return z}function t(u){return u.__latPassword?u.__latPassword.input:u}function s(u,r,m){const z=r&&r.defaultView,l=z&&z.Event,g=l?new l(m,{bubbles:!0}):{type:m,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(g)}F("input",{kind:"field",build(u,r){const m=r.doc,z=p(u.subtype);if(z!=="password"||!S(u)){const _=m.createElement("input");return _.type=z,u.name?_.name=u.name:P(_),e(_,u.autocomplete,z==="password"?"new-password":null),u.placeholder!=null&&(_.placeholder=String(u.placeholder)),_.value=u.value==null?"":String(u.value),d(_,u,r),_}const l=m.createElement("div");l.className="lat-form__password";const g=m.createElement("input");g.type="password",u.name?g.name=u.name:P(g),e(g,u.autocomplete,"new-password"),u.placeholder!=null&&(g.placeholder=String(u.placeholder)),g.value=u.value==null?"":String(u.value),d(g,u,r),l.appendChild(g);const w=m.createElement("button");w.type="button",w.className="lat-form__password-btn",w.setAttribute("aria-pressed","false");const x=r.t("form.password.show");w.setAttribute("aria-label",x),w.title=x,w.appendChild(c(m,!1)),l.appendChild(w);const v={revealed:!1,disabled:!1,input:g,btn:w};l.__latPassword=v;const f=_=>{v.revealed=_===!0,g.type=v.revealed?"text":"password",w.setAttribute("aria-pressed",v.revealed?"true":"false");const b=r.t(v.revealed?"form.password.hide":"form.password.show");w.setAttribute("aria-label",b),w.title=b,w.replaceChild(c(m,v.revealed),w.firstChild)};v.setRevealed=f,w.addEventListener("click",()=>{v.disabled||f(!v.revealed)});let o=!1;return l.addEventListener("focusin",()=>{o||(o=!0,s(l,m,"focus"))}),l.addEventListener("focusout",_=>{l.contains(_.relatedTarget)||(o=!1,f(!1),s(l,m,"blur"))}),l},read(u){return t(u).value},write(u,r){const m=t(u),z=m.__latMask,l=r==null?"":String(r);m.value=z?M(z.pattern,l):l},state(u,r){const m=t(u);m.disabled=r.disabled===!0,m.readOnly=r.readOnly===!0;const z=u.__latPassword;z&&(z.disabled=r.disabled===!0,z.btn&&(z.btn.disabled=z.disabled))},reset(u){const r=u.__latPassword;r&&typeof r.setRevealed=="function"&&r.setRevealed(!1)}})}),Me("packages/core/src/format/mask.js",function(A,J){"use strict";Object.defineProperty(A,"splitSections",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"parseSection",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"compileMask",{enumerable:!0,get:function(){return D}});const _e=new Set(["0","#","?",",","."]),F="\0";function L(M){const W=[];let E="",T=!1;for(let i=0;i<M.length;i++){const p=M[i];if(p==="\\"){E+=p+(M[i+1]??""),i+=1;continue}if(p==='"'){T=!T,E+=p;continue}if(p===";"&&!T){W.push(E),E="";continue}E+=p}return W.push(E),W}function e(M){let W="",E="",T="",i=1,p=!1,S=!1;const k=l=>{S?E+=l:W+=l};for(let l=0;l<M.length;l++){const g=M[l];if(g==="\\"){k(M[l+1]??""),l+=1;continue}if(g==='"'){const w=M.indexOf('"',l+1);k(w===-1?M.slice(l+1):M.slice(l+1,w)),l=w===-1?M.length:w;continue}if(g==="%"){i*=100,k("%");continue}if(g==="@"){p=!0,k("\0");continue}if(_e.has(g)){T+=g,S=!0;continue}k(g)}let d=-1;for(let l=T.length-1;l>=0;l--){const g=T[l];if(g==="0"||g==="#"||g==="?"){d=l;break}}let c=!1,t="";for(let l=0;l<T.length;l++){const g=T[l];if(g===","){l>d?i/=1e3:c=!0;continue}t+=g}const s=t.indexOf("."),u=s===-1?t:t.slice(0,s),r=s===-1?"":t.slice(s+1);let m=0;for(const l of u)l==="0"&&(m+=1);let z=0;for(const l of r)l==="0"&&(z+=1);return{prefix:W,suffix:E,minInt:m,minDec:z,maxDec:r.length,grouping:c,scale:i,hasNumber:d!==-1,isText:p}}function P(M,W){const E=new Intl.NumberFormat(W,{minimumIntegerDigits:Math.max(M.minInt,1),minimumFractionDigits:M.minDec,maximumFractionDigits:Math.max(M.maxDec,M.minDec),useGrouping:M.grouping}),{prefix:T,suffix:i,scale:p,hasNumber:S}=M;return k=>{if(!S)return T+i;const d=p===1?k:k*p;return T+E.format(d)+i}}function D(M,W){const T=L(String(M)).map(e),i=T.map(t=>P(t,W)),p=0,S=T.length>1?1:-1,k=T.length>2?2:-1,d=T.length>3?3:-1,c=t=>{if(t==null||t==="")return"";if(typeof t!="number"||Number.isNaN(t)){const s=Number(t);if(Number.isNaN(s))return d===-1?String(t):(T[d].prefix+T[d].suffix).split("\0").join(String(t));t=s}return t===0&&k!==-1?i[k](0):t<0&&S!==-1?i[S](-t):i[p](t)};return c.spec={mask:M},{format:c,ooxml:I(String(M))}}function I(M){return M.trim()}}),Me("packages/core/src/format/pattern.js",function(A,J){"use strict";Object.defineProperty(A,"parseNumberPattern",{enumerable:!0,get:function(){return P}});const F=J("packages/core/src/format/mask.js").splitSections;function L(D){let I="",M="",W="",E="",T=!1,i=!1,p=!1,S=!1;const k=c=>{p?M+=c:I+=c};for(let c=0;c<D.length;c++){const t=D[c];if(t==="\\"){k(D[c+1]??""),c+=1;continue}if(t==='"'){const s=D.indexOf('"',c+1);k(s===-1?D.slice(c+1):D.slice(c+1,s)),c=s===-1?D.length:s;continue}if(t==="%"){i=!0;continue}if(t==="0"||t==="#"){p=!0,S?E+=t:W+=t;continue}if(t===","){S||(T=!0);continue}if(t==="."&&!S){S=!0;continue}k(t)}if(!p)return{hasDigit:!1,prefix:I,suffix:M,minDec:0,maxDec:0,grouping:!1,percent:i};let d=0;for(const c of E)c==="0"&&(d+=1);return{hasDigit:!0,prefix:I,suffix:M,minDec:d,maxDec:E.length,grouping:T,percent:i}}function e(D,I){const M=I.trim(),W=D.trim();return M.startsWith("(")&&M.endsWith(")")&&M.slice(1,-1).trim()===W?"parentheses":M.endsWith("-")?"suffix":"minus"}function P(D){if(typeof D!="string")return null;const I=F(D);if(I.length===0)return null;const M=L(I[0]);if(!M.hasDigit)return null;const W={style:M.percent?"percent":"decimal",prefix:M.prefix,suffix:M.suffix,minDecimals:M.minDec,maxDecimals:Math.max(M.maxDec,M.minDec),thousandsSeparator:M.grouping?void 0:!1};if(I.length>1&&(W.negative=e(I[0],I[1])),I.length>2){const E=L(I[2]);E.hasDigit||(W.zeroDisplay=E.prefix+E.suffix)}return W}}),Me("packages/core/src/format/number.js",function(A,J){"use strict";Object.defineProperty(A,"compileNumber",{enumerable:!0,get:function(){return I}});const F=J("packages/core/src/internal/predicates.js").isNil,e=J("packages/core/src/internal/warn.js").warnOnce,D=J("packages/core/src/format/pattern.js").parseNumberPattern;function I(M,W){const E=typeof M=="string"?{pattern:M}:M||{};let T=E;if(typeof E.pattern=="string"){const b=D(E.pattern);if(b){const{pattern:y,...h}=E;T={...b,...h}}else e(`format:pattern:${E.pattern}`,`invalid number format pattern "${E.pattern}"; the value will use the default number format`)}const i=T.locale||W||void 0,p=T.style||"decimal",S=typeof T.scale=="number"?T.scale:1,k=T.nullDisplay??"",d=T.zeroDisplay,c=T.prefix||"",t=T.suffix||"",s=T.negative||"minus",u=T.signed===!0,r={style:p,notation:T.notation||"standard"};p==="currency"&&(r.currency=T.currency||"USD",T.currencyDisplay&&(r.currencyDisplay=T.currencyDisplay)),typeof T.decimals=="number"?(r.minimumFractionDigits=T.decimals,r.maximumFractionDigits=T.decimals):(typeof T.minDecimals=="number"&&(r.minimumFractionDigits=T.minDecimals),typeof T.maxDecimals=="number"&&(r.maximumFractionDigits=T.maxDecimals),r.minimumFractionDigits>(r.maximumFractionDigits??20)&&(r.maximumFractionDigits=r.minimumFractionDigits)),T.thousandsSeparator===!1&&(r.useGrouping=!1),r.notation==="compact"&&(r.compactDisplay=T.compactDisplay||"short");const m=new Intl.NumberFormat(i,r),z=typeof T.thousandsSeparator=="string"?T.thousandsSeparator:null,l=typeof T.decimalSeparator=="string"?T.decimalSeparator:null;let g=",",w=".";if(z||l)for(const b of m.formatToParts(12345.6))b.type==="group"?g=b.value:b.type==="decimal"&&(w=b.value);const x=b=>{let y=b;return z&&(y=y.split(g).join("")),l&&(y=y.split(w).join("")),z&&(y=y.split("").join(z)),l&&(y=y.split("").join(l)),y},v=!!(z||l),f=c!==""&&p==="currency",o=b=>{let y;if(f){const h=m.formatToParts(b);let $=!1;y="";for(const ee of h)y+=ee.value,!$&&ee.type==="currency"&&(y+=c,$=!0);$||(y=c+y)}else y=c+m.format(b);return v&&(y=x(y)),y+t},_=b=>{if(F(b)||b==="")return k;const y=typeof b=="number"?b:Number(b);if(Number.isNaN(y))return k;const h=S===1?y:y*S;return h===0&&d!==void 0?d:h<0?s==="parentheses"?`(${o(-h)})`:s==="suffix"?`${o(-h)}-`:o(h):u&&h>0?`+${o(h)}`:o(h)};return _.negativeClass=T.negativeClass||null,_.spec=T,_}}),Me("packages/core/src/columns/types/unit.js",function(A,J){"use strict";Object.defineProperty(A,"defineUnit",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"registerUnitSystem",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"unitSystemNames",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"unitsOf",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"findUnit",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"localeSeparators",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"parseUnit",{enumerable:!0,get:function(){return _}}),Object.defineProperty(A,"formatUnit",{enumerable:!0,get:function(){return le}}),Object.defineProperty(A,"createUnitType",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return Pe}});const F=J("packages/core/src/internal/predicates.js").isNil,e=J("packages/core/src/internal/warn.js").warnOnce;function P(ie,j,H,ne){return Object.freeze({symbol:ie,factor:j,aliases:Object.freeze(H||[]),binary:!!(ne&&ne.binary),prefix:ne&&ne.prefix||null,auto:!(ne&&ne.auto===!1)})}function D(ie,j,H,ne){return P(ie,j,H,ne)}const I=Object.freeze({data:Object.freeze([P("B",1,["byte","bytes"]),P("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),P("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),P("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),P("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),P("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),P("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),P("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),P("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),P("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([P("bps",1,["bit","bits","bit/s","b/s"]),P("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),P("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),P("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),P("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([P("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),P("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),P("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),P("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),P("in",.0254,["inch","inches"],{auto:!1}),P("ft",.3048,["foot","feet"],{auto:!1}),P("yd",.9144,["yard","yards"],{auto:!1}),P("m",1,["metre","metres","meter","meters"]),P("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),P("mi",1609.344,["mile","miles"],{auto:!1}),P("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([P("mg",.001,["milligram","milligrams"]),P("g",1,["gram","grams"]),P("oz",28.349523125,["ounce","ounces"],{auto:!1}),P("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),P("kg",1e3,["kilogram","kilograms"]),P("st",6350.29318,["stone"],{auto:!1}),P("t",1e6,["tonne","tonnes","ton"],{auto:!1}),P("ton (US)",907184.74,["ton","shortton"],{auto:!1}),P("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([P("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),P("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),P("ms",.001,["msec","msecs","millisecond","milliseconds"]),P("s",1,["sec","secs","second","seconds"]),P("m",60,["min","mins","minute","minutes"]),P("h",3600,["hr","hrs","hour","hours"]),P("d",86400,["day","days"])]),speed:Object.freeze([P("mm/s",.001,["millimetre/s","millimeter/s"]),P("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),P("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),P("mph",.44704,["mile/h","miles/h"],{auto:!1}),P("kn",1852/3600,["knot","knots"],{auto:!1}),P("m/s",1,["metre/s","meter/s","mps"]),P("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([P("mm/s²",.001,["mm/s2"]),P("ft/s²",.3048,["ft/s2"],{auto:!1}),P("m/s²",1,["m/s2","metre/s2","meter/s2"]),P("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([P("mm²",1e-6,["mm2"]),P("cm²",1e-4,["cm2"]),P("in²",64516e-8,["in2","sqin"],{auto:!1}),P("ft²",.09290304,["ft2","sqft"],{auto:!1}),P("yd²",.83612736,["yd2","sqyd"],{auto:!1}),P("m²",1,["m2","sqm"]),P("ha",1e4,["hectare","hectares"],{auto:!1}),P("ac",4046.8564224,["acre","acres"],{auto:!1}),P("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([P("µL",1e-6,["ul","microlitre","microliter"]),P("mL",.001,["millilitre","milliliter"]),P("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),P("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),P("L",1,["litre","litres","liter","liters"]),P("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),P("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),P("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),P("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([P("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),P("J",1,["joule","joules"]),P("cal",4.184,["calorie","calories"],{auto:!1}),P("kJ",1e3,["kilojoule","kilojoules"]),P("BTU",1055.05585262,["btu"],{auto:!1}),P("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),P("MJ",1e6,["megajoule","megajoules"]),P("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),P("GJ",1e9,["gigajoule","gigajoules"]),P("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([P("mW",.001,["milliwatt","milliwatts"]),P("W",1,["watt","watts"]),P("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),P("kW",1e3,["kilowatt","kilowatts"]),P("hp",745.6998715822702,["horsepower"],{auto:!1}),P("MW",1e6,["megawatt","megawatts"]),P("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([P("mN",.001,["millinewton","millinewtons"]),P("N",1,["newton","newtons"]),P("lbf",4.4482216152605,["poundforce"],{auto:!1}),P("kgf",9.80665,["kilogramforce"],{auto:!1}),P("kN",1e3,["kilonewton","kilonewtons"]),P("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([P("Pa",1,["pascal","pascals"]),P("mbar",100,["millibar"],{auto:!1}),P("inH₂O",249.0889,["inh2o"],{auto:!1}),P("mmHg",133.322387415,["torr"],{auto:!1}),P("kPa",1e3,["kilopascal","kilopascals"]),P("inHg",3386.388640341,["inhg"],{auto:!1}),P("psi",6894.757293168361,["lbf/in2"],{auto:!1}),P("bar",1e5,[],{auto:!1}),P("atm",101325,["atmosphere","atmospheres"],{auto:!1}),P("MPa",1e6,["megapascal","megapascals"]),P("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([P("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),P("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),P("kN·m",1e3,["knm","kn.m"],{auto:!1}),P("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([P("kg/m³",1,["kg/m3"]),P("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),P("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),P("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([P("L/min",1/6e4,["lpm","l/min"],{auto:!1}),P("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),P("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),P("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),P("cfm",.0004719474432,["ft3/min"],{auto:!1}),P("L/s",.001,["lps","l/s"],{auto:!1}),P("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([P("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),P("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),P("mrad",.001,["milliradian","milliradians"],{auto:!1}),P("mil",Math.PI/3200,["nato-mil"],{auto:!1}),P("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),P("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),P("rad",1,["radian","radians"]),P("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([P("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),P("rad/s",1,["radps","radians/s"]),P("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),P("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([P("ppt",1e-12,["partspertrillion"],{auto:!1}),P("ppb",1e-9,["partsperbillion"]),P("ppm",1e-6,["partspermillion"]),P("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),P("‰",.001,["permille","permil"],{auto:!1}),P("%",.01,["pct","percent"]),P("×",1,["x","ratio","times"])]),molarity:Object.freeze([P("pM",1e-12,["picomolar","picomolarity"]),P("nM",1e-9,["nanomolar","nanomolarity"]),P("µM",1e-6,["um-molar","micromolar","micromolarity"]),P("mM",.001,["millimolar","millimolarity"]),P("M",1,["molar","mol/l","mol/L","molarity"]),P("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([P("mg/s",1e-6,["milligrams/s"]),P("g/s",.001,["grams/s"]),P("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),P("kg/s",1,["kilograms/s","kgps"]),P("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),P("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),P("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([P("µPa·s",1e-6,["upas","micropascalsecond"]),P("cP",.001,["centipoise"],{auto:!1}),P("mPa·s",.001,["mpas","millipascalsecond"]),P("P",.1,["poise"],{auto:!1}),P("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([P("cSt",1e-6,["centistokes","centistoke"]),P("mm²/s",1e-6,["mm2/s"],{auto:!1}),P("St",1e-4,["stokes","stoke"],{auto:!1}),P("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([P("mW/(m·K)",.001,["mw/mk"]),P("W/(m·K)",1,["w/mk","wmk"]),P("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),P("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([P("J/(kg·K)",1,["j/kgk","jkgk"]),P("kJ/(kg·K)",1e3,["kj/kgk"]),P("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([P("nSv/h",1e-9,["nsvh"]),P("µSv/h",1e-6,["usv/h","usvh"]),P("mSv/h",.001,["msvh"]),P("Sv/h",1,["svh"]),P("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),M=Symbol("ambiguous"),W=new Map,E=new Map;function T(ie,j){const H=String(ie||"").trim();if(!H)throw new Error("[lattice] a unit system needs a name");if(I[H]||E.has(H))throw new Error(`[lattice] unit system "${H}" already exists`);const ne=[...j||[]];if(!ne.length)throw new Error(`[lattice] unit system "${H}" has no units`);if(!ne.some(ke=>ke.factor===1))throw new Error(`[lattice] unit system "${H}" has no base unit (none with factor 1)`);const q=new Set;for(const ke of ne){if(q.has(ke.symbol))throw new Error(`[lattice] unit system "${H}" declares "${ke.symbol}" twice`);q.add(ke.symbol)}return E.set(H,Object.freeze(ne)),W.delete(H),H}function i(){return[...Object.keys(I),...E.keys()]}function p(ie){const j=S(ie);return j?j.units:[]}function S(ie){const j=String(ie||""),H=W.get(j);if(H!==void 0)return H;const ne=I[j]||E.get(j);if(!ne)return W.set(j,null),null;const q=Object.freeze([...ne].sort((G,B)=>G.factor-B.factor)),ke=new Map,Ee=new Map,C=(G,B)=>{const te=ke.get(G);te===void 0?ke.set(G,B):te!==B&&ke.set(G,M)};for(const G of q){C(G.symbol.toLowerCase(),G);for(const B of G.aliases)C(B.toLowerCase(),G);if(G.prefix){const B=Ee.get(G.prefix)||[];B.push(G),Ee.set(G.prefix,B)}}const K={units:q,byToken:ke,byPrefix:Ee,decimal:q.filter(G=>!G.binary&&G.auto),binary:q.some(G=>G.binary)?q.filter(G=>(G.binary||G.factor===1)&&G.auto):null};return W.set(j,K),K}function k(ie,j){return j&&ie.binary||ie.decimal}function d(ie,j){const H=S(ie);if(!H||F(j))return null;const ne=H.units.find(ke=>ke.symbol===String(j));if(ne)return ne;const q=H.byToken.get(String(j).trim().toLowerCase());return q&&q!==M?q:null}const c=new WeakMap;function t(ie){const j=ie||{};if(typeof j=="object"&&j!==null){const ke=c.get(j);if(ke!==void 0)return ke}const H=j.system||"data",ne=S(H);let q=null;if(!ne)e(`unit:system:${H}`,`unknown unit system "${H}"; known systems are ${i().join(", ")}`);else{let ke=j.unit?d(H,j.unit):null;ke||(j.unit&&e(`unit:unit:${H}:${j.unit}`,`unknown unit "${j.unit}" in system "${H}"; falling back to ${ne.units[0].symbol}`),ke=ne.units.find(Ee=>Ee.factor===1)||ne.units[0]),q={index:ne,base:ke,binary:j.binary===!0}}return typeof j=="object"&&j!==null&&c.set(j,q),q}const s=new WeakMap;function u(ie,j){if(!ie||!j||!Array.isArray(ie.compound)||ie.compound.length===0)return null;const H=s.get(ie);if(H!==void 0)return H;const ne=new Set,q=[];for(const Ee of ie.compound){const C=d(ie.system||"data",Ee);if(!C){e(`unit:compound:${ie.system}:${Ee}`,`unknown compound unit "${Ee}" in system "${ie.system||"data"}"; ignoring it`);continue}ne.has(C.symbol)||(ne.add(C.symbol),q.push(C))}q.sort((Ee,C)=>C.factor-Ee.factor);const ke=q.length>=2?q:null;return s.set(ie,ke),ke}function r(ie,j,H){return j===H||j.factor===H.factor?ie:ie*j.factor/H.factor}const m=new Map;function z(ie){const j=ie||"",H=m.get(j);if(H)return H;const ne={group:",",decimal:"."};try{for(const q of new Intl.NumberFormat(ie||void 0).formatToParts(12345.6))q.type==="group"?ne.group=q.value:q.type==="decimal"&&(ne.decimal=q.value)}catch{}return m.set(j,ne),ne}const l=/[\s ]/g,g=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,w=/^[^\d+\-(.,\s]+\s*/,x=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function v(ie,j){const{group:H,decimal:ne}=z(j);let q=String(ie).replace(l,"");if(q==="")return null;const ke=ne?q.indexOf(ne):-1;if(H&&H!==ne){if(ke>=0&&q.indexOf(H,ke+ne.length)>=0)return null;q=q.split(H).join("")}if(ne&&ne!=="."&&(q=q.split(ne).join(".")),!x.test(q))return null;const Ee=Number(q);return Number.isFinite(Ee)?Ee:null}function f(ie,j,H){const ne=String(ie).trim().replace(/\.$/,"");if(ne==="")return null;const q=j.units.find(B=>B.symbol===ne);if(q)return q;const ke=ne.toLowerCase(),Ee=j.byToken.get(ke);if(Ee===M)return null;if(Ee)return Ee;const C=j.byPrefix.get(ke);if(!C||!C.length)return null;const K=k(j,H),G=C.filter(B=>K.includes(B));return G.length===1?G[0]:null}function o(ie,j,H,ne){let q=ie,ke=0,Ee=!1,C=!1;for(;q!=="";){const K=g.exec(q)[0];if(K==="")return null;const G=v(K,ne&&ne.locale);if(G===null)return null;q=q.slice(K.length).trim();const B=q.search(/[+-]?[\d]/),te=(B>=0?q.slice(0,B):q).trim();if(q=B>=0?q.slice(B).trim():"",te===""){if(Ee)return null;C=!0,ke+=r(G,H[0],j.base)}else{const ge=f(te,j.index,j.binary);if(!ge)return null;ke+=r(G,ge,j.base)}if(Ee=!0,C&&q!=="")return null}return Ee?ke:null}function _(ie,j){if(F(ie))return null;if(typeof ie=="number")return Number.isFinite(ie)?ie:null;const H=t(j);if(!H)return null;let ne=String(ie).trim();if(ne==="")return null;let q=!1;ne.startsWith("(")&&ne.endsWith(")")&&(q=!0,ne=ne.slice(1,-1).trim());const ke=u(j,H);if(ke){ne.startsWith("-")&&(q=!0,ne=ne.slice(1).trim());const oe=o(ne,H,ke,j);return oe===null?null:q?-oe:oe}let Ee=null;const C=w.exec(ne);if(C&&C[0]){const oe=f(C[0].trim(),H.index,H.binary);oe&&(Ee=oe,ne=ne.slice(C[0].length).trim())}const K=g.exec(ne)[0],G=v(K,j&&j.locale);if(G===null)return null;const B=ne.slice(K.length).trim();if(Ee&&B!=="")return null;const te=Ee||(B===""?H.base:f(B,H.index,H.binary));if(!te)return null;const ge=r(G,te,H.base);return q?-ge:ge}const b=new Map;function y(ie,j,H,ne){const q=`${ie||""}|${j}|${H}|${ne?1:0}`;let ke=b.get(q);return ke||(ke=new Intl.NumberFormat(ie||void 0,{minimumFractionDigits:j,maximumFractionDigits:H,useGrouping:ne}),b.set(q,ke)),ke}function h(ie,j){if(!Number.isFinite(ie)||ie===0)return Math.max(0,j-1);const H=Math.floor(Math.log10(Math.abs(ie)));return Math.min(20,Math.max(0,j-1-H))}function $(ie,j){if(!Number.isFinite(ie)||ie===0)return ie;const H=Math.ceil(Math.log10(Math.abs(ie))),ne=10**(j-H);return Math.round(ie*ne)/ne}function ee(ie,j,H){if(!H||H===j.base.symbol)return j.base;if(H!=="auto")return O(j,H);if(ie===0||!Number.isFinite(ie))return j.base;const ne=Math.abs(ie)*j.base.factor,q=k(j.index,j.binary);let ke=q[0];for(const K of q)ne>=K.factor&&(ke=K);if(ne>=ke.factor)return ke;let Ee=ke;for(const K of j.index.units)K.binary!==j.binary&&K.factor!==1||K.factor<=ne&&K.factor>(Ee===ke?0:Ee.factor)&&(Ee=K);if(Ee!==ke)return Ee;let C=ke;for(const K of j.index.units)K.binary!==j.binary&&K.factor!==1||K.factor<C.factor&&(C=K);return C.factor<j.base.factor?C:j.base}function O(ie,j){const H=ie.index.units.find(q=>q.symbol===j);if(H)return H;const ne=ie.index.byToken.get(String(j).toLowerCase());return ne&&ne!==M?ne:(e(`unit:display:${j}`,`unknown display unit "${j}"; rendering in ${ie.base.symbol}`),ie.base)}function ae(ie,j,H,ne){const q=ie<0;let ke=Math.abs(ie)*j.base.factor;const Ee=typeof ne.decimals=="number"?ne.decimals:ne.minDecimals??0,C=typeof ne.decimals=="number"?ne.decimals:ne.maxDecimals??Math.max(Ee,2),K=ne.space??" ",G=[];for(let te=0;te<H.length;te++){const ge=H[te],oe=te===H.length-1;let fe=oe?ke/ge.factor:Math.floor(ke/ge.factor);if(ke-=fe*ge.factor,oe){const be=10**C;fe=Math.round(fe*be)/be+0}const ve=oe?y(ne.locale,Ee,C,ne.group!==!1):y(ne.locale,0,0,ne.group!==!1);G.push(`${ve.format(fe)}${K}${ge.symbol}`)}const B=G.join(" ");return q?`-${B}`:B}function le(ie,j){const H=j||{},ne=H.nullDisplay??"";if(F(ie)||ie==="")return ne;const q=typeof ie=="number"?ie:Number(ie);if(!Number.isFinite(q))return ne;const ke=t(H);if(!ke)return String(q);const Ee=u(H,ke);if(Ee)return ae(q,ke,Ee,H);const C=typeof H.significantFigures=="number"&&H.significantFigures>0?H.significantFigures:0,K=C?$(q,C):q,G=ee(K,ke,H.display),B=r(K,ke.base,G);let te=typeof H.decimals=="number"?H.decimals:H.minDecimals??0,ge=typeof H.decimals=="number"?H.decimals:H.maxDecimals??Math.max(te,2);C&&(te=h(B,C),ge=te);const oe=y(H.locale,te,ge,H.group!==!1).format(B),fe=H.space??" ";return H.placement==="prefix"?`${G.symbol}${H.space??""}${oe}`:`${oe}${fe}${G.symbol}`}function se(ie,j){const H=F(ie)||Number.isNaN(ie)?null:Number(ie),ne=F(j)||Number.isNaN(j)?null:Number(j);return H===null||Number.isNaN(H)?ne===null||Number.isNaN(ne)?0:1:ne===null||Number.isNaN(ne)||H<ne?-1:H>ne?1:0}function Z(ie){const j=typeof ie.decimals=="number"&&ie.decimals>0?`.${"0".repeat(ie.decimals)}`:"";return`${typeof ie.decimals=="number"?`#,##0${j}`:"#,##0.##"}" ${ie.symbol}"`}function Q(ie){const j={system:"data",...ie||{}},H=t(j),ne=H?H.base.symbol:String(j.unit||""),q=Object.freeze({...j,unit:ne}),ke=Object.freeze({...q,display:ne,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),Ee=new Map([[q.locale||"",q]]),C=K=>{const G=K||"";let B=Ee.get(G);return B||(B=Object.freeze({...q,locale:K||void 0}),Ee.set(G,B)),B};return{base:"number",extends:"number",storage:"float64",unitConfig:q,format:K=>le(K.value,K.locale?C(K.locale):q),parse:K=>_(K.text,K.locale?C(K.locale):q),compare:se,defaults:{filter:"number",editor:"unit",align:"end",total:j.total||"sum"},...j.totals?{totals:j.totals}:{},excel:j.excel||Z({decimals:j.decimals,symbol:ne}),toStorage:K=>typeof K=="number"?Number.isFinite(K)?K:null:typeof K=="string"?_(K,q):F(K)?null:_(String(K),q),toClipboard:K=>le(K,ke),fromClipboard:K=>_(K,q)}}const Pe=Q}),Me("packages/core/src/columns/types/temperature.js",function(A,J){"use strict";Object.defineProperty(A,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"findScale",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"convertTemperature",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"formatTemperature",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"parseTemperature",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"createTemperatureType",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return S}});const F=J("packages/core/src/internal/predicates.js").isNil,L=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:k=>k+273.15,fromKelvin:k=>k-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:k=>(k+459.67)*(5/9),fromKelvin:k=>k*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:k=>k,fromKelvin:k=>k}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:k=>k*(5/9),fromKelvin:k=>k*(9/5)})});function e(k){if(F(k))return null;const d=String(k).trim();if(d==="")return null;for(const[t,s]of Object.entries(L))if(d===t||d===s.symbol)return{key:t,scale:s};const c=d.toLowerCase();for(const[t,s]of Object.entries(L))if(s.aliases.includes(c))return{key:t,scale:s};return null}function P(k,d,c){const t=e(d),s=e(c);return!t||!s||!Number.isFinite(Number(k))?null:t.key===s.key?Number(k):s.scale.fromKelvin(t.scale.toKelvin(Number(k)))}const D=new Map;function I(k,d,c){const t=`${k||""}|${d}|${c}`;let s=D.get(t);return s||(s=new Intl.NumberFormat(k||void 0,{minimumFractionDigits:d,maximumFractionDigits:c}),D.set(t,s)),s}function M(k,d){const c=d||{},t=c.nullDisplay??"";if(F(k)||k==="")return t;const s=Number(k);if(!Number.isFinite(s))return t;const u=e(c.scale||"C");if(!u)return String(s);const r=e(c.display||c.scale||"C")||u,m=r.key===u.key?s:r.scale.fromKelvin(u.scale.toKelvin(s)),z=typeof c.decimals=="number"?c.decimals:null,l=z??c.minDecimals??0,g=z??c.maxDecimals??1;return`${I(c.locale,l,g).format(m)}${c.space??" "}${r.scale.symbol}`}const W=/^[+-]?[\d\s., ]*\d/;function E(k,d){const c=String(k).trim();if(c==="")return null;const t=new Intl.NumberFormat(d||void 0).formatToParts(1.1).find(m=>m.type==="decimal")?.value||".",s=t===","?".":",",u=c.split(s).join("").split(/[\s ]/).join("").replace(t,"."),r=Number(u);return Number.isFinite(r)?r:null}function T(k,d){if(F(k))return null;const c=d||{},t=e(c.scale||"C");if(!t)return null;if(typeof k=="number")return Number.isFinite(k)?k:null;let s=String(k).trim();if(s==="")return null;let u=!1;s.startsWith("(")&&s.endsWith(")")&&(u=!0,s=s.slice(1,-1).trim());const r=W.exec(s);if(!r)return null;const m=E(r[0],c.locale);if(m===null)return null;const z=s.slice(r[0].length).trim();if(z==="")return u?-m:m;const l=e(z);if(!l)return null;const g=l.key===t.key?m:t.scale.fromKelvin(l.scale.toKelvin(m));return u?-g:g}function i(k){const d=Object.freeze({scale:"C",...k||{}}),t=(e(d.scale)||e("C")).scale.symbol,s=Object.freeze({...d,display:d.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),u=new Map([[d.locale||"",d]]),r=m=>{const z=m||"";let l=u.get(z);return l||(l=Object.freeze({...d,locale:m||void 0}),u.set(z,l)),l};return{base:"number",extends:"number",storage:"float64",temperatureConfig:d,format:m=>M(m.value,m.locale?r(m.locale):d),parse:m=>T(m.text,m.locale?r(m.locale):d),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:d.excel||`#,##0${typeof d.decimals=="number"&&d.decimals>0?`.${"0".repeat(d.decimals)}`:".#"}" ${t}"`,toStorage:m=>typeof m=="number"?Number.isFinite(m)?m:null:typeof m=="string"?T(m,d):F(m)?null:T(String(m),d),toClipboard:m=>M(m,s),fromClipboard:m=>T(m,d)}}const p=Object.freeze({celsius:i({scale:"C"}),fahrenheit:i({scale:"F"}),kelvin:i({scale:"K"})}),S=i}),Me("packages/modules/form/controls/number.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/core/src/format/number.js").compileNumber,I=J("packages/dom/src/autofill.js"),M=I.applyAutocomplete,W=I.ensureOpaqueName,E=J("packages/core/src/columns/types/unit.js"),T=E.parseUnit,i=E.formatUnit,p=E.findUnit,S=E.unitsOf,k=J("packages/core/src/columns/types/temperature.js"),d=k.parseTemperature,c=k.formatTemperature,t=k.findScale,s="data-lattice-form-number-styles";function u(){return`
|
|
1937
1937
|
.lat-form__control .lat-form__number{
|
|
1938
1938
|
text-align:right; font-variant-numeric:tabular-nums;
|
|
1939
1939
|
}
|
|
@@ -1974,7 +1974,7 @@ ${v}
|
|
|
1974
1974
|
font:inherit; line-height:inherit; cursor:pointer;
|
|
1975
1975
|
}
|
|
1976
1976
|
.lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
|
|
1977
|
-
`.trim()}function r(v){const f=v&&v.documentElement;if(!f||f.getAttribute(s))return;f.setAttribute(s,"1");const o=v.createElement("style");o.textContent=u(),(v.head||v.body||f).appendChild(o)}function m(v){let f="",o=".";try{for(const _ of new Intl.NumberFormat(v||void 0).formatToParts(12345.6))_.type==="group"?f=_.value:_.type==="decimal"&&(o=_.value)}catch{}return{group:f,decimal:o}}function z(v,f){if(v==null)return null;let o=String(v).trim();if(o==="")return null;const{group:_,decimal:b}=m(f);let y=!1;if(/^\(.*\)$/.test(o)&&(y=!0,o=o.slice(1,-1)),o=o.replace(/[\s ]/g,""),_&&_!=="."&&(o=o.split(_).join("")),o=o.replace(/[^0-9eE+\-.,]/g,""),b===","?(o=o.split(".").join(""),o=o.replace(",",".")):o=o.split(",").join(""),o===""||o==="-"||o==="+")return NaN;o.startsWith("-")&&(y=!y,o=o.slice(1));const h=Number(o);return Number.isFinite(h)?y?-h:h:NaN}function l(v){if(v==null||v==="")return"";const f=typeof v=="number"?v:Number(v);return Number.isFinite(f)?String(f):""}function g(v){return v&&v.__latNumber?v.__latNumber.input:v}function w(v){if(typeof v=="number")return Number.isFinite(v)?v:null;if(v==null||v==="")return null;const f=Number(v);return Number.isFinite(f)?f:null}function x(v){const f=v&&v.props||{};return typeof f.system=="string"&&f.system!==""?{kind:"unit",opts:{system:f.system,unit:f.unit,binary:f.binary===!0,decimals:f.decimals,minDecimals:f.minDecimals,maxDecimals:f.maxDecimals,display:f.display,locale:v.locale||f.locale,group:f.group,space:f.space,placement:f.placement,compound:f.compound,significantFigures:f.significantFigures,nullDisplay:f.nullDisplay}}:typeof f.scale=="string"&&f.scale!==""?{kind:"temperature",opts:{scale:f.scale,display:f.display,decimals:f.decimals,minDecimals:f.minDecimals,maxDecimals:f.maxDecimals,space:f.space,locale:v.locale||f.locale,nullDisplay:f.nullDisplay}}:null}F("number",{kind:"field",build(v,f){const o=f.doc;r(o);const _=v.props&&v.props.format&&(typeof v.props.format=="object"||typeof v.props.format=="string")?v.props.format:null,b=v.locale||void 0,y=_?D(_,b):null,h=typeof f.t=="function"?f.t:e,$=x(v),ee=w(v.step),O=w(v.min),ae=w(v.max),se=typeof O=="number"||typeof ae=="number"||typeof ee=="number"&&ee>0;!$&&se&&v.validationMode==="submit"&&(v.validationMode="change");let ce="";if($&&$.kind==="unit"){const G=p($.opts.system,$.opts.unit);ce=G?G.symbol:String($.opts.unit||"")}else if($&&$.kind==="temperature"){const G=t($.opts.scale);ce=G?G.scale.symbol:""}const Z=o.createElement("input");Z.type="text",Z.inputMode="decimal",Z.className="lat-form__number",v.name?Z.name=v.name:W(Z),M(Z,v.autocomplete),v.placeholder!=null&&(Z.placeholder=String(v.placeholder));const Q={input:Z,format:y,t:h,locale:b,step:ee,min:O,max:ae,unit:$,unitSymbol:ce,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},Pe=()=>Q.displayUnit!=null?{...$.opts,display:Q.displayUnit}:$.opts,ie=G=>Q.unit&&Q.unit.kind==="unit"?i(G,Pe()):Q.unit&&Q.unit.kind==="temperature"?c(G,Q.unit.opts):Q.format&&Number.isFinite(G)?Q.format(G):l(G),j=G=>{if(!Q.unit)return z(G,Q.locale);const B=G==null?"":String(G);if(B.trim()==="")return null;const te=Q.unit.kind==="temperature"?d(B,Q.unit.opts):T(B,Q.unit.opts);return te===null?Number.NaN:te},H=()=>Q.unit&&typeof Q.unit.opts.nullDisplay=="string"?Q.unit.opts.nullDisplay:"",ne=G=>{if(G==null||G===""){Q.value=null,Q.invalid=!1,Z.value=H();return}const B=typeof G=="number"?G:Number(G);if(!Number.isFinite(B)){Q.value=null,Q.invalid=!1,Z.value=H();return}Q.value=B,Q.invalid=!1,Z.value=Q.focused?l(B):ie(B)},q=()=>{const G=Z.value;G===""?Z.removeAttribute("aria-valuetext"):Z.setAttribute("aria-valuetext",G)},we=G=>{const B=j(Z.value);let ge=(B==null||Number.isNaN(B)?0:B)+G;typeof O=="number"&&ge<O&&(ge=O),typeof ae=="number"&&ge>ae&&(ge=ae),Z.value=Q.unit&&!Q.focused?ie(ge):l(ge)},$e=()=>{Q.focused=!0,Q.value!=null&&(Z.value=l(Q.value)),q()},C=()=>{Q.focused=!1;const G=j(Z.value);G==null?(Q.value=null,Q.invalid=!1,Z.value=H()):Number.isNaN(G)?(Q.invalid=!0,Q.value!=null?Z.value=ie(Q.value):Z.value=""):(Q.invalid=!1,Q.value=G,Z.value=ie(G)),q()},K=G=>{if(G.key!=="ArrowUp"&&G.key!=="ArrowDown")return;typeof G.preventDefault=="function"&&G.preventDefault();const B=typeof ee=="number"&&ee>0?ee:1;we(G.key==="ArrowUp"?B:-B)};if(Z.addEventListener("focus",$e),Z.addEventListener("blur",C),Z.addEventListener("keydown",K),Q.disposers.push(()=>Z.removeEventListener("focus",$e),()=>Z.removeEventListener("blur",C),()=>Z.removeEventListener("keydown",K)),ne(v.value),typeof O=="number"&&Z.setAttribute("aria-valuemin",String(O)),typeof ae=="number"&&Z.setAttribute("aria-valuemax",String(ae)),q(),Z.__latNumber=Q,$&&$.kind==="unit"&&v.props&&v.props.unitPicker===!0){const G=o.createElement("div");G.className="lat-form__number-unit";const B=o.createElement("select");B.className="lat-form__number-unitpick",B.setAttribute("aria-label",h("form.number.unitPicker"));const te=S($.opts.system);for(const ve of te){const me=o.createElement("option");me.value=ve.symbol,me.textContent=ve.symbol,B.appendChild(me)}const ge=$.opts.display&&$.opts.display!=="auto"?$.opts.display:ce,oe=te.some(ve=>ve.symbol===ge)?ge:ce;B.value=oe,Q.displayUnit=oe;const fe=()=>{Q.displayUnit=B.value,!Q.focused&&Q.value!=null&&(Z.value=ie(Q.value)),q()};return B.addEventListener("change",fe),Q.disposers.push(()=>B.removeEventListener("change",fe)),Q.picker=B,G.appendChild(Z),G.appendChild(B),G.__latNumber=Q,G}if(v.props&&v.props.spinner===!0){const G=o.createElement("div");G.className="lat-form__number-spinner";const B=(oe,fe)=>{const ve=o.createElement("button");return ve.type="button",ve.tabIndex=-1,ve.className="lat-form__number-step",ve.textContent=oe,ve.addEventListener("mousedown",me=>{typeof me.preventDefault=="function"&&me.preventDefault();const X=typeof ee=="number"&&ee>0?ee:1;we(fe*X)}),ve},te=B("−",-1),ge=B("+",1);return Q.buttons=[te,ge],G.appendChild(te),G.appendChild(Z),G.appendChild(ge),G.__latNumber=Q,G}return Z},read(v){const f=v&&v.__latNumber,o=f?f.input:v;if(f&&!f.focused)return f.unit&&f.invalid?Number.NaN:f.value;if(f&&f.unit){const _=o.value;if(String(_).trim()==="")return null;const b=f.unit.kind==="temperature"?d(_,f.unit.opts):T(_,f.unit.opts);return b===null?Number.NaN:b}return z(o.value,f?f.locale:void 0)},write(v,f){const o=v&&v.__latNumber,_=o?o.input:v,b=o&&o.unit&&typeof o.unit.opts.nullDisplay=="string"?o.unit.opts.nullDisplay:"";if(f==null||f===""){o&&(o.value=null,o.invalid=!1),_.value=b;return}const y=typeof f=="number"?f:Number(f);if(!Number.isFinite(y)){o&&(o.value=null,o.invalid=!1),_.value=b;return}o&&(o.value=y,o.invalid=!1),o&&o.focused?_.value=l(y):o&&o.unit?_.value=o.unit.kind==="unit"?i(y,o.displayUnit!=null?{...o.unit.opts,display:o.displayUnit}:o.unit.opts):c(y,o.unit.opts):o&&o.format?_.value=o.format(y):_.value=l(y),_.value===""?_.removeAttribute("aria-valuetext"):_.setAttribute("aria-valuetext",_.value)},state(v,f){const o=v&&v.__latNumber,_=o?o.input:v;_.disabled=f.disabled===!0,_.readOnly=f.readOnly===!0;const b=f.disabled===!0||f.readOnly===!0;for(const y of o?o.buttons:[])y.disabled=b;o&&o.picker&&(o.picker.disabled=b)},validate(v,f,o){const _=v&&v.__latNumber,b=_&&_.t?_.t:e;if(o==null||o==="")return null;if(typeof o!="number"||Number.isNaN(o))return _&&_.unit?b("form.validation.unit",{unit:_.unitSymbol}):b("form.validation.number");const y=$=>_&&_.unit&&_.unit.kind==="unit"?i($,{..._.unit.opts,display:_.unit.opts.unit,group:!0}):_&&_.unit&&_.unit.kind==="temperature"?c($,_.unit.opts):String($),h=!(_&&_.unit);if(_&&typeof _.min=="number"&&o<_.min){const $=b("form.validation.min",{min:y(_.min)});return h?{code:"min",message:$}:$}if(_&&typeof _.max=="number"&&o>_.max){const $=b("form.validation.max",{max:y(_.max)});return h?{code:"max",message:$}:$}if(_&&typeof _.step=="number"&&_.step>0){const $=typeof _.min=="number"?_.min:0,ee=(o-$)/_.step;if(Math.abs(ee-Math.round(ee))>1e-9){const O=b("form.validation.step",{step:String(_.step)});return h?{code:"step",message:O}:O}}return null},focus(v){const f=g(v);typeof f.focus=="function"&&f.focus()},blur(v){const f=g(v);typeof f.blur=="function"&&f.blur()},destroy(v){const f=v&&v.__latNumber;if(f)for(const o of f.disposers.splice(0))o()},live:{min(v,f){const o=v&&v.__latNumber;o&&(o.min=w(f))},max(v,f){const o=v&&v.__latNumber;o&&(o.max=w(f))},step(v,f){const o=v&&v.__latNumber;o&&(o.step=w(f))},format(v,f){const o=v&&v.__latNumber;o&&(o.format=f&&(typeof f=="object"||typeof f=="string")?D(f,o.locale):null,!o.focused&&o.value!=null&&(o.input.value=o.unit?o.unit.kind==="unit"?i(o.value,o.displayUnit!=null?{...o.unit.opts,display:o.displayUnit}:o.unit.opts):c(o.value,o.unit.opts):o.format?o.format(o.value):l(o.value),o.input.value===""?o.input.removeAttribute("aria-valuetext"):o.input.setAttribute("aria-valuetext",o.input.value)))}}})}),De("packages/modules/form/controls/textarea.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/dom/src/autofill.js"),e=L.applyAutocomplete,P=L.ensureOpaqueName;F("textarea",{kind:"field",build(D,I){const M=I.doc.createElement("textarea");return D.name?M.name=D.name:P(M),e(M,D.autocomplete),D.placeholder!=null&&(M.placeholder=String(D.placeholder)),D.rows!=null&&(M.rows=Number(D.rows)||2),M.value=D.value==null?"":String(D.value),M},read(D){return D.value},write(D,I){D.value=I==null?"":String(I)},state(D,I){D.disabled=I.disabled===!0,D.readOnly=I.readOnly===!0}})}),De("packages/modules/form/controls/checkbox.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/state.js"),e=L.applyBooleanInputState,P=L.guardBooleanInput;F("checkbox",{kind:"toggle",build(D,I){const M=I.doc.createElement("input");return M.type="checkbox",D.name&&(M.name=D.name),M.checked=D.value===!0,P(M),M},read(D){return D.checked},write(D,I){D.checked=I===!0},state(D,I){e(D,I.disabled===!0,I.readOnly===!0)}})}),De("packages/modules/form/controls/buttons.js",function(A,J){"use strict";Object.defineProperty(A,"injectButtonsStyles",{enumerable:!0,get:function(){return T}});const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/button.js"),e=L.buildButton,P=L.buttonItemFrom,D=L.injectButtonStyles,I="lat-button-row",M="data-lattice-button-row-styles",W=Object.freeze(["start","end","center","stretch","space-between"]);function E(){return`
|
|
1977
|
+
`.trim()}function r(v){const f=v&&v.documentElement;if(!f||f.getAttribute(s))return;f.setAttribute(s,"1");const o=v.createElement("style");o.textContent=u(),(v.head||v.body||f).appendChild(o)}function m(v){let f="",o=".";try{for(const _ of new Intl.NumberFormat(v||void 0).formatToParts(12345.6))_.type==="group"?f=_.value:_.type==="decimal"&&(o=_.value)}catch{}return{group:f,decimal:o}}function z(v,f){if(v==null)return null;let o=String(v).trim();if(o==="")return null;const{group:_,decimal:b}=m(f);let y=!1;if(/^\(.*\)$/.test(o)&&(y=!0,o=o.slice(1,-1)),o=o.replace(/[\s ]/g,""),_&&_!=="."&&(o=o.split(_).join("")),o=o.replace(/[^0-9eE+\-.,]/g,""),b===","?(o=o.split(".").join(""),o=o.replace(",",".")):o=o.split(",").join(""),o===""||o==="-"||o==="+")return NaN;o.startsWith("-")&&(y=!y,o=o.slice(1));const h=Number(o);return Number.isFinite(h)?y?-h:h:NaN}function l(v){if(v==null||v==="")return"";const f=typeof v=="number"?v:Number(v);return Number.isFinite(f)?String(f):""}function g(v){return v&&v.__latNumber?v.__latNumber.input:v}function w(v){if(typeof v=="number")return Number.isFinite(v)?v:null;if(v==null||v==="")return null;const f=Number(v);return Number.isFinite(f)?f:null}function x(v){const f=v&&v.props||{};return typeof f.system=="string"&&f.system!==""?{kind:"unit",opts:{system:f.system,unit:f.unit,binary:f.binary===!0,decimals:f.decimals,minDecimals:f.minDecimals,maxDecimals:f.maxDecimals,display:f.display,locale:v.locale||f.locale,group:f.group,space:f.space,placement:f.placement,compound:f.compound,significantFigures:f.significantFigures,nullDisplay:f.nullDisplay}}:typeof f.scale=="string"&&f.scale!==""?{kind:"temperature",opts:{scale:f.scale,display:f.display,decimals:f.decimals,minDecimals:f.minDecimals,maxDecimals:f.maxDecimals,space:f.space,locale:v.locale||f.locale,nullDisplay:f.nullDisplay}}:null}F("number",{kind:"field",build(v,f){const o=f.doc;r(o);const _=v.props&&v.props.format&&(typeof v.props.format=="object"||typeof v.props.format=="string")?v.props.format:null,b=v.locale||void 0,y=_?D(_,b):null,h=typeof f.t=="function"?f.t:e,$=x(v),ee=w(v.step),O=w(v.min),ae=w(v.max),le=typeof O=="number"||typeof ae=="number"||typeof ee=="number"&&ee>0;!$&&le&&v.validationMode==="submit"&&(v.validationMode="change");let se="";if($&&$.kind==="unit"){const G=p($.opts.system,$.opts.unit);se=G?G.symbol:String($.opts.unit||"")}else if($&&$.kind==="temperature"){const G=t($.opts.scale);se=G?G.scale.symbol:""}const Z=o.createElement("input");Z.type="text",Z.inputMode="decimal",Z.className="lat-form__number",v.name?Z.name=v.name:W(Z),M(Z,v.autocomplete),v.placeholder!=null&&(Z.placeholder=String(v.placeholder));const Q={input:Z,format:y,t:h,locale:b,step:ee,min:O,max:ae,unit:$,unitSymbol:se,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},Pe=()=>Q.displayUnit!=null?{...$.opts,display:Q.displayUnit}:$.opts,ie=G=>Q.unit&&Q.unit.kind==="unit"?i(G,Pe()):Q.unit&&Q.unit.kind==="temperature"?c(G,Q.unit.opts):Q.format&&Number.isFinite(G)?Q.format(G):l(G),j=G=>{if(!Q.unit)return z(G,Q.locale);const B=G==null?"":String(G);if(B.trim()==="")return null;const te=Q.unit.kind==="temperature"?d(B,Q.unit.opts):T(B,Q.unit.opts);return te===null?Number.NaN:te},H=()=>Q.unit&&typeof Q.unit.opts.nullDisplay=="string"?Q.unit.opts.nullDisplay:"",ne=G=>{if(G==null||G===""){Q.value=null,Q.invalid=!1,Z.value=H();return}const B=typeof G=="number"?G:Number(G);if(!Number.isFinite(B)){Q.value=null,Q.invalid=!1,Z.value=H();return}Q.value=B,Q.invalid=!1,Z.value=Q.focused?l(B):ie(B)},q=()=>{const G=Z.value;G===""?Z.removeAttribute("aria-valuetext"):Z.setAttribute("aria-valuetext",G)},ke=G=>{const B=j(Z.value);let ge=(B==null||Number.isNaN(B)?0:B)+G;typeof O=="number"&&ge<O&&(ge=O),typeof ae=="number"&&ge>ae&&(ge=ae),Z.value=Q.unit&&!Q.focused?ie(ge):l(ge)},Ee=()=>{Q.focused=!0,Q.value!=null&&(Z.value=l(Q.value)),q()},C=()=>{Q.focused=!1;const G=j(Z.value);G==null?(Q.value=null,Q.invalid=!1,Z.value=H()):Number.isNaN(G)?(Q.invalid=!0,Q.value!=null?Z.value=ie(Q.value):Z.value=""):(Q.invalid=!1,Q.value=G,Z.value=ie(G)),q()},K=G=>{if(G.key!=="ArrowUp"&&G.key!=="ArrowDown")return;typeof G.preventDefault=="function"&&G.preventDefault();const B=typeof ee=="number"&&ee>0?ee:1;ke(G.key==="ArrowUp"?B:-B)};if(Z.addEventListener("focus",Ee),Z.addEventListener("blur",C),Z.addEventListener("keydown",K),Q.disposers.push(()=>Z.removeEventListener("focus",Ee),()=>Z.removeEventListener("blur",C),()=>Z.removeEventListener("keydown",K)),ne(v.value),typeof O=="number"&&Z.setAttribute("aria-valuemin",String(O)),typeof ae=="number"&&Z.setAttribute("aria-valuemax",String(ae)),q(),Z.__latNumber=Q,$&&$.kind==="unit"&&v.props&&v.props.unitPicker===!0){const G=o.createElement("div");G.className="lat-form__number-unit";const B=o.createElement("select");B.className="lat-form__number-unitpick",B.setAttribute("aria-label",h("form.number.unitPicker"));const te=S($.opts.system);for(const ve of te){const be=o.createElement("option");be.value=ve.symbol,be.textContent=ve.symbol,B.appendChild(be)}const ge=$.opts.display&&$.opts.display!=="auto"?$.opts.display:se,oe=te.some(ve=>ve.symbol===ge)?ge:se;B.value=oe,Q.displayUnit=oe;const fe=()=>{Q.displayUnit=B.value,!Q.focused&&Q.value!=null&&(Z.value=ie(Q.value)),q()};return B.addEventListener("change",fe),Q.disposers.push(()=>B.removeEventListener("change",fe)),Q.picker=B,G.appendChild(Z),G.appendChild(B),G.__latNumber=Q,G}if(v.props&&v.props.spinner===!0){const G=o.createElement("div");G.className="lat-form__number-spinner";const B=(oe,fe)=>{const ve=o.createElement("button");return ve.type="button",ve.tabIndex=-1,ve.className="lat-form__number-step",ve.textContent=oe,ve.addEventListener("mousedown",be=>{typeof be.preventDefault=="function"&&be.preventDefault();const X=typeof ee=="number"&&ee>0?ee:1;ke(fe*X)}),ve},te=B("−",-1),ge=B("+",1);return Q.buttons=[te,ge],G.appendChild(te),G.appendChild(Z),G.appendChild(ge),G.__latNumber=Q,G}return Z},read(v){const f=v&&v.__latNumber,o=f?f.input:v;if(f&&!f.focused)return f.unit&&f.invalid?Number.NaN:f.value;if(f&&f.unit){const _=o.value;if(String(_).trim()==="")return null;const b=f.unit.kind==="temperature"?d(_,f.unit.opts):T(_,f.unit.opts);return b===null?Number.NaN:b}return z(o.value,f?f.locale:void 0)},write(v,f){const o=v&&v.__latNumber,_=o?o.input:v,b=o&&o.unit&&typeof o.unit.opts.nullDisplay=="string"?o.unit.opts.nullDisplay:"";if(f==null||f===""){o&&(o.value=null,o.invalid=!1),_.value=b;return}const y=typeof f=="number"?f:Number(f);if(!Number.isFinite(y)){o&&(o.value=null,o.invalid=!1),_.value=b;return}o&&(o.value=y,o.invalid=!1),o&&o.focused?_.value=l(y):o&&o.unit?_.value=o.unit.kind==="unit"?i(y,o.displayUnit!=null?{...o.unit.opts,display:o.displayUnit}:o.unit.opts):c(y,o.unit.opts):o&&o.format?_.value=o.format(y):_.value=l(y),_.value===""?_.removeAttribute("aria-valuetext"):_.setAttribute("aria-valuetext",_.value)},state(v,f){const o=v&&v.__latNumber,_=o?o.input:v;_.disabled=f.disabled===!0,_.readOnly=f.readOnly===!0;const b=f.disabled===!0||f.readOnly===!0;for(const y of o?o.buttons:[])y.disabled=b;o&&o.picker&&(o.picker.disabled=b)},validate(v,f,o){const _=v&&v.__latNumber,b=_&&_.t?_.t:e;if(o==null||o==="")return null;if(typeof o!="number"||Number.isNaN(o))return _&&_.unit?b("form.validation.unit",{unit:_.unitSymbol}):b("form.validation.number");const y=$=>_&&_.unit&&_.unit.kind==="unit"?i($,{..._.unit.opts,display:_.unit.opts.unit,group:!0}):_&&_.unit&&_.unit.kind==="temperature"?c($,_.unit.opts):String($),h=!(_&&_.unit);if(_&&typeof _.min=="number"&&o<_.min){const $=b("form.validation.min",{min:y(_.min)});return h?{code:"min",message:$}:$}if(_&&typeof _.max=="number"&&o>_.max){const $=b("form.validation.max",{max:y(_.max)});return h?{code:"max",message:$}:$}if(_&&typeof _.step=="number"&&_.step>0){const $=typeof _.min=="number"?_.min:0,ee=(o-$)/_.step;if(Math.abs(ee-Math.round(ee))>1e-9){const O=b("form.validation.step",{step:String(_.step)});return h?{code:"step",message:O}:O}}return null},focus(v){const f=g(v);typeof f.focus=="function"&&f.focus()},blur(v){const f=g(v);typeof f.blur=="function"&&f.blur()},destroy(v){const f=v&&v.__latNumber;if(f)for(const o of f.disposers.splice(0))o()},live:{min(v,f){const o=v&&v.__latNumber;o&&(o.min=w(f))},max(v,f){const o=v&&v.__latNumber;o&&(o.max=w(f))},step(v,f){const o=v&&v.__latNumber;o&&(o.step=w(f))},format(v,f){const o=v&&v.__latNumber;o&&(o.format=f&&(typeof f=="object"||typeof f=="string")?D(f,o.locale):null,!o.focused&&o.value!=null&&(o.input.value=o.unit?o.unit.kind==="unit"?i(o.value,o.displayUnit!=null?{...o.unit.opts,display:o.displayUnit}:o.unit.opts):c(o.value,o.unit.opts):o.format?o.format(o.value):l(o.value),o.input.value===""?o.input.removeAttribute("aria-valuetext"):o.input.setAttribute("aria-valuetext",o.input.value)))}}})}),Me("packages/modules/form/controls/textarea.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/dom/src/autofill.js"),e=L.applyAutocomplete,P=L.ensureOpaqueName;F("textarea",{kind:"field",build(D,I){const M=I.doc.createElement("textarea");return D.name?M.name=D.name:P(M),e(M,D.autocomplete),D.placeholder!=null&&(M.placeholder=String(D.placeholder)),D.rows!=null&&(M.rows=Number(D.rows)||2),M.value=D.value==null?"":String(D.value),M},read(D){return D.value},write(D,I){D.value=I==null?"":String(I)},state(D,I){D.disabled=I.disabled===!0,D.readOnly=I.readOnly===!0}})}),Me("packages/modules/form/controls/checkbox.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/state.js"),e=L.applyBooleanInputState,P=L.guardBooleanInput;F("checkbox",{kind:"toggle",build(D,I){const M=I.doc.createElement("input");return M.type="checkbox",D.name&&(M.name=D.name),M.checked=D.value===!0,P(M),M},read(D){return D.checked},write(D,I){D.checked=I===!0},state(D,I){e(D,I.disabled===!0,I.readOnly===!0)}})}),Me("packages/modules/form/controls/buttons.js",function(A,J){"use strict";Object.defineProperty(A,"injectButtonsStyles",{enumerable:!0,get:function(){return T}});const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/button.js"),e=L.buildButton,P=L.buttonItemFrom,D=L.injectButtonStyles,I="lat-button-row",M="data-lattice-button-row-styles",W=Object.freeze(["start","end","center","stretch","space-between"]);function E(){return`
|
|
1978
1978
|
.lat-form__control .${I}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
|
|
1979
1979
|
.lat-form__control .${I}[data-align='start']{ justify-content:flex-start; }
|
|
1980
1980
|
.lat-form__control .${I}[data-align='end']{ justify-content:flex-end; }
|
|
@@ -1982,7 +1982,7 @@ ${v}
|
|
|
1982
1982
|
.lat-form__control .${I}[data-align='space-between']{ justify-content:space-between; }
|
|
1983
1983
|
.lat-form__control .${I}[data-align='stretch']{ justify-content:flex-start; }
|
|
1984
1984
|
.lat-form__control .${I}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
|
|
1985
|
-
`.trim()}function T(p){const S=p&&p.documentElement;if(!S||S.getAttribute(M))return;S.setAttribute(M,"1");const k=p.createElement("style");k.textContent=E(),(p.head||p.body||S).appendChild(k)}function i(p){return W.includes(p)?p:"start"}F("buttons",{kind:"display",action:!0,build(p,S){D(S.doc),T(S.doc);const k=p.props||{},d=Array.isArray(k.buttons)?k.buttons:Array.isArray(k.items)?k.items:[],c=S.doc.createElement("div");c.className=I,c.setAttribute("data-align",i(k.align));const t=[];return d.forEach((s,u)=>{if(s==null||typeof s!="object")return;const r=P(s),m=e(r,S),z=()=>{m.disabled||m.getAttribute("aria-disabled")==="true"||S.emitter.emit("click",{name:r.name,item:r,value:null})};m.addEventListener("click",z),t.push(()=>m.removeEventListener("click",z)),c.appendChild(m)}),S.disposers.push(()=>{for(const s of t)s()}),c},read(){return null},write(){},state(){}})}),De("packages/modules/form/controls/text.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl;F("text",{kind:"display",build(L,e){const P=e.doc.createElement("span");return P.className="lat-form__text",P.textContent=L.value==null?"":String(L.value),P},read(L){return L.textContent},write(L,e){L.textContent=e==null?"":String(e)},state(){}})}),De("packages/modules/form/controls/select.js",function(A,J){"use strict";Object.defineProperty(A,"createSelect",{enumerable:!0,get:function(){return o}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,M=J("packages/modules/form/styles.js").injectStyles,W=J("packages/modules/form/controls/combo.js"),E=W.renderAdornment,T=W.renderTemplateContent,i=W.injectAdornmentStyles,p=J("packages/modules/form/controls/field-icon.js"),S=p.makeFieldIcon,k=p.injectFieldIconStyles,d=J("packages/modules/form/controls/popup-layer.js"),c=d.openInLayer,t=d.flushOutsideFocus,u=J("packages/dom/src/autofill.js").applyAutocomplete,r="lat-select__popup--above",m=700;function z(b,y){const h=b&&b.defaultView;return h&&h.Event?new h.Event(y,{bubbles:!0}):{type:y,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function l(b){return b!=null&&typeof b=="object"?"value"in b?b.value:"":b??""}function g(b){return b==null?"":typeof b!="object"?String(b):b.label!=null?String(b.label):b.text!=null?String(b.text):b.value==null?"":String(b.value)}function w(b){return b!=null&&typeof b=="object"&&Array.isArray(b.options)}function x(b){const y=[];if(!Array.isArray(b))return y;for(const h of b)if(w(h)){const $=g(h);y.push({group:!0,label:$});for(const ee of h.options)if(w(ee)){y.push({group:!0,label:g(ee)});for(const O of ee.options)y.push(v(O))}else y.push(v(ee))}else y.push(v(h));return y}function v(b){const y=b!=null&&typeof b=="object"?b:{},h=y.description!=null?String(y.description):y.subtitle!=null?String(y.subtitle):null;return{group:!1,value:l(b),label:g(b),icon:y.icon,avatar:y.avatar,color:y.color,dot:y.dot,description:h,disabled:y.disabled===!0}}function f(b,y){return b===y?!0:b!=null&&y!=null&&String(b)===String(y)}function o(b,y={}){const h=y.doc||b&&b.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;h&&(M(h),i(h),k(h));const $=typeof y.t=="function"?y.t:e,ee=y.multiple===!0;let O=x(y.options),ae=O.filter(xe=>!xe.group),se=[];const ce=h.createElement("div");ce.className="lat-combo lat-select",y.inForm||(ce.setAttribute("data-lattice-standalone","true"),ce.setAttribute("data-density","standard")),ee&&ce.setAttribute("data-multiple","true");const Z=h.createElement("button");Z.type="button",Z.className="lat-select__trigger",Z.setAttribute("role","combobox"),Z.setAttribute("aria-haspopup","listbox"),Z.setAttribute("aria-expanded","false"),ee&&Z.setAttribute("aria-multiselectable","true"),Z.setAttribute("aria-label",y.ariaLabel||$("form.select.toggle"));const Q=h.createElement("span");Q.className="lat-select__value";const Pe=h.createElement("span");Pe.className="lat-select__arrow",Pe.setAttribute("aria-hidden","true");const ie=S(h,"chevronDown");ie&&Pe.appendChild(ie),Z.appendChild(Q),Z.appendChild(Pe);const j=h.createElement("div");j.className="lat-combo__popup lat-select__popup",j.hidden=!0;const H=h.createElement("div");H.className="lat-combo__list lat-select__list",H.setAttribute("role","listbox"),j.appendChild(H),ce.appendChild(Z);const ne=y.clearable===!0,q=h.createElement("button");q.type="button",q.className="lat-select__clear",q.setAttribute("aria-label",$("form.select.clear")),q.hidden=!0;const we=S(h,"close");we&&q.appendChild(we),ne&&ce.appendChild(q),ce.appendChild(j);const $e=D("lat-select-lb");H.id=$e,Z.setAttribute("aria-controls",$e);const C=[];let K=-1,G=!1,B="",te=null;const ge=[];let oe=!1,fe=null;function ve(xe,Ke,Fe){xe.addEventListener(Ke,Fe),ge.push(()=>xe.removeEventListener(Ke,Fe))}function me(xe){return ae.find(Ke=>f(Ke.value,xe))||null}function X(){b.dispatchEvent(z(h,"change"))}function de(){return ee?se.slice():se.length?se[0]:""}function pe(){if(ne&&(q.hidden=se.length===0||y.readOnly===!0,Q.classList.toggle("lat-select__value--with-clear",!q.hidden)),!ee){for(;Q.firstChild;)Q.removeChild(Q.firstChild);if(se.length){const xe=me(se[0]),Ke=T(h,xe,y.selectedTemplate);if(Ke)Q.appendChild(Ke);else{const Fe=E(h,xe);Fe&&Q.appendChild(Fe);const Be=h.createElement("span");Be.className="lat-select__label",Be.textContent=xe?xe.label:se[0],Q.appendChild(Be)}Q.removeAttribute("data-placeholder")}else Q.textContent=y.placeholder!=null?String(y.placeholder):"",Q.setAttribute("data-placeholder","true");return}se.length===0?(Q.textContent=y.placeholder!=null?String(y.placeholder):"",Q.setAttribute("data-placeholder","true")):(Q.textContent=se.map(xe=>{const Ke=me(xe);return Ke?Ke.label:xe}).join(", "),Q.removeAttribute("data-placeholder"))}function Y(xe){let Ke;const Fe=ae.some(Be=>Be.value==="");if(ee)Ke=Array.isArray(xe)?xe:xe==null||xe===""&&!Fe?[]:[xe];else{const Be=Array.isArray(xe)?xe.length?xe[0]:null:xe;Ke=Be==null||Be===""&&!Fe?[]:[Be]}se=[];for(const Be of Ke){const Qe=ae.find(qe=>f(qe.value,Be));Qe&&se.push(Qe.value)}pe(),re()}function re(){for(let xe=0;xe<C.length;xe++){const Ke=C[xe],Fe=ae[xe],Be=!!Fe&&se.some(qe=>f(qe,Fe.value));Ke.setAttribute("aria-selected",Be?"true":"false");const Qe=Ke.querySelector(".lat-select__check");Qe&&(Qe.textContent=Be?"✓":"")}}function N(xe){for(let Ke=Math.max(0,xe);Ke<ae.length;Ke++)if(!ae[Ke].disabled)return Ke;return-1}function ue(xe){for(let Ke=Math.min(ae.length-1,xe);Ke>=0;Ke--)if(!ae[Ke].disabled)return Ke;return-1}function ye(xe){K=xe;for(const Ke of C)Ke.classList.remove("lat-select__option--active");xe>=0&&xe<C.length?(C[xe].classList.add("lat-select__option--active"),Z.setAttribute("aria-activedescendant",C[xe].id)):Z.removeAttribute("aria-activedescendant")}function R(){if(K<0||K>=C.length)return;const xe=C[K];xe.offsetTop<H.scrollTop?H.scrollTop=xe.offsetTop:xe.offsetTop+xe.offsetHeight>H.scrollTop+H.clientHeight&&(H.scrollTop=xe.offsetTop+xe.offsetHeight-H.clientHeight)}function n(xe){const Ke=K<0?xe>0?-1:ae.length:K,Fe=xe>0?N(Ke+1):ue(Ke-1);Fe!==-1&&ye(Fe),R()}function a(){if(!(G||oe||y.disabled||y.readOnly)&&(G=!0,j.hidden=!1,Z.setAttribute("aria-expanded","true"),fe=c(j,Z,{aboveClass:r,onOffscreen:U}),K<0&&ae.length)){const xe=ee?-1:se.length?ae.findIndex(Ke=>f(Ke.value,se[0])):-1;ye(N(xe>=0?xe:0))}}function U(){G&&(G=!1,j.hidden=!0,j.classList.remove(r),fe&&(fe.close(),fe=null),Z.setAttribute("aria-expanded","false"),ye(-1),B="")}function V(){G?U():a()}function le(){y.readOnly||se.length===0||(se=[],pe(),re(),U(),X(),Z.focus())}function Ae(xe){if(y.readOnly)return;if(!ee){const Fe=se.length===0||se[0]!==xe;se=[xe],pe(),re(),U(),Fe&&X();return}se=se.some(Fe=>Fe===xe)?se.filter(Fe=>Fe!==xe):[...se,xe],pe(),re(),Z.focus(),X()}function he(){K<0||K>=ae.length||ae[K].disabled||Ae(ae[K].value)}function je(xe){te&&clearTimeout(te),B+=xe.toLowerCase(),te=setTimeout(()=>{B="",te=null},m),G||a();const Ke=K>-1?K+1:0;let Fe=-1;for(let Be=Ke;Be<ae.length;Be++)if(!ae[Be].disabled&&ae[Be].label.toLowerCase().startsWith(B)){Fe=Be;break}if(Fe===-1){for(let Be=0;Be<Ke;Be++)if(!ae[Be].disabled&&ae[Be].label.toLowerCase().startsWith(B)){Fe=Be;break}}Fe!==-1&&(ye(Fe),R())}function ke(xe){if(y.readOnly)return;const Ke=xe.altKey===!0;if(xe.key==="ArrowDown"||Ke&&xe.key==="ArrowDown")xe.preventDefault(),G?n(1):(a(),K===-1&&ae.length&&ye(N(0)));else if(xe.key==="ArrowUp")xe.preventDefault(),G?n(-1):(a(),ae.length&&ye(ue(ae.length-1)));else if(xe.key==="Home"){if(!G)return;xe.preventDefault();const Fe=N(0);Fe!==-1&&ye(Fe),R()}else if(xe.key==="End"){if(!G)return;xe.preventDefault();const Fe=ue(ae.length-1);Fe!==-1&&ye(Fe),R()}else xe.key==="Enter"||xe.key===" "?(xe.preventDefault(),G?he():a()):xe.key==="Escape"?G&&(xe.preventDefault(),U()):xe.key==="Tab"?G&&he():xe.key.length===1&&!xe.ctrlKey&&!xe.metaKey&&!Ke&&(xe.preventDefault(),je(xe.key))}function Re(xe){xe<0||xe>=ae.length||ae[xe].disabled||Ae(ae[xe].value)}function Ne(xe,Ke){const Fe=h.createElement("div");if(Fe.className="lat-combo__option",Fe.setAttribute("role","option"),Fe.id=`${$e}-opt-${Ke}`,Fe.setAttribute("data-value",xe.value),Fe.setAttribute("aria-selected","false"),xe.disabled&&(Fe.setAttribute("aria-disabled","true"),Fe.classList.add("lat-select__option--disabled")),ee){const qe=h.createElement("span");qe.className="lat-select__check",qe.setAttribute("aria-hidden","true"),Fe.appendChild(qe)}const Be=T(h,xe,y.optionTemplate);if(Be)Fe.appendChild(Be);else{const qe=E(h,xe);qe&&Fe.appendChild(qe);const ht=h.createElement("span");ht.className="lat-combo__text";const mt=h.createElement("span");if(mt.className="lat-combo__title",mt.textContent=xe.label,ht.appendChild(mt),xe.description!=null){const lt=h.createElement("span");lt.className="lat-combo__subtitle",lt.textContent=xe.description,ht.appendChild(lt)}Fe.appendChild(ht)}return ve(Fe,"click",qe=>{qe.stopPropagation(),Re(Ke)}),C.push(Fe),Fe}function Me(){let xe=0,Ke=0,Fe=null,Be=null;for(const Qe of O)if(Qe.group)Fe=h.createElement("div"),Fe.setAttribute("role","group"),Be=h.createElement("div"),Be.id=`${$e}-grp-${Ke}`,Be.className="lat-select__group",Be.textContent=Qe.label||"",Fe.setAttribute("aria-labelledby",Be.id),Fe.appendChild(Be),H.appendChild(Fe),Ke+=1;else{const qe=Ne(Qe,xe);xe+=1,Fe?Fe.appendChild(qe):H.appendChild(qe)}}function Oe(){for(;H.firstChild;)H.removeChild(H.firstChild);C.length=0,ye(-1),Me()}function Te(xe){if(oe)return;O=x(xe),ae=O.filter(Fe=>!Fe.group),Oe();const Ke=se.length;se=se.filter(Fe=>ae.some(Be=>f(Be.value,Fe))),pe(),re(),se.length!==Ke&&X()}function Le(xe){oe||(y.placeholder=xe,pe())}function We(){oe||(Oe(),pe(),re())}const Ve=()=>{y.disabled||V()},Ze=()=>{t(ce,j)},He=()=>{b.dispatchEvent(z(h,"focus"))},rt=()=>{b.dispatchEvent(z(h,"blur")),U()},Xe=xe=>{ce.contains(xe.target)||j.contains(xe.target)||U()};ve(Z,"pointerdown",Ze),ve(Z,"click",Ve),ne&&ve(q,"click",le),ve(Z,"keydown",ke),ve(Z,"focus",He),ve(Z,"blur",rt),ve(H,"mousedown",xe=>xe.preventDefault()),h&&ve(h,"mousedown",Xe),Me(),Y(y.value);const Ge={el:b,root:ce,trigger:Z,getValue:de,setValue(xe){return Y(xe),Ge},setOptions(xe){return Te(xe),Ge},setPlaceholder(xe){return Le(xe),Ge},reload(){return We(),Ge},open(){return a(),Ge},close(){return U(),Ge},focus(){return Z.focus(),Ge},blur(){return Z.blur(),Ge},setDisabled(xe){y.disabled=xe,Z.disabled=xe,xe&&U()},setReadOnly(xe){y.readOnly=xe,xe?(Z.setAttribute("aria-readonly","true"),U()):Z.removeAttribute("aria-readonly"),pe()},destroy(){U(),oe=!0,te&&clearTimeout(te);for(const xe of ge.splice(0))xe();for(;ce.firstChild;)ce.removeChild(ce.firstChild)}};return b.appendChild(ce),b.__select=Ge,Ge}function _(b,y){const h=y.doc.createElement("select");b.name&&(h.name=b.name),u(h,b.autocomplete);const $=b.props&&b.props.multiple===!0;$&&(h.multiple=!0),h.__multiple=$;const ee=x(b.options),O=ee.filter(Z=>!Z.group),ae=O.some(Z=>Z.value===""),se=y.doc.createElement("option");se.value="",se.textContent=b.placeholder!=null?String(b.placeholder):"",se.setAttribute("data-lattice-placeholder","true"),!$&&!ae&&h.appendChild(se);let ce=null;for(const Z of ee)if(Z.group)ce=y.doc.createElement("optgroup"),ce.label=Z.label||"",h.appendChild(ce);else{const Q=y.doc.createElement("option");Q.value=String(Z.value),Q.textContent=Z.label,Z.disabled&&(Q.disabled=!0),Q.__value=Z.value,Q.__typed=!0,(ce||h).appendChild(Q)}if($){const Z=(Array.isArray(b.value)?b.value:[]).filter(Q=>Q!=null&&Q!=="");for(const Q of h.options)Q.__typed&&(Q.selected=Z.some(Pe=>f(Pe,Q.__value)))}else{const Z=b.value==null||b.value===""&&!ae?null:b.value,Q=Z==null?null:O.find(Pe=>f(Pe.value,Z));h.value=Q?String(Q.value):""}return h.__select={getValue(){if(!$){if(h.selectedOptions&&h.selectedOptions.length){const Q=h.selectedOptions[0];if(Q&&Q.__typed)return Q.__value}const Z=O.find(Q=>f(Q.value,h.value));return Z?Z.value:h.value}return[...h.selectedOptions].map(Z=>Z.__typed?Z.__value:Z.value)},setValue(Z){if(!$){const Pe=Z==null||Z===""&&!ae?null:Z,ie=Pe==null?null:O.find(j=>f(j.value,Pe));h.value=ie?String(ie.value):"";return}const Q=(Array.isArray(Z)?Z:[]).filter(Pe=>Pe!=null&&Pe!=="");for(const Pe of h.options)Pe.__typed&&(Pe.selected=Q.some(ie=>f(ie,Pe.__value)))},setDisabled(Z){h.disabled=Z},setReadOnly(Z){Z&&(h.disabled=!0)},setPlaceholder(Z){const Q=h.querySelector("option[data-lattice-placeholder]");Q&&(Q.textContent=Z!=null?String(Z):"")},focus(){h.focus()},blur(){h.blur()},destroy(){}},h}F("select",{kind:"field",build(b,y){const h=b.props||{};if(h.native===!0)return _(b,y);const $=y.doc.createElement("div");return o($,{options:b.options,multiple:h.multiple===!0,value:b.value,placeholder:b.placeholder,ariaLabel:b.label,optionTemplate:h.optionTemplate,selectedTemplate:h.selectedTemplate,clearable:h.clearable===!0,t:y.t,doc:y.doc,inForm:!0}),y.disposers.push(()=>{$.__select&&$.__select.destroy()}),$},read(b){return b.__select?b.__select.getValue():""},write(b,y){b.__select&&b.__select.setValue(y)},state(b,y){b.__select&&(b.__select.setDisabled(y.disabled===!0),b.__select.setReadOnly(y.readOnly===!0))},focus(b){b.__select&&b.__select.focus()},blur(b){b.__select&&b.__select.blur()},live:{placeholder(b,y){b.__select&&b.__select.setPlaceholder(y)}}})}),De("packages/modules/form/controls/listbox.js",function(A,J){"use strict";Object.defineProperty(A,"createListBox",{enumerable:!0,get:function(){return y}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,I=J("packages/modules/form/scheme.js"),M=I.rootDefaultsCss,W=I.darkAccentCss,E=J("packages/modules/form/controls/combo.js"),T=E.renderAdornment,i=E.renderTemplateContent,p=E.injectAdornmentStyles,k=J("packages/dom/src/autofill.js").noHistory,d="data-lattice-form-listbox-styles",c=30,t=46,s=48,u=250,r=700;function m(){return`
|
|
1985
|
+
`.trim()}function T(p){const S=p&&p.documentElement;if(!S||S.getAttribute(M))return;S.setAttribute(M,"1");const k=p.createElement("style");k.textContent=E(),(p.head||p.body||S).appendChild(k)}function i(p){return W.includes(p)?p:"start"}F("buttons",{kind:"display",action:!0,build(p,S){D(S.doc),T(S.doc);const k=p.props||{},d=Array.isArray(k.buttons)?k.buttons:Array.isArray(k.items)?k.items:[],c=S.doc.createElement("div");c.className=I,c.setAttribute("data-align",i(k.align));const t=[];return d.forEach((s,u)=>{if(s==null||typeof s!="object")return;const r=P(s),m=e(r,S),z=()=>{m.disabled||m.getAttribute("aria-disabled")==="true"||S.emitter.emit("click",{name:r.name,item:r,value:null})};m.addEventListener("click",z),t.push(()=>m.removeEventListener("click",z)),c.appendChild(m)}),S.disposers.push(()=>{for(const s of t)s()}),c},read(){return null},write(){},state(){}})}),Me("packages/modules/form/controls/text.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl;F("text",{kind:"display",build(L,e){const P=e.doc.createElement("span");return P.className="lat-form__text",P.textContent=L.value==null?"":String(L.value),P},read(L){return L.textContent},write(L,e){L.textContent=e==null?"":String(e)},state(){}})}),Me("packages/modules/form/controls/select.js",function(A,J){"use strict";Object.defineProperty(A,"createSelect",{enumerable:!0,get:function(){return o}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,M=J("packages/modules/form/styles.js").injectStyles,W=J("packages/modules/form/controls/combo.js"),E=W.renderAdornment,T=W.renderTemplateContent,i=W.injectAdornmentStyles,p=J("packages/modules/form/controls/field-icon.js"),S=p.makeFieldIcon,k=p.injectFieldIconStyles,d=J("packages/modules/form/controls/popup-layer.js"),c=d.openInLayer,t=d.flushOutsideFocus,u=J("packages/dom/src/autofill.js").applyAutocomplete,r="lat-select__popup--above",m=700;function z(b,y){const h=b&&b.defaultView;return h&&h.Event?new h.Event(y,{bubbles:!0}):{type:y,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function l(b){return b!=null&&typeof b=="object"?"value"in b?b.value:"":b??""}function g(b){return b==null?"":typeof b!="object"?String(b):b.label!=null?String(b.label):b.text!=null?String(b.text):b.value==null?"":String(b.value)}function w(b){return b!=null&&typeof b=="object"&&Array.isArray(b.options)}function x(b){const y=[];if(!Array.isArray(b))return y;for(const h of b)if(w(h)){const $=g(h);y.push({group:!0,label:$});for(const ee of h.options)if(w(ee)){y.push({group:!0,label:g(ee)});for(const O of ee.options)y.push(v(O))}else y.push(v(ee))}else y.push(v(h));return y}function v(b){const y=b!=null&&typeof b=="object"?b:{},h=y.description!=null?String(y.description):y.subtitle!=null?String(y.subtitle):null;return{group:!1,value:l(b),label:g(b),icon:y.icon,avatar:y.avatar,color:y.color,dot:y.dot,description:h,disabled:y.disabled===!0}}function f(b,y){return b===y?!0:b!=null&&y!=null&&String(b)===String(y)}function o(b,y={}){const h=y.doc||b&&b.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;h&&(M(h),i(h),k(h));const $=typeof y.t=="function"?y.t:e,ee=y.multiple===!0;let O=x(y.options),ae=O.filter(Ae=>!Ae.group),le=[];const se=h.createElement("div");se.className="lat-combo lat-select",y.inForm||(se.setAttribute("data-lattice-standalone","true"),se.setAttribute("data-density","standard")),ee&&se.setAttribute("data-multiple","true");const Z=h.createElement("button");Z.type="button",Z.className="lat-select__trigger",Z.setAttribute("role","combobox"),Z.setAttribute("aria-haspopup","listbox"),Z.setAttribute("aria-expanded","false"),ee&&Z.setAttribute("aria-multiselectable","true"),Z.setAttribute("aria-label",y.ariaLabel||$("form.select.toggle"));const Q=h.createElement("span");Q.className="lat-select__value";const Pe=h.createElement("span");Pe.className="lat-select__arrow",Pe.setAttribute("aria-hidden","true");const ie=S(h,"chevronDown");ie&&Pe.appendChild(ie),Z.appendChild(Q),Z.appendChild(Pe);const j=h.createElement("div");j.className="lat-combo__popup lat-select__popup",j.hidden=!0;const H=h.createElement("div");H.className="lat-combo__list lat-select__list",H.setAttribute("role","listbox"),j.appendChild(H),se.appendChild(Z);const ne=y.clearable===!0,q=h.createElement("button");q.type="button",q.className="lat-select__clear",q.setAttribute("aria-label",$("form.select.clear")),q.hidden=!0;const ke=S(h,"close");ke&&q.appendChild(ke),ne&&se.appendChild(q),se.appendChild(j);const Ee=D("lat-select-lb");H.id=Ee,Z.setAttribute("aria-controls",Ee);const C=[];let K=-1,G=!1,B="",te=null;const ge=[];let oe=!1,fe=null;function ve(Ae,Ke,He){Ae.addEventListener(Ke,He),ge.push(()=>Ae.removeEventListener(Ke,He))}function be(Ae){return ae.find(Ke=>f(Ke.value,Ae))||null}function X(){b.dispatchEvent(z(h,"change"))}function de(){return ee?le.slice():le.length?le[0]:""}function pe(){if(ne&&(q.hidden=le.length===0||y.readOnly===!0,Q.classList.toggle("lat-select__value--with-clear",!q.hidden)),!ee){for(;Q.firstChild;)Q.removeChild(Q.firstChild);if(le.length){const Ae=be(le[0]),Ke=T(h,Ae,y.selectedTemplate);if(Ke)Q.appendChild(Ke);else{const He=E(h,Ae);He&&Q.appendChild(He);const Be=h.createElement("span");Be.className="lat-select__label",Be.textContent=Ae?Ae.label:le[0],Q.appendChild(Be)}Q.removeAttribute("data-placeholder")}else Q.textContent=y.placeholder!=null?String(y.placeholder):"",Q.setAttribute("data-placeholder","true");return}le.length===0?(Q.textContent=y.placeholder!=null?String(y.placeholder):"",Q.setAttribute("data-placeholder","true")):(Q.textContent=le.map(Ae=>{const Ke=be(Ae);return Ke?Ke.label:Ae}).join(", "),Q.removeAttribute("data-placeholder"))}function Y(Ae){let Ke;const He=ae.some(Be=>Be.value==="");if(ee)Ke=Array.isArray(Ae)?Ae:Ae==null||Ae===""&&!He?[]:[Ae];else{const Be=Array.isArray(Ae)?Ae.length?Ae[0]:null:Ae;Ke=Be==null||Be===""&&!He?[]:[Be]}le=[];for(const Be of Ke){const Qe=ae.find(Je=>f(Je.value,Be));Qe&&le.push(Qe.value)}pe(),re()}function re(){for(let Ae=0;Ae<C.length;Ae++){const Ke=C[Ae],He=ae[Ae],Be=!!He&&le.some(Je=>f(Je,He.value));Ke.setAttribute("aria-selected",Be?"true":"false");const Qe=Ke.querySelector(".lat-select__check");Qe&&(Qe.textContent=Be?"✓":"")}}function N(Ae){for(let Ke=Math.max(0,Ae);Ke<ae.length;Ke++)if(!ae[Ke].disabled)return Ke;return-1}function ce(Ae){for(let Ke=Math.min(ae.length-1,Ae);Ke>=0;Ke--)if(!ae[Ke].disabled)return Ke;return-1}function ye(Ae){K=Ae;for(const Ke of C)Ke.classList.remove("lat-select__option--active");Ae>=0&&Ae<C.length?(C[Ae].classList.add("lat-select__option--active"),Z.setAttribute("aria-activedescendant",C[Ae].id)):Z.removeAttribute("aria-activedescendant")}function R(){if(K<0||K>=C.length)return;const Ae=C[K];Ae.offsetTop<H.scrollTop?H.scrollTop=Ae.offsetTop:Ae.offsetTop+Ae.offsetHeight>H.scrollTop+H.clientHeight&&(H.scrollTop=Ae.offsetTop+Ae.offsetHeight-H.clientHeight)}function n(Ae){const Ke=K<0?Ae>0?-1:ae.length:K,He=Ae>0?N(Ke+1):ce(Ke-1);He!==-1&&ye(He),R()}function a(){if(!(G||oe||y.disabled||y.readOnly)&&(G=!0,j.hidden=!1,Z.setAttribute("aria-expanded","true"),fe=c(j,Z,{aboveClass:r,onOffscreen:U}),K<0&&ae.length)){const Ae=ee?-1:le.length?ae.findIndex(Ke=>f(Ke.value,le[0])):-1;ye(N(Ae>=0?Ae:0))}}function U(){G&&(G=!1,j.hidden=!0,j.classList.remove(r),fe&&(fe.close(),fe=null),Z.setAttribute("aria-expanded","false"),ye(-1),B="")}function V(){G?U():a()}function ue(){y.readOnly||le.length===0||(le=[],pe(),re(),U(),X(),Z.focus())}function Ce(Ae){if(y.readOnly)return;if(!ee){const He=le.length===0||le[0]!==Ae;le=[Ae],pe(),re(),U(),He&&X();return}le=le.some(He=>He===Ae)?le.filter(He=>He!==Ae):[...le,Ae],pe(),re(),Z.focus(),X()}function he(){K<0||K>=ae.length||ae[K].disabled||Ce(ae[K].value)}function je(Ae){te&&clearTimeout(te),B+=Ae.toLowerCase(),te=setTimeout(()=>{B="",te=null},m),G||a();const Ke=K>-1?K+1:0;let He=-1;for(let Be=Ke;Be<ae.length;Be++)if(!ae[Be].disabled&&ae[Be].label.toLowerCase().startsWith(B)){He=Be;break}if(He===-1){for(let Be=0;Be<Ke;Be++)if(!ae[Be].disabled&&ae[Be].label.toLowerCase().startsWith(B)){He=Be;break}}He!==-1&&(ye(He),R())}function we(Ae){if(y.readOnly)return;const Ke=Ae.altKey===!0;if(Ae.key==="ArrowDown"||Ke&&Ae.key==="ArrowDown")Ae.preventDefault(),G?n(1):(a(),K===-1&&ae.length&&ye(N(0)));else if(Ae.key==="ArrowUp")Ae.preventDefault(),G?n(-1):(a(),ae.length&&ye(ce(ae.length-1)));else if(Ae.key==="Home"){if(!G)return;Ae.preventDefault();const He=N(0);He!==-1&&ye(He),R()}else if(Ae.key==="End"){if(!G)return;Ae.preventDefault();const He=ce(ae.length-1);He!==-1&&ye(He),R()}else Ae.key==="Enter"||Ae.key===" "?(Ae.preventDefault(),G?he():a()):Ae.key==="Escape"?G&&(Ae.preventDefault(),U()):Ae.key==="Tab"?G&&he():Ae.key.length===1&&!Ae.ctrlKey&&!Ae.metaKey&&!Ke&&(Ae.preventDefault(),je(Ae.key))}function Ie(Ae){Ae<0||Ae>=ae.length||ae[Ae].disabled||Ce(ae[Ae].value)}function Ne(Ae,Ke){const He=h.createElement("div");if(He.className="lat-combo__option",He.setAttribute("role","option"),He.id=`${Ee}-opt-${Ke}`,He.setAttribute("data-value",Ae.value),He.setAttribute("aria-selected","false"),Ae.disabled&&(He.setAttribute("aria-disabled","true"),He.classList.add("lat-select__option--disabled")),ee){const Je=h.createElement("span");Je.className="lat-select__check",Je.setAttribute("aria-hidden","true"),He.appendChild(Je)}const Be=T(h,Ae,y.optionTemplate);if(Be)He.appendChild(Be);else{const Je=E(h,Ae);Je&&He.appendChild(Je);const _t=h.createElement("span");_t.className="lat-combo__text";const ft=h.createElement("span");if(ft.className="lat-combo__title",ft.textContent=Ae.label,_t.appendChild(ft),Ae.description!=null){const ut=h.createElement("span");ut.className="lat-combo__subtitle",ut.textContent=Ae.description,_t.appendChild(ut)}He.appendChild(_t)}return ve(He,"click",Je=>{Je.stopPropagation(),Ie(Ke)}),C.push(He),He}function Re(){let Ae=0,Ke=0,He=null,Be=null;for(const Qe of O)if(Qe.group)He=h.createElement("div"),He.setAttribute("role","group"),Be=h.createElement("div"),Be.id=`${Ee}-grp-${Ke}`,Be.className="lat-select__group",Be.textContent=Qe.label||"",He.setAttribute("aria-labelledby",Be.id),He.appendChild(Be),H.appendChild(He),Ke+=1;else{const Je=Ne(Qe,Ae);Ae+=1,He?He.appendChild(Je):H.appendChild(Je)}}function Se(){for(;H.firstChild;)H.removeChild(H.firstChild);C.length=0,ye(-1),Re()}function Le(Ae){if(oe)return;O=x(Ae),ae=O.filter(He=>!He.group),Se();const Ke=le.length;le=le.filter(He=>ae.some(Be=>f(Be.value,He))),pe(),re(),le.length!==Ke&&X()}function Te(Ae){oe||(y.placeholder=Ae,pe())}function We(){oe||(Se(),pe(),re())}const Ge=()=>{y.disabled||V()},Ve=()=>{t(se,j)},Fe=()=>{b.dispatchEvent(z(h,"focus"))},rt=()=>{b.dispatchEvent(z(h,"blur")),U()},Xe=Ae=>{se.contains(Ae.target)||j.contains(Ae.target)||U()};ve(Z,"pointerdown",Ve),ve(Z,"click",Ge),ne&&ve(q,"click",ue),ve(Z,"keydown",we),ve(Z,"focus",Fe),ve(Z,"blur",rt),ve(H,"mousedown",Ae=>Ae.preventDefault()),h&&ve(h,"mousedown",Xe),Re(),Y(y.value);const Ue={el:b,root:se,trigger:Z,getValue:de,setValue(Ae){return Y(Ae),Ue},setOptions(Ae){return Le(Ae),Ue},setPlaceholder(Ae){return Te(Ae),Ue},reload(){return We(),Ue},open(){return a(),Ue},close(){return U(),Ue},focus(){return Z.focus(),Ue},blur(){return Z.blur(),Ue},setDisabled(Ae){y.disabled=Ae,Z.disabled=Ae,Ae&&U()},setReadOnly(Ae){y.readOnly=Ae,Ae?(Z.setAttribute("aria-readonly","true"),U()):Z.removeAttribute("aria-readonly"),pe()},destroy(){U(),oe=!0,te&&clearTimeout(te);for(const Ae of ge.splice(0))Ae();for(;se.firstChild;)se.removeChild(se.firstChild)}};return b.appendChild(se),b.__select=Ue,Ue}function _(b,y){const h=y.doc.createElement("select");b.name&&(h.name=b.name),u(h,b.autocomplete);const $=b.props&&b.props.multiple===!0;$&&(h.multiple=!0),h.__multiple=$;const ee=x(b.options),O=ee.filter(Z=>!Z.group),ae=O.some(Z=>Z.value===""),le=y.doc.createElement("option");le.value="",le.textContent=b.placeholder!=null?String(b.placeholder):"",le.setAttribute("data-lattice-placeholder","true"),!$&&!ae&&h.appendChild(le);let se=null;for(const Z of ee)if(Z.group)se=y.doc.createElement("optgroup"),se.label=Z.label||"",h.appendChild(se);else{const Q=y.doc.createElement("option");Q.value=String(Z.value),Q.textContent=Z.label,Z.disabled&&(Q.disabled=!0),Q.__value=Z.value,Q.__typed=!0,(se||h).appendChild(Q)}if($){const Z=(Array.isArray(b.value)?b.value:[]).filter(Q=>Q!=null&&Q!=="");for(const Q of h.options)Q.__typed&&(Q.selected=Z.some(Pe=>f(Pe,Q.__value)))}else{const Z=b.value==null||b.value===""&&!ae?null:b.value,Q=Z==null?null:O.find(Pe=>f(Pe.value,Z));h.value=Q?String(Q.value):""}return h.__select={getValue(){if(!$){if(h.selectedOptions&&h.selectedOptions.length){const Q=h.selectedOptions[0];if(Q&&Q.__typed)return Q.__value}const Z=O.find(Q=>f(Q.value,h.value));return Z?Z.value:h.value}return[...h.selectedOptions].map(Z=>Z.__typed?Z.__value:Z.value)},setValue(Z){if(!$){const Pe=Z==null||Z===""&&!ae?null:Z,ie=Pe==null?null:O.find(j=>f(j.value,Pe));h.value=ie?String(ie.value):"";return}const Q=(Array.isArray(Z)?Z:[]).filter(Pe=>Pe!=null&&Pe!=="");for(const Pe of h.options)Pe.__typed&&(Pe.selected=Q.some(ie=>f(ie,Pe.__value)))},setDisabled(Z){h.disabled=Z},setReadOnly(Z){Z&&(h.disabled=!0)},setPlaceholder(Z){const Q=h.querySelector("option[data-lattice-placeholder]");Q&&(Q.textContent=Z!=null?String(Z):"")},focus(){h.focus()},blur(){h.blur()},destroy(){}},h}F("select",{kind:"field",build(b,y){const h=b.props||{};if(h.native===!0)return _(b,y);const $=y.doc.createElement("div");return o($,{options:b.options,multiple:h.multiple===!0,value:b.value,placeholder:b.placeholder,ariaLabel:b.label,optionTemplate:h.optionTemplate,selectedTemplate:h.selectedTemplate,clearable:h.clearable===!0,t:y.t,doc:y.doc,inForm:!0}),y.disposers.push(()=>{$.__select&&$.__select.destroy()}),$},read(b){return b.__select?b.__select.getValue():""},write(b,y){b.__select&&b.__select.setValue(y)},state(b,y){b.__select&&(b.__select.setDisabled(y.disabled===!0),b.__select.setReadOnly(y.readOnly===!0))},focus(b){b.__select&&b.__select.focus()},blur(b){b.__select&&b.__select.blur()},live:{placeholder(b,y){b.__select&&b.__select.setPlaceholder(y)}}})}),Me("packages/modules/form/controls/listbox.js",function(A,J){"use strict";Object.defineProperty(A,"createListBox",{enumerable:!0,get:function(){return y}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,I=J("packages/modules/form/scheme.js"),M=I.rootDefaultsCss,W=I.darkAccentCss,E=J("packages/modules/form/controls/combo.js"),T=E.renderAdornment,i=E.renderTemplateContent,p=E.injectAdornmentStyles,k=J("packages/dom/src/autofill.js").noHistory,d="data-lattice-form-listbox-styles",c=30,t=46,s=48,u=250,r=700;function m(){return`
|
|
1986
1986
|
.lat-listbox{
|
|
1987
1987
|
display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 2); min-width:0; box-sizing:border-box;
|
|
1988
1988
|
font-size:var(--lattice-font-size); color:var(--lattice-form-field-fg);
|
|
@@ -2072,7 +2072,7 @@ ${M()}
|
|
|
2072
2072
|
}
|
|
2073
2073
|
.lat-listbox__status{ padding:calc(var(--lattice-space) / 2) var(--lattice-space); color:var(--lattice-foreground-muted); }
|
|
2074
2074
|
.lat-listbox__status[hidden]{ display:none; }
|
|
2075
|
-
`.trim()}function z(h){const $=h&&h.documentElement;if(!$||$.getAttribute(d))return;$.setAttribute(d,"1");const ee=h.createElement("style");ee.textContent=m(),(h.head||h.body||$).appendChild(ee)}function l(h){return h==null||typeof h!="object"?{value:h,label:h==null?"":String(h),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null,raw:h}:{value:h.value,label:h.label!=null?String(h.label):h.title!=null?String(h.title):h.value==null?"":String(h.value),description:h.description!=null?String(h.description):h.subtitle!=null?String(h.subtitle):null,icon:h.icon,avatar:h.avatar,color:h.color,dot:h.dot,disabled:h.disabled===!0,group:h.group!=null?String(h.group):null,raw:h}}function g(h){if(h.raw!=null&&typeof h.raw=="object")return h.raw;const{raw:$,...ee}=h;return ee}function w(h){if(Array.isArray(h))return{items:h,total:h.length,hasMore:!1};if(h&&typeof h=="object"){const $=Array.isArray(h.items)?h.items:[];return{items:$,total:typeof h.total=="number"?h.total:$.length,hasMore:h.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function x(h,$){return h===$?!0:h!=null&&$!=null&&String(h)===String($)}function v(h){return String(h)}function f(h,$){const ee=h&&h.defaultView;return ee&&ee.Event?new ee.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 o(h,$,ee,O){const ae=$&&$.defaultView,se=ae&&typeof ae.CustomEvent=="function"?ae.CustomEvent:null,ce=se?new se(ee,{bubbles:!0,detail:O}):{type:ee,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:O,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};h.dispatchEvent(ce)}function _(h){return h.__latListboxRegistry||(h.__latListboxRegistry=new Map),h.__latListboxRegistry}let b=null;function y(h,$={}){const ee=$.doc||h&&h.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;ee&&(z(ee),p(ee));const O=typeof $.t=="function"?$.t:e,ae=["single","multiple","checkbox"].includes($.selection)?$.selection:"single",se=ae!=="single",ce=$.reorder===!0,Z=typeof $.connect=="string"&&$.connect!==""?$.connect:null,Q=typeof $.name=="string"&&$.name!==""?$.name:null,Pe=$.sort==="asc"||$.sort==="desc"?$.sort:!1,ie=$.groupBy===!0,j=$.filter===!0,H=$.dragHandle===!0,ne=D("lat-listbox"),q=ee.createElement("div");q.className="lat-listbox",H&&q.setAttribute("data-drag-handle","true"),$.inForm||(q.setAttribute("data-lattice-standalone","true"),q.setAttribute("data-density",["compact","standard","comfortable"].includes($.density)?$.density:"standard"));let we=null;j&&(we=ee.createElement("input"),we.type="text",we.className="lat-listbox__filter",k(we),we.placeholder=O("form.listbox.filterPlaceholder"),we.setAttribute("aria-label",O("form.listbox.filterPlaceholder")),q.appendChild(we));let $e=null,C=null,K=null,G=null,B=null;(ce||Z||H)&&($e=ee.createElement("div"),$e.className="lat-listbox__toolbar",$e.setAttribute("role","group"),$e.setAttribute("aria-label",O("form.listbox.toolbar")),(ce||H)&&(C=ee.createElement("button"),C.type="button",C.className="lat-listbox__toolbar-btn",C.textContent=O("form.listbox.moveUp"),K=ee.createElement("button"),K.type="button",K.className="lat-listbox__toolbar-btn",K.textContent=O("form.listbox.moveDown"),$e.appendChild(C),$e.appendChild(K)),Z&&(G=ee.createElement("button"),G.type="button",G.className="lat-listbox__toolbar-btn",G.textContent=O("form.listbox.moveSelected"),B=ee.createElement("button"),B.type="button",B.className="lat-listbox__toolbar-btn",B.textContent=O("form.listbox.moveAll"),$e.appendChild(G),$e.appendChild(B)),q.appendChild($e));const te=ee.createElement("div");te.className="lat-listbox__viewport",te.id=`${ne}-lb`,te.setAttribute("role","listbox"),te.setAttribute("tabindex","0"),se&&te.setAttribute("aria-multiselectable","true"),te.setAttribute("aria-label",$.ariaLabel!=null?String($.ariaLabel):"");const ge=typeof $.rows=="number"&&$.rows>0?$.rows:8;typeof $.height=="number"&&$.height>0?te.style.height=`${$.height}px`:te.style.height=`calc(var(--lattice-row-height) * ${ge})`;let oe=null;if(ae==="checkbox"){const be=ee.createElement("div");be.className="lat-listbox__option lat-listbox__select-all",oe=ee.createElement("input"),oe.type="checkbox",oe.className="lat-listbox__checkbox",oe.id=`${ne}-select-all`,be.appendChild(oe);const Ee=ee.createElement("label");Ee.className="lat-listbox__title",Ee.textContent=O("form.listbox.selectAll"),Ee.setAttribute("for",oe.id),be.appendChild(Ee),te.appendChild(be)}const fe=ee.createElement("div");fe.className="lat-listbox__spacer",te.appendChild(fe);const ve=ee.createElement("div");ve.className="lat-listbox__status",ve.setAttribute("role","status"),ve.setAttribute("aria-live","polite"),ve.hidden=!0,te.appendChild(ve),q.appendChild(te);let me=[];const X=new Set;let de=[],pe=-1,Y=null,re=null,N=null,ue="";const ye=[],R=[];let n=0,a="",U=null,V=null,le=null,Ae=0,he=!1,je=0,ke=!1;const Re=[];let Ne=!1;function Me(be,Ee,Se){be.addEventListener(Ee,Se),Re.push(()=>be.removeEventListener(Ee,Se))}function Oe(){return $.readOnly===!0||$.disabled===!0}function Te(){h.dispatchEvent(f(ee,"change"))}function Le(){if(ce&&$.valueAs==="order")return me.map(be=>be.value);if(ae==="single"){const be=me.find(Ee=>X.has(v(Ee.value)));return be?be.value:null}return ce||Z?me.map(be=>be.value):me.filter(be=>X.has(v(be.value))).map(be=>be.value)}function We(){const be=de.filter(Ee=>!Ee.disabled);return be.length>0&&be.every(Ee=>X.has(v(Ee.value)))}function Ve(){const be=ue.trim().toLowerCase();let Ee=be===""?me.slice():me.filter(Se=>Se.label.toLowerCase().includes(be)||(Se.description||"").toLowerCase().includes(be));re&&(Ee=Ee.filter(Se=>{try{return re(g(Se))!==!1}catch{return!0}})),Pe&&(Ee=Ee.slice().sort((Se,Ie)=>Se.label.localeCompare(Ie.label)*(Pe==="desc"?-1:1))),de=Ee,ye.length=0,R.length=0,pe>=de.length&&(pe=de.length-1)}function Ze(be){const Ee=[],Se=new Map;for(const Ie of be){const nt=Ie.group||"";let Ye=Se.get(nt);Ye||(Ye={group:Ie.group||null,items:[]},Se.set(nt,Ye),Ee.push(Ye)),Ye.items.push(Ie)}return Ee}function He(be){return`${ne}-opt-${be}`}function rt(be){return be.description!=null||be.icon!=null||be.avatar!=null?t:c}function Xe(be){const Ee=de[be];return!!Ee&&X.has(v(Ee.value))}function Ge(be,Ee){const Se=ee.createElement("div");if(Se.className="lat-listbox__option",Se.setAttribute("role","option"),Se.id=He(Ee),Se.setAttribute("aria-selected",Xe(Ee)?"true":"false"),be.disabled&&Se.setAttribute("aria-disabled","true"),ae==="checkbox"){const Ye=ee.createElement("input");Ye.type="checkbox",Ye.className="lat-listbox__checkbox",Ye.tabIndex=-1,Ye.checked=Xe(Ee),Ye.disabled=be.disabled||Oe(),Se.appendChild(Ye)}const Ie=i(ee,g(be),$.render);if(Ie)Se.appendChild(Ie);else{const Ye=T(ee,be);Ye&&Se.appendChild(Ye);const st=ee.createElement("span");st.className="lat-listbox__text";const et=ee.createElement("span");if(et.className="lat-listbox__title",et.textContent=be.label,st.appendChild(et),be.description!=null){const ct=ee.createElement("span");ct.className="lat-listbox__subtitle",ct.textContent=be.description,st.appendChild(ct)}Se.appendChild(st)}if(H){if(!be.disabled&&!Oe()){const Ye=ee.createElement("span");Ye.className="lat-listbox__handle",Ye.setAttribute("aria-hidden","true"),Ye.setAttribute("title",O("form.listbox.dragHandle")),Ye.textContent="⠿",Se.insertBefore(Ye,Se.firstChild||null),Me(Ye,"pointerdown",st=>qe(st,be))}}else(ce||Z)&&!be.disabled&&!Oe()&&(Se.draggable=!0,Me(Se,"dragstart",()=>xe(be)),Me(Se,"dragover",Ye=>{Ye.preventDefault()}),Me(Se,"drop",Ye=>{Ye.preventDefault(),Ke(be)}));return Me(Se,"click",Ye=>{be.disabled||Oe()||(te.focus(),o(h,ee,"itemClick",{option:g(be),event:Ye}),Nt(Ee,{shift:Ye.shiftKey,ctrl:Ye.ctrlKey||Ye.metaKey,touch:Ye.pointerType==="touch"}))}),Se}function xe(be){const Ee=X.has(v(be.value))?me.filter(Se=>X.has(v(Se.value))).map(Se=>Se.value):[be.value];b={source:pt,values:Ee}}function Ke(be){if(!b||Oe())return;const{source:Ee,values:Se}=b;b=null;const Ie=me.findIndex(nt=>x(nt.value,be.value));if(Ie!==-1){if(Ee===pt){if(!ce)return;Fe(Se,Ie),ot(),Te();return}if(Z){const nt=Ee.__removeValues(Se);if(nt.length===0)return;me.splice(Ie,0,...nt);for(const Ye of nt)X.add(v(Ye.value));Ve(),ot(),Te()}}}function Fe(be,Ee){const Se=new Set(be.map(v)),Ie=me.filter(et=>Se.has(v(et.value)));if(Ie.length===0)return;const nt=me[Ee]?v(me[Ee].value):null,Ye=me.filter(et=>!Se.has(v(et.value)));let st=nt==null?Ye.length:Ye.findIndex(et=>v(et.value)===nt);st===-1&&(st=Ye.length),Ye.splice(st,0,...Ie),me=Ye}function Be(be){for(const Ee of fe.querySelectorAll('.lat-listbox__option[role="option"]')){const Se=Ee.id||"",Ie=Number(Se.slice(`${ne}-opt-`.length));if(Number.isNaN(Ie))continue;const nt=de[Ie];if(nt&&x(nt.value,be))return Ee}return null}function Qe(be,Ee){if(!ee||typeof ee.elementFromPoint!="function")return-1;const Se=ee.elementFromPoint(be,Ee),Ie=Se&&typeof Se.closest=="function"?Se.closest('.lat-listbox__option[role="option"]'):null;if(!Ie)return-1;const nt=Ie.id||"",Ye=Number(nt.slice(`${ne}-opt-`.length));return Number.isNaN(Ye)?-1:Ye}function qe(be,Ee){Ee.disabled||Oe()||(be.preventDefault(),N={value:Ee.value,startX:be.clientX,startY:be.clientY,armed:!1,overIndex:-1})}function ht(be){if(!N)return;if(!N.armed){if(Math.abs(be.clientX-N.startX)+Math.abs(be.clientY-N.startY)<4)return;N.armed=!0;const Ie=Be(N.value);Ie&&Ie.classList.add("lat-listbox__option--dragging")}const Ee=Qe(be.clientX,be.clientY);Ee!==-1&&(N.overIndex=Ee)}function mt(){if(!N)return;const be=N;N=null;const Ee=Be(be.value);if(Ee&&Ee.classList.remove("lat-listbox__option--dragging"),!be.armed||be.overIndex<0||Oe())return;const Se=de[be.overIndex];if(!Se||x(Se.value,be.value))return;const Ie=me.findIndex(nt=>x(nt.value,Se.value));Ie!==-1&&(Fe([be.value],Ie),Ve(),ot(),Te())}function lt(be){const Ee=new Set(be.map(v)),Se=me.filter(Ie=>Ee.has(v(Ie.value)));if(Se.length===0)return Se;me=me.filter(Ie=>!Ee.has(v(Ie.value)));for(const Ie of Se)X.delete(v(Ie.value));return Ve(),ot(),Te(),Se}function bt(be){be.length!==0&&(me=me.concat(be),Ve(),ot(),Te())}function xt(be,Ee){const Se=l(be),Ie=typeof Ee=="number"&&Ee>=0&&Ee<=me.length?Ee:me.length;me=me.slice(0,Ie).concat([Se],me.slice(Ie)),Ve(),ot(),Te()}function St(be,Ee){const Se=v(be),Ie=me.findIndex(ct=>v(ct.value)===Se);if(Ie===-1||Ee==null||typeof Ee!="object")return;const nt=me[Ie],Ye=g(nt),st=l({...Ye,...Ee}),et=v(st.value);et!==Se&&X.has(Se)&&(X.delete(Se),X.add(et)),me=me.slice(0,Ie).concat([st],me.slice(Ie+1)),Ve(),ot(),Te()}function ft(){return!Z||!ee?null:_(ee).get(Z)||null}function Vt(){const be=ft();if(!be||Oe())return;const Ee=me.filter(Ie=>X.has(v(Ie.value))).map(Ie=>Ie.value);if(Ee.length===0)return;const Se=lt(Ee);be.__receiveItems(Se)}function Lt(){const be=ft();if(!be||Oe()||me.length===0)return;const Ee=lt(me.map(Se=>Se.value));be.__receiveItems(Ee)}function gt(be){if(Oe())return;const Ee=[];for(let Se=0;Se<me.length;Se++)X.has(v(me[Se].value))&&Ee.push(Se);if(Ee.length!==0){if(be<0)for(const Se of Ee)Se===0||X.has(v(me[Se-1].value))||([me[Se-1],me[Se]]=[me[Se],me[Se-1]]);else for(let Se=Ee.length-1;Se>=0;Se--){const Ie=Ee[Se];Ie===me.length-1||X.has(v(me[Ie+1].value))||([me[Ie+1],me[Ie]]=[me[Ie],me[Ie+1]])}Ve(),ot(),Te()}}function ot(){const be=te.scrollTop;for(;fe.firstChild;)fe.removeChild(fe.firstChild);fe.style.height="",fe.style.position="",ie?At():Ct(be),Rt(),wt(),$e&&dt()}function At(){let be=0;for(const Ee of Ze(de))if(Ee.group!=null){const Se=ee.createElement("div");Se.setAttribute("role","group");const Ie=ee.createElement("div");Ie.className="lat-listbox__group-header",Ie.id=`${ne}-grp-${be}`,Ie.textContent=Ee.group,Se.setAttribute("aria-labelledby",Ie.id),Se.appendChild(Ie);for(const nt of Ee.items)Se.appendChild(Ge(nt,be)),be+=1;fe.appendChild(Se)}else for(const Se of Ee.items)fe.appendChild(Ge(Se,be)),be+=1}function Ct(be){const Ee=be??te.scrollTop;if(fe.style.position="relative",n=te.clientHeight||n||240,de.length===0){fe.style.height="0px";return}for(let et=0;et<de.length;et++)ye[et]==null&&(ye[et]=rt(de[et]));R.length=0,R[0]=0;for(let et=1;et<=de.length;et++)R[et]=R[et-1]+ye[et-1];fe.style.height=`${R[de.length]}px`;const Se=Ee,Ie=Ee+n;let nt=0;for(;nt<de.length-1&&R[nt+1]<Se;)nt+=1;let Ye=nt;for(;Ye<de.length&&R[Ye]<Ie;)Ye+=1;for(Ye=Math.min(de.length,Ye+2);fe.firstChild;)fe.removeChild(fe.firstChild);for(let et=nt;et<Ye;et++){const ct=Ge(de[et],et);ct.style.position="absolute",ct.style.insetInlineStart="0",ct.style.insetInlineEnd="0",ct.style.top="0",ct.style.transform=`translateY(${R[et]}px)`,fe.appendChild(ct)}let st=!1;for(let et=nt;et<Ye;et++){const ct=ee.getElementById(He(et));if(!ct)continue;const _t=ct.getBoundingClientRect().height;_t>0&&Math.abs(_t-ye[et])>.5&&(ye[et]=_t,st=!0)}st?Ct(Ee):te.scrollTop!==Ee&&(te.scrollTop=Ee)}function Wt(){if(ie||!ee)return;const be=ee.defaultView,Ee=be&&be.ResizeObserver;if(typeof Ee!="function")return;const Se=new Ee(()=>{Ne||Ct()});Se.observe(te),Re.push(()=>Se.disconnect())}function vt(){if(pe<0||ie)return;const be=R[pe]||0,Ee=be+(ye[pe]||rt(de[pe])),Se=fe.offsetTop||0,Ie=te.scrollTop+n-Se;be<te.scrollTop?te.scrollTop=be:Ee>Ie&&(te.scrollTop=Ee-(n-Se)),ot()}function Rt(){de.length===0?(ve.hidden=!1,ve.textContent=O("form.listbox.empty")):(ve.hidden=!0,ve.textContent="")}function jt(){for(const be of fe.querySelectorAll('.lat-listbox__option[role="option"]')){const Ee=be.id||"",Se=Number(Ee.slice(`${ne}-opt-`.length));if(Number.isNaN(Se))continue;const Ie=de[Se];if(!Ie)continue;const nt=X.has(v(Ie.value));be.setAttribute("aria-selected",nt?"true":"false");const Ye=be.querySelector(".lat-listbox__checkbox");Ye&&(Ye.checked=nt)}wt(),$e&&dt()}function wt(){if(!oe)return;const be=de.filter(Se=>!Se.disabled),Ee=be.filter(Se=>X.has(v(Se.value))).length;oe.checked=be.length>0&&Ee===be.length,oe.indeterminate=Ee>0&&Ee<be.length,oe.disabled=Oe()||be.length===0}function dt(){const be=X.size>0,Ee=Oe();C&&(C.disabled=Ee||!be),K&&(K.disabled=Ee||!be),G&&(G.disabled=Ee||!be),B&&(B.disabled=Ee||me.length===0)}function kt(be){pe=be,be>=0&&be<de.length?te.setAttribute("aria-activedescendant",He(be)):te.removeAttribute("aria-activedescendant")}function Mt(be){for(let Ee=Math.max(0,be);Ee<de.length;Ee++)if(!de[Ee].disabled)return Ee;return-1}function $t(be){for(let Ee=Math.min(de.length-1,be);Ee>=0;Ee--)if(!de[Ee].disabled)return Ee;return-1}function Nt(be,Ee={}){const Se=de[be];if(!Se||Se.disabled||Oe())return;kt(be);const Ie=new Set(X);if(ae==="single")X.clear(),X.add(v(Se.value)),Y=be;else if(ae==="checkbox")X.has(v(Se.value))?X.delete(v(Se.value)):X.add(v(Se.value)),Y=be;else if(Ee.shift&&Y!=null){const nt=Math.min(Y,be),Ye=Math.max(Y,be);X.clear();for(let st=nt;st<=Ye;st++)de[st].disabled||X.add(v(de[st].value))}else Ee.ctrl||Ee.touch?(X.has(v(Se.value))?X.delete(v(Se.value)):X.add(v(Se.value)),Y=be):(X.clear(),X.add(v(Se.value)),Y=be);vt(),jt(),Pt(Ie,X)||Te()}function Pt(be,Ee){if(be.size!==Ee.size)return!1;for(const Se of be)if(!Ee.has(Se))return!1;return!0}function Yt(){if(Oe())return;const be=!We();for(const Ee of de)Ee.disabled||(be?X.add(v(Ee.value)):X.delete(v(Ee.value)));jt(),Te()}function Gt(be,Ee){if(de.length===0)return;const Se=pe<0?be>0?-1:de.length:pe,Ie=be>0?Mt(Se+1):$t(Se-1);if(Ie!==-1){if(kt(Ie),vt(),ae==="single"){Nt(Ie,{});return}Ee&&se&&(Y==null&&(Y=Ie),Nt(Ie,{shift:!0}))}}function yt(be){U&&clearTimeout(U),a+=be.toLowerCase(),U=setTimeout(()=>{a="",U=null},r);const Ee=pe>-1?pe+1:0;let Se=-1;for(let Ie=Ee;Ie<de.length;Ie++)if(!de[Ie].disabled&&de[Ie].label.toLowerCase().startsWith(a)){Se=Ie;break}if(Se===-1){for(let Ie=0;Ie<Ee;Ie++)if(!de[Ie].disabled&&de[Ie].label.toLowerCase().startsWith(a)){Se=Ie;break}}Se!==-1&&(kt(Se),vt())}function Bt(be){if(be.altKey&&be.key==="ArrowUp"&&(ce||H))be.preventDefault(),gt(-1);else if(be.altKey&&be.key==="ArrowDown"&&(ce||H))be.preventDefault(),gt(1);else if(be.key==="ArrowDown")be.preventDefault(),Gt(1,be.shiftKey);else if(be.key==="ArrowUp")be.preventDefault(),Gt(-1,be.shiftKey);else if(be.key==="Home"){be.preventDefault();const Ee=Mt(0);Ee!==-1&&(kt(Ee),vt(),ae==="single"&&Nt(Ee,{}))}else if(be.key==="End"){be.preventDefault();const Ee=$t(de.length-1);Ee!==-1&&(kt(Ee),vt(),ae==="single"&&Nt(Ee,{}))}else if(be.key===" ")be.preventDefault(),pe>=0&&Nt(pe,{ctrl:se});else if(be.key==="Enter"){be.preventDefault();const Ee=pe>=0?de[pe]:null;Ee&&!Ee.disabled&&!Oe()&&o(h,ee,"activate",{option:g(Ee),event:be})}else if((be.ctrlKey||be.metaKey)&&(be.key==="a"||be.key==="A")&&se){if(be.preventDefault(),Oe())return;for(const Ee of de)Ee.disabled||X.add(v(Ee.value));jt(),Te()}else be.key.length===1&&!be.ctrlKey&&!be.metaKey&&!be.altKey&&yt(be.key)}function Xt(){if(ue=we.value||"",typeof $.load!="function"){Ve(),ot();return}V&&clearTimeout(V),V=setTimeout(()=>Dt(),u)}function Dt(){if(Ne||typeof $.load!="function")return;he=!0,Ae+=1;const be=Ae;le&&le.abort(),le=typeof AbortController<"u"?new AbortController:null;let Ee;try{Ee=$.load({search:ue,page:0,signal:le?le.signal:void 0})}catch{he=!1;return}const Se=Ie=>{if(Ne||be!==Ae)return;he=!1;const nt=w(Ie);me=nt.items.map(l),ke=nt.hasMore,je=1,Ve(),ot()};Ee&&typeof Ee.then=="function"?Ee.then(Se,()=>{he=!1}):Se(Ee)}Me(te,"keydown",Bt),Me(te,"scroll",()=>{ie||Ct()}),we&&Me(we,"input",Xt),C&&Me(C,"click",()=>gt(-1)),K&&Me(K,"click",()=>gt(1)),G&&Me(G,"click",()=>Vt()),B&&Me(B,"click",()=>Lt()),oe&&Me(oe,"change",()=>Yt()),Me(te,"dragover",be=>{b&&be.preventDefault()}),Me(te,"drop",be=>{if(be.preventDefault(),!b||b.source===pt||!Z)return;const Ee=b.source.__removeValues(b.values);b=null,bt(Ee)}),H&&ee&&(Me(ee,"pointermove",ht),Me(ee,"pointerup",mt));function Ft(be){if(X.clear(),ce&&$.valueAs==="order"&&Array.isArray(be)){const Ee=new Map(me.map(Se=>[v(Se.value),Se]));me=be.map(Se=>Ee.get(v(Se))||l(Se))}else if(ae==="single")be!=null&&X.add(v(be));else if((ce||Z)&&Array.isArray(be)){const Ee=new Map(me.map(Se=>[v(Se.value),Se]));me=be.map(Se=>Ee.get(v(Se))||l(Se));for(const Se of me)X.add(v(Se.value))}else{const Ee=Array.isArray(be)?be:be==null?[]:[be];for(const Se of Ee)X.add(v(Se))}Ve(),ot()}typeof $.load!="function"&&(me=(Array.isArray($.options)?$.options:[]).map(l)),Ve(),Ft($.value),typeof $.load=="function"&&Dt();const pt={el:h,root:q,viewport:te,getValue:Le,setValue(be){return Ft(be),pt},focus(){return te.focus(),pt},blur(){return te.blur(),pt},setDisabled(be){$.disabled=be,te.setAttribute("aria-disabled",be?"true":"false"),we&&(we.disabled=be),wt(),dt()},setReadOnly(be){$.readOnly=be,be?te.setAttribute("aria-readonly","true"):te.removeAttribute("aria-readonly"),wt(),dt()},getOptions(){return me.map(be=>g(be))},addOption(be,Ee){return xt(be,Ee),pt},removeOption(be){return lt([be]),pt},updateOption(be,Ee){return St(be,Ee),pt},filter(be){return re=typeof be=="function"?be:null,Ve(),ot(),pt},remeasure(){return ie||(ye.length=0,R.length=0,ot()),pt},__removeValues:lt,__receiveItems:bt,destroy(){Ne=!0,U&&clearTimeout(U),V&&clearTimeout(V),le&&le.abort();for(const be of Re.splice(0))be();if(ee&&Q){const be=_(ee);be.get(Q)===pt&&be.delete(Q)}for(;q.firstChild;)q.removeChild(q.firstChild)}};return ee&&Q&&_(ee).set(Q,pt),ot(),Wt(),h.appendChild(q),h.__listbox=pt,pt}F("listbox",{kind:"field",domEvents:["itemClick","activate"],build(h,$){const ee=h.props||{},O=$.doc.createElement("div");return y(O,{options:h.options,load:ee.load,selection:ee.selection,value:h.value,filter:ee.filter===!0,groupBy:ee.groupBy===!0,sort:ee.sort,render:ee.render,reorder:ee.reorder===!0,valueAs:ee.valueAs,connect:ee.connect,name:h.name,min:h.min,max:h.max,height:h.height,rows:h.rows,dragHandle:ee.dragHandle===!0,disabled:h.disabled===!0,readOnly:h.readOnly===!0,ariaLabel:h.label,t:$.t,doc:$.doc,inForm:!0}),O.__listboxT=$.t,$.disposers.push(()=>{O.__listbox&&O.__listbox.destroy()}),O},read(h){return h.__listbox?h.__listbox.getValue():null},write(h,$){h.__listbox&&h.__listbox.setValue($)},validate(h,$,ee){if(!h.__listbox)return null;const ae=h.__listboxT||e,se=Array.isArray(ee)?ee.length:ee==null?0:1,ce=$.min!=null&&Number.isFinite(Number($.min))?Number($.min):null,Z=$.max!=null&&Number.isFinite(Number($.max))?Number($.max):null;return ce!=null&&se<ce?{code:"min",message:ae("form.listbox.min",{min:String(ce)})}:Z!=null&&se>Z?{code:"max",message:ae("form.listbox.max",{max:String(Z)})}:null},state(h,$){h.__listbox&&(h.__listbox.setDisabled($.disabled===!0),h.__listbox.setReadOnly($.readOnly===!0))},focus(h){h.__listbox&&h.__listbox.focus()},blur(h){h.__listbox&&h.__listbox.blur()}})}),De("packages/modules/form/controls/options.js",function(A,J){"use strict";Object.defineProperty(A,"normalizeOptions",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"resolveChoiceLayout",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"choiceLayoutCss",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return I}});const F=J("packages/modules/form/styles.js").NS;function L(M){return Array.isArray(M)?M.map(W=>{if(typeof W=="string")return{value:W,label:W};if(W&&typeof W=="object"){const E=W.value==null?"":String(W.value),T=W.label!=null?String(W.label):W.text!=null?String(W.text):E;return{value:E,label:T}}return{value:"",label:""}}):[]}function e(M){const W=M&&M.props?M.props:{},E=M&&M.orientation!=null?M.orientation:W.orientation;let T=M&&M.columns!=null?M.columns:W.columns;return T=typeof T=="number"&&Number.isFinite(T)&&T>=1?Math.floor(T):0,T>0?{orientation:"vertical",columns:T}:{orientation:E==="horizontal"?"horizontal":"vertical",columns:0}}function P(){return`
|
|
2075
|
+
`.trim()}function z(h){const $=h&&h.documentElement;if(!$||$.getAttribute(d))return;$.setAttribute(d,"1");const ee=h.createElement("style");ee.textContent=m(),(h.head||h.body||$).appendChild(ee)}function l(h){return h==null||typeof h!="object"?{value:h,label:h==null?"":String(h),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null,raw:h}:{value:h.value,label:h.label!=null?String(h.label):h.title!=null?String(h.title):h.value==null?"":String(h.value),description:h.description!=null?String(h.description):h.subtitle!=null?String(h.subtitle):null,icon:h.icon,avatar:h.avatar,color:h.color,dot:h.dot,disabled:h.disabled===!0,group:h.group!=null?String(h.group):null,raw:h}}function g(h){if(h.raw!=null&&typeof h.raw=="object")return h.raw;const{raw:$,...ee}=h;return ee}function w(h){if(Array.isArray(h))return{items:h,total:h.length,hasMore:!1};if(h&&typeof h=="object"){const $=Array.isArray(h.items)?h.items:[];return{items:$,total:typeof h.total=="number"?h.total:$.length,hasMore:h.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function x(h,$){return h===$?!0:h!=null&&$!=null&&String(h)===String($)}function v(h){return String(h)}function f(h,$){const ee=h&&h.defaultView;return ee&&ee.Event?new ee.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 o(h,$,ee,O){const ae=$&&$.defaultView,le=ae&&typeof ae.CustomEvent=="function"?ae.CustomEvent:null,se=le?new le(ee,{bubbles:!0,detail:O}):{type:ee,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:O,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};h.dispatchEvent(se)}function _(h){return h.__latListboxRegistry||(h.__latListboxRegistry=new Map),h.__latListboxRegistry}let b=null;function y(h,$={}){const ee=$.doc||h&&h.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;ee&&(z(ee),p(ee));const O=typeof $.t=="function"?$.t:e,ae=["single","multiple","checkbox"].includes($.selection)?$.selection:"single",le=ae!=="single",se=$.reorder===!0,Z=typeof $.connect=="string"&&$.connect!==""?$.connect:null,Q=typeof $.name=="string"&&$.name!==""?$.name:null,Pe=$.sort==="asc"||$.sort==="desc"?$.sort:!1,ie=$.groupBy===!0,j=$.filter===!0,H=$.dragHandle===!0,ne=D("lat-listbox"),q=ee.createElement("div");q.className="lat-listbox",H&&q.setAttribute("data-drag-handle","true"),$.inForm||(q.setAttribute("data-lattice-standalone","true"),q.setAttribute("data-density",["compact","standard","comfortable"].includes($.density)?$.density:"standard"));let ke=null;j&&(ke=ee.createElement("input"),ke.type="text",ke.className="lat-listbox__filter",k(ke),ke.placeholder=O("form.listbox.filterPlaceholder"),ke.setAttribute("aria-label",O("form.listbox.filterPlaceholder")),q.appendChild(ke));let Ee=null,C=null,K=null,G=null,B=null;(se||Z||H)&&(Ee=ee.createElement("div"),Ee.className="lat-listbox__toolbar",Ee.setAttribute("role","group"),Ee.setAttribute("aria-label",O("form.listbox.toolbar")),(se||H)&&(C=ee.createElement("button"),C.type="button",C.className="lat-listbox__toolbar-btn",C.textContent=O("form.listbox.moveUp"),K=ee.createElement("button"),K.type="button",K.className="lat-listbox__toolbar-btn",K.textContent=O("form.listbox.moveDown"),Ee.appendChild(C),Ee.appendChild(K)),Z&&(G=ee.createElement("button"),G.type="button",G.className="lat-listbox__toolbar-btn",G.textContent=O("form.listbox.moveSelected"),B=ee.createElement("button"),B.type="button",B.className="lat-listbox__toolbar-btn",B.textContent=O("form.listbox.moveAll"),Ee.appendChild(G),Ee.appendChild(B)),q.appendChild(Ee));const te=ee.createElement("div");te.className="lat-listbox__viewport",te.id=`${ne}-lb`,te.setAttribute("role","listbox"),te.setAttribute("tabindex","0"),le&&te.setAttribute("aria-multiselectable","true"),te.setAttribute("aria-label",$.ariaLabel!=null?String($.ariaLabel):"");const ge=typeof $.rows=="number"&&$.rows>0?$.rows:8;typeof $.height=="number"&&$.height>0?te.style.height=`${$.height}px`:te.style.height=`calc(var(--lattice-row-height) * ${ge})`;let oe=null;if(ae==="checkbox"){const me=ee.createElement("div");me.className="lat-listbox__option lat-listbox__select-all",oe=ee.createElement("input"),oe.type="checkbox",oe.className="lat-listbox__checkbox",oe.id=`${ne}-select-all`,me.appendChild(oe);const xe=ee.createElement("label");xe.className="lat-listbox__title",xe.textContent=O("form.listbox.selectAll"),xe.setAttribute("for",oe.id),me.appendChild(xe),te.appendChild(me)}const fe=ee.createElement("div");fe.className="lat-listbox__spacer",te.appendChild(fe);const ve=ee.createElement("div");ve.className="lat-listbox__status",ve.setAttribute("role","status"),ve.setAttribute("aria-live","polite"),ve.hidden=!0,te.appendChild(ve),q.appendChild(te);let be=[];const X=new Set;let de=[],pe=-1,Y=null,re=null,N=null,ce="";const ye=[],R=[];let n=0,a="",U=null,V=null,ue=-1/0;const Ce=new WeakMap;let he=-1,je=-1,we=null,Ie=null,Ne=0,Re=!1,Se=0,Le=!1;const Te=[];let We=!1;function Ge(me,xe,Oe){me.addEventListener(xe,Oe),Te.push(()=>me.removeEventListener(xe,Oe))}function Ve(){return $.readOnly===!0||$.disabled===!0}function Fe(){h.dispatchEvent(f(ee,"change"))}function rt(){if(se&&$.valueAs==="order")return be.map(me=>me.value);if(ae==="single"){const me=be.find(xe=>X.has(v(xe.value)));return me?me.value:null}return se||Z?be.map(me=>me.value):be.filter(me=>X.has(v(me.value))).map(me=>me.value)}function Xe(){const me=de.filter(xe=>!xe.disabled);return me.length>0&&me.every(xe=>X.has(v(xe.value)))}function Ue(){const me=ce.trim().toLowerCase();let xe=me===""?be.slice():be.filter(Oe=>Oe.label.toLowerCase().includes(me)||(Oe.description||"").toLowerCase().includes(me));re&&(xe=xe.filter(Oe=>{try{return re(g(Oe))!==!1}catch{return!0}})),Pe&&(xe=xe.slice().sort((Oe,De)=>Oe.label.localeCompare(De.label)*(Pe==="desc"?-1:1))),de=xe,ye.length=0,R.length=0,pe>=de.length&&(pe=de.length-1)}function Ae(me){const xe=[],Oe=new Map;for(const De of me){const et=De.group||"";let nt=Oe.get(et);nt||(nt={group:De.group||null,items:[]},Oe.set(et,nt),xe.push(nt)),nt.items.push(De)}return xe}function Ke(me){return`${ne}-opt-${me}`}function He(me){return me.description!=null||me.icon!=null||me.avatar!=null?t:c}function Be(me){const xe=de[me];return!!xe&&X.has(v(xe.value))}function Qe(me,xe){const Oe=ee.createElement("div");if(Oe.className="lat-listbox__option",Oe.setAttribute("role","option"),Oe.id=Ke(xe),Oe.setAttribute("aria-selected",Be(xe)?"true":"false"),me.disabled&&Oe.setAttribute("aria-disabled","true"),ae==="checkbox"){const Ye=ee.createElement("input");Ye.type="checkbox",Ye.className="lat-listbox__checkbox",Ye.tabIndex=-1,Ye.checked=Be(xe),Ye.disabled=me.disabled||Ve(),Oe.appendChild(Ye)}const De=i(ee,g(me),$.render);if(De)Oe.appendChild(De);else{const Ye=T(ee,me);Ye&&Oe.appendChild(Ye);const dt=ee.createElement("span");dt.className="lat-listbox__text";const ot=ee.createElement("span");if(ot.className="lat-listbox__title",ot.textContent=me.label,dt.appendChild(ot),me.description!=null){const bt=ee.createElement("span");bt.className="lat-listbox__subtitle",bt.textContent=me.description,dt.appendChild(bt)}Oe.appendChild(dt)}if(H){if(!me.disabled&&!Ve()){const Ye=ee.createElement("span");Ye.className="lat-listbox__handle",Ye.setAttribute("aria-hidden","true"),Ye.setAttribute("title",O("form.listbox.dragHandle")),Ye.textContent="⠿",Oe.insertBefore(Ye,Oe.firstChild||null),Ge(Ye,"pointerdown",dt=>Wt(dt,me))}}else(se||Z)&&!me.disabled&&!Ve()&&(Oe.draggable=!0,Ge(Oe,"dragstart",()=>ut(me)),Ge(Oe,"dragover",Ye=>{Ye.preventDefault()}),Ge(Oe,"drop",Ye=>{Ye.preventDefault(),gt(me)}));const et=Ye=>{me.disabled||Ve()||(te.focus(),o(h,ee,"itemClick",{option:g(me),event:Ye}),$t(xe,{shift:Ye.shiftKey,ctrl:Ye.ctrlKey||Ye.metaKey,touch:Ye.pointerType==="touch"}))};return Ce.set(Oe,et),Ge(Oe,"click",Ye=>{Ye.timeStamp-ue<300||et(Ye)}),Oe}function Je(me){const xe=me.target;if(!xe||typeof xe.closest!="function"||xe.closest(".lat-listbox__handle"))return null;const Oe=xe.closest('[role="option"]');return Oe&&te.contains(Oe)?Oe:null}function _t(me){const xe=Je(me);V=xe&&(me.button===0||me.button==null)?xe.id:null}function ft(me){const xe=V;V=null;const Oe=Je(me);if(!xe||!Oe||Oe.id!==xe)return;const De=Ce.get(Oe);De&&(ue=me.timeStamp,De(me))}function ut(me){const xe=X.has(v(me.value))?be.filter(Oe=>X.has(v(Oe.value))).map(Oe=>Oe.value):[me.value];b={source:st,values:xe}}function gt(me){if(!b||Ve())return;const{source:xe,values:Oe}=b;b=null;const De=be.findIndex(et=>x(et.value,me.value));if(De!==-1){if(xe===st){if(!se)return;yt(Oe,De),at(),Fe();return}if(Z){const et=xe.__removeValues(Oe);if(et.length===0)return;be.splice(De,0,...et);for(const nt of et)X.add(v(nt.value));Ue(),at(),Fe()}}}function yt(me,xe){const Oe=new Set(me.map(v)),De=be.filter(dt=>Oe.has(v(dt.value)));if(De.length===0)return;const et=be[xe]?v(be[xe].value):null,nt=be.filter(dt=>!Oe.has(v(dt.value)));let Ye=et==null?nt.length:nt.findIndex(dt=>v(dt.value)===et);Ye===-1&&(Ye=nt.length),nt.splice(Ye,0,...De),be=nt}function Ot(me){for(const xe of fe.querySelectorAll('.lat-listbox__option[role="option"]')){const Oe=xe.id||"",De=Number(Oe.slice(`${ne}-opt-`.length));if(Number.isNaN(De))continue;const et=de[De];if(et&&x(et.value,me))return xe}return null}function pt(me,xe){if(!ee||typeof ee.elementFromPoint!="function")return-1;const Oe=ee.elementFromPoint(me,xe),De=Oe&&typeof Oe.closest=="function"?Oe.closest('.lat-listbox__option[role="option"]'):null;if(!De)return-1;const et=De.id||"",nt=Number(et.slice(`${ne}-opt-`.length));return Number.isNaN(nt)?-1:nt}function Wt(me,xe){xe.disabled||Ve()||(me.preventDefault(),N={value:xe.value,startX:me.clientX,startY:me.clientY,armed:!1,overIndex:-1})}function Dt(me){if(!N)return;if(!N.armed){if(Math.abs(me.clientX-N.startX)+Math.abs(me.clientY-N.startY)<4)return;N.armed=!0;const De=Ot(N.value);De&&De.classList.add("lat-listbox__option--dragging")}const xe=pt(me.clientX,me.clientY);xe!==-1&&(N.overIndex=xe)}function vt(){if(!N)return;const me=N;N=null;const xe=Ot(me.value);if(xe&&xe.classList.remove("lat-listbox__option--dragging"),!me.armed||me.overIndex<0||Ve())return;const Oe=de[me.overIndex];if(!Oe||x(Oe.value,me.value))return;const De=be.findIndex(et=>x(et.value,Oe.value));De!==-1&&(yt([me.value],De),Ue(),at(),Fe())}function mt(me){const xe=new Set(me.map(v)),Oe=be.filter(De=>xe.has(v(De.value)));if(Oe.length===0)return Oe;be=be.filter(De=>!xe.has(v(De.value)));for(const De of Oe)X.delete(v(De.value));return Ue(),at(),Fe(),Oe}function xt(me){me.length!==0&&(be=be.concat(me),Ue(),at(),Fe())}function zt(me,xe){const Oe=l(me),De=typeof xe=="number"&&xe>=0&&xe<=be.length?xe:be.length;be=be.slice(0,De).concat([Oe],be.slice(De)),Ue(),at(),Fe()}function qt(me,xe){const Oe=v(me),De=be.findIndex(ot=>v(ot.value)===Oe);if(De===-1||xe==null||typeof xe!="object")return;const et=be[De],nt=g(et),Ye=l({...nt,...xe}),dt=v(Ye.value);dt!==Oe&&X.has(Oe)&&(X.delete(Oe),X.add(dt)),be=be.slice(0,De).concat([Ye],be.slice(De+1)),Ue(),at(),Fe()}function At(){return!Z||!ee?null:_(ee).get(Z)||null}function Vt(){const me=At();if(!me||Ve())return;const xe=be.filter(De=>X.has(v(De.value))).map(De=>De.value);if(xe.length===0)return;const Oe=mt(xe);me.__receiveItems(Oe)}function Gt(){const me=At();if(!me||Ve()||be.length===0)return;const xe=mt(be.map(Oe=>Oe.value));me.__receiveItems(xe)}function wt(me){if(Ve())return;const xe=[];for(let Oe=0;Oe<be.length;Oe++)X.has(v(be[Oe].value))&&xe.push(Oe);if(xe.length!==0){if(me<0)for(const Oe of xe)Oe===0||X.has(v(be[Oe-1].value))||([be[Oe-1],be[Oe]]=[be[Oe],be[Oe-1]]);else for(let Oe=xe.length-1;Oe>=0;Oe--){const De=xe[Oe];De===be.length-1||X.has(v(be[De+1].value))||([be[De+1],be[De]]=[be[De],be[De+1]])}Ue(),at(),Fe()}}function at(){const me=te.scrollTop;for(;fe.firstChild;)fe.removeChild(fe.firstChild);fe.style.height="",fe.style.position="",ie?St():jt(me),Lt(),Rt(),Ee&&ht()}function St(){let me=0;for(const xe of Ae(de))if(xe.group!=null){const Oe=ee.createElement("div");Oe.setAttribute("role","group");const De=ee.createElement("div");De.className="lat-listbox__group-header",De.id=`${ne}-grp-${me}`,De.textContent=xe.group,Oe.setAttribute("aria-labelledby",De.id),Oe.appendChild(De);for(const et of xe.items)Oe.appendChild(Qe(et,me)),me+=1;fe.appendChild(Oe)}else for(const Oe of xe.items)fe.appendChild(Qe(Oe,me)),me+=1}function jt(me,xe=!1){const Oe=me??te.scrollTop;if(fe.style.position="relative",n=te.clientHeight||n||240,de.length===0){fe.style.height="0px";return}for(let ot=0;ot<de.length;ot++)ye[ot]==null&&(ye[ot]=He(de[ot]));R.length=0,R[0]=0;for(let ot=1;ot<=de.length;ot++)R[ot]=R[ot-1]+ye[ot-1];fe.style.height=`${R[de.length]}px`;const De=Oe,et=Oe+n;let nt=0;for(;nt<de.length-1&&R[nt+1]<De;)nt+=1;let Ye=nt;for(;Ye<de.length&&R[Ye]<et;)Ye+=1;if(Ye=Math.min(de.length,Ye+2),xe&&nt===he&&Ye===je&&fe.firstChild){let ot=!0;for(let bt=nt;bt<Ye&&ot;bt++){const Pt=ee.getElementById(Ke(bt)),tn=Pt?Pt.getBoundingClientRect().height:0;(!Pt||tn>0&&Math.abs(tn-ye[bt])>.5)&&(ot=!1)}if(ot)return}for(he=nt,je=Ye;fe.firstChild;)fe.removeChild(fe.firstChild);for(let ot=nt;ot<Ye;ot++){const bt=Qe(de[ot],ot);bt.style.position="absolute",bt.style.insetInlineStart="0",bt.style.insetInlineEnd="0",bt.style.top="0",bt.style.transform=`translateY(${R[ot]}px)`,fe.appendChild(bt)}let dt=!1;for(let ot=nt;ot<Ye;ot++){const bt=ee.getElementById(Ke(ot));if(!bt)continue;const Pt=bt.getBoundingClientRect().height;Pt>0&&Math.abs(Pt-ye[ot])>.5&&(ye[ot]=Pt,dt=!0)}dt?jt(Oe):te.scrollTop!==Oe&&(te.scrollTop=Oe)}function Nt(){if(ie||!ee)return;const me=ee.defaultView,xe=me&&me.ResizeObserver;if(typeof xe!="function")return;const Oe=new xe(()=>{We||jt(void 0,!0)});Oe.observe(te),Te.push(()=>Oe.disconnect())}function It(){if(pe<0||ie)return;const me=R[pe]||0,xe=me+(ye[pe]||He(de[pe])),Oe=fe.offsetTop||0,De=te.scrollTop+n-Oe;me<te.scrollTop?te.scrollTop=me:xe>De&&(te.scrollTop=xe-(n-Oe)),at()}function Lt(){de.length===0?(ve.hidden=!1,ve.textContent=O("form.listbox.empty")):(ve.hidden=!0,ve.textContent="")}function Kt(){for(const me of fe.querySelectorAll('.lat-listbox__option[role="option"]')){const xe=me.id||"",Oe=Number(xe.slice(`${ne}-opt-`.length));if(Number.isNaN(Oe))continue;const De=de[Oe];if(!De)continue;const et=X.has(v(De.value));me.setAttribute("aria-selected",et?"true":"false");const nt=me.querySelector(".lat-listbox__checkbox");nt&&(nt.checked=et)}Rt(),Ee&&ht()}function Rt(){if(!oe)return;const me=de.filter(Oe=>!Oe.disabled),xe=me.filter(Oe=>X.has(v(Oe.value))).length;oe.checked=me.length>0&&xe===me.length,oe.indeterminate=xe>0&&xe<me.length,oe.disabled=Ve()||me.length===0}function ht(){const me=X.size>0,xe=Ve();C&&(C.disabled=xe||!me),K&&(K.disabled=xe||!me),G&&(G.disabled=xe||!me),B&&(B.disabled=xe||be.length===0)}function Ct(me){pe=me,me>=0&&me<de.length?te.setAttribute("aria-activedescendant",Ke(me)):te.removeAttribute("aria-activedescendant")}function Qt(me){for(let xe=Math.max(0,me);xe<de.length;xe++)if(!de[xe].disabled)return xe;return-1}function Bt(me){for(let xe=Math.min(de.length-1,me);xe>=0;xe--)if(!de[xe].disabled)return xe;return-1}function $t(me,xe={}){const Oe=de[me];if(!Oe||Oe.disabled||Ve())return;Ct(me);const De=new Set(X);if(ae==="single")X.clear(),X.add(v(Oe.value)),Y=me;else if(ae==="checkbox")X.has(v(Oe.value))?X.delete(v(Oe.value)):X.add(v(Oe.value)),Y=me;else if(xe.shift&&Y!=null){const et=Math.min(Y,me),nt=Math.max(Y,me);X.clear();for(let Ye=et;Ye<=nt;Ye++)de[Ye].disabled||X.add(v(de[Ye].value))}else xe.ctrl||xe.touch?(X.has(v(Oe.value))?X.delete(v(Oe.value)):X.add(v(Oe.value)),Y=me):(X.clear(),X.add(v(Oe.value)),Y=me);It(),Kt(),Ft(De,X)||Fe()}function Ft(me,xe){if(me.size!==xe.size)return!1;for(const Oe of me)if(!xe.has(Oe))return!1;return!0}function rn(){if(Ve())return;const me=!Xe();for(const xe of de)xe.disabled||(me?X.add(v(xe.value)):X.delete(v(xe.value)));Kt(),Fe()}function kt(me,xe){if(de.length===0)return;const Oe=pe<0?me>0?-1:de.length:pe,De=me>0?Qt(Oe+1):Bt(Oe-1);if(De!==-1){if(Ct(De),It(),ae==="single"){$t(De,{});return}xe&&le&&(Y==null&&(Y=De),$t(De,{shift:!0}))}}function on(me){U&&clearTimeout(U),a+=me.toLowerCase(),U=setTimeout(()=>{a="",U=null},r);const xe=pe>-1?pe+1:0;let Oe=-1;for(let De=xe;De<de.length;De++)if(!de[De].disabled&&de[De].label.toLowerCase().startsWith(a)){Oe=De;break}if(Oe===-1){for(let De=0;De<xe;De++)if(!de[De].disabled&&de[De].label.toLowerCase().startsWith(a)){Oe=De;break}}Oe!==-1&&(Ct(Oe),It())}function Zt(me){if(me.altKey&&me.key==="ArrowUp"&&(se||H))me.preventDefault(),wt(-1);else if(me.altKey&&me.key==="ArrowDown"&&(se||H))me.preventDefault(),wt(1);else if(me.key==="ArrowDown")me.preventDefault(),kt(1,me.shiftKey);else if(me.key==="ArrowUp")me.preventDefault(),kt(-1,me.shiftKey);else if(me.key==="Home"){me.preventDefault();const xe=Qt(0);xe!==-1&&(Ct(xe),It(),ae==="single"&&$t(xe,{}))}else if(me.key==="End"){me.preventDefault();const xe=Bt(de.length-1);xe!==-1&&(Ct(xe),It(),ae==="single"&&$t(xe,{}))}else if(me.key===" ")me.preventDefault(),pe>=0&&$t(pe,{ctrl:le});else if(me.key==="Enter"){me.preventDefault();const xe=pe>=0?de[pe]:null;xe&&!xe.disabled&&!Ve()&&o(h,ee,"activate",{option:g(xe),event:me})}else if((me.ctrlKey||me.metaKey)&&(me.key==="a"||me.key==="A")&&le){if(me.preventDefault(),Ve())return;for(const xe of de)xe.disabled||X.add(v(xe.value));Kt(),Fe()}else me.key.length===1&&!me.ctrlKey&&!me.metaKey&&!me.altKey&&on(me.key)}function Yt(){if(ce=ke.value||"",typeof $.load!="function"){Ue(),at();return}we&&clearTimeout(we),we=setTimeout(()=>en(),u)}function en(){if(We||typeof $.load!="function")return;Re=!0,Ne+=1;const me=Ne;Ie&&Ie.abort(),Ie=typeof AbortController<"u"?new AbortController:null;let xe;try{xe=$.load({search:ce,page:0,signal:Ie?Ie.signal:void 0})}catch{Re=!1;return}const Oe=De=>{if(We||me!==Ne)return;Re=!1;const et=w(De);be=et.items.map(l),Le=et.hasMore,Se=1,Ue(),at()};xe&&typeof xe.then=="function"?xe.then(Oe,()=>{Re=!1}):Oe(xe)}Ge(te,"keydown",Zt),Ge(te,"pointerdown",_t),Ge(te,"pointerup",ft),Ge(te,"scroll",()=>{ie||jt(void 0,!0)}),ke&&Ge(ke,"input",Yt),C&&Ge(C,"click",()=>wt(-1)),K&&Ge(K,"click",()=>wt(1)),G&&Ge(G,"click",()=>Vt()),B&&Ge(B,"click",()=>Gt()),oe&&Ge(oe,"change",()=>rn()),Ge(te,"dragover",me=>{b&&me.preventDefault()}),Ge(te,"drop",me=>{if(me.preventDefault(),!b||b.source===st||!Z)return;const xe=b.source.__removeValues(b.values);b=null,xt(xe)}),H&&ee&&(Ge(ee,"pointermove",Dt),Ge(ee,"pointerup",vt));function Xt(me){if(X.clear(),se&&$.valueAs==="order"&&Array.isArray(me)){const xe=new Map(be.map(Oe=>[v(Oe.value),Oe]));be=me.map(Oe=>xe.get(v(Oe))||l(Oe))}else if(ae==="single")me!=null&&X.add(v(me));else if((se||Z)&&Array.isArray(me)){const xe=new Map(be.map(Oe=>[v(Oe.value),Oe]));be=me.map(Oe=>xe.get(v(Oe))||l(Oe));for(const Oe of be)X.add(v(Oe.value))}else{const xe=Array.isArray(me)?me:me==null?[]:[me];for(const Oe of xe)X.add(v(Oe))}Ue(),at()}typeof $.load!="function"&&(be=(Array.isArray($.options)?$.options:[]).map(l)),Ue(),Xt($.value),typeof $.load=="function"&&en();const st={el:h,root:q,viewport:te,getValue:rt,setValue(me){return Xt(me),st},focus(){return te.focus(),st},blur(){return te.blur(),st},setDisabled(me){$.disabled=me,te.setAttribute("aria-disabled",me?"true":"false"),ke&&(ke.disabled=me),Rt(),ht()},setReadOnly(me){$.readOnly=me,me?te.setAttribute("aria-readonly","true"):te.removeAttribute("aria-readonly"),Rt(),ht()},getOptions(){return be.map(me=>g(me))},addOption(me,xe){return zt(me,xe),st},removeOption(me){return mt([me]),st},updateOption(me,xe){return qt(me,xe),st},filter(me){return re=typeof me=="function"?me:null,Ue(),at(),st},remeasure(){return ie||(ye.length=0,R.length=0,at()),st},__removeValues:mt,__receiveItems:xt,destroy(){We=!0,U&&clearTimeout(U),we&&clearTimeout(we),Ie&&Ie.abort();for(const me of Te.splice(0))me();if(ee&&Q){const me=_(ee);me.get(Q)===st&&me.delete(Q)}for(;q.firstChild;)q.removeChild(q.firstChild)}};return ee&&Q&&_(ee).set(Q,st),at(),Nt(),h.appendChild(q),h.__listbox=st,st}F("listbox",{kind:"field",domEvents:["itemClick","activate"],build(h,$){const ee=h.props||{},O=$.doc.createElement("div");return y(O,{options:h.options,load:ee.load,selection:ee.selection,value:h.value,filter:ee.filter===!0,groupBy:ee.groupBy===!0,sort:ee.sort,render:ee.render,reorder:ee.reorder===!0,valueAs:ee.valueAs,connect:ee.connect,name:h.name,min:h.min,max:h.max,height:h.height,rows:h.rows,dragHandle:ee.dragHandle===!0,disabled:h.disabled===!0,readOnly:h.readOnly===!0,ariaLabel:h.label,t:$.t,doc:$.doc,inForm:!0}),O.__listboxT=$.t,$.disposers.push(()=>{O.__listbox&&O.__listbox.destroy()}),O},read(h){return h.__listbox?h.__listbox.getValue():null},write(h,$){h.__listbox&&h.__listbox.setValue($)},validate(h,$,ee){if(!h.__listbox)return null;const ae=h.__listboxT||e,le=Array.isArray(ee)?ee.length:ee==null?0:1,se=$.min!=null&&Number.isFinite(Number($.min))?Number($.min):null,Z=$.max!=null&&Number.isFinite(Number($.max))?Number($.max):null;return se!=null&&le<se?{code:"min",message:ae("form.listbox.min",{min:String(se)})}:Z!=null&&le>Z?{code:"max",message:ae("form.listbox.max",{max:String(Z)})}:null},state(h,$){h.__listbox&&(h.__listbox.setDisabled($.disabled===!0),h.__listbox.setReadOnly($.readOnly===!0))},focus(h){h.__listbox&&h.__listbox.focus()},blur(h){h.__listbox&&h.__listbox.blur()}})}),Me("packages/modules/form/controls/options.js",function(A,J){"use strict";Object.defineProperty(A,"normalizeOptions",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"resolveChoiceLayout",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"choiceLayoutCss",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return I}});const F=J("packages/modules/form/styles.js").NS;function L(M){return Array.isArray(M)?M.map(W=>{if(typeof W=="string")return{value:W,label:W};if(W&&typeof W=="object"){const E=W.value==null?"":String(W.value),T=W.label!=null?String(W.label):W.text!=null?String(W.text):E;return{value:E,label:T}}return{value:"",label:""}}):[]}function e(M){const W=M&&M.props?M.props:{},E=M&&M.orientation!=null?M.orientation:W.orientation;let T=M&&M.columns!=null?M.columns:W.columns;return T=typeof T=="number"&&Number.isFinite(T)&&T>=1?Math.floor(T):0,T>0?{orientation:"vertical",columns:T}:{orientation:E==="horizontal"?"horizontal":"vertical",columns:0}}function P(){return`
|
|
2076
2076
|
.${F}__radiogroup--horizontal,
|
|
2077
2077
|
.${F}__checkboxgroup--horizontal{
|
|
2078
2078
|
flex-direction:row; flex-wrap:wrap; align-items:center;
|
|
@@ -2083,7 +2083,7 @@ ${M()}
|
|
|
2083
2083
|
display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
|
|
2084
2084
|
gap:var(--lattice-space);
|
|
2085
2085
|
}
|
|
2086
|
-
`.trim()}const D="data-lattice-form-choice-styles";function I(M){const W=M&&M.documentElement;if(!W||W.getAttribute(D))return;W.setAttribute(D,"1");const E=M.createElement("style");E.textContent=P(),(M.head||M.body||W).appendChild(E)}}),De("packages/modules/form/controls/radiogroup.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/options.js"),e=L.normalizeOptions,P=L.resolveChoiceLayout,D=L.injectChoiceLayoutStyles,I=J("packages/modules/form/state.js"),M=I.applyBooleanInputState,W=I.guardBooleanInput;F("radiogroup",{kind:"field",build(E,T){const i=T.doc.createElement("div");i.className="lat-form__radiogroup",i.setAttribute("role","radiogroup"),E.label!=null&&E.label!==""&&i.setAttribute("aria-label",String(E.label));const p=P(E);p.columns>0?(D(T.doc),i.classList.add("lat-form__radiogroup--columns"),i.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(D(T.doc),i.classList.add("lat-form__radiogroup--horizontal")),i.setAttribute("aria-orientation",p.orientation);const S=[];for(const k of e(E.options)){const d=T.doc.createElement("label");d.className="lat-form__choice";const c=T.doc.createElement("input");c.type="radio",E.name&&(c.name=E.name),c.value=k.value,c.checked=E.value!=null&&String(E.value)===k.value,W(c),d.appendChild(c);const t=T.doc.createElement("span");t.textContent=k.label,d.appendChild(t),i.appendChild(d),S.push(c)}return i.__radios=S,i},read(E){const T=E.__radios.find(i=>i.checked);return T?T.value:null},write(E,T){const i=T==null?null:String(T);for(const p of E.__radios)p.checked=i!==null&&p.value===i},state(E,T){const i=T.readOnly===!0;for(const p of E.__radios)M(p,T.disabled===!0,i);i?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const T=E.__radios.find(i=>!i.disabled);T&&T.focus()}})}),De("packages/modules/form/controls/checkboxgroup.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/options.js"),e=L.normalizeOptions,P=L.resolveChoiceLayout,D=L.injectChoiceLayoutStyles,I=J("packages/modules/form/state.js"),M=I.applyBooleanInputState,W=I.guardBooleanInput;F("checkboxgroup",{kind:"field",build(E,T){const i=T.doc.createElement("div");i.className="lat-form__checkboxgroup",i.setAttribute("role","group"),E.label!=null&&E.label!==""&&i.setAttribute("aria-label",String(E.label));const p=P(E);p.columns>0?(D(T.doc),i.classList.add("lat-form__checkboxgroup--columns"),i.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(D(T.doc),i.classList.add("lat-form__checkboxgroup--horizontal"));const S=[],k=Array.isArray(E.value)?E.value.map(String):[];for(const d of e(E.options)){const c=T.doc.createElement("label");c.className="lat-form__choice";const t=T.doc.createElement("input");t.type="checkbox",E.name&&(t.name=E.name),t.value=d.value,t.checked=k.includes(d.value),W(t),c.appendChild(t);const s=T.doc.createElement("span");s.textContent=d.label,c.appendChild(s),i.appendChild(c),S.push(t)}return i.__boxes=S,i},read(E){return E.__boxes.filter(T=>T.checked).map(T=>T.value)},write(E,T){const i=Array.isArray(T)?T.map(String):[];for(const p of E.__boxes)p.checked=i.includes(p.value)},state(E,T){const i=T.readOnly===!0;for(const p of E.__boxes)M(p,T.disabled===!0,i);i?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const T=E.__boxes.find(i=>!i.disabled);T&&T.focus()}})}),De("packages/modules/form/controls/toggle.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/state.js"),e=L.applyBooleanInputState,P=L.guardBooleanInput,D=Object.freeze(["small","default","large"]),I=Object.freeze(["round","square","slim"]),M=Object.freeze(["inside","before","after"]);function W(d){return D.includes(d)?d:"default"}function E(d){return I.includes(d)?d:"round"}function T(d){return M.includes(d)?d:"inside"}function i(d){return d==null?"":String(d)}function p(d){return d.__latToggle?d.__latToggle.input:d}function S(d){!d||!d.label||(d.label.textContent=d.input.checked?d.onLabel:d.offLabel)}function k(d,c,t){const s=c&&c.defaultView,u=s&&s.Event,r=u?new u(t,{bubbles:!0}):{type:t,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};d.dispatchEvent(r)}F("toggle",{kind:"toggle",build(d,c){const t=d.props||{},s=c.doc.createElement("input");s.type="checkbox",s.className="lat-form__toggle",s.setAttribute("role","switch"),d.name&&(s.name=d.name),s.checked=d.value===!0,P(s),t.size!=null&&s.setAttribute("data-size",W(t.size)),t.variant!=null&&s.setAttribute("data-variant",E(t.variant));const u=i(t.onLabel),r=i(t.offLabel);if(u===""&&r==="")return s;const m=c.doc.createElement("span");m.className="lat-form__toggle-field",m.setAttribute("data-label-position",T(t.labelPosition)),m.appendChild(s);const z=c.doc.createElement("span");z.className="lat-form__toggle-label",m.appendChild(z);const l={input:s,label:z,onLabel:u,offLabel:r};m.__latToggle=l,S(l),s.addEventListener("change",()=>S(l));let g=!1;return m.addEventListener("focusin",()=>{g||(g=!0,k(m,c.doc,"focus"))}),m.addEventListener("focusout",w=>{m.contains(w.relatedTarget)||(g=!1,k(m,c.doc,"blur"))}),m},read(d){return p(d).checked},write(d,c){const t=p(d);t.checked=c===!0,S(d.__latToggle)},state(d,c){e(p(d),c.disabled===!0,c.readOnly===!0)},focus(d){const c=p(d);typeof c.focus=="function"&&c.focus()},blur(d){const c=p(d);typeof c.blur=="function"&&c.blur()}})}),De("packages/modules/form/controls/date-parse.js",function(A,J){"use strict";Object.defineProperty(A,"parseTypedDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"splitTypedTime",{enumerable:!0,get:function(){return T}});const _e=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function F(i){return i.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function L(i,p,S){if(!Number.isInteger(i)||!Number.isInteger(p)||!Number.isInteger(S)||i<1||i>9999||p<1||p>12||S<1)return null;const k=p===2?e(i)?29:28:[4,6,9,11].includes(p)?30:31;return S>k?null:`${String(i).padStart(4,"0")}-${String(p).padStart(2,"0")}-${String(S).padStart(2,"0")}`}function e(i){return i%4===0&&i%100!==0||i%400===0}function P(i){const p=Number(i);return i.length<=2?2e3+p:p}function D(i){const p=new Map;for(let S=1;S<=12;S++){const k=new Date(2001,S-1,15);for(const d of["long","short"]){const c=new Intl.DateTimeFormat(i,{month:d}).format(k),t=new Intl.DateTimeFormat(i,{day:"numeric",month:d}).formatToParts(k).find(s=>s.type==="month");for(const s of[c,t&&t.value]){if(!s)continue;const u=s.toLowerCase();p.set(u,S),u.endsWith(".")&&p.set(u.slice(0,-1),S)}}}return p}function I(i,p,S){const k=new Intl.DateTimeFormat(p,S).formatToParts(new Date(2001,10,22)),d=D(p),c=[];let t="^";for(const m of k)if(m.type==="day")c.push("d"),t+="(\\d{1,2})";else if(m.type==="year"||m.type==="relatedYear")c.push("y"),t+="(\\d{4}|\\d{2})";else if(m.type==="month")if(c.push("m"),/^\d+$/.test(m.value))t+="(\\d{1,2})";else{const z=[...d.keys()].sort((l,g)=>g.length-l.length).map(F);t+=`(${z.join("|")})`}else if(m.type==="literal")t+=m.value.trim()===""?"\\s+":`\\s*${F(m.value.trim())}\\s*`;else if(m.type==="weekday")t+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const s=new RegExp(`${t}$`,"iu").exec(i);if(!s||c.length!==3)return null;const u={};c.forEach((m,z)=>{u[m]=s[z+1]});const r=/^\d+$/.test(u.m)?Number(u.m):d.get(u.m.toLowerCase());return L(P(u.y),r,Number(u.d))}function M(i,p){const k=new Intl.DateTimeFormat(p,{day:"numeric",month:"numeric",year:"numeric"}).formatToParts(new Date(2001,10,22)).filter(s=>s.type==="day"||s.type==="month"||s.type==="year"||s.type==="relatedYear").map(s=>s.type==="day"?"d":s.type==="month"?"m":"y");if(k.length!==3)return null;const d=k.map(s=>s==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),c=new RegExp(`^${d}\\.?$`).exec(i);if(!c)return null;const t={};return k.forEach((s,u)=>{t[s]=c[u+1]}),L(P(t.y),Number(t.m),Number(t.d))}function W(i){const p=k=>{const d=k.toLowerCase().replace(/\.$/,"");return _e.findIndex(t=>t===d||t.slice(0,3)===d||d==="sept"&&t==="september")+1};let S=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(i);return S?p(S[2])?L(Number(S[3]),p(S[2]),Number(S[1])):null:(S=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(i),S&&p(S[1])?L(Number(S[3]),p(S[1]),Number(S[2])):null)}function E(i,p,S){const k=String(i??"").trim().replace(/\s+/g," ");if(!k)return null;const d=S||p&&p.locale||void 0,c={dateStyle:"medium"},t=[()=>I(k,d,c),()=>M(k,d),()=>{const s=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(k);return s?L(Number(s[1]),Number(s[2]),Number(s[3])):null},()=>W(k)];for(const s of t)try{const u=s();if(u)return u}catch{}return null}function T(i){const p=String(i??"").trim(),S=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(p);if(!S)return{date:p,time:null};let k=Number(S[1]);const d=Number(S[2]);if(S[3]){const c=S[3].toLowerCase()==="p";if(k<1||k>12)return{date:p,time:null};k=k%12+(c?12:0)}return k>23||d>59?{date:p,time:null}:{date:p.slice(0,S.index).replace(/[,\s]+$/,""),time:{h:k,mi:d}}}}),De("packages/modules/form/controls/date-shared.js",function(A,J){"use strict";Object.defineProperty(A,"pad",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"echoKey",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"modeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"daysInMonth",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"fieldsOfDate",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"parseValue",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"isoOf",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"displayOf",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"withinRange",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"disabledTestOf",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"weekdayName",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"monthTitle",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"yearTitle",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"dispatchChange",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"is12Hour",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"dayPeriods",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"to24Hour",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"parseDay",{enumerable:!0,get:function(){return u}}),Object.defineProperty(A,"dayISO",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"dayNumber",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"dayNumberOf",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"dayOfNumber",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"parseMonth",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"monthISO",{enumerable:!0,get:function(){return w}}),Object.defineProperty(A,"monthIndex",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"monthOfIndex",{enumerable:!0,get:function(){return v}}),Object.defineProperty(A,"isoWeek",{enumerable:!0,get:function(){return f}}),Object.defineProperty(A,"focusedNavIndex",{enumerable:!0,get:function(){return o}}),Object.defineProperty(A,"restoreNavFocus",{enumerable:!0,get:function(){return _}}),Object.defineProperty(A,"afterFocusSettles",{enumerable:!0,get:function(){return b}});const _e=J("packages/modules/form/controls/date-parse.js");Object.defineProperty(A,"parseTypedDate",{enumerable:!0,get:function(){return _e.parseTypedDate}}),Object.defineProperty(A,"splitTypedTime",{enumerable:!0,get:function(){return _e.splitTypedTime}});function F(y){return String(y).padStart(2,"0")}function L(y){return y}function e(y){return y.mode==="date-time"||y.mode==="time"?y.mode:"date"}function P(y,h){return new Date(y,h,0).getDate()}function D(y,h){if(!(h instanceof Date)||Number.isNaN(h.getTime()))return null;const $={y:h.getFullYear(),mo:h.getMonth()+1,d:h.getDate(),h:h.getHours(),mi:h.getMinutes()},ee=y.timeZone;if(!ee)return $;try{const O=new Intl.DateTimeFormat("en-US",{timeZone:ee,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(h),ae={y:0,mo:1,d:1,h:0,mi:0};for(const se of O)se.type==="year"?ae.y=Number(se.value):se.type==="month"?ae.mo=Number(se.value):se.type==="day"?ae.d=Number(se.value):se.type==="hour"?ae.h=Number(se.value)%24:se.type==="minute"&&(ae.mi=Number(se.value));return ae}catch{return $}}function I(y,h){if(h==null||h==="")return null;if(typeof h=="number")return D(y,new Date(h));if(h instanceof Date)return D(y,h);if(typeof h=="string"){const $=h.trim();if(e(y)==="time"){const O=/^(\d{1,2}):(\d{2})/.exec($);return O?{y:null,mo:null,d:null,h:Number(O[1]),mi:Number(O[2])}:null}const ee=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec($);return ee?{y:Number(ee[1]),mo:Number(ee[2]),d:Number(ee[3]),h:ee[4]!=null?Number(ee[4]):0,mi:ee[5]!=null?Number(ee[5]):0}:null}return null}function M(y,h){if(!h)return null;if(e(y)==="time")return`${F(h.h)}:${F(h.mi)}`;const $=`${F(h.y)}-${F(h.mo)}-${F(h.d)}`;return e(y)==="date"?$:`${$}T${F(h.h)}:${F(h.mi)}`}function W(y,h){if(!h)return"";const $=e(y);if($==="time")return`${F(h.h)}:${F(h.mi)}`;const ee=y.locale||void 0,O={dateStyle:"medium"};return $==="date-time"&&(O.timeStyle="short"),new Intl.DateTimeFormat(ee,O).format(new Date(h.y,h.mo-1,h.d,h.h,h.mi))}function E(y,h){return h==null?!0:!(y.min!=null&&h<String(y.min)||y.max!=null&&h>String(y.max))}function T(y){const $=(y.props&&typeof y.props=="object"?y.props:{}).disabledDates;if(Array.isArray($)){const ee=new Set($.map(String));return O=>ee.has(O)}return typeof $=="function"?ee=>$(ee)===!0:null}function i(y,h){return new Intl.DateTimeFormat(y.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+h))}function p(y,h){return new Intl.DateTimeFormat(y.locale||void 0,{month:"long",year:"numeric"}).format(new Date(h.y,h.mo-1,1))}function S(y){return String(y.y)}function k(y){const h=y.ownerDocument&&y.ownerDocument.defaultView,$=h&&typeof h.Event=="function"?h.Event:null;y.dispatchEvent($?new $("change",{bubbles:!0}):{type:"change",bubbles:!0})}function d(y){try{const h=new Intl.DateTimeFormat(y.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return h==="h11"||h==="h12"}catch{return!1}}function c(y){try{const h=new Intl.DateTimeFormat(y.locale||void 0,{hour:"numeric",hour12:!0}),$=h.formatToParts(new Date(2021,0,1,9)).find(O=>O.type==="dayPeriod"),ee=h.formatToParts(new Date(2021,0,1,15)).find(O=>O.type==="dayPeriod");if($&&ee)return{am:$.value,pm:ee.value}}catch{}return null}function t(y){const h=y%12;return h===0?12:h}function s(y,h){return h?y===12?12:y+12:y===12?0:y}function u(y){if(typeof y!="string")return null;const h=/^(\d{4})-(\d{2})-(\d{2})$/.exec(y.trim());if(!h)return null;const $={y:Number(h[1]),mo:Number(h[2]),d:Number(h[3])};return $.mo<1||$.mo>12||$.d<1||$.d>P($.y,$.mo)?null:$}function r(y,h,$){return`${F(y)}-${F(h)}-${F($)}`}function m(y,h,$){return Date.UTC(y,h-1,$)/864e5}function z(y){const h=u(y);return h?m(h.y,h.mo,h.d):NaN}function l(y){const h=new Date(y*864e5);return{y:h.getUTCFullYear(),mo:h.getUTCMonth()+1,d:h.getUTCDate()}}function g(y){if(typeof y!="string")return null;const h=/^(\d{4})-(\d{2})$/.exec(y.trim());if(!h)return null;const $={y:Number(h[1]),mo:Number(h[2])};return $.mo<1||$.mo>12?null:$}function w(y,h){return`${F(y)}-${F(h)}`}function x(y,h){return y*12+(h-1)}function v(y){return{y:Math.floor(y/12),mo:y%12+1}}function f(y,h,$){const ee=new Date(Date.UTC(y,h-1,$)),O=ee.getUTCDay()||7;ee.setUTCDate(ee.getUTCDate()+4-O);const ae=new Date(Date.UTC(ee.getUTCFullYear(),0,1));return Math.ceil(((ee-ae)/864e5+1)/7)}function o(y,h){const $=y.ownerDocument,ee=$?$.activeElement:null;return!ee||typeof y.contains!="function"||!y.contains(ee)?-1:Array.prototype.indexOf.call(y.querySelectorAll(`.${h}`),ee)}function _(y,h,$){if($<0)return;const ee=y.querySelectorAll(`.${h}`)[$];ee&&typeof ee.focus=="function"&&ee.focus()}function b(y,h){const $=y&&y.defaultView;($&&typeof $.setTimeout=="function"?$.setTimeout.bind($):setTimeout)(h,0)}}),De("packages/modules/form/controls/date-typed.js",function(A,J){"use strict";Object.defineProperty(A,"setTypedError",{enumerable:!0,get:function(){return _e}});function _e(F,L){let e=F.__typedError;if(L==null){e&&(e.hidden=!0),F.__input&&F.__input.removeAttribute("aria-invalid");return}e||(e=F.ownerDocument.createElement("div"),e.className="lat-form__error lat-form__typed-error",e.setAttribute("role","alert"),F.__typedError=e,F.appendChild(e)),e.textContent=L,e.hidden=!1,F.__input&&F.__input.setAttribute("aria-invalid","true")}}),De("packages/modules/form/controls/datepicker-draft.js",function(A,J){"use strict";Object.defineProperty(A,"isDraftMode",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"getDraft",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"readDraftClock",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"pickDraftDay",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"commitDraft",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"dropDraft",{enumerable:!0,get:function(){return T}});const _e=J("packages/modules/form/controls/date-shared.js"),F=_e.modeOf,L=_e.displayOf,e=_e.to24Hour,P=_e.isoOf;function D(i){return F(i.__item)==="date-time"}function I(i){if(!i.__draft){const p=i.__fields;i.__draft=p?{y:p.y,mo:p.mo,d:p.d,h:p.h,mi:p.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return i.__draft}function M(i){const p=I(i);if(!i.__hour)return;let S=Number(i.__hour.value)||0;const k=i.__minute&&Number(i.__minute.value)||0;i.__ampm&&(S=e(S,i.__pm===!0)),p.h=S,p.mi=k}function W(i,p,S,k,d){M(i);const c=I(i);c.y=p,c.mo=S,c.d=k,i.__cursor=k,i.__input.value=L(i.__item,c),i.__typedDirty=!1,d(i)}function E(i,p){M(i);const S=I(i);if(S.d==null)return;const k={y:S.y,mo:S.mo,d:S.d,h:S.h,mi:S.mi};P(i.__item,k)!==P(i.__item,i.__fields)&&p(i,k)}function T(i){const p=i.__draft;i.__draft=null,p&&p.d!=null&&D(i)&&(i.__input.value=L(i.__item,i.__fields),i.__typedDirty=!1)}}),De("packages/modules/form/controls/datepicker.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/date-shared.js"),I=D.pad,M=D.echoKey,W=D.modeOf,E=D.daysInMonth,T=D.parseValue,i=D.isoOf,p=D.displayOf,S=D.withinRange,k=D.weekdayName,d=D.monthTitle,c=D.dispatchChange,t=D.is12Hour,s=D.dayPeriods,u=D.to12Hour,r=D.to24Hour,m=D.focusedNavIndex,z=D.restoreNavFocus,l=D.afterFocusSettles,g=D.parseTypedDate,w=D.splitTypedTime,x=D.disabledTestOf,v=D.dayISO,f=D.dayNumber,o=D.dayOfNumber,b=J("packages/modules/form/controls/date-typed.js").setTypedError,y=J("packages/modules/form/controls/popup-layer.js"),h=y.openInLayer,$=y.flushOutsideFocus,ee=J("packages/modules/form/controls/datepicker-draft.js"),O=ee.isDraftMode,ae=ee.getDraft,se=ee.pickDraftDay,ce=ee.readDraftClock,Z=ee.commitDraft,Q=ee.dropDraft,Pe=J("packages/dom/src/autofill.js"),ie=Pe.noHistory,j=Pe.applyAutocomplete,H=Object.freeze(["date","date-time","time"]),ne="lat-form__datepicker-popup--above";function q(N,ue){N.__fields=ue,N.__input.value=p(N.__item,ue),N.__typedDirty=!1,$e(N),c(N)}function we(N){const ue=N.__fields!=null;return N.__fields=null,N.__draft=null,N.__input.value="",N.__typedDirty=!1,b(N,null),$e(N),ue}function $e(N){if(!N.__clear)return;const ue=N.__fields!=null&&N.__readOnly!==!0;N.__clear.hidden=!ue,N.__input.classList.toggle("lat-form__datepicker-input--with-clear",ue)}function C(N,ue){const ye=N.__item;if(W(ye)==="time")return T(ye,ue);const{date:R,time:n}=w(ue),a=g(R,ye);if(!a)return null;const[U,V,le]=a.split("-").map(Number),Ae=N.__fields,he=n||(W(ye)==="date-time"&&Ae?{h:Ae.h,mi:Ae.mi}:{h:0,mi:0});return{y:U,mo:V,d:le,h:he.h,mi:he.mi}}function K(N,ue,ye,R){const n=N.__item,a=i(n,{y:ue,mo:ye,d:R,h:0,mi:0});if(!S(n,a))return!0;const U=x(n);return!!(U&&U(v(ue,ye,R)))}function G(N,ue){if(ue==null||ue==="")return!1;const ye=T(N,ue);if(!ye||ye.y==null||ye.d==null)return!1;const R=x(N);return!!(R&&R(v(ye.y,ye.mo,ye.d)))}function B(N,ue,ye,R){const n=E(ue,ye);for(let a=R>0?1:n;R>0?a<=n:a>=1;a+=R)if(!K(N,ue,ye,a))return a;return null}function te(N){if(!K(N,N.__view.y,N.__view.mo,N.__cursor))return;let ue=f(N.__view.y,N.__view.mo,N.__cursor);for(let ye=0;ye<400;ye+=1){ue+=1;const R=o(ue);if(!K(N,R.y,R.mo,R.d)){N.__view={y:R.y,mo:R.mo},N.__cursor=R.d;return}}}function ge(N,ue){let ye=f(N.__view.y,N.__view.mo,N.__cursor)+ue,R=o(ye);for(let n=0;K(N,R.y,R.mo,R.d)&&n<400;n+=1)ye+=ue,R=o(ye);N.__view={y:R.y,mo:R.mo},N.__cursor=R.d,oe(N)}function oe(N){const ue=N.__item,ye=N.ownerDocument,R=N.__popup,n=N.__view,a=W(ue),U=N.__fields,V=m(R,"lat-form__datepicker-nav"),le=m(R,"lat-form__datepicker-day");for(;R.firstChild;)R.removeChild(R.firstChild);if(a!=="time"){const Ae=ye.createElement("div");Ae.className="lat-form__datepicker-head";const he=ye.createElement("button");he.type="button",he.className="lat-form__datepicker-nav",he.setAttribute("aria-label",N.__t("form.datepicker.prev")),he.textContent="‹",he.addEventListener("click",()=>{fe(N,-1)});const je=ye.createElement("span");je.className="lat-form__datepicker-title",je.textContent=d(ue,n);const ke=ye.createElement("button");ke.type="button",ke.className="lat-form__datepicker-nav",ke.setAttribute("aria-label",N.__t("form.datepicker.next")),ke.textContent="›",ke.addEventListener("click",()=>{fe(N,1)}),Ae.appendChild(he),Ae.appendChild(je),Ae.appendChild(ke),R.appendChild(Ae);const Re=ye.createElement("div");Re.className="lat-form__datepicker-weekdays";for(let Te=0;Te<7;Te+=1){const Le=ye.createElement("span");Le.textContent=k(ue,Te),Re.appendChild(Le)}R.appendChild(Re);const Ne=ye.createElement("div");Ne.className="lat-form__datepicker-grid",Ne.setAttribute("role","grid"),Ne.tabIndex=0,N.__grid=Ne;const Me=new Date(n.y,n.mo-1,1).getDay();for(let Te=0;Te<Me;Te+=1){const Le=ye.createElement("span");Le.className="lat-form__datepicker-blank",Ne.appendChild(Le)}const Oe=E(n.y,n.mo);for(let Te=1;Te<=Oe;Te+=1){const Le=ye.createElement("button");Le.type="button",Le.className="lat-form__datepicker-day",Le.setAttribute("role","gridcell"),Le.textContent=String(Te),K(N,n.y,n.mo,Te)&&(Le.disabled=!0),U&&U.y===n.y&&U.mo===n.mo&&U.d===Te&&Le.classList.add("is-selected"),N.__cursor===Te&&Le.classList.add("is-focus"),Le.addEventListener("click",()=>{if(K(N,n.y,n.mo,Te))return;if(O(N)){se(N,n.y,n.mo,Te,oe);return}const We={y:n.y,mo:n.mo,d:Te,h:U?U.h:0,mi:U?U.mi:0};a==="date"?(N.__cursor=Te,q(N,We),re(N)):(N.__cursor=Te,N.__fields=We,oe(N))}),Ne.appendChild(Le)}R.appendChild(Ne),Ne.addEventListener("keydown",Te=>{if(Te.key==="ArrowLeft")Te.preventDefault(),ge(N,-1);else if(Te.key==="ArrowRight")Te.preventDefault(),ge(N,1);else if(Te.key==="ArrowUp")Te.preventDefault(),ge(N,-7);else if(Te.key==="ArrowDown")Te.preventDefault(),ge(N,7);else if(Te.key==="Home"){Te.preventDefault();const Le=B(N,n.y,n.mo,1);Le!=null&&(N.__cursor=Le),oe(N)}else if(Te.key==="End"){Te.preventDefault();const Le=B(N,n.y,n.mo,-1);Le!=null&&(N.__cursor=Le),oe(N)}else(Te.key==="Enter"||Te.key===" ")&&(Te.preventDefault(),pe(N))})}if(a!=="date"){const Ae=t(ue)?s(ue):null,he=!!Ae,je=ye.createElement("div");je.className="lat-form__datepicker-time";const ke=ye.createElement("input");ke.type="number",ke.className="lat-form__datepicker-hour",ke.min=he?"1":"0",ke.max=he?"12":"23",ke.step="1",ke.setAttribute("aria-label",N.__t("form.datepicker.hour"));const Re=ye.createElement("span");Re.textContent=":";const Ne=ye.createElement("input");if(Ne.type="number",Ne.className="lat-form__datepicker-minute",Ne.min="0",Ne.max="59",Ne.step="1",Ne.setAttribute("aria-label",N.__t("form.datepicker.minute")),je.appendChild(ke),je.appendChild(Re),je.appendChild(Ne),R.appendChild(je),N.__hour=ke,N.__minute=Ne,ke.addEventListener("change",()=>{ve(N)}),Ne.addEventListener("change",()=>{ve(N)}),O(N)&&ae(N),N.__periods=Ae,N.__ampm=null,he){const Oe=ye.createElement("button");Oe.type="button",Oe.className="lat-form__datepicker-ampm",N.__ampm=Oe;const Te=()=>{N.__pm=!N.__pm,Oe.textContent=N.__pm?N.__periods.pm:N.__periods.am,ve(N)};Oe.addEventListener("click",Te),je.appendChild(Oe)}const Me=ye.createElement("button");Me.type="button",Me.className="lat-form__datepicker-done",Me.textContent=N.__t("form.datepicker.done"),Me.addEventListener("click",()=>{me(N)}),je.appendChild(Me)}de(N),z(R,"lat-form__datepicker-nav",V),z(R,"lat-form__datepicker-day",le)}function fe(N,ue){let{y:ye,mo:R}=N.__view;R+=ue,R<1&&(R=12,ye-=1),R>12&&(R=1,ye+=1),N.__view={y:ye,mo:R},N.__cursor=Math.min(N.__cursor,E(ye,R)),oe(N)}function ve(N){if(O(N)){ce(N),de(N);return}const ue=N.__fields;let ye=N.__hour&&Number(N.__hour.value)||0;const R=N.__minute&&Number(N.__minute.value)||0;N.__ampm&&(ye=r(ye,N.__pm===!0));const n=W(N.__item)==="time"?{y:null,mo:null,d:null,h:ye,mi:R}:{y:ue?ue.y:N.__view.y,mo:ue?ue.mo:N.__view.mo,d:ue?ue.d:N.__cursor,h:ye,mi:R};if(N.__cursor=ue?ue.d:N.__cursor,ue&&i(N.__item,n)===i(N.__item,ue)){de(N);return}q(N,n),de(N)}function me(N){if(N.__popup.hidden)return;N.__typedDirty&&X(N)?c(N):O(N)?Z(N,q):W(N.__item)!=="date"&&ve(N),re(N)}function X(N){const ue=N.__item,ye=N.__input,R=ye.value;if(String(R).trim()==="")return N.__fields==null||N.__readOnly===!0?(ye.value=p(ue,N.__fields),N.__typedDirty=!1,!1):(N.__typedDirty=!1,we(N));const n=i(ue,N.__fields),a=C(N,R);return a?(b(N,null),N.__fields=a,N.__draft=null,ye.value=p(ue,a),N.__typedDirty=!1,$e(N),N.__hour&&de(N),i(ue,a)!==n):(ye.value=p(ue,N.__fields),N.__typedDirty=!1,b(N,N.__t("form.datepicker.invalid")),!1)}function de(N){const ue=O(N)?ae(N):N.__fields,ye=N.__ampm&&N.__periods;if(N.__hour){const R=ue?ue.h:0;N.__hour.value=I(ye?u(R):R)}N.__minute&&(N.__minute.value=I(ue?ue.mi:0)),N.__ampm&&N.__periods&&(N.__pm=ue?ue.h>=12:!1,N.__ampm.textContent=N.__pm?N.__periods.pm:N.__periods.am)}function pe(N){const ue=N.__view;if(K(N,ue.y,ue.mo,N.__cursor))return;if(O(N)){se(N,ue.y,ue.mo,N.__cursor,oe);return}const ye=N.__fields,R={y:ue.y,mo:ue.mo,d:N.__cursor,h:ye?ye.h:0,mi:ye?ye.mi:0};q(N,R),re(N)}function Y(N){if(N.__popup.hidden===!1||N.__item.disabled===!0||N.__item.readOnly===!0)return;const ue=N.__fields,ye=new Date;N.__view=ue&&ue.y!=null?{y:ue.y,mo:ue.mo}:{y:ye.getFullYear(),mo:ye.getMonth()+1},N.__cursor=ue&&ue.d!=null?ue.d:ye.getDate(),te(N),N.__popup.hidden=!1,oe(N),N.__layer=h(N.__popup,N,{aboveClass:ne,matchWidth:!1,onOffscreen:()=>re(N)})}function re(N){Q(N),N.__popup.hidden=!0,N.__popup.classList.remove(ne),N.__layer&&(N.__layer.close(),N.__layer=null)}F("datepicker",{kind:"field",build(N,ue){const ye=ue.doc;P(ye);const R=ye.createElement("div");R.className="lat-form__datepicker",R.__item=N,R.__t=ue.t||M,R.__mode=W(N),R.__readOnly=N.readOnly===!0,R.__fields=T(N,N.value),R.__cursor=R.__fields&&R.__fields.d!=null?R.__fields.d:new Date().getDate(),R.__view=R.__fields&&R.__fields.y!=null?{y:R.__fields.y,mo:R.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const n=ye.createElement("input");n.type="text",n.className="lat-form__datepicker-input",N.name&&(n.name=N.name),N.placeholder!=null&&(n.placeholder=String(N.placeholder)),N.label!=null&&N.label!==""&&n.setAttribute("aria-label",String(N.label)),ie(n),j(n,N.autocomplete),n.value=p(N,R.__fields),R.__input=n,R.__typedDirty=!1,n.addEventListener("input",()=>{R.__typedDirty=!0});const a=ye.createElement("button");a.type="button",a.className="lat-form__datepicker-toggle";const U=W(N)==="date";a.setAttribute("aria-label",R.__t(U?"form.datepicker.open":"form.datepicker.openTime"));const V=e(ye,U?"calendar":"clock");if(V&&a.appendChild(V),R.__toggle=a,N.props&&N.props.clearable===!0){const ke=ye.createElement("button");ke.type="button",ke.className="lat-form__datepicker-clear",ke.setAttribute("aria-label",R.__t("form.datepicker.clear")),ke.hidden=!0;const Re=e(ye,"close");Re&&ke.appendChild(Re),R.__clear=ke,ke.addEventListener("click",()=>{R.__readOnly!==!0&&(re(R),we(R)&&c(R),R.__input.focus())})}const le=ye.createElement("div");le.className="lat-form__datepicker-popup lat-form__datepicker",le.hidden=!0,R.__popup=le,R.appendChild(n),R.appendChild(a),R.__clear&&R.appendChild(R.__clear),R.appendChild(le),n.addEventListener("focus",()=>{Y(R)}),a.addEventListener("pointerdown",()=>{$(R,le)}),a.addEventListener("click",()=>{Y(R)}),n.addEventListener("change",ke=>{X(R)||ke.stopPropagation()}),n.addEventListener("keydown",ke=>{ke.key==="Escape"?re(R):ke.key==="Enter"&&R.__fields!=null&&String(n.value).trim()===""&&R.__readOnly!==!0&&(ke.preventDefault(),re(R),we(R)&&c(R))}),R.__ampm=null,R.__periods=null,R.__pm=!1;const Ae=ke=>{R.contains(ke.target)||le.contains(ke.target)||me(R)},he=ke=>{if((R.contains(ke.target)||le.contains(ke.target))&&!(ke.relatedTarget&&(R.contains(ke.relatedTarget)||le.contains(ke.relatedTarget)))){if(!ke.relatedTarget){l(ye,()=>{if(le.hidden)return;const Ne=ye.activeElement;Ne&&(R.contains(Ne)||le.contains(Ne))||me(R)});return}me(R)}},je=ke=>{ke.key==="Escape"&&(ke.preventDefault(),me(R),R.__toggle.focus())};return ye.addEventListener("pointerdown",Ae),ye.addEventListener("focusout",he),le.addEventListener("keydown",je),Array.isArray(ue.disposers)&&ue.disposers.push(()=>{re(R),ye.removeEventListener("pointerdown",Ae),ye.removeEventListener("focusout",he),le.removeEventListener("keydown",je)}),R},read(N){return i(N.__item,N.__fields)},write(N,ue){b(N,null),N.__fields=T(N.__item,ue),N.__draft=null,N.__input.value=p(N.__item,N.__fields),N.__typedDirty=!1,$e(N),N.__fields&&N.__fields.y!=null&&(N.__view={y:N.__fields.y,mo:N.__fields.mo},N.__cursor=N.__fields.d),N.__hour&&!N.__popup.hidden&&de(N)},state(N,ue){N.__input.disabled=ue.disabled===!0,N.__input.readOnly=ue.readOnly===!0,N.__toggle.disabled=ue.disabled===!0||ue.readOnly===!0,N.__readOnly=ue.readOnly===!0,$e(N)},validate(N,ue,ye){return S(ue,ye)?G(ue,ye)?typeof ue.errorMessage=="string"&&ue.errorMessage!==""?ue.errorMessage:N.__t("form.datepicker.disabled"):!0:typeof ue.errorMessage=="string"&&ue.errorMessage!==""?ue.errorMessage:!1},live:{disabledDates(N){N.__popup&&N.__popup.hidden===!1&&oe(N)}},focus(N){N.__input.focus()}})}),De("packages/modules/form/controls/time.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/date-shared.js"),I=D.pad,M=D.echoKey,W=D.fieldsOfDate,E=D.to12Hour,T=D.to24Hour,i=D.withinRange,p=D.dispatchChange,k=J("packages/modules/form/controls/popup-layer.js").openInLayer,d=J("packages/dom/src/autofill.js"),c=d.noHistory,t=d.applyAutocomplete,s="lat-form__time-popup--above";function u(O){return!!(O.props&&O.props.timeFormat===12)}function r(O){return!!(O.props&&O.props.valueFormat==="object")}function m(O){return!!(O.props&&O.props.editable===!0)}function z(O){return!!(O.props&&O.props.controls===!0)}function l(O){const ae=O.props&&O.props.icon;return typeof ae=="string"&&ae!==""?ae:"clock"}function g(O,ae){if(typeof ae!="string")return null;const se=ae.trim(),ce=/^(\d{1,2}):(\d{2})$/.exec(se);if(ce){const Z=Number(ce[1]),Q=Number(ce[2]);return Z>23||Q>59?null:{h:Z,mi:Q}}if(u(O)){const Z=/^(\d{1,2}):(\d{2})\s*([ap])\.?m\.?$/i.exec(se);if(!Z)return null;const Q=Number(Z[1]),Pe=Number(Z[2]);return Q<1||Q>12||Pe>59?null:{h:T(Q,Z[3].toLowerCase()==="p"),mi:Pe}}return null}function w(O,ae){if(ae==null||ae==="")return null;if(typeof ae=="number"){if(!Number.isFinite(ae))return null;const se=ae%1440,ce=se<0?se+1440:se;return{h:Math.floor(ce/60),mi:Math.round(ce%60)}}if(ae instanceof Date){const se=W(O,ae);return se?{h:se.h,mi:se.mi}:null}if(typeof ae=="string")return g(O,ae);if(typeof ae=="object"){const se=Number(ae.hour),ce=Number(ae.minute);return!Number.isFinite(se)||!Number.isFinite(ce)||ce<0||ce>59?null:u(O)?se<1||se>12?null:{h:T(se,ae.AM!==!0),mi:ce}:se<0||se>23?null:{h:se,mi:ce}}return null}function x(O,ae,se){return ae?u(O)?`${I(E(ae.h))}:${I(ae.mi)} ${ae.h<12?se.am:se.pm}`:`${I(ae.h)}:${I(ae.mi)}`:""}function v(O,ae,se){return ae?r(O)?u(O)?{hour:E(ae.h),minute:ae.mi,AM:ae.h<12}:{hour:ae.h,minute:ae.mi}:x(O,ae,se):null}function f(O){const ae=O.__item,se=O.ownerDocument,ce=O.__popup;for(;ce.firstChild;)ce.removeChild(ce.firstChild);const Z=se.createElement("div");Z.className="lat-form__time-row";const Q=se.createElement("input");Q.type="number",Q.className="lat-form__time-hour",Q.min=O.__twelve?"1":"0",Q.max=O.__twelve?"12":"23",Q.step="1",Q.setAttribute("aria-label",O.__t("form.datepicker.hour"));const Pe=se.createElement("span");Pe.className="lat-form__time-colon",Pe.textContent=":";const ie=se.createElement("input");if(ie.type="number",ie.className="lat-form__time-minute",ie.min="0",ie.max="59",ie.step="1",ie.setAttribute("aria-label",O.__t("form.datepicker.minute")),Z.appendChild(Q),Z.appendChild(Pe),Z.appendChild(ie),ce.appendChild(Z),O.__hour=Q,O.__minute=ie,Q.addEventListener("change",()=>{_(O)}),ie.addEventListener("change",()=>{_(O)}),O.__ampm=null,O.__twelve){const H=se.createElement("button");H.type="button",H.className="lat-form__time-ampm",H.addEventListener("click",()=>{O.__pm=!O.__pm,H.textContent=O.__pm?O.__labels.pm:O.__labels.am,_(O)}),Z.appendChild(H),O.__ampm=H}const j=se.createElement("div");if(j.className="lat-form__time-actions",z(ae)){const H=se.createElement("button");H.type="button",H.className="lat-form__time-close",H.textContent=O.__t("form.time.close"),H.addEventListener("click",()=>{$(O)}),j.appendChild(H);const ne=se.createElement("button");ne.type="button",ne.className="lat-form__time-save",ne.textContent=O.__t("form.time.save"),ne.addEventListener("click",()=>{y(O)}),j.appendChild(ne)}else{const H=se.createElement("button");H.type="button",H.className="lat-form__time-done",H.textContent=O.__t("form.datepicker.done"),H.addEventListener("click",()=>{b(O)}),j.appendChild(H)}ce.appendChild(j),o(O)}function o(O){const ae=O.__draft||{h:0,mi:0};O.__hour&&(O.__hour.value=I(O.__twelve?E(ae.h):ae.h)),O.__minute&&(O.__minute.value=I(ae.mi)),O.__ampm&&(O.__pm=ae.h>=12,O.__ampm.textContent=O.__pm?O.__labels.pm:O.__labels.am)}function _(O){const ae=O.__hour&&Number(O.__hour.value)||0,se=O.__minute&&Number(O.__minute.value)||0,ce={h:O.__ampm?T(ae,O.__pm===!0):ae,mi:se};if(O.__draft=ce,z(O.__item)){o(O);return}O.__fields=ce,O.__input.value=x(O.__item,ce,O.__labels),O.__lastText=x(O.__item,ce,O.__labels),p(O),O.__draft=O.__fields,o(O)}function b(O){O.__popup.hidden||(z(O.__item)||_(O),$(O))}function y(O){const ae=O.__draft||{h:0,mi:0};O.__fields=ae,O.__input.value=x(O.__item,ae,O.__labels),O.__lastText=x(O.__item,ae,O.__labels),p(O),$(O)}function h(O){O.__popup.hidden!==!1&&(O.__item.disabled===!0||O.__item.readOnly===!0||(O.__draft=O.__fields?{h:O.__fields.h,mi:O.__fields.mi}:{h:0,mi:0},O.__pm=O.__draft.h>=12,O.__popup.hidden=!1,f(O),O.__layer=k(O.__popup,O,{aboveClass:s,matchWidth:!1,onOffscreen:()=>$(O)})))}function $(O){O.__popup.hidden=!0,O.__popup.classList.remove(s),O.__layer&&(O.__layer.close(),O.__layer=null)}function ee(O){if(!O.__editable)return;const ae=O.__input.value.trim();if(ae===O.__lastText)return;const se=g(O.__item,ae);se&&(O.__fields=se,O.__input.value=x(O.__item,se,O.__labels),O.__lastText=x(O.__item,se,O.__labels)),p(O)}F("time",{kind:"field",build(O,ae){const se=ae.doc;P(se);const ce=se.createElement("div");ce.className="lat-form__time",ce.__item=O,ce.__t=ae.t||M,ce.__twelve=u(O),ce.__object=r(O),ce.__editable=m(O),ce.__labels={am:ce.__t("form.time.am"),pm:ce.__t("form.time.pm")},ce.__fields=w(O,O.value),ce.__draft=ce.__fields?{h:ce.__fields.h,mi:ce.__fields.mi}:null;const Z=se.createElement("input");Z.type="text",Z.className="lat-form__time-input",O.name&&(Z.name=O.name),O.placeholder!=null&&(Z.placeholder=String(O.placeholder)),O.label!=null&&O.label!==""&&Z.setAttribute("aria-label",String(O.label)),c(Z),t(Z,O.autocomplete),Z.readOnly=!ce.__editable,Z.value=x(O,ce.__fields,ce.__labels),ce.__input=Z,ce.__lastText=Z.value;const Q=se.createElement("button");Q.type="button",Q.className="lat-form__time-toggle",Q.setAttribute("aria-label",ce.__t("form.time.open"));const Pe=e(se,l(O));Pe&&Q.appendChild(Pe),ce.__toggle=Q;const ie=se.createElement("div");ie.className="lat-form__time-popup lat-form__time",ie.hidden=!0,ce.__popup=ie,ce.appendChild(Z),ce.appendChild(Q),ce.appendChild(ie),Z.addEventListener("focus",()=>{ce.__editable||h(ce)}),Q.addEventListener("click",()=>{h(ce)}),Z.addEventListener("change",q=>{q.stopPropagation(),ee(ce)}),Z.addEventListener("keydown",q=>{q.key==="Enter"&&ce.__editable?(q.preventDefault(),ee(ce)):q.key==="Escape"?$(ce):q.altKey&&q.key==="ArrowDown"&&(q.preventDefault(),h(ce))});const j=q=>{ce.contains(q.target)||ie.contains(q.target)||b(ce)},H=q=>{(ce.contains(q.target)||ie.contains(q.target))&&(q.relatedTarget&&(ce.contains(q.relatedTarget)||ie.contains(q.relatedTarget))||b(ce))},ne=q=>{q.key==="Escape"&&(q.preventDefault(),b(ce),ce.__toggle.focus())};return se.addEventListener("pointerdown",j),se.addEventListener("focusout",H),ie.addEventListener("keydown",ne),Array.isArray(ae.disposers)&&ae.disposers.push(()=>{$(ce),se.removeEventListener("pointerdown",j),se.removeEventListener("focusout",H),ie.removeEventListener("keydown",ne)}),ce},read(O){const ae=O.__input.value.trim();if(ae==="")return null;const se=g(O.__item,ae);return se?v(O.__item,se,O.__labels):ae},write(O,ae){O.__fields=w(O.__item,ae),O.__input.value=x(O.__item,O.__fields,O.__labels),O.__lastText=x(O.__item,O.__fields,O.__labels),O.__draft=O.__fields?{h:O.__fields.h,mi:O.__fields.mi}:null},state(O,ae){O.__input.disabled=ae.disabled===!0,O.__input.readOnly=ae.readOnly===!0||!O.__editable,O.__toggle.disabled=ae.disabled===!0||ae.readOnly===!0},validate(O,ae,se){if(se==null)return!0;const ce=w(ae,se);return ce?i(ae,`${I(ce.h)}:${I(ce.mi)}`)?!0:typeof ae.errorMessage=="string"&&ae.errorMessage!==""?ae.errorMessage:!1:typeof ae.errorMessage=="string"&&ae.errorMessage!==""?ae.errorMessage:O.__t("form.time.invalid")},focus(O){O.__input.focus()}})}),De("packages/modules/form/controls/daterange.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/date-shared.js"),I=D.echoKey,M=D.daysInMonth,W=D.weekdayName,E=D.monthTitle,T=D.yearTitle,i=D.dispatchChange,p=D.parseDay,S=D.dayISO,k=D.dayNumber,d=D.dayNumberOf,c=D.dayOfNumber,t=D.parseMonth,s=D.monthISO,u=D.monthIndex,r=D.monthOfIndex,m=D.isoWeek,z=D.focusedNavIndex,l=D.restoreNavFocus,g=D.afterFocusSettles,w=D.parseTypedDate,x=D.disabledTestOf,f=J("packages/modules/form/controls/date-typed.js").setTypedError,o=J("packages/dom/src/autofill.js"),_=o.noHistory,b=o.applyAutocomplete,y=" – ";function h(n){return n.props&&n.props.granularity==="month"?"month":"day"}function $(n){return n.props&&typeof n.props=="object"?n.props:{}}function ee(n){return $(n).applyButton!==!1}function O(n){return $(n).weekNumbers===!0}function ae(n){return $(n).clearable===!0}function se(n){const a=$(n).firstDay;if(a!=null){const U=Number(a);if(Number.isFinite(U))return(U%7+7)%7}try{const U=new Intl.Locale(n.locale||void 0).weekInfo;if(U&&U.firstDay)return U.firstDay%7}catch{}return 0}function ce(n,a){return n.min!=null&&a<String(n.min)||n.max!=null&&a>String(n.max)}function Z(n,a,U){return!!(ce(n,a)||U&&U(a))}function Q(n,a,U){if(n==null||a==null)return null;if(U==="month"){const Ae=t(n),he=t(a);return!Ae||!he?null:u(he.y,he.mo)-u(Ae.y,Ae.mo)}const V=d(n),le=d(a);return Number.isNaN(V)||Number.isNaN(le)?null:le-V}function Pe(n,a){return h(n)==="month"?a("form.daterange.months"):a("form.daterange.days")}function ie(n,a){if(h(n)==="month")return[{label:a("form.daterange.monthThisMonth"),range:V=>[s(V.getFullYear(),V.getMonth()+1),s(V.getFullYear(),V.getMonth()+1)]},{label:a("form.daterange.monthLastMonth"),range:V=>{const le=r(u(V.getFullYear(),V.getMonth()+1)-1);return[s(le.y,le.mo),s(le.y,le.mo)]}},{label:a("form.daterange.monthLast3"),range:V=>{const le=u(V.getFullYear(),V.getMonth()+1),Ae=r(le-2),he=r(le);return[s(Ae.y,Ae.mo),s(he.y,he.mo)]}},{label:a("form.daterange.monthLast6"),range:V=>{const le=u(V.getFullYear(),V.getMonth()+1),Ae=r(le-5),he=r(le);return[s(Ae.y,Ae.mo),s(he.y,he.mo)]}},{label:a("form.daterange.monthLast12"),range:V=>{const le=u(V.getFullYear(),V.getMonth()+1),Ae=r(le-11),he=r(le);return[s(Ae.y,Ae.mo),s(he.y,he.mo)]}},{label:a("form.daterange.monthThisYear"),range:V=>[s(V.getFullYear(),1),s(V.getFullYear(),12)]},{label:a("form.daterange.monthLastYear"),range:V=>[s(V.getFullYear()-1,1),s(V.getFullYear()-1,12)]}];const U=V=>S(V.getFullYear(),V.getMonth()+1,V.getDate());return[{label:a("form.daterange.today"),range:V=>[U(V),U(V)]},{label:a("form.daterange.yesterday"),range:V=>{const le=c(k(V.getFullYear(),V.getMonth()+1,V.getDate())-1);return[S(le.y,le.mo,le.d),S(le.y,le.mo,le.d)]}},{label:a("form.daterange.last7"),range:V=>{const le=k(V.getFullYear(),V.getMonth()+1,V.getDate()),Ae=c(le-6);return[S(Ae.y,Ae.mo,Ae.d),U(V)]}},{label:a("form.daterange.last30"),range:V=>{const le=k(V.getFullYear(),V.getMonth()+1,V.getDate()),Ae=c(le-29);return[S(Ae.y,Ae.mo,Ae.d),U(V)]}},{label:a("form.daterange.thisMonth"),range:V=>[S(V.getFullYear(),V.getMonth()+1,1),S(V.getFullYear(),V.getMonth()+1,M(V.getFullYear(),V.getMonth()+1))]},{label:a("form.daterange.lastMonth"),range:V=>{const le=r(u(V.getFullYear(),V.getMonth()+1)-1);return[S(le.y,le.mo,1),S(le.y,le.mo,M(le.y,le.mo))]}}]}function j(n,a){const U=$(n).presets;return U===!1?null:Array.isArray(U)&&U.length?U.map(V=>({label:V&&V.label!=null?String(V.label):"",range:V&&V.range!=null?V.range:["",""]})):ie(n,a)}function H(n,a){return n==null&&a==null?"":a==null?`${n}${y}`:`${n}${y}${a}`}function ne(n,a){const U=String(a??"").trim();if(!U)return{start:null,end:null};if(h(n)!=="month"){const ke=U.split(/\s+[–—-]\s+|\s+to\s+/i).map(Re=>w(Re,n));if(ke.length<=2&&ke.every(Re=>Re)){const[Re,Ne=null]=ke;return Ne&&Re>Ne?{start:Ne,end:Re}:{start:Re,end:Ne}}}const V=h(n)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,le=[];let Ae;for(;(Ae=V.exec(U))!==null;)le.push(Ae[1]);if(le.length===0)return null;const he=le[0],je=le.length>1?le[le.length-1]:null;if(h(n)==="month"){if(!t(he)||je&&!t(je))return null}else if(!p(he)||je&&!p(je))return null;return je&&he>je?{start:je,end:he}:{start:he,end:je}}function q(n,a){return new Intl.DateTimeFormat(n.locale||void 0,{month:"short"}).format(new Date(2021,a-1,1))}function we(n){const a=n.__draftStart,U=n.__draftEnd;return a!=null&&U!=null?[a,U]:a!=null&&n.__hover!=null&&n.__granularity==="day"?[a,n.__hover]:a!=null&&n.__hover!=null&&n.__granularity==="month"?[a,n.__hover]:null}function $e(n,a){return n>=a[0]&&n<=a[1]}function C(n,a){if(n.__granularity==="month"){const le=u(n.__cursor.y,n.__cursor.mo)+a,Ae=r(le);n.__cursor=Ae,K(n),N(n);return}const U=k(n.__cursor.y,n.__cursor.mo,n.__cursor.d)+a,V=c(U);n.__cursor=V,K(n),N(n)}function K(n){if(n.__granularity==="month"){n.__cursor.y<n.__view.y?n.__view={y:n.__cursor.y}:n.__cursor.y>n.__view.y+1&&(n.__view={y:n.__cursor.y-1});return}const U=u(n.__cursor.y,n.__cursor.mo),V=u(n.__view.y,n.__view.mo);U<V?n.__view={y:n.__cursor.y,mo:n.__cursor.mo}:U>V+1&&(n.__view=r(U-1))}function G(n,a){if(n.__granularity==="month"){n.__view={y:n.__view.y+a},N(n);return}const U=u(n.__view.y,n.__view.mo)+a,V=r(U);n.__view=V,N(n)}function B(n,a){return n&&a&&n.y===a.y&&n.mo===a.mo&&(n.d==null||n.d===a.d)}function te(n,a){return n.__granularity==="month"?s(a.y,a.mo):S(a.y,a.mo,a.d)}function ge(n,a){const U=te(n,a);n.__phase!=="started"?(n.__draftStart=U,n.__draftEnd=null,n.__phase="started"):U<n.__draftStart?(n.__draftStart=U,n.__draftEnd=null):(n.__draftEnd=U,n.__phase="idle",ee(n.__item)||oe(n,!0)),n.__cursor=a,n.__hover=null,N(n)}function oe(n,a){n.__start=n.__draftStart,n.__end=n.__draftEnd,n.__phase="idle",n.__input.value=H(n.__start,n.__end),i(n),a&&R(n)}function fe(n){n.__draftStart=n.__start,n.__draftEnd=n.__end,n.__phase="idle",n.__hover=null,R(n)}function ve(n){n.__start=null,n.__end=null,n.__draftStart=null,n.__draftEnd=null,n.__phase="idle",n.__input.value="",i(n)}function me(n,a,U){for(;U.firstChild;)U.removeChild(U.firstChild);const V=x(n.__item);if(n.__granularity==="month")Y(n,a,U,n.__view.y,V),Y(n,a,U,n.__view.y+1,V);else{X(n,a,U,n.__view.y,n.__view.mo,V);const le=r(u(n.__view.y,n.__view.mo)+1);X(n,a,U,le.y,le.mo,V)}}function X(n,a,U,V,le,Ae){const he=n.__item,je=a.createElement("div");je.className="lat-form__daterange-panel";const ke=a.createElement("div");ke.className="lat-form__daterange-title",ke.textContent=E(he,{y:V,mo:le}),je.appendChild(ke);const Re=se(he),Ne=O(he),Me=a.createElement("div");if(Me.className=Ne?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Ne){const He=a.createElement("span");He.className="lat-form__daterange-weeknum-head",Me.appendChild(He)}for(let He=0;He<7;He+=1){const rt=a.createElement("span");rt.textContent=W(he,(Re+He)%7),Me.appendChild(rt)}je.appendChild(Me);const Oe=a.createElement("div");Oe.className=Ne?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",Oe.setAttribute("role","grid"),Oe.setAttribute("aria-label",E(he,{y:V,mo:le})),Oe.tabIndex=0,je.appendChild(Oe);const Le=(new Date(V,le-1,1).getDay()-Re+7)%7,We=M(V,le),Ve=k(V,le,1)-Le,Ze=[];for(let He=0;He<Le;He+=1){Ne&&He%7===0&&Oe.appendChild(de(n,a,Ve));const rt=a.createElement("span");rt.className="lat-form__daterange-blank",Oe.appendChild(rt)}for(let He=1;He<=We;He+=1){Ne&&(Le+He-1)%7===0&&Oe.appendChild(de(n,a,Ve+(Le+He-1)));const rt=pe(n,a,V,le,He,Ae);Ze.push(rt),Oe.appendChild(rt)}re(n,Oe,Ze),U.appendChild(je)}function de(n,a,U){const V=a.createElement("span");V.className="lat-form__daterange-weeknum";const le=new Date(U*864e5),Ae=U-(le.getUTCDay()+6)%7,he=new Date(Ae*864e5);return V.textContent=String(m(he.getUTCFullYear(),he.getUTCMonth()+1,he.getUTCDate())),V}function pe(n,a,U,V,le,Ae){const he=S(U,V,le),je=a.createElement("button");je.type="button",je.className="lat-form__daterange-day",je.setAttribute("role","gridcell"),je.textContent=String(le);const ke=we(n),Re=ke?$e(he,ke):!1,Ne=Z(n.__item,he,Ae);return Ne&&(je.disabled=!0),Re&&je.classList.add("is-in-range"),n.__draftStart===he&&je.classList.add("is-start"),n.__draftEnd===he&&je.classList.add("is-end"),je.setAttribute("aria-selected",Re&&!Ne?"true":"false"),n.__cursor&&n.__cursor.y===U&&n.__cursor.mo===V&&n.__cursor.d===le&&je.classList.add("is-focus"),je.addEventListener("click",()=>{ge(n,{y:U,mo:V,d:le})}),je.addEventListener("mouseover",()=>{n.__draftStart!=null&&n.__draftEnd==null&&!Ne&&n.__hover!==he&&(n.__hover=he,N(n))}),je}function Y(n,a,U,V,le){const Ae=n.__item,he=a.createElement("div");he.className="lat-form__daterange-panel";const je=a.createElement("div");je.className="lat-form__daterange-title",je.textContent=T({y:V}),he.appendChild(je);const ke=a.createElement("div");ke.className="lat-form__daterange-grid lat-form__daterange-grid--months",ke.setAttribute("role","grid"),ke.setAttribute("aria-label",T({y:V})),he.appendChild(ke);const Re=[];for(let Ne=1;Ne<=12;Ne+=1){const Me=s(V,Ne),Oe=a.createElement("button");Oe.type="button",Oe.className="lat-form__daterange-month",Oe.setAttribute("role","gridcell"),Oe.textContent=q(Ae,Ne);const Te=we(n),Le=Te?$e(Me,Te):!1,We=Z(Ae,Me,le);We&&(Oe.disabled=!0),Le&&Oe.classList.add("is-in-range"),n.__draftStart===Me&&Oe.classList.add("is-start"),n.__draftEnd===Me&&Oe.classList.add("is-end"),Oe.setAttribute("aria-selected",Le&&!We?"true":"false"),n.__cursor&&n.__cursor.y===V&&n.__cursor.mo===Ne&&n.__cursor.d==null&&Oe.classList.add("is-focus"),Oe.addEventListener("click",()=>{ge(n,{y:V,mo:Ne})}),Re.push(Oe),ke.appendChild(Oe)}ke.addEventListener("keydown",Ne=>{if(Ne.key==="ArrowLeft")Ne.preventDefault(),C(n,-1);else if(Ne.key==="ArrowRight")Ne.preventDefault(),C(n,1);else if(Ne.key==="ArrowUp")Ne.preventDefault(),C(n,-3);else if(Ne.key==="ArrowDown")Ne.preventDefault(),C(n,3);else if(Ne.key==="PageUp")Ne.preventDefault(),G(n,-1);else if(Ne.key==="PageDown")Ne.preventDefault(),G(n,1);else if(Ne.key==="Enter"||Ne.key===" "){Ne.preventDefault();const Me=te(n,n.__cursor);Z(n.__item,Me,le)||ge(n,n.__cursor)}}),U.appendChild(he)}function re(n,a,U){a.addEventListener("keydown",V=>{const le=n.__cursor;if(V.key==="ArrowLeft")V.preventDefault(),C(n,-1);else if(V.key==="ArrowRight")V.preventDefault(),C(n,1);else if(V.key==="ArrowUp")V.preventDefault(),C(n,-7);else if(V.key==="ArrowDown")V.preventDefault(),C(n,7);else if(V.key==="PageUp")V.shiftKey?(V.preventDefault(),G(n,-12)):(V.preventDefault(),G(n,-1));else if(V.key==="PageDown")V.shiftKey?(V.preventDefault(),G(n,12)):(V.preventDefault(),G(n,1));else if((V.key==="Enter"||V.key===" ")&&(V.preventDefault(),le&&le.d!=null)){const Ae=S(le.y,le.mo,le.d);Z(n.__item,Ae,x(n.__item))||ge(n,le)}})}function N(n){const a=n.ownerDocument,U=n.__popup,V=n.__item,le=z(U,"lat-form__daterange-nav");for(;U.firstChild;)U.removeChild(U.firstChild);const Ae=a.createElement("div");Ae.className="lat-form__daterange-head";const he=a.createElement("button");he.type="button",he.className="lat-form__daterange-nav",he.setAttribute("aria-label",n.__t("form.daterange.prev")),he.textContent="‹",he.addEventListener("click",()=>{G(n,-1)});const je=a.createElement("button");je.type="button",je.className="lat-form__daterange-nav",je.setAttribute("aria-label",n.__t("form.daterange.next")),je.textContent="›",je.addEventListener("click",()=>{G(n,1)}),Ae.appendChild(he);const ke=a.createElement("div");ke.className="lat-form__daterange-body";const Re=j(V,n.__t);if(Re){const Me=a.createElement("div");Me.className="lat-form__daterange-presets";const Oe=a.createElement("div");Oe.className="lat-form__daterange-presets-title",Oe.textContent=n.__t("form.daterange.presets"),Me.appendChild(Oe);for(const Te of Re){const Le=a.createElement("button");Le.type="button",Le.className="lat-form__daterange-preset",Le.textContent=Te.label,Le.addEventListener("click",()=>{ue(n,Te.range)}),Me.appendChild(Le)}ke.appendChild(Me)}const Ne=a.createElement("div");if(Ne.className="lat-form__daterange-panels",me(n,a,Ne),ke.appendChild(Ne),Ae.appendChild(ke),Ae.appendChild(je),U.appendChild(Ae),ee(V)){const Me=a.createElement("div");Me.className="lat-form__daterange-footer";const Oe=a.createElement("button");Oe.type="button",Oe.className="lat-form__daterange-cancel",Oe.textContent=n.__t("form.daterange.cancel"),Oe.addEventListener("click",()=>{fe(n)});const Te=a.createElement("button");Te.type="button",Te.className="lat-form__daterange-apply",Te.textContent=n.__t("form.daterange.apply"),Te.addEventListener("click",()=>{oe(n,!0)}),Me.appendChild(Oe),Me.appendChild(Te),U.appendChild(Me)}l(U,"lat-form__daterange-nav",le)}function ue(n,a){const U=typeof a=="function"?a(new Date):a;if(!(!Array.isArray(U)||U.length<2)){if(n.__draftStart=U[0],n.__draftEnd=U[1],n.__phase="idle",n.__hover=null,n.__granularity==="day"){const V=p(U[0]);V&&(n.__view={y:V.y,mo:V.mo}),n.__cursor=V||n.__cursor}else{const V=t(U[0]);V&&(n.__view={y:V.y}),n.__cursor=V||n.__cursor}N(n)}}function ye(n){if(n.__popup.hidden===!1||n.__item.disabled===!0||n.__item.readOnly===!0)return;n.__draftStart=n.__start,n.__draftEnd=n.__end,n.__phase="idle",n.__hover=null;const a=new Date;if(n.__granularity==="month"){const U=t(n.__start)||{y:a.getFullYear(),mo:a.getMonth()+1};n.__view={y:U.y},n.__cursor=U}else{const U=p(n.__start)||{y:a.getFullYear(),mo:a.getMonth()+1,d:a.getDate()};n.__view={y:U.y,mo:U.mo},n.__cursor=U}n.__popup.hidden=!1,N(n)}function R(n){n.__popup.hidden=!0}F("daterange",{kind:"field",build(n,a){const U=a.doc;P(U);const V=U.createElement("div");V.className="lat-form__daterange",V.__item=n,V.__t=a.t||I,V.__granularity=h(n),V.__start=null,V.__end=null,V.__draftStart=null,V.__draftEnd=null,V.__hover=null,V.__phase="idle";const le=typeof n.value=="object"&&n.value!=null?n.value:{};le&&le.start!=null&&(V.__start=String(le.start)),le&&le.end!=null&&(V.__end=String(le.end));const Ae=U.createElement("input");Ae.type="text",Ae.className="lat-form__daterange-input",n.name&&(Ae.name=n.name),n.placeholder!=null&&(Ae.placeholder=String(n.placeholder)),n.label!=null&&n.label!==""&&Ae.setAttribute("aria-label",String(n.label)),_(Ae),b(Ae,n.autocomplete),Ae.value=H(V.__start,V.__end),V.__input=Ae;const he=U.createElement("button");he.type="button",he.className="lat-form__daterange-toggle",he.setAttribute("aria-label",V.__t("form.daterange.open"));const je=e(U,"calendar");je&&he.appendChild(je),V.__toggle=he;const ke=U.createElement("button");ke.type="button",ke.className="lat-form__daterange-clear",ke.setAttribute("aria-label",V.__t("form.daterange.clear"));const Re=e(U,"close");Re&&ke.appendChild(Re),ke.hidden=!ae(n)||V.__start==null&&V.__end==null,V.__clear=ke;const Ne=U.createElement("div");Ne.className="lat-form__daterange-popup",Ne.hidden=!0,V.__popup=Ne,V.appendChild(Ae),V.appendChild(ke),V.appendChild(he),V.appendChild(Ne),Ae.addEventListener("focus",()=>{ye(V)}),he.addEventListener("click",()=>{ye(V)}),ke.addEventListener("click",()=>{ve(V)}),Ae.addEventListener("change",Le=>{const We=ne(n,Ae.value);We?(f(V,null),V.__start=We.start,V.__end=We.end,Ae.value=H(We.start,We.end)):(Le.stopPropagation(),Ae.value=H(V.__start,V.__end),f(V,V.__t("form.datepicker.invalid")))}),Ae.addEventListener("keydown",Le=>{Le.key==="Escape"&&(fe(V),V.__toggle.focus())});const Me=Le=>{V.contains(Le.target)||fe(V)},Oe=Le=>{if(!(Le.relatedTarget&&V.contains(Le.relatedTarget))){if(!Le.relatedTarget){g(V.ownerDocument,()=>{if(V.__popup.hidden)return;const We=V.ownerDocument.activeElement;We&&V.contains(We)||fe(V)});return}fe(V)}},Te=Le=>{Le.key==="Escape"&&(Le.preventDefault(),fe(V),V.__toggle.focus())};return U.addEventListener("pointerdown",Me),V.addEventListener("focusout",Oe),Ne.addEventListener("keydown",Te),Array.isArray(a.disposers)&&a.disposers.push(()=>{U.removeEventListener("pointerdown",Me),V.removeEventListener("focusout",Oe),Ne.removeEventListener("keydown",Te)}),V},read(n){return{start:n.__start,end:n.__end}},write(n,a){f(n,null);const U=a&&typeof a=="object"?a:{};n.__start=U.start!=null?String(U.start):null,n.__end=U.end!=null?String(U.end):null,n.__input.value=H(n.__start,n.__end),n.__clear&&(n.__clear.hidden=!ae(n.__item)||n.__start==null&&n.__end==null)},state(n,a){n.__input.disabled=a.disabled===!0,n.__input.readOnly=a.readOnly===!0,n.__toggle.disabled=a.disabled===!0||a.readOnly===!0},validate(n,a,U){const V=U&&typeof U=="object"?U:{start:null,end:null},le=V.start!=null?String(V.start):null,Ae=V.end!=null?String(V.end):null,he=n.__t;if(a.required===!0&&le==null&&Ae==null)return he("form.validation.required");if(le==null&&Ae==null)return!0;if(le==null||Ae==null)return he("form.daterange.invalid");if(ce(a,le)||ce(a,Ae))return he("form.daterange.bounds");const je=Q(le,Ae,n.__granularity);if(je==null)return he("form.daterange.invalid");const ke=$(a).minSpan,Re=$(a).maxSpan;return ke!=null&&je<Number(ke)?he("form.daterange.minSpan",{min:String(ke),unit:Pe(a,he)}):Re!=null&&je>Number(Re)?he("form.daterange.maxSpan",{max:String(Re),unit:Pe(a,he)}):!0},live:{disabledDates(n){n.__popup&&n.__popup.hidden===!1&&N(n)}},focus(n){n.__input.focus()}})}),De("packages/modules/form/controls/file.js",function(A,J){"use strict";Object.defineProperty(A,"formatSize",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"accepts",{enumerable:!0,get:function(){return T}});const F=J("packages/modules/form/controls/registry.js").registerControl,L="lat-uploader",e="http://www.w3.org/2000/svg",P="data-lattice-uploader-styles";function D(){return`
|
|
2086
|
+
`.trim()}const D="data-lattice-form-choice-styles";function I(M){const W=M&&M.documentElement;if(!W||W.getAttribute(D))return;W.setAttribute(D,"1");const E=M.createElement("style");E.textContent=P(),(M.head||M.body||W).appendChild(E)}}),Me("packages/modules/form/controls/radiogroup.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/options.js"),e=L.normalizeOptions,P=L.resolveChoiceLayout,D=L.injectChoiceLayoutStyles,I=J("packages/modules/form/state.js"),M=I.applyBooleanInputState,W=I.guardBooleanInput;F("radiogroup",{kind:"field",build(E,T){const i=T.doc.createElement("div");i.className="lat-form__radiogroup",i.setAttribute("role","radiogroup"),E.label!=null&&E.label!==""&&i.setAttribute("aria-label",String(E.label));const p=P(E);p.columns>0?(D(T.doc),i.classList.add("lat-form__radiogroup--columns"),i.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(D(T.doc),i.classList.add("lat-form__radiogroup--horizontal")),i.setAttribute("aria-orientation",p.orientation);const S=[];for(const k of e(E.options)){const d=T.doc.createElement("label");d.className="lat-form__choice";const c=T.doc.createElement("input");c.type="radio",E.name&&(c.name=E.name),c.value=k.value,c.checked=E.value!=null&&String(E.value)===k.value,W(c),d.appendChild(c);const t=T.doc.createElement("span");t.textContent=k.label,d.appendChild(t),i.appendChild(d),S.push(c)}return i.__radios=S,i},read(E){const T=E.__radios.find(i=>i.checked);return T?T.value:null},write(E,T){const i=T==null?null:String(T);for(const p of E.__radios)p.checked=i!==null&&p.value===i},state(E,T){const i=T.readOnly===!0;for(const p of E.__radios)M(p,T.disabled===!0,i);i?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const T=E.__radios.find(i=>!i.disabled);T&&T.focus()}})}),Me("packages/modules/form/controls/checkboxgroup.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/options.js"),e=L.normalizeOptions,P=L.resolveChoiceLayout,D=L.injectChoiceLayoutStyles,I=J("packages/modules/form/state.js"),M=I.applyBooleanInputState,W=I.guardBooleanInput;F("checkboxgroup",{kind:"field",build(E,T){const i=T.doc.createElement("div");i.className="lat-form__checkboxgroup",i.setAttribute("role","group"),E.label!=null&&E.label!==""&&i.setAttribute("aria-label",String(E.label));const p=P(E);p.columns>0?(D(T.doc),i.classList.add("lat-form__checkboxgroup--columns"),i.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(D(T.doc),i.classList.add("lat-form__checkboxgroup--horizontal"));const S=[],k=Array.isArray(E.value)?E.value.map(String):[];for(const d of e(E.options)){const c=T.doc.createElement("label");c.className="lat-form__choice";const t=T.doc.createElement("input");t.type="checkbox",E.name&&(t.name=E.name),t.value=d.value,t.checked=k.includes(d.value),W(t),c.appendChild(t);const s=T.doc.createElement("span");s.textContent=d.label,c.appendChild(s),i.appendChild(c),S.push(t)}return i.__boxes=S,i},read(E){return E.__boxes.filter(T=>T.checked).map(T=>T.value)},write(E,T){const i=Array.isArray(T)?T.map(String):[];for(const p of E.__boxes)p.checked=i.includes(p.value)},state(E,T){const i=T.readOnly===!0;for(const p of E.__boxes)M(p,T.disabled===!0,i);i?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly")},focus(E){const T=E.__boxes.find(i=>!i.disabled);T&&T.focus()}})}),Me("packages/modules/form/controls/toggle.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/state.js"),e=L.applyBooleanInputState,P=L.guardBooleanInput,D=Object.freeze(["small","default","large"]),I=Object.freeze(["round","square","slim"]),M=Object.freeze(["inside","before","after"]);function W(d){return D.includes(d)?d:"default"}function E(d){return I.includes(d)?d:"round"}function T(d){return M.includes(d)?d:"inside"}function i(d){return d==null?"":String(d)}function p(d){return d.__latToggle?d.__latToggle.input:d}function S(d){!d||!d.label||(d.label.textContent=d.input.checked?d.onLabel:d.offLabel)}function k(d,c,t){const s=c&&c.defaultView,u=s&&s.Event,r=u?new u(t,{bubbles:!0}):{type:t,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};d.dispatchEvent(r)}F("toggle",{kind:"toggle",build(d,c){const t=d.props||{},s=c.doc.createElement("input");s.type="checkbox",s.className="lat-form__toggle",s.setAttribute("role","switch"),d.name&&(s.name=d.name),s.checked=d.value===!0,P(s),t.size!=null&&s.setAttribute("data-size",W(t.size)),t.variant!=null&&s.setAttribute("data-variant",E(t.variant));const u=i(t.onLabel),r=i(t.offLabel);if(u===""&&r==="")return s;const m=c.doc.createElement("span");m.className="lat-form__toggle-field",m.setAttribute("data-label-position",T(t.labelPosition)),m.appendChild(s);const z=c.doc.createElement("span");z.className="lat-form__toggle-label",m.appendChild(z);const l={input:s,label:z,onLabel:u,offLabel:r};m.__latToggle=l,S(l),s.addEventListener("change",()=>S(l));let g=!1;return m.addEventListener("focusin",()=>{g||(g=!0,k(m,c.doc,"focus"))}),m.addEventListener("focusout",w=>{m.contains(w.relatedTarget)||(g=!1,k(m,c.doc,"blur"))}),m},read(d){return p(d).checked},write(d,c){const t=p(d);t.checked=c===!0,S(d.__latToggle)},state(d,c){e(p(d),c.disabled===!0,c.readOnly===!0)},focus(d){const c=p(d);typeof c.focus=="function"&&c.focus()},blur(d){const c=p(d);typeof c.blur=="function"&&c.blur()}})}),Me("packages/modules/form/controls/date-parse.js",function(A,J){"use strict";Object.defineProperty(A,"parseTypedDate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"splitTypedTime",{enumerable:!0,get:function(){return T}});const _e=Object.freeze(["january","february","march","april","may","june","july","august","september","october","november","december"]);function F(i){return i.replace(/[.*+?^${}()|[\]\\\/-]/g,"\\$&")}function L(i,p,S){if(!Number.isInteger(i)||!Number.isInteger(p)||!Number.isInteger(S)||i<1||i>9999||p<1||p>12||S<1)return null;const k=p===2?e(i)?29:28:[4,6,9,11].includes(p)?30:31;return S>k?null:`${String(i).padStart(4,"0")}-${String(p).padStart(2,"0")}-${String(S).padStart(2,"0")}`}function e(i){return i%4===0&&i%100!==0||i%400===0}function P(i){const p=Number(i);return i.length<=2?2e3+p:p}function D(i){const p=new Map;for(let S=1;S<=12;S++){const k=new Date(2001,S-1,15);for(const d of["long","short"]){const c=new Intl.DateTimeFormat(i,{month:d}).format(k),t=new Intl.DateTimeFormat(i,{day:"numeric",month:d}).formatToParts(k).find(s=>s.type==="month");for(const s of[c,t&&t.value]){if(!s)continue;const u=s.toLowerCase();p.set(u,S),u.endsWith(".")&&p.set(u.slice(0,-1),S)}}}return p}function I(i,p,S){const k=new Intl.DateTimeFormat(p,S).formatToParts(new Date(2001,10,22)),d=D(p),c=[];let t="^";for(const m of k)if(m.type==="day")c.push("d"),t+="(\\d{1,2})";else if(m.type==="year"||m.type==="relatedYear")c.push("y"),t+="(\\d{4}|\\d{2})";else if(m.type==="month")if(c.push("m"),/^\d+$/.test(m.value))t+="(\\d{1,2})";else{const z=[...d.keys()].sort((l,g)=>g.length-l.length).map(F);t+=`(${z.join("|")})`}else if(m.type==="literal")t+=m.value.trim()===""?"\\s+":`\\s*${F(m.value.trim())}\\s*`;else if(m.type==="weekday")t+="(?:[^\\d\\s,]+,?\\s*)?";else return null;const s=new RegExp(`${t}$`,"iu").exec(i);if(!s||c.length!==3)return null;const u={};c.forEach((m,z)=>{u[m]=s[z+1]});const r=/^\d+$/.test(u.m)?Number(u.m):d.get(u.m.toLowerCase());return L(P(u.y),r,Number(u.d))}function M(i,p){const k=new Intl.DateTimeFormat(p,{day:"numeric",month:"numeric",year:"numeric"}).formatToParts(new Date(2001,10,22)).filter(s=>s.type==="day"||s.type==="month"||s.type==="year"||s.type==="relatedYear").map(s=>s.type==="day"?"d":s.type==="month"?"m":"y");if(k.length!==3)return null;const d=k.map(s=>s==="y"?"(\\d{4}|\\d{2})":"(\\d{1,2})").join("\\s*[/.\\-]\\s*"),c=new RegExp(`^${d}\\.?$`).exec(i);if(!c)return null;const t={};return k.forEach((s,u)=>{t[s]=c[u+1]}),L(P(t.y),Number(t.m),Number(t.d))}function W(i){const p=k=>{const d=k.toLowerCase().replace(/\.$/,"");return _e.findIndex(t=>t===d||t.slice(0,3)===d||d==="sept"&&t==="september")+1};let S=/^(\d{1,2})(?:st|nd|rd|th)?\s+([A-Za-z]{3,9}\.?),?\s+(\d{4})$/.exec(i);return S?p(S[2])?L(Number(S[3]),p(S[2]),Number(S[1])):null:(S=/^([A-Za-z]{3,9}\.?)\s+(\d{1,2})(?:st|nd|rd|th)?,?\s+(\d{4})$/.exec(i),S&&p(S[1])?L(Number(S[3]),p(S[1]),Number(S[2])):null)}function E(i,p,S){const k=String(i??"").trim().replace(/\s+/g," ");if(!k)return null;const d=S||p&&p.locale||void 0,c={dateStyle:"medium"},t=[()=>I(k,d,c),()=>M(k,d),()=>{const s=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(k);return s?L(Number(s[1]),Number(s[2]),Number(s[3])):null},()=>W(k)];for(const s of t)try{const u=s();if(u)return u}catch{}return null}function T(i){const p=String(i??"").trim(),S=/[\sT,]+(\d{1,2}):(\d{2})(?::\d{2})?\s*([ap])?\.?m?\.?$/i.exec(p);if(!S)return{date:p,time:null};let k=Number(S[1]);const d=Number(S[2]);if(S[3]){const c=S[3].toLowerCase()==="p";if(k<1||k>12)return{date:p,time:null};k=k%12+(c?12:0)}return k>23||d>59?{date:p,time:null}:{date:p.slice(0,S.index).replace(/[,\s]+$/,""),time:{h:k,mi:d}}}}),Me("packages/modules/form/controls/date-shared.js",function(A,J){"use strict";Object.defineProperty(A,"pad",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"echoKey",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"modeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"daysInMonth",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"fieldsOfDate",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"parseValue",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"isoOf",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"displayOf",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"withinRange",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"disabledTestOf",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"weekdayName",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"monthTitle",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"yearTitle",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"dispatchChange",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"is12Hour",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"dayPeriods",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"to24Hour",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"parseDay",{enumerable:!0,get:function(){return u}}),Object.defineProperty(A,"dayISO",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"dayNumber",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"dayNumberOf",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"dayOfNumber",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"parseMonth",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"monthISO",{enumerable:!0,get:function(){return w}}),Object.defineProperty(A,"monthIndex",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"monthOfIndex",{enumerable:!0,get:function(){return v}}),Object.defineProperty(A,"isoWeek",{enumerable:!0,get:function(){return f}}),Object.defineProperty(A,"focusedNavIndex",{enumerable:!0,get:function(){return o}}),Object.defineProperty(A,"restoreNavFocus",{enumerable:!0,get:function(){return _}}),Object.defineProperty(A,"afterFocusSettles",{enumerable:!0,get:function(){return b}});const _e=J("packages/modules/form/controls/date-parse.js");Object.defineProperty(A,"parseTypedDate",{enumerable:!0,get:function(){return _e.parseTypedDate}}),Object.defineProperty(A,"splitTypedTime",{enumerable:!0,get:function(){return _e.splitTypedTime}});function F(y){return String(y).padStart(2,"0")}function L(y){return y}function e(y){return y.mode==="date-time"||y.mode==="time"?y.mode:"date"}function P(y,h){return new Date(y,h,0).getDate()}function D(y,h){if(!(h instanceof Date)||Number.isNaN(h.getTime()))return null;const $={y:h.getFullYear(),mo:h.getMonth()+1,d:h.getDate(),h:h.getHours(),mi:h.getMinutes()},ee=y.timeZone;if(!ee)return $;try{const O=new Intl.DateTimeFormat("en-US",{timeZone:ee,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(h),ae={y:0,mo:1,d:1,h:0,mi:0};for(const le of O)le.type==="year"?ae.y=Number(le.value):le.type==="month"?ae.mo=Number(le.value):le.type==="day"?ae.d=Number(le.value):le.type==="hour"?ae.h=Number(le.value)%24:le.type==="minute"&&(ae.mi=Number(le.value));return ae}catch{return $}}function I(y,h){if(h==null||h==="")return null;if(typeof h=="number")return D(y,new Date(h));if(h instanceof Date)return D(y,h);if(typeof h=="string"){const $=h.trim();if(e(y)==="time"){const O=/^(\d{1,2}):(\d{2})/.exec($);return O?{y:null,mo:null,d:null,h:Number(O[1]),mi:Number(O[2])}:null}const ee=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec($);return ee?{y:Number(ee[1]),mo:Number(ee[2]),d:Number(ee[3]),h:ee[4]!=null?Number(ee[4]):0,mi:ee[5]!=null?Number(ee[5]):0}:null}return null}function M(y,h){if(!h)return null;if(e(y)==="time")return`${F(h.h)}:${F(h.mi)}`;const $=`${F(h.y)}-${F(h.mo)}-${F(h.d)}`;return e(y)==="date"?$:`${$}T${F(h.h)}:${F(h.mi)}`}function W(y,h){if(!h)return"";const $=e(y);if($==="time")return`${F(h.h)}:${F(h.mi)}`;const ee=y.locale||void 0,O={dateStyle:"medium"};return $==="date-time"&&(O.timeStyle="short"),new Intl.DateTimeFormat(ee,O).format(new Date(h.y,h.mo-1,h.d,h.h,h.mi))}function E(y,h){return h==null?!0:!(y.min!=null&&h<String(y.min)||y.max!=null&&h>String(y.max))}function T(y){const $=(y.props&&typeof y.props=="object"?y.props:{}).disabledDates;if(Array.isArray($)){const ee=new Set($.map(String));return O=>ee.has(O)}return typeof $=="function"?ee=>$(ee)===!0:null}function i(y,h){return new Intl.DateTimeFormat(y.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+h))}function p(y,h){return new Intl.DateTimeFormat(y.locale||void 0,{month:"long",year:"numeric"}).format(new Date(h.y,h.mo-1,1))}function S(y){return String(y.y)}function k(y){const h=y.ownerDocument&&y.ownerDocument.defaultView,$=h&&typeof h.Event=="function"?h.Event:null;y.dispatchEvent($?new $("change",{bubbles:!0}):{type:"change",bubbles:!0})}function d(y){try{const h=new Intl.DateTimeFormat(y.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return h==="h11"||h==="h12"}catch{return!1}}function c(y){try{const h=new Intl.DateTimeFormat(y.locale||void 0,{hour:"numeric",hour12:!0}),$=h.formatToParts(new Date(2021,0,1,9)).find(O=>O.type==="dayPeriod"),ee=h.formatToParts(new Date(2021,0,1,15)).find(O=>O.type==="dayPeriod");if($&&ee)return{am:$.value,pm:ee.value}}catch{}return null}function t(y){const h=y%12;return h===0?12:h}function s(y,h){return h?y===12?12:y+12:y===12?0:y}function u(y){if(typeof y!="string")return null;const h=/^(\d{4})-(\d{2})-(\d{2})$/.exec(y.trim());if(!h)return null;const $={y:Number(h[1]),mo:Number(h[2]),d:Number(h[3])};return $.mo<1||$.mo>12||$.d<1||$.d>P($.y,$.mo)?null:$}function r(y,h,$){return`${F(y)}-${F(h)}-${F($)}`}function m(y,h,$){return Date.UTC(y,h-1,$)/864e5}function z(y){const h=u(y);return h?m(h.y,h.mo,h.d):NaN}function l(y){const h=new Date(y*864e5);return{y:h.getUTCFullYear(),mo:h.getUTCMonth()+1,d:h.getUTCDate()}}function g(y){if(typeof y!="string")return null;const h=/^(\d{4})-(\d{2})$/.exec(y.trim());if(!h)return null;const $={y:Number(h[1]),mo:Number(h[2])};return $.mo<1||$.mo>12?null:$}function w(y,h){return`${F(y)}-${F(h)}`}function x(y,h){return y*12+(h-1)}function v(y){return{y:Math.floor(y/12),mo:y%12+1}}function f(y,h,$){const ee=new Date(Date.UTC(y,h-1,$)),O=ee.getUTCDay()||7;ee.setUTCDate(ee.getUTCDate()+4-O);const ae=new Date(Date.UTC(ee.getUTCFullYear(),0,1));return Math.ceil(((ee-ae)/864e5+1)/7)}function o(y,h){const $=y.ownerDocument,ee=$?$.activeElement:null;return!ee||typeof y.contains!="function"||!y.contains(ee)?-1:Array.prototype.indexOf.call(y.querySelectorAll(`.${h}`),ee)}function _(y,h,$){if($<0)return;const ee=y.querySelectorAll(`.${h}`)[$];ee&&typeof ee.focus=="function"&&ee.focus()}function b(y,h){const $=y&&y.defaultView;($&&typeof $.setTimeout=="function"?$.setTimeout.bind($):setTimeout)(h,0)}}),Me("packages/modules/form/controls/date-typed.js",function(A,J){"use strict";Object.defineProperty(A,"setTypedError",{enumerable:!0,get:function(){return _e}});function _e(F,L){let e=F.__typedError;if(L==null){e&&(e.hidden=!0),F.__input&&F.__input.removeAttribute("aria-invalid");return}e||(e=F.ownerDocument.createElement("div"),e.className="lat-form__error lat-form__typed-error",e.setAttribute("role","alert"),F.__typedError=e,F.appendChild(e)),e.textContent=L,e.hidden=!1,F.__input&&F.__input.setAttribute("aria-invalid","true")}}),Me("packages/modules/form/controls/datepicker-draft.js",function(A,J){"use strict";Object.defineProperty(A,"isDraftMode",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"getDraft",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"readDraftClock",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"pickDraftDay",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"commitDraft",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"dropDraft",{enumerable:!0,get:function(){return T}});const _e=J("packages/modules/form/controls/date-shared.js"),F=_e.modeOf,L=_e.displayOf,e=_e.to24Hour,P=_e.isoOf;function D(i){return F(i.__item)==="date-time"}function I(i){if(!i.__draft){const p=i.__fields;i.__draft=p?{y:p.y,mo:p.mo,d:p.d,h:p.h,mi:p.mi}:{y:null,mo:null,d:null,h:0,mi:0}}return i.__draft}function M(i){const p=I(i);if(!i.__hour)return;let S=Number(i.__hour.value)||0;const k=i.__minute&&Number(i.__minute.value)||0;i.__ampm&&(S=e(S,i.__pm===!0)),p.h=S,p.mi=k}function W(i,p,S,k,d){M(i);const c=I(i);c.y=p,c.mo=S,c.d=k,i.__cursor=k,i.__input.value=L(i.__item,c),i.__typedDirty=!1,d(i)}function E(i,p){M(i);const S=I(i);if(S.d==null)return;const k={y:S.y,mo:S.mo,d:S.d,h:S.h,mi:S.mi};P(i.__item,k)!==P(i.__item,i.__fields)&&p(i,k)}function T(i){const p=i.__draft;i.__draft=null,p&&p.d!=null&&D(i)&&(i.__input.value=L(i.__item,i.__fields),i.__typedDirty=!1)}}),Me("packages/modules/form/controls/datepicker.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/date-shared.js"),I=D.pad,M=D.echoKey,W=D.modeOf,E=D.daysInMonth,T=D.parseValue,i=D.isoOf,p=D.displayOf,S=D.withinRange,k=D.weekdayName,d=D.monthTitle,c=D.dispatchChange,t=D.is12Hour,s=D.dayPeriods,u=D.to12Hour,r=D.to24Hour,m=D.focusedNavIndex,z=D.restoreNavFocus,l=D.afterFocusSettles,g=D.parseTypedDate,w=D.splitTypedTime,x=D.disabledTestOf,v=D.dayISO,f=D.dayNumber,o=D.dayOfNumber,b=J("packages/modules/form/controls/date-typed.js").setTypedError,y=J("packages/modules/form/controls/popup-layer.js"),h=y.openInLayer,$=y.flushOutsideFocus,ee=J("packages/modules/form/controls/datepicker-draft.js"),O=ee.isDraftMode,ae=ee.getDraft,le=ee.pickDraftDay,se=ee.readDraftClock,Z=ee.commitDraft,Q=ee.dropDraft,Pe=J("packages/dom/src/autofill.js"),ie=Pe.noHistory,j=Pe.applyAutocomplete,H=Object.freeze(["date","date-time","time"]),ne="lat-form__datepicker-popup--above";function q(N,ce){N.__fields=ce,N.__input.value=p(N.__item,ce),N.__typedDirty=!1,Ee(N),c(N)}function ke(N){const ce=N.__fields!=null;return N.__fields=null,N.__draft=null,N.__input.value="",N.__typedDirty=!1,b(N,null),Ee(N),ce}function Ee(N){if(!N.__clear)return;const ce=N.__fields!=null&&N.__readOnly!==!0;N.__clear.hidden=!ce,N.__input.classList.toggle("lat-form__datepicker-input--with-clear",ce)}function C(N,ce){const ye=N.__item;if(W(ye)==="time")return T(ye,ce);const{date:R,time:n}=w(ce),a=g(R,ye);if(!a)return null;const[U,V,ue]=a.split("-").map(Number),Ce=N.__fields,he=n||(W(ye)==="date-time"&&Ce?{h:Ce.h,mi:Ce.mi}:{h:0,mi:0});return{y:U,mo:V,d:ue,h:he.h,mi:he.mi}}function K(N,ce,ye,R){const n=N.__item,a=i(n,{y:ce,mo:ye,d:R,h:0,mi:0});if(!S(n,a))return!0;const U=x(n);return!!(U&&U(v(ce,ye,R)))}function G(N,ce){if(ce==null||ce==="")return!1;const ye=T(N,ce);if(!ye||ye.y==null||ye.d==null)return!1;const R=x(N);return!!(R&&R(v(ye.y,ye.mo,ye.d)))}function B(N,ce,ye,R){const n=E(ce,ye);for(let a=R>0?1:n;R>0?a<=n:a>=1;a+=R)if(!K(N,ce,ye,a))return a;return null}function te(N){if(!K(N,N.__view.y,N.__view.mo,N.__cursor))return;let ce=f(N.__view.y,N.__view.mo,N.__cursor);for(let ye=0;ye<400;ye+=1){ce+=1;const R=o(ce);if(!K(N,R.y,R.mo,R.d)){N.__view={y:R.y,mo:R.mo},N.__cursor=R.d;return}}}function ge(N,ce){let ye=f(N.__view.y,N.__view.mo,N.__cursor)+ce,R=o(ye);for(let n=0;K(N,R.y,R.mo,R.d)&&n<400;n+=1)ye+=ce,R=o(ye);N.__view={y:R.y,mo:R.mo},N.__cursor=R.d,oe(N)}function oe(N){const ce=N.__item,ye=N.ownerDocument,R=N.__popup,n=N.__view,a=W(ce),U=N.__fields,V=m(R,"lat-form__datepicker-nav"),ue=m(R,"lat-form__datepicker-day");for(;R.firstChild;)R.removeChild(R.firstChild);if(a!=="time"){const Ce=ye.createElement("div");Ce.className="lat-form__datepicker-head";const he=ye.createElement("button");he.type="button",he.className="lat-form__datepicker-nav",he.setAttribute("aria-label",N.__t("form.datepicker.prev")),he.textContent="‹",he.addEventListener("click",()=>{fe(N,-1)});const je=ye.createElement("span");je.className="lat-form__datepicker-title",je.textContent=d(ce,n);const we=ye.createElement("button");we.type="button",we.className="lat-form__datepicker-nav",we.setAttribute("aria-label",N.__t("form.datepicker.next")),we.textContent="›",we.addEventListener("click",()=>{fe(N,1)}),Ce.appendChild(he),Ce.appendChild(je),Ce.appendChild(we),R.appendChild(Ce);const Ie=ye.createElement("div");Ie.className="lat-form__datepicker-weekdays";for(let Le=0;Le<7;Le+=1){const Te=ye.createElement("span");Te.textContent=k(ce,Le),Ie.appendChild(Te)}R.appendChild(Ie);const Ne=ye.createElement("div");Ne.className="lat-form__datepicker-grid",Ne.setAttribute("role","grid"),Ne.tabIndex=0,N.__grid=Ne;const Re=new Date(n.y,n.mo-1,1).getDay();for(let Le=0;Le<Re;Le+=1){const Te=ye.createElement("span");Te.className="lat-form__datepicker-blank",Ne.appendChild(Te)}const Se=E(n.y,n.mo);for(let Le=1;Le<=Se;Le+=1){const Te=ye.createElement("button");Te.type="button",Te.className="lat-form__datepicker-day",Te.setAttribute("role","gridcell"),Te.textContent=String(Le),K(N,n.y,n.mo,Le)&&(Te.disabled=!0),U&&U.y===n.y&&U.mo===n.mo&&U.d===Le&&Te.classList.add("is-selected"),N.__cursor===Le&&Te.classList.add("is-focus"),Te.addEventListener("click",()=>{if(K(N,n.y,n.mo,Le))return;if(O(N)){le(N,n.y,n.mo,Le,oe);return}const We={y:n.y,mo:n.mo,d:Le,h:U?U.h:0,mi:U?U.mi:0};a==="date"?(N.__cursor=Le,q(N,We),re(N)):(N.__cursor=Le,N.__fields=We,oe(N))}),Ne.appendChild(Te)}R.appendChild(Ne),Ne.addEventListener("keydown",Le=>{if(Le.key==="ArrowLeft")Le.preventDefault(),ge(N,-1);else if(Le.key==="ArrowRight")Le.preventDefault(),ge(N,1);else if(Le.key==="ArrowUp")Le.preventDefault(),ge(N,-7);else if(Le.key==="ArrowDown")Le.preventDefault(),ge(N,7);else if(Le.key==="Home"){Le.preventDefault();const Te=B(N,n.y,n.mo,1);Te!=null&&(N.__cursor=Te),oe(N)}else if(Le.key==="End"){Le.preventDefault();const Te=B(N,n.y,n.mo,-1);Te!=null&&(N.__cursor=Te),oe(N)}else(Le.key==="Enter"||Le.key===" ")&&(Le.preventDefault(),pe(N))})}if(a!=="date"){const Ce=t(ce)?s(ce):null,he=!!Ce,je=ye.createElement("div");je.className="lat-form__datepicker-time";const we=ye.createElement("input");we.type="number",we.className="lat-form__datepicker-hour",we.min=he?"1":"0",we.max=he?"12":"23",we.step="1",we.setAttribute("aria-label",N.__t("form.datepicker.hour"));const Ie=ye.createElement("span");Ie.textContent=":";const Ne=ye.createElement("input");if(Ne.type="number",Ne.className="lat-form__datepicker-minute",Ne.min="0",Ne.max="59",Ne.step="1",Ne.setAttribute("aria-label",N.__t("form.datepicker.minute")),je.appendChild(we),je.appendChild(Ie),je.appendChild(Ne),R.appendChild(je),N.__hour=we,N.__minute=Ne,we.addEventListener("change",()=>{ve(N)}),Ne.addEventListener("change",()=>{ve(N)}),O(N)&&ae(N),N.__periods=Ce,N.__ampm=null,he){const Se=ye.createElement("button");Se.type="button",Se.className="lat-form__datepicker-ampm",N.__ampm=Se;const Le=()=>{N.__pm=!N.__pm,Se.textContent=N.__pm?N.__periods.pm:N.__periods.am,ve(N)};Se.addEventListener("click",Le),je.appendChild(Se)}const Re=ye.createElement("button");Re.type="button",Re.className="lat-form__datepicker-done",Re.textContent=N.__t("form.datepicker.done"),Re.addEventListener("click",()=>{be(N)}),je.appendChild(Re)}de(N),z(R,"lat-form__datepicker-nav",V),z(R,"lat-form__datepicker-day",ue)}function fe(N,ce){let{y:ye,mo:R}=N.__view;R+=ce,R<1&&(R=12,ye-=1),R>12&&(R=1,ye+=1),N.__view={y:ye,mo:R},N.__cursor=Math.min(N.__cursor,E(ye,R)),oe(N)}function ve(N){if(O(N)){se(N),de(N);return}const ce=N.__fields;let ye=N.__hour&&Number(N.__hour.value)||0;const R=N.__minute&&Number(N.__minute.value)||0;N.__ampm&&(ye=r(ye,N.__pm===!0));const n=W(N.__item)==="time"?{y:null,mo:null,d:null,h:ye,mi:R}:{y:ce?ce.y:N.__view.y,mo:ce?ce.mo:N.__view.mo,d:ce?ce.d:N.__cursor,h:ye,mi:R};if(N.__cursor=ce?ce.d:N.__cursor,ce&&i(N.__item,n)===i(N.__item,ce)){de(N);return}q(N,n),de(N)}function be(N){if(N.__popup.hidden)return;N.__typedDirty&&X(N)?c(N):O(N)?Z(N,q):W(N.__item)!=="date"&&ve(N),re(N)}function X(N){const ce=N.__item,ye=N.__input,R=ye.value;if(String(R).trim()==="")return N.__fields==null||N.__readOnly===!0?(ye.value=p(ce,N.__fields),N.__typedDirty=!1,!1):(N.__typedDirty=!1,ke(N));const n=i(ce,N.__fields),a=C(N,R);return a?(b(N,null),N.__fields=a,N.__draft=null,ye.value=p(ce,a),N.__typedDirty=!1,Ee(N),N.__hour&&de(N),i(ce,a)!==n):(ye.value=p(ce,N.__fields),N.__typedDirty=!1,b(N,N.__t("form.datepicker.invalid")),!1)}function de(N){const ce=O(N)?ae(N):N.__fields,ye=N.__ampm&&N.__periods;if(N.__hour){const R=ce?ce.h:0;N.__hour.value=I(ye?u(R):R)}N.__minute&&(N.__minute.value=I(ce?ce.mi:0)),N.__ampm&&N.__periods&&(N.__pm=ce?ce.h>=12:!1,N.__ampm.textContent=N.__pm?N.__periods.pm:N.__periods.am)}function pe(N){const ce=N.__view;if(K(N,ce.y,ce.mo,N.__cursor))return;if(O(N)){le(N,ce.y,ce.mo,N.__cursor,oe);return}const ye=N.__fields,R={y:ce.y,mo:ce.mo,d:N.__cursor,h:ye?ye.h:0,mi:ye?ye.mi:0};q(N,R),re(N)}function Y(N){if(N.__popup.hidden===!1||N.__item.disabled===!0||N.__item.readOnly===!0)return;const ce=N.__fields,ye=new Date;N.__view=ce&&ce.y!=null?{y:ce.y,mo:ce.mo}:{y:ye.getFullYear(),mo:ye.getMonth()+1},N.__cursor=ce&&ce.d!=null?ce.d:ye.getDate(),te(N),N.__popup.hidden=!1,oe(N),N.__layer=h(N.__popup,N,{aboveClass:ne,matchWidth:!1,onOffscreen:()=>re(N)})}function re(N){Q(N),N.__popup.hidden=!0,N.__popup.classList.remove(ne),N.__layer&&(N.__layer.close(),N.__layer=null)}F("datepicker",{kind:"field",build(N,ce){const ye=ce.doc;P(ye);const R=ye.createElement("div");R.className="lat-form__datepicker",R.__item=N,R.__t=ce.t||M,R.__mode=W(N),R.__readOnly=N.readOnly===!0,R.__fields=T(N,N.value),R.__cursor=R.__fields&&R.__fields.d!=null?R.__fields.d:new Date().getDate(),R.__view=R.__fields&&R.__fields.y!=null?{y:R.__fields.y,mo:R.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const n=ye.createElement("input");n.type="text",n.className="lat-form__datepicker-input",N.name&&(n.name=N.name),N.placeholder!=null&&(n.placeholder=String(N.placeholder)),N.label!=null&&N.label!==""&&n.setAttribute("aria-label",String(N.label)),ie(n),j(n,N.autocomplete),n.value=p(N,R.__fields),R.__input=n,R.__typedDirty=!1,n.addEventListener("input",()=>{R.__typedDirty=!0});const a=ye.createElement("button");a.type="button",a.className="lat-form__datepicker-toggle";const U=W(N)==="date";a.setAttribute("aria-label",R.__t(U?"form.datepicker.open":"form.datepicker.openTime"));const V=e(ye,U?"calendar":"clock");if(V&&a.appendChild(V),R.__toggle=a,N.props&&N.props.clearable===!0){const we=ye.createElement("button");we.type="button",we.className="lat-form__datepicker-clear",we.setAttribute("aria-label",R.__t("form.datepicker.clear")),we.hidden=!0;const Ie=e(ye,"close");Ie&&we.appendChild(Ie),R.__clear=we,we.addEventListener("click",()=>{R.__readOnly!==!0&&(re(R),ke(R)&&c(R),R.__input.focus())})}const ue=ye.createElement("div");ue.className="lat-form__datepicker-popup lat-form__datepicker",ue.hidden=!0,R.__popup=ue,R.appendChild(n),R.appendChild(a),R.__clear&&R.appendChild(R.__clear),R.appendChild(ue),n.addEventListener("focus",()=>{Y(R)}),a.addEventListener("pointerdown",()=>{$(R,ue)}),a.addEventListener("click",()=>{Y(R)}),n.addEventListener("change",we=>{X(R)||we.stopPropagation()}),n.addEventListener("keydown",we=>{we.key==="Escape"?re(R):we.key==="Enter"&&R.__fields!=null&&String(n.value).trim()===""&&R.__readOnly!==!0&&(we.preventDefault(),re(R),ke(R)&&c(R))}),R.__ampm=null,R.__periods=null,R.__pm=!1;const Ce=we=>{R.contains(we.target)||ue.contains(we.target)||be(R)},he=we=>{if((R.contains(we.target)||ue.contains(we.target))&&!(we.relatedTarget&&(R.contains(we.relatedTarget)||ue.contains(we.relatedTarget)))){if(!we.relatedTarget){l(ye,()=>{if(ue.hidden)return;const Ne=ye.activeElement;Ne&&(R.contains(Ne)||ue.contains(Ne))||be(R)});return}be(R)}},je=we=>{we.key==="Escape"&&(we.preventDefault(),be(R),R.__toggle.focus())};return ye.addEventListener("pointerdown",Ce),ye.addEventListener("focusout",he),ue.addEventListener("keydown",je),Array.isArray(ce.disposers)&&ce.disposers.push(()=>{re(R),ye.removeEventListener("pointerdown",Ce),ye.removeEventListener("focusout",he),ue.removeEventListener("keydown",je)}),R},read(N){return i(N.__item,N.__fields)},write(N,ce){b(N,null),N.__fields=T(N.__item,ce),N.__draft=null,N.__input.value=p(N.__item,N.__fields),N.__typedDirty=!1,Ee(N),N.__fields&&N.__fields.y!=null&&(N.__view={y:N.__fields.y,mo:N.__fields.mo},N.__cursor=N.__fields.d),N.__hour&&!N.__popup.hidden&&de(N)},state(N,ce){N.__input.disabled=ce.disabled===!0,N.__input.readOnly=ce.readOnly===!0,N.__toggle.disabled=ce.disabled===!0||ce.readOnly===!0,N.__readOnly=ce.readOnly===!0,Ee(N)},validate(N,ce,ye){return S(ce,ye)?G(ce,ye)?typeof ce.errorMessage=="string"&&ce.errorMessage!==""?ce.errorMessage:N.__t("form.datepicker.disabled"):!0:typeof ce.errorMessage=="string"&&ce.errorMessage!==""?ce.errorMessage:!1},live:{disabledDates(N){N.__popup&&N.__popup.hidden===!1&&oe(N)}},focus(N){N.__input.focus()}})}),Me("packages/modules/form/controls/time.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/date-shared.js"),I=D.pad,M=D.echoKey,W=D.fieldsOfDate,E=D.to12Hour,T=D.to24Hour,i=D.withinRange,p=D.dispatchChange,k=J("packages/modules/form/controls/popup-layer.js").openInLayer,d=J("packages/dom/src/autofill.js"),c=d.noHistory,t=d.applyAutocomplete,s="lat-form__time-popup--above";function u(O){return!!(O.props&&O.props.timeFormat===12)}function r(O){return!!(O.props&&O.props.valueFormat==="object")}function m(O){return!!(O.props&&O.props.editable===!0)}function z(O){return!!(O.props&&O.props.controls===!0)}function l(O){const ae=O.props&&O.props.icon;return typeof ae=="string"&&ae!==""?ae:"clock"}function g(O,ae){if(typeof ae!="string")return null;const le=ae.trim(),se=/^(\d{1,2}):(\d{2})$/.exec(le);if(se){const Z=Number(se[1]),Q=Number(se[2]);return Z>23||Q>59?null:{h:Z,mi:Q}}if(u(O)){const Z=/^(\d{1,2}):(\d{2})\s*([ap])\.?m\.?$/i.exec(le);if(!Z)return null;const Q=Number(Z[1]),Pe=Number(Z[2]);return Q<1||Q>12||Pe>59?null:{h:T(Q,Z[3].toLowerCase()==="p"),mi:Pe}}return null}function w(O,ae){if(ae==null||ae==="")return null;if(typeof ae=="number"){if(!Number.isFinite(ae))return null;const le=ae%1440,se=le<0?le+1440:le;return{h:Math.floor(se/60),mi:Math.round(se%60)}}if(ae instanceof Date){const le=W(O,ae);return le?{h:le.h,mi:le.mi}:null}if(typeof ae=="string")return g(O,ae);if(typeof ae=="object"){const le=Number(ae.hour),se=Number(ae.minute);return!Number.isFinite(le)||!Number.isFinite(se)||se<0||se>59?null:u(O)?le<1||le>12?null:{h:T(le,ae.AM!==!0),mi:se}:le<0||le>23?null:{h:le,mi:se}}return null}function x(O,ae,le){return ae?u(O)?`${I(E(ae.h))}:${I(ae.mi)} ${ae.h<12?le.am:le.pm}`:`${I(ae.h)}:${I(ae.mi)}`:""}function v(O,ae,le){return ae?r(O)?u(O)?{hour:E(ae.h),minute:ae.mi,AM:ae.h<12}:{hour:ae.h,minute:ae.mi}:x(O,ae,le):null}function f(O){const ae=O.__item,le=O.ownerDocument,se=O.__popup;for(;se.firstChild;)se.removeChild(se.firstChild);const Z=le.createElement("div");Z.className="lat-form__time-row";const Q=le.createElement("input");Q.type="number",Q.className="lat-form__time-hour",Q.min=O.__twelve?"1":"0",Q.max=O.__twelve?"12":"23",Q.step="1",Q.setAttribute("aria-label",O.__t("form.datepicker.hour"));const Pe=le.createElement("span");Pe.className="lat-form__time-colon",Pe.textContent=":";const ie=le.createElement("input");if(ie.type="number",ie.className="lat-form__time-minute",ie.min="0",ie.max="59",ie.step="1",ie.setAttribute("aria-label",O.__t("form.datepicker.minute")),Z.appendChild(Q),Z.appendChild(Pe),Z.appendChild(ie),se.appendChild(Z),O.__hour=Q,O.__minute=ie,Q.addEventListener("change",()=>{_(O)}),ie.addEventListener("change",()=>{_(O)}),O.__ampm=null,O.__twelve){const H=le.createElement("button");H.type="button",H.className="lat-form__time-ampm",H.addEventListener("click",()=>{O.__pm=!O.__pm,H.textContent=O.__pm?O.__labels.pm:O.__labels.am,_(O)}),Z.appendChild(H),O.__ampm=H}const j=le.createElement("div");if(j.className="lat-form__time-actions",z(ae)){const H=le.createElement("button");H.type="button",H.className="lat-form__time-close",H.textContent=O.__t("form.time.close"),H.addEventListener("click",()=>{$(O)}),j.appendChild(H);const ne=le.createElement("button");ne.type="button",ne.className="lat-form__time-save",ne.textContent=O.__t("form.time.save"),ne.addEventListener("click",()=>{y(O)}),j.appendChild(ne)}else{const H=le.createElement("button");H.type="button",H.className="lat-form__time-done",H.textContent=O.__t("form.datepicker.done"),H.addEventListener("click",()=>{b(O)}),j.appendChild(H)}se.appendChild(j),o(O)}function o(O){const ae=O.__draft||{h:0,mi:0};O.__hour&&(O.__hour.value=I(O.__twelve?E(ae.h):ae.h)),O.__minute&&(O.__minute.value=I(ae.mi)),O.__ampm&&(O.__pm=ae.h>=12,O.__ampm.textContent=O.__pm?O.__labels.pm:O.__labels.am)}function _(O){const ae=O.__hour&&Number(O.__hour.value)||0,le=O.__minute&&Number(O.__minute.value)||0,se={h:O.__ampm?T(ae,O.__pm===!0):ae,mi:le};if(O.__draft=se,z(O.__item)){o(O);return}O.__fields=se,O.__input.value=x(O.__item,se,O.__labels),O.__lastText=x(O.__item,se,O.__labels),p(O),O.__draft=O.__fields,o(O)}function b(O){O.__popup.hidden||(z(O.__item)||_(O),$(O))}function y(O){const ae=O.__draft||{h:0,mi:0};O.__fields=ae,O.__input.value=x(O.__item,ae,O.__labels),O.__lastText=x(O.__item,ae,O.__labels),p(O),$(O)}function h(O){O.__popup.hidden!==!1&&(O.__item.disabled===!0||O.__item.readOnly===!0||(O.__draft=O.__fields?{h:O.__fields.h,mi:O.__fields.mi}:{h:0,mi:0},O.__pm=O.__draft.h>=12,O.__popup.hidden=!1,f(O),O.__layer=k(O.__popup,O,{aboveClass:s,matchWidth:!1,onOffscreen:()=>$(O)})))}function $(O){O.__popup.hidden=!0,O.__popup.classList.remove(s),O.__layer&&(O.__layer.close(),O.__layer=null)}function ee(O){if(!O.__editable)return;const ae=O.__input.value.trim();if(ae===O.__lastText)return;const le=g(O.__item,ae);le&&(O.__fields=le,O.__input.value=x(O.__item,le,O.__labels),O.__lastText=x(O.__item,le,O.__labels)),p(O)}F("time",{kind:"field",build(O,ae){const le=ae.doc;P(le);const se=le.createElement("div");se.className="lat-form__time",se.__item=O,se.__t=ae.t||M,se.__twelve=u(O),se.__object=r(O),se.__editable=m(O),se.__labels={am:se.__t("form.time.am"),pm:se.__t("form.time.pm")},se.__fields=w(O,O.value),se.__draft=se.__fields?{h:se.__fields.h,mi:se.__fields.mi}:null;const Z=le.createElement("input");Z.type="text",Z.className="lat-form__time-input",O.name&&(Z.name=O.name),O.placeholder!=null&&(Z.placeholder=String(O.placeholder)),O.label!=null&&O.label!==""&&Z.setAttribute("aria-label",String(O.label)),c(Z),t(Z,O.autocomplete),Z.readOnly=!se.__editable,Z.value=x(O,se.__fields,se.__labels),se.__input=Z,se.__lastText=Z.value;const Q=le.createElement("button");Q.type="button",Q.className="lat-form__time-toggle",Q.setAttribute("aria-label",se.__t("form.time.open"));const Pe=e(le,l(O));Pe&&Q.appendChild(Pe),se.__toggle=Q;const ie=le.createElement("div");ie.className="lat-form__time-popup lat-form__time",ie.hidden=!0,se.__popup=ie,se.appendChild(Z),se.appendChild(Q),se.appendChild(ie),Z.addEventListener("focus",()=>{se.__editable||h(se)}),Q.addEventListener("click",()=>{h(se)}),Z.addEventListener("change",q=>{q.stopPropagation(),ee(se)}),Z.addEventListener("keydown",q=>{q.key==="Enter"&&se.__editable?(q.preventDefault(),ee(se)):q.key==="Escape"?$(se):q.altKey&&q.key==="ArrowDown"&&(q.preventDefault(),h(se))});const j=q=>{se.contains(q.target)||ie.contains(q.target)||b(se)},H=q=>{(se.contains(q.target)||ie.contains(q.target))&&(q.relatedTarget&&(se.contains(q.relatedTarget)||ie.contains(q.relatedTarget))||b(se))},ne=q=>{q.key==="Escape"&&(q.preventDefault(),b(se),se.__toggle.focus())};return le.addEventListener("pointerdown",j),le.addEventListener("focusout",H),ie.addEventListener("keydown",ne),Array.isArray(ae.disposers)&&ae.disposers.push(()=>{$(se),le.removeEventListener("pointerdown",j),le.removeEventListener("focusout",H),ie.removeEventListener("keydown",ne)}),se},read(O){const ae=O.__input.value.trim();if(ae==="")return null;const le=g(O.__item,ae);return le?v(O.__item,le,O.__labels):ae},write(O,ae){O.__fields=w(O.__item,ae),O.__input.value=x(O.__item,O.__fields,O.__labels),O.__lastText=x(O.__item,O.__fields,O.__labels),O.__draft=O.__fields?{h:O.__fields.h,mi:O.__fields.mi}:null},state(O,ae){O.__input.disabled=ae.disabled===!0,O.__input.readOnly=ae.readOnly===!0||!O.__editable,O.__toggle.disabled=ae.disabled===!0||ae.readOnly===!0},validate(O,ae,le){if(le==null)return!0;const se=w(ae,le);return se?i(ae,`${I(se.h)}:${I(se.mi)}`)?!0:typeof ae.errorMessage=="string"&&ae.errorMessage!==""?ae.errorMessage:!1:typeof ae.errorMessage=="string"&&ae.errorMessage!==""?ae.errorMessage:O.__t("form.time.invalid")},focus(O){O.__input.focus()}})}),Me("packages/modules/form/controls/daterange.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/date-shared.js"),I=D.echoKey,M=D.daysInMonth,W=D.weekdayName,E=D.monthTitle,T=D.yearTitle,i=D.dispatchChange,p=D.parseDay,S=D.dayISO,k=D.dayNumber,d=D.dayNumberOf,c=D.dayOfNumber,t=D.parseMonth,s=D.monthISO,u=D.monthIndex,r=D.monthOfIndex,m=D.isoWeek,z=D.focusedNavIndex,l=D.restoreNavFocus,g=D.afterFocusSettles,w=D.parseTypedDate,x=D.disabledTestOf,f=J("packages/modules/form/controls/date-typed.js").setTypedError,o=J("packages/dom/src/autofill.js"),_=o.noHistory,b=o.applyAutocomplete,y=" – ";function h(n){return n.props&&n.props.granularity==="month"?"month":"day"}function $(n){return n.props&&typeof n.props=="object"?n.props:{}}function ee(n){return $(n).applyButton!==!1}function O(n){return $(n).weekNumbers===!0}function ae(n){return $(n).clearable===!0}function le(n){const a=$(n).firstDay;if(a!=null){const U=Number(a);if(Number.isFinite(U))return(U%7+7)%7}try{const U=new Intl.Locale(n.locale||void 0).weekInfo;if(U&&U.firstDay)return U.firstDay%7}catch{}return 0}function se(n,a){return n.min!=null&&a<String(n.min)||n.max!=null&&a>String(n.max)}function Z(n,a,U){return!!(se(n,a)||U&&U(a))}function Q(n,a,U){if(n==null||a==null)return null;if(U==="month"){const Ce=t(n),he=t(a);return!Ce||!he?null:u(he.y,he.mo)-u(Ce.y,Ce.mo)}const V=d(n),ue=d(a);return Number.isNaN(V)||Number.isNaN(ue)?null:ue-V}function Pe(n,a){return h(n)==="month"?a("form.daterange.months"):a("form.daterange.days")}function ie(n,a){if(h(n)==="month")return[{label:a("form.daterange.monthThisMonth"),range:V=>[s(V.getFullYear(),V.getMonth()+1),s(V.getFullYear(),V.getMonth()+1)]},{label:a("form.daterange.monthLastMonth"),range:V=>{const ue=r(u(V.getFullYear(),V.getMonth()+1)-1);return[s(ue.y,ue.mo),s(ue.y,ue.mo)]}},{label:a("form.daterange.monthLast3"),range:V=>{const ue=u(V.getFullYear(),V.getMonth()+1),Ce=r(ue-2),he=r(ue);return[s(Ce.y,Ce.mo),s(he.y,he.mo)]}},{label:a("form.daterange.monthLast6"),range:V=>{const ue=u(V.getFullYear(),V.getMonth()+1),Ce=r(ue-5),he=r(ue);return[s(Ce.y,Ce.mo),s(he.y,he.mo)]}},{label:a("form.daterange.monthLast12"),range:V=>{const ue=u(V.getFullYear(),V.getMonth()+1),Ce=r(ue-11),he=r(ue);return[s(Ce.y,Ce.mo),s(he.y,he.mo)]}},{label:a("form.daterange.monthThisYear"),range:V=>[s(V.getFullYear(),1),s(V.getFullYear(),12)]},{label:a("form.daterange.monthLastYear"),range:V=>[s(V.getFullYear()-1,1),s(V.getFullYear()-1,12)]}];const U=V=>S(V.getFullYear(),V.getMonth()+1,V.getDate());return[{label:a("form.daterange.today"),range:V=>[U(V),U(V)]},{label:a("form.daterange.yesterday"),range:V=>{const ue=c(k(V.getFullYear(),V.getMonth()+1,V.getDate())-1);return[S(ue.y,ue.mo,ue.d),S(ue.y,ue.mo,ue.d)]}},{label:a("form.daterange.last7"),range:V=>{const ue=k(V.getFullYear(),V.getMonth()+1,V.getDate()),Ce=c(ue-6);return[S(Ce.y,Ce.mo,Ce.d),U(V)]}},{label:a("form.daterange.last30"),range:V=>{const ue=k(V.getFullYear(),V.getMonth()+1,V.getDate()),Ce=c(ue-29);return[S(Ce.y,Ce.mo,Ce.d),U(V)]}},{label:a("form.daterange.thisMonth"),range:V=>[S(V.getFullYear(),V.getMonth()+1,1),S(V.getFullYear(),V.getMonth()+1,M(V.getFullYear(),V.getMonth()+1))]},{label:a("form.daterange.lastMonth"),range:V=>{const ue=r(u(V.getFullYear(),V.getMonth()+1)-1);return[S(ue.y,ue.mo,1),S(ue.y,ue.mo,M(ue.y,ue.mo))]}}]}function j(n,a){const U=$(n).presets;return U===!1?null:Array.isArray(U)&&U.length?U.map(V=>({label:V&&V.label!=null?String(V.label):"",range:V&&V.range!=null?V.range:["",""]})):ie(n,a)}function H(n,a){return n==null&&a==null?"":a==null?`${n}${y}`:`${n}${y}${a}`}function ne(n,a){const U=String(a??"").trim();if(!U)return{start:null,end:null};if(h(n)!=="month"){const we=U.split(/\s+[–—-]\s+|\s+to\s+/i).map(Ie=>w(Ie,n));if(we.length<=2&&we.every(Ie=>Ie)){const[Ie,Ne=null]=we;return Ne&&Ie>Ne?{start:Ne,end:Ie}:{start:Ie,end:Ne}}}const V=h(n)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,ue=[];let Ce;for(;(Ce=V.exec(U))!==null;)ue.push(Ce[1]);if(ue.length===0)return null;const he=ue[0],je=ue.length>1?ue[ue.length-1]:null;if(h(n)==="month"){if(!t(he)||je&&!t(je))return null}else if(!p(he)||je&&!p(je))return null;return je&&he>je?{start:je,end:he}:{start:he,end:je}}function q(n,a){return new Intl.DateTimeFormat(n.locale||void 0,{month:"short"}).format(new Date(2021,a-1,1))}function ke(n){const a=n.__draftStart,U=n.__draftEnd;return a!=null&&U!=null?[a,U]:a!=null&&n.__hover!=null&&n.__granularity==="day"?[a,n.__hover]:a!=null&&n.__hover!=null&&n.__granularity==="month"?[a,n.__hover]:null}function Ee(n,a){return n>=a[0]&&n<=a[1]}function C(n,a){if(n.__granularity==="month"){const ue=u(n.__cursor.y,n.__cursor.mo)+a,Ce=r(ue);n.__cursor=Ce,K(n),N(n);return}const U=k(n.__cursor.y,n.__cursor.mo,n.__cursor.d)+a,V=c(U);n.__cursor=V,K(n),N(n)}function K(n){if(n.__granularity==="month"){n.__cursor.y<n.__view.y?n.__view={y:n.__cursor.y}:n.__cursor.y>n.__view.y+1&&(n.__view={y:n.__cursor.y-1});return}const U=u(n.__cursor.y,n.__cursor.mo),V=u(n.__view.y,n.__view.mo);U<V?n.__view={y:n.__cursor.y,mo:n.__cursor.mo}:U>V+1&&(n.__view=r(U-1))}function G(n,a){if(n.__granularity==="month"){n.__view={y:n.__view.y+a},N(n);return}const U=u(n.__view.y,n.__view.mo)+a,V=r(U);n.__view=V,N(n)}function B(n,a){return n&&a&&n.y===a.y&&n.mo===a.mo&&(n.d==null||n.d===a.d)}function te(n,a){return n.__granularity==="month"?s(a.y,a.mo):S(a.y,a.mo,a.d)}function ge(n,a){const U=te(n,a);n.__phase!=="started"?(n.__draftStart=U,n.__draftEnd=null,n.__phase="started"):U<n.__draftStart?(n.__draftStart=U,n.__draftEnd=null):(n.__draftEnd=U,n.__phase="idle",ee(n.__item)||oe(n,!0)),n.__cursor=a,n.__hover=null,N(n)}function oe(n,a){n.__start=n.__draftStart,n.__end=n.__draftEnd,n.__phase="idle",n.__input.value=H(n.__start,n.__end),i(n),a&&R(n)}function fe(n){n.__draftStart=n.__start,n.__draftEnd=n.__end,n.__phase="idle",n.__hover=null,R(n)}function ve(n){n.__start=null,n.__end=null,n.__draftStart=null,n.__draftEnd=null,n.__phase="idle",n.__input.value="",i(n)}function be(n,a,U){for(;U.firstChild;)U.removeChild(U.firstChild);const V=x(n.__item);if(n.__granularity==="month")Y(n,a,U,n.__view.y,V),Y(n,a,U,n.__view.y+1,V);else{X(n,a,U,n.__view.y,n.__view.mo,V);const ue=r(u(n.__view.y,n.__view.mo)+1);X(n,a,U,ue.y,ue.mo,V)}}function X(n,a,U,V,ue,Ce){const he=n.__item,je=a.createElement("div");je.className="lat-form__daterange-panel";const we=a.createElement("div");we.className="lat-form__daterange-title",we.textContent=E(he,{y:V,mo:ue}),je.appendChild(we);const Ie=le(he),Ne=O(he),Re=a.createElement("div");if(Re.className=Ne?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Ne){const Fe=a.createElement("span");Fe.className="lat-form__daterange-weeknum-head",Re.appendChild(Fe)}for(let Fe=0;Fe<7;Fe+=1){const rt=a.createElement("span");rt.textContent=W(he,(Ie+Fe)%7),Re.appendChild(rt)}je.appendChild(Re);const Se=a.createElement("div");Se.className=Ne?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",Se.setAttribute("role","grid"),Se.setAttribute("aria-label",E(he,{y:V,mo:ue})),Se.tabIndex=0,je.appendChild(Se);const Te=(new Date(V,ue-1,1).getDay()-Ie+7)%7,We=M(V,ue),Ge=k(V,ue,1)-Te,Ve=[];for(let Fe=0;Fe<Te;Fe+=1){Ne&&Fe%7===0&&Se.appendChild(de(n,a,Ge));const rt=a.createElement("span");rt.className="lat-form__daterange-blank",Se.appendChild(rt)}for(let Fe=1;Fe<=We;Fe+=1){Ne&&(Te+Fe-1)%7===0&&Se.appendChild(de(n,a,Ge+(Te+Fe-1)));const rt=pe(n,a,V,ue,Fe,Ce);Ve.push(rt),Se.appendChild(rt)}re(n,Se,Ve),U.appendChild(je)}function de(n,a,U){const V=a.createElement("span");V.className="lat-form__daterange-weeknum";const ue=new Date(U*864e5),Ce=U-(ue.getUTCDay()+6)%7,he=new Date(Ce*864e5);return V.textContent=String(m(he.getUTCFullYear(),he.getUTCMonth()+1,he.getUTCDate())),V}function pe(n,a,U,V,ue,Ce){const he=S(U,V,ue),je=a.createElement("button");je.type="button",je.className="lat-form__daterange-day",je.setAttribute("role","gridcell"),je.textContent=String(ue);const we=ke(n),Ie=we?Ee(he,we):!1,Ne=Z(n.__item,he,Ce);return Ne&&(je.disabled=!0),Ie&&je.classList.add("is-in-range"),n.__draftStart===he&&je.classList.add("is-start"),n.__draftEnd===he&&je.classList.add("is-end"),je.setAttribute("aria-selected",Ie&&!Ne?"true":"false"),n.__cursor&&n.__cursor.y===U&&n.__cursor.mo===V&&n.__cursor.d===ue&&je.classList.add("is-focus"),je.addEventListener("click",()=>{ge(n,{y:U,mo:V,d:ue})}),je.addEventListener("mouseover",()=>{n.__draftStart!=null&&n.__draftEnd==null&&!Ne&&n.__hover!==he&&(n.__hover=he,N(n))}),je}function Y(n,a,U,V,ue){const Ce=n.__item,he=a.createElement("div");he.className="lat-form__daterange-panel";const je=a.createElement("div");je.className="lat-form__daterange-title",je.textContent=T({y:V}),he.appendChild(je);const we=a.createElement("div");we.className="lat-form__daterange-grid lat-form__daterange-grid--months",we.setAttribute("role","grid"),we.setAttribute("aria-label",T({y:V})),he.appendChild(we);const Ie=[];for(let Ne=1;Ne<=12;Ne+=1){const Re=s(V,Ne),Se=a.createElement("button");Se.type="button",Se.className="lat-form__daterange-month",Se.setAttribute("role","gridcell"),Se.textContent=q(Ce,Ne);const Le=ke(n),Te=Le?Ee(Re,Le):!1,We=Z(Ce,Re,ue);We&&(Se.disabled=!0),Te&&Se.classList.add("is-in-range"),n.__draftStart===Re&&Se.classList.add("is-start"),n.__draftEnd===Re&&Se.classList.add("is-end"),Se.setAttribute("aria-selected",Te&&!We?"true":"false"),n.__cursor&&n.__cursor.y===V&&n.__cursor.mo===Ne&&n.__cursor.d==null&&Se.classList.add("is-focus"),Se.addEventListener("click",()=>{ge(n,{y:V,mo:Ne})}),Ie.push(Se),we.appendChild(Se)}we.addEventListener("keydown",Ne=>{if(Ne.key==="ArrowLeft")Ne.preventDefault(),C(n,-1);else if(Ne.key==="ArrowRight")Ne.preventDefault(),C(n,1);else if(Ne.key==="ArrowUp")Ne.preventDefault(),C(n,-3);else if(Ne.key==="ArrowDown")Ne.preventDefault(),C(n,3);else if(Ne.key==="PageUp")Ne.preventDefault(),G(n,-1);else if(Ne.key==="PageDown")Ne.preventDefault(),G(n,1);else if(Ne.key==="Enter"||Ne.key===" "){Ne.preventDefault();const Re=te(n,n.__cursor);Z(n.__item,Re,ue)||ge(n,n.__cursor)}}),U.appendChild(he)}function re(n,a,U){a.addEventListener("keydown",V=>{const ue=n.__cursor;if(V.key==="ArrowLeft")V.preventDefault(),C(n,-1);else if(V.key==="ArrowRight")V.preventDefault(),C(n,1);else if(V.key==="ArrowUp")V.preventDefault(),C(n,-7);else if(V.key==="ArrowDown")V.preventDefault(),C(n,7);else if(V.key==="PageUp")V.shiftKey?(V.preventDefault(),G(n,-12)):(V.preventDefault(),G(n,-1));else if(V.key==="PageDown")V.shiftKey?(V.preventDefault(),G(n,12)):(V.preventDefault(),G(n,1));else if((V.key==="Enter"||V.key===" ")&&(V.preventDefault(),ue&&ue.d!=null)){const Ce=S(ue.y,ue.mo,ue.d);Z(n.__item,Ce,x(n.__item))||ge(n,ue)}})}function N(n){const a=n.ownerDocument,U=n.__popup,V=n.__item,ue=z(U,"lat-form__daterange-nav");for(;U.firstChild;)U.removeChild(U.firstChild);const Ce=a.createElement("div");Ce.className="lat-form__daterange-head";const he=a.createElement("button");he.type="button",he.className="lat-form__daterange-nav",he.setAttribute("aria-label",n.__t("form.daterange.prev")),he.textContent="‹",he.addEventListener("click",()=>{G(n,-1)});const je=a.createElement("button");je.type="button",je.className="lat-form__daterange-nav",je.setAttribute("aria-label",n.__t("form.daterange.next")),je.textContent="›",je.addEventListener("click",()=>{G(n,1)}),Ce.appendChild(he);const we=a.createElement("div");we.className="lat-form__daterange-body";const Ie=j(V,n.__t);if(Ie){const Re=a.createElement("div");Re.className="lat-form__daterange-presets";const Se=a.createElement("div");Se.className="lat-form__daterange-presets-title",Se.textContent=n.__t("form.daterange.presets"),Re.appendChild(Se);for(const Le of Ie){const Te=a.createElement("button");Te.type="button",Te.className="lat-form__daterange-preset",Te.textContent=Le.label,Te.addEventListener("click",()=>{ce(n,Le.range)}),Re.appendChild(Te)}we.appendChild(Re)}const Ne=a.createElement("div");if(Ne.className="lat-form__daterange-panels",be(n,a,Ne),we.appendChild(Ne),Ce.appendChild(we),Ce.appendChild(je),U.appendChild(Ce),ee(V)){const Re=a.createElement("div");Re.className="lat-form__daterange-footer";const Se=a.createElement("button");Se.type="button",Se.className="lat-form__daterange-cancel",Se.textContent=n.__t("form.daterange.cancel"),Se.addEventListener("click",()=>{fe(n)});const Le=a.createElement("button");Le.type="button",Le.className="lat-form__daterange-apply",Le.textContent=n.__t("form.daterange.apply"),Le.addEventListener("click",()=>{oe(n,!0)}),Re.appendChild(Se),Re.appendChild(Le),U.appendChild(Re)}l(U,"lat-form__daterange-nav",ue)}function ce(n,a){const U=typeof a=="function"?a(new Date):a;if(!(!Array.isArray(U)||U.length<2)){if(n.__draftStart=U[0],n.__draftEnd=U[1],n.__phase="idle",n.__hover=null,n.__granularity==="day"){const V=p(U[0]);V&&(n.__view={y:V.y,mo:V.mo}),n.__cursor=V||n.__cursor}else{const V=t(U[0]);V&&(n.__view={y:V.y}),n.__cursor=V||n.__cursor}N(n)}}function ye(n){if(n.__popup.hidden===!1||n.__item.disabled===!0||n.__item.readOnly===!0)return;n.__draftStart=n.__start,n.__draftEnd=n.__end,n.__phase="idle",n.__hover=null;const a=new Date;if(n.__granularity==="month"){const U=t(n.__start)||{y:a.getFullYear(),mo:a.getMonth()+1};n.__view={y:U.y},n.__cursor=U}else{const U=p(n.__start)||{y:a.getFullYear(),mo:a.getMonth()+1,d:a.getDate()};n.__view={y:U.y,mo:U.mo},n.__cursor=U}n.__popup.hidden=!1,N(n)}function R(n){n.__popup.hidden=!0}F("daterange",{kind:"field",build(n,a){const U=a.doc;P(U);const V=U.createElement("div");V.className="lat-form__daterange",V.__item=n,V.__t=a.t||I,V.__granularity=h(n),V.__start=null,V.__end=null,V.__draftStart=null,V.__draftEnd=null,V.__hover=null,V.__phase="idle";const ue=typeof n.value=="object"&&n.value!=null?n.value:{};ue&&ue.start!=null&&(V.__start=String(ue.start)),ue&&ue.end!=null&&(V.__end=String(ue.end));const Ce=U.createElement("input");Ce.type="text",Ce.className="lat-form__daterange-input",n.name&&(Ce.name=n.name),n.placeholder!=null&&(Ce.placeholder=String(n.placeholder)),n.label!=null&&n.label!==""&&Ce.setAttribute("aria-label",String(n.label)),_(Ce),b(Ce,n.autocomplete),Ce.value=H(V.__start,V.__end),V.__input=Ce;const he=U.createElement("button");he.type="button",he.className="lat-form__daterange-toggle",he.setAttribute("aria-label",V.__t("form.daterange.open"));const je=e(U,"calendar");je&&he.appendChild(je),V.__toggle=he;const we=U.createElement("button");we.type="button",we.className="lat-form__daterange-clear",we.setAttribute("aria-label",V.__t("form.daterange.clear"));const Ie=e(U,"close");Ie&&we.appendChild(Ie),we.hidden=!ae(n)||V.__start==null&&V.__end==null,V.__clear=we;const Ne=U.createElement("div");Ne.className="lat-form__daterange-popup",Ne.hidden=!0,V.__popup=Ne,V.appendChild(Ce),V.appendChild(we),V.appendChild(he),V.appendChild(Ne),Ce.addEventListener("focus",()=>{ye(V)}),he.addEventListener("click",()=>{ye(V)}),we.addEventListener("click",()=>{ve(V)}),Ce.addEventListener("change",Te=>{const We=ne(n,Ce.value);We?(f(V,null),V.__start=We.start,V.__end=We.end,Ce.value=H(We.start,We.end)):(Te.stopPropagation(),Ce.value=H(V.__start,V.__end),f(V,V.__t("form.datepicker.invalid")))}),Ce.addEventListener("keydown",Te=>{Te.key==="Escape"&&(fe(V),V.__toggle.focus())});const Re=Te=>{V.contains(Te.target)||fe(V)},Se=Te=>{if(!(Te.relatedTarget&&V.contains(Te.relatedTarget))){if(!Te.relatedTarget){g(V.ownerDocument,()=>{if(V.__popup.hidden)return;const We=V.ownerDocument.activeElement;We&&V.contains(We)||fe(V)});return}fe(V)}},Le=Te=>{Te.key==="Escape"&&(Te.preventDefault(),fe(V),V.__toggle.focus())};return U.addEventListener("pointerdown",Re),V.addEventListener("focusout",Se),Ne.addEventListener("keydown",Le),Array.isArray(a.disposers)&&a.disposers.push(()=>{U.removeEventListener("pointerdown",Re),V.removeEventListener("focusout",Se),Ne.removeEventListener("keydown",Le)}),V},read(n){return{start:n.__start,end:n.__end}},write(n,a){f(n,null);const U=a&&typeof a=="object"?a:{};n.__start=U.start!=null?String(U.start):null,n.__end=U.end!=null?String(U.end):null,n.__input.value=H(n.__start,n.__end),n.__clear&&(n.__clear.hidden=!ae(n.__item)||n.__start==null&&n.__end==null)},state(n,a){n.__input.disabled=a.disabled===!0,n.__input.readOnly=a.readOnly===!0,n.__toggle.disabled=a.disabled===!0||a.readOnly===!0},validate(n,a,U){const V=U&&typeof U=="object"?U:{start:null,end:null},ue=V.start!=null?String(V.start):null,Ce=V.end!=null?String(V.end):null,he=n.__t;if(a.required===!0&&ue==null&&Ce==null)return he("form.validation.required");if(ue==null&&Ce==null)return!0;if(ue==null||Ce==null)return he("form.daterange.invalid");if(se(a,ue)||se(a,Ce))return he("form.daterange.bounds");const je=Q(ue,Ce,n.__granularity);if(je==null)return he("form.daterange.invalid");const we=$(a).minSpan,Ie=$(a).maxSpan;return we!=null&&je<Number(we)?he("form.daterange.minSpan",{min:String(we),unit:Pe(a,he)}):Ie!=null&&je>Number(Ie)?he("form.daterange.maxSpan",{max:String(Ie),unit:Pe(a,he)}):!0},live:{disabledDates(n){n.__popup&&n.__popup.hidden===!1&&N(n)}},focus(n){n.__input.focus()}})}),Me("packages/modules/form/controls/file.js",function(A,J){"use strict";Object.defineProperty(A,"formatSize",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"accepts",{enumerable:!0,get:function(){return T}});const F=J("packages/modules/form/controls/registry.js").registerControl,L="lat-uploader",e="http://www.w3.org/2000/svg",P="data-lattice-uploader-styles";function D(){return`
|
|
2087
2087
|
.${L}{
|
|
2088
2088
|
--lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
|
|
2089
2089
|
--lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
|
|
@@ -2210,8 +2210,8 @@ ${M()}
|
|
|
2210
2210
|
.${L}__zone.is-dragover, .${L}__zone.is-invalid{ box-shadow:none; }
|
|
2211
2211
|
.${L}__item-fill{ transition:none; }
|
|
2212
2212
|
}
|
|
2213
|
-
`.trim()}function I(l){const g=l&&l.documentElement;if(!g||g.getAttribute(P))return;g.setAttribute(P,"1");const w=l.createElement("style");w.textContent=D(),(l.head||l.body||g).appendChild(w)}function M(l,g){const w=g&&g.defaultView,x=w&&w.Event,v=x?new x("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};l.dispatchEvent(v)}function W(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function E(l){const g=Number(l)||0;return g<1024?`${g} B`:g<1048576?`${(g/1024).toFixed(g<10240?1:0)} KB`:g<1073741824?`${(g/1048576).toFixed(1)} MB`:`${(g/1073741824).toFixed(2)} GB`}function T(l,g){if(!g||!g.length)return!0;const w=(l.name||"").toLowerCase(),x=(l.type||"").toLowerCase();return g.some(v=>{const f=String(v).trim().toLowerCase();return f.startsWith(".")?w.endsWith(f):f.endsWith("/*")?x.startsWith(f.slice(0,-1)):x===f})}function i(l){return l.length?l.length===1?l[0]:l.length===2?`${l[0]} or ${l[1]}`:`${l.slice(0,-1).join(", ")} or ${l[l.length-1]}`:""}function p(l){const g={".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"},w=String(l).trim(),x=g[w.toLowerCase()];if(x)return x;if(w.startsWith("."))return w.slice(1).toUpperCase();if(w.endsWith("/*"))return`${w.slice(0,-2)}s`;const v=w.split("/")[1];return v?v.toUpperCase():w}function S(l,g,w,x){const v=[];return g&&g.length&&v.push(i(g.map(p))),w&&v.push(l("form.file.hint.size",{size:E(w)})),x&&v.push(l(x===1?"form.file.hint.file":"form.file.hint.files",{max:String(x)})),v.join(" · ")}function k(l){return{id:l.id,name:l.name,size:l.size,type:l.type,status:l.status,progress:l.progress,message:l.message||""}}function d(l,g){const w=l.createElementNS(e,"svg");w.setAttribute("viewBox","0 0 16 16"),w.setAttribute("focusable","false"),w.setAttribute("aria-hidden","true"),w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","1.5"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round");const x=l.createElementNS("http://www.w3.org/2000/svg","path");return x.setAttribute("d",g),w.appendChild(x),w}const c=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(l,g){const w=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let x;for(;x=w.exec(g);)l.setAttribute(x[1],x[3]===void 0?x[4]:x[3])}function s(l,g){const w=/<svg\b([^>]*)>/i.exec(g);if(!w)return null;const x=l.createElementNS(e,"svg");t(x,w[1]);const v=g.lastIndexOf("</svg"),f=v===-1?"":g.slice(w.index+w[0].length,v),o=/<(\w+)\b([^>]*?)(\/?)>/g;let _;for(;_=o.exec(f);){const b=l.createElementNS(e,_[1]);t(b,_[2]),x.appendChild(b)}return x.setAttribute("aria-hidden","true"),x.setAttribute("focusable","false"),x}function u(l,g){if(l===!1)return null;if(l!=null&&typeof l=="object"&&l.nodeType){const x=l;return x.classList.add(`${L}__icon`),x.setAttribute("aria-hidden","true"),x}if(typeof l!="string"||l==="")return null;const w=c[l]?d(g,c[l]):s(g,l);return w?(w.setAttribute("class",`${L}__icon`),w):null}function r(l){const g=l.type||"";return g.startsWith("image/")?"image":g==="application/pdf"||/\.pdf$/i.test(l.name)?"document":"file"}function m(l){if(l.thumb)return l.thumb;if(!l.file||!/^image\//.test(l.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{l.thumb=URL.createObjectURL(l.file)}catch{l.thumb=null}return l.thumb}function z(l){if(l.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(l.thumb)}catch{}l.thumb=null}F("file",{kind:"field",build(l,g){const w=g.doc,x=g.t,v=l.props||{},f=Array.isArray(v.accept)?v.accept.map(B=>String(B)):[],o=Number(v.maxSize)||0,_=Number(v.maxFiles)||0,b=v.multiple!==!1,y=typeof v.upload=="function"?v.upload:null,h=v.dropzone!==!1,$=v.dropText!=null?String(v.dropText):x("form.file.dropText"),ee=v.browseText!=null?String(v.browseText):x("form.file.browse"),O=x("form.file.dropToUpload"),ae=x("form.file.addMore"),se=x("form.file.typeNotAccepted"),ce=v.hint!=null&&v.hint!==""?String(v.hint):S(x,f,o,_);I(w);const Z=w.createElement("div");Z.className=L;const Q={accept:f,maxSize:o,maxFiles:_,multiple:b,upload:y,dropText:$,browse:ee,dropToUpload:O,addMore:ae,typeNotAccepted:se,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:h,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};Z.__latFile=Q;const Pe=w.createElement("input");Pe.type="file",Pe.className=`${L}__input`,Pe.tabIndex=-1,Pe.setAttribute("aria-hidden","true"),b&&(Pe.multiple=!0),f.length&&(Pe.accept=f.join(",")),Z.appendChild(Pe),Q.input=Pe;const ie=w.createElement("div");ie.className=`${L}__zone`,ie.setAttribute("role","button"),ie.tabIndex=0,ie.setAttribute("aria-label",`${$} ${ee}`);const j=v.icon==null?d(w,c.upload):u(v.icon,w);j&&(v.icon==null&&j.setAttribute("class",`${L}__icon`),ie.appendChild(j));const H=w.createElement("span");H.className=`${L}__title`;const ne=w.createElement("span");ne.className=`${L}__title-rest`,ne.textContent=$,H.appendChild(ne);const q=w.createElement("button");q.type="button",q.className=`${L}__browse`,q.tabIndex=-1,q.textContent=ee,H.appendChild(q),ie.appendChild(H),Q.titleRest=ne,Q.browseEl=q;const we=w.createElement("span");if(we.className=`${L}__drop`,we.textContent=O,ie.appendChild(we),ce){const B=w.createElement("span");B.className=`${L}__hint`,B.textContent=ce,ie.appendChild(B)}const $e=w.createElement("span");$e.className=`${L}__compact`,$e.appendChild(d(w,c.upload));const C=w.createElement("span");C.className=`${L}__compact-text`,C.textContent=ae,$e.appendChild(C),ie.appendChild($e),Q.compactText=C,Z.appendChild(ie),Q.zone=ie;const K=w.createElement("ul");K.className=`${L}__list`,K.setAttribute("role","list"),K.hidden=!0,Z.appendChild(K),Q.list=K;const G=w.createElement("div");return G.className=`${L}__live`,G.setAttribute("role","status"),G.setAttribute("aria-live","polite"),Z.appendChild(G),Q.live=G,Z.__latAnnounce=B=>{Q.live&&(Q.live.textContent="",Q.live.textContent=B)},Z.__latDragState=B=>{Q.zone.classList.toggle("is-dragover",B==="over"),Q.zone.classList.toggle("is-invalid",B==="invalid"),B==="none"?(Q.titleRest.textContent=Q.dropText,Q.browseEl.hidden=!1,Q.compactText.textContent=Q.addMore):B==="over"?(Q.titleRest.textContent=Q.dropToUpload,Q.browseEl.hidden=!0,Q.compactText.textContent=Q.dropToUpload):(Q.titleRest.textContent=Q.typeNotAccepted,Q.browseEl.hidden=!0,Q.compactText.textContent=Q.typeNotAccepted)},Z.__latPaint=()=>{const B=Q.disabled||Q.readOnly||!Q.dropzone;Q.zone.hidden=B,Q.zone.tabIndex=B?-1:0,B?Q.zone.setAttribute("aria-disabled","true"):Q.zone.removeAttribute("aria-disabled"),Q.input.disabled=B;const te=Q.entries.length>0;Q.zone.classList.toggle("is-compact",te),Q.zone.setAttribute("aria-label",te?Q.addMore:`${Q.dropText} ${Q.browse}`),K.hidden=!Q.entries.length,K.tabIndex=Q.readOnly&&!Q.disabled?0:-1,Q.entries.some(oe=>oe.status==="rejected")?Z.setAttribute("aria-invalid","true"):Z.removeAttribute("aria-invalid"),K.textContent="";for(const oe of Q.entries){const fe=w.createElement("li");fe.className=`${L}__item is-${oe.status}`,fe.setAttribute("data-id",oe.id),fe.setAttribute("role","listitem");const ve=m(oe);if(ve){const N=w.createElement("img");N.className=`${L}__item-thumb`,N.src=ve,N.alt="",fe.appendChild(N)}else{const N=d(w,c[r(oe)]);N.setAttribute("class",`${L}__item-icon`),fe.appendChild(N)}const me=w.createElement("div");me.className=`${L}__item-main`,fe.appendChild(me);const X=w.createElement("div");X.className=`${L}__item-row`,me.appendChild(X);const de=w.createElement("span");de.className=`${L}__item-name`,de.textContent=oe.name,de.title=oe.name,X.appendChild(de);const pe=w.createElement("span");pe.className=`${L}__item-size`,pe.textContent=E(oe.size),X.appendChild(pe);const Y=w.createElement("span");if(Y.className=`${L}__item-state`,oe.status==="uploading"){const N=w.createElement("span");N.className=`${L}__item-pct`,N.textContent=`${oe.progress}%`,Y.appendChild(N)}else oe.status==="done"?Y.appendChild(d(w,c.check)):(oe.status==="error"||oe.status==="rejected")&&Y.appendChild(d(w,c.warn));X.appendChild(Y);const re=w.createElement("button");if(re.type="button",re.className=`${L}__remove`,re.setAttribute("aria-label",`${x("form.file.remove")} ${oe.name}`),re.title=x("form.file.remove"),re.appendChild(d(w,c.xmark)),re.setAttribute("data-remove",oe.id),re.disabled=Q.disabled||Q.readOnly,X.appendChild(re),oe.status==="uploading"){const N=w.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(oe.progress));const ue=w.createElement("span");ue.className=`${L}__item-fill`,ue.style.width=`${oe.progress}%`,N.appendChild(ue),me.appendChild(N)}if(oe.message){const N=w.createElement("span");if(N.className=`${L}__item-message`,N.appendChild(w.createTextNode(oe.message)),oe.status==="error"){N.appendChild(w.createTextNode(" "));const ue=w.createElement("button");ue.type="button",ue.className=`${L}__retry`,ue.textContent=x("form.file.retry"),ue.setAttribute("data-retry",oe.id),ue.disabled=Q.disabled||Q.readOnly,N.appendChild(ue)}me.appendChild(N)}K.appendChild(fe)}},Z.__latUpload=B=>{if(!Q.upload){B.status="done",B.progress=100,Z.__latPaint();return}B.status="uploading",B.progress=0,B.message="";let te=null;typeof AbortController<"u"&&(te=new AbortController,Q.controllers.set(B.id,te));const ge=te?te.signal:void 0,oe=ve=>{B.progress=Math.max(0,Math.min(100,Number(ve)||0)),B.status="uploading",Z.__latPaint()};let fe;try{fe=Q.upload(B.file,{onProgress:oe,signal:ge})}catch(ve){fe=Promise.reject(ve)}fe&&typeof fe.then=="function"&&fe.then(()=>{Q.controllers.delete(B.id),B.status="done",B.progress=100,Z.__latPaint(),Z.__latAnnounce(x("form.file.uploaded",{name:B.name})),M(Z,g.doc)},ve=>{Q.controllers.delete(B.id),B.status="error",B.message=ve&&ve.message?String(ve.message):x("form.file.uploadFailed"),Z.__latPaint(),Z.__latAnnounce(x("form.file.failed",{name:B.name})),M(Z,g.doc)})},Z.__latTake=B=>{const te=[...B||[]];if(!te.length||Q.disabled||Q.readOnly)return;const ge=Q.multiple?te:te.slice(0,1),oe=[],fe=[];let ve=Q.maxFiles?Math.max(0,Q.maxFiles-Q.entries.length):1/0;for(const me of ge){if(ve<=0){fe.push({file:me,reason:"count"});continue}if(Q.maxSize&&me.size>Q.maxSize){fe.push({file:me,reason:"size"});continue}if(!T(me,Q.accept)){fe.push({file:me,reason:"type"});continue}oe.push({id:W(),file:me,name:me.name,size:me.size,type:me.type,status:"selected",progress:0,message:""}),ve-=1}if(oe.length){Q.multiple||(Q.entries=[]),Q.entries.push(...oe),Z.__latPaint(),M(Z,g.doc),Z.__latAnnounce(oe.length===1?x("form.file.addedOne"):x("form.file.added",{count:String(oe.length)}));for(const me of oe)Z.__latUpload(me)}for(const me of fe){const X=me.reason==="size"?x("form.file.rejected.size",{size:E(Q.maxSize)}):me.reason==="type"?x("form.file.rejected.type"):x("form.file.rejected.count",{max:String(Q.maxFiles)});Q.entries.push({id:W(),file:me.file,name:me.file.name,size:me.file.size,type:me.file.type,status:"rejected",progress:0,message:X}),Z.__latAnnounce(X)}Z.__latPaint()},Z.__latRemove=B=>{const te=Q.controllers.get(B);te&&(te.abort(),Q.controllers.delete(B));const ge=Q.entries.find(oe=>oe.id===B);ge&&z(ge),Q.entries=Q.entries.filter(oe=>oe.id!==B),Z.__latPaint(),M(Z,g.doc)},Z.__latRetry=B=>{if(Q.disabled||Q.readOnly)return;const te=Q.entries.find(ge=>ge.id===B);!te||!te.file||te.status==="rejected"||(Z.__latUpload(te),M(Z,g.doc))},Z.__latClick=B=>{if(Q.disabled||Q.readOnly)return;const te=B.target&&B.target.closest?B.target:null,ge=te&&te.closest?te.closest("[data-remove]"):null;if(ge&&Z.contains(ge)){Z.__latRemove(ge.getAttribute("data-remove"));return}const oe=te&&te.closest?te.closest("[data-retry]"):null;if(oe&&Z.contains(oe)){Z.__latRetry(oe.getAttribute("data-retry"));return}te&&te.closest&&te.closest(`.${L}__zone`)&&Q.input.click()},Z.__latKeydown=B=>{Q.disabled||Q.readOnly||(B.key==="Enter"||B.key===" "||B.key==="Spacebar")&&B.target===Q.zone&&(B.preventDefault(),Q.input.click())},Z.__latChange=()=>{Z.__latTake(Q.input.files),Q.input.value=""},Z.__latDragKind=B=>{if(!Q.accept.length)return"over";const te=B.dataTransfer;if(!te||!te.types||!te.types.length)return"over";const ge=Array.from(te.types);return ge.includes("Files")?"over":ge.every(oe=>!T({name:"",type:oe},Q.accept))?"invalid":"over"},Z.__latDrag=B=>{if(!(Q.disabled||Q.readOnly)){if(B.type==="dragenter"||B.type==="dragover"){B.preventDefault(),Z.__latDragState(Z.__latDragKind(B));return}if(B.type==="dragleave"){if(B.relatedTarget&&Q.zone.contains(B.relatedTarget))return;Z.__latDragState("none");return}B.type==="drop"&&(B.preventDefault(),Z.__latDragState("none"),Z.__latTake(B.dataTransfer&&B.dataTransfer.files))}},Z.__latPaste=B=>{if(Q.disabled||Q.readOnly||!B.clipboardData)return;const te=[...B.clipboardData.files||[]];te.length&&(B.preventDefault(),Z.__latTake(te))},Pe.addEventListener("change",Z.__latChange),Z.addEventListener("click",Z.__latClick),Z.addEventListener("keydown",Z.__latKeydown),Z.addEventListener("paste",Z.__latPaste),h&&["dragenter","dragover","dragleave","drop"].forEach(B=>Z.addEventListener(B,Z.__latDrag)),Z.__latPaint(),Z},read(l){const g=l.__latFile;return g?g.entries.filter(w=>w.status!=="rejected").map(k):[]},write(l,g){const w=l.__latFile;if(!w)return;const x=Array.isArray(g)?g:[],v=w.entries.filter(f=>f.status==="rejected");for(const f of w.entries)v.includes(f)||z(f);w.entries=v;for(const f of x)w.entries.push({id:f&&f.id?String(f.id):W(),file:f&&f.file?f.file:null,name:f&&f.name!=null?String(f.name):"",size:f&&f.size!=null?Number(f.size):0,type:f&&f.type!=null?String(f.type):"",status:f&&f.status?String(f.status):"done",progress:f&&f.progress!=null?Number(f.progress):100,message:f&&f.message?String(f.message):""});l.__latPaint&&l.__latPaint()},state(l,g){const w=l.__latFile;w&&(w.disabled=g.disabled===!0,w.readOnly=g.readOnly===!0,w.disabled?l.setAttribute("aria-disabled","true"):l.removeAttribute("aria-disabled"),w.readOnly?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly"),l.__latPaint&&l.__latPaint())},validate(l,g,w){const x=l.__latFile;if(!x)return null;const v=x.entries.find(f=>f.status==="rejected");return v&&v.message&&(!Array.isArray(w)||w.length===0)?v.message:x.maxFiles&&Array.isArray(w)&&w.length>x.maxFiles?`Too many files (max ${x.maxFiles})`:null}})}),De("packages/dom/src/editors/richtext-icons.js",function(A,J){"use strict";Object.defineProperty(A,"TOOL_GLYPHS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"letterGlyph",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"toolGlyph",{enumerable:!0,get:function(){return P}});const _e="http://www.w3.org/2000/svg",F=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(D,I){const M=F[I],W=D.createElementNS(_e,"svg");W.setAttribute("viewBox","0 0 16 16"),W.setAttribute("width","16"),W.setAttribute("height","16"),W.setAttribute("focusable","false"),W.setAttribute("aria-hidden","true");const E=D.createElementNS(_e,"text");return E.setAttribute("x","8"),E.setAttribute("y","12"),E.setAttribute("text-anchor","middle"),E.style.fontSize="12px",E.style.fill="currentColor",E.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',M.weight&&(E.style.fontWeight=M.weight),M.style&&(E.style.fontStyle=M.style),M.decoration&&(E.style.textDecoration=M.decoration),E.textContent=M.char,W.appendChild(E),W}function P(D,I){const M=D.createElementNS(_e,"svg");M.setAttribute("viewBox","0 0 16 16"),M.setAttribute("focusable","false"),M.setAttribute("aria-hidden","true"),M.setAttribute("fill","none"),M.setAttribute("stroke","currentColor"),M.setAttribute("stroke-width","1.5"),M.setAttribute("stroke-linecap","round"),M.setAttribute("stroke-linejoin","round");const W=D.createElementNS(_e,"path");return W.setAttribute("d",L[I]),M.appendChild(W),M}}),De("packages/modules/form/controls/swatches.js",function(A,J){"use strict";Object.defineProperty(A,"DEFAULT_COLORS",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"hslToHex",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"buildSwatchButton",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"buildSwatchGrid",{enumerable:!0,get:function(){return T}});const _e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),F=Object.freeze([0,24,48,84,140,168,196,224,268,320]),L=Object.freeze([.82,.66,.5,.36,.22]),e=.62,P=Object.freeze([.92,.76,.56,.36,.18]);function D(i,p,S){let k=S;return k<0&&(k+=1),k>1&&(k-=1),k<1/6?i+(p-i)*6*k:k<1/2?p:k<2/3?i+(p-i)*(2/3-k)*6:i}function I(i,p,S){const k=(i%360+360)%360/360;let d,c,t;if(p===0)d=S,c=S,t=S;else{const u=S<.5?S*(1+p):S+p-S*p,r=2*S-u;d=D(r,u,k+1/3),c=D(r,u,k),t=D(r,u,k-1/3)}const s=u=>Math.round(u*255).toString(16).padStart(2,"0");return`#${s(d)}${s(c)}${s(t)}`}const M=Object.freeze(F.map(i=>Object.freeze(L.map(p=>I(i,e,p))))),W=Object.freeze(P.map(i=>I(0,0,i)));function E(i,p,S={}){const k=i.createElement("button");return k.type="button",k.className="lat-form__swatch",k.style.background=p,k.setAttribute("role","option"),k.setAttribute("data-color",p),k.setAttribute("aria-selected",S.selected?"true":"false"),S.selected&&k.classList.add("is-selected"),k.title=S.title!=null?S.title:p,k.tabIndex=-1,k}function T(i,p,S={}){const k=i.createElement("div");k.className="lat-form__swatch-grid",k.setAttribute("role","listbox");const d=[];for(const c of p){const t=i.createElement("div");t.className=S.rowClass?`lat-form__swatch-row ${S.rowClass}`:"lat-form__swatch-row";const s=[];for(const u of c){const r=E(i,u,{selected:typeof S.isSelected=="function"&&S.isSelected(u),title:typeof S.title=="function"?S.title(u):void 0});t.appendChild(r),s.push(r)}k.appendChild(t),d.push(s)}return typeof S.onPick=="function"&&k.addEventListener("click",c=>{const t=c.target&&c.target.closest?c.target.closest(".lat-form__swatch"):null;t&&k.contains(t)&&S.onPick(t.getAttribute("data-color"),t)}),{el:k,rows:d}}}),De("packages/modules/form/controls/richtext.js",function(A,J){"use strict";Object.defineProperty(A,"sanitize",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"escapeHtml",{enumerable:!0,get:function(){return P}});const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/dom/src/editors/sanitize-richtext.js"),e=L.sanitizeRichText,P=L.escapeHtml,D=J("packages/dom/src/editors/richtext-icons.js"),I=D.letterGlyph,M=D.toolGlyph,W=D.TOOL_GLYPHS,E=J("packages/modules/form/controls/swatches.js"),T=E.DEFAULT_COLORS,i=E.buildSwatchGrid,p=e,S=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"]}),k=Object.freeze(["bold","italic","underline","strike"]),d=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 c(m){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[m]||null}const t=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function s(m){return Array.isArray(m)?m.map(z=>String(z)):S[m]||S.basic}function u(m){return new Promise((z,l)=>{const g=new FileReader;g.onload=()=>z(g.result),g.onerror=()=>l(g.error||new Error("read failed")),g.readAsDataURL(m)})}F("richtext",{kind:"field",build(m,z){const l=z.doc,g=m.props||{},w=s(g.toolbar),x=Array.isArray(g.headings)?g.headings:t,v=Array.isArray(g.colors)?g.colors:T,f=g.linkTarget!=null?String(g.linkTarget):"_blank",o=Number(g.minHeight)||160,_=Number(g.maxHeight)||0,b=Number(g.maxImageSize)||0,y=typeof g.onImage=="function"?g.onImage:null,h=g.sanitizePaste!==!1,$=g.allowedTags,ee=g.placeholder!=null?String(g.placeholder):z.t("form.richtext.placeholder"),O=l.createElement("div");O.className="lat-form__richtext";const ae={toolbar:w,headings:x,colors:v,linkTarget:f,minHeight:o,maxHeight:_,maxImageSize:b,onImage:y,sanitizePaste:h,allowedTags:$,placeholder:ee,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};O.__latRt=ae;const se=p(l,m.value==null?"":String(m.value),$,{});ae.history={stack:[se],index:0},ae.lastValue=se;const ce=l.createElement("div");ce.className="lat-form__richtext-toolbar",ce.setAttribute("role","toolbar"),ce.setAttribute("aria-label",z.t("form.richtext.formatting")),ae.toolbarEl=ce;for(const j of w){if(j==="|"){const ne=l.createElement("span");ne.className="lat-form__richtext-sep",ne.setAttribute("role","separator"),ce.appendChild(ne);continue}if(j==="heading"){const ne=l.createElement("select");ne.className="lat-form__richtext-select",ne.title=z.t(d.heading),ne.setAttribute("aria-label",z.t(d.heading)),ne.setAttribute("data-item","heading");for(const[q,we]of x){const $e=l.createElement("option");$e.value=q,$e.textContent=String(we),ne.appendChild($e)}ae.buttons.heading=ne,ce.appendChild(ne);continue}const H=l.createElement("button");H.type="button",H.className="lat-form__richtext-btn",H.setAttribute("data-item",j),H.title=z.t(d[j]||j),H.setAttribute("aria-label",z.t(d[j]||j)),j==="lowercase"||j==="uppercase"?(H.className+=" lat-form__richtext-btntext",H.textContent=z.t(j==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):k.includes(j)?H.appendChild(I(l,j)):W[j]?H.appendChild(M(l,j)):H.textContent=j,ae.buttons[j]=H,ce.appendChild(H)}O.appendChild(ce);const Z=l.createElement("div");Z.className="lat-form__richtext-popover",Z.hidden=!0,O.appendChild(Z),ae.popover=Z;const Q=l.createElement("div");Q.className="lat-form__richtext-editor",Q.contentEditable=m.readOnly||m.disabled?"false":"true",Q.setAttribute("role","textbox"),Q.setAttribute("aria-multiline","true"),Q.setAttribute("aria-label",m.label!=null?String(m.label):z.t("form.richtext.richText")),Q.setAttribute("data-placeholder",ee),Q.style.minHeight=`${o}px`,_&&(Q.style.maxHeight=`${_}px`),Q.innerHTML=se,O.appendChild(Q),ae.editor=Q;const Pe=l.createElement("textarea");Pe.className="lat-form__richtext-source",Pe.setAttribute("aria-label",z.t("form.richtext.source")),Pe.spellcheck=!1,Pe.hidden=!0,O.appendChild(Pe),ae.source=Pe;const ie=l.createElement("input");return ie.type="file",ie.accept="image/*",ie.className="lat-form__richtext-file",ie.tabIndex=-1,ie.setAttribute("aria-hidden","true"),O.appendChild(ie),ae.fileInput=ie,O.__latSave=()=>{const j=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;j&&j.rangeCount&&Q.contains(j.anchorNode)&&(ae.range=j.getRangeAt(0).cloneRange())},O.__latRestore=()=>{if(!ae.range)return;const j=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(j)try{j.removeAllRanges(),j.addRange(ae.range)}catch{}},O.__latRefresh=()=>{Object.entries(ae.buttons).forEach(([j,H])=>{const ne=c(j);if(ne&&ne.state&&H.tagName==="BUTTON"){let q=!1;try{q=l.queryCommandState(ne.state)}catch{q=!1}H.setAttribute("aria-pressed",q?"true":"false"),H.classList.toggle("is-active",q)}if(j==="heading"&&H.tagName==="SELECT"){let q="";try{q=String(l.queryCommandValue("formatBlock")||"").toLowerCase()}catch{q=""}const we=[...H.options].some($e=>$e.value===q);H.value=we?q:"p"}})},O.__latExec=(j,H)=>{Q.focus(),O.__latRestore();try{l.execCommand("styleWithCSS",!1,j==="foreColor")}catch{}try{l.execCommand(j,!1,H===void 0?null:H)}catch{}O.__latAfterEdit()},O.__latAfterEdit=()=>{const j=Q.innerHTML,H=ae.history;H.stack[H.index]!==j&&(H.stack=H.stack.slice(0,H.index+1),H.stack.push(j),H.stack.length>200&&H.stack.shift(),H.index=H.stack.length-1),O.__latRefresh();const ne=p(l,j,$,{}),q=ae.lastValue==null?p(l,H.stack[0]||"",$,{}):ae.lastValue;ae.lastValue=ne,r(O,l,q,ne)},O.__latCaretEnd=()=>{const j=l.createRange();j.selectNodeContents(Q),j.collapse(!1);const H=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;H&&(H.removeAllRanges(),H.addRange(j)),ae.range=j.cloneRange()},O.__latUndo=()=>{const j=ae.history;if(j.index<=0)return;j.index-=1,Q.innerHTML=j.stack[j.index],O.__latCaretEnd(),O.__latRefresh();const H=p(l,Q.innerHTML,$,{});ae.lastValue=H,r(O,l,ae.lastValue,H)},O.__latRedo=()=>{const j=ae.history;if(j.index>=j.stack.length-1)return;j.index+=1,Q.innerHTML=j.stack[j.index],O.__latCaretEnd(),O.__latRefresh();const H=p(l,Q.innerHTML,$,{});ae.lastValue=H,r(O,l,ae.lastValue,H)},O.__latClosePopover=()=>{Z.hidden=!0,Z.textContent=""},O.__latOpenPopover=(j,H)=>{if(Z.textContent="",Z.hidden=!1,Z.style.left=`${Math.max(0,H.offsetLeft)}px`,j==="color"){const{el:ne}=i(l,[v],{onPick:C=>{O.__latRestore(),O.__latExec("foreColor",C),O.__latClosePopover()}});Z.appendChild(ne);const q=l.createElement("div");q.className="lat-form__richtext-poprow";const we=l.createElement("input");we.type="color",we.className="lat-form__richtext-colorinput",we.setAttribute("aria-label",z.t("form.richtext.colorCustom")),we.addEventListener("input",()=>{O.__latRestore(),O.__latExec("foreColor",we.value)});const $e=l.createElement("button");$e.type="button",$e.className="lat-form__richtext-popbtn",$e.textContent=z.t("form.richtext.colorRemove"),$e.addEventListener("click",()=>{O.__latRestore(),O.__latExec("foreColor","inherit"),O.__latClosePopover()}),q.appendChild(we),q.appendChild($e),Z.appendChild(q)}else{const ne=O.__latClosestLink(),q=l.createElement("input");q.type="url",q.className="lat-form__richtext-linkinput",q.placeholder=z.t("form.richtext.linkPlaceholder"),q.value=ne&&ne.getAttribute("href")||"",q.setAttribute("aria-label",z.t("form.richtext.linkLabel"));const we=()=>{const K=q.value.trim();if(O.__latRestore(),!K){O.__latExec("unlink"),O.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(K)){q.classList.add("is-invalid");return}if(ne)ne.setAttribute("href",K),O.__latAfterEdit();else{const G=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(G&&G.isCollapsed){const B=f?` target="${P(f)}" rel="noopener noreferrer"`:"";O.__latExec("insertHTML",p(l,`<a href="${P(K)}"${B}>${P(K)}</a>`,$,{}))}else{O.__latExec("createLink",K);const B=O.__latClosestLink();B&&f&&(B.setAttribute("target",f),B.setAttribute("rel","noopener noreferrer"))}}O.__latClosePopover()};q.addEventListener("keydown",K=>{K.key==="Enter"&&(K.preventDefault(),we()),K.key==="Escape"&&O.__latClosePopover()});const $e=l.createElement("div");$e.className="lat-form__richtext-poprow",$e.appendChild(q);const C=l.createElement("button");if(C.type="button",C.className="lat-form__richtext-popbtn",C.textContent=ne?z.t("form.richtext.linkUpdate"):z.t("form.richtext.linkAdd"),C.addEventListener("click",we),$e.appendChild(C),ne){const K=l.createElement("button");K.type="button",K.className="lat-form__richtext-popbtn",K.textContent=z.t("form.richtext.linkRemove"),K.addEventListener("click",()=>{O.__latRestore(),O.__latExec("unlink"),O.__latClosePopover()}),$e.appendChild(K)}Z.appendChild($e),setTimeout(()=>q.focus(),0)}},O.__latClosestLink=()=>{const j=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!j||j.rangeCount===0)return null;let H=j.getRangeAt(0).commonAncestorContainer;H.nodeType===3&&(H=H.parentNode);const ne=H.closest?H.closest("a"):null;return ne&&Q.contains(ne)?ne:null},O.__latRun=j=>{if(ae.disabled||ae.readOnly)return;j!=="source"&&ae.sourceMode&&O.__latToggleSource(!1),O.__latRestore();const H=c(j);if(j==="color"||j==="link"){O.__latOpenPopover(j,ae.buttons[j]);return}if(j==="undo"){O.__latUndo();return}if(j==="redo"){O.__latRedo();return}if(j==="source"){O.__latToggleSource();return}if(j==="image"){ae.fileInput.click();return}if(j==="lowercase"||j==="uppercase"){O.__latCase(j==="uppercase");return}if(H){O.__latExec(H.cmd);return}},O.__latCase=j=>{const H=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!H||H.rangeCount===0||H.isCollapsed)return;const ne=H.toString();O.__latExec("insertText",j?ne.toUpperCase():ne.toLowerCase())},O.__latToggleSource=j=>{const H=j===void 0?!ae.sourceMode:!!j;if(H===ae.sourceMode)return;H?(ae.source.value=p(l,Q.innerHTML,$,{}).replace(/></g,`>
|
|
2214
|
-
<`),Q.hidden=!0,Pe.hidden=!1,Pe.focus()):(ae.sourceDirty&&(Q.innerHTML=p(l,Pe.value,$,{}),ae.sourceDirty=!1),Pe.hidden=!0,Q.hidden=!1,Q.focus()),ae.sourceMode=H;const ne=ae.buttons.source;ne&&(ne.classList.toggle("is-active",H),ne.setAttribute("aria-pressed",H?"true":"false")),Object.entries(ae.buttons).forEach(([q,we])=>{q!=="source"&&(we.disabled=H)}),H||O.__latAfterEdit()},O.__latInsertImage=async j=>{if(!/^image\//.test(j.type)||b&&j.size>b)return;let H;try{H=y?await y(j):await u(j)}catch{return}H&&O.__latExec("insertHTML",p(l,`<img src="${P(H)}" alt="${P(j.name)}" style="max-width:100%">`,$,{}))},O.__latToolbarClick=j=>{const H=j.target&&j.target.closest?j.target.closest("[data-item]"):null;!H||!ce.contains(H)||H.tagName==="SELECT"||(j.preventDefault(),O.__latRun(H.getAttribute("data-item")))},O.__latToolbarDown=j=>{j.target&&j.target.closest&&j.target.closest(".lat-form__richtext-btn")&&j.preventDefault()},O.__latSelect=j=>{j.target&&j.target.getAttribute&&j.target.getAttribute("data-item")==="heading"&&(O.__latRestore(),O.__latExec("formatBlock",j.target.value))},O.__latInput=()=>{O.__latAfterEdit()},O.__latKey=j=>{if(!(j.ctrlKey||j.metaKey))return;const H=j.key.toLowerCase();H==="z"&&!j.shiftKey?(j.preventDefault(),O.__latUndo()):H==="y"||H==="z"&&j.shiftKey?(j.preventDefault(),O.__latRedo()):H==="k"&&ae.buttons.link&&(j.preventDefault(),O.__latRun("link"))},O.__latPaste=j=>{if(!h||!j.clipboardData)return;const H=j.clipboardData.getData("text/html"),ne=j.clipboardData.getData("text/plain");if(!H&&!ne)return;j.preventDefault();const q=H?p(l,H,$,{stripStyles:!0}):P(ne).replace(/\r?\n/g,"<br>");O.__latExec("insertHTML",q)},O.__latDrop=j=>{if(!h||!j.dataTransfer)return;const H=j.dataTransfer.files;if(H&&H.length){j.preventDefault();const $e=H[0];$e&&O.__latInsertImage($e);return}const ne=j.dataTransfer.getData("text/html"),q=j.dataTransfer.getData("text/plain");if(!ne&&!q)return;j.preventDefault();const we=ne?p(l,ne,$,{stripStyles:!0}):P(q).replace(/\r?\n/g,"<br>");O.__latExec("insertHTML",we)},O.__latBeforeInput=j=>{h&&(j.inputType==="insertFromDrop"||j.inputType==="insertFromPaste")&&j.preventDefault()},O.__latSelChange=()=>{l.activeElement===Q&&(O.__latSave(),O.__latRefresh())},O.__latFile=()=>{const j=ie.files&&ie.files[0];ie.value="",j&&O.__latInsertImage(j)},O.__latSourceInput=()=>{ae.sourceDirty=!0},O.__latDocClick=j=>{Z&&!Z.hidden&&!Z.contains(j.target)&&!ce.contains(j.target)&&O.__latClosePopover()},ce.addEventListener("click",O.__latToolbarClick),ce.addEventListener("mousedown",O.__latToolbarDown),ce.addEventListener("change",O.__latSelect),Q.addEventListener("input",O.__latInput),Q.addEventListener("keydown",O.__latKey),Q.addEventListener("paste",O.__latPaste),Q.addEventListener("drop",O.__latDrop),Q.addEventListener("beforeinput",O.__latBeforeInput),ie.addEventListener("change",O.__latFile),Pe.addEventListener("input",O.__latSourceInput),l.addEventListener&&(l.addEventListener("selectionchange",O.__latSelChange),l.addEventListener("mousedown",O.__latDocClick,!0)),O},read(m){const z=m.__latRt;return z?z.sourceMode?p(m.ownerDocument,z.source.value,z.allowedTags,{}):p(m.ownerDocument,z.editor.innerHTML,z.allowedTags,{}):""},write(m,z){const l=m.__latRt;if(!l)return;const g=m.ownerDocument,w=p(g,z==null?"":String(z),l.allowedTags,{});l.sourceMode&&(l.source.value=w),l.editor.innerHTML=w,l.history={stack:[w],index:0},l.lastValue=w},state(m,z){const l=m.__latRt;l&&(l.disabled=z.disabled===!0,l.readOnly=z.readOnly===!0,l.editor.contentEditable=l.disabled||l.readOnly?"false":"true",l.editor.tabIndex=l.readOnly?0:-1,l.readOnly?l.editor.setAttribute("aria-readonly","true"):l.editor.removeAttribute("aria-readonly"),l.disabled?m.setAttribute("aria-disabled","true"):m.removeAttribute("aria-disabled"),l.readOnly?m.setAttribute("aria-readonly","true"):m.removeAttribute("aria-readonly"),Object.values(l.buttons).forEach(g=>{g.disabled=l.disabled||l.readOnly}))}});function r(m,z,l,g){const w=z&&z.defaultView,x=w&&w.Event,v=x?new x("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};m.dispatchEvent(v)}}),De("packages/modules/form/controls/rating.js",function(A,J){"use strict";const F=J("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 P(p){const S=String(p??"");return Object.hasOwn(e,S)?S:"star"}function D(p,S,k){return Math.min(Math.max(p,S),k)}function I(p,S){const k=S&&S.defaultView,d=k&&k.Event,c=d?new d("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(c)}function M(p,S,k){const d=p.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("focusable","false"),d.setAttribute("aria-hidden","true"),k?d.setAttribute("fill","currentColor"):(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linejoin","round"));const c=p.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",e[S]),d.appendChild(c),d}function W(p,S,k){const d=Number(p),c=Number.isFinite(d)?d:0,t=k?Math.round(c*2)/2:Math.round(c);return D(t,0,S)}function E(p,S){return Math.min(1,Math.max(0,p-(S-1)))}F("rating",{kind:"field",build(p,S){const k=S.doc,d=p.props||{},c=Math.max(1,Math.floor(Number(p.max!=null?p.max:d.max)||L)),t=d.allowHalf===!0,s=d.allowClear!==!1,u=d.showValue===!0,r=Array.isArray(d.labels)?d.labels:null,m=P(d.icons&&d.icons.filled?d.icons.filled:d.icon),z=P(d.icons&&d.icons.empty?d.icons.empty:`${m}-outline`),l=d.size==="lg"||d.size==="sm"?d.size:"md",g=k.createElement("div");g.className=`lat-form__rating lat-form__rating--${l}`,g.setAttribute("role","slider"),g.setAttribute("aria-valuemin","0"),g.setAttribute("aria-valuemax",String(c)),g.setAttribute("aria-label",p.label!=null?String(p.label):S.t("form.rating"));const w={value:W(p.value,c,t),max:c,allowHalf:t,allowClear:s,labels:r,showValue:u,filledName:m,emptyName:z,items:[],fills:[],valueEl:null};g.__latRating=w;const x=k.createElement("span");x.className="lat-form__rating-track",x.setAttribute("aria-hidden","true");for(let v=0;v<c;v++){const f=k.createElement("span");f.className="lat-form__rating-item",f.setAttribute("data-index",String(v)),r&&r[v]!=null&&r[v]!==""&&(f.title=String(r[v])),f.appendChild(M(k,z,!1));const o=k.createElement("span");o.className="lat-form__rating-fill",o.setAttribute("aria-hidden","true"),o.appendChild(M(k,m,!0)),f.appendChild(o),x.appendChild(f),w.items.push(f),w.fills.push(o)}if(g.appendChild(x),u){const v=k.createElement("span");v.className="lat-form__rating-value",v.setAttribute("aria-hidden","true"),g.appendChild(v),w.valueEl=v}return g.__latPaint=()=>{for(let v=0;v<w.items.length;v++){const f=E(w.value,v+1);w.items[v].setAttribute("data-fill",f>=1?"full":f>0?"half":"empty"),w.fills[v].style.width=`${(f*100).toFixed(2)}%`}g.setAttribute("aria-valuenow",String(w.value)),g.setAttribute("aria-valuetext",T(w)),w.valueEl&&(w.valueEl.textContent=i(w))},g.__latSet=v=>{w.value=W(v,c,t),g.__latPaint()},g.__latClear=()=>{w.value=0,g.__latPaint()},g.__latPick=(v,f)=>{let o=v+1;if(t&&f&&Number.isFinite(f.clientX)){const _=w.items[v].getBoundingClientRect();_&&_.width>0&&(o=f.clientX-_.left<_.width/2?v+.5:v+1)}s&&o===w.value&&(o=0),g.__latSet(o),I(g,S.doc)},g.addEventListener("click",v=>{if(w.disabled||w.readOnly)return;const f=v.target&&v.target.closest?v.target.closest(".lat-form__rating-item"):null;!f||!g.contains(f)||g.__latPick(Number(f.getAttribute("data-index")),v)}),g.__latKey=v=>{if(w.disabled||w.readOnly)return;const f=t?.5:1;let o=w.value;if(v.key==="ArrowRight"||v.key==="ArrowUp")o+=f;else if(v.key==="ArrowLeft"||v.key==="ArrowDown")o-=f;else if(v.key==="Home")o=0;else if(v.key==="End")o=c;else if(v.key==="Backspace"||v.key==="Delete")o=0;else return;v.preventDefault(),g.__latSet(o),I(g,S.doc)},g.addEventListener("keydown",g.__latKey),g.__latPaint(),g},read(p){return p.__latRating?p.__latRating.value:0},write(p,S){p.__latRating&&(p.__latRating.value=W(S,p.__latRating.max,p.__latRating.allowHalf),p.__latPaint())},state(p,S){const k=p.__latRating;k&&(k.disabled=S.disabled===!0,k.readOnly=S.readOnly===!0,p.tabIndex=k.disabled?-1:0,k.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly"),k.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"))}});function T(p){const S=Math.round(p.value);return p.labels&&p.labels[S-1]&&p.value===S?p.labels[S-1]:`${p.value} of ${p.max}`}function i(p){return String(p.value)}}),De("packages/modules/form/controls/stage.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl;function L(D,I){const M=I&&I.defaultView,W=M&&M.Event,E=W?new W("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};D.dispatchEvent(E)}function e(D,I){return typeof I=="number"&&Number.isFinite(I)?Math.min(Math.max(Math.round(I),0),D.length-1):typeof I=="string"?D.indexOf(I):-1}function P(D,I,M){return`${D}, ${I+1} of ${M}`}F("stage",{kind:"field",build(D,I){const M=I.doc,W=D.props||{},E=Array.isArray(W.stages)?W.stages.map(t=>String(t)):[],T=W.clickable!==!1,i=W.showIcons!==!1,p=e(E,D.value!=null?D.value:W.current),S=e(E,W.completed),k=M.createElement("div");k.className="lat-form__stage",k.setAttribute("role","radiogroup"),k.setAttribute("aria-label",D.label!=null?String(D.label):I.t("form.stage"));const d=[],c={stages:E,value:p>=0?E[p]:null,index:p,completed:S,clickable:T,showIcons:i,disabled:!1,readOnly:!1,focus:p>=0?p:0};k.__latStage=c;for(let t=0;t<E.length;t++){const s=M.createElement(T?"button":"span");if(s.type=T?"button":void 0,s.className="lat-form__stage-step",s.setAttribute("data-index",String(t)),T&&(s.setAttribute("role","radio"),s.setAttribute("aria-label",P(E[t],t,E.length))),i){const r=M.createElementNS("http://www.w3.org/2000/svg","svg");r.setAttribute("viewBox","0 0 16 16"),r.setAttribute("aria-hidden","true"),r.setAttribute("class","lat-form__stage-check");const m=M.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d","M3 8.5l3 3 7-7"),m.setAttribute("fill","none"),m.setAttribute("stroke","currentColor"),m.setAttribute("stroke-width","2"),m.setAttribute("stroke-linecap","round"),m.setAttribute("stroke-linejoin","round"),r.appendChild(m),s.appendChild(r)}const u=M.createElement("span");u.className="lat-form__stage-label",u.textContent=E[t],s.appendChild(u),k.appendChild(s),d.push(s)}return k.__latPaint=()=>{for(let t=0;t<d.length;t++){const s=t===c.index,u=!s&&c.completed>=0&&t<=c.completed;d[t].setAttribute("data-state",s?"current":u?"done":"todo"),c.clickable&&(d[t].setAttribute("aria-checked",s?"true":"false"),d[t].tabIndex=c.disabled?-1:t===c.focus?0:-1)}},k.__latSelect=t=>{const s=t>=0&&t<E.length?E[t]:null;s!==c.value&&(c.index=t>=0&&t<E.length?t:-1,c.value=s,c.focus=c.index>=0?c.index:0,k.__latPaint(),L(k,I.doc))},k.__latKey=t=>{if(c.disabled||c.readOnly||!c.clickable||!E.length)return;let s=c.focus;if(t.key==="ArrowRight"||t.key==="ArrowDown")s+=1;else if(t.key==="ArrowLeft"||t.key==="ArrowUp")s-=1;else if(t.key==="Home")s=0;else if(t.key==="End")s=E.length-1;else return;t.preventDefault();const u=Math.min(Math.max(s,0),E.length-1);c.focus=u,d[u].focus(),k.__latSelect(u)},T&&(k.addEventListener("click",t=>{if(c.disabled||c.readOnly)return;const s=t.target&&t.target.closest?t.target.closest(".lat-form__stage-step"):null;if(!s||!k.contains(s))return;const u=Number(s.getAttribute("data-index"));c.focus=u,k.__latSelect(u)}),k.addEventListener("keydown",k.__latKey)),k.__latPaint(),k},read(D){return D.__latStage?D.__latStage.value:null},write(D,I){const M=D.__latStage;if(!M)return;const W=I==null?-1:e(M.stages,I);M.index=W,M.value=W>=0?M.stages[W]:null,M.focus=W>=0?W:0,D.__latPaint()},state(D,I){const M=D.__latStage;M&&(M.disabled=I.disabled===!0,M.readOnly=I.readOnly===!0,M.readOnly?D.setAttribute("aria-readonly","true"):D.removeAttribute("aria-readonly"),M.disabled?D.setAttribute("aria-disabled","true"):D.removeAttribute("aria-disabled"),D.__latPaint())}})}),De("packages/modules/form/controls/chips.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L="M3 8.5l3 3 7-7";function e(I,M){const W=M&&M.defaultView,E=W&&W.Event,T=E?new E("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};I.dispatchEvent(T)}function P(I){if(typeof I=="string")return{value:I,label:I,icon:null,disabled:!1};if(I!==null&&typeof I=="object"){const M=I.value===void 0?String(I.label):I.value;return{value:M,label:I.label==null?String(M):String(I.label),icon:typeof I.icon=="string"&&I.icon!==""?I.icon:null,disabled:I.disabled===!0}}return{value:I,label:String(I),icon:null,disabled:!1}}function D(I,M,W){const E=I.createElementNS("http://www.w3.org/2000/svg","svg");E.setAttribute("viewBox","0 0 16 16"),E.setAttribute("focusable","false"),E.setAttribute("aria-hidden","true");const T=I.createElementNS("http://www.w3.org/2000/svg","path");return T.setAttribute("d",M),W?T.setAttribute("fill","currentColor"):(T.setAttribute("fill","none"),T.setAttribute("stroke","currentColor"),T.setAttribute("stroke-width","2"),T.setAttribute("stroke-linecap","round"),T.setAttribute("stroke-linejoin","round")),E.appendChild(T),E}F("chips",{kind:"field",build(I,M){const W=M.doc,E=I.props||{},T=(Array.isArray(I.options)?I.options:[]).map(P),i=E.multiple===!0,p=E.allowEmpty===!0,S=E.wrap!==!1,k=I.max!=null&&Number.isFinite(Number(I.max))?Number(I.max):null,d=W.createElement("div");d.className=`lat-form__chips${S?"":" lat-form__chips--scroll"}`,d.setAttribute("role",i?"group":"radiogroup"),d.setAttribute("aria-label",I.label!=null?String(I.label):M.t("form.chips"));const c=[],t=new Set,s={options:T,multiple:i,allowEmpty:p,wrap:S,max:k,selected:t,disabled:!1,readOnly:!1,t:M.t};d.__latChips=s;for(let r=0;r<T.length;r++){const m=T[r],z=W.createElement("button");if(z.type="button",z.className="lat-form__chip",z.setAttribute("data-index",String(r)),z.disabled=m.disabled,i||z.setAttribute("role","radio"),m.icon){const g=D(W,m.icon,!0);g.setAttribute("class","lat-form__chip-icon"),z.appendChild(g)}const l=W.createElement("span");if(l.className="lat-form__chip-label",l.textContent=m.label,z.appendChild(l),i){const g=D(W,L,!1);g.setAttribute("class","lat-form__chip-check"),z.appendChild(g)}d.appendChild(z),c.push(z)}s.buttons=c,d.__latPaint=()=>{for(let r=0;r<c.length;r++){const m=T[r],z=t.has(m.value),l=c[r];l.disabled=m.disabled||s.disabled,i?(l.setAttribute("aria-pressed",z?"true":"false"),l.tabIndex=s.disabled?-1:0):(l.setAttribute("aria-checked",z?"true":"false"),l.tabIndex=s.disabled?-1:z?0:-1)}},d.__latValue=()=>{if(i)return T.filter(r=>t.has(r.value)).map(r=>r.value);for(const r of T)if(t.has(r.value))return r.value;return null},d.__latToggle=r=>{const m=T[r];if(!(!m||m.disabled||s.disabled||s.readOnly)){if(i)if(t.has(m.value))t.delete(m.value);else{if(k!=null&&t.size>=k)return;t.add(m.value)}else if(t.has(m.value))if(s.allowEmpty)t.clear();else return;else t.clear(),t.add(m.value);d.__latPaint(),e(d,M.doc)}},d.addEventListener("click",r=>{const m=r.target&&r.target.closest?r.target.closest(".lat-form__chip"):null;!m||!d.contains(m)||d.__latToggle(Number(m.getAttribute("data-index")))}),d.__latKey=r=>{if(s.multiple||s.disabled||s.readOnly||!c.length)return;let m=-1;for(let w=0;w<c.length;w++)if(t.has(T[w].value)){m=w;break}let z=m;if(r.key==="ArrowRight"||r.key==="ArrowDown")z=m+1;else if(r.key==="ArrowLeft"||r.key==="ArrowUp")z=m-1;else if(r.key==="Home")z=0;else if(r.key==="End")z=T.length-1;else return;r.preventDefault();const l=r.key==="ArrowLeft"||r.key==="ArrowUp"?-1:1;let g=z;for(;g>=0&&g<T.length&&T[g].disabled;)g+=l;g<0||g>=T.length||(t.clear(),t.add(T[g].value),d.__latPaint(),c[g].focus(),e(d,M.doc))},d.addEventListener("keydown",d.__latKey);const u=I.value;if(i){const r=Array.isArray(u)?u:[];for(const m of r)T.some(z=>z.value===m)&&t.add(m)}else if(u!=null&&T.some(r=>r.value===u))t.add(u);else if(!p){const r=T.find(m=>!m.disabled)||T[0];r&&t.add(r.value)}return d.__latPaint(),d},read(I){return I.__latChips?I.__latValue():null},write(I,M){const W=I.__latChips;if(W){if(W.selected.clear(),W.multiple){const E=Array.isArray(M)?M:[];for(const T of E)W.options.some(i=>i.value===T)&&W.selected.add(T)}else if(M!=null&&W.options.some(E=>E.value===M))W.selected.add(M);else if(!W.allowEmpty){const E=W.options.find(T=>!T.disabled)||W.options[0];E&&W.selected.add(E.value)}I.__latPaint()}},validate(I,M,W){const E=I.__latChips;if(!E||!E.multiple)return null;const T=Array.isArray(W)?W.length:0,i=M.min!=null&&Number.isFinite(Number(M.min))?Number(M.min):null,p=M.max!=null&&Number.isFinite(Number(M.max))?Number(M.max):null;return i!=null&&T<i?{code:"min",message:E.t("form.chips.min",{min:String(i)})}:p!=null&&T>p?{code:"max",message:E.t("form.chips.max",{max:String(p)})}:null},state(I,M){const W=I.__latChips;W&&(W.disabled=M.disabled===!0,W.readOnly=M.readOnly===!0,W.readOnly?I.setAttribute("aria-readonly","true"):I.removeAttribute("aria-readonly"),W.disabled?I.setAttribute("aria-disabled","true"):I.removeAttribute("aria-disabled"),I.__latPaint())}})}),De("packages/modules/form/controls/otp.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=6;function e(p){const S=Math.floor(Number(p));return Number.isFinite(S)&&S>=1?S:L}function P(p){return p==="alphanumeric"?"alphanumeric":"numeric"}function D(p,S){return S==="numeric"?/^[0-9]$/.test(p):/^[A-Za-z0-9]$/.test(p)}function I(p,S){for(let k=p.length-1;k>=0;k-=1)if(D(p[k],S))return p[k];return""}function M(p,S,k){return(p==null?"":String(p)).replace(/[\s-]/g,"").split("").filter(c=>D(c,S)).slice(0,k)}function W(p,S,k){const d=S&&S.defaultView,c=d&&d.Event,t=c?new c(k,{bubbles:!0}):{type:k,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};p.dispatchEvent(t)}function E(p,S){const k=M(S,p.mode,p.length);for(let d=0;d<p.length;d+=1)p.boxes[d].value=k[d]||""}function T(p){p.complete=p.boxes.every(S=>S.value!=="")}function i(p){return p.boxes.map(S=>S.value).join("")}F("otp",{kind:"field",domEvents:["complete"],build(p,S){const k=S.doc,d=p.props||{},c=e(d.length),t=P(p.mode!=null?p.mode:d.mode),s=d.mask===!0,u=k.createElement("div");u.className="lat-form__otp",u.setAttribute("role","group"),u.setAttribute("aria-label",p.label!=null&&p.label!==""?String(p.label):S.t("form.otp.label"));const r=[],m={length:c,mode:t,mask:s,boxes:r,complete:!1,disabled:!1,readOnly:!1};u.__latOtp=m;for(let l=0;l<c;l+=1){const g=k.createElement("input");g.type="text",g.className=`lat-form__otp-input${s?" lat-form__otp-input--masked":""}`,g.setAttribute("inputmode",t==="numeric"?"numeric":"text"),g.setAttribute("pattern",t==="numeric"?"[0-9]":"[A-Za-z0-9]"),g.setAttribute("maxlength","1"),g.setAttribute("aria-label",S.t("form.otp.digit",{n:l+1,total:c})),g.autocomplete=l===0?"one-time-code":"off",r.push(g),u.appendChild(g)}const z=()=>{if(u.__latPublishing)return;u.__latPublishing=!0;try{W(u,k,"input"),W(u,k,"change")}finally{u.__latPublishing=!1}const l=r.every(g=>g.value!=="");l&&!m.complete?(m.complete=!0,W(u,k,"complete")):!l&&m.complete&&(m.complete=!1)};return u.addEventListener("input",l=>{if(u.__latPublishing)return;l.stopImmediatePropagation();const g=l.target;if(!r.includes(g))return;g.value=I(g.value,t);const w=r.indexOf(g);g.value!==""&&w<c-1&&r[w+1].focus(),z()}),u.addEventListener("change",l=>{u.__latPublishing||l.stopImmediatePropagation()}),u.addEventListener("keydown",l=>{if(m.disabled||m.readOnly)return;const g=l.target;if(!r.includes(g))return;const w=r.indexOf(g);l.key==="Backspace"?(l.preventDefault(),g.value!==""?g.value="":w>0&&(r[w-1].value="",r[w-1].focus()),z()):l.key==="ArrowLeft"&&w>0?(l.preventDefault(),r[w-1].focus()):l.key==="ArrowRight"&&w<c-1?(l.preventDefault(),r[w+1].focus()):l.key.length===1&&!D(l.key,t)&&!l.ctrlKey&&!l.metaKey&&!l.altKey&&l.preventDefault()}),u.addEventListener("paste",l=>{if(m.disabled||m.readOnly)return;l.preventDefault();const g=l.clipboardData&&typeof l.clipboardData.getData=="function"?l.clipboardData.getData("text"):"";E(m,g),(r.find(x=>x.value==="")||r[c-1]).focus(),z()}),u.focus=()=>{const l=r.find(g=>!g.disabled&&!g.readOnly&&g.value==="")||r[0];l&&l.focus()},u.blur=()=>{for(const l of r)l.blur()},E(m,p.value),T(m),u},read(p){return p.__latOtp?i(p.__latOtp):""},write(p,S){p.__latOtp&&(E(p.__latOtp,S),T(p.__latOtp))},state(p,S){const k=p.__latOtp;if(k){k.disabled=S.disabled===!0,k.readOnly=S.readOnly===!0;for(const d of k.boxes)d.disabled=k.disabled,d.readOnly=k.readOnly;k.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"),k.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly")}}})}),De("packages/modules/form/controls/color.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/swatches.js"),I=D.DEFAULT_PALETTE,M=D.DEFAULT_GRAY_SHADES,W=D.buildSwatchGrid,E=D.hslToHex,T=J("packages/dom/src/autofill.js"),i=T.noHistory,p=T.applyAutocomplete,S=10,k=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,d=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function c(j){return j}const t=new Set;function s(j,H){t.has(j)||(t.add(j),console.warn("[lattice]",H))}function u(j){if(typeof j!="string")return null;const H=j.trim();if(!k.test(H))return null;const ne=H.replace(/^#/,"").toLowerCase();return`#${ne.length===3?ne.split("").map(we=>we+we).join(""):ne}`}function r(j){if(typeof j!="string")return null;const H=u(j);if(H)return H;const ne=d.exec(j.trim());if(!ne)return null;const q=$e=>Math.max(0,Math.min(255,Number($e))),we=$e=>q($e).toString(16).padStart(2,"0");return`#${we(ne[1])}${we(ne[2])}${we(ne[3])}`}function m(j){const H=u(j);return H?{r:parseInt(H.slice(1,3),16),g:parseInt(H.slice(3,5),16),b:parseInt(H.slice(5,7),16)}:null}function z(j,H,ne){const q=we=>Math.max(0,Math.min(255,Math.round(we))).toString(16).padStart(2,"0");return`#${q(j)}${q(H)}${q(ne)}`}function l(j,H,ne){const q=j/255,we=H/255,$e=ne/255,C=Math.max(q,we,$e),K=Math.min(q,we,$e),G=(C+K)/2,B=C-K;if(B===0)return{h:0,s:0,l:G};const te=G>.5?B/(2-C-K):B/(C+K);let ge;return C===q?ge=(we-$e)/B%6:C===we?ge=($e-q)/B+2:ge=(q-we)/B+4,ge*=60,ge<0&&(ge+=360),{h:ge,s:te,l:G}}function g(j){return E(j.h,j.s,j.l)}function w(j,H,ne){const q=j.ownerDocument,we=q&&q.defaultView,$e=we&&typeof we.CustomEvent=="function"?we.CustomEvent:null,C=$e?new $e(H,{bubbles:!0,detail:ne}):{type:H,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:ne,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};j.dispatchEvent(C)}function x(j){const H=j.props&&j.props.palette;return Array.isArray(H)&&H.length?H:I}function v(j){return!(j.props&&j.props.editable===!1)}function f(j){return!!(j.props&&j.props.clearable===!0)}function o(j){return!!(j.props&&j.props.pickerOnly===!0)}function _(j){return!(j.props&&j.props.grayShades===!1)}function b(j){const H=j.props&&j.props.icon;return typeof H=="string"&&H!==""?H:null}function y(j){const H=j.props&&j.props.customColors;return Array.isArray(H)?[...new Set(H.map(r).filter(Boolean))].slice(0,S):[]}function h(j){const H=u(j.__input.value);j.__swatchBtn.style.background=H||"transparent",j.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!H),j.__clearBtn&&(j.__clearBtn.hidden=j.__input.value.trim()==="")}function $(j,H){j.__value=H||null,j.__input.value=H||"",j.__lastCommittedText=H||"",h(j)}function ee(j){if(v(j.__item)===!1)return;const H=j.__input.value.trim();if(H===j.__lastCommittedText)return;const ne=u(H);(ne||H==="")&&(j.__value=ne,j.__lastCommittedText=H),w(j,"change")}function O(j,H){$(j,H),w(j,"change")}function ae(j,H){const ne=j.__customColors,q=ne.filter($e=>$e!==H),we=[H,...q].slice(0,S);we.length===ne.length&&we.every(($e,C)=>$e===ne[C])||(j.__customColors=we,w(j,"customColorsChange",{colors:we}))}function se(j){const H=j.__popover,ne=j.ownerDocument,q=ne&&ne.defaultView,we=j.__field.getBoundingClientRect(),$e=q?q.innerHeight:0,C=H.offsetHeight||0;$e-we.bottom<C+4&&we.top>C+4?H.classList.add("lat-form__color-popover--above"):H.classList.remove("lat-form__color-popover--above")}function ce(j,H,ne,q){let we=Math.max(0,Math.min(j.length-1,H.row+ne)),$e=H.col+q;if(q!==0){const C=j[we].length;$e=Math.max(0,Math.min(C-1,$e))}else $e=Math.max(0,Math.min(j[we].length-1,$e));return{row:we,col:$e}}function Z(j){const H=j.__item,ne=j.ownerDocument,q=j.__popover;for(;q.firstChild;)q.removeChild(q.firstChild);const we=[...x(H)];_(H)&&we.push([...M]),j.__customColors.length&&we.push([...j.__customColors]);const $e=j.__value,{el:C,rows:K}=W(ne,we,{isSelected:B=>B===$e,onPick:B=>{O(j,B),ie(j,{restoreFocus:!0})}});C.classList.add("lat-form__color-grid"),q.appendChild(C);for(const B of K)for(const te of B){if(te.getAttribute("aria-selected")!=="true")continue;const ge=ne.createElementNS("http://www.w3.org/2000/svg","svg");ge.setAttribute("viewBox","0 0 16 16"),ge.setAttribute("class","lat-form__color-check"),ge.setAttribute("aria-hidden","true");const oe=ne.createElementNS("http://www.w3.org/2000/svg","path");oe.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),oe.setAttribute("fill","none"),oe.setAttribute("stroke","#fff"),oe.setAttribute("stroke-width","2.6"),oe.setAttribute("stroke-linecap","round"),oe.setAttribute("stroke-linejoin","round"),oe.setAttribute("paint-order","stroke"),ge.appendChild(oe);const fe=ne.createElementNS("http://www.w3.org/2000/svg","path");fe.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),fe.setAttribute("fill","none"),fe.setAttribute("stroke","#000"),fe.setAttribute("stroke-width","4.2"),fe.setAttribute("stroke-linecap","round"),fe.setAttribute("stroke-linejoin","round"),fe.setAttribute("opacity","0.35"),ge.insertBefore(fe,oe),te.appendChild(ge)}let G={row:0,col:0};e:for(let B=0;B<K.length;B++)for(let te=0;te<K[B].length;te++)if(K[B][te].getAttribute("aria-selected")==="true"){G={row:B,col:te};break e}for(const B of K)for(const te of B)te.tabIndex=-1;if(K[G.row]&&K[G.row][G.col]&&(K[G.row][G.col].tabIndex=0),C.addEventListener("keydown",B=>{if(B.key==="Enter"||B.key===" "){B.preventDefault(),B.stopPropagation(),K[G.row][G.col].click();return}const ge={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[B.key];if(!ge)return;B.preventDefault();for(const fe of K)for(const ve of fe)ve.tabIndex=-1;G=ce(K,G,ge[0],ge[1]);const oe=K[G.row][G.col];oe.tabIndex=0,oe.focus()}),!o(H)){const B=ne.createElement("button");B.type="button",B.className="lat-form__color-custombtn",B.textContent=j.__t("form.color.customColor"),B.addEventListener("click",()=>{Q(j,$e)}),q.appendChild(B)}se(j)}function Q(j,H){const ne=j.__item,q=j.ownerDocument,we=j.__popover;for(;we.firstChild;)we.removeChild(we.firstChild);const $e=m(H)||{r:0,g:0,b:0},C=l($e.r,$e.g,$e.b),K=q.createElement("div");K.className="lat-form__color-picker",we.appendChild(K);const G=q.createElement("div");G.className="lat-form__color-plane",G.setAttribute("role","slider"),G.setAttribute("aria-label",j.__t("form.color.saturationLightness")),G.tabIndex=0;const B=q.createElement("div");B.className="lat-form__color-plane-thumb",G.appendChild(B),K.appendChild(G);const te=q.createElement("div");te.className="lat-form__color-hue",te.setAttribute("role","slider"),te.setAttribute("aria-label",j.__t("form.color.hue")),te.tabIndex=0;const ge=q.createElement("div");ge.className="lat-form__color-hue-thumb",te.appendChild(ge),K.appendChild(te);const oe=q.createElement("div");oe.className="lat-form__color-fields";const fe=q.createElement("input");fe.type="text",fe.className="lat-form__color-hexfield",fe.setAttribute("aria-label",j.__t("form.color.hexLabel"));const ve=q.createElement("input");ve.type="number",ve.min="0",ve.max="255",ve.className="lat-form__color-rgbfield",ve.setAttribute("aria-label",j.__t("form.color.redLabel"));const me=q.createElement("input");me.type="number",me.min="0",me.max="255",me.className="lat-form__color-rgbfield",me.setAttribute("aria-label",j.__t("form.color.greenLabel"));const X=q.createElement("input");X.type="number",X.min="0",X.max="255",X.className="lat-form__color-rgbfield",X.setAttribute("aria-label",j.__t("form.color.blueLabel")),oe.appendChild(fe),oe.appendChild(ve),oe.appendChild(me),oe.appendChild(X),K.appendChild(oe);const de=q.createElement("div");de.className="lat-form__color-previewrow";const pe=q.createElement("span");pe.className="lat-form__color-preview",de.appendChild(pe),K.appendChild(de);const Y=q.createElement("div");if(Y.className="lat-form__color-actions",!o(ne)){const V=q.createElement("button");V.type="button",V.className="lat-form__color-back",V.textContent=j.__t("form.back"),V.addEventListener("click",()=>{Z(j)}),Y.appendChild(V)}const re=q.createElement("button");re.type="button",re.className="lat-form__color-select",re.textContent=j.__t("form.color.select"),Y.appendChild(re),K.appendChild(Y);const N=()=>{const V=g(C),le=m(V);G.style.setProperty("--lat-color-hue",String(C.h)),B.style.left=`${C.s*100}%`,B.style.top=`${(1-C.l)*100}%`,ge.style.left=`${C.h/360*100}%`,fe.value=V,ve.value=String(le.r),me.value=String(le.g),X.value=String(le.b),pe.style.background=V,G.setAttribute("aria-valuetext",V),te.setAttribute("aria-valuenow",String(Math.round(C.h)))};N();const ue=(V,le,Ae)=>{const he=V.getBoundingClientRect();if(!he.width||!he.height)return;const je=Math.max(0,Math.min(1,(le.clientX-he.left)/he.width)),ke=Math.max(0,Math.min(1,(le.clientY-he.top)/he.height));Ae(je,ke)},ye=(V,le)=>{let Ae=!1;V.addEventListener("pointerdown",he=>{Ae=!0,ue(V,he,le)}),q.addEventListener("pointermove",he=>{Ae&&ue(V,he,le)}),q.addEventListener("pointerup",()=>{Ae=!1})};ye(G,(V,le)=>{C.s=V,C.l=1-le,N()}),ye(te,V=>{C.h=V*360,N()}),G.addEventListener("keydown",V=>{if(V.key==="Enter"){V.preventDefault(),V.stopPropagation(),a();return}const le=V.shiftKey?.1:.02;if(V.key==="ArrowLeft")C.s=Math.max(0,C.s-le);else if(V.key==="ArrowRight")C.s=Math.min(1,C.s+le);else if(V.key==="ArrowUp")C.l=Math.min(1,C.l+le);else if(V.key==="ArrowDown")C.l=Math.max(0,C.l-le);else return;V.preventDefault(),N()}),te.addEventListener("keydown",V=>{if(V.key==="Enter"){V.preventDefault(),V.stopPropagation(),a();return}const le=V.shiftKey?10:2;if(V.key==="ArrowLeft"||V.key==="ArrowDown")C.h=(C.h-le+360)%360;else if(V.key==="ArrowRight"||V.key==="ArrowUp")C.h=(C.h+le)%360;else return;V.preventDefault(),N()});const R=()=>{const V=u(fe.value);if(!V){fe.value=g(C);return}const le=m(V);Object.assign(C,l(le.r,le.g,le.b)),N()};fe.addEventListener("change",R);const n=()=>{const V=le=>Math.max(0,Math.min(255,Number(le)||0));Object.assign(C,l(V(ve.value),V(me.value),V(X.value))),N()};ve.addEventListener("change",n),me.addEventListener("change",n),X.addEventListener("change",n);const a=()=>{const V=g(C);O(j,V),ae(j,V),ie(j,{restoreFocus:!0})};re.addEventListener("click",a);const U=V=>le=>{le.key==="Enter"&&(le.preventDefault(),le.stopPropagation(),V(),a())};fe.addEventListener("keydown",U(R)),ve.addEventListener("keydown",U(n)),me.addEventListener("keydown",U(n)),X.addEventListener("keydown",U(n)),se(j)}function Pe(j){j.__open||j.__item.disabled===!0||j.__item.readOnly===!0||(j.__open=!0,j.__popover.hidden=!1,o(j.__item)||j.__item.mode==="picker"?Q(j,j.__value):Z(j))}function ie(j,H={}){if(j.__open){for(j.__open=!1,j.__popover.hidden=!0,j.__popover.classList.remove("lat-form__color-popover--above");j.__popover.firstChild;)j.__popover.removeChild(j.__popover.firstChild);H.restoreFocus&&j.__input.focus()}}F("color",{kind:"field",domEvents:["customColorsChange"],build(j,H){const ne=H.doc;P(ne);const q=ne.createElement("div");q.className="lat-form__color",q.__item=j,q.__t=H.t||c,q.__open=!1,q.__value=r(j.value),q.__customColors=y(j);const we=ne.createElement("div");we.className="lat-form__color-field",q.__field=we;const $e=ne.createElement("button");$e.type="button",$e.className="lat-form__color-swatch",$e.setAttribute("aria-label",q.__t("form.color.open")),q.__swatchBtn=$e;const C=ne.createElement("input");C.type="text",C.className="lat-form__color-input",j.name&&(C.name=j.name),j.placeholder!=null&&(C.placeholder=String(j.placeholder)),j.label!=null&&j.label!==""&&C.setAttribute("aria-label",String(j.label)),i(C),p(C,j.autocomplete),C.readOnly=!v(j),q.__input=C,we.appendChild($e),we.appendChild(C);let K=null;if(f(j)){K=ne.createElement("button"),K.type="button",K.className="lat-form__color-clear",K.setAttribute("aria-label",q.__t("form.color.clear"));const me=e(ne,"close");me&&K.appendChild(me),K.addEventListener("click",()=>{O(q,null),C.focus()}),we.appendChild(K)}q.__clearBtn=K;const G=ne.createElement("button");G.type="button",G.className="lat-form__color-toggle",G.setAttribute("aria-label",q.__t("form.color.open"));const B=b(j),te=B?e(ne,B):e(ne,"chevronDown");te&&G.appendChild(te),q.__toggleBtn=G,we.appendChild(G),q.appendChild(we);const ge=ne.createElement("div");ge.className="lat-form__color-popover",ge.hidden=!0,q.__popover=ge,q.appendChild(ge),$(q,q.__value);const oe=()=>{q.__open?ie(q):Pe(q)};$e.addEventListener("click",oe),G.addEventListener("click",oe),C.addEventListener("input",()=>{h(q)}),C.addEventListener("change",me=>{me.stopPropagation(),ee(q)}),C.addEventListener("keydown",me=>{me.key==="Enter"?(me.preventDefault(),ee(q)):me.key==="Escape"&&q.__open?ie(q):me.altKey&&me.key==="ArrowDown"&&(me.preventDefault(),Pe(q))}),q.addEventListener("keydown",me=>{me.target!==C&&(me.key==="Enter"&&!q.__open||me.altKey&&me.key==="ArrowDown"?(me.preventDefault(),Pe(q)):me.key==="Escape"&&q.__open&&(me.preventDefault(),ie(q,{restoreFocus:!0})))});const fe=me=>{!q.__open||q.contains(me.target)||ie(q)},ve=me=>{q.__open&&(me.relatedTarget&&q.contains(me.relatedTarget)||ie(q))};return ne.addEventListener("pointerdown",fe),q.addEventListener("focusout",ve),Array.isArray(H.disposers)&&H.disposers.push(()=>{ne.removeEventListener("pointerdown",fe),q.removeEventListener("focusout",ve)}),q},read(j){const H=j.__input.value.trim();return H===""?null:u(H)||H},write(j,H){if(H==null||H===""){j.__value=null,$(j,null);return}const ne=r(H);if(!ne){s("form.color.setValue",`form.color: "${String(H)}" is not a colour (expected hex or a red-green-blue triplet); the value is unchanged.`);return}j.__value=ne,$(j,ne)},state(j,H){const ne=H.disabled===!0||H.readOnly===!0;j.__input.disabled=H.disabled===!0,j.__input.readOnly=H.readOnly===!0||!v(H),j.__swatchBtn.disabled=ne,j.__toggleBtn.disabled=ne,j.__clearBtn&&(j.__clearBtn.disabled=ne),ne&&ie(j)},validate(j,H,ne){return ne==null||typeof ne=="string"&&/^#[0-9a-f]{6}$/.test(ne)?!0:typeof H.errorMessage=="string"&&H.errorMessage!==""?H.errorMessage:j.__t("form.color.invalidHex")},focus(j){j.__input.focus()}})}),De("packages/dom/src/cell/renderers/barcode/support.js",function(A,J){"use strict";Object.defineProperty(A,"expandWidths",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"joinCharacters",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"buildPattern",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"mod10Weighted",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"MOD43_ORDER",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"mod43Check",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"weightedModulo",{enumerable:!0,get:function(){return I}});function _e(M){const W=[];for(let E=0;E<M.length;E++){const T=E%2===0?1:0;for(let i=0;i<M[E];i++)W.push(T)}return W}function F(M,W){const E=[];return M.forEach((T,i)=>{if(i>0&&W>0)for(let p=0;p<W;p++)E.push(0);E.push(...T)}),E}function L(M,W){return F(M.map(_e),W)}function e(M,W=3){let E=0,T=W;for(let i=M.length-1;i>=0;i--)E+=Number(M[i])*T,T=T===3?1:3;return(10-E%10)%10}const P="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function D(M){let W=0;for(const E of M){const T=P.indexOf(E);if(T<0)return null;W+=T}return P[W%43]}function I(M,W,E=11){let T=0,i=1;for(let p=M.length-1;p>=0;p--)T+=M[p]*i,i=i===W?1:i+1;return T%E}}),De("packages/dom/src/cell/renderers/barcode/code39.js",function(A,J){"use strict";Object.defineProperty(A,"toExtendedSymbols",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"decodeExtendedSymbols",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"encodeCode39",{enumerable:!0,get:function(){return k}});const _e=J("packages/dom/src/cell/renderers/barcode/support.js"),F=_e.buildPattern,L=_e.mod43Check,e=_e.MOD43_ORDER,P=2,D=["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"],I="010010100";function M(d){return d.split("").map(c=>c==="1"?P:1)}function W(d){const c=e.indexOf(d);return c<0?null:M(D[c])}function E(){const d=new Map,c=t=>String.fromCharCode(65+t);for(let t=1;t<=26;t++)d.set(t,`$${c(t-1)}`);d.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((t,s)=>d.set(27+s,t));for(let t=33;t<=44;t++)d.set(t,`/${c(t-33)}`);d.set(47,"/O"),d.set(58,"/Z");for(let t=59;t<=63;t++)d.set(t,`%${c(t-59+5)}`);d.set(64,"%V");for(let t=91;t<=95;t++)d.set(t,`%${c(t-91+10)}`);d.set(96,"%W");for(let t=97;t<=122;t++)d.set(t,`+${c(t-97)}`);for(let t=123;t<=127;t++)d.set(t,`%${c(t-123+15)}`);return d}const T=E(),i=new Map([...T].map(([d,c])=>[c,d]));function p(d){const c=[];for(const t of d){const s=t.codePointAt(0);if(s>127)return null;if(e.includes(t)){c.push(t);continue}const u=T.get(s);if(!u)return null;c.push(u[0],u[1])}return c}function S(d){let c="";for(let t=0;t<d.length;t++){const s=d[t]+(d[t+1]??"");if(i.has(s)){c+=String.fromCharCode(i.get(s)),t++;continue}c+=d[t]}return c}function k(d,c={}){const t=d==null?"":String(d);if(t==="")return{ok:!1,reason:"empty"};const s=c.extended?p(t):t.split("");if(!s)return{ok:!1,reason:"charset"};const u=[M(I)];for(const r of s){const m=W(r);if(!m)return{ok:!1,reason:"charset"};u.push(m)}if(c.checkDigit){const r=L(s.join(""));return r==null?{ok:!1,reason:"charset"}:(u.push(W(r)),u.push(M(I)),{ok:!0,modules:F(u,1),text:`${t}${r}`})}return u.push(M(I)),{ok:!0,modules:F(u,1),text:t}}}),De("packages/dom/src/cell/renderers/barcode/ean.js",function(A,J){"use strict";Object.defineProperty(A,"L_PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"G_PATTERNS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"R_PATTERNS",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"EAN13_PARITY",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"encodeEan13",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"encodeEan8",{enumerable:!0,get:function(){return E}});const F=J("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"],P=L.map(T=>T.split("").map(i=>i==="1"?"0":"1").join("")),D=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function I(T){return T.split("").map(Number)}function M(T,i){const p=T==null?"":String(T);if(!/^\d+$/.test(p))return null;if(p.length===i)return{digits:p,check:F(p)};if(p.length===i+1){const S=p.slice(0,i),k=Number(p[i]),d=F(S);return k!==d?null:{digits:S,check:d}}return null}function W(T){const i=M(T,12);if(!i)return{ok:!1,reason:"checkDigit"};const p=i.digits+i.check,S=D[Number(p[0])],k=p.slice(1,7).split("").map((t,s)=>(S[s]==="L"?L:e)[Number(t)]),d=p.slice(7).split("").map(t=>P[Number(t)]);return{ok:!0,modules:[...I("101"),...k.flatMap(I),...I("01010"),...d.flatMap(I),...I("101")],text:p}}function E(T){const i=M(T,7);if(!i)return{ok:!1,reason:"checkDigit"};const p=i.digits+i.check,S=p.slice(0,4).split("").map(c=>L[Number(c)]),k=p.slice(4).split("").map(c=>P[Number(c)]);return{ok:!0,modules:[...I("101"),...S.flatMap(I),...I("01010"),...k.flatMap(I),...I("101")],text:p}}}),De("packages/dom/src/cell/renderers/barcode/upc.js",function(A,J){"use strict";Object.defineProperty(A,"encodeUpcA",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"encodeUpcE",{enumerable:!0,get:function(){return T}});const _e=J("packages/dom/src/cell/renderers/barcode/ean.js"),F=_e.L_PATTERNS,L=_e.G_PATTERNS,e=_e.encodeEan13,D=J("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function I(i){return i.split("").map(Number)}function M(i){const p=i==null?"":String(i);if(!/^\d{11,12}$/.test(p))return{ok:!1,reason:"checkDigit"};const S=e(`0${p}`);return S.ok?{ok:!0,modules:S.modules,text:S.text.slice(1)}:S}function W(i,p){const S=i.split(""),k=S[5];return k<="2"?`${S[0]}${S[1]}${k}0000${S[2]}${S[3]}${S[4]}`:k==="3"?`${S[0]}${S[1]}${S[2]}00000${S[3]}${S[4]}`:k==="4"?`${S[0]}${S[1]}${S[2]}${S[3]}00000${S[4]}`:`${S[0]}${S[1]}${S[2]}${S[3]}${S[4]}0000${k}`}const E={0:["EEEOOO","OOOEEE"],1:["EEOEOO","OOEOEE"],2:["EEOOEO","OOEEOE"],3:["EEOOOE","OOEEEO"],4:["EOEEOO","OEOOEE"],5:["EOOEEO","OEEOOE"],6:["EOOOEE","OEEEOO"],7:["EOEOEO","OEOEOE"],8:["EOEOOE","OEOEEO"],9:["EOOEOE","OEEOEO"]};function T(i){const p=i==null?"":String(i);if(!/^\d{6,8}$/.test(p))return{ok:!1,reason:"checkDigit"};let S,k,d=null;if(p.length===6?(S="0",k=p):p.length===7?(S=p[0],k=p.slice(1)):(S=p[0],k=p.slice(1,7),d=p[7]),S!=="0"&&S!=="1")return{ok:!1,reason:"checkDigit"};const c=W(k,S),t=D(S+c);if(d!=null&&Number(d)!==t)return{ok:!1,reason:"checkDigit"};const u=E[t][Number(S)].split("").map((m,z)=>(m==="O"?F:L)[Number(k[z])]);return{ok:!0,modules:[...I("101"),...u.flatMap(I),...I("010101")],text:`${S}${k}${t}`}}}),De("packages/dom/src/cell/renderers/barcode/code93.js",function(A,J){"use strict";Object.defineProperty(A,"toExtendedSymbols",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"decodeExtendedSymbols",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"encodeCode93",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"BASE_ORDER",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"SHIFT_ORDER",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"START_STOP",{enumerable:!0,get:function(){return e}});const _e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",F=["($)","(%)","(/)","(+)"],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 P(d){const c=[];for(let t=0;t<d.length;t++){const s=t%2===0?1:0;for(let u=0;u<d[t];u++)c.push(s)}return c}function D(d){return L[d]}function I(d){return _e.indexOf(d)}function M(){const d=new Map,c=43,t=44,s=45,u=46,r=m=>10+m;for(let m=1;m<=26;m++)d.set(m,[c,r(m-1)]);d.set(0,[t,r(20)]);for(let m=27;m<=31;m++)d.set(m,[t,r(m-27)]);for(let m=33;m<=44;m++)d.set(m,[s,r(m-33)]);d.set(47,[s,r(14)]),d.set(58,[s,r(25)]);for(let m=59;m<=63;m++)d.set(m,[t,r(m-59+5)]);d.set(64,[t,r(21)]);for(let m=91;m<=95;m++)d.set(m,[t,r(m-91+10)]);d.set(96,[t,r(22)]);for(let m=97;m<=122;m++)d.set(m,[u,r(m-97)]);for(let m=123;m<=127;m++)d.set(m,[t,r(m-123+15)]);return d}const W=M(),E=new Map([...W].map(([d,c])=>[c.join(","),d]));function T(d){const c=[];for(const t of d){const s=t.codePointAt(0);if(s>127)return null;const u=I(t);if(u>=0){c.push(u);continue}const r=W.get(s);if(!r)return null;c.push(r[0],r[1])}return c}function i(d){let c="";for(let t=0;t<d.length;t++){const s=`${d[t]},${d[t+1]??""}`;if(E.has(s)){c+=String.fromCharCode(E.get(s)),t++;continue}c+=_e[d[t]]}return c}function p(d){let c=0,t=1;for(let s=d.length-1;s>=0;s--)c+=d[s]*t,t=t===20?1:t+1;return c%47}function S(d){const c=p(d),t=p([...d,c]);return{c,k:t}}function k(d,c={}){const t=d==null?"":String(d);if(t==="")return{ok:!1,reason:"empty"};const s=c.extended?T(t):(()=>{const l=[];for(const g of t){const w=I(g);if(w<0)return null;l.push(w)}return l})();if(!s)return{ok:!1,reason:"charset"};const{c:u,k:r}=S(s),m=[e];for(const l of s)m.push(D(l));return m.push(D(u)),m.push(D(r)),m.push(e),{ok:!0,modules:m.flatMap(P),text:t}}}),De("packages/dom/src/cell/renderers/barcode/code128.js",function(A,J){"use strict";Object.defineProperty(A,"encodeCode128",{enumerable:!0,get:function(){return d}});const F=J("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,P=104,D=105,I=106,M={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},W={A:e,B:P,C:D};function E(c){return c>=32&&c<=95?c-32:c>=0&&c<=31?c+64:null}function T(c){return c>=32&&c<=127?c-32:null}function i(c,t){const s=c.charCodeAt(t),u=c.charCodeAt(t+1);return s>=48&&s<=57&&u>=48&&u<=57}function p(c,t,s){const u=[],r=c.charCodeAt(t),m=E(r);if(m!=null){const l=s==="A"||s===null?[m]:[M[s].A,m];u.push({to:"A",symbols:l,advance:1})}const z=T(r);if(z!=null){const l=s==="B"||s===null?[z]:[M[s].B,z];u.push({to:"B",symbols:l,advance:1})}if(i(c,t)){const l=Number(c.slice(t,t+2)),g=s==="C"||s===null?[l]:[M[s].C,l];u.push({to:"C",symbols:g,advance:2})}return u}function S(c){const t=c.length,s=Array.from({length:t+1},()=>({}));s[0].start={cost:0,prev:null,symbols:[]};for(let w=0;w<=t;w++)for(const x of Object.keys(s[w])){const v=s[w][x];if(w===t)continue;const f=x==="start"?null:x;for(const o of p(c,w,f)){const _=w+o.advance,b=v.cost+o.symbols.length,y=s[_][o.to];(!y||b<y.cost)&&(s[_][o.to]={cost:b,prev:x,symbols:o.symbols,backI:w})}}const u=Object.entries(s[t]);if(u.length===0)return null;u.sort((w,x)=>w[1].cost-x[1].cost);const[,r]=u[0],m=[];let z=t,l=u[0][0],g=l;for(;z>0;){const w=s[z][l];m.push(w.symbols),g=l,z=w.backI,l=w.prev}return m.reverse(),{symbols:m.flat(),startSubset:g}}function k(c,t){let s=c;for(let u=0;u<t.length;u++)s+=t[u]*(u+1);return s%103}function d(c,t={}){const s=c==null?"":String(c);if(s==="")return{ok:!1,reason:"empty"};for(let w=0;w<s.length;w++)if(s.charCodeAt(w)>127)return{ok:!1,reason:"charset"};const u=S(s);if(!u)return{ok:!1,reason:"charset"};const r=W[u.startSubset],m=k(r,u.symbols);return{ok:!0,modules:[r,...u.symbols,m,I].map(w=>L[w].split("").map(Number)).flatMap(w=>F(w)),text:s}}}),De("packages/dom/src/cell/renderers/barcode/code11.js",function(A,J){"use strict";Object.defineProperty(A,"encodeCode11",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"ALPHABET",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"PATTERNS",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"START_STOP",{enumerable:!0,get:function(){return D}});const _e=J("packages/dom/src/cell/renderers/barcode/support.js"),F=_e.buildPattern,L=_e.weightedModulo,e="0123456789-",P=[[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]],D=[2,1,1,1,2,1],I=i=>e.indexOf(i);function M(i){const p=I(i);return p<0?null:P[p]}function W(i){return e[L(i,10)]}function E(i){return e[L(i,9)]}function T(i,p={}){const S=i==null?"":String(i);if(S==="")return{ok:!1,reason:"empty"};const k=[];for(const r of S){const m=I(r);if(m<0)return{ok:!1,reason:"charset"};k.push(m)}const d=W(k),c=I(d),s=S.length>=10?`${d}${E([...k,c])}`:d,u=[D];for(const r of S)u.push(M(r));for(const r of s)u.push(M(r));return u.push(D),{ok:!0,modules:F(u,1),text:`${S}${s}`}}}),De("packages/dom/src/cell/renderers/barcode/codabar.js",function(A,J){"use strict";Object.defineProperty(A,"MOD16_ORDER",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"encodeCodabar",{enumerable:!0,get:function(){return T}});const F=J("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"},P="0123456789-$:/.+",D="ABCD",I="0123456789-$:/.+ABCD";function M(i){return i.split("").map(p=>p==="w"?L:1)}function W(i){const p=e[i];return p?M(p):null}function E(i){let p=0;for(const k of i){const d=I.indexOf(k);if(d<0)return null;p+=d}const S=p%16;return S<10?String(S):null}function T(i,p={}){const S=i==null?"":String(i);if(S==="")return{ok:!1,reason:"empty"};const k=S.toUpperCase();if(k.length<2)return{ok:!1,reason:"charset"};const d=k[0],c=k[k.length-1];if(!D.includes(d)||!D.includes(c))return{ok:!1,reason:"charset"};const t=k.slice(1,-1);for(const r of t)if(!P.includes(r))return{ok:!1,reason:"charset"};const s=[d,...t.split(""),c];if(p.checkDigit){const r=E(s);if(r==null)return{ok:!1,reason:"checkDigit"};s.splice(s.length-1,0,r);const m=s.map(W),z=`${k.slice(0,-1)}${r}${c}`;return{ok:!0,modules:F(m,1),text:z}}const u=s.map(W);return{ok:!0,modules:F(u,1),text:k}}}),De("packages/dom/src/cell/renderers/barcode/code32.js",function(A,J){"use strict";Object.defineProperty(A,"ALPHABET",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"decodeCode32Modules",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"encodeCode32",{enumerable:!0,get:function(){return p}});const F=J("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,L=2,e="010010100",P={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"},D="0123456789BCDFGHJKLMNPQRSTUVWXYZ",I=S=>S.split("").map(k=>k==="1"?L:1),M=S=>P[S]?I(P[S]):null,W=()=>I(e);function E(S){let k=0;for(let d=0;d<8;d++){const c=d+1;let t=Number(S[d]);c%2===0&&(t*=2,t>=10&&(t-=9)),k+=t}return k%10}function T(S,k){let d="",c=S;for(let t=0;t<k;t++)d=D[c%32]+d,c=Math.floor(c/32);return d}function i(S){const k=[];for(let u=0;u<S.length;u++)u===0||S[u]!==S[u-1]?k.push(1):k[k.length-1]++;const d=1,c=u=>u>d?"1":"0",t=[];let s=9;for(;s<k.length;){s+=1;const u=k.slice(s,s+9);if(u.length<9)break;const r=u.map(c).join(""),m=Object.keys(P).find(z=>P[z]===r);t.push(m??"?"),s+=9}return t.pop(),t}function p(S,k={}){const d=S==null?"":String(S);if(d==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(d))return{ok:!1,reason:"charset"};const c=d.slice(0,8),t=E(c);let s;if(d.length===9){const g=Number(d[8]);if(g!==t)return{ok:!1,reason:"checkDigit"};s=g}else s=t;const u=`${c}${s}`,r=Number(u),z=`A${T(r,6)}`.split(""),l=[W()];for(const g of z){const w=M(g);if(!w)return{ok:!1,reason:"charset"};l.push(w)}return l.push(W()),{ok:!0,modules:F(l,1),text:u}}}),De("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(A,J){"use strict";Object.defineProperty(A,"gfMul",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"gfExp",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"generatorPoly",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"reedSolomon",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"SIZES",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"dataCodewords",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"errorCodewords",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"dataRegionSize",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"encodeAscii",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"base256Mask",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"encodeBase256",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"padCodewords",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"utahPlacementOrder",{enumerable:!0,get:function(){return u}}),Object.defineProperty(A,"diagonalWalkCoverage",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"placeCodewords",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"buildSymbol",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"encodeDataMatrix",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return v}});const _e=301,F=new Uint8Array(512),L=new Uint8Array(256);{let f=1;for(let o=0;o<255;o++)F[o]=f,L[f]=o,f<<=1,f&256&&(f^=_e);for(let o=255;o<512;o++)F[o]=F[o-255]}function e(f,o){return f===0||o===0?0:F[L[f]+L[o]]}function P(f){return F[(f%255+255)%255]}function D(f){let o=new Uint8Array([1]);for(let _=0;_<f;_++){const b=new Uint8Array(o.length+1);for(let y=0;y<o.length;y++)b[y]^=o[y],b[y+1]^=e(o[y],P(_));o=b}return o.subarray(1)}function I(f,o){const _=D(o),b=new Uint8Array(o);for(let y=0;y<f.length;y++){const h=f[y]^b[0];if(b.copyWithin(0,1),b[o-1]=0,h!==0)for(let $=0;$<o;$++)b[$]^=e(_[$],h)}return b}const M={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]},W=Object.keys(M).map(Number).sort((f,o)=>f-o);function E(f){const o=M[f];if(!o)throw new RangeError(`unsupported Data Matrix size ${f}`);return o[0]}function T(f){const o=M[f];if(!o)throw new RangeError(`unsupported Data Matrix size ${f}`);return o[1]}function i(f){return f-2}const p=129,S=231,k=f=>f>=48&&f<=57;function d(f){const o=[];let _=0;for(;_<f.length;){const b=f[_],y=_+1<f.length?f[_+1]:-1;if(k(b)&&k(y)){const h=b-48,$=y-48;o.push(h*10+$+130),_+=2}else o.push(b+1),_+=1}return o}function c(f,o){const _=149*o%255+1;return(f+_)%256}function t(f,o){if(f.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const _=[S,f.length];for(let b=0;b<f.length;b++)_.push(c(f[b],o+2+b));return _}function s(f,o){if(f.length>o)throw new RangeError(`encoded stream (${f.length} codewords) exceeds capacity (${o})`);const _=f.slice();for(;_.length<o;)_.push(p);return _}function u(f){const o=new Array(f*f).fill(null),_=[],b=(ce,Z)=>ce>=0&&ce<f&&Z>=0&&Z<f,y=(ce,Z)=>{if(!b(ce,Z))return;const Q=ce*f+Z;if(o[Q]===null){const Pe={row:ce,col:Z};o[Q]=Pe,_.push(Pe)}},h=(ce,Z)=>{const Q=ie=>(ie%f+f)%f,Pe=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[ie,j]of Pe)y(Q(ce+ie),Q(Z+j))};let $=4,ee=0,O=0;const ae=f*f+64;do{for(;$>=0&&ee<f;)h($,ee),$-=2,ee+=2;for($+=1,ee+=3;$<f&&ee>=0;)h($,ee),$+=2,ee-=2;$+=3,ee+=1}while(($<f||ee<f)&&O++<ae);const se=_.length;for(let ce=0;ce<f;ce++)for(let Z=0;Z<f;Z++)y(ce,Z);return Object.defineProperty(_,"sweptCount",{value:_.length-se,enumerable:!1}),_}function r(f){return u(f).sweptCount}function m(f,o){const _=u(o),b=new Uint8Array(o*o);for(let y=0;y<_.length;y++){const h=Math.floor(y/8);if(h>=f.length)break;const $=7-y%8,ee=f[h]>>>$&1,{row:O,col:ae}=_[y];b[O*o+ae]=ee}return b}function z(f,o){const _=o+2,b=new Uint8Array(_*_),y=($,ee,O)=>{b[$*_+ee]=O},h=_-1;for(let $=0;$<_;$++)y(h,$,1);for(let $=0;$<_;$++)y($,0,1);for(let $=0;$<_;$++)y(0,$,$%2===0?1:0);for(let $=0;$<_;$++)y($,_-1,$%2===0?1:0);for(let $=0;$<o;$++)for(let ee=0;ee<o;ee++)b[($+1)*_+(ee+1)]=f[$*o+ee];return{size:_,modules:b}}function l(f){const o=new Uint8Array(f.length);for(let _=0;_<f.length;_++)o[_]=f.charCodeAt(_)&255;return o}function g(f){for(let o=0;o<f.length;o++)if(f[o]>127)return!1;return!0}function w(f){for(const o of W)if(E(o)>=f)return o;return 0}function x(f,o={}){if(f==null||f==="")return{ok:!1,reason:"empty"};const _=String(f),b=l(_),y=o&&o.encodation==="base256";if(!y&&!g(b))return{ok:!1,reason:"charset"};let h;if(y){if(b.length>249)return{ok:!1,reason:"capacity"};h=t(b,1)}else h=d(b);const $=o&&o.size;let ee;if($!=null){if(!M[$])return{ok:!1,reason:"capacity"};if(h.length>E($))return{ok:!1,reason:"capacity"};ee=$}else if(ee=w(h.length),ee===0)return{ok:!1,reason:"capacity"};const O=E(ee),ae=s(h,O),se=I(ae,T(ee)),ce=new Uint8Array(O+se.length);ce.set(ae,0),ce.set(se,O);const Z=i(ee),Q=m(ce,Z),{modules:Pe}=z(Q,Z);return{ok:!0,matrix:{size:ee,modules:Pe},text:_}}const v=x}),De("packages/dom/src/cell/renderers/barcode/index.js",function(A,J){"use strict";Object.defineProperty(A,"BARCODE_TYPES",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"encodeBarcode",{enumerable:!0,get:function(){return m}});const _e=J("packages/dom/src/cell/renderers/barcode/code39.js"),F=_e.encodeCode39,L=J("packages/dom/src/cell/renderers/barcode/ean.js"),e=L.encodeEan13,P=L.encodeEan8,D=J("packages/dom/src/cell/renderers/barcode/upc.js"),I=D.encodeUpcA,M=D.encodeUpcE,W=J("packages/dom/src/cell/renderers/barcode/code93.js"),E=W.encodeCode93,T=J("packages/dom/src/cell/renderers/barcode/code128.js"),i=T.encodeCode128,p=J("packages/dom/src/cell/renderers/barcode/code11.js"),S=p.encodeCode11,k=J("packages/dom/src/cell/renderers/barcode/codabar.js"),d=k.encodeCodabar,c=J("packages/dom/src/cell/renderers/barcode/code32.js"),t=c.encodeCode32,s=J("packages/dom/src/cell/renderers/barcode/datamatrix.js"),u=s.encodeDataMatrix;Object.defineProperty(A,"encodeCode39",{enumerable:!0,get:function(){return _e.encodeCode39}}),Object.defineProperty(A,"encodeEan13",{enumerable:!0,get:function(){return L.encodeEan13}}),Object.defineProperty(A,"encodeEan8",{enumerable:!0,get:function(){return L.encodeEan8}}),Object.defineProperty(A,"encodeUpcA",{enumerable:!0,get:function(){return D.encodeUpcA}}),Object.defineProperty(A,"encodeUpcE",{enumerable:!0,get:function(){return D.encodeUpcE}}),Object.defineProperty(A,"encodeCode93",{enumerable:!0,get:function(){return W.encodeCode93}}),Object.defineProperty(A,"encodeCode128",{enumerable:!0,get:function(){return T.encodeCode128}}),Object.defineProperty(A,"encodeCode11",{enumerable:!0,get:function(){return p.encodeCode11}}),Object.defineProperty(A,"encodeCodabar",{enumerable:!0,get:function(){return k.encodeCodabar}}),Object.defineProperty(A,"encodeCode32",{enumerable:!0,get:function(){return c.encodeCode32}}),Object.defineProperty(A,"encodeDataMatrix",{enumerable:!0,get:function(){return s.encodeDataMatrix}});const r=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function m(z,l,g={}){switch(z){case"code39":return F(l,{checkDigit:g.checkDigit});case"code39ext":return F(l,{extended:!0,checkDigit:g.checkDigit});case"ean13":return e(l);case"ean8":return P(l);case"upca":return I(l);case"upce":return M(l);case"code93":return E(l);case"code93ext":return E(l,{extended:!0});case"code128":return i(l);case"code11":return S(l);case"codabar":return d(l,{checkDigit:g.checkDigit});case"code32":return t(l);case"datamatrix":return u(l,{size:g.size,encodation:g.encodation});default:return{ok:!1,reason:"type"}}}}),De("packages/dom/src/cell/renderers/barcode/render.js",function(A,J){"use strict";Object.defineProperty(A,"warnOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"barsPathData",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"matrixPathData",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"paint",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"buildSvg",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"renderBarcode",{enumerable:!0,get:function(){return d}});const F=J("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,L="http://www.w3.org/2000/svg",e=60,P=16,D=4;function I(c,t,s){s==null||s===!1?c.removeAttribute(t):c.setAttribute(t,String(s))}const M=new Set;function W(c,t){M.has(c)||(M.add(c),console.warn("[lattice]",t))}function E(c,t,s){const u=[];let r=0;for(;r<c.length;){if(!c[r]){r++;continue}let m=1;for(;r+m<c.length&&c[r+m];)m++;u.push(`M${r+t} 0h${m}v${s}h-${m}z`),r+=m}return u.join("")}function T(c,t){const{size:s,modules:u}=c,r=[];for(let m=0;m<s;m++){let z=0;for(;z<s;){if(!u[m*s+z]){z++;continue}let l=1;for(;z+l<s&&u[m*s+z+l];)l++;r.push(`M${z+t} ${m+t}h${l}v1h-${l}z`),z+=l}}return r.join("")}function i(c){const t=c&&typeof c=="object"?c:{};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 p(c){const t=Math.floor(Number(c));return!Number.isFinite(t)||t<0?10:Math.min(40,t)}function S(c,t,s){const u=p(s.quietZone),r=i(s.text),m=r.show,z=!!t.matrix,l=z?t.matrix.size:t.modules.length,g=z?l+u*2:e,w=m&&r.position==="top"?P+D:0,x=g+(m?P+D:0),v=l+u*2,f=Number(s.moduleWidth)||0,o=f>0?v*f:Number(s.width)||200,_=Number(s.height)||Math.round(o/v*x)||60;I(c.svg,"viewBox",`0 0 ${v} ${x}`),I(c.svg,"width",o),I(c.svg,"height",_);const b=s.print?"#000000":s.foreground||"currentColor",y=s.print?"#ffffff":s.background;if(y?(I(c.background,"x",0),I(c.background,"y",0),I(c.background,"width",v),I(c.background,"height",x),c.background.setAttribute("fill",y),c.background.style.display=""):c.background.style.display="none",c.path.setAttribute("fill",b),c.path.setAttribute("transform",`translate(0 ${w})`),c.path.setAttribute("d",z?T(t.matrix,u):E(t.modules,u,e)),!m){c.text.style.display="none";return}c.text.style.display="",c.text.style.font=r.font,c.text.setAttribute("fill",b),c.text.setAttribute("text-anchor",r.align==="left"?"start":r.align==="right"?"end":"middle");const h=r.align==="left"?u:r.align==="right"?v-u:v/2,$=r.position==="top"?P-r.margin:x-r.margin;I(c.text,"x",h),I(c.text,"y",$),c.text.textContent=t.text}function k(c){const t=c.createElementNS(L,"svg");t.setAttribute("class","lat-barcode__svg"),t.setAttribute("focusable","false"),t.setAttribute("preserveAspectRatio","none");const s=c.createElementNS(L,"rect");s.style.display="none";const u=c.createElementNS(L,"path"),r=c.createElementNS(L,"text");return t.appendChild(s),t.appendChild(u),t.appendChild(r),{svg:t,background:s,path:u,text:r}}function d(c,t){const s=c.ownerDocument,u=k(s);c.textContent="",c.appendChild(u.svg);const r=z=>{const l=z||{},g=String(l.type||"code39"),w=F(g,l.value,{checkDigit:l.checkDigit,size:l.size,encodation:l.encodation});if(!w.ok){W(`barcode:invalid:${g}`,`column "standalone" has a value that is not valid for the "${g}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),u.path.setAttribute("d","");return}S(u,w,l)};return r(t),{update:r,destroy:()=>{c.textContent=""}}}}),De("packages/modules/form/controls/barcode.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function P(D,I){const M=D.props&&D.props.source;if(!M)return D.value;const W=typeof I.form.getItem=="function"?I.form.getItem(M):null;return W&&typeof W.getValue=="function"?W.getValue():void 0}F("barcode",{kind:"display",build(D,I){const M=I.doc.createElement("span");M.className="lat-form__barcode";const W=e(M,{...D.props,value:P(D,I)}),E=D.props&&D.props.source;if(E){const T=I.emitter.on("change",i=>{i&&i.name===E&&W.update({...D.props,value:i.value})});I.disposers.push(T)}return I.disposers.push(()=>W.destroy()),M._barcodeHandle=W,M},read(D,I,M){return P(I,M)},write(D,I,M){D._barcodeHandle&&D._barcodeHandle.update({...I.props,value:M})},state(){}})}),De("packages/modules/form/controls/speeddial.js",function(A,J){"use strict";Object.defineProperty(A,"injectSpeedDialStyles",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"createSpeedDial",{enumerable:!0,get:function(){return o}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,I=J("packages/modules/form/scheme.js"),M=I.rootDefaultsCss,W=I.darkAccentCss,T=J("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,i="lat-speeddial",p="data-lattice-speeddial-styles",S="http://www.w3.org/2000/svg",k=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),d=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),c=Object.freeze(["up","down","left","right"]);function t(){const _=`
|
|
2213
|
+
`.trim()}function I(l){const g=l&&l.documentElement;if(!g||g.getAttribute(P))return;g.setAttribute(P,"1");const w=l.createElement("style");w.textContent=D(),(l.head||l.body||g).appendChild(w)}function M(l,g){const w=g&&g.defaultView,x=w&&w.Event,v=x?new x("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};l.dispatchEvent(v)}function W(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function E(l){const g=Number(l)||0;return g<1024?`${g} B`:g<1048576?`${(g/1024).toFixed(g<10240?1:0)} KB`:g<1073741824?`${(g/1048576).toFixed(1)} MB`:`${(g/1073741824).toFixed(2)} GB`}function T(l,g){if(!g||!g.length)return!0;const w=(l.name||"").toLowerCase(),x=(l.type||"").toLowerCase();return g.some(v=>{const f=String(v).trim().toLowerCase();return f.startsWith(".")?w.endsWith(f):f.endsWith("/*")?x.startsWith(f.slice(0,-1)):x===f})}function i(l){return l.length?l.length===1?l[0]:l.length===2?`${l[0]} or ${l[1]}`:`${l.slice(0,-1).join(", ")} or ${l[l.length-1]}`:""}function p(l){const g={".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"},w=String(l).trim(),x=g[w.toLowerCase()];if(x)return x;if(w.startsWith("."))return w.slice(1).toUpperCase();if(w.endsWith("/*"))return`${w.slice(0,-2)}s`;const v=w.split("/")[1];return v?v.toUpperCase():w}function S(l,g,w,x){const v=[];return g&&g.length&&v.push(i(g.map(p))),w&&v.push(l("form.file.hint.size",{size:E(w)})),x&&v.push(l(x===1?"form.file.hint.file":"form.file.hint.files",{max:String(x)})),v.join(" · ")}function k(l){return{id:l.id,name:l.name,size:l.size,type:l.type,status:l.status,progress:l.progress,message:l.message||""}}function d(l,g){const w=l.createElementNS(e,"svg");w.setAttribute("viewBox","0 0 16 16"),w.setAttribute("focusable","false"),w.setAttribute("aria-hidden","true"),w.setAttribute("fill","none"),w.setAttribute("stroke","currentColor"),w.setAttribute("stroke-width","1.5"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round");const x=l.createElementNS("http://www.w3.org/2000/svg","path");return x.setAttribute("d",g),w.appendChild(x),w}const c=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(l,g){const w=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let x;for(;x=w.exec(g);)l.setAttribute(x[1],x[3]===void 0?x[4]:x[3])}function s(l,g){const w=/<svg\b([^>]*)>/i.exec(g);if(!w)return null;const x=l.createElementNS(e,"svg");t(x,w[1]);const v=g.lastIndexOf("</svg"),f=v===-1?"":g.slice(w.index+w[0].length,v),o=/<(\w+)\b([^>]*?)(\/?)>/g;let _;for(;_=o.exec(f);){const b=l.createElementNS(e,_[1]);t(b,_[2]),x.appendChild(b)}return x.setAttribute("aria-hidden","true"),x.setAttribute("focusable","false"),x}function u(l,g){if(l===!1)return null;if(l!=null&&typeof l=="object"&&l.nodeType){const x=l;return x.classList.add(`${L}__icon`),x.setAttribute("aria-hidden","true"),x}if(typeof l!="string"||l==="")return null;const w=c[l]?d(g,c[l]):s(g,l);return w?(w.setAttribute("class",`${L}__icon`),w):null}function r(l){const g=l.type||"";return g.startsWith("image/")?"image":g==="application/pdf"||/\.pdf$/i.test(l.name)?"document":"file"}function m(l){if(l.thumb)return l.thumb;if(!l.file||!/^image\//.test(l.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{l.thumb=URL.createObjectURL(l.file)}catch{l.thumb=null}return l.thumb}function z(l){if(l.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(l.thumb)}catch{}l.thumb=null}F("file",{kind:"field",build(l,g){const w=g.doc,x=g.t,v=l.props||{},f=Array.isArray(v.accept)?v.accept.map(B=>String(B)):[],o=Number(v.maxSize)||0,_=Number(v.maxFiles)||0,b=v.multiple!==!1,y=typeof v.upload=="function"?v.upload:null,h=v.dropzone!==!1,$=v.dropText!=null?String(v.dropText):x("form.file.dropText"),ee=v.browseText!=null?String(v.browseText):x("form.file.browse"),O=x("form.file.dropToUpload"),ae=x("form.file.addMore"),le=x("form.file.typeNotAccepted"),se=v.hint!=null&&v.hint!==""?String(v.hint):S(x,f,o,_);I(w);const Z=w.createElement("div");Z.className=L;const Q={accept:f,maxSize:o,maxFiles:_,multiple:b,upload:y,dropText:$,browse:ee,dropToUpload:O,addMore:ae,typeNotAccepted:le,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:h,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};Z.__latFile=Q;const Pe=w.createElement("input");Pe.type="file",Pe.className=`${L}__input`,Pe.tabIndex=-1,Pe.setAttribute("aria-hidden","true"),b&&(Pe.multiple=!0),f.length&&(Pe.accept=f.join(",")),Z.appendChild(Pe),Q.input=Pe;const ie=w.createElement("div");ie.className=`${L}__zone`,ie.setAttribute("role","button"),ie.tabIndex=0,ie.setAttribute("aria-label",`${$} ${ee}`);const j=v.icon==null?d(w,c.upload):u(v.icon,w);j&&(v.icon==null&&j.setAttribute("class",`${L}__icon`),ie.appendChild(j));const H=w.createElement("span");H.className=`${L}__title`;const ne=w.createElement("span");ne.className=`${L}__title-rest`,ne.textContent=$,H.appendChild(ne);const q=w.createElement("button");q.type="button",q.className=`${L}__browse`,q.tabIndex=-1,q.textContent=ee,H.appendChild(q),ie.appendChild(H),Q.titleRest=ne,Q.browseEl=q;const ke=w.createElement("span");if(ke.className=`${L}__drop`,ke.textContent=O,ie.appendChild(ke),se){const B=w.createElement("span");B.className=`${L}__hint`,B.textContent=se,ie.appendChild(B)}const Ee=w.createElement("span");Ee.className=`${L}__compact`,Ee.appendChild(d(w,c.upload));const C=w.createElement("span");C.className=`${L}__compact-text`,C.textContent=ae,Ee.appendChild(C),ie.appendChild(Ee),Q.compactText=C,Z.appendChild(ie),Q.zone=ie;const K=w.createElement("ul");K.className=`${L}__list`,K.setAttribute("role","list"),K.hidden=!0,Z.appendChild(K),Q.list=K;const G=w.createElement("div");return G.className=`${L}__live`,G.setAttribute("role","status"),G.setAttribute("aria-live","polite"),Z.appendChild(G),Q.live=G,Z.__latAnnounce=B=>{Q.live&&(Q.live.textContent="",Q.live.textContent=B)},Z.__latDragState=B=>{Q.zone.classList.toggle("is-dragover",B==="over"),Q.zone.classList.toggle("is-invalid",B==="invalid"),B==="none"?(Q.titleRest.textContent=Q.dropText,Q.browseEl.hidden=!1,Q.compactText.textContent=Q.addMore):B==="over"?(Q.titleRest.textContent=Q.dropToUpload,Q.browseEl.hidden=!0,Q.compactText.textContent=Q.dropToUpload):(Q.titleRest.textContent=Q.typeNotAccepted,Q.browseEl.hidden=!0,Q.compactText.textContent=Q.typeNotAccepted)},Z.__latPaint=()=>{const B=Q.disabled||Q.readOnly||!Q.dropzone;Q.zone.hidden=B,Q.zone.tabIndex=B?-1:0,B?Q.zone.setAttribute("aria-disabled","true"):Q.zone.removeAttribute("aria-disabled"),Q.input.disabled=B;const te=Q.entries.length>0;Q.zone.classList.toggle("is-compact",te),Q.zone.setAttribute("aria-label",te?Q.addMore:`${Q.dropText} ${Q.browse}`),K.hidden=!Q.entries.length,K.tabIndex=Q.readOnly&&!Q.disabled?0:-1,Q.entries.some(oe=>oe.status==="rejected")?Z.setAttribute("aria-invalid","true"):Z.removeAttribute("aria-invalid"),K.textContent="";for(const oe of Q.entries){const fe=w.createElement("li");fe.className=`${L}__item is-${oe.status}`,fe.setAttribute("data-id",oe.id),fe.setAttribute("role","listitem");const ve=m(oe);if(ve){const N=w.createElement("img");N.className=`${L}__item-thumb`,N.src=ve,N.alt="",fe.appendChild(N)}else{const N=d(w,c[r(oe)]);N.setAttribute("class",`${L}__item-icon`),fe.appendChild(N)}const be=w.createElement("div");be.className=`${L}__item-main`,fe.appendChild(be);const X=w.createElement("div");X.className=`${L}__item-row`,be.appendChild(X);const de=w.createElement("span");de.className=`${L}__item-name`,de.textContent=oe.name,de.title=oe.name,X.appendChild(de);const pe=w.createElement("span");pe.className=`${L}__item-size`,pe.textContent=E(oe.size),X.appendChild(pe);const Y=w.createElement("span");if(Y.className=`${L}__item-state`,oe.status==="uploading"){const N=w.createElement("span");N.className=`${L}__item-pct`,N.textContent=`${oe.progress}%`,Y.appendChild(N)}else oe.status==="done"?Y.appendChild(d(w,c.check)):(oe.status==="error"||oe.status==="rejected")&&Y.appendChild(d(w,c.warn));X.appendChild(Y);const re=w.createElement("button");if(re.type="button",re.className=`${L}__remove`,re.setAttribute("aria-label",`${x("form.file.remove")} ${oe.name}`),re.title=x("form.file.remove"),re.appendChild(d(w,c.xmark)),re.setAttribute("data-remove",oe.id),re.disabled=Q.disabled||Q.readOnly,X.appendChild(re),oe.status==="uploading"){const N=w.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(oe.progress));const ce=w.createElement("span");ce.className=`${L}__item-fill`,ce.style.width=`${oe.progress}%`,N.appendChild(ce),be.appendChild(N)}if(oe.message){const N=w.createElement("span");if(N.className=`${L}__item-message`,N.appendChild(w.createTextNode(oe.message)),oe.status==="error"){N.appendChild(w.createTextNode(" "));const ce=w.createElement("button");ce.type="button",ce.className=`${L}__retry`,ce.textContent=x("form.file.retry"),ce.setAttribute("data-retry",oe.id),ce.disabled=Q.disabled||Q.readOnly,N.appendChild(ce)}be.appendChild(N)}K.appendChild(fe)}},Z.__latUpload=B=>{if(!Q.upload){B.status="done",B.progress=100,Z.__latPaint();return}B.status="uploading",B.progress=0,B.message="";let te=null;typeof AbortController<"u"&&(te=new AbortController,Q.controllers.set(B.id,te));const ge=te?te.signal:void 0,oe=ve=>{B.progress=Math.max(0,Math.min(100,Number(ve)||0)),B.status="uploading",Z.__latPaint()};let fe;try{fe=Q.upload(B.file,{onProgress:oe,signal:ge})}catch(ve){fe=Promise.reject(ve)}fe&&typeof fe.then=="function"&&fe.then(()=>{Q.controllers.delete(B.id),B.status="done",B.progress=100,Z.__latPaint(),Z.__latAnnounce(x("form.file.uploaded",{name:B.name})),M(Z,g.doc)},ve=>{Q.controllers.delete(B.id),B.status="error",B.message=ve&&ve.message?String(ve.message):x("form.file.uploadFailed"),Z.__latPaint(),Z.__latAnnounce(x("form.file.failed",{name:B.name})),M(Z,g.doc)})},Z.__latTake=B=>{const te=[...B||[]];if(!te.length||Q.disabled||Q.readOnly)return;const ge=Q.multiple?te:te.slice(0,1),oe=[],fe=[];let ve=Q.maxFiles?Math.max(0,Q.maxFiles-Q.entries.length):1/0;for(const be of ge){if(ve<=0){fe.push({file:be,reason:"count"});continue}if(Q.maxSize&&be.size>Q.maxSize){fe.push({file:be,reason:"size"});continue}if(!T(be,Q.accept)){fe.push({file:be,reason:"type"});continue}oe.push({id:W(),file:be,name:be.name,size:be.size,type:be.type,status:"selected",progress:0,message:""}),ve-=1}if(oe.length){Q.multiple||(Q.entries=[]),Q.entries.push(...oe),Z.__latPaint(),M(Z,g.doc),Z.__latAnnounce(oe.length===1?x("form.file.addedOne"):x("form.file.added",{count:String(oe.length)}));for(const be of oe)Z.__latUpload(be)}for(const be of fe){const X=be.reason==="size"?x("form.file.rejected.size",{size:E(Q.maxSize)}):be.reason==="type"?x("form.file.rejected.type"):x("form.file.rejected.count",{max:String(Q.maxFiles)});Q.entries.push({id:W(),file:be.file,name:be.file.name,size:be.file.size,type:be.file.type,status:"rejected",progress:0,message:X}),Z.__latAnnounce(X)}Z.__latPaint()},Z.__latRemove=B=>{const te=Q.controllers.get(B);te&&(te.abort(),Q.controllers.delete(B));const ge=Q.entries.find(oe=>oe.id===B);ge&&z(ge),Q.entries=Q.entries.filter(oe=>oe.id!==B),Z.__latPaint(),M(Z,g.doc)},Z.__latRetry=B=>{if(Q.disabled||Q.readOnly)return;const te=Q.entries.find(ge=>ge.id===B);!te||!te.file||te.status==="rejected"||(Z.__latUpload(te),M(Z,g.doc))},Z.__latClick=B=>{if(Q.disabled||Q.readOnly)return;const te=B.target&&B.target.closest?B.target:null,ge=te&&te.closest?te.closest("[data-remove]"):null;if(ge&&Z.contains(ge)){Z.__latRemove(ge.getAttribute("data-remove"));return}const oe=te&&te.closest?te.closest("[data-retry]"):null;if(oe&&Z.contains(oe)){Z.__latRetry(oe.getAttribute("data-retry"));return}te&&te.closest&&te.closest(`.${L}__zone`)&&Q.input.click()},Z.__latKeydown=B=>{Q.disabled||Q.readOnly||(B.key==="Enter"||B.key===" "||B.key==="Spacebar")&&B.target===Q.zone&&(B.preventDefault(),Q.input.click())},Z.__latChange=()=>{Z.__latTake(Q.input.files),Q.input.value=""},Z.__latDragKind=B=>{if(!Q.accept.length)return"over";const te=B.dataTransfer;if(!te||!te.types||!te.types.length)return"over";const ge=Array.from(te.types);return ge.includes("Files")?"over":ge.every(oe=>!T({name:"",type:oe},Q.accept))?"invalid":"over"},Z.__latDrag=B=>{if(!(Q.disabled||Q.readOnly)){if(B.type==="dragenter"||B.type==="dragover"){B.preventDefault(),Z.__latDragState(Z.__latDragKind(B));return}if(B.type==="dragleave"){if(B.relatedTarget&&Q.zone.contains(B.relatedTarget))return;Z.__latDragState("none");return}B.type==="drop"&&(B.preventDefault(),Z.__latDragState("none"),Z.__latTake(B.dataTransfer&&B.dataTransfer.files))}},Z.__latPaste=B=>{if(Q.disabled||Q.readOnly||!B.clipboardData)return;const te=[...B.clipboardData.files||[]];te.length&&(B.preventDefault(),Z.__latTake(te))},Pe.addEventListener("change",Z.__latChange),Z.addEventListener("click",Z.__latClick),Z.addEventListener("keydown",Z.__latKeydown),Z.addEventListener("paste",Z.__latPaste),h&&["dragenter","dragover","dragleave","drop"].forEach(B=>Z.addEventListener(B,Z.__latDrag)),Z.__latPaint(),Z},read(l){const g=l.__latFile;return g?g.entries.filter(w=>w.status!=="rejected").map(k):[]},write(l,g){const w=l.__latFile;if(!w)return;const x=Array.isArray(g)?g:[],v=w.entries.filter(f=>f.status==="rejected");for(const f of w.entries)v.includes(f)||z(f);w.entries=v;for(const f of x)w.entries.push({id:f&&f.id?String(f.id):W(),file:f&&f.file?f.file:null,name:f&&f.name!=null?String(f.name):"",size:f&&f.size!=null?Number(f.size):0,type:f&&f.type!=null?String(f.type):"",status:f&&f.status?String(f.status):"done",progress:f&&f.progress!=null?Number(f.progress):100,message:f&&f.message?String(f.message):""});l.__latPaint&&l.__latPaint()},state(l,g){const w=l.__latFile;w&&(w.disabled=g.disabled===!0,w.readOnly=g.readOnly===!0,w.disabled?l.setAttribute("aria-disabled","true"):l.removeAttribute("aria-disabled"),w.readOnly?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly"),l.__latPaint&&l.__latPaint())},validate(l,g,w){const x=l.__latFile;if(!x)return null;const v=x.entries.find(f=>f.status==="rejected");return v&&v.message&&(!Array.isArray(w)||w.length===0)?v.message:x.maxFiles&&Array.isArray(w)&&w.length>x.maxFiles?`Too many files (max ${x.maxFiles})`:null}})}),Me("packages/dom/src/editors/richtext-icons.js",function(A,J){"use strict";Object.defineProperty(A,"TOOL_GLYPHS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"letterGlyph",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"toolGlyph",{enumerable:!0,get:function(){return P}});const _e="http://www.w3.org/2000/svg",F=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(D,I){const M=F[I],W=D.createElementNS(_e,"svg");W.setAttribute("viewBox","0 0 16 16"),W.setAttribute("width","16"),W.setAttribute("height","16"),W.setAttribute("focusable","false"),W.setAttribute("aria-hidden","true");const E=D.createElementNS(_e,"text");return E.setAttribute("x","8"),E.setAttribute("y","12"),E.setAttribute("text-anchor","middle"),E.style.fontSize="12px",E.style.fill="currentColor",E.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',M.weight&&(E.style.fontWeight=M.weight),M.style&&(E.style.fontStyle=M.style),M.decoration&&(E.style.textDecoration=M.decoration),E.textContent=M.char,W.appendChild(E),W}function P(D,I){const M=D.createElementNS(_e,"svg");M.setAttribute("viewBox","0 0 16 16"),M.setAttribute("focusable","false"),M.setAttribute("aria-hidden","true"),M.setAttribute("fill","none"),M.setAttribute("stroke","currentColor"),M.setAttribute("stroke-width","1.5"),M.setAttribute("stroke-linecap","round"),M.setAttribute("stroke-linejoin","round");const W=D.createElementNS(_e,"path");return W.setAttribute("d",L[I]),M.appendChild(W),M}}),Me("packages/modules/form/controls/swatches.js",function(A,J){"use strict";Object.defineProperty(A,"DEFAULT_COLORS",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"hslToHex",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"buildSwatchButton",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"buildSwatchGrid",{enumerable:!0,get:function(){return T}});const _e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),F=Object.freeze([0,24,48,84,140,168,196,224,268,320]),L=Object.freeze([.82,.66,.5,.36,.22]),e=.62,P=Object.freeze([.92,.76,.56,.36,.18]);function D(i,p,S){let k=S;return k<0&&(k+=1),k>1&&(k-=1),k<1/6?i+(p-i)*6*k:k<1/2?p:k<2/3?i+(p-i)*(2/3-k)*6:i}function I(i,p,S){const k=(i%360+360)%360/360;let d,c,t;if(p===0)d=S,c=S,t=S;else{const u=S<.5?S*(1+p):S+p-S*p,r=2*S-u;d=D(r,u,k+1/3),c=D(r,u,k),t=D(r,u,k-1/3)}const s=u=>Math.round(u*255).toString(16).padStart(2,"0");return`#${s(d)}${s(c)}${s(t)}`}const M=Object.freeze(F.map(i=>Object.freeze(L.map(p=>I(i,e,p))))),W=Object.freeze(P.map(i=>I(0,0,i)));function E(i,p,S={}){const k=i.createElement("button");return k.type="button",k.className="lat-form__swatch",k.style.background=p,k.setAttribute("role","option"),k.setAttribute("data-color",p),k.setAttribute("aria-selected",S.selected?"true":"false"),S.selected&&k.classList.add("is-selected"),k.title=S.title!=null?S.title:p,k.tabIndex=-1,k}function T(i,p,S={}){const k=i.createElement("div");k.className="lat-form__swatch-grid",k.setAttribute("role","listbox");const d=[];for(const c of p){const t=i.createElement("div");t.className=S.rowClass?`lat-form__swatch-row ${S.rowClass}`:"lat-form__swatch-row";const s=[];for(const u of c){const r=E(i,u,{selected:typeof S.isSelected=="function"&&S.isSelected(u),title:typeof S.title=="function"?S.title(u):void 0});t.appendChild(r),s.push(r)}k.appendChild(t),d.push(s)}return typeof S.onPick=="function"&&k.addEventListener("click",c=>{const t=c.target&&c.target.closest?c.target.closest(".lat-form__swatch"):null;t&&k.contains(t)&&S.onPick(t.getAttribute("data-color"),t)}),{el:k,rows:d}}}),Me("packages/modules/form/controls/richtext.js",function(A,J){"use strict";Object.defineProperty(A,"sanitize",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"escapeHtml",{enumerable:!0,get:function(){return P}});const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/dom/src/editors/sanitize-richtext.js"),e=L.sanitizeRichText,P=L.escapeHtml,D=J("packages/dom/src/editors/richtext-icons.js"),I=D.letterGlyph,M=D.toolGlyph,W=D.TOOL_GLYPHS,E=J("packages/modules/form/controls/swatches.js"),T=E.DEFAULT_COLORS,i=E.buildSwatchGrid,p=e,S=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"]}),k=Object.freeze(["bold","italic","underline","strike"]),d=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 c(m){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[m]||null}const t=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function s(m){return Array.isArray(m)?m.map(z=>String(z)):S[m]||S.basic}function u(m){return new Promise((z,l)=>{const g=new FileReader;g.onload=()=>z(g.result),g.onerror=()=>l(g.error||new Error("read failed")),g.readAsDataURL(m)})}F("richtext",{kind:"field",build(m,z){const l=z.doc,g=m.props||{},w=s(g.toolbar),x=Array.isArray(g.headings)?g.headings:t,v=Array.isArray(g.colors)?g.colors:T,f=g.linkTarget!=null?String(g.linkTarget):"_blank",o=Number(g.minHeight)||160,_=Number(g.maxHeight)||0,b=Number(g.maxImageSize)||0,y=typeof g.onImage=="function"?g.onImage:null,h=g.sanitizePaste!==!1,$=g.allowedTags,ee=g.placeholder!=null?String(g.placeholder):z.t("form.richtext.placeholder"),O=l.createElement("div");O.className="lat-form__richtext";const ae={toolbar:w,headings:x,colors:v,linkTarget:f,minHeight:o,maxHeight:_,maxImageSize:b,onImage:y,sanitizePaste:h,allowedTags:$,placeholder:ee,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};O.__latRt=ae;const le=p(l,m.value==null?"":String(m.value),$,{});ae.history={stack:[le],index:0},ae.lastValue=le;const se=l.createElement("div");se.className="lat-form__richtext-toolbar",se.setAttribute("role","toolbar"),se.setAttribute("aria-label",z.t("form.richtext.formatting")),ae.toolbarEl=se;for(const j of w){if(j==="|"){const ne=l.createElement("span");ne.className="lat-form__richtext-sep",ne.setAttribute("role","separator"),se.appendChild(ne);continue}if(j==="heading"){const ne=l.createElement("select");ne.className="lat-form__richtext-select",ne.title=z.t(d.heading),ne.setAttribute("aria-label",z.t(d.heading)),ne.setAttribute("data-item","heading");for(const[q,ke]of x){const Ee=l.createElement("option");Ee.value=q,Ee.textContent=String(ke),ne.appendChild(Ee)}ae.buttons.heading=ne,se.appendChild(ne);continue}const H=l.createElement("button");H.type="button",H.className="lat-form__richtext-btn",H.setAttribute("data-item",j),H.title=z.t(d[j]||j),H.setAttribute("aria-label",z.t(d[j]||j)),j==="lowercase"||j==="uppercase"?(H.className+=" lat-form__richtext-btntext",H.textContent=z.t(j==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):k.includes(j)?H.appendChild(I(l,j)):W[j]?H.appendChild(M(l,j)):H.textContent=j,ae.buttons[j]=H,se.appendChild(H)}O.appendChild(se);const Z=l.createElement("div");Z.className="lat-form__richtext-popover",Z.hidden=!0,O.appendChild(Z),ae.popover=Z;const Q=l.createElement("div");Q.className="lat-form__richtext-editor",Q.contentEditable=m.readOnly||m.disabled?"false":"true",Q.setAttribute("role","textbox"),Q.setAttribute("aria-multiline","true"),Q.setAttribute("aria-label",m.label!=null?String(m.label):z.t("form.richtext.richText")),Q.setAttribute("data-placeholder",ee),Q.style.minHeight=`${o}px`,_&&(Q.style.maxHeight=`${_}px`),Q.innerHTML=le,O.appendChild(Q),ae.editor=Q;const Pe=l.createElement("textarea");Pe.className="lat-form__richtext-source",Pe.setAttribute("aria-label",z.t("form.richtext.source")),Pe.spellcheck=!1,Pe.hidden=!0,O.appendChild(Pe),ae.source=Pe;const ie=l.createElement("input");return ie.type="file",ie.accept="image/*",ie.className="lat-form__richtext-file",ie.tabIndex=-1,ie.setAttribute("aria-hidden","true"),O.appendChild(ie),ae.fileInput=ie,O.__latSave=()=>{const j=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;j&&j.rangeCount&&Q.contains(j.anchorNode)&&(ae.range=j.getRangeAt(0).cloneRange())},O.__latRestore=()=>{if(!ae.range)return;const j=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(j)try{j.removeAllRanges(),j.addRange(ae.range)}catch{}},O.__latRefresh=()=>{Object.entries(ae.buttons).forEach(([j,H])=>{const ne=c(j);if(ne&&ne.state&&H.tagName==="BUTTON"){let q=!1;try{q=l.queryCommandState(ne.state)}catch{q=!1}H.setAttribute("aria-pressed",q?"true":"false"),H.classList.toggle("is-active",q)}if(j==="heading"&&H.tagName==="SELECT"){let q="";try{q=String(l.queryCommandValue("formatBlock")||"").toLowerCase()}catch{q=""}const ke=[...H.options].some(Ee=>Ee.value===q);H.value=ke?q:"p"}})},O.__latExec=(j,H)=>{Q.focus(),O.__latRestore();try{l.execCommand("styleWithCSS",!1,j==="foreColor")}catch{}try{l.execCommand(j,!1,H===void 0?null:H)}catch{}O.__latAfterEdit()},O.__latAfterEdit=()=>{const j=Q.innerHTML,H=ae.history;H.stack[H.index]!==j&&(H.stack=H.stack.slice(0,H.index+1),H.stack.push(j),H.stack.length>200&&H.stack.shift(),H.index=H.stack.length-1),O.__latRefresh();const ne=p(l,j,$,{}),q=ae.lastValue==null?p(l,H.stack[0]||"",$,{}):ae.lastValue;ae.lastValue=ne,r(O,l,q,ne)},O.__latCaretEnd=()=>{const j=l.createRange();j.selectNodeContents(Q),j.collapse(!1);const H=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;H&&(H.removeAllRanges(),H.addRange(j)),ae.range=j.cloneRange()},O.__latUndo=()=>{const j=ae.history;if(j.index<=0)return;j.index-=1,Q.innerHTML=j.stack[j.index],O.__latCaretEnd(),O.__latRefresh();const H=p(l,Q.innerHTML,$,{});ae.lastValue=H,r(O,l,ae.lastValue,H)},O.__latRedo=()=>{const j=ae.history;if(j.index>=j.stack.length-1)return;j.index+=1,Q.innerHTML=j.stack[j.index],O.__latCaretEnd(),O.__latRefresh();const H=p(l,Q.innerHTML,$,{});ae.lastValue=H,r(O,l,ae.lastValue,H)},O.__latClosePopover=()=>{Z.hidden=!0,Z.textContent=""},O.__latOpenPopover=(j,H)=>{if(Z.textContent="",Z.hidden=!1,Z.style.left=`${Math.max(0,H.offsetLeft)}px`,j==="color"){const{el:ne}=i(l,[v],{onPick:C=>{O.__latRestore(),O.__latExec("foreColor",C),O.__latClosePopover()}});Z.appendChild(ne);const q=l.createElement("div");q.className="lat-form__richtext-poprow";const ke=l.createElement("input");ke.type="color",ke.className="lat-form__richtext-colorinput",ke.setAttribute("aria-label",z.t("form.richtext.colorCustom")),ke.addEventListener("input",()=>{O.__latRestore(),O.__latExec("foreColor",ke.value)});const Ee=l.createElement("button");Ee.type="button",Ee.className="lat-form__richtext-popbtn",Ee.textContent=z.t("form.richtext.colorRemove"),Ee.addEventListener("click",()=>{O.__latRestore(),O.__latExec("foreColor","inherit"),O.__latClosePopover()}),q.appendChild(ke),q.appendChild(Ee),Z.appendChild(q)}else{const ne=O.__latClosestLink(),q=l.createElement("input");q.type="url",q.className="lat-form__richtext-linkinput",q.placeholder=z.t("form.richtext.linkPlaceholder"),q.value=ne&&ne.getAttribute("href")||"",q.setAttribute("aria-label",z.t("form.richtext.linkLabel"));const ke=()=>{const K=q.value.trim();if(O.__latRestore(),!K){O.__latExec("unlink"),O.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(K)){q.classList.add("is-invalid");return}if(ne)ne.setAttribute("href",K),O.__latAfterEdit();else{const G=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(G&&G.isCollapsed){const B=f?` target="${P(f)}" rel="noopener noreferrer"`:"";O.__latExec("insertHTML",p(l,`<a href="${P(K)}"${B}>${P(K)}</a>`,$,{}))}else{O.__latExec("createLink",K);const B=O.__latClosestLink();B&&f&&(B.setAttribute("target",f),B.setAttribute("rel","noopener noreferrer"))}}O.__latClosePopover()};q.addEventListener("keydown",K=>{K.key==="Enter"&&(K.preventDefault(),ke()),K.key==="Escape"&&O.__latClosePopover()});const Ee=l.createElement("div");Ee.className="lat-form__richtext-poprow",Ee.appendChild(q);const C=l.createElement("button");if(C.type="button",C.className="lat-form__richtext-popbtn",C.textContent=ne?z.t("form.richtext.linkUpdate"):z.t("form.richtext.linkAdd"),C.addEventListener("click",ke),Ee.appendChild(C),ne){const K=l.createElement("button");K.type="button",K.className="lat-form__richtext-popbtn",K.textContent=z.t("form.richtext.linkRemove"),K.addEventListener("click",()=>{O.__latRestore(),O.__latExec("unlink"),O.__latClosePopover()}),Ee.appendChild(K)}Z.appendChild(Ee),setTimeout(()=>q.focus(),0)}},O.__latClosestLink=()=>{const j=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!j||j.rangeCount===0)return null;let H=j.getRangeAt(0).commonAncestorContainer;H.nodeType===3&&(H=H.parentNode);const ne=H.closest?H.closest("a"):null;return ne&&Q.contains(ne)?ne:null},O.__latRun=j=>{if(ae.disabled||ae.readOnly)return;j!=="source"&&ae.sourceMode&&O.__latToggleSource(!1),O.__latRestore();const H=c(j);if(j==="color"||j==="link"){O.__latOpenPopover(j,ae.buttons[j]);return}if(j==="undo"){O.__latUndo();return}if(j==="redo"){O.__latRedo();return}if(j==="source"){O.__latToggleSource();return}if(j==="image"){ae.fileInput.click();return}if(j==="lowercase"||j==="uppercase"){O.__latCase(j==="uppercase");return}if(H){O.__latExec(H.cmd);return}},O.__latCase=j=>{const H=l.defaultView&&l.defaultView.getSelection?l.defaultView.getSelection():null;if(!H||H.rangeCount===0||H.isCollapsed)return;const ne=H.toString();O.__latExec("insertText",j?ne.toUpperCase():ne.toLowerCase())},O.__latToggleSource=j=>{const H=j===void 0?!ae.sourceMode:!!j;if(H===ae.sourceMode)return;H?(ae.source.value=p(l,Q.innerHTML,$,{}).replace(/></g,`>
|
|
2214
|
+
<`),Q.hidden=!0,Pe.hidden=!1,Pe.focus()):(ae.sourceDirty&&(Q.innerHTML=p(l,Pe.value,$,{}),ae.sourceDirty=!1),Pe.hidden=!0,Q.hidden=!1,Q.focus()),ae.sourceMode=H;const ne=ae.buttons.source;ne&&(ne.classList.toggle("is-active",H),ne.setAttribute("aria-pressed",H?"true":"false")),Object.entries(ae.buttons).forEach(([q,ke])=>{q!=="source"&&(ke.disabled=H)}),H||O.__latAfterEdit()},O.__latInsertImage=async j=>{if(!/^image\//.test(j.type)||b&&j.size>b)return;let H;try{H=y?await y(j):await u(j)}catch{return}H&&O.__latExec("insertHTML",p(l,`<img src="${P(H)}" alt="${P(j.name)}" style="max-width:100%">`,$,{}))},O.__latToolbarClick=j=>{const H=j.target&&j.target.closest?j.target.closest("[data-item]"):null;!H||!se.contains(H)||H.tagName==="SELECT"||(j.preventDefault(),O.__latRun(H.getAttribute("data-item")))},O.__latToolbarDown=j=>{j.target&&j.target.closest&&j.target.closest(".lat-form__richtext-btn")&&j.preventDefault()},O.__latSelect=j=>{j.target&&j.target.getAttribute&&j.target.getAttribute("data-item")==="heading"&&(O.__latRestore(),O.__latExec("formatBlock",j.target.value))},O.__latInput=()=>{O.__latAfterEdit()},O.__latKey=j=>{if(!(j.ctrlKey||j.metaKey))return;const H=j.key.toLowerCase();H==="z"&&!j.shiftKey?(j.preventDefault(),O.__latUndo()):H==="y"||H==="z"&&j.shiftKey?(j.preventDefault(),O.__latRedo()):H==="k"&&ae.buttons.link&&(j.preventDefault(),O.__latRun("link"))},O.__latPaste=j=>{if(!h||!j.clipboardData)return;const H=j.clipboardData.getData("text/html"),ne=j.clipboardData.getData("text/plain");if(!H&&!ne)return;j.preventDefault();const q=H?p(l,H,$,{stripStyles:!0}):P(ne).replace(/\r?\n/g,"<br>");O.__latExec("insertHTML",q)},O.__latDrop=j=>{if(!h||!j.dataTransfer)return;const H=j.dataTransfer.files;if(H&&H.length){j.preventDefault();const Ee=H[0];Ee&&O.__latInsertImage(Ee);return}const ne=j.dataTransfer.getData("text/html"),q=j.dataTransfer.getData("text/plain");if(!ne&&!q)return;j.preventDefault();const ke=ne?p(l,ne,$,{stripStyles:!0}):P(q).replace(/\r?\n/g,"<br>");O.__latExec("insertHTML",ke)},O.__latBeforeInput=j=>{h&&(j.inputType==="insertFromDrop"||j.inputType==="insertFromPaste")&&j.preventDefault()},O.__latSelChange=()=>{l.activeElement===Q&&(O.__latSave(),O.__latRefresh())},O.__latFile=()=>{const j=ie.files&&ie.files[0];ie.value="",j&&O.__latInsertImage(j)},O.__latSourceInput=()=>{ae.sourceDirty=!0},O.__latDocClick=j=>{Z&&!Z.hidden&&!Z.contains(j.target)&&!se.contains(j.target)&&O.__latClosePopover()},se.addEventListener("click",O.__latToolbarClick),se.addEventListener("mousedown",O.__latToolbarDown),se.addEventListener("change",O.__latSelect),Q.addEventListener("input",O.__latInput),Q.addEventListener("keydown",O.__latKey),Q.addEventListener("paste",O.__latPaste),Q.addEventListener("drop",O.__latDrop),Q.addEventListener("beforeinput",O.__latBeforeInput),ie.addEventListener("change",O.__latFile),Pe.addEventListener("input",O.__latSourceInput),l.addEventListener&&(l.addEventListener("selectionchange",O.__latSelChange),l.addEventListener("mousedown",O.__latDocClick,!0)),O},read(m){const z=m.__latRt;return z?z.sourceMode?p(m.ownerDocument,z.source.value,z.allowedTags,{}):p(m.ownerDocument,z.editor.innerHTML,z.allowedTags,{}):""},write(m,z){const l=m.__latRt;if(!l)return;const g=m.ownerDocument,w=p(g,z==null?"":String(z),l.allowedTags,{});l.sourceMode&&(l.source.value=w),l.editor.innerHTML=w,l.history={stack:[w],index:0},l.lastValue=w},state(m,z){const l=m.__latRt;l&&(l.disabled=z.disabled===!0,l.readOnly=z.readOnly===!0,l.editor.contentEditable=l.disabled||l.readOnly?"false":"true",l.editor.tabIndex=l.readOnly?0:-1,l.readOnly?l.editor.setAttribute("aria-readonly","true"):l.editor.removeAttribute("aria-readonly"),l.disabled?m.setAttribute("aria-disabled","true"):m.removeAttribute("aria-disabled"),l.readOnly?m.setAttribute("aria-readonly","true"):m.removeAttribute("aria-readonly"),Object.values(l.buttons).forEach(g=>{g.disabled=l.disabled||l.readOnly}))}});function r(m,z,l,g){const w=z&&z.defaultView,x=w&&w.Event,v=x?new x("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};m.dispatchEvent(v)}}),Me("packages/modules/form/controls/rating.js",function(A,J){"use strict";const F=J("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 P(p){const S=String(p??"");return Object.hasOwn(e,S)?S:"star"}function D(p,S,k){return Math.min(Math.max(p,S),k)}function I(p,S){const k=S&&S.defaultView,d=k&&k.Event,c=d?new d("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(c)}function M(p,S,k){const d=p.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("viewBox","0 0 16 16"),d.setAttribute("focusable","false"),d.setAttribute("aria-hidden","true"),k?d.setAttribute("fill","currentColor"):(d.setAttribute("fill","none"),d.setAttribute("stroke","currentColor"),d.setAttribute("stroke-width","1.5"),d.setAttribute("stroke-linejoin","round"));const c=p.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",e[S]),d.appendChild(c),d}function W(p,S,k){const d=Number(p),c=Number.isFinite(d)?d:0,t=k?Math.round(c*2)/2:Math.round(c);return D(t,0,S)}function E(p,S){return Math.min(1,Math.max(0,p-(S-1)))}F("rating",{kind:"field",build(p,S){const k=S.doc,d=p.props||{},c=Math.max(1,Math.floor(Number(p.max!=null?p.max:d.max)||L)),t=d.allowHalf===!0,s=d.allowClear!==!1,u=d.showValue===!0,r=Array.isArray(d.labels)?d.labels:null,m=P(d.icons&&d.icons.filled?d.icons.filled:d.icon),z=P(d.icons&&d.icons.empty?d.icons.empty:`${m}-outline`),l=d.size==="lg"||d.size==="sm"?d.size:"md",g=k.createElement("div");g.className=`lat-form__rating lat-form__rating--${l}`,g.setAttribute("role","slider"),g.setAttribute("aria-valuemin","0"),g.setAttribute("aria-valuemax",String(c)),g.setAttribute("aria-label",p.label!=null?String(p.label):S.t("form.rating"));const w={value:W(p.value,c,t),max:c,allowHalf:t,allowClear:s,labels:r,showValue:u,filledName:m,emptyName:z,items:[],fills:[],valueEl:null};g.__latRating=w;const x=k.createElement("span");x.className="lat-form__rating-track",x.setAttribute("aria-hidden","true");for(let v=0;v<c;v++){const f=k.createElement("span");f.className="lat-form__rating-item",f.setAttribute("data-index",String(v)),r&&r[v]!=null&&r[v]!==""&&(f.title=String(r[v])),f.appendChild(M(k,z,!1));const o=k.createElement("span");o.className="lat-form__rating-fill",o.setAttribute("aria-hidden","true"),o.appendChild(M(k,m,!0)),f.appendChild(o),x.appendChild(f),w.items.push(f),w.fills.push(o)}if(g.appendChild(x),u){const v=k.createElement("span");v.className="lat-form__rating-value",v.setAttribute("aria-hidden","true"),g.appendChild(v),w.valueEl=v}return g.__latPaint=()=>{for(let v=0;v<w.items.length;v++){const f=E(w.value,v+1);w.items[v].setAttribute("data-fill",f>=1?"full":f>0?"half":"empty"),w.fills[v].style.width=`${(f*100).toFixed(2)}%`}g.setAttribute("aria-valuenow",String(w.value)),g.setAttribute("aria-valuetext",T(w)),w.valueEl&&(w.valueEl.textContent=i(w))},g.__latSet=v=>{w.value=W(v,c,t),g.__latPaint()},g.__latClear=()=>{w.value=0,g.__latPaint()},g.__latPick=(v,f)=>{let o=v+1;if(t&&f&&Number.isFinite(f.clientX)){const _=w.items[v].getBoundingClientRect();_&&_.width>0&&(o=f.clientX-_.left<_.width/2?v+.5:v+1)}s&&o===w.value&&(o=0),g.__latSet(o),I(g,S.doc)},g.addEventListener("click",v=>{if(w.disabled||w.readOnly)return;const f=v.target&&v.target.closest?v.target.closest(".lat-form__rating-item"):null;!f||!g.contains(f)||g.__latPick(Number(f.getAttribute("data-index")),v)}),g.__latKey=v=>{if(w.disabled||w.readOnly)return;const f=t?.5:1;let o=w.value;if(v.key==="ArrowRight"||v.key==="ArrowUp")o+=f;else if(v.key==="ArrowLeft"||v.key==="ArrowDown")o-=f;else if(v.key==="Home")o=0;else if(v.key==="End")o=c;else if(v.key==="Backspace"||v.key==="Delete")o=0;else return;v.preventDefault(),g.__latSet(o),I(g,S.doc)},g.addEventListener("keydown",g.__latKey),g.__latPaint(),g},read(p){return p.__latRating?p.__latRating.value:0},write(p,S){p.__latRating&&(p.__latRating.value=W(S,p.__latRating.max,p.__latRating.allowHalf),p.__latPaint())},state(p,S){const k=p.__latRating;k&&(k.disabled=S.disabled===!0,k.readOnly=S.readOnly===!0,p.tabIndex=k.disabled?-1:0,k.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly"),k.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"))}});function T(p){const S=Math.round(p.value);return p.labels&&p.labels[S-1]&&p.value===S?p.labels[S-1]:`${p.value} of ${p.max}`}function i(p){return String(p.value)}}),Me("packages/modules/form/controls/stage.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl;function L(D,I){const M=I&&I.defaultView,W=M&&M.Event,E=W?new W("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};D.dispatchEvent(E)}function e(D,I){return typeof I=="number"&&Number.isFinite(I)?Math.min(Math.max(Math.round(I),0),D.length-1):typeof I=="string"?D.indexOf(I):-1}function P(D,I,M){return`${D}, ${I+1} of ${M}`}F("stage",{kind:"field",build(D,I){const M=I.doc,W=D.props||{},E=Array.isArray(W.stages)?W.stages.map(t=>String(t)):[],T=W.clickable!==!1,i=W.showIcons!==!1,p=e(E,D.value!=null?D.value:W.current),S=e(E,W.completed),k=M.createElement("div");k.className="lat-form__stage",k.setAttribute("role","radiogroup"),k.setAttribute("aria-label",D.label!=null?String(D.label):I.t("form.stage"));const d=[],c={stages:E,value:p>=0?E[p]:null,index:p,completed:S,clickable:T,showIcons:i,disabled:!1,readOnly:!1,focus:p>=0?p:0};k.__latStage=c;for(let t=0;t<E.length;t++){const s=M.createElement(T?"button":"span");if(s.type=T?"button":void 0,s.className="lat-form__stage-step",s.setAttribute("data-index",String(t)),T&&(s.setAttribute("role","radio"),s.setAttribute("aria-label",P(E[t],t,E.length))),i){const r=M.createElementNS("http://www.w3.org/2000/svg","svg");r.setAttribute("viewBox","0 0 16 16"),r.setAttribute("aria-hidden","true"),r.setAttribute("class","lat-form__stage-check");const m=M.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d","M3 8.5l3 3 7-7"),m.setAttribute("fill","none"),m.setAttribute("stroke","currentColor"),m.setAttribute("stroke-width","2"),m.setAttribute("stroke-linecap","round"),m.setAttribute("stroke-linejoin","round"),r.appendChild(m),s.appendChild(r)}const u=M.createElement("span");u.className="lat-form__stage-label",u.textContent=E[t],s.appendChild(u),k.appendChild(s),d.push(s)}return k.__latPaint=()=>{for(let t=0;t<d.length;t++){const s=t===c.index,u=!s&&c.completed>=0&&t<=c.completed;d[t].setAttribute("data-state",s?"current":u?"done":"todo"),c.clickable&&(d[t].setAttribute("aria-checked",s?"true":"false"),d[t].tabIndex=c.disabled?-1:t===c.focus?0:-1)}},k.__latSelect=t=>{const s=t>=0&&t<E.length?E[t]:null;s!==c.value&&(c.index=t>=0&&t<E.length?t:-1,c.value=s,c.focus=c.index>=0?c.index:0,k.__latPaint(),L(k,I.doc))},k.__latKey=t=>{if(c.disabled||c.readOnly||!c.clickable||!E.length)return;let s=c.focus;if(t.key==="ArrowRight"||t.key==="ArrowDown")s+=1;else if(t.key==="ArrowLeft"||t.key==="ArrowUp")s-=1;else if(t.key==="Home")s=0;else if(t.key==="End")s=E.length-1;else return;t.preventDefault();const u=Math.min(Math.max(s,0),E.length-1);c.focus=u,d[u].focus(),k.__latSelect(u)},T&&(k.addEventListener("click",t=>{if(c.disabled||c.readOnly)return;const s=t.target&&t.target.closest?t.target.closest(".lat-form__stage-step"):null;if(!s||!k.contains(s))return;const u=Number(s.getAttribute("data-index"));c.focus=u,k.__latSelect(u)}),k.addEventListener("keydown",k.__latKey)),k.__latPaint(),k},read(D){return D.__latStage?D.__latStage.value:null},write(D,I){const M=D.__latStage;if(!M)return;const W=I==null?-1:e(M.stages,I);M.index=W,M.value=W>=0?M.stages[W]:null,M.focus=W>=0?W:0,D.__latPaint()},state(D,I){const M=D.__latStage;M&&(M.disabled=I.disabled===!0,M.readOnly=I.readOnly===!0,M.readOnly?D.setAttribute("aria-readonly","true"):D.removeAttribute("aria-readonly"),M.disabled?D.setAttribute("aria-disabled","true"):D.removeAttribute("aria-disabled"),D.__latPaint())}})}),Me("packages/modules/form/controls/chips.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L="M3 8.5l3 3 7-7";function e(I,M){const W=M&&M.defaultView,E=W&&W.Event,T=E?new E("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};I.dispatchEvent(T)}function P(I){if(typeof I=="string")return{value:I,label:I,icon:null,disabled:!1};if(I!==null&&typeof I=="object"){const M=I.value===void 0?String(I.label):I.value;return{value:M,label:I.label==null?String(M):String(I.label),icon:typeof I.icon=="string"&&I.icon!==""?I.icon:null,disabled:I.disabled===!0}}return{value:I,label:String(I),icon:null,disabled:!1}}function D(I,M,W){const E=I.createElementNS("http://www.w3.org/2000/svg","svg");E.setAttribute("viewBox","0 0 16 16"),E.setAttribute("focusable","false"),E.setAttribute("aria-hidden","true");const T=I.createElementNS("http://www.w3.org/2000/svg","path");return T.setAttribute("d",M),W?T.setAttribute("fill","currentColor"):(T.setAttribute("fill","none"),T.setAttribute("stroke","currentColor"),T.setAttribute("stroke-width","2"),T.setAttribute("stroke-linecap","round"),T.setAttribute("stroke-linejoin","round")),E.appendChild(T),E}F("chips",{kind:"field",build(I,M){const W=M.doc,E=I.props||{},T=(Array.isArray(I.options)?I.options:[]).map(P),i=E.multiple===!0,p=E.allowEmpty===!0,S=E.wrap!==!1,k=I.max!=null&&Number.isFinite(Number(I.max))?Number(I.max):null,d=W.createElement("div");d.className=`lat-form__chips${S?"":" lat-form__chips--scroll"}`,d.setAttribute("role",i?"group":"radiogroup"),d.setAttribute("aria-label",I.label!=null?String(I.label):M.t("form.chips"));const c=[],t=new Set,s={options:T,multiple:i,allowEmpty:p,wrap:S,max:k,selected:t,disabled:!1,readOnly:!1,t:M.t};d.__latChips=s;for(let r=0;r<T.length;r++){const m=T[r],z=W.createElement("button");if(z.type="button",z.className="lat-form__chip",z.setAttribute("data-index",String(r)),z.disabled=m.disabled,i||z.setAttribute("role","radio"),m.icon){const g=D(W,m.icon,!0);g.setAttribute("class","lat-form__chip-icon"),z.appendChild(g)}const l=W.createElement("span");if(l.className="lat-form__chip-label",l.textContent=m.label,z.appendChild(l),i){const g=D(W,L,!1);g.setAttribute("class","lat-form__chip-check"),z.appendChild(g)}d.appendChild(z),c.push(z)}s.buttons=c,d.__latPaint=()=>{for(let r=0;r<c.length;r++){const m=T[r],z=t.has(m.value),l=c[r];l.disabled=m.disabled||s.disabled,i?(l.setAttribute("aria-pressed",z?"true":"false"),l.tabIndex=s.disabled?-1:0):(l.setAttribute("aria-checked",z?"true":"false"),l.tabIndex=s.disabled?-1:z?0:-1)}},d.__latValue=()=>{if(i)return T.filter(r=>t.has(r.value)).map(r=>r.value);for(const r of T)if(t.has(r.value))return r.value;return null},d.__latToggle=r=>{const m=T[r];if(!(!m||m.disabled||s.disabled||s.readOnly)){if(i)if(t.has(m.value))t.delete(m.value);else{if(k!=null&&t.size>=k)return;t.add(m.value)}else if(t.has(m.value))if(s.allowEmpty)t.clear();else return;else t.clear(),t.add(m.value);d.__latPaint(),e(d,M.doc)}},d.addEventListener("click",r=>{const m=r.target&&r.target.closest?r.target.closest(".lat-form__chip"):null;!m||!d.contains(m)||d.__latToggle(Number(m.getAttribute("data-index")))}),d.__latKey=r=>{if(s.multiple||s.disabled||s.readOnly||!c.length)return;let m=-1;for(let w=0;w<c.length;w++)if(t.has(T[w].value)){m=w;break}let z=m;if(r.key==="ArrowRight"||r.key==="ArrowDown")z=m+1;else if(r.key==="ArrowLeft"||r.key==="ArrowUp")z=m-1;else if(r.key==="Home")z=0;else if(r.key==="End")z=T.length-1;else return;r.preventDefault();const l=r.key==="ArrowLeft"||r.key==="ArrowUp"?-1:1;let g=z;for(;g>=0&&g<T.length&&T[g].disabled;)g+=l;g<0||g>=T.length||(t.clear(),t.add(T[g].value),d.__latPaint(),c[g].focus(),e(d,M.doc))},d.addEventListener("keydown",d.__latKey);const u=I.value;if(i){const r=Array.isArray(u)?u:[];for(const m of r)T.some(z=>z.value===m)&&t.add(m)}else if(u!=null&&T.some(r=>r.value===u))t.add(u);else if(!p){const r=T.find(m=>!m.disabled)||T[0];r&&t.add(r.value)}return d.__latPaint(),d},read(I){return I.__latChips?I.__latValue():null},write(I,M){const W=I.__latChips;if(W){if(W.selected.clear(),W.multiple){const E=Array.isArray(M)?M:[];for(const T of E)W.options.some(i=>i.value===T)&&W.selected.add(T)}else if(M!=null&&W.options.some(E=>E.value===M))W.selected.add(M);else if(!W.allowEmpty){const E=W.options.find(T=>!T.disabled)||W.options[0];E&&W.selected.add(E.value)}I.__latPaint()}},validate(I,M,W){const E=I.__latChips;if(!E||!E.multiple)return null;const T=Array.isArray(W)?W.length:0,i=M.min!=null&&Number.isFinite(Number(M.min))?Number(M.min):null,p=M.max!=null&&Number.isFinite(Number(M.max))?Number(M.max):null;return i!=null&&T<i?{code:"min",message:E.t("form.chips.min",{min:String(i)})}:p!=null&&T>p?{code:"max",message:E.t("form.chips.max",{max:String(p)})}:null},state(I,M){const W=I.__latChips;W&&(W.disabled=M.disabled===!0,W.readOnly=M.readOnly===!0,W.readOnly?I.setAttribute("aria-readonly","true"):I.removeAttribute("aria-readonly"),W.disabled?I.setAttribute("aria-disabled","true"):I.removeAttribute("aria-disabled"),I.__latPaint())}})}),Me("packages/modules/form/controls/otp.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=6;function e(p){const S=Math.floor(Number(p));return Number.isFinite(S)&&S>=1?S:L}function P(p){return p==="alphanumeric"?"alphanumeric":"numeric"}function D(p,S){return S==="numeric"?/^[0-9]$/.test(p):/^[A-Za-z0-9]$/.test(p)}function I(p,S){for(let k=p.length-1;k>=0;k-=1)if(D(p[k],S))return p[k];return""}function M(p,S,k){return(p==null?"":String(p)).replace(/[\s-]/g,"").split("").filter(c=>D(c,S)).slice(0,k)}function W(p,S,k){const d=S&&S.defaultView,c=d&&d.Event,t=c?new c(k,{bubbles:!0}):{type:k,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};p.dispatchEvent(t)}function E(p,S){const k=M(S,p.mode,p.length);for(let d=0;d<p.length;d+=1)p.boxes[d].value=k[d]||""}function T(p){p.complete=p.boxes.every(S=>S.value!=="")}function i(p){return p.boxes.map(S=>S.value).join("")}F("otp",{kind:"field",domEvents:["complete"],build(p,S){const k=S.doc,d=p.props||{},c=e(d.length),t=P(p.mode!=null?p.mode:d.mode),s=d.mask===!0,u=k.createElement("div");u.className="lat-form__otp",u.setAttribute("role","group"),u.setAttribute("aria-label",p.label!=null&&p.label!==""?String(p.label):S.t("form.otp.label"));const r=[],m={length:c,mode:t,mask:s,boxes:r,complete:!1,disabled:!1,readOnly:!1};u.__latOtp=m;for(let l=0;l<c;l+=1){const g=k.createElement("input");g.type="text",g.className=`lat-form__otp-input${s?" lat-form__otp-input--masked":""}`,g.setAttribute("inputmode",t==="numeric"?"numeric":"text"),g.setAttribute("pattern",t==="numeric"?"[0-9]":"[A-Za-z0-9]"),g.setAttribute("maxlength","1"),g.setAttribute("aria-label",S.t("form.otp.digit",{n:l+1,total:c})),g.autocomplete=l===0?"one-time-code":"off",r.push(g),u.appendChild(g)}const z=()=>{if(u.__latPublishing)return;u.__latPublishing=!0;try{W(u,k,"input"),W(u,k,"change")}finally{u.__latPublishing=!1}const l=r.every(g=>g.value!=="");l&&!m.complete?(m.complete=!0,W(u,k,"complete")):!l&&m.complete&&(m.complete=!1)};return u.addEventListener("input",l=>{if(u.__latPublishing)return;l.stopImmediatePropagation();const g=l.target;if(!r.includes(g))return;g.value=I(g.value,t);const w=r.indexOf(g);g.value!==""&&w<c-1&&r[w+1].focus(),z()}),u.addEventListener("change",l=>{u.__latPublishing||l.stopImmediatePropagation()}),u.addEventListener("keydown",l=>{if(m.disabled||m.readOnly)return;const g=l.target;if(!r.includes(g))return;const w=r.indexOf(g);l.key==="Backspace"?(l.preventDefault(),g.value!==""?g.value="":w>0&&(r[w-1].value="",r[w-1].focus()),z()):l.key==="ArrowLeft"&&w>0?(l.preventDefault(),r[w-1].focus()):l.key==="ArrowRight"&&w<c-1?(l.preventDefault(),r[w+1].focus()):l.key.length===1&&!D(l.key,t)&&!l.ctrlKey&&!l.metaKey&&!l.altKey&&l.preventDefault()}),u.addEventListener("paste",l=>{if(m.disabled||m.readOnly)return;l.preventDefault();const g=l.clipboardData&&typeof l.clipboardData.getData=="function"?l.clipboardData.getData("text"):"";E(m,g),(r.find(x=>x.value==="")||r[c-1]).focus(),z()}),u.focus=()=>{const l=r.find(g=>!g.disabled&&!g.readOnly&&g.value==="")||r[0];l&&l.focus()},u.blur=()=>{for(const l of r)l.blur()},E(m,p.value),T(m),u},read(p){return p.__latOtp?i(p.__latOtp):""},write(p,S){p.__latOtp&&(E(p.__latOtp,S),T(p.__latOtp))},state(p,S){const k=p.__latOtp;if(k){k.disabled=S.disabled===!0,k.readOnly=S.readOnly===!0;for(const d of k.boxes)d.disabled=k.disabled,d.readOnly=k.readOnly;k.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"),k.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly")}}})}),Me("packages/modules/form/controls/color.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/swatches.js"),I=D.DEFAULT_PALETTE,M=D.DEFAULT_GRAY_SHADES,W=D.buildSwatchGrid,E=D.hslToHex,T=J("packages/dom/src/autofill.js"),i=T.noHistory,p=T.applyAutocomplete,S=10,k=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,d=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function c(j){return j}const t=new Set;function s(j,H){t.has(j)||(t.add(j),console.warn("[lattice]",H))}function u(j){if(typeof j!="string")return null;const H=j.trim();if(!k.test(H))return null;const ne=H.replace(/^#/,"").toLowerCase();return`#${ne.length===3?ne.split("").map(ke=>ke+ke).join(""):ne}`}function r(j){if(typeof j!="string")return null;const H=u(j);if(H)return H;const ne=d.exec(j.trim());if(!ne)return null;const q=Ee=>Math.max(0,Math.min(255,Number(Ee))),ke=Ee=>q(Ee).toString(16).padStart(2,"0");return`#${ke(ne[1])}${ke(ne[2])}${ke(ne[3])}`}function m(j){const H=u(j);return H?{r:parseInt(H.slice(1,3),16),g:parseInt(H.slice(3,5),16),b:parseInt(H.slice(5,7),16)}:null}function z(j,H,ne){const q=ke=>Math.max(0,Math.min(255,Math.round(ke))).toString(16).padStart(2,"0");return`#${q(j)}${q(H)}${q(ne)}`}function l(j,H,ne){const q=j/255,ke=H/255,Ee=ne/255,C=Math.max(q,ke,Ee),K=Math.min(q,ke,Ee),G=(C+K)/2,B=C-K;if(B===0)return{h:0,s:0,l:G};const te=G>.5?B/(2-C-K):B/(C+K);let ge;return C===q?ge=(ke-Ee)/B%6:C===ke?ge=(Ee-q)/B+2:ge=(q-ke)/B+4,ge*=60,ge<0&&(ge+=360),{h:ge,s:te,l:G}}function g(j){return E(j.h,j.s,j.l)}function w(j,H,ne){const q=j.ownerDocument,ke=q&&q.defaultView,Ee=ke&&typeof ke.CustomEvent=="function"?ke.CustomEvent:null,C=Ee?new Ee(H,{bubbles:!0,detail:ne}):{type:H,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:ne,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};j.dispatchEvent(C)}function x(j){const H=j.props&&j.props.palette;return Array.isArray(H)&&H.length?H:I}function v(j){return!(j.props&&j.props.editable===!1)}function f(j){return!!(j.props&&j.props.clearable===!0)}function o(j){return!!(j.props&&j.props.pickerOnly===!0)}function _(j){return!(j.props&&j.props.grayShades===!1)}function b(j){const H=j.props&&j.props.icon;return typeof H=="string"&&H!==""?H:null}function y(j){const H=j.props&&j.props.customColors;return Array.isArray(H)?[...new Set(H.map(r).filter(Boolean))].slice(0,S):[]}function h(j){const H=u(j.__input.value);j.__swatchBtn.style.background=H||"transparent",j.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!H),j.__clearBtn&&(j.__clearBtn.hidden=j.__input.value.trim()==="")}function $(j,H){j.__value=H||null,j.__input.value=H||"",j.__lastCommittedText=H||"",h(j)}function ee(j){if(v(j.__item)===!1)return;const H=j.__input.value.trim();if(H===j.__lastCommittedText)return;const ne=u(H);(ne||H==="")&&(j.__value=ne,j.__lastCommittedText=H),w(j,"change")}function O(j,H){$(j,H),w(j,"change")}function ae(j,H){const ne=j.__customColors,q=ne.filter(Ee=>Ee!==H),ke=[H,...q].slice(0,S);ke.length===ne.length&&ke.every((Ee,C)=>Ee===ne[C])||(j.__customColors=ke,w(j,"customColorsChange",{colors:ke}))}function le(j){const H=j.__popover,ne=j.ownerDocument,q=ne&&ne.defaultView,ke=j.__field.getBoundingClientRect(),Ee=q?q.innerHeight:0,C=H.offsetHeight||0;Ee-ke.bottom<C+4&&ke.top>C+4?H.classList.add("lat-form__color-popover--above"):H.classList.remove("lat-form__color-popover--above")}function se(j,H,ne,q){let ke=Math.max(0,Math.min(j.length-1,H.row+ne)),Ee=H.col+q;if(q!==0){const C=j[ke].length;Ee=Math.max(0,Math.min(C-1,Ee))}else Ee=Math.max(0,Math.min(j[ke].length-1,Ee));return{row:ke,col:Ee}}function Z(j){const H=j.__item,ne=j.ownerDocument,q=j.__popover;for(;q.firstChild;)q.removeChild(q.firstChild);const ke=[...x(H)];_(H)&&ke.push([...M]),j.__customColors.length&&ke.push([...j.__customColors]);const Ee=j.__value,{el:C,rows:K}=W(ne,ke,{isSelected:B=>B===Ee,onPick:B=>{O(j,B),ie(j,{restoreFocus:!0})}});C.classList.add("lat-form__color-grid"),q.appendChild(C);for(const B of K)for(const te of B){if(te.getAttribute("aria-selected")!=="true")continue;const ge=ne.createElementNS("http://www.w3.org/2000/svg","svg");ge.setAttribute("viewBox","0 0 16 16"),ge.setAttribute("class","lat-form__color-check"),ge.setAttribute("aria-hidden","true");const oe=ne.createElementNS("http://www.w3.org/2000/svg","path");oe.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),oe.setAttribute("fill","none"),oe.setAttribute("stroke","#fff"),oe.setAttribute("stroke-width","2.6"),oe.setAttribute("stroke-linecap","round"),oe.setAttribute("stroke-linejoin","round"),oe.setAttribute("paint-order","stroke"),ge.appendChild(oe);const fe=ne.createElementNS("http://www.w3.org/2000/svg","path");fe.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),fe.setAttribute("fill","none"),fe.setAttribute("stroke","#000"),fe.setAttribute("stroke-width","4.2"),fe.setAttribute("stroke-linecap","round"),fe.setAttribute("stroke-linejoin","round"),fe.setAttribute("opacity","0.35"),ge.insertBefore(fe,oe),te.appendChild(ge)}let G={row:0,col:0};e:for(let B=0;B<K.length;B++)for(let te=0;te<K[B].length;te++)if(K[B][te].getAttribute("aria-selected")==="true"){G={row:B,col:te};break e}for(const B of K)for(const te of B)te.tabIndex=-1;if(K[G.row]&&K[G.row][G.col]&&(K[G.row][G.col].tabIndex=0),C.addEventListener("keydown",B=>{if(B.key==="Enter"||B.key===" "){B.preventDefault(),B.stopPropagation(),K[G.row][G.col].click();return}const ge={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[B.key];if(!ge)return;B.preventDefault();for(const fe of K)for(const ve of fe)ve.tabIndex=-1;G=se(K,G,ge[0],ge[1]);const oe=K[G.row][G.col];oe.tabIndex=0,oe.focus()}),!o(H)){const B=ne.createElement("button");B.type="button",B.className="lat-form__color-custombtn",B.textContent=j.__t("form.color.customColor"),B.addEventListener("click",()=>{Q(j,Ee)}),q.appendChild(B)}le(j)}function Q(j,H){const ne=j.__item,q=j.ownerDocument,ke=j.__popover;for(;ke.firstChild;)ke.removeChild(ke.firstChild);const Ee=m(H)||{r:0,g:0,b:0},C=l(Ee.r,Ee.g,Ee.b),K=q.createElement("div");K.className="lat-form__color-picker",ke.appendChild(K);const G=q.createElement("div");G.className="lat-form__color-plane",G.setAttribute("role","slider"),G.setAttribute("aria-label",j.__t("form.color.saturationLightness")),G.tabIndex=0;const B=q.createElement("div");B.className="lat-form__color-plane-thumb",G.appendChild(B),K.appendChild(G);const te=q.createElement("div");te.className="lat-form__color-hue",te.setAttribute("role","slider"),te.setAttribute("aria-label",j.__t("form.color.hue")),te.tabIndex=0;const ge=q.createElement("div");ge.className="lat-form__color-hue-thumb",te.appendChild(ge),K.appendChild(te);const oe=q.createElement("div");oe.className="lat-form__color-fields";const fe=q.createElement("input");fe.type="text",fe.className="lat-form__color-hexfield",fe.setAttribute("aria-label",j.__t("form.color.hexLabel"));const ve=q.createElement("input");ve.type="number",ve.min="0",ve.max="255",ve.className="lat-form__color-rgbfield",ve.setAttribute("aria-label",j.__t("form.color.redLabel"));const be=q.createElement("input");be.type="number",be.min="0",be.max="255",be.className="lat-form__color-rgbfield",be.setAttribute("aria-label",j.__t("form.color.greenLabel"));const X=q.createElement("input");X.type="number",X.min="0",X.max="255",X.className="lat-form__color-rgbfield",X.setAttribute("aria-label",j.__t("form.color.blueLabel")),oe.appendChild(fe),oe.appendChild(ve),oe.appendChild(be),oe.appendChild(X),K.appendChild(oe);const de=q.createElement("div");de.className="lat-form__color-previewrow";const pe=q.createElement("span");pe.className="lat-form__color-preview",de.appendChild(pe),K.appendChild(de);const Y=q.createElement("div");if(Y.className="lat-form__color-actions",!o(ne)){const V=q.createElement("button");V.type="button",V.className="lat-form__color-back",V.textContent=j.__t("form.back"),V.addEventListener("click",()=>{Z(j)}),Y.appendChild(V)}const re=q.createElement("button");re.type="button",re.className="lat-form__color-select",re.textContent=j.__t("form.color.select"),Y.appendChild(re),K.appendChild(Y);const N=()=>{const V=g(C),ue=m(V);G.style.setProperty("--lat-color-hue",String(C.h)),B.style.left=`${C.s*100}%`,B.style.top=`${(1-C.l)*100}%`,ge.style.left=`${C.h/360*100}%`,fe.value=V,ve.value=String(ue.r),be.value=String(ue.g),X.value=String(ue.b),pe.style.background=V,G.setAttribute("aria-valuetext",V),te.setAttribute("aria-valuenow",String(Math.round(C.h)))};N();const ce=(V,ue,Ce)=>{const he=V.getBoundingClientRect();if(!he.width||!he.height)return;const je=Math.max(0,Math.min(1,(ue.clientX-he.left)/he.width)),we=Math.max(0,Math.min(1,(ue.clientY-he.top)/he.height));Ce(je,we)},ye=(V,ue)=>{let Ce=!1;V.addEventListener("pointerdown",he=>{Ce=!0,ce(V,he,ue)}),q.addEventListener("pointermove",he=>{Ce&&ce(V,he,ue)}),q.addEventListener("pointerup",()=>{Ce=!1})};ye(G,(V,ue)=>{C.s=V,C.l=1-ue,N()}),ye(te,V=>{C.h=V*360,N()}),G.addEventListener("keydown",V=>{if(V.key==="Enter"){V.preventDefault(),V.stopPropagation(),a();return}const ue=V.shiftKey?.1:.02;if(V.key==="ArrowLeft")C.s=Math.max(0,C.s-ue);else if(V.key==="ArrowRight")C.s=Math.min(1,C.s+ue);else if(V.key==="ArrowUp")C.l=Math.min(1,C.l+ue);else if(V.key==="ArrowDown")C.l=Math.max(0,C.l-ue);else return;V.preventDefault(),N()}),te.addEventListener("keydown",V=>{if(V.key==="Enter"){V.preventDefault(),V.stopPropagation(),a();return}const ue=V.shiftKey?10:2;if(V.key==="ArrowLeft"||V.key==="ArrowDown")C.h=(C.h-ue+360)%360;else if(V.key==="ArrowRight"||V.key==="ArrowUp")C.h=(C.h+ue)%360;else return;V.preventDefault(),N()});const R=()=>{const V=u(fe.value);if(!V){fe.value=g(C);return}const ue=m(V);Object.assign(C,l(ue.r,ue.g,ue.b)),N()};fe.addEventListener("change",R);const n=()=>{const V=ue=>Math.max(0,Math.min(255,Number(ue)||0));Object.assign(C,l(V(ve.value),V(be.value),V(X.value))),N()};ve.addEventListener("change",n),be.addEventListener("change",n),X.addEventListener("change",n);const a=()=>{const V=g(C);O(j,V),ae(j,V),ie(j,{restoreFocus:!0})};re.addEventListener("click",a);const U=V=>ue=>{ue.key==="Enter"&&(ue.preventDefault(),ue.stopPropagation(),V(),a())};fe.addEventListener("keydown",U(R)),ve.addEventListener("keydown",U(n)),be.addEventListener("keydown",U(n)),X.addEventListener("keydown",U(n)),le(j)}function Pe(j){j.__open||j.__item.disabled===!0||j.__item.readOnly===!0||(j.__open=!0,j.__popover.hidden=!1,o(j.__item)||j.__item.mode==="picker"?Q(j,j.__value):Z(j))}function ie(j,H={}){if(j.__open){for(j.__open=!1,j.__popover.hidden=!0,j.__popover.classList.remove("lat-form__color-popover--above");j.__popover.firstChild;)j.__popover.removeChild(j.__popover.firstChild);H.restoreFocus&&j.__input.focus()}}F("color",{kind:"field",domEvents:["customColorsChange"],build(j,H){const ne=H.doc;P(ne);const q=ne.createElement("div");q.className="lat-form__color",q.__item=j,q.__t=H.t||c,q.__open=!1,q.__value=r(j.value),q.__customColors=y(j);const ke=ne.createElement("div");ke.className="lat-form__color-field",q.__field=ke;const Ee=ne.createElement("button");Ee.type="button",Ee.className="lat-form__color-swatch",Ee.setAttribute("aria-label",q.__t("form.color.open")),q.__swatchBtn=Ee;const C=ne.createElement("input");C.type="text",C.className="lat-form__color-input",j.name&&(C.name=j.name),j.placeholder!=null&&(C.placeholder=String(j.placeholder)),j.label!=null&&j.label!==""&&C.setAttribute("aria-label",String(j.label)),i(C),p(C,j.autocomplete),C.readOnly=!v(j),q.__input=C,ke.appendChild(Ee),ke.appendChild(C);let K=null;if(f(j)){K=ne.createElement("button"),K.type="button",K.className="lat-form__color-clear",K.setAttribute("aria-label",q.__t("form.color.clear"));const be=e(ne,"close");be&&K.appendChild(be),K.addEventListener("click",()=>{O(q,null),C.focus()}),ke.appendChild(K)}q.__clearBtn=K;const G=ne.createElement("button");G.type="button",G.className="lat-form__color-toggle",G.setAttribute("aria-label",q.__t("form.color.open"));const B=b(j),te=B?e(ne,B):e(ne,"chevronDown");te&&G.appendChild(te),q.__toggleBtn=G,ke.appendChild(G),q.appendChild(ke);const ge=ne.createElement("div");ge.className="lat-form__color-popover",ge.hidden=!0,q.__popover=ge,q.appendChild(ge),$(q,q.__value);const oe=()=>{q.__open?ie(q):Pe(q)};Ee.addEventListener("click",oe),G.addEventListener("click",oe),C.addEventListener("input",()=>{h(q)}),C.addEventListener("change",be=>{be.stopPropagation(),ee(q)}),C.addEventListener("keydown",be=>{be.key==="Enter"?(be.preventDefault(),ee(q)):be.key==="Escape"&&q.__open?ie(q):be.altKey&&be.key==="ArrowDown"&&(be.preventDefault(),Pe(q))}),q.addEventListener("keydown",be=>{be.target!==C&&(be.key==="Enter"&&!q.__open||be.altKey&&be.key==="ArrowDown"?(be.preventDefault(),Pe(q)):be.key==="Escape"&&q.__open&&(be.preventDefault(),ie(q,{restoreFocus:!0})))});const fe=be=>{!q.__open||q.contains(be.target)||ie(q)},ve=be=>{q.__open&&(be.relatedTarget&&q.contains(be.relatedTarget)||ie(q))};return ne.addEventListener("pointerdown",fe),q.addEventListener("focusout",ve),Array.isArray(H.disposers)&&H.disposers.push(()=>{ne.removeEventListener("pointerdown",fe),q.removeEventListener("focusout",ve)}),q},read(j){const H=j.__input.value.trim();return H===""?null:u(H)||H},write(j,H){if(H==null||H===""){j.__value=null,$(j,null);return}const ne=r(H);if(!ne){s("form.color.setValue",`form.color: "${String(H)}" is not a colour (expected hex or a red-green-blue triplet); the value is unchanged.`);return}j.__value=ne,$(j,ne)},state(j,H){const ne=H.disabled===!0||H.readOnly===!0;j.__input.disabled=H.disabled===!0,j.__input.readOnly=H.readOnly===!0||!v(H),j.__swatchBtn.disabled=ne,j.__toggleBtn.disabled=ne,j.__clearBtn&&(j.__clearBtn.disabled=ne),ne&&ie(j)},validate(j,H,ne){return ne==null||typeof ne=="string"&&/^#[0-9a-f]{6}$/.test(ne)?!0:typeof H.errorMessage=="string"&&H.errorMessage!==""?H.errorMessage:j.__t("form.color.invalidHex")},focus(j){j.__input.focus()}})}),Me("packages/dom/src/cell/renderers/barcode/support.js",function(A,J){"use strict";Object.defineProperty(A,"expandWidths",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"joinCharacters",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"buildPattern",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"mod10Weighted",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"MOD43_ORDER",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"mod43Check",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"weightedModulo",{enumerable:!0,get:function(){return I}});function _e(M){const W=[];for(let E=0;E<M.length;E++){const T=E%2===0?1:0;for(let i=0;i<M[E];i++)W.push(T)}return W}function F(M,W){const E=[];return M.forEach((T,i)=>{if(i>0&&W>0)for(let p=0;p<W;p++)E.push(0);E.push(...T)}),E}function L(M,W){return F(M.map(_e),W)}function e(M,W=3){let E=0,T=W;for(let i=M.length-1;i>=0;i--)E+=Number(M[i])*T,T=T===3?1:3;return(10-E%10)%10}const P="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function D(M){let W=0;for(const E of M){const T=P.indexOf(E);if(T<0)return null;W+=T}return P[W%43]}function I(M,W,E=11){let T=0,i=1;for(let p=M.length-1;p>=0;p--)T+=M[p]*i,i=i===W?1:i+1;return T%E}}),Me("packages/dom/src/cell/renderers/barcode/code39.js",function(A,J){"use strict";Object.defineProperty(A,"toExtendedSymbols",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"decodeExtendedSymbols",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"encodeCode39",{enumerable:!0,get:function(){return k}});const _e=J("packages/dom/src/cell/renderers/barcode/support.js"),F=_e.buildPattern,L=_e.mod43Check,e=_e.MOD43_ORDER,P=2,D=["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"],I="010010100";function M(d){return d.split("").map(c=>c==="1"?P:1)}function W(d){const c=e.indexOf(d);return c<0?null:M(D[c])}function E(){const d=new Map,c=t=>String.fromCharCode(65+t);for(let t=1;t<=26;t++)d.set(t,`$${c(t-1)}`);d.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((t,s)=>d.set(27+s,t));for(let t=33;t<=44;t++)d.set(t,`/${c(t-33)}`);d.set(47,"/O"),d.set(58,"/Z");for(let t=59;t<=63;t++)d.set(t,`%${c(t-59+5)}`);d.set(64,"%V");for(let t=91;t<=95;t++)d.set(t,`%${c(t-91+10)}`);d.set(96,"%W");for(let t=97;t<=122;t++)d.set(t,`+${c(t-97)}`);for(let t=123;t<=127;t++)d.set(t,`%${c(t-123+15)}`);return d}const T=E(),i=new Map([...T].map(([d,c])=>[c,d]));function p(d){const c=[];for(const t of d){const s=t.codePointAt(0);if(s>127)return null;if(e.includes(t)){c.push(t);continue}const u=T.get(s);if(!u)return null;c.push(u[0],u[1])}return c}function S(d){let c="";for(let t=0;t<d.length;t++){const s=d[t]+(d[t+1]??"");if(i.has(s)){c+=String.fromCharCode(i.get(s)),t++;continue}c+=d[t]}return c}function k(d,c={}){const t=d==null?"":String(d);if(t==="")return{ok:!1,reason:"empty"};const s=c.extended?p(t):t.split("");if(!s)return{ok:!1,reason:"charset"};const u=[M(I)];for(const r of s){const m=W(r);if(!m)return{ok:!1,reason:"charset"};u.push(m)}if(c.checkDigit){const r=L(s.join(""));return r==null?{ok:!1,reason:"charset"}:(u.push(W(r)),u.push(M(I)),{ok:!0,modules:F(u,1),text:`${t}${r}`})}return u.push(M(I)),{ok:!0,modules:F(u,1),text:t}}}),Me("packages/dom/src/cell/renderers/barcode/ean.js",function(A,J){"use strict";Object.defineProperty(A,"L_PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"G_PATTERNS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"R_PATTERNS",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"EAN13_PARITY",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"encodeEan13",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"encodeEan8",{enumerable:!0,get:function(){return E}});const F=J("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"],P=L.map(T=>T.split("").map(i=>i==="1"?"0":"1").join("")),D=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function I(T){return T.split("").map(Number)}function M(T,i){const p=T==null?"":String(T);if(!/^\d+$/.test(p))return null;if(p.length===i)return{digits:p,check:F(p)};if(p.length===i+1){const S=p.slice(0,i),k=Number(p[i]),d=F(S);return k!==d?null:{digits:S,check:d}}return null}function W(T){const i=M(T,12);if(!i)return{ok:!1,reason:"checkDigit"};const p=i.digits+i.check,S=D[Number(p[0])],k=p.slice(1,7).split("").map((t,s)=>(S[s]==="L"?L:e)[Number(t)]),d=p.slice(7).split("").map(t=>P[Number(t)]);return{ok:!0,modules:[...I("101"),...k.flatMap(I),...I("01010"),...d.flatMap(I),...I("101")],text:p}}function E(T){const i=M(T,7);if(!i)return{ok:!1,reason:"checkDigit"};const p=i.digits+i.check,S=p.slice(0,4).split("").map(c=>L[Number(c)]),k=p.slice(4).split("").map(c=>P[Number(c)]);return{ok:!0,modules:[...I("101"),...S.flatMap(I),...I("01010"),...k.flatMap(I),...I("101")],text:p}}}),Me("packages/dom/src/cell/renderers/barcode/upc.js",function(A,J){"use strict";Object.defineProperty(A,"encodeUpcA",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"encodeUpcE",{enumerable:!0,get:function(){return T}});const _e=J("packages/dom/src/cell/renderers/barcode/ean.js"),F=_e.L_PATTERNS,L=_e.G_PATTERNS,e=_e.encodeEan13,D=J("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function I(i){return i.split("").map(Number)}function M(i){const p=i==null?"":String(i);if(!/^\d{11,12}$/.test(p))return{ok:!1,reason:"checkDigit"};const S=e(`0${p}`);return S.ok?{ok:!0,modules:S.modules,text:S.text.slice(1)}:S}function W(i,p){const S=i.split(""),k=S[5];return k<="2"?`${S[0]}${S[1]}${k}0000${S[2]}${S[3]}${S[4]}`:k==="3"?`${S[0]}${S[1]}${S[2]}00000${S[3]}${S[4]}`:k==="4"?`${S[0]}${S[1]}${S[2]}${S[3]}00000${S[4]}`:`${S[0]}${S[1]}${S[2]}${S[3]}${S[4]}0000${k}`}const E={0:["EEEOOO","OOOEEE"],1:["EEOEOO","OOEOEE"],2:["EEOOEO","OOEEOE"],3:["EEOOOE","OOEEEO"],4:["EOEEOO","OEOOEE"],5:["EOOEEO","OEEOOE"],6:["EOOOEE","OEEEOO"],7:["EOEOEO","OEOEOE"],8:["EOEOOE","OEOEEO"],9:["EOOEOE","OEEOEO"]};function T(i){const p=i==null?"":String(i);if(!/^\d{6,8}$/.test(p))return{ok:!1,reason:"checkDigit"};let S,k,d=null;if(p.length===6?(S="0",k=p):p.length===7?(S=p[0],k=p.slice(1)):(S=p[0],k=p.slice(1,7),d=p[7]),S!=="0"&&S!=="1")return{ok:!1,reason:"checkDigit"};const c=W(k,S),t=D(S+c);if(d!=null&&Number(d)!==t)return{ok:!1,reason:"checkDigit"};const u=E[t][Number(S)].split("").map((m,z)=>(m==="O"?F:L)[Number(k[z])]);return{ok:!0,modules:[...I("101"),...u.flatMap(I),...I("010101")],text:`${S}${k}${t}`}}}),Me("packages/dom/src/cell/renderers/barcode/code93.js",function(A,J){"use strict";Object.defineProperty(A,"toExtendedSymbols",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"decodeExtendedSymbols",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"encodeCode93",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"PATTERNS",{enumerable:!0,get:function(){return L}}),Object.defineProperty(A,"BASE_ORDER",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(A,"SHIFT_ORDER",{enumerable:!0,get:function(){return F}}),Object.defineProperty(A,"START_STOP",{enumerable:!0,get:function(){return e}});const _e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",F=["($)","(%)","(/)","(+)"],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 P(d){const c=[];for(let t=0;t<d.length;t++){const s=t%2===0?1:0;for(let u=0;u<d[t];u++)c.push(s)}return c}function D(d){return L[d]}function I(d){return _e.indexOf(d)}function M(){const d=new Map,c=43,t=44,s=45,u=46,r=m=>10+m;for(let m=1;m<=26;m++)d.set(m,[c,r(m-1)]);d.set(0,[t,r(20)]);for(let m=27;m<=31;m++)d.set(m,[t,r(m-27)]);for(let m=33;m<=44;m++)d.set(m,[s,r(m-33)]);d.set(47,[s,r(14)]),d.set(58,[s,r(25)]);for(let m=59;m<=63;m++)d.set(m,[t,r(m-59+5)]);d.set(64,[t,r(21)]);for(let m=91;m<=95;m++)d.set(m,[t,r(m-91+10)]);d.set(96,[t,r(22)]);for(let m=97;m<=122;m++)d.set(m,[u,r(m-97)]);for(let m=123;m<=127;m++)d.set(m,[t,r(m-123+15)]);return d}const W=M(),E=new Map([...W].map(([d,c])=>[c.join(","),d]));function T(d){const c=[];for(const t of d){const s=t.codePointAt(0);if(s>127)return null;const u=I(t);if(u>=0){c.push(u);continue}const r=W.get(s);if(!r)return null;c.push(r[0],r[1])}return c}function i(d){let c="";for(let t=0;t<d.length;t++){const s=`${d[t]},${d[t+1]??""}`;if(E.has(s)){c+=String.fromCharCode(E.get(s)),t++;continue}c+=_e[d[t]]}return c}function p(d){let c=0,t=1;for(let s=d.length-1;s>=0;s--)c+=d[s]*t,t=t===20?1:t+1;return c%47}function S(d){const c=p(d),t=p([...d,c]);return{c,k:t}}function k(d,c={}){const t=d==null?"":String(d);if(t==="")return{ok:!1,reason:"empty"};const s=c.extended?T(t):(()=>{const l=[];for(const g of t){const w=I(g);if(w<0)return null;l.push(w)}return l})();if(!s)return{ok:!1,reason:"charset"};const{c:u,k:r}=S(s),m=[e];for(const l of s)m.push(D(l));return m.push(D(u)),m.push(D(r)),m.push(e),{ok:!0,modules:m.flatMap(P),text:t}}}),Me("packages/dom/src/cell/renderers/barcode/code128.js",function(A,J){"use strict";Object.defineProperty(A,"encodeCode128",{enumerable:!0,get:function(){return d}});const F=J("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,P=104,D=105,I=106,M={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},W={A:e,B:P,C:D};function E(c){return c>=32&&c<=95?c-32:c>=0&&c<=31?c+64:null}function T(c){return c>=32&&c<=127?c-32:null}function i(c,t){const s=c.charCodeAt(t),u=c.charCodeAt(t+1);return s>=48&&s<=57&&u>=48&&u<=57}function p(c,t,s){const u=[],r=c.charCodeAt(t),m=E(r);if(m!=null){const l=s==="A"||s===null?[m]:[M[s].A,m];u.push({to:"A",symbols:l,advance:1})}const z=T(r);if(z!=null){const l=s==="B"||s===null?[z]:[M[s].B,z];u.push({to:"B",symbols:l,advance:1})}if(i(c,t)){const l=Number(c.slice(t,t+2)),g=s==="C"||s===null?[l]:[M[s].C,l];u.push({to:"C",symbols:g,advance:2})}return u}function S(c){const t=c.length,s=Array.from({length:t+1},()=>({}));s[0].start={cost:0,prev:null,symbols:[]};for(let w=0;w<=t;w++)for(const x of Object.keys(s[w])){const v=s[w][x];if(w===t)continue;const f=x==="start"?null:x;for(const o of p(c,w,f)){const _=w+o.advance,b=v.cost+o.symbols.length,y=s[_][o.to];(!y||b<y.cost)&&(s[_][o.to]={cost:b,prev:x,symbols:o.symbols,backI:w})}}const u=Object.entries(s[t]);if(u.length===0)return null;u.sort((w,x)=>w[1].cost-x[1].cost);const[,r]=u[0],m=[];let z=t,l=u[0][0],g=l;for(;z>0;){const w=s[z][l];m.push(w.symbols),g=l,z=w.backI,l=w.prev}return m.reverse(),{symbols:m.flat(),startSubset:g}}function k(c,t){let s=c;for(let u=0;u<t.length;u++)s+=t[u]*(u+1);return s%103}function d(c,t={}){const s=c==null?"":String(c);if(s==="")return{ok:!1,reason:"empty"};for(let w=0;w<s.length;w++)if(s.charCodeAt(w)>127)return{ok:!1,reason:"charset"};const u=S(s);if(!u)return{ok:!1,reason:"charset"};const r=W[u.startSubset],m=k(r,u.symbols);return{ok:!0,modules:[r,...u.symbols,m,I].map(w=>L[w].split("").map(Number)).flatMap(w=>F(w)),text:s}}}),Me("packages/dom/src/cell/renderers/barcode/code11.js",function(A,J){"use strict";Object.defineProperty(A,"encodeCode11",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"ALPHABET",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"PATTERNS",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"START_STOP",{enumerable:!0,get:function(){return D}});const _e=J("packages/dom/src/cell/renderers/barcode/support.js"),F=_e.buildPattern,L=_e.weightedModulo,e="0123456789-",P=[[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]],D=[2,1,1,1,2,1],I=i=>e.indexOf(i);function M(i){const p=I(i);return p<0?null:P[p]}function W(i){return e[L(i,10)]}function E(i){return e[L(i,9)]}function T(i,p={}){const S=i==null?"":String(i);if(S==="")return{ok:!1,reason:"empty"};const k=[];for(const r of S){const m=I(r);if(m<0)return{ok:!1,reason:"charset"};k.push(m)}const d=W(k),c=I(d),s=S.length>=10?`${d}${E([...k,c])}`:d,u=[D];for(const r of S)u.push(M(r));for(const r of s)u.push(M(r));return u.push(D),{ok:!0,modules:F(u,1),text:`${S}${s}`}}}),Me("packages/dom/src/cell/renderers/barcode/codabar.js",function(A,J){"use strict";Object.defineProperty(A,"MOD16_ORDER",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"encodeCodabar",{enumerable:!0,get:function(){return T}});const F=J("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"},P="0123456789-$:/.+",D="ABCD",I="0123456789-$:/.+ABCD";function M(i){return i.split("").map(p=>p==="w"?L:1)}function W(i){const p=e[i];return p?M(p):null}function E(i){let p=0;for(const k of i){const d=I.indexOf(k);if(d<0)return null;p+=d}const S=p%16;return S<10?String(S):null}function T(i,p={}){const S=i==null?"":String(i);if(S==="")return{ok:!1,reason:"empty"};const k=S.toUpperCase();if(k.length<2)return{ok:!1,reason:"charset"};const d=k[0],c=k[k.length-1];if(!D.includes(d)||!D.includes(c))return{ok:!1,reason:"charset"};const t=k.slice(1,-1);for(const r of t)if(!P.includes(r))return{ok:!1,reason:"charset"};const s=[d,...t.split(""),c];if(p.checkDigit){const r=E(s);if(r==null)return{ok:!1,reason:"checkDigit"};s.splice(s.length-1,0,r);const m=s.map(W),z=`${k.slice(0,-1)}${r}${c}`;return{ok:!0,modules:F(m,1),text:z}}const u=s.map(W);return{ok:!0,modules:F(u,1),text:k}}}),Me("packages/dom/src/cell/renderers/barcode/code32.js",function(A,J){"use strict";Object.defineProperty(A,"ALPHABET",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"decodeCode32Modules",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"encodeCode32",{enumerable:!0,get:function(){return p}});const F=J("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,L=2,e="010010100",P={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"},D="0123456789BCDFGHJKLMNPQRSTUVWXYZ",I=S=>S.split("").map(k=>k==="1"?L:1),M=S=>P[S]?I(P[S]):null,W=()=>I(e);function E(S){let k=0;for(let d=0;d<8;d++){const c=d+1;let t=Number(S[d]);c%2===0&&(t*=2,t>=10&&(t-=9)),k+=t}return k%10}function T(S,k){let d="",c=S;for(let t=0;t<k;t++)d=D[c%32]+d,c=Math.floor(c/32);return d}function i(S){const k=[];for(let u=0;u<S.length;u++)u===0||S[u]!==S[u-1]?k.push(1):k[k.length-1]++;const d=1,c=u=>u>d?"1":"0",t=[];let s=9;for(;s<k.length;){s+=1;const u=k.slice(s,s+9);if(u.length<9)break;const r=u.map(c).join(""),m=Object.keys(P).find(z=>P[z]===r);t.push(m??"?"),s+=9}return t.pop(),t}function p(S,k={}){const d=S==null?"":String(S);if(d==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(d))return{ok:!1,reason:"charset"};const c=d.slice(0,8),t=E(c);let s;if(d.length===9){const g=Number(d[8]);if(g!==t)return{ok:!1,reason:"checkDigit"};s=g}else s=t;const u=`${c}${s}`,r=Number(u),z=`A${T(r,6)}`.split(""),l=[W()];for(const g of z){const w=M(g);if(!w)return{ok:!1,reason:"charset"};l.push(w)}return l.push(W()),{ok:!0,modules:F(l,1),text:u}}}),Me("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(A,J){"use strict";Object.defineProperty(A,"gfMul",{enumerable:!0,get:function(){return e}}),Object.defineProperty(A,"gfExp",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"generatorPoly",{enumerable:!0,get:function(){return D}}),Object.defineProperty(A,"reedSolomon",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"SIZES",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"dataCodewords",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"errorCodewords",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"dataRegionSize",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"encodeAscii",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"base256Mask",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"encodeBase256",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"padCodewords",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"utahPlacementOrder",{enumerable:!0,get:function(){return u}}),Object.defineProperty(A,"diagonalWalkCoverage",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"placeCodewords",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"buildSymbol",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"encodeDataMatrix",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return v}});const _e=301,F=new Uint8Array(512),L=new Uint8Array(256);{let f=1;for(let o=0;o<255;o++)F[o]=f,L[f]=o,f<<=1,f&256&&(f^=_e);for(let o=255;o<512;o++)F[o]=F[o-255]}function e(f,o){return f===0||o===0?0:F[L[f]+L[o]]}function P(f){return F[(f%255+255)%255]}function D(f){let o=new Uint8Array([1]);for(let _=0;_<f;_++){const b=new Uint8Array(o.length+1);for(let y=0;y<o.length;y++)b[y]^=o[y],b[y+1]^=e(o[y],P(_));o=b}return o.subarray(1)}function I(f,o){const _=D(o),b=new Uint8Array(o);for(let y=0;y<f.length;y++){const h=f[y]^b[0];if(b.copyWithin(0,1),b[o-1]=0,h!==0)for(let $=0;$<o;$++)b[$]^=e(_[$],h)}return b}const M={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]},W=Object.keys(M).map(Number).sort((f,o)=>f-o);function E(f){const o=M[f];if(!o)throw new RangeError(`unsupported Data Matrix size ${f}`);return o[0]}function T(f){const o=M[f];if(!o)throw new RangeError(`unsupported Data Matrix size ${f}`);return o[1]}function i(f){return f-2}const p=129,S=231,k=f=>f>=48&&f<=57;function d(f){const o=[];let _=0;for(;_<f.length;){const b=f[_],y=_+1<f.length?f[_+1]:-1;if(k(b)&&k(y)){const h=b-48,$=y-48;o.push(h*10+$+130),_+=2}else o.push(b+1),_+=1}return o}function c(f,o){const _=149*o%255+1;return(f+_)%256}function t(f,o){if(f.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const _=[S,f.length];for(let b=0;b<f.length;b++)_.push(c(f[b],o+2+b));return _}function s(f,o){if(f.length>o)throw new RangeError(`encoded stream (${f.length} codewords) exceeds capacity (${o})`);const _=f.slice();for(;_.length<o;)_.push(p);return _}function u(f){const o=new Array(f*f).fill(null),_=[],b=(se,Z)=>se>=0&&se<f&&Z>=0&&Z<f,y=(se,Z)=>{if(!b(se,Z))return;const Q=se*f+Z;if(o[Q]===null){const Pe={row:se,col:Z};o[Q]=Pe,_.push(Pe)}},h=(se,Z)=>{const Q=ie=>(ie%f+f)%f,Pe=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[ie,j]of Pe)y(Q(se+ie),Q(Z+j))};let $=4,ee=0,O=0;const ae=f*f+64;do{for(;$>=0&&ee<f;)h($,ee),$-=2,ee+=2;for($+=1,ee+=3;$<f&&ee>=0;)h($,ee),$+=2,ee-=2;$+=3,ee+=1}while(($<f||ee<f)&&O++<ae);const le=_.length;for(let se=0;se<f;se++)for(let Z=0;Z<f;Z++)y(se,Z);return Object.defineProperty(_,"sweptCount",{value:_.length-le,enumerable:!1}),_}function r(f){return u(f).sweptCount}function m(f,o){const _=u(o),b=new Uint8Array(o*o);for(let y=0;y<_.length;y++){const h=Math.floor(y/8);if(h>=f.length)break;const $=7-y%8,ee=f[h]>>>$&1,{row:O,col:ae}=_[y];b[O*o+ae]=ee}return b}function z(f,o){const _=o+2,b=new Uint8Array(_*_),y=($,ee,O)=>{b[$*_+ee]=O},h=_-1;for(let $=0;$<_;$++)y(h,$,1);for(let $=0;$<_;$++)y($,0,1);for(let $=0;$<_;$++)y(0,$,$%2===0?1:0);for(let $=0;$<_;$++)y($,_-1,$%2===0?1:0);for(let $=0;$<o;$++)for(let ee=0;ee<o;ee++)b[($+1)*_+(ee+1)]=f[$*o+ee];return{size:_,modules:b}}function l(f){const o=new Uint8Array(f.length);for(let _=0;_<f.length;_++)o[_]=f.charCodeAt(_)&255;return o}function g(f){for(let o=0;o<f.length;o++)if(f[o]>127)return!1;return!0}function w(f){for(const o of W)if(E(o)>=f)return o;return 0}function x(f,o={}){if(f==null||f==="")return{ok:!1,reason:"empty"};const _=String(f),b=l(_),y=o&&o.encodation==="base256";if(!y&&!g(b))return{ok:!1,reason:"charset"};let h;if(y){if(b.length>249)return{ok:!1,reason:"capacity"};h=t(b,1)}else h=d(b);const $=o&&o.size;let ee;if($!=null){if(!M[$])return{ok:!1,reason:"capacity"};if(h.length>E($))return{ok:!1,reason:"capacity"};ee=$}else if(ee=w(h.length),ee===0)return{ok:!1,reason:"capacity"};const O=E(ee),ae=s(h,O),le=I(ae,T(ee)),se=new Uint8Array(O+le.length);se.set(ae,0),se.set(le,O);const Z=i(ee),Q=m(se,Z),{modules:Pe}=z(Q,Z);return{ok:!0,matrix:{size:ee,modules:Pe},text:_}}const v=x}),Me("packages/dom/src/cell/renderers/barcode/index.js",function(A,J){"use strict";Object.defineProperty(A,"BARCODE_TYPES",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"encodeBarcode",{enumerable:!0,get:function(){return m}});const _e=J("packages/dom/src/cell/renderers/barcode/code39.js"),F=_e.encodeCode39,L=J("packages/dom/src/cell/renderers/barcode/ean.js"),e=L.encodeEan13,P=L.encodeEan8,D=J("packages/dom/src/cell/renderers/barcode/upc.js"),I=D.encodeUpcA,M=D.encodeUpcE,W=J("packages/dom/src/cell/renderers/barcode/code93.js"),E=W.encodeCode93,T=J("packages/dom/src/cell/renderers/barcode/code128.js"),i=T.encodeCode128,p=J("packages/dom/src/cell/renderers/barcode/code11.js"),S=p.encodeCode11,k=J("packages/dom/src/cell/renderers/barcode/codabar.js"),d=k.encodeCodabar,c=J("packages/dom/src/cell/renderers/barcode/code32.js"),t=c.encodeCode32,s=J("packages/dom/src/cell/renderers/barcode/datamatrix.js"),u=s.encodeDataMatrix;Object.defineProperty(A,"encodeCode39",{enumerable:!0,get:function(){return _e.encodeCode39}}),Object.defineProperty(A,"encodeEan13",{enumerable:!0,get:function(){return L.encodeEan13}}),Object.defineProperty(A,"encodeEan8",{enumerable:!0,get:function(){return L.encodeEan8}}),Object.defineProperty(A,"encodeUpcA",{enumerable:!0,get:function(){return D.encodeUpcA}}),Object.defineProperty(A,"encodeUpcE",{enumerable:!0,get:function(){return D.encodeUpcE}}),Object.defineProperty(A,"encodeCode93",{enumerable:!0,get:function(){return W.encodeCode93}}),Object.defineProperty(A,"encodeCode128",{enumerable:!0,get:function(){return T.encodeCode128}}),Object.defineProperty(A,"encodeCode11",{enumerable:!0,get:function(){return p.encodeCode11}}),Object.defineProperty(A,"encodeCodabar",{enumerable:!0,get:function(){return k.encodeCodabar}}),Object.defineProperty(A,"encodeCode32",{enumerable:!0,get:function(){return c.encodeCode32}}),Object.defineProperty(A,"encodeDataMatrix",{enumerable:!0,get:function(){return s.encodeDataMatrix}});const r=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function m(z,l,g={}){switch(z){case"code39":return F(l,{checkDigit:g.checkDigit});case"code39ext":return F(l,{extended:!0,checkDigit:g.checkDigit});case"ean13":return e(l);case"ean8":return P(l);case"upca":return I(l);case"upce":return M(l);case"code93":return E(l);case"code93ext":return E(l,{extended:!0});case"code128":return i(l);case"code11":return S(l);case"codabar":return d(l,{checkDigit:g.checkDigit});case"code32":return t(l);case"datamatrix":return u(l,{size:g.size,encodation:g.encodation});default:return{ok:!1,reason:"type"}}}}),Me("packages/dom/src/cell/renderers/barcode/render.js",function(A,J){"use strict";Object.defineProperty(A,"warnOnce",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"barsPathData",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"matrixPathData",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"paint",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"buildSvg",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"renderBarcode",{enumerable:!0,get:function(){return d}});const F=J("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,L="http://www.w3.org/2000/svg",e=60,P=16,D=4;function I(c,t,s){s==null||s===!1?c.removeAttribute(t):c.setAttribute(t,String(s))}const M=new Set;function W(c,t){M.has(c)||(M.add(c),console.warn("[lattice]",t))}function E(c,t,s){const u=[];let r=0;for(;r<c.length;){if(!c[r]){r++;continue}let m=1;for(;r+m<c.length&&c[r+m];)m++;u.push(`M${r+t} 0h${m}v${s}h-${m}z`),r+=m}return u.join("")}function T(c,t){const{size:s,modules:u}=c,r=[];for(let m=0;m<s;m++){let z=0;for(;z<s;){if(!u[m*s+z]){z++;continue}let l=1;for(;z+l<s&&u[m*s+z+l];)l++;r.push(`M${z+t} ${m+t}h${l}v1h-${l}z`),z+=l}}return r.join("")}function i(c){const t=c&&typeof c=="object"?c:{};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 p(c){const t=Math.floor(Number(c));return!Number.isFinite(t)||t<0?10:Math.min(40,t)}function S(c,t,s){const u=p(s.quietZone),r=i(s.text),m=r.show,z=!!t.matrix,l=z?t.matrix.size:t.modules.length,g=z?l+u*2:e,w=m&&r.position==="top"?P+D:0,x=g+(m?P+D:0),v=l+u*2,f=Number(s.moduleWidth)||0,o=f>0?v*f:Number(s.width)||200,_=Number(s.height)||Math.round(o/v*x)||60;I(c.svg,"viewBox",`0 0 ${v} ${x}`),I(c.svg,"width",o),I(c.svg,"height",_);const b=s.print?"#000000":s.foreground||"currentColor",y=s.print?"#ffffff":s.background;if(y?(I(c.background,"x",0),I(c.background,"y",0),I(c.background,"width",v),I(c.background,"height",x),c.background.setAttribute("fill",y),c.background.style.display=""):c.background.style.display="none",c.path.setAttribute("fill",b),c.path.setAttribute("transform",`translate(0 ${w})`),c.path.setAttribute("d",z?T(t.matrix,u):E(t.modules,u,e)),!m){c.text.style.display="none";return}c.text.style.display="",c.text.style.font=r.font,c.text.setAttribute("fill",b),c.text.setAttribute("text-anchor",r.align==="left"?"start":r.align==="right"?"end":"middle");const h=r.align==="left"?u:r.align==="right"?v-u:v/2,$=r.position==="top"?P-r.margin:x-r.margin;I(c.text,"x",h),I(c.text,"y",$),c.text.textContent=t.text}function k(c){const t=c.createElementNS(L,"svg");t.setAttribute("class","lat-barcode__svg"),t.setAttribute("focusable","false"),t.setAttribute("preserveAspectRatio","none");const s=c.createElementNS(L,"rect");s.style.display="none";const u=c.createElementNS(L,"path"),r=c.createElementNS(L,"text");return t.appendChild(s),t.appendChild(u),t.appendChild(r),{svg:t,background:s,path:u,text:r}}function d(c,t){const s=c.ownerDocument,u=k(s);c.textContent="",c.appendChild(u.svg);const r=z=>{const l=z||{},g=String(l.type||"code39"),w=F(g,l.value,{checkDigit:l.checkDigit,size:l.size,encodation:l.encodation});if(!w.ok){W(`barcode:invalid:${g}`,`column "standalone" has a value that is not valid for the "${g}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),u.path.setAttribute("d","");return}S(u,w,l)};return r(t),{update:r,destroy:()=>{c.textContent=""}}}}),Me("packages/modules/form/controls/barcode.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function P(D,I){const M=D.props&&D.props.source;if(!M)return D.value;const W=typeof I.form.getItem=="function"?I.form.getItem(M):null;return W&&typeof W.getValue=="function"?W.getValue():void 0}F("barcode",{kind:"display",build(D,I){const M=I.doc.createElement("span");M.className="lat-form__barcode";const W=e(M,{...D.props,value:P(D,I)}),E=D.props&&D.props.source;if(E){const T=I.emitter.on("change",i=>{i&&i.name===E&&W.update({...D.props,value:i.value})});I.disposers.push(T)}return I.disposers.push(()=>W.destroy()),M._barcodeHandle=W,M},read(D,I,M){return P(I,M)},write(D,I,M){D._barcodeHandle&&D._barcodeHandle.update({...I.props,value:M})},state(){}})}),Me("packages/modules/form/controls/speeddial.js",function(A,J){"use strict";Object.defineProperty(A,"injectSpeedDialStyles",{enumerable:!0,get:function(){return s}}),Object.defineProperty(A,"createSpeedDial",{enumerable:!0,get:function(){return o}});const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,D=J("packages/modules/form/ids.js").nextId,I=J("packages/modules/form/scheme.js"),M=I.rootDefaultsCss,W=I.darkAccentCss,T=J("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,i="lat-speeddial",p="data-lattice-speeddial-styles",S="http://www.w3.org/2000/svg",k=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),d=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),c=Object.freeze(["up","down","left","right"]);function t(){const _=`
|
|
2215
2215
|
.lat-form,
|
|
2216
2216
|
.lat-speeddial[data-lattice-standalone]{
|
|
2217
2217
|
--lattice-speeddial-primary-bg:#5a46d6;
|
|
@@ -2396,6 +2396,6 @@ ${M()}
|
|
|
2396
2396
|
${_}
|
|
2397
2397
|
${y}
|
|
2398
2398
|
${b}
|
|
2399
|
-
`.trim()}function s(_){const b=_&&_.documentElement;if(!b||b.getAttribute(p))return;b.setAttribute(p,"1");const y=_.createElement("style");y.textContent=t(),(_.head||_.body||b).appendChild(y)}function u(_){return k.includes(_)?_:"bottom-right"}function r(_){return d.includes(_)?_:"primary"}function m(_,b){return c.includes(b)?b:_.startsWith("top-")?"down":_.startsWith("bottom-")?"up":_==="middle-left"?"right":"left"}function z(_){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 l(_,b){const y=b&&typeof b=="object"?b:{},h=z(_),$=typeof y.startAngle=="number"?y.startAngle:h.startAngle,ee=typeof y.endAngle=="number"?y.endAngle:h.endAngle,O=typeof y.offset=="number"&&y.offset>0?y.offset:0;return{startAngle:$,endAngle:ee,offset:O,defaulted:y.startAngle==null&&y.endAngle==null}}function g(_,b){const y=T[b];if(!y)return null;const h=_.createElementNS(S,"svg");h.setAttribute("viewBox",y.viewBox||"0 0 16 16"),h.setAttribute("aria-hidden","true"),h.setAttribute("focusable","false");const $=y.paint==="stroke";for(const ee of y.paths||[]){const O=_.createElementNS(S,"path");O.setAttribute("d",ee),$?(O.setAttribute("fill","none"),O.setAttribute("stroke","currentColor"),O.setAttribute("stroke-width","1.5"),O.setAttribute("stroke-linecap","round"),O.setAttribute("stroke-linejoin","round")):O.setAttribute("fill","currentColor"),h.appendChild(O)}return h}function w(_,b){if(_==null)return null;if(typeof _=="object"&&_.nodeType)return _;if(typeof _!="string"||_==="")return null;const y=_;if(/^(https?:)?\/\//i.test(y)||/^data:/i.test(y)){const h=b.createElement("img");return h.src=y,h.alt="",h}return g(b,y)}function x(_,b,y){const h=_&&_.defaultView;return h&&h.CustomEvent?new h.CustomEvent(b,{bubbles:!0,detail:y}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:y,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function v(_){return Array.isArray(_)?_.map(b=>{const y=b&&typeof b=="object"?b:{};return{id:y.id,icon:y.icon,text:y.text,disabled:y.disabled===!0,render:typeof y.render=="function"?y.render:null}}):[]}function f(_,b){const y="var(--lat-sd-size)",h="var(--lat-sd-gap)",$="var(--lat-sd-pad)";if(b==="up"||b==="down"){const ae={flexDirection:"column"};return _.endsWith("-left")?(ae.insetInlineStart=$,ae.alignItems="flex-start"):_.endsWith("-right")?(ae.insetInlineEnd=$,ae.alignItems="flex-end"):(ae.left="50%",ae.transform="translateX(-50%)",ae.alignItems="center"),b==="down"?ae.top=`calc(${$} + ${y} + ${h})`:ae.bottom=`calc(${$} + ${y} + ${h})`,ae}const O={flexDirection:"row"};return _.startsWith("top-")?(O.top=$,O.alignItems="flex-start"):_.startsWith("bottom-")?(O.bottom=$,O.alignItems="flex-end"):(O.top="50%",O.transform="translateY(-50%)",O.alignItems="center"),b==="right"?O.insetInlineStart=`calc(${$} + ${y} + ${h})`:O.insetInlineEnd=`calc(${$} + ${y} + ${h})`,O}function o(_,b={}){const y=b.doc||_&&_.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;y&&s(y);const h=typeof b.t=="function"?b.t:e,$=b.inForm===!0,ee=b.emitter||null,O=b.itemName!=null?String(b.itemName):"",ae=b.formItem||null,se=u(b.position),ce=b.fixed===!0,Z=b.openOnHover===!0,Q=b.mode==="radial"?"radial":"linear",Pe=r(b.variant),ie=m(se,b.direction),j=b.modal===!0,H=b.text!=null?String(b.text):"",ne=b.openIcon!=null?b.openIcon:"plus",q=b.closeIcon!=null?b.closeIcon:"close",we=Q==="radial"?l(se,b.radial):null;let $e=b.disabled===!0,C=v(b.items);const K=y.createElement("div");K.className=i,K.setAttribute("data-variant",Pe),K.setAttribute("data-fixed",ce?"true":"false"),$||K.setAttribute("data-lattice-standalone","true");const G=D("lat-speeddial-menu"),B=y.createElement("button");B.type="button",B.className=`${i}__fab`,B.setAttribute("data-position",se),B.setAttribute("aria-haspopup","menu"),B.setAttribute("aria-expanded","false"),B.setAttribute("aria-controls",G),H&&B.setAttribute("data-text","true");const te=y.createElement("span");if(te.className=`${i}__fab-icon`,te.setAttribute("aria-hidden","true"),B.appendChild(te),H){const Oe=y.createElement("span");Oe.className=`${i}__fab-text`,Oe.textContent=H,B.appendChild(Oe)}const ge=y.createElement("div");ge.className=`${i}__backdrop`,ge.hidden=!0;const oe=y.createElement("div");oe.className=`${i}__menu`,oe.setAttribute("role","menu"),oe.setAttribute("aria-label",h("form.speeddial.menu")),oe.id=G,oe.setAttribute("data-mode",Q),Q==="linear"&&oe.setAttribute("data-direction",ie),oe.hidden=!0,K.appendChild(ge),K.appendChild(oe),K.appendChild(B);let fe=!1;const ve=[];let me=!1;const X=(Oe,Te)=>{ee?ee.emit(Oe,{name:O,item:ae,...Te}):_.dispatchEvent(x(y,Oe,Te))},de=()=>H||h(fe?"form.speeddial.close":"form.speeddial.open"),pe=()=>{for(;te.firstChild;)te.removeChild(te.firstChild);const Oe=w(fe?q:ne,y);Oe&&te.appendChild(Oe)},Y=(Oe,Te)=>{const Le=y.createElement("button");Le.type="button",Le.className=`${i}__item`,Le.setAttribute("role","menuitem"),Le.setAttribute("tabindex","-1"),Le.dataset.index=String(Te);const We=Oe.text!=null&&String(Oe.text)!==""?String(Oe.text):Oe.id!=null?String(Oe.id):"";We&&Le.setAttribute("aria-label",We),Oe.disabled&&Le.setAttribute("aria-disabled","true");const Ve=w(Oe.icon,y),Ze=Oe.text!=null?String(Oe.text):"";if(typeof Oe.render=="function"){const Xe=Oe.render(Oe,Te);Xe&&typeof Xe=="object"&&Xe.nodeType?Le.appendChild(Xe):Le.textContent=Xe!=null?String(Xe):""}else{if(Ve){const Xe=y.createElement("span");Xe.className=`${i}__item-icon`,Xe.setAttribute("aria-hidden","true"),Xe.appendChild(Ve),Le.appendChild(Xe)}if(Ze!==""){const Xe=y.createElement("span");Xe.className=`${i}__item-text`,Xe.textContent=Ze,Le.appendChild(Xe)}}Le.setAttribute("data-icon-only",Ve!=null&&Ze===""?"true":"false"),Le.setAttribute("data-text-only",Ve==null&&Ze!==""?"true":"false");const He=Xe=>{Xe.stopPropagation(),!(Oe.disabled||$e)&&(X("itemClick",{item:Oe,index:Te}),ye(!1),B.focus())};Le.addEventListener("click",He),ve.push(()=>Le.removeEventListener("click",He));const rt=Xe=>{Xe.key==="Escape"?(Xe.preventDefault(),Xe.stopPropagation(),ye(!1),B.focus()):Xe.key==="ArrowDown"||Xe.key==="ArrowRight"?(Xe.preventDefault(),R(Te,1)):(Xe.key==="ArrowUp"||Xe.key==="ArrowLeft")&&(Xe.preventDefault(),R(Te,-1))};return Le.addEventListener("keydown",rt),ve.push(()=>Le.removeEventListener("keydown",rt)),Le};let re=[];const N=()=>{for(;oe.firstChild;)oe.removeChild(oe.firstChild);re=C.map((Oe,Te)=>Y(Oe,Te));for(const Oe of re)oe.appendChild(Oe);pe()},ue=()=>{if(Q!=="radial"||!we)return;const Oe=B.getBoundingClientRect(),Te=ce?0:K.getBoundingClientRect().left,Le=ce?0:K.getBoundingClientRect().top,We=Oe.left+Oe.width/2-Te,Ve=Oe.top+Oe.height/2-Le,Ze=we.offset||Math.round(Oe.width/2+28);let He=we.startAngle,rt=we.endAngle;if(we.defaulted&&getComputedStyle(K).direction==="rtl"){const Ge=180-rt;rt=180-He,He=Ge}const Xe=re.length;re.forEach((Ge,xe)=>{const Fe=(Xe<=1?(He+rt)/2:He+(rt-He)*(xe/(Xe-1)))*Math.PI/180;Ge.style.left=`${Math.round(We+Ze*Math.cos(Fe))}px`,Ge.style.top=`${Math.round(Ve-Ze*Math.sin(Fe))}px`})},ye=(Oe,Te={})=>{me||$e||fe===Oe||(fe=Oe,B.setAttribute("aria-expanded",fe?"true":"false"),B.setAttribute("aria-label",de()),oe.hidden=!fe,j&&(ge.hidden=!fe),pe(),fe?(X("open",{}),ue(),Te.focusItems!==!1&&R(-1,1)):X("close",{}))},R=(Oe,Te)=>{const Le=re.length;if(Le===0)return;let We=Oe===-1?Te>0?0:Le-1:(Oe+Te+Le)%Le;for(let Ve=0;Ve<Le;Ve+=1){if(!C[We].disabled){re[We].focus();return}We=(We+Te+Le)%Le}},n=()=>{ye(!0,{focusItems:!1})},a=()=>{fe&&(ye(!1),B.focus())},U=()=>{ye(!fe,{focusItems:!1})};if(Q==="linear"){const Oe=f(se,ie);for(const Te of Object.keys(Oe))oe.style[Te]=Oe[Te]}const V=()=>{$e||U()};B.addEventListener("click",V),ve.push(()=>B.removeEventListener("click",V));const le=()=>{Z&&!$e&&ye(!0,{focusItems:!1})};B.addEventListener("pointerenter",le),ve.push(()=>B.removeEventListener("pointerenter",le));const Ae=()=>{Z&&fe&&ye(!1)};K.addEventListener("pointerleave",Ae),ve.push(()=>K.removeEventListener("pointerleave",Ae));const he=Oe=>{Oe.stopPropagation(),a()};ge.addEventListener("click",he),ve.push(()=>ge.removeEventListener("click",he));const je=Oe=>{if(!fe)return;const Te=Oe.target;Te&&K.contains(Te)||a()};y.addEventListener("pointerdown",je,!0),ve.push(()=>y.removeEventListener("pointerdown",je,!0));const ke=Oe=>{!fe||Oe.key!=="Escape"||(Oe.preventDefault(),a())};y.addEventListener("keydown",ke,!0),ve.push(()=>y.removeEventListener("keydown",ke,!0));const Re=Oe=>{Oe.key==="Escape"?fe&&(Oe.preventDefault(),Oe.stopPropagation(),a()):Oe.key==="ArrowDown"||Oe.key==="ArrowRight"?(Oe.preventDefault(),ye(!0),R(-1,1)):(Oe.key==="ArrowUp"||Oe.key==="ArrowLeft")&&(Oe.preventDefault(),ye(!0),R(-1,-1))};B.addEventListener("keydown",Re),ve.push(()=>B.removeEventListener("keydown",Re));const Ne=Oe=>{$e=Oe===!0,B.disabled=$e,B.setAttribute("aria-disabled",$e?"true":"false"),$e&&fe&&ye(!1)},Me={el:K,fab:B,menu:oe,open:n,close:a,toggle:U,setItems(Oe){C=v(Oe),N()},setDisabled:Ne,destroy(){me=!0;for(const Oe of ve.splice(0))Oe();for(;K.firstChild;)K.removeChild(K.firstChild);K.parentNode&&K.parentNode.removeChild(K)}};return Ne($e),N(),_.appendChild(K),_.__latSpeedDial=Me,Me}F("speeddial",{kind:"button",action:!0,build(_,b){const y=_.props||{},h=b.doc.createElement("div"),$=o(h,{items:y.speedDialItems||y.items,position:y.position,fixed:y.fixed,openOnHover:y.openOnHover,direction:y.direction,mode:_.mode,radial:y.radial,modal:y.modal,openIcon:y.openIcon,closeIcon:y.closeIcon,text:y.text!=null?y.text:_.label,variant:y.variant,disabled:_.disabled,t:b.t,doc:b.doc,inForm:!0,emitter:b.emitter,itemName:_.name,formItem:_});return b.disposers.push(()=>$.destroy()),h},read(){return null},write(){},state(_,b){const y=_&&_.__latSpeedDial;y&&y.setDisabled(b.disabled===!0)}})}),De("packages/modules/form/controls/multipart-upload.js",function(A,J){"use strict";Object.defineProperty(A,"uploadMultipart",{enumerable:!0,get:function(){return _e}});function _e(F,L,e={}){return new Promise((P,D)=>{const I=new XMLHttpRequest,M=new FormData,W=L.fieldName||"file";if(L.params)for(const[E,T]of Object.entries(L.params))M.append(E,String(T));if(M.append(W,F,F.name),I.open("POST",L.target,!0),L.headers)for(const[E,T]of Object.entries(L.headers))I.setRequestHeader(E,T);if(I.upload.addEventListener("progress",E=>{e.onProgress&&E.lengthComputable&&e.onProgress(Math.round(E.loaded/E.total*100))}),I.addEventListener("load",()=>{if(I.status>=200&&I.status<300){let E=I.responseText;try{E=JSON.parse(I.responseText)}catch{}P(E)}else D(new Error(`upload failed with status ${I.status}`))}),I.addEventListener("error",()=>D(new Error("upload failed"))),I.addEventListener("abort",()=>D(new Error("upload aborted"))),e.signal){if(e.signal.aborted){I.abort();return}e.signal.addEventListener("abort",()=>I.abort())}I.send(M)})}}),De("packages/modules/form/controls/avatar.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/file.js"),I=D.accepts,M=D.formatSize,E=J("packages/modules/form/controls/multipart-upload.js").uploadMultipart,T=Object.freeze({small:40,medium:64,large:96}),i=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 p(s){return s}function S(s,u){const r="http://www.w3.org/2000/svg",m=s.createElementNS(r,"svg");m.setAttribute("viewBox","0 0 16 16"),m.setAttribute("focusable","false"),m.setAttribute("aria-hidden","true");const z=s.createElementNS(r,"path");return z.setAttribute("d",u),z.setAttribute("fill","currentColor"),m.appendChild(z),m}function k(s){return typeof s=="number"&&Number.isFinite(s)&&s>0?s:typeof s=="string"&&T[s]?T[s]:T.medium}function d(s,u){const r=u&&u.defaultView,m=r&&r.Event,z=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(z)}function c(s){if(!s||typeof s!="object")return null;const u=s;return u.src==null||u.src===""?null:u}function t(s){return new Promise((u,r)=>{const m=new FileReader;m.onload=()=>u(String(m.result)),m.onerror=()=>r(m.error||new Error("could not read the file")),m.readAsDataURL(s)})}F("avatar",{kind:"field",build(s,u){const r=u.doc,m=u.t||p;P(r);const z=s.props||{},l=Array.isArray(z.accept)&&z.accept.length?z.accept.map(String):["image/*"],g=Number(z.maxSize)||0,w=r.createElement("div");w.className="lat-form__avatar";const x={value:c(s.value),rejectedMessage:null,accept:l,maxSize:g,size:k(z.size),circle:z.circle===!0,alt:z.alt!=null?String(z.alt):"",preview:z.preview!=null&&z.preview!==""?String(z.preview):null,icon:z.icon,placeholder:s.placeholder!=null&&s.placeholder!==""?String(s.placeholder):m("form.avatar.placeholder"),removeIcon:z.removeIcon!==!1,upload:z.upload&&typeof z.upload=="object"?z.upload:null,disabled:s.disabled===!0,readOnly:s.readOnly===!0,label:s.label!=null&&s.label!==""?String(s.label):null};w.__latAvatar=x;const v=r.createElement("input");v.type="file",v.className="lat-form__avatar-input",v.tabIndex=-1,v.setAttribute("aria-hidden","true"),l.length&&(v.accept=l.join(",")),w.appendChild(v);const f=r.createElement("button");f.type="button",f.className="lat-form__avatar-picture",w.appendChild(f);const o=r.createElement("button");o.type="button",o.className="lat-form__avatar-remove",o.setAttribute("aria-label",m("form.avatar.remove")),o.title=m("form.avatar.remove"),o.appendChild(e(r,"close")||S(r,i.photo)),w.appendChild(o);const _=r.createElement("span");return _.className="lat-form__avatar-status",w.appendChild(_),w.style.setProperty("--lat-avatar-size",`${x.size}px`),w.__latPaint=()=>{w.style.setProperty("--lat-avatar-size",`${x.size}px`),f.classList.toggle("lat-form__avatar-picture--circle",x.circle);const b=x.disabled||x.readOnly;f.disabled=b,f.tabIndex=b?-1:0,f.setAttribute("aria-label",x.label||m("form.avatar.choose")),f.textContent="";const y=x.value&&x.value.src?x.value.src:null;if(y){const $=r.createElement("img");$.className="lat-form__avatar-img",$.src=y,$.alt=x.alt,f.appendChild($)}else if(x.preview){const $=r.createElement("img");$.className="lat-form__avatar-img",$.src=x.preview,$.alt=x.alt,f.appendChild($)}else if(x.icon!=null&&x.icon!==!1){if(typeof x.icon=="object"&&x.icon.nodeType)f.appendChild(x.icon);else if(typeof x.icon=="string"){const $=r.createElement("img");$.className="lat-form__avatar-img",$.src=x.icon,$.alt=x.alt,f.appendChild($)}}else{const $=r.createElement("span");$.className="lat-form__avatar-placeholder",$.appendChild(S(r,i.photo));const ee=r.createElement("span");ee.className="lat-form__avatar-placeholder-text",ee.textContent=x.placeholder,$.appendChild(ee),f.appendChild($)}const h=!!(x.value&&x.value.src);o.hidden=!h||!x.removeIcon||x.disabled||x.readOnly,o.disabled=x.disabled||x.readOnly,_.textContent="",_.className="lat-form__avatar-status",x.value&&x.value.status==="uploading"?(_.classList.add("lat-form__avatar-status--uploading"),_.textContent=`${Math.round(x.value.progress||0)}%`):x.value&&x.value.status==="failed"&&(_.classList.add("lat-form__avatar-status--failed"),_.textContent=x.value.message||m("form.avatar.uploadFailed"))},w.__latStartUpload=()=>{const b=x.upload,y=x.value;!b||!y||!y.file||b.autosend===!1||(y.status="uploading",y.progress=0,w.__latPaint(),E(y.file,b,{onProgress(h){x.value===y&&(y.progress=h,w.__latPaint())}}).then(h=>{x.value===y&&(y.status="done",y.progress=100,b.updateFromResponse!==!1&&h&&typeof h=="object"&&(h.src!=null&&(y.src=String(h.src)),h.id!=null&&(y.id=h.id)),w.__latPaint(),d(w,r))},h=>{x.value===y&&(y.status="failed",y.message=h&&h.message?String(h.message):m("form.avatar.uploadFailed"),w.__latPaint(),d(w,r))}))},w.__latAdmit=b=>{if(!(!b||x.disabled||x.readOnly)){if(x.maxSize&&b.size>x.maxSize){x.rejectedMessage=m("form.avatar.rejected.size",{size:M(x.maxSize)});return}if(!I(b,x.accept)){x.rejectedMessage=m("form.avatar.rejected.type");return}x.rejectedMessage=null,t(b).then(y=>{x.value={src:y,file:b,name:b.name,size:b.size,status:"pending"},w.__latPaint(),d(w,r),w.__latStartUpload()})}},w.__latRemove=()=>{x.disabled||x.readOnly||(x.value=null,w.__latPaint(),d(w,r))},v.addEventListener("change",()=>{const b=v.files&&v.files[0];w.__latAdmit(b),v.value=""}),f.addEventListener("click",()=>{x.disabled||x.readOnly||v.click()}),f.addEventListener("keydown",b=>{x.disabled||x.readOnly||(b.key==="Enter"||b.key===" "||b.key==="Spacebar")&&(b.preventDefault(),v.click())}),o.addEventListener("click",b=>{b.stopPropagation(),w.__latRemove()}),["dragenter","dragover"].forEach(b=>f.addEventListener(b,y=>{x.disabled||x.readOnly||(y.preventDefault(),f.classList.add("lat-form__avatar-picture--dragover"))})),f.addEventListener("dragleave",()=>{f.classList.remove("lat-form__avatar-picture--dragover")}),f.addEventListener("drop",b=>{if(b.preventDefault(),f.classList.remove("lat-form__avatar-picture--dragover"),x.disabled||x.readOnly)return;const y=b.dataTransfer&&b.dataTransfer.files&&b.dataTransfer.files[0];w.__latAdmit(y)}),w.__latPaint(),x.value&&x.value.file&&x.value.status==="pending"&&w.__latStartUpload(),w},read(s){return s.__latAvatar?s.__latAvatar.value:null},write(s,u){const r=s.__latAvatar;r&&(r.value=c(u),s.__latPaint&&s.__latPaint())},state(s,u){const r=s.__latAvatar;r&&(r.disabled=u.disabled===!0,r.readOnly=u.readOnly===!0,r.disabled?s.setAttribute("aria-disabled","true"):s.removeAttribute("aria-disabled"),r.readOnly?s.setAttribute("aria-readonly","true"):s.removeAttribute("aria-readonly"),s.__latPaint&&s.__latPaint())},validate(s,u,r){const m=s.__latAvatar;return m&&m.rejectedMessage?m.rejectedMessage:null},focus(s){const u=s.querySelector(".lat-form__avatar-picture");u&&u.focus()}})}),De("packages/modules/form/controls/togglegroup.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/controls/button.js").buildIcon,P="lat-form__togglegroup",D="lat-form__togglegroup-btn";function I(E,T){const i=E!==null&&typeof E=="object"?E:{},p=i.id!=null?String(i.id):i.value!=null?String(i.value):String(T),S=i.text!=null?String(i.text):p;return{id:p,text:S,offText:i.offText!=null?String(i.offText):S,icon:i.icon!=null?i.icon:null,offIcon:i.offIcon!=null?i.offIcon:i.icon,selected:i.selected===!0,disabled:i.disabled===!0,hidden:i.hidden===!0,full:i.full===!0}}function M(E,T){const i=T&&T.defaultView,p=i&&i.Event,S=p?new p("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};E.dispatchEvent(S)}function W(E){return typeof E=="number"&&Number.isFinite(E)&&E>=0?E:0}F("togglegroup",{kind:"field",build(E,T){const i=T.doc,p=E.props||{},S=p.multiselect===!0,k=p.full===!0,d=i.createElement("div");d.className=P,d.setAttribute("role","group"),d.setAttribute("aria-label",E.label!=null&&E.label!==""?String(E.label):T.t("form.togglegroup")),d.style.setProperty("--lat-form-gap",`${W(p.gap)}px`),k&&d.setAttribute("data-full","true");const c=(Array.isArray(E.options)?E.options:[]).map(I).filter(g=>!g.hidden),t=[],s={},u={doc:i,options:c,buttons:t,pressed:s,multiselect:S,disabled:E.disabled===!0,readOnly:E.readOnly===!0};d.__latToggleGroup=u;for(const g of c){const w=i.createElement("button");w.type="button",w.className=D,w.setAttribute("data-index",String(t.length)),g.full&&w.setAttribute("data-full","true"),w.disabled=g.disabled||u.disabled,w.__tg={opt:g,pressed:!1},d.appendChild(w),t.push(w),s[g.id]=!1}const r=g=>{const w=g.__tg,x=w.opt,v=w.pressed;g.setAttribute("aria-pressed",v?"true":"false"),g.removeAttribute("aria-label"),g.textContent="";const f=e(v?x.icon:x.offIcon,i);f&&g.appendChild(f);const o=v?x.text:x.offText;if(o!==""){const _=i.createElement("span");_.className=`${D}-label`,_.textContent=o,g.appendChild(_)}else f&&g.setAttribute("aria-label",x.id)},m=()=>{for(const g of t)g.__tg.pressed=s[g.__tg.opt.id]===!0,r(g)},z=g=>{if(g.disabled||u.disabled||u.readOnly)return!1;if(S)s[g.id]=!s[g.id];else{if(s[g.id])return!1;for(const w of c)s[w.id]=w.id===g.id}return m(),!0},l=E.value!=null&&typeof E.value=="object"?E.value:{};for(const g of c)s[g.id]=l[g.id]===!0;if(S)for(const g of c)s[g.id]=s[g.id]||g.selected===!0;else{let g=c.find(w=>s[w.id]);g||(g=c.find(w=>w.selected)),g||(g=c[0]);for(const w of c)s[w.id]=w.id===(g&&g.id)}return m(),d.addEventListener("click",g=>{const w=g.target&&g.target.closest?g.target.closest(`.${D}`):null;if(!w||!d.contains(w)||!w.__tg)return;const x=w.__tg.opt;z(x)&&(d.__latChangeDetail={id:x.id,pressed:s[x.id]},M(d,i))}),d.__latKey=g=>{if(g.key!=="ArrowLeft"&&g.key!=="ArrowRight")return;const w=t.filter(o=>!o.disabled);if(!w.length)return;const x=w.indexOf(i.activeElement),v=g.key==="ArrowRight"?1:-1,f=x===-1?v===1?0:w.length-1:x+v;f<0||f>=w.length||(g.preventDefault(),w[f].focus())},d.addEventListener("keydown",d.__latKey),d},read(E){const T=E&&E.__latToggleGroup,i={};if(!T)return i;for(const p of T.options)i[p.id]=T.pressed[p.id]===!0;return i},write(E,T){const i=E&&E.__latToggleGroup;if(!i)return;const p=T!=null&&typeof T=="object"&&!Array.isArray(T)?T:{};for(const k of i.options)i.pressed[k.id]=p[k.id]===!0;if(!i.multiselect){const k=i.options.find(d=>i.pressed[d.id]);for(const d of i.options)i.pressed[d.id]=d.id===(k?k.id:i.options[0]&&i.options[0].id)}for(const k of i.buttons)k.__tg.pressed=i.pressed[k.__tg.opt.id]===!0;const S=i.doc;for(const k of i.buttons){const d=k.__tg,c=d.opt,t=d.pressed;k.setAttribute("aria-pressed",t?"true":"false"),k.removeAttribute("aria-label"),k.textContent="";const s=e(t?c.icon:c.offIcon,S);s&&k.appendChild(s);const u=t?c.text:c.offText;if(u!==""){const r=S.createElement("span");r.className=`${D}-label`,r.textContent=u,k.appendChild(r)}else s&&k.setAttribute("aria-label",c.id)}},state(E,T){const i=E&&E.__latToggleGroup;if(i){i.disabled=T.disabled===!0,i.readOnly=T.readOnly===!0,i.readOnly?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly"),i.disabled?E.setAttribute("aria-disabled","true"):E.removeAttribute("aria-disabled");for(const p of i.buttons)p.disabled=i.disabled||p.__tg.opt.disabled}},focus(E){const T=E&&E.__latToggleGroup,i=T&&T.buttons.find(p=>!p.disabled);i&&typeof i.focus=="function"&&i.focus()}})}),De("packages/modules/form/controls/grid.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/model.js").cssSize,P="__latFormTotal",D="__latFormTotals",I=new Set(["number","currency","percent","integer","decimal"]),M="lat-invalid",W=240;function E(C){return C!==null&&typeof C=="object"&&!Array.isArray(C)}function T(C){return C==null||C===""}function i(C){if(typeof C=="number")return Number.isFinite(C)?C:null;if(E(C)&&Object.hasOwn(C,"amount"))return i(C.amount);if(typeof C=="string"&&C.trim()!==""){const K=Number(C);return Number.isFinite(K)?K:null}return null}function p(C){return E(C)&&Object.hasOwn(C,"amount")&&Object.keys(C).every(K=>K==="amount"||K==="code")?C.amount:C}function S(C,K,G){if(typeof C=="function")try{return C(K,G)}catch{return null}const B=K.map(i).filter(ge=>ge!==null);if(C==="count")return K.filter(ge=>!T(ge)).length;if(B.length===0)return C==="avg"?null:0;const te=B.reduce((ge,oe)=>ge+oe,0);return C==="avg"?te/B.length:te}function k(C){return typeof C=="function"||C==="sum"||C==="avg"||C==="count"?C:"sum"}function d(C){if(typeof C=="string")return C;if(E(C)){if(C.field!=null)return String(C.field);if(C.id!=null)return String(C.id)}return null}function c(C,K){if(C===!0)return{enabled:()=>K()};if(typeof C=="string")return{editor:C,enabled:()=>K()};if(E(C)&&C.enabled!==void 0&&C.enabled!==!1){const G=C.enabled;return{...C,enabled:B=>K()&&(typeof G=="function"?G(B)!==!1:!0)}}return C}function t(C,K){if(!(!C||!C.children))for(const G of Array.from(C.children))K(G),t(G,K)}function s(C,K,G){let B=null;return t(C,te=>{B||!te.getAttribute||te.getAttribute("data-key")!==K||t(te,ge=>{!B&&ge.getAttribute&&ge.getAttribute("data-col")===G&&(B=ge)})}),B}function u(C,K,G={}){const B=C.cal.model&&C.cal.model.messages;if(B&&typeof B.t=="function"){const ge=B.t(K,G);if(ge!==K)return ge}const te=C.grid&&C.grid.messages;if(te&&typeof te.t=="function")try{const ge=te.t(K,G);if(ge!==K)return ge}catch{}return C.cal.t(K,G)}function r(C){return C.grid?C.grid.rows.data().map(K=>{const G={};for(const B of Object.keys(K))B!==P&&(G[B]=p(K[B]));return G}):C.pending.map(K=>({...K}))}function m(C,K){return C.valueAs==="arrays"?K.map(G=>C.fields.map(B=>G[B]===void 0?null:G[B])):K}function z(C,K){if(!Array.isArray(K))return[];const G=[];for(const B of K)if(Array.isArray(B)){const te={};C.fields.forEach((ge,oe)=>{te[ge]=B[oe]===void 0?null:B[oe]}),G.push(te)}else E(B)&&G.push({...B});return G}function l(C,K){C.mute+=1;try{return K()}finally{C.mute-=1}}function g(C,K,G){const B=r(C).find(te=>String(te[C.rowKey])===String(K));return!B||B[G]===void 0?null:B[G]}function w(C){const K=r(C);for(const G of C.mapped){const B=K.find(ge=>String(ge[C.rowKey])===String(G.row)),te=B&&B[G.col]!==void 0?B[G.col]:null;G.record.value=te,G.record.item.value=te}}function x(C,K,G){if(typeof G!="number")return G;const B=C.grid.rows.get(0);let te=null;if(B&&B.key!=null)try{te=C.grid.rows.value(B.key,K)}catch{te=null}return E(te)&&Object.hasOwn(te,"amount")?{...te,amount:G}:G}function v(C){const K=C.totals&&C.totals.row;if(!K||!C.grid||typeof C.grid.setPinnedRows!="function")return;const G=r(C),B={[C.rowKey]:D};for(const te of K.fields){const ge=S(K.fns[te],G.map(oe=>oe[te]),{field:te,rows:G});B[te]=x(C,te,ge)}K.labelField&&(B[K.labelField]=K.label!=null?K.label:u(C,"form.grid.total")),C.grid.setPinnedRows([B],{edge:"bottom"})}function f(C,K,G){const B=G[K],te=C.columnSpecs.get(K)||{},ge=C.grid,oe=String(G[C.rowKey]);let fe=null;try{fe=ge.validation.check(K,B,G)}catch{fe=null}if(fe)return fe.message;const ve=E(te.edit)?te.edit:{},me=E(ve.props)?ve.props:{},X=i(B);if(X!==null){if(typeof me.min=="number"&&X<me.min)return u(C,"form.validation.min",{min:me.min});if(typeof me.max=="number"&&X>me.max)return u(C,"form.validation.max",{max:me.max})}if(typeof ve.validate=="function"){let de;try{de=ve.validate({value:B,row:ge.rows.byKey(oe),column:ge.columns.get(K),grid:ge,data:G})}catch{de="Invalid value"}if(typeof de=="string")return de}return null}function o(C){const K=[];return C.grid&&(r(C).forEach((B,te)=>{for(const ge of C.fields){const oe=f(C,ge,B);oe&&K.push({key:String(B[C.rowKey]),field:ge,row:te+1,message:oe})}}),C.invalid=new Map(K.map(B=>[`${B.key}\0${B.field}`,B])),y(C)),K}function _(C,K){let G=null;try{G=C.grid.columns.get(K)}catch{G=null}const B=C.columnSpecs.get(K)||{},te=G&&G.title||B.title||B.header;return te!=null&&te!==""?String(te):K}function b(C,K){return u(C,"form.grid.cellInvalid",{row:K.row,column:_(C,K.field),message:K.message})}function y(C){if(!C.grid||!C.gridEl)return;const K=new Set;for(const G of C.invalid.values()){const B=s(C.gridEl,G.key,G.field);B&&(K.add(B),B.classList.add(M),B.setAttribute("aria-invalid","true"),B.setAttribute("title",b(C,G)),B.getAttribute("tabindex")==null&&B.setAttribute("tabindex","-1"))}for(const G of C.marked)!K.has(G)&&G.classList&&G.classList.contains(M)&&(G.classList.remove(M),G.removeAttribute("aria-invalid"),G.removeAttribute("title"));C.marked=K}function h(C){if(!C.grid)return;const K=C.invalid.values().next().value||null,G=r(C),B=K?K.key:G.length?String(G[0][C.rowKey]):null,te=K?K.field:C.fields[0];if(B==null||te==null)return;try{C.grid.scroll.toCell(B,te)}catch{}const ge=s(C.gridEl,B,te);ge&&typeof ge.focus=="function"&&(ge.getAttribute("tabindex")==null&&ge.setAttribute("tabindex","-1"),ge.focus())}function $(C,K){const G=K.map(ge=>ge[C.rowKey]);if(G.length&&G.every(ge=>typeof ge=="number"))return Math.max(...G)+1;const B=new Set(G.map(String));let te=K.length+1;for(;B.has(`row-${te}`);)te+=1;return`row-${te}`}function ee(C,K,G){let B=G;if(!E(B)){const ge=typeof C.newRow=="function"?C.newRow(K.map(oe=>({...oe}))):C.newRow;B=E(ge)?ge:{}}const te={};for(const ge of C.fields)te[ge]=null;return Object.assign(te,B),(te[C.rowKey]==null||K.some(ge=>String(ge[C.rowKey])===String(te[C.rowKey])))&&(te[C.rowKey]=$(C,K)),te}function O(C,K,G){const B=String(K.row);if(G.type==="cellEdit"){const ge=String(G.key)===B&&G.colId===K.col;return{touched:ge,value:ge?G.value:void 0}}if(G.type==="rowAdd"){const ge=String(G.row[C.rowKey])===B;return{touched:ge,value:ge&&G.row[K.col]!==void 0?G.row[K.col]:null}}return{touched:String(G.key)===B,value:null}}function ae(C,K,G){const{cal:B,record:te}=C,ge=B.emitter,oe=[ge.emitBefore("beforeChange",{name:te.item.name,value:m(C,G),previousValue:te.value,item:te.item,change:K},"user")];for(const fe of C.mapped){const ve=O(C,fe,K);ve.touched&&oe.push(ge.emitBefore("beforeChange",{name:fe.prop,value:ve.value,previousValue:fe.record.value,item:fe.record.item,change:K},"user"))}return oe.some(fe=>fe&&typeof fe.then=="function")?Promise.all(oe).then(fe=>fe.every(ve=>ve!==!1)):oe.every(fe=>fe!==!1)}function se(C,K,G,B){const{cal:te,record:ge,hooks:oe}=C,fe=m(C,r(C));ge.value=fe,ge.item.value=fe,w(C),v(C),oe.clearError();const ve=ge.validation&&ge.validation.valid===!1;(C.invalid.size>0||ge.item.validationMode==="change")&&o(C),te.emitter.emit("change",{name:ge.item.name,value:fe,previousValue:G,item:ge.item,change:K});for(const me of C.mapped){const X=B.get(me.prop);me.record.value!==X&&O(C,me,K).touched&&te.emitter.emit("change",{name:me.prop,value:me.record.value,previousValue:X,item:me.record.item,change:K})}oe.applyRules(),(ge.item.validationMode==="change"||ve)&&oe.validateItem()}function ce(C){return{rows:C.record.value,mapped:new Map(C.mapped.map(K=>[K.prop,K.record.value]))}}function Z(C,K){if(!C.grid||!C.editable())return null;const G=r(C),B=ee(C,G,K),te=String(B[C.rowKey]),ge={type:"rowAdd",key:te,row:{...B}},oe=ce(C),fe=me=>{if(!me)return null;const X=l(C,()=>C.grid.rows.apply({add:[B]}));return X&&X.rejected&&X.rejected.length?null:(se(C,ge,oe.rows,oe.mapped),te)},ve=ae(C,ge,[...G,B]);return ve&&typeof ve.then=="function"?ve.then(fe):fe(ve)}function Q(C,K){if(!C.grid||!C.editable())return[];const G=[];for(const B of[].concat(K)){const te=String(B),ge=r(C);if(!ge.some(de=>String(de[C.rowKey])===te))continue;const oe={type:"rowRemove",key:te},fe=ce(C),ve=ge.filter(de=>String(de[C.rowKey])!==te),me=de=>{de&&(l(C,()=>C.grid.rows.apply({remove:[te]})),C.activeKey===te&&(C.activeKey=null),se(C,oe,fe.rows,fe.mapped))},X=ae(C,oe,ve);X&&typeof X.then=="function"?X.then(me):me(X),G.push(te)}return G}function Pe(C){let K=[];try{K=C.grid.selection.keys()}catch{K=[]}return K.length?K.map(String):C.activeKey!=null?[C.activeKey]:[]}function ie(C){const K=C.cal.doc,G=K.createElement("div");G.className="lat-form__grid-controls",G.setAttribute("role","toolbar"),G.setAttribute("aria-label",u(C,"form.grid.rowControls"));const B=(te,ge,oe)=>{const fe=K.createElement("button");return fe.type="button",fe.className=`lat-form__grid-btn lat-form__grid-${te}`,fe.textContent=ge,fe.setAttribute("aria-label",ge),fe.addEventListener("click",oe),G.appendChild(fe),fe};return C.addBtn=B("add",u(C,"form.grid.addRow"),()=>{const te=Z(C);te!=null&&typeof te=="string"&&(C.activeKey=te)}),C.delBtn=B("delete",u(C,"form.grid.deleteRow"),()=>{Q(C,Pe(C))}),G}function j(C,K,G){if(!E(C))return null;const B=K.filter(oe=>I.has((G.get(oe)||{}).type));let te=null,ge=null;if(C.row){const oe=C.row===!0||typeof C.row=="function"||typeof C.row=="string"?{fn:C.row===!0?void 0:C.row}:C.row,fe=E(oe.columns)&&!Array.isArray(oe.columns)?oe.columns:null,ve=Array.isArray(oe.columns)?oe.columns.map(String):fe?Object.keys(fe):B,me={};for(const X of ve)me[X]=k(fe&&fe[X]!==void 0?fe[X]:oe.fn);te={fields:ve,fns:me,label:oe.label,labelField:oe.labelColumn!=null?String(oe.labelColumn):K.find(X=>!ve.includes(X))||null}}if(C.column){const oe=C.column===!0||typeof C.column=="function"||typeof C.column=="string"?{fn:C.column===!0?void 0:C.column}:C.column;ge={fn:k(oe.fn),fields:Array.isArray(oe.columns)?oe.columns.map(String):B,title:oe.title,column:E(oe.column)?oe.column:{}}}return te||ge?{row:te,column:ge}:null}function H(C){const K=C.createGrid;if(typeof K!="function"){console.warn(`lattice-form: a "grid" item needs createGrid — pass it on the item or the form config: { type: 'grid', createGrid, … }.`);return}const G=C.props,B=C.columnDefs.map(oe=>E(oe)?oe.edit===void 0?oe:{...oe,edit:c(oe.edit,C.editable)}:oe);if(C.totals&&C.totals.column){const oe=C.totals.column;B.push({id:P,field:P,title:oe.title!=null?oe.title:C.say("form.grid.total"),sort:!1,...oe.column,value:{deps:"*",compute:fe=>S(oe.fn,oe.fields.map(ve=>fe[ve]),{row:fe})}})}const te={...E(G.gridOptions)?G.gridOptions:{},rowKey:C.rowKey,columns:B,rows:C.pending,density:C.density},ge=K(C.gridEl,te);C.grid=ge,C.pending=[];for(const oe of C.columnDefs){const fe=d(oe);fe&&!C.columnSpecs.has(fe)&&C.columnSpecs.set(fe,E(oe)?oe:{field:fe})}ge.on("beforeEdit",oe=>{if(C.mute>0||oe.defaultPrevented)return;if(!C.editable()){oe.preventDefault("readOnly");return}const fe=r(C),ve=fe.findIndex(X=>String(X[C.rowKey])===String(oe.key));if(ve<0||!oe.changes.length)return;const me=[];for(const X of oe.changes){const de={type:"cellEdit",key:String(oe.key),colId:X.colId,value:p(X.newValue),oldValue:p(X.oldValue)},pe=fe.map((Y,re)=>re===ve?{...Y,[X.colId]:de.value}:Y);me.push(ae(C,de,pe))}if(me.some(X=>X&&typeof X.then=="function"))return Promise.all(me).then(X=>{X.some(de=>de===!1)&&oe.preventDefault("prevented")});me.some(X=>X===!1)&&oe.preventDefault("prevented")}),ge.on("cell:changed",oe=>{if(C.mute>0)return;const fe={type:"cellEdit",key:String(oe.key),colId:oe.colId,value:p(oe.value),oldValue:p(oe.oldValue)},ve={rows:C.record.value,mapped:new Map(C.mapped.map(me=>[me.prop,me.record.value]))};se(C,fe,ve.rows,ve.mapped)}),ge.on("render:done",()=>y(C)),ge.on("cell:clicked",oe=>{oe&&oe.key!=null&&(C.activeKey=String(oe.key))}),C.gridEl.addEventListener("focusin",oe=>{let fe=oe.target;for(;fe&&fe!==C.gridEl;){const ve=fe.getAttribute&&fe.getAttribute("data-key");if(ve!=null&&ve!==""){C.activeKey=ve;return}fe=fe.parentNode}}),v(C)}function ne(C,K){const G=K.doc,B=C.props||{},te=G.createElement("div");te.className="lat-form__grid",te.setAttribute("role","group"),C.label!=null&&C.label!==""&&te.setAttribute("aria-label",String(C.label));const ge=C.height==null?W:C.height,oe=ge==="100%";te.style.width="100%",oe&&(te.style.flex="1 1 auto",te.style.minHeight="0");const fe=Array.isArray(B.columns)?B.columns:[],ve=fe.map(d).filter(Y=>Y!=null),me=new Map;fe.forEach(Y=>{const re=d(Y);re&&me.set(re,E(Y)?Y:{field:re})});const X={cal:K,item:C,props:B,el:te,record:null,hooks:null,grid:null,gridEl:null,columnDefs:fe,columnSpecs:me,fields:ve,rowKey:B.rowKey!=null?String(B.rowKey):"id",valueAs:B.valueAs==="arrays"?"arrays":"rows",valueRows:B.valueRows!==!1,createGrid:typeof B.createGrid=="function"?B.createGrid:K.model.createGrid,density:K.model.density,newRow:B.newRow,totals:null,mapped:[],pending:[],mute:0,invalid:new Map,marked:new Set,activeKey:null,readOnly:!1,disabled:!1,editable:()=>!X.readOnly&&!X.disabled,say:(Y,re)=>u(X,Y,re)};X.totals=j(B.totals,ve,me),X.pending=z(X,C.value),te.__latGrid=X;const de=G.createElement("div");de.className="lat-form__grid-host",de.style.width="100%",oe?(de.style.flex="1 1 auto",de.style.minHeight="0"):de.style.height=e(ge),X.gridEl=de,te.appendChild(de),H(X),B.rowControls===!0&&te.appendChild(ie(X));let pe=!1;return te.addEventListener("focusin",()=>{pe||(pe=!0,q(te,G,"focus"))}),te.addEventListener("focusout",Y=>{te.contains(Y.relatedTarget)||(pe=!1,q(te,G,"blur"))}),te}function q(C,K,G){const B=K&&K.defaultView,te=B&&B.Event,ge=te?new te(G,{bubbles:!0}):{type:G,bubbles:!0,cancelable:!1,defaultPrevented:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){}};C.dispatchEvent(ge)}function we(C,K){return{kind:"mapped",custom:!0,read(){return g(C,K.row,K.col)},write(G,B){C.grid&&(l(C,()=>C.grid.edit.setCells([{key:String(K.row),colId:K.col,value:B}])),$e(C))},state(){},validate(){if(!C.grid)return null;const G=r(C).find(te=>String(te[C.rowKey])===String(K.row));if(!G)return null;const B=f(C,K.col,G);return B?{code:"cell",message:B}:null},focus(){if(!C.grid)return;try{C.grid.scroll.toCell(String(K.row),K.col)}catch{}const G=s(C.gridEl,String(K.row),K.col);G&&typeof G.focus=="function"&&(G.getAttribute("tabindex")==null&&G.setAttribute("tabindex","-1"),G.focus())}}}function $e(C){const K=m(C,r(C));C.record.value=K,C.record.item.value=K,w(C),v(C),C.invalid=new Map,y(C)}F("grid",{kind:"grid",build:ne,read(C){const K=C.__latGrid;return m(K,r(K))},write(C,K){const G=C.__latGrid,B=z(G,K);if(!G.grid){G.pending=B;return}l(G,()=>G.grid.rows.load(B)),G.invalid=new Map,w(G),v(G),y(G)},state(C,K){const G=C.__latGrid;G.readOnly=K.readOnly===!0,G.disabled=K.disabled===!0,G.readOnly?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly"),C.toggleAttribute("inert",G.disabled),C.inert=G.disabled,G.disabled?C.setAttribute("aria-disabled","true"):C.removeAttribute("aria-disabled");const B=!G.editable();for(const te of[G.addBtn,G.delBtn])te&&(te.disabled=B)},validate(C,K){const G=C.__latGrid;if(!G.grid)return null;const B=o(G);return K.required===!0&&r(G).length===0?{code:"required",message:u(G,"form.grid.required")}:B.length?{code:"cell",message:b(G,B[0])}:null},focus(C){h(C.__latGrid)},blur(C){const K=C.ownerDocument&&C.ownerDocument.activeElement;K&&C.contains(K)&&typeof K.blur=="function"&&K.blur()},density(C,K){const G=C.__latGrid;if(G.density=K,G.grid&&typeof G.grid.set=="function")try{G.grid.set("density",K)}catch{}},connect(C,K,G){const B=C.control.__latGrid;B.record=C,B.hooks=G;const te=E(B.props.fields)?B.props.fields:{};for(const ge of Object.keys(te)){const oe=te[ge];if(!E(oe)||oe.row==null||oe.col==null||K.items.has(ge))continue;const fe={prop:ge,row:String(oe.row),col:String(oe.col),record:null},ve=we(B,fe),me=g(B,fe.row,fe.col);fe.record={item:{kind:"item",name:ge,type:"grid",value:me,label:void 0,disabled:!1,readOnly:!1,required:!1,validation:null,validationMode:"submit",props:{},mappedFrom:C.item.name},el:C.el,control:C.control,controlWrap:null,def:ve,value:me,hidden:!1,validation:{pristine:!0,valid:null,code:null,message:null},validationEl:K.doc.createElement("div"),preEl:null,tooltipId:null,mapped:!0},B.mapped.push(fe),K.items.set(ge,fe.record)}C.mapped=B.mapped.map(ge=>ge.record),C.valueRows=B.valueRows,C.control.__latGridApi={addRow:ge=>Z(B,ge),removeRows:ge=>Q(B,ge),grid:()=>B.grid}},destroy(C){const K=C.__latGrid;K&&K.grid&&typeof K.grid.destroy=="function"&&K.grid.destroy(),K&&(K.grid=null)}})}),De("packages/modules/form/controls/slider.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,P=0,D=100,I=1;function M(o,_,b){return Math.min(Math.max(o,_),b)}function W(o,_,b){return b>0?_+Math.round((o-_)/b)*b:o}function E(o){const _=typeof o.min=="number"&&Number.isFinite(o.min)?o.min:P;let b=typeof o.max=="number"&&Number.isFinite(o.max)?o.max:D;const y=typeof o.step=="number"&&Number.isFinite(o.step)&&o.step>0?o.step:I;return b<=_&&(b=_+y),{min:_,max:b,step:y}}function T(o,_,b,y){const h=Number(o),$=Number.isFinite(h)?h:_;return M(W($,_,y),_,b)}function i(o,_,b,y){const h=Array.isArray(o)&&o.length>=2?o:[_,b];let $=T(h[0],_,b,y),ee=T(h[1],_,b,y);if($>ee){const O=$;$=ee,ee=O}return[$,ee]}function p(o){return o.props&&typeof o.props=="object"?o.props:{}}function S(o){return p(o).range===!0}function k(o){return o.mode==="vertical"}function d(o){return p(o).inverse===!0}function c(o){return o.tooltip!==!1}function t(o){const _=p(o).tickTemplate;return typeof _=="function"?_:b=>String(b)}function s(o,_,b){const y=_&&_.defaultView,h=y&&y.Event,$=h?new h(b,{bubbles:!0}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};o.dispatchEvent($)}function u(o,_){const b=M((_-o.min)/(o.max-o.min),0,1);return o.inverse?1-b:b}function r(o,_){const b=o.inverse?1-_:_;return M(W(o.min+b*(o.max-o.min),o.min,o.step),o.min,o.max)}function m(o,_,b,y){const h=o.vertical?_.height>0?(_.bottom-y)/_.height:0:_.width>0?(b-_.left)/_.width:0;return M(h,0,1)}function z(o,_){const b=o.isRange?o.value[_]:o.value,y=`${(u(o,b)*100).toFixed(4)}%`,h=o.thumbs[_];o.vertical?h.style.bottom=y:h.style.left=y;const $=o.template(b);h.setAttribute("aria-valuenow",String(b)),h.setAttribute("aria-valuetext",$);const ee=o.tooltips[_];ee&&(ee.textContent=$)}function l(o){const _=o.isRange?u(o,o.value[0]):Math.min(u(o,o.min),u(o,o.value)),b=o.isRange?u(o,o.value[1]):Math.max(u(o,o.min),u(o,o.value)),y=`${(Math.min(_,b)*100).toFixed(4)}%`,h=`${(Math.abs(b-_)*100).toFixed(4)}%`;o.vertical?(o.fill.style.bottom=y,o.fill.style.height=h):(o.fill.style.left=y,o.fill.style.width=h)}function g(o){const _=o.doc;for(;o.ticksEl.firstChild;)o.ticksEl.removeChild(o.ticksEl.firstChild);if(!o.tick&&!o.majorTick){o.ticksEl.hidden=!0;return}o.ticksEl.hidden=!1;const b=new Set;if(o.majorTick>0)for(let h=o.min;h<=o.max+1e-9;h+=o.majorTick)b.add(Math.round(h/o.step)*o.step);const y=(h,$)=>{const ee=M(h,o.min,o.max),O=`${(u(o,ee)*100).toFixed(4)}%`,ae=_.createElement("span");if(ae.className=$?"lat-form__slider-tick lat-form__slider-tick--major":"lat-form__slider-tick",ae.setAttribute("aria-hidden","true"),o.vertical?ae.style.bottom=O:ae.style.left=O,o.ticksEl.appendChild(ae),$){const se=_.createElement("span");se.className="lat-form__slider-tick-label",se.setAttribute("aria-hidden","true"),se.textContent=o.template(ee),o.vertical?se.style.bottom=O:se.style.left=O,o.ticksEl.appendChild(se)}};if(o.tick>0)for(let h=o.min;h<=o.max+1e-9;h+=o.tick){const $=Math.min(o.max,h);b.has(Math.round($/o.step)*o.step)||y($,!1)}for(const h of b)y(Math.min(o.max,Math.max(o.min,h)),!0)}function w(o){for(let _=0;_<o.thumbs.length;_++)z(o,_);l(o)}function x(o,_,b){const y=o.tooltips[_];y&&(b?y.classList.add("lat-form__slider-tooltip--visible"):y.classList.remove("lat-form__slider-tooltip--visible"))}function v(o,_,b){const y=M(W(b,o.min,o.step),o.min,o.max);if(!o.isRange){o.value=y,w(o);return}const h=o.value.slice();_===0?h[0]=Math.min(y,h[1]):h[1]=Math.max(y,h[0]),o.value=h,w(o)}function f(o,_){return o.isRange?o.value[_]:o.value}F("slider",{kind:"field",build(o,_){const b=_.doc,y=typeof _.t=="function"?_.t:e,{min:h,max:$,step:ee}=E(o),O=S(o),ae=k(o),se=d(o),ce=b.createElement("div");ce.className=ae?"lat-form__slider lat-form__slider--vertical":"lat-form__slider";const Z=b.createElement("div");Z.className="lat-form__slider-track",ce.appendChild(Z);const Q=b.createElement("div");Q.className="lat-form__slider-fill",Z.appendChild(Q);const Pe=b.createElement("div");Pe.className="lat-form__slider-ticks",Pe.setAttribute("aria-hidden","true"),Z.appendChild(Pe);const ie={doc:b,t:y,min:h,max:$,step:ee,isRange:O,vertical:ae,inverse:se,tooltipOn:c(o),template:t(o),tick:Number(p(o).tick)>0?Number(p(o).tick):0,majorTick:Number(p(o).majorTick)>0?Number(p(o).majorTick):0,value:O?i(o.value,h,$,ee):T(o.value,h,$,ee),track:Z,fill:Q,ticksEl:Pe,thumbs:[],tooltips:[],disabled:!1,readOnly:!1,dragging:null,disposers:[]};ce.__latSlider=ie;const j=O?[y("form.slider.low"),y("form.slider.high")]:[null];for(let G=0;G<j.length;G++){const B=b.createElement("div");B.className="lat-form__slider-thumb",B.setAttribute("role","slider"),B.setAttribute("aria-orientation",ae?"vertical":"horizontal"),B.setAttribute("aria-valuemin",String(h)),B.setAttribute("aria-valuemax",String($));const te=o.label!=null&&o.label!==""?String(o.label):y("form.slider");B.setAttribute("aria-label",j[G]!=null?`${te} – ${j[G]}`:te),B.tabIndex=0,Z.appendChild(B),ie.thumbs.push(B);let ge=null;ie.tooltipOn&&(ge=b.createElement("span"),ge.className="lat-form__slider-tooltip",ge.setAttribute("aria-hidden","true"),B.appendChild(ge)),ie.tooltips.push(ge)}g(ie),w(ie);const H=()=>{s(ce,b,"change")},ne=()=>{s(ce,b,"input")},q=(G,B)=>{if(ie.disabled||ie.readOnly)return;const te=f(ie,B);if(G.key==="ArrowRight"||G.key==="ArrowUp")v(ie,B,te+ie.step);else if(G.key==="ArrowLeft"||G.key==="ArrowDown")v(ie,B,te-ie.step);else if(G.key==="PageUp")v(ie,B,te+ie.step*10);else if(G.key==="PageDown")v(ie,B,te-ie.step*10);else if(G.key==="Home")v(ie,B,ie.min);else if(G.key==="End")v(ie,B,ie.max);else return;G.preventDefault(),f(ie,B)!==te&&(ne(),H())},we=(G,B)=>{ie.disabled||ie.readOnly||(G.preventDefault(),ie.dragging=B,ie.dragStartValue=f(ie,B),x(ie,B,!0),ie.thumbs[B].focus())},$e=G=>{if(ie.disabled||ie.readOnly||G.target!==Z&&G.target!==Q)return;const B=Z.getBoundingClientRect(),te=r(ie,m(ie,B,G.clientX,G.clientY)),ge=ie.isRange?Math.abs(te-ie.value[0])<=Math.abs(te-ie.value[1])?0:1:0;ie.dragging=ge,ie.dragStartValue=f(ie,ge),v(ie,ge,te),ne(),x(ie,ge,!0),ie.thumbs[ge].focus()},C=G=>{if(ie.dragging==null)return;const B=Z.getBoundingClientRect(),te=r(ie,m(ie,B,G.clientX,G.clientY));te!==f(ie,ie.dragging)&&(v(ie,ie.dragging,te),ne())},K=()=>{if(ie.dragging==null)return;const G=ie.dragging;ie.dragging=null,(!ie.focused||ie.focused!==G)&&x(ie,G,!1),f(ie,G)!==ie.dragStartValue&&H()};return Z.addEventListener("pointerdown",$e),b.addEventListener("pointermove",C),b.addEventListener("pointerup",K),ie.disposers.push(()=>Z.removeEventListener("pointerdown",$e),()=>b.removeEventListener("pointermove",C),()=>b.removeEventListener("pointerup",K)),ie.thumbs.forEach((G,B)=>{const te=ve=>{ve.stopPropagation(),we(ve,B)},ge=ve=>q(ve,B),oe=()=>{ie.focused=B,x(ie,B,!0)},fe=()=>{ie.focused===B&&(ie.focused=null),ie.dragging!==B&&x(ie,B,!1)};G.addEventListener("pointerdown",te),G.addEventListener("keydown",ge),G.addEventListener("focus",oe),G.addEventListener("blur",fe),ie.disposers.push(()=>G.removeEventListener("pointerdown",te),()=>G.removeEventListener("keydown",ge),()=>G.removeEventListener("focus",oe),()=>G.removeEventListener("blur",fe))}),ce},read(o){const _=o.__latSlider;return _?_.value:P},write(o,_){const b=o.__latSlider;b&&(b.value=b.isRange?i(_,b.min,b.max,b.step):T(_,b.min,b.max,b.step),w(b))},state(o,_){const b=o.__latSlider;if(b){b.disabled=_.disabled===!0,b.readOnly=_.readOnly===!0,o.setAttribute("data-disabled",String(b.disabled)),o.setAttribute("data-readonly",String(b.readOnly));for(const y of b.thumbs)y.tabIndex=b.disabled?-1:0,b.disabled?y.setAttribute("aria-disabled","true"):y.removeAttribute("aria-disabled"),b.readOnly?y.setAttribute("aria-readonly","true"):y.removeAttribute("aria-readonly")}},focus(o){const _=o.__latSlider;_&&_.thumbs[0]&&typeof _.thumbs[0].focus=="function"&&_.thumbs[0].focus()},blur(o){const _=o.__latSlider;if(_)for(const b of _.thumbs)typeof b.blur=="function"&&b.blur()},destroy(o){const _=o.__latSlider;if(_)for(const b of _.disposers.splice(0))b()},live:{min(o,_){const b=o.__latSlider;if(b){b.min=typeof _=="number"&&Number.isFinite(_)?_:P,b.max<=b.min&&(b.max=b.min+b.step);for(const y of b.thumbs)y.setAttribute("aria-valuemin",String(b.min));g(b),w(b)}},max(o,_){const b=o.__latSlider;if(b){b.max=typeof _=="number"&&Number.isFinite(_)&&_>b.min?_:b.min+b.step;for(const y of b.thumbs)y.setAttribute("aria-valuemax",String(b.max));g(b),w(b)}},step(o,_){const b=o.__latSlider;b&&(b.step=typeof _=="number"&&Number.isFinite(_)&&_>0?_:I,g(b),w(b))},tick(o,_){const b=o.__latSlider;b&&(b.tick=Number(_)>0?Number(_):0,g(b))},majorTick(o,_){const b=o.__latSlider;b&&(b.majorTick=Number(_)>0?Number(_):0,g(b))}}})}),De("packages/core/src/internal/lru.js",function(A,J){"use strict";Object.defineProperty(A,"Lru",{enumerable:!0,get:function(){return _e}});class _e{#e;#t=new Map;#n;constructor(L=256,e=null){this.#e=L,this.#n=e}get size(){return this.#t.size}get max(){return this.#e}set max(L){this.#e=L,this.#r()}has(L){return this.#t.has(L)}get(L){const e=this.#t;if(!e.has(L))return;const P=e.get(L);return e.delete(L),e.set(L,P),P}peek(L){return this.#t.get(L)}set(L,e){const P=this.#t;return P.has(L)&&P.delete(L),P.set(L,e),this.#r(),e}delete(L){const e=this.#t.get(L);return this.#t.delete(L)&&this.#n&&this.#n(e,L),e}clear(){if(this.#n)for(const[L,e]of this.#t)this.#n(e,L);this.#t.clear()}keys(){return this.#t.keys()}values(){return this.#t.values()}#r(){const L=this.#t;for(;L.size>this.#e;){const e=L.keys().next().value,P=L.get(e);L.delete(e),this.#n&&this.#n(P,e)}}}}),De("packages/core/src/columns/types/network.js",function(A,J){"use strict";Object.defineProperty(A,"toUint32",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"parseIpv4",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"formatIpv4",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"isIpv4",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"compareIpv4",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"packCidr",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"cidrParts",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"cidrNetworkOf",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"storeNumberOf",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"parseCidr",{enumerable:!0,get:function(){return u}}),Object.defineProperty(A,"formatCidr",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"isCidr",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"compareCidr",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"netmask",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"networkAddress",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"broadcastAddress",{enumerable:!0,get:function(){return w}}),Object.defineProperty(A,"addressCount",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"hostCount",{enumerable:!0,get:function(){return v}}),Object.defineProperty(A,"containsAddress",{enumerable:!0,get:function(){return f}}),Object.defineProperty(A,"overlaps",{enumerable:!0,get:function(){return o}}),Object.defineProperty(A,"ipv6Groups",{enumerable:!0,get:function(){return y}}),Object.defineProperty(A,"parseIpv6",{enumerable:!0,get:function(){return O}}),Object.defineProperty(A,"formatIpv6",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(A,"isIpv6",{enumerable:!0,get:function(){return se}}),Object.defineProperty(A,"compareIpv6",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(A,"macValue",{enumerable:!0,get:function(){return H}}),Object.defineProperty(A,"parseMac",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(A,"formatMac",{enumerable:!0,get:function(){return q}}),Object.defineProperty(A,"isMac",{enumerable:!0,get:function(){return we}}),Object.defineProperty(A,"macHex",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(A,"macContains",{enumerable:!0,get:function(){return C}}),Object.defineProperty(A,"compareMac",{enumerable:!0,get:function(){return K}}),Object.defineProperty(A,"MAC_OPERATORS",{enumerable:!0,get:function(){return G}}),Object.defineProperty(A,"NETWORK_TYPES",{enumerable:!0,get:function(){return de}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return pe}});const F=J("packages/core/src/internal/predicates.js").isNil,e=J("packages/core/src/internal/lru.js").Lru,P=4294967295,D=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function I(Y){if(F(Y))return null;if(typeof Y=="string")return M(Y);const re=Number(Y);return Number.isFinite(re)?re<0?re<-2147483648?null:re>>>0:re>P?null:Math.trunc(re)>>>0:null}function M(Y){if(F(Y))return null;const re=String(Y).trim();if(re==="")return null;const N=D.exec(re);if(!N)return null;let ue=0;for(let ye=1;ye<=4;ye++){const R=N[ye];if(R.length>1&&R.charCodeAt(0)===48)return null;const n=Number(R);if(n>255)return null;ue=ue*256+n}return ue}function W(Y){const re=I(Y);return re===null?"":`${re>>>24&255}.${re>>>16&255}.${re>>>8&255}.${re&255}`}function E(Y){return typeof Y=="string"&&M(Y)!==null}function T(Y,re){const N=I(Y),ue=I(re);return N===null?ue===null?0:1:ue===null||N<ue?-1:N>ue?1:0}const i=64,p=P*i+32,S=/^(?:0|[1-9]\d?)$/;function k(Y,re){return Y*i+re}function d(Y){if(F(Y))return null;if(typeof Y=="string"){const ue=u(Y);return ue===null?null:d(ue)}if(typeof Y=="object"){const ue=I(Y.address),ye=Number(Y.prefix);return ue===null||!Number.isInteger(ye)||ye<0||ye>32?null:{address:ue,prefix:ye}}const re=Number(Y);if(!Number.isInteger(re)||re<0||re>p)return null;const N=re%i;return N>32?null:{address:(re-N)/i,prefix:N}}function c(Y){return!!(Y&&Y.typeOptions&&Y.typeOptions.cidrNetwork)}function t(Y){return!!(Y&&Y.typeOptions&&Y.typeOptions.storeNumber)}function s(Y,re,N){return Y==null?null:t(re)?Y:N(Y)}function u(Y,re){if(F(Y))return null;const N=String(Y).trim();if(N==="")return null;const ue=N.indexOf("/");if(ue<0)return null;const ye=M(N.slice(0,ue));if(ye===null)return null;const R=N.slice(ue+1).trim();if(!S.test(R))return null;const n=Number(R);if(n>32)return null;const a=re&&re.network?(ye&l(n))>>>0:ye;return k(a,n)}function r(Y){const re=d(Y);return re?`${W(re.address)}/${re.prefix}`:""}function m(Y){return typeof Y=="string"&&u(Y)!==null}function z(Y,re){const N=d(Y),ue=d(re);return N?ue?N.address!==ue.address?N.address<ue.address?-1:1:N.prefix-ue.prefix:-1:ue?1:0}function l(Y){return Y===0?0:4294967295<<32-Y>>>0}function g(Y){const re=d(Y);return re?(re.address&l(re.prefix))>>>0:null}function w(Y){const re=d(Y);return re?(re.address&l(re.prefix)|~l(re.prefix)>>>0)>>>0:null}function x(Y){const re=d(Y);return re?2**(32-re.prefix):null}function v(Y){const re=d(Y);return re?re.prefix===32?1:re.prefix===31?2:2**(32-re.prefix)-2:null}function f(Y,re){const N=d(Y);if(!N)return!1;const ue=I(re);if(ue===null)return!1;const ye=l(N.prefix);return(ue&ye)>>>0===(N.address&ye)>>>0}function o(Y,re){const N=g(Y),ue=g(re);return N===null||ue===null?!1:N<=w(re)&&ue<=w(Y)}const _=/^[0-9a-fA-F]{1,4}$/,b=new e(512);function y(Y){if(F(Y))return null;let re=String(Y).trim();if(re==="")return null;const N=re.indexOf("%");if(N>=0&&(re=re.slice(0,N)),re==="")return null;if(re.indexOf(".")>=0){const U=re.lastIndexOf(":");if(U<0)return null;const V=M(re.slice(U+1));if(V===null)return null;re=`${re.slice(0,U+1)}${(V>>>16&65535).toString(16)}:${(V&65535).toString(16)}`}const ue=re.split("::");if(ue.length>2)return null;const ye=h(ue[0]);if(ye===null)return null;if(ue.length===1)return ye.length===8?ye:null;const R=h(ue[1]);if(R===null)return null;const n=8-ye.length-R.length;if(n<1)return null;const a=ye.slice();for(let U=0;U<n;U++)a.push(0);for(const U of R)a.push(U);return a}function h(Y){if(Y==="")return[];const re=[];for(const N of Y.split(":")){if(!_.test(N))return null;re.push(parseInt(N,16))}return re}function $(Y){if(typeof Y!="string")return y(Y);if(b.has(Y))return b.get(Y);const re=y(Y);return b.set(Y,re),re}function ee(Y){if(Y[0]===0&&Y[1]===0&&Y[2]===0&&Y[3]===0&&Y[4]===0&&Y[5]===65535)return`::ffff:${W((Y[6]<<16|Y[7])>>>0)}`;let re=-1,N=0,ue=-1,ye=0;for(let a=0;a<8;a++)Y[a]===0?(ue<0?(ue=a,ye=1):ye++,ye>N&&(N=ye,re=ue)):(ue=-1,ye=0);if(N<2)return Y.map(a=>a.toString(16)).join(":");const R=Y.slice(0,re).map(a=>a.toString(16)).join(":"),n=Y.slice(re+N).map(a=>a.toString(16)).join(":");return`${R}::${n}`}function O(Y){const re=y(Y);return re===null?null:ee(re)}function ae(Y){return O(Y)??""}function se(Y){return typeof Y=="string"&&Y.indexOf(":")>=0&&y(Y)!==null}function ce(Y,re){const N=$(Y),ue=$(re);if(!N)return ue?1:0;if(!ue)return-1;for(let ye=0;ye<8;ye++)if(N[ye]!==ue[ye])return N[ye]<ue[ye]?-1:1;return 0}const Z=/^[0-9a-fA-F]{12}$/,Q=/^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$/,Pe=/^[0-9a-fA-F]{2}$/;function ie(Y){const re=[];for(let N=0;N<12;N+=2)re.push(parseInt(Y.slice(N,N+2),16));return re}function j(Y){if(F(Y))return null;if(typeof Y=="number"){if(!Number.isInteger(Y)||Y<0||Y>0xffffffffffff)return null;const ye=[];for(let R=5;R>=0;R--)ye.push(Math.floor(Y/256**R)%256);return ye}const re=String(Y).trim();if(re==="")return null;if(Z.test(re))return ie(re);if(re.indexOf(".")>=0)return Q.test(re)?ie(re.split(".").join("")):null;const N=re.indexOf(":")>=0?":":re.indexOf("-")>=0?"-":null;if(N===null)return null;const ue=re.split(N);if(ue.length!==6)return null;for(const ye of ue)if(!Pe.test(ye))return null;return ue.map(ye=>parseInt(ye,16))}function H(Y){const re=j(Y);if(!re)return null;let N=0;for(const ue of re)N=N*256+ue;return N}function ne(Y){const re=j(Y);return re?re.map(N=>N.toString(16).padStart(2,"0")).join(":"):null}function q(Y,re="colon"){const N=j(Y);if(!N)return"";const ue=N.map(ye=>ye.toString(16).padStart(2,"0"));switch(re){case"hyphen":return ue.join("-");case"colon-upper":return ue.map(ye=>ye.toUpperCase()).join(":");case"cisco":return`${ue[0]}${ue[1]}.${ue[2]}${ue[3]}.${ue[4]}${ue[5]}`;default:return ue.join(":")}}function we(Y){return typeof Y=="string"&&j(Y)!==null}function $e(Y){if(F(Y))return null;const re=String(Y).trim();if(re==="")return null;const N=re.replace(/[:-]/g,"").replace(/\./g,"").toLowerCase();return/^[0-9a-f]+$/.test(N)?N:null}function C(Y,re){const N=$e(Y),ue=$e(re);return!!(N&&ue&&N.includes(ue))}function K(Y,re){const N=H(Y),ue=H(re);return N===null?ue===null?0:1:ue===null||N<ue?-1:N>ue?1:0}const G=Object.freeze(["macEquals","macInRange","macContains"]),B=Object.freeze(["eq","ne","contains","notContains","startsWith","endsWith"]);function te(Y){switch(Y){case"macEquals":return{compile:re=>{const N=H(re);return N===null?()=>!1:ue=>H(ue)===N},check:re=>H(re)===null?"the operand is not a MAC address":null};case"macInRange":return{compile:re=>{const N=Array.isArray(re)?re:[re,re],ue=H(N[0]),ye=H(N[1]);return ue===null||ye===null||ue>ye?()=>!1:R=>{const n=H(R);return n!==null&&n>=ue&&n<=ye}},check:re=>{const N=Array.isArray(re)?re:[];if(N.length!==2)return"the operand must be two MAC addresses, the low and high ends of the range";const ue=H(N[0]),ye=H(N[1]);return ue===null||ye===null?"an end of the range is not a MAC address":ue>ye?"the low end of the range is above the high end":null}};case"macContains":return{compile:re=>N=>C(N,re),check:re=>$e(re)===null?"the operand is not hex":null};default:return{compile:()=>()=>!1,check:()=>"unknown MAC operator"}}}function ge(Y){switch(Y){case"eq":return{compile:re=>{const N=H(re);return N===null?()=>!1:ue=>H(ue)===N},check:re=>H(re)===null?"the operand is not a MAC address":null};case"ne":return{compile:re=>{const N=H(re);return N===null?()=>!1:ue=>H(ue)!==N},check:re=>H(re)===null?"the operand is not a MAC address":null};case"contains":return{compile:re=>N=>C(N,re),check:re=>$e(re)===null?"the operand is not hex":null};case"notContains":return{compile:re=>N=>!C(N,re),check:re=>$e(re)===null?"the operand is not hex":null};case"startsWith":return{compile:re=>{const N=String(re??"").toLowerCase();return ue=>ue==null?!1:String(ue).toLowerCase().startsWith(N)}};case"endsWith":return{compile:re=>{const N=String(re??"").toLowerCase();return ue=>ue==null?!1:String(ue).toLowerCase().endsWith(N)}};default:return{compile:()=>()=>!1,check:()=>"unknown MAC text operator"}}}const oe=Object.freeze(["lt","lte","gt","gte","between","notBetween","in","notIn","matches"]);function fe(Y){const re=d(Y);return re===null?null:k(re.address,re.prefix)}function ve(Y,re,N){const ue=a=>String(a??"").trim().toLowerCase(),ye=a=>{if(a==null)return null;const U=re(a);return U===""?null:U.toLowerCase()},R=a=>Y(a)===null?`the operand is not ${N}`:null,n=(a,U)=>({compile:V=>{const le=ue(V);return Ae=>{const he=ye(Ae);return he===null?U:U?!a(he,le):a(he,le)}}});return Object.freeze({eq:{compile:a=>{const U=Y(a);return U===null?()=>!1:V=>Y(V)===U},check:R},ne:{compile:a=>{const U=Y(a);return U===null?()=>!0:V=>Y(V)!==U},check:R},contains:n((a,U)=>a.includes(U),!1),notContains:n((a,U)=>a.includes(U),!0),startsWith:n((a,U)=>a.startsWith(U),!1),endsWith:n((a,U)=>a.endsWith(U),!1),...Object.fromEntries(oe.map(a=>[a,Object.freeze({})]))})}const me=Object.freeze({ipv4:"Enter an IPv4 address, for example 10.0.0.1",cidr:"Enter a network in CIDR form, for example 10.0.0.0/24",ipv6:"Enter an IPv6 address, for example 2001:db8::1",mac:"Enter a MAC address, for example 00:1a:2b:3c:4d:5e"}),X=(Y,re)=>N=>{const ue=N&&typeof N.text=="string"?N.text:"";return ue.trim()!==""&&Y(ue)===null?re:null},de=Object.freeze({ipv4:{base:"number",storage:"int32",unsignedInt32:!0,matches:E,parse:Y=>M(Y.text),parseError:X(M,me.ipv4),compare:T,format:Y=>W(Y.value),operators:ve(I,W,"an IPv4 address"),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",excelKind:"string",toStorage:Y=>I(Y),toRow:(Y,re)=>s(Y,re,W),toClipboard:Y=>W(Y),fromClipboard:Y=>M(Y)},cidr:{base:"number",storage:"float64",matches:m,parse:Y=>u(Y.text,{network:c(Y.column)}),parseError:X(u,me.cidr),compare:z,format:Y=>r(Y.value),operators:ve(fe,r,"a network in CIDR form"),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",excelKind:"string",toStorage:Y=>{const re=d(Y);return re===null?null:k(re.address,re.prefix)},toRow:(Y,re)=>s(Y,re,r),toClipboard:Y=>r(Y),fromClipboard:(Y,re)=>u(Y,{network:c(re&&re.column)})},ipv6:{base:"text",storage:"dictionary",matches:se,parse:Y=>O(Y.text),parseError:X(O,me.ipv6),compare:ce,format:Y=>ae(Y.value),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",toStorage:Y=>O(Y),toClipboard:Y=>ae(Y),fromClipboard:Y=>O(Y)},mac:{base:"text",storage:"dictionary",matches:we,parse:Y=>ne(Y.text),parseError:X(ne,me.mac),compare:K,format:Y=>q(Y.value,Y.column&&Y.column.typeOptions&&Y.column.typeOptions.macFormat),operators:Object.freeze({...Object.fromEntries(G.map(Y=>[Y,te(Y)])),...Object.fromEntries(B.map(Y=>[Y,ge(Y)]))}),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",toStorage:Y=>ne(Y),fromClipboard:Y=>ne(Y)}}),pe=de}),De("packages/core/src/columns/types/vlan.js",function(A,J){"use strict";Object.defineProperty(A,"vlanError",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"parseVlans",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"formatVlans",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"vlanContains",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"vlanOverlaps",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"vlanCount",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"isVlan",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"compareVlans",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"VLAN_TYPES",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return d}});const _e=1,F=4094,L=/^\d+$/;function e(c,t){const s=!!(t&&t.single),u=c==null?"":String(c).trim();if(u==="")return{ids:null,error:null};const r=u.split(","),m=new Set;for(const z of r){const l=z.trim();if(l==="")return{ids:null,error:`"${u}" has an empty entry`};const g=l.indexOf("-");if(g>=0){if(s)return{ids:null,error:"a single-ID VLAN column holds one ID, not a list or range"};const w=l.slice(0,g).trim(),x=l.slice(g+1).trim();if(!L.test(w)||!L.test(x))return{ids:null,error:`"${l}" is not a VLAN range like 20-30`};let v=Number(w),f=Number(x);if(v<_e||v>F||f<_e||f>F)return{ids:null,error:`VLAN IDs are between ${_e} and ${F}`};if(v>f){const o=v;v=f,f=o}for(let o=v;o<=f;o++)m.add(o)}else{if(!L.test(l))return{ids:null,error:`"${l}" is not a VLAN ID (a whole number ${_e}-${F})`};const w=Number(l);if(w<_e||w>F)return{ids:null,error:`VLAN IDs are between ${_e} and ${F}`};if(s&&r.length>1)return{ids:null,error:"a single-ID VLAN column holds one ID, not a list or range"};m.add(w)}}return s&&m.size>1?{ids:null,error:"a single-ID VLAN column holds one ID, not a list or range"}:{ids:[...m].sort((z,l)=>z-l),error:null}}function P(c,t){return e(c,t).error}function D(c){const t=[];let s=0;for(;s<c.length;){let u=s;for(;u+1<c.length&&c[u+1]===c[u]+1;)u++;t.push(u===s?String(c[s]):`${c[s]}-${c[u]}`),s=u+1}return t.join(",")}function I(c){if(c==null||c==="")return null;if(typeof c=="string")return e(c,{}).ids;if(Array.isArray(c)){const t=new Set;for(const s of c){if(typeof s!="number"||!Number.isInteger(s)||s<_e||s>F)return null;t.add(s)}return t.size?[...t].sort((s,u)=>s-u):null}return typeof c=="number"&&Number.isInteger(c)&&c>=_e&&c<=F?[c]:null}function M(c,t){const s=e(c,t);return s.ids===null?null:D(s.ids)}function W(c){const t=I(c);return t===null?"":D(t)}function E(c,t){const s=I(c);if(s===null)return!1;const u=Number(t);return Number.isInteger(u)&&s.includes(u)}function T(c,t){const s=I(c);if(s===null)return!1;const u=new Set(s),r=Array.isArray(t)?t:typeof t=="string"?t.split(","):[t];for(const m of r){const z=Number(typeof m=="string"?m.trim():m);if(Number.isInteger(z)&&u.has(z))return!0}return!1}function i(c){const t=I(c);return t===null?0:t.length}function p(c){return typeof c=="string"&&M(c)!==null}function S(c,t){const s=I(c),u=I(t);return s===null?u===null?0:1:u===null?-1:s[0]!==u[0]?s[0]<u[0]?-1:1:s.length<u.length?-1:s.length>u.length?1:0}const k=Object.freeze({vlan:{base:"text",storage:"dictionary",matches:p,parse:c=>M(c.text,{single:!!(c.column&&c.column.typeOptions&&c.column.typeOptions.vlanSingle)}),parseError:c=>P(c.text,{single:!!(c.column&&c.column.typeOptions&&c.column.typeOptions.vlanSingle)}),compare:S,format:c=>W(c.value),defaults:{filter:"text",editor:"vlan",align:"start"},excel:"@",operators:Object.freeze({contains:{compile:c=>t=>E(t,c),check:c=>{const t=Number(typeof c=="string"?c.trim():c);return!Number.isInteger(t)||t<_e||t>F?`contains needs one VLAN ID ${_e}-${F}`:null}},overlaps:{compile:c=>t=>T(t,c),check:c=>{const t=Array.isArray(c)?c:typeof c=="string"?c.split(","):[c];for(const s of t){const u=Number(typeof s=="string"?s.trim():s);if(!Number.isInteger(u)||u<_e||u>F)return`overlaps needs VLAN IDs ${_e}-${F}`}return null}}}),toStorage:c=>M(c),toClipboard:c=>W(c),fromClipboard:c=>M(c)}}),d=k}),De("packages/modules/form/controls/network.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,P=J("packages/dom/src/autofill.js"),D=P.noHistory,I=P.applyAutocomplete,M=J("packages/core/src/columns/types/network.js"),W=M.parseIpv4,E=M.formatIpv4,T=M.parseCidr,i=M.formatCidr,p=M.parseIpv6,S=M.formatIpv6,k=M.parseMac,d=M.formatMac,c=J("packages/core/src/columns/types/vlan.js"),t=c.parseVlans,s=c.formatVlans,u=c.vlanError,r=Symbol("lattice-form-network-invalid"),m=32;function z(v){return v&&v.props?v.props.macFormat:void 0}function l(v){return!!(v&&v.props&&v.props.vlanSingle===!0)}function g(v){const f=Number(v&&v.props&&v.props.prefix);return Number.isInteger(f)&&f>=0&&f<=32?f:m}function w(v){return!!(v&&v.props&&v.props.cidrNetwork===!0)}function x(v,f){const o=f.display||f.canonical;function _(b,y,h){if(h==null||h===""){y&&(y.value=null),b.value="";return}const $=y?y.item:{};y&&(y.value=f.canonical(h,$)||null),b.value=o(h,$)}F(v,{kind:"field",build(b,y){const $=y.doc.createElement("input");$.type="text",$.inputMode=f.inputMode,$.autocapitalize="off",$.autocorrect="off",$.spellcheck=!1,b.name&&($.name=b.name),D($),I($,b.autocomplete),b.placeholder!=null&&($.placeholder=String(b.placeholder));const ee=typeof y.t=="function"?y.t:e,O={input:$,item:b,t:ee,value:null,offBlur:null};$.__latNetwork=O,_($,O,b.value);const ae=()=>{const se=$.value;if(String(se).trim()===""){_($,O,null);return}const ce=f.parse(se,O.item);ce.ok&&_($,O,ce.value)};return $.addEventListener("blur",ae),O.offBlur=()=>$.removeEventListener("blur",ae),$},read(b){const y=b.__latNetwork,$=(y?y.input:b).value;if(String($).trim()==="")return null;const ee=f.parse($,y?y.item:{});return ee.ok?f.canonical(ee.value,y?y.item:{})||null:r},write(b,y){const h=b.__latNetwork;_(h?h.input:b,h,y)},state(b,y){const h=b.__latNetwork,$=h?h.input:b;$.disabled=y.disabled===!0,$.readOnly=y.readOnly===!0},validate(b,y){const h=b.__latNetwork,ee=(h?h.input:b).value;if(String(ee).trim()===""||f.parse(ee,y).ok)return null;const ae=h?h.t:e,se=typeof f.messageKey=="function"?f.messageKey(y):f.messageKey;return{code:"pattern",message:ae(se),keepText:!0}},destroy(b){const y=b.__latNetwork;y&&typeof y.offBlur=="function"&&y.offBlur()}})}x("ipv4",{inputMode:"numeric",parse:v=>{const f=W(v);return f===null?{ok:!1}:{ok:!0,value:f}},canonical:v=>E(v),messageKey:"form.validation.ipv4"}),x("ipv6",{inputMode:"text",parse:v=>{const f=p(v);return f===null?{ok:!1}:{ok:!0,value:f}},canonical:v=>S(v),messageKey:"form.validation.ipv6"}),x("cidr",{inputMode:"numeric",parse:(v,f)=>{const o=v.indexOf("/")>=0?v:`${v}/${g(f)}`,_=T(o,{network:w(f)});return _===null?{ok:!1}:{ok:!0,value:_}},canonical:v=>i(v),messageKey:"form.validation.cidr"}),x("mac",{inputMode:"text",parse:v=>{const f=k(v);return f===null?{ok:!1}:{ok:!0,value:f}},canonical:v=>d(v),display:(v,f)=>d(v,z(f)),messageKey:"form.validation.mac"}),x("vlan",{inputMode:"numeric",parse:(v,f)=>{const o=l(f);return u(v,{single:o})?{ok:!1}:{ok:!0,value:t(v,{single:o})}},canonical:v=>s(v),messageKey:v=>l(v)?"form.validation.vlanSingle":"form.validation.vlan"})}),De("packages/modules/form/controls/index.js",function(A,J){"use strict";const _e=J("packages/modules/form/controls/input.js"),F=J("packages/modules/form/controls/number.js"),L=J("packages/modules/form/controls/textarea.js"),e=J("packages/modules/form/controls/checkbox.js"),P=J("packages/modules/form/controls/button.js"),D=J("packages/modules/form/controls/buttons.js"),I=J("packages/modules/form/controls/text.js"),M=J("packages/modules/form/controls/combo.js"),W=J("packages/modules/form/controls/select.js"),E=J("packages/modules/form/controls/listbox.js"),T=J("packages/modules/form/controls/radiogroup.js"),i=J("packages/modules/form/controls/checkboxgroup.js"),p=J("packages/modules/form/controls/toggle.js"),S=J("packages/modules/form/controls/datepicker.js"),k=J("packages/modules/form/controls/time.js"),d=J("packages/modules/form/controls/daterange.js"),c=J("packages/modules/form/controls/file.js"),t=J("packages/modules/form/controls/richtext.js"),s=J("packages/modules/form/controls/rating.js"),u=J("packages/modules/form/controls/stage.js"),r=J("packages/modules/form/controls/chips.js"),m=J("packages/modules/form/controls/otp.js"),z=J("packages/modules/form/controls/color.js"),l=J("packages/modules/form/controls/barcode.js"),g=J("packages/modules/form/controls/speeddial.js"),w=J("packages/modules/form/controls/container.js"),x=J("packages/modules/form/controls/avatar.js"),v=J("packages/modules/form/controls/togglegroup.js"),f=J("packages/modules/form/controls/grid.js"),o=J("packages/modules/form/controls/slider.js"),_=J("packages/modules/form/controls/network.js")}),De("packages/modules/form/create.js",function(A,J){"use strict";Object.defineProperty(A,"createForm",{enumerable:!0,get:function(){return te}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return ge}});const _e=J("packages/modules/form/styles.js"),F=_e.NS,L=_e.injectStyles,e=J("packages/modules/form/model.js"),P=e.resolveConfig,D=e.DENSITIES,I=e.cssSize,M=e.resolveLabelPosition,W=J("packages/modules/form/view.js"),E=W.markValidation,T=W.mount,i=W.runValidation,p=W.validateItem,S=W.wizardBack,k=W.wizardGoTo,d=W.wizardNext,c=W.VALIDATED_KINDS,t=W.applyCss,s=W.applyItemWidth,u=W.applyItemHeight,r=W.applyItemLabelPosition,m=W.applyItemLabelWidth,l=J("packages/modules/form/validation.js").maskPlaceholderOf,g=J("packages/modules/form/emitter.js"),w=g.Emitter,x=g.FORM_EVENTS,f=J("packages/modules/form/messages.js").createTranslator,o=J("packages/modules/form/bind.js"),_=o.resolveBind,b=o.applyBinding,y=o.mergeBoundNetworkOptions,$=J("packages/modules/form/rules.js").applyRules,O=J("packages/modules/form/state.js").syncRecordState,ae=J("packages/modules/form/controls/container.js"),se=ae.attachToContainer,ce=ae.attachHtmlToContainer,Z=ae.getContainerWidget,Pe=J("packages/modules/form/controls/button.js").setButtonCaption,j=J("packages/modules/form/ready.js").createReadySignal,ne=J("packages/dom/src/watermark.js").mountViewWatermark,q=J("packages/modules/form/controls/index.js"),we=new Set;function $e(oe,fe){we.has(oe)||(we.add(oe),console.warn("[lattice]",fe))}const C=new Set(["min","max","step"]);function K(oe,fe){const ve=oe.item;switch(fe){case"label":return ve.label!=null?String(ve.label):null;case"helpMessage":return ve.helpMessage!=null?String(ve.helpMessage):null;case"placeholder":return ve.placeholder!=null?String(ve.placeholder):null;case"labelPosition":return oe.labelPosition;case"hiddenLabel":return ve.hiddenLabel===!0;case"labelWidth":return oe.labelWidth!=null?oe.labelWidth:null;case"required":return ve.required===!0;case"readOnly":return ve.readOnly===!0;case"disabled":return ve.disabled===!0;case"hidden":return oe.hidden===!0;case"width":return ve.width!=null?ve.width:null;case"height":return ve.height!=null?ve.height:null;case"padding":return ve.padding!=null?ve.padding:null;case"min":return ve.min!=null?ve.min:null;case"max":return ve.max!=null?ve.max:null;case"step":return ve.step!=null?ve.step:null;case"options":return ve.options!=null?ve.options:null;case"validation":return ve.validation!=null?ve.validation:null;case"errorMessage":return ve.errorMessage!=null?ve.errorMessage:null;case"css":return ve.css!=null?ve.css:null;default:if(ve.props&&Object.hasOwn(ve.props,fe))return ve.props[fe];$e(`form.item.get.unknown:${fe}`,`lattice-form: getItem(name).get("${fe}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`);return}}function G(oe,fe,ve,me){const X=fe.item,de=fe.facade;switch(ve){case"label":{const pe=me==null?"":String(me);X.label=pe,fe.def.kind==="button"?Pe(fe.control,pe):fe.labelEl?fe.labelEl.textContent=pe:fe.placeholderEl&&pe!==""&&fe.placeholderEl.setAttribute("aria-label",pe);return}case"helpMessage":{const pe=me==null?null:String(me);if(X.helpMessage=pe,pe==null||pe===""){fe.helpEl&&(fe.helpEl.remove(),fe.helpEl=null);return}if(fe.helpEl)fe.helpEl.textContent=pe;else{const Y=oe.doc.createElement("div");Y.className=`${F}__help`,Y.textContent=pe,fe.controlWrap.appendChild(Y),fe.helpEl=Y}return}case"placeholder":{X.placeholder=me,fe.placeholderBase=me==null?l(X):String(me),fe.def.live&&typeof fe.def.live.placeholder=="function"&&fe.def.live.placeholder(fe.control,me,X,fe),$(oe);return}case"labelPosition":{r(fe,M(me)),X.labelPosition=fe.labelPosition;return}case"labelWidth":{X.labelWidth=me,m(fe,me);return}case"hiddenLabel":{X.hiddenLabel=me===!0,r(fe,X.hiddenLabel?"hidden":fe.labelPositionBase);return}case"required":{X.required=me===!0,$(oe);return}case"readOnly":{X.readOnly=me===!0,O(fe);return}case"disabled":{X.disabled=me===!0,O(fe);return}case"hidden":{me===!0?de.hide():de.show();return}case"width":{X.width=me,s(fe,me);return}case"height":{X.height=me,u(fe,me);return}case"padding":{X.padding=me==null?null:I(me),fe.def.kind==="container"?fe.control.style.padding=X.padding==null?"":X.padding:fe.el.style.padding=X.padding==null?"":X.padding;return}case"css":{X.css=me,t(fe.el,me);return}case"validation":{X.validation=me;return}case"errorMessage":{X.errorMessage=me;return}case"options":{de.setOptions(me);return}default:{const pe=fe.def.live;if(pe&&typeof pe[ve]=="function"){C.has(ve)?X[ve]=me:(X.props||(X.props={}),X.props[ve]=me),pe[ve](fe.control,me,X,fe);return}$e(`form.item.set.unknown:${ve}`,`lattice-form: getItem(name).set() was given "${ve}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`)}}}function B(oe){if(Array.isArray(oe))return oe.map(B);if(oe==null||typeof oe!="object"||typeof oe.nodeType=="number"||Object.getPrototypeOf(oe)!==Object.prototype)return oe;const fe=oe.type==="buttons"?"buttons":oe.type==="speeddial"?"speedDialItems":null,ve=fe!=null&&Array.isArray(oe.items),me={};for(const X of Object.keys(oe))ve&&X==="items"||(me[X]=B(oe[X]));return ve&&(me[fe]=oe.items.map(B)),me}function te(oe,fe={}){const ve=oe&&oe.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,me=_(fe);let X=fe;if(me){if(X={...fe},X.density===void 0){const n=me.density();n!=null&&(X.density=n)}if(Array.isArray(X.rows)&&X.rows.length||Array.isArray(X.cols)&&X.cols.length)me.kind==="grid"&&fe.bind&&fe.bind.grid&&y(fe.bind.grid,X);else{const n=me.items();n.length&&(X.rows=[{items:n}])}}const de=P(B(X)),pe={el:oe||null,doc:ve,model:de,config:de,items:new Map,order:[],emitter:new w,t:f(de.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},Y=R=>{if(R.kind==="fieldset")return R.facade||(R.facade={el:R.el,name:R.name,getValue(){},setValue(){return R.facade},show(){return R.hidden=!1,R.el.hidden=!1,R.facade},hide(){return R.hidden=!0,R.el.hidden=!0,R.facade},isVisible(){return!R.hidden},disable(){return R.facade},enable(){return R.facade},focus(){return typeof R.el.focus=="function"&&R.el.focus(),R.facade},blur(){return typeof R.el.blur=="function"&&R.el.blur(),R.facade},validate(){return!0},setLoading(){return R.facade},setOptions(){return R.facade},reload(){return R.facade},getLabel(){return R.label},setLabel(n){const a=n==null?"":String(n);if(R.label=a,R.legendEl)R.legendEl.textContent=a;else{const U=pe.doc.createElement("legend");U.className=`${F}__legend`,U.textContent=a,R.el.insertBefore(U,R.el.firstChild),R.legendEl=U}return R.facade},setHelp(n){if(n==null||n==="")return R.helpEl&&(R.helpEl.remove(),R.helpEl=null),R.facade;const a=String(n);if(R.helpEl)R.helpEl.textContent=a;else{const U=pe.doc.createElement("div");U.className=`${F}__help`,U.textContent=a,R.el.appendChild(U),R.helpEl=U}return R.facade},set(n){if(n==null||typeof n!="object")return R.facade;for(const a of Object.keys(n))a==="label"?R.facade.setLabel(n[a]):a==="helpMessage"?R.facade.setHelp(n[a]):$e(`form.item.set.unknown:${a}`,`lattice-form: getItem(name).set() was given "${a}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`);return R.facade},get(n){if(n==="label")return R.label!=null?R.label:null;if(n==="helpMessage")return R.helpEl?R.helpEl.textContent:null;$e(`form.item.get.unknown:${n}`,`lattice-form: getItem(name).get("${n}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`)},setPlaceholder(){return R.facade},getPlaceholder(){return null}}),R.facade;if(!R.facade&&(R.facade={el:R.el,item:R.item,name:R.item.name,get labelEffectivePosition(){return R.labelEffectivePosition},getValue(){return R.value},setValue(n){return R.def.write(R.control,n),R.value=R.def.read(R.control),R.item.value=R.value,$(pe),R.facade},show(){return R.hidden=!1,R.el.hidden=!1,R.facade},hide(){return R.hidden=!0,R.el.hidden=!0,R.facade},isVisible(){return!(R.hidden||R.ruleHidden)},disable(){return R.item.disabled=!0,O(R),R.facade},enable(){return R.item.disabled=!1,O(R),R.facade},focus(){return typeof R.def.focus=="function"?R.def.focus(R.control):typeof R.control.focus=="function"&&R.control.focus(),R.facade},blur(){return typeof R.def.blur=="function"?R.def.blur(R.control):typeof R.control.blur=="function"&&R.control.blur(),R.facade},validate(){return p(pe,R)},setLoading(n){return typeof R.def.setLoading=="function"&&R.def.setLoading(R.control,n===!0),R.facade},setOptions(n){const a=R.control&&(R.control.__combo||R.control.__select);return a&&typeof a.setOptions=="function"&&(a.setOptions(n),R.item.options=n),R.facade},reload(){const n=R.control&&(R.control.__combo||R.control.__select);return n&&typeof n.reload=="function"&&n.reload(),R.facade},getOptions(){const n=R.control&&R.control.__listbox;return n&&typeof n.getOptions=="function"?n.getOptions():void 0},addOption(n,a){const U=R.control&&R.control.__listbox;return U&&typeof U.addOption=="function"&&U.addOption(n,a),R.facade},removeOption(n){const a=R.control&&R.control.__listbox;return a&&typeof a.removeOption=="function"&&a.removeOption(n),R.facade},updateOption(n,a){const U=R.control&&R.control.__listbox;return U&&typeof U.updateOption=="function"&&U.updateOption(n,a),R.facade},filter(n){const a=R.control&&R.control.__listbox;return a&&typeof a.filter=="function"&&a.filter(n),R.facade},remeasure(){const n=R.control&&R.control.__listbox;return n&&typeof n.remeasure=="function"&&n.remeasure(),R.facade},getLabel(){return R.item.label!=null?String(R.item.label):null},setLabel(n){return R.facade.set({label:n})},setHelp(n){return R.facade.set({helpMessage:n})},getPlaceholder(){return R.facade.get("placeholder")},setPlaceholder(n){return R.facade.set({placeholder:n})},set(n){if(n==null||typeof n!="object")return R.facade;for(const a of Object.keys(n))G(pe,R,a,n[a]);return R.facade},get(n){return K(R,n)}},R.def.kind==="container"&&(R.facade.attach=(n,a)=>(se(R.control,n,a),R.facade),R.facade.attachHTML=n=>(ce(pe.doc,R.control,n),R.facade),R.facade.getWidget=()=>Z(R.control)),R.def.kind==="grid")){const n=R.control.__latGridApi;R.facade.addRow=a=>n.addRow(a),R.facade.removeRows=a=>n.removeRows(a),R.facade.getGrid=()=>n.grid()}return R.facade};oe&&ve&&L(ve);const re=oe&&typeof oe.style.cssText=="string"?oe.style.cssText:"",N=new Set(["field","toggle","display","grid"]),ue={el:oe||null,config:de,getItem(R){const n=pe.items.get(String(R));return n?Y(n):void 0},getValue(){const R={};for(const n of pe.order)if(n.item.name!=null&&N.has(n.def.kind)&&(n.valueRows!==!1&&(R[n.item.name]=n.value),n.mapped))for(const a of n.mapped)R[a.item.name]=a.value;return R},setValue(R){if(R==null||typeof R!="object")return ue;for(const n of Object.keys(R)){const a=pe.items.get(n);a&&Y(a).setValue(R[n])}return ue},clear(){for(const R of pe.order)if(R.item.name!=null)if(R.def.kind==="field"){const n=R.item.props&&R.item.props.multiple===!0,a=R.item.type==="togglegroup"?{}:R.item.type==="chips"?n?[]:null:R.item.type==="number"||R.item.type==="radiogroup"||R.item.type==="datepicker"||R.item.type==="stage"||R.item.type==="combo"&&!n?null:R.item.type==="rating"?0:R.item.type==="file"||R.item.type==="checkboxgroup"||(R.item.type==="select"||R.item.type==="combo")&&n?[]:"";R.value=a,R.item.value=a,R.def.write(R.control,a)}else R.def.kind==="toggle"?(R.value=!1,R.item.value=!1,R.def.write(R.control,!1)):R.def.kind==="grid"&&(R.def.write(R.control,[]),R.value=R.def.read(R.control),R.item.value=R.value);return $(pe),ue},validate(){const R=[];let n=!0;for(const a of pe.order){if(a.item.name==null||!c.has(a.def.kind)||a.item.disabled===!0||a.ruleHidden===!0||a.hidden===!0||(typeof a.def.reset=="function"&&a.def.reset(a.control,a.item),a.item.required!==!0&&a.item.validation==null&&typeof a.def.validate!="function"&&a.ruleRequired!==!0))continue;const U=i(pe,a);E(pe,a,U),U&&(n=!1,R.push({name:a.item.name,rule:U.code,message:U.message}))}return pe.emitter.emit("validated",{name:null,item:null,value:void 0,valid:n,failures:R}),n},forEach(R){for(const n of pe.order)R(Y(n))},on(R,n){return R!=="*"&&!x.includes(R)?(console.warn(`lattice-form: "${R}" is not a form event and will never fire.`),()=>{}):pe.emitter.on(R,n)},off(R,n){pe.emitter.off(R,n)},setDensity(R){if(!D.includes(R))return ue;de.density=R,oe&&oe.setAttribute("data-density",R);for(const n of pe.order)typeof n.def.density=="function"&&n.def.density(n.control,R);return ue},setReadOnly(R){for(const n of pe.order)n.item.readOnly=R===!0,O(n);return ue},setDisabled(R){for(const n of pe.order)n.item.disabled=R===!0,O(n);return ue},setSpacing(R){const n=R==null?null:I(R);return de.spacing=n,oe&&(n==null?oe.style.removeProperty("--lattice-form-item-gap"):oe.style.setProperty("--lattice-form-item-gap",n)),ue},isDirty(R){return R==null?pe.dirty.size>0:pe.dirty.has(String(R))},isConflicted(R){return R==null?pe.conflicts.size>0:pe.conflicts.has(String(R))},save(){const R=pe.bound;if(!R)return!1;if(pe.dirty.size===0)return!0;const n={};for(const V of pe.dirty){const le=ue.getItem(V);le&&(n[V]=le.getValue())}const a=R.save(n),U=V=>{if(!V)return!1;for(const le of Object.keys(n))pe.baseline[le]=n[le],pe.dirty.delete(le),pe.conflicts.delete(le);return!0};return a&&typeof a.then=="function"?a.then(U):U(a)},revert(){for(const R of pe.dirty){if(!Object.hasOwn(pe.baseline,R))continue;const n=pe.items.get(R);n&&Y(n).setValue(pe.baseline[R])}return pe.dirty.clear(),pe.conflicts.clear(),ue},_bind(R){return b(pe,ue,R),ue},_commit(R){for(const n of Object.keys(R||{}))pe.baseline[n]=R[n],pe.dirty.delete(n),pe.conflicts.delete(n)},get steps(){return pe.model.steps||[]},get activeStep(){return pe.wizard?pe.wizard.active:0},next(){return d(pe)},back(){return S(pe)},goToStep(R){return k(pe,R)},__reapplyRules(){return $(pe),ue},destroy(){ye.fail(new Error("lattice-grid: the form was destroyed before it became ready."));for(const n of pe.disposers.splice(0))n();pe.emitter.clear();const R=pe.el;if(R){for(;R.firstChild;)R.removeChild(R.firstChild);R.classList.remove(F),R.removeAttribute("data-density"),R.removeAttribute("data-lattice-standalone"),R.style.cssText=re,R.__latticeForm===ue&&(R.__latticeForm=null)}pe.items.clear(),pe.order.length=0,pe.dirty.clear(),pe.conflicts.clear(),pe.baseline={},pe.bound=null}};oe&&(oe.__latticeForm=ue),pe.form=ue,oe&&ve&&(T(pe),pe.disposers.push(ne(oe,fe).destroy)),me&&b(pe,ue,me);const ye=j();return ye.settleSoon(),ue.ready=ye.promise,ue}const ge=te}),De("packages/modules/form/group.js",function(A,J){"use strict";Object.defineProperty(A,"GROUP_EVENTS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"createFormGroup",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return c}});const F=J("packages/modules/form/emitter.js").Emitter,e=J("packages/modules/form/bind-router.js").routerBinding,P=J("packages/modules/form/group-rules.js"),D=P.attachRuleResolver,I=P.detachRuleResolver,M=P.makeRuleResolver,W=P.reapplyMembers,E=Object.freeze(["change","validated"]),T=new Set;function i(t){const s={},u=t.getValue();for(const r of Object.keys(u))t.isDirty(r)===!0&&(s[r]=u[r]);return s}function p(t,s){T.has(t)||(T.add(t),console.warn("[lattice]",s))}const S=new WeakMap;function k(t,s){let u=S.get(t);if(!u){const r=t.destroy;u={original:r,watchers:new Set},S.set(t,u),t.destroy=function(){const z=S.get(t)||u;for(const l of[...z.watchers])l.detach(t);return r.call(t)}}u.watchers.add(s)}function d(t,s={}){const u=[],r=new Map,m=new Map,z=new F,l=s&&typeof s.bind=="object"&&s.bind.router!=null?s.bind:null,g=l?e(l):null,w=()=>{r.clear(),m.clear();for(const _ of u){const b=Object.keys(_.form.getValue());for(const y of b)r.has(y)?p(`form.group.duplicate-field:${y}`,`form group: the field "${y}" is owned by more than one form; the first one added wins.`):r.set(y,_);_.id!=null&&!m.has(_.id)&&m.set(_.id,_)}},x=M({owners:r,byId:m,warnOnce:p}),v=_=>{const b=u.findIndex($=>$.form===_);if(b===-1)return!1;const[y]=u.splice(b,1);for(const $ of y.unsubs)$();w();const h=S.get(_);return h&&(h.watchers.delete(f),h.watchers.size===0&&(S.delete(_),_.destroy=h.original)),I(_),typeof _.__reapplyRules=="function"&&_.__reapplyRules(),W(u),!0},f={detach:v},o={get forms(){return u.map(_=>_.form)},add(_,b){if(!_||typeof _!="object"||typeof _.getValue!="function"||u.some(ee=>ee.form===_))return o;const y={form:_,id:b&&b.id,unsubs:[],lastFailures:[]};u.push(y),g&&typeof _._bind=="function"&&_._bind(g);const h=ee=>{z.emit("change",{form:_,name:ee.name,value:ee.value}),W(u)},$=ee=>{y.lastFailures=ee.failures||[],z.emit("validated",{form:_,valid:ee.valid})};return y.unsubs.push(_.on("change",h)),y.unsubs.push(_.on("validated",$)),k(_,f),w(),D(_,x),W(u),o},remove(_){return v(_),o},getValue(){const _={};for(const b of u)Object.assign(_,b.form.getValue());return s.transform&&typeof s.transform.get=="function"?s.transform.get(_):_},setValue(_){if(s.transform&&typeof s.transform.set=="function")s.transform.set(_);else if(_!=null&&typeof _=="object")for(const b of Object.keys(_)){const y=r.get(b);y&&y.form.setValue({[b]:_[b]})}return W(u),o},getItem(_){const b=r.get(String(_));return b?b.form.getItem(_):void 0},validate(){let _=!0;const b=[];for(const y of u){y.form.validate()===!1&&(_=!1);for(const $ of y.lastFailures||[])b.push({form:y.form,name:$.name})}if(!_){const y=b.find(h=>h.name!=null);if(y){const h=y.form.getItem(y.name);h&&(h.focus(),h.el&&typeof h.el.scrollIntoView=="function"&&h.el.scrollIntoView({block:"nearest"}))}}return _},setReadOnly(_){for(const b of u)b.form.setReadOnly(_===!0);return o},setDisabled(_){for(const b of u)b.form.setDisabled(_===!0);return o},clear(){for(const _ of u)_.form.clear();return o},reset(){for(const _ of u)typeof _.form.revert=="function"&&_.form.revert();return o},save(){if(!g)return!1;const _=u.map($=>({member:$,changes:i($.form)})),b={};for(const $ of _)Object.assign(b,$.changes);if(!Object.keys(b).length)return!0;const y=g.save(b),h=$=>{if(!$)return!1;for(const ee of _)ee.member.form&&typeof ee.member.form._commit=="function"&&ee.member.form._commit(ee.changes);return!0};return y&&typeof y.then=="function"?y.then(h):h(y)},isDirty(){return u.some(_=>_.form.isDirty()===!0)},on(_,b){return _!=="*"&&!E.includes(_)?(console.warn(`lattice-form: "${_}" is not a form group event and will never fire.`),()=>{}):z.on(_,b)},off(_,b){z.off(_,b)},destroy(){for(;u.length;){const _=u[u.length-1].form;v(_)}z.clear()}};if(Array.isArray(t))for(const _ of t)o.add(_);else t&&typeof t=="object"&&typeof t.getValue=="function"&&o.add(t);return o}const c=d}),De("packages/modules/form/enhance.js",function(A,J){"use strict";Object.defineProperty(A,"itemForField",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"configForForm",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"enhanceForm",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return T}});const F=J("packages/modules/form/create.js").createForm,L=Object.freeze(["text","email","password","url"]);function e(i){const p=i&&i.type?String(i.type).toLowerCase():"";return p==="submit"||p==="image"||i&&i.tagName==="BUTTON"&&p!=="button"}function P(i){if(!i||!i.name)return!1;const p=i&&i.type?String(i.type).toLowerCase():"";return!(p==="submit"||p==="button"||p==="reset"||p==="image"||p==="hidden"||p==="file"||i.tagName==="BUTTON")}function D(i,p){if(typeof i.getAttribute=="function"){const S=i.getAttribute("data-label");if(S!=null&&S!=="")return S;const k=i.getAttribute("aria-label");if(k!=null&&k!=="")return k}if(i.id&&typeof p.querySelector=="function"){const S=p.querySelector(`label[for="${i.id}"]`);if(S&&S.textContent!=null){const k=String(S.textContent).trim();if(k)return k}}return String(i.name||"")}function I(i){return i.type==="checkbox"?i.checked===!0:i.value==null?"":i.value}function M(i,p){if(e(i)||!P(i))return null;const S=i.type?String(i.type).toLowerCase():"text",k={type:"input",name:i.name,label:D(i,p),value:I(i)};if(S==="number")k.type="number",i.min!=null&&i.min!==""&&(k.min=Number(i.min)),i.max!=null&&i.max!==""&&(k.max=Number(i.max)),i.step!=null&&i.step!==""&&(k.step=Number(i.step));else if(S==="checkbox")k.type="checkbox";else if(i.tagName==="TEXTAREA")k.type="textarea";else if(L.includes(S))k.subtype=S,(S==="email"||S==="url")&&(k.validation=S);else return null;if(i.placeholder!=null&&i.placeholder!==""&&(k.placeholder=i.placeholder),i.required===!0&&(k.required=!0),i.disabled===!0&&(k.disabled=!0),i.readOnly===!0&&(k.readOnly=!0),typeof i.getAttribute=="function"){const d=i.getAttribute("data-validation")||i.getAttribute("data-rule");d&&(k.validation=d);const c=i.getAttribute("data-error-message");c&&(k.errorMessage=c);const t=i.getAttribute("data-help");t&&(k.helpMessage=t)}return k}function W(i,p){const S=i&&i.ownerDocument||(typeof document<"u"?document:null),k=[],d=i&&i.elements?i.elements:[];for(const c of d){const t=M(c,S);t&&k.push(t)}return{...p||{},rows:k}}function E(i,p){if(!i)return null;if(i.__latticeForm)return i.__latticeForm;const S=i.ownerDocument||(typeof document<"u"?document:null),k=[],d=i.elements?i.elements:[];for(const t of d)e(t)&&k.push(t);const c=F(i,W(i,p));i.__latticeForm=c;for(const t of k)t.parentNode!==i&&i.appendChild(t);return typeof i.addEventListener=="function"&&S&&i.addEventListener("submit",t=>{c.validate()||(t.preventDefault(),t.stopImmediatePropagation())},!0),c}const T=E}),De("packages/modules/form/index.js",function(A,J){"use strict";Object.defineProperty(A,"registerControl",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"createForm",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return k}});const F=J("packages/modules/form/styles.js").NS,e=J("packages/modules/form/controls/registry.js").registerControl,D=J("packages/modules/form/model.js").cssSize,M=J("packages/modules/form/create.js").createForm,W=J("packages/modules/form/controls/combo.js");Object.defineProperty(A,"createCombo",{enumerable:!0,get:function(){return W.createCombo}});const E=J("packages/modules/form/controls/select.js");Object.defineProperty(A,"createSelect",{enumerable:!0,get:function(){return E.createSelect}});const T=J("packages/modules/form/controls/speeddial.js");Object.defineProperty(A,"createSpeedDial",{enumerable:!0,get:function(){return T.createSpeedDial}});const i=J("packages/modules/form/group.js");Object.defineProperty(A,"createFormGroup",{enumerable:!0,get:function(){return i.createFormGroup}});const p=J("packages/modules/form/enhance.js");Object.defineProperty(A,"enhanceForm",{enumerable:!0,get:function(){return p.enhanceForm}});function S(d,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 t=typeof c.getValue=="function"?c.getValue:()=>null,s=typeof c.setValue=="function"?c.setValue:()=>{};e(String(d),{kind:"field",custom:!0,validate:typeof c.validate=="function"?(u,r,m)=>c.validate(m,r,u):void 0,destroy:typeof c.destroy=="function"?u=>c.destroy(u):void 0,build(u,r){const m=r.doc.createElement("div");m.className=`${F}__custom`;const z={name:u.name,item:u,getValue(){return z._read?z._read():void 0},setValue(l){z._write&&z._write(l)},onChange(l){z._commit&&z._commit(l===void 0?t(m):l)},onInput(l){z._input&&z._input(l===void 0?t(m):l)}};return m.__latticeFormApi=z,c.create(m,u,z),u.height!=null&&(m.style.height=D(u.height)),s(m,u.value),m},read(u){return t(u)},write(u,r){s(u,r)},state(u,r){u.setAttribute("data-disabled",r.disabled===!0?"true":"false"),u.setAttribute("data-readonly",r.readOnly===!0?"true":"false")}})}const k=M});var Zt=nn("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=Zt:typeof define=="function"&&define.amd?define(function(){return Zt}):fn.LatticeGridForm=Zt})(typeof globalThis<"u"?globalThis:this);
|
|
2399
|
+
`.trim()}function s(_){const b=_&&_.documentElement;if(!b||b.getAttribute(p))return;b.setAttribute(p,"1");const y=_.createElement("style");y.textContent=t(),(_.head||_.body||b).appendChild(y)}function u(_){return k.includes(_)?_:"bottom-right"}function r(_){return d.includes(_)?_:"primary"}function m(_,b){return c.includes(b)?b:_.startsWith("top-")?"down":_.startsWith("bottom-")?"up":_==="middle-left"?"right":"left"}function z(_){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 l(_,b){const y=b&&typeof b=="object"?b:{},h=z(_),$=typeof y.startAngle=="number"?y.startAngle:h.startAngle,ee=typeof y.endAngle=="number"?y.endAngle:h.endAngle,O=typeof y.offset=="number"&&y.offset>0?y.offset:0;return{startAngle:$,endAngle:ee,offset:O,defaulted:y.startAngle==null&&y.endAngle==null}}function g(_,b){const y=T[b];if(!y)return null;const h=_.createElementNS(S,"svg");h.setAttribute("viewBox",y.viewBox||"0 0 16 16"),h.setAttribute("aria-hidden","true"),h.setAttribute("focusable","false");const $=y.paint==="stroke";for(const ee of y.paths||[]){const O=_.createElementNS(S,"path");O.setAttribute("d",ee),$?(O.setAttribute("fill","none"),O.setAttribute("stroke","currentColor"),O.setAttribute("stroke-width","1.5"),O.setAttribute("stroke-linecap","round"),O.setAttribute("stroke-linejoin","round")):O.setAttribute("fill","currentColor"),h.appendChild(O)}return h}function w(_,b){if(_==null)return null;if(typeof _=="object"&&_.nodeType)return _;if(typeof _!="string"||_==="")return null;const y=_;if(/^(https?:)?\/\//i.test(y)||/^data:/i.test(y)){const h=b.createElement("img");return h.src=y,h.alt="",h}return g(b,y)}function x(_,b,y){const h=_&&_.defaultView;return h&&h.CustomEvent?new h.CustomEvent(b,{bubbles:!0,detail:y}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:y,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function v(_){return Array.isArray(_)?_.map(b=>{const y=b&&typeof b=="object"?b:{};return{id:y.id,icon:y.icon,text:y.text,disabled:y.disabled===!0,render:typeof y.render=="function"?y.render:null}}):[]}function f(_,b){const y="var(--lat-sd-size)",h="var(--lat-sd-gap)",$="var(--lat-sd-pad)";if(b==="up"||b==="down"){const ae={flexDirection:"column"};return _.endsWith("-left")?(ae.insetInlineStart=$,ae.alignItems="flex-start"):_.endsWith("-right")?(ae.insetInlineEnd=$,ae.alignItems="flex-end"):(ae.left="50%",ae.transform="translateX(-50%)",ae.alignItems="center"),b==="down"?ae.top=`calc(${$} + ${y} + ${h})`:ae.bottom=`calc(${$} + ${y} + ${h})`,ae}const O={flexDirection:"row"};return _.startsWith("top-")?(O.top=$,O.alignItems="flex-start"):_.startsWith("bottom-")?(O.bottom=$,O.alignItems="flex-end"):(O.top="50%",O.transform="translateY(-50%)",O.alignItems="center"),b==="right"?O.insetInlineStart=`calc(${$} + ${y} + ${h})`:O.insetInlineEnd=`calc(${$} + ${y} + ${h})`,O}function o(_,b={}){const y=b.doc||_&&_.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;y&&s(y);const h=typeof b.t=="function"?b.t:e,$=b.inForm===!0,ee=b.emitter||null,O=b.itemName!=null?String(b.itemName):"",ae=b.formItem||null,le=u(b.position),se=b.fixed===!0,Z=b.openOnHover===!0,Q=b.mode==="radial"?"radial":"linear",Pe=r(b.variant),ie=m(le,b.direction),j=b.modal===!0,H=b.text!=null?String(b.text):"",ne=b.openIcon!=null?b.openIcon:"plus",q=b.closeIcon!=null?b.closeIcon:"close",ke=Q==="radial"?l(le,b.radial):null;let Ee=b.disabled===!0,C=v(b.items);const K=y.createElement("div");K.className=i,K.setAttribute("data-variant",Pe),K.setAttribute("data-fixed",se?"true":"false"),$||K.setAttribute("data-lattice-standalone","true");const G=D("lat-speeddial-menu"),B=y.createElement("button");B.type="button",B.className=`${i}__fab`,B.setAttribute("data-position",le),B.setAttribute("aria-haspopup","menu"),B.setAttribute("aria-expanded","false"),B.setAttribute("aria-controls",G),H&&B.setAttribute("data-text","true");const te=y.createElement("span");if(te.className=`${i}__fab-icon`,te.setAttribute("aria-hidden","true"),B.appendChild(te),H){const Se=y.createElement("span");Se.className=`${i}__fab-text`,Se.textContent=H,B.appendChild(Se)}const ge=y.createElement("div");ge.className=`${i}__backdrop`,ge.hidden=!0;const oe=y.createElement("div");oe.className=`${i}__menu`,oe.setAttribute("role","menu"),oe.setAttribute("aria-label",h("form.speeddial.menu")),oe.id=G,oe.setAttribute("data-mode",Q),Q==="linear"&&oe.setAttribute("data-direction",ie),oe.hidden=!0,K.appendChild(ge),K.appendChild(oe),K.appendChild(B);let fe=!1;const ve=[];let be=!1;const X=(Se,Le)=>{ee?ee.emit(Se,{name:O,item:ae,...Le}):_.dispatchEvent(x(y,Se,Le))},de=()=>H||h(fe?"form.speeddial.close":"form.speeddial.open"),pe=()=>{for(;te.firstChild;)te.removeChild(te.firstChild);const Se=w(fe?q:ne,y);Se&&te.appendChild(Se)},Y=(Se,Le)=>{const Te=y.createElement("button");Te.type="button",Te.className=`${i}__item`,Te.setAttribute("role","menuitem"),Te.setAttribute("tabindex","-1"),Te.dataset.index=String(Le);const We=Se.text!=null&&String(Se.text)!==""?String(Se.text):Se.id!=null?String(Se.id):"";We&&Te.setAttribute("aria-label",We),Se.disabled&&Te.setAttribute("aria-disabled","true");const Ge=w(Se.icon,y),Ve=Se.text!=null?String(Se.text):"";if(typeof Se.render=="function"){const Xe=Se.render(Se,Le);Xe&&typeof Xe=="object"&&Xe.nodeType?Te.appendChild(Xe):Te.textContent=Xe!=null?String(Xe):""}else{if(Ge){const Xe=y.createElement("span");Xe.className=`${i}__item-icon`,Xe.setAttribute("aria-hidden","true"),Xe.appendChild(Ge),Te.appendChild(Xe)}if(Ve!==""){const Xe=y.createElement("span");Xe.className=`${i}__item-text`,Xe.textContent=Ve,Te.appendChild(Xe)}}Te.setAttribute("data-icon-only",Ge!=null&&Ve===""?"true":"false"),Te.setAttribute("data-text-only",Ge==null&&Ve!==""?"true":"false");const Fe=Xe=>{Xe.stopPropagation(),!(Se.disabled||Ee)&&(X("itemClick",{item:Se,index:Le}),ye(!1),B.focus())};Te.addEventListener("click",Fe),ve.push(()=>Te.removeEventListener("click",Fe));const rt=Xe=>{Xe.key==="Escape"?(Xe.preventDefault(),Xe.stopPropagation(),ye(!1),B.focus()):Xe.key==="ArrowDown"||Xe.key==="ArrowRight"?(Xe.preventDefault(),R(Le,1)):(Xe.key==="ArrowUp"||Xe.key==="ArrowLeft")&&(Xe.preventDefault(),R(Le,-1))};return Te.addEventListener("keydown",rt),ve.push(()=>Te.removeEventListener("keydown",rt)),Te};let re=[];const N=()=>{for(;oe.firstChild;)oe.removeChild(oe.firstChild);re=C.map((Se,Le)=>Y(Se,Le));for(const Se of re)oe.appendChild(Se);pe()},ce=()=>{if(Q!=="radial"||!ke)return;const Se=B.getBoundingClientRect(),Le=se?0:K.getBoundingClientRect().left,Te=se?0:K.getBoundingClientRect().top,We=Se.left+Se.width/2-Le,Ge=Se.top+Se.height/2-Te,Ve=ke.offset||Math.round(Se.width/2+28);let Fe=ke.startAngle,rt=ke.endAngle;if(ke.defaulted&&getComputedStyle(K).direction==="rtl"){const Ue=180-rt;rt=180-Fe,Fe=Ue}const Xe=re.length;re.forEach((Ue,Ae)=>{const He=(Xe<=1?(Fe+rt)/2:Fe+(rt-Fe)*(Ae/(Xe-1)))*Math.PI/180;Ue.style.left=`${Math.round(We+Ve*Math.cos(He))}px`,Ue.style.top=`${Math.round(Ge-Ve*Math.sin(He))}px`})},ye=(Se,Le={})=>{be||Ee||fe===Se||(fe=Se,B.setAttribute("aria-expanded",fe?"true":"false"),B.setAttribute("aria-label",de()),oe.hidden=!fe,j&&(ge.hidden=!fe),pe(),fe?(X("open",{}),ce(),Le.focusItems!==!1&&R(-1,1)):X("close",{}))},R=(Se,Le)=>{const Te=re.length;if(Te===0)return;let We=Se===-1?Le>0?0:Te-1:(Se+Le+Te)%Te;for(let Ge=0;Ge<Te;Ge+=1){if(!C[We].disabled){re[We].focus();return}We=(We+Le+Te)%Te}},n=()=>{ye(!0,{focusItems:!1})},a=()=>{fe&&(ye(!1),B.focus())},U=()=>{ye(!fe,{focusItems:!1})};if(Q==="linear"){const Se=f(le,ie);for(const Le of Object.keys(Se))oe.style[Le]=Se[Le]}const V=()=>{Ee||U()};B.addEventListener("click",V),ve.push(()=>B.removeEventListener("click",V));const ue=()=>{Z&&!Ee&&ye(!0,{focusItems:!1})};B.addEventListener("pointerenter",ue),ve.push(()=>B.removeEventListener("pointerenter",ue));const Ce=()=>{Z&&fe&&ye(!1)};K.addEventListener("pointerleave",Ce),ve.push(()=>K.removeEventListener("pointerleave",Ce));const he=Se=>{Se.stopPropagation(),a()};ge.addEventListener("click",he),ve.push(()=>ge.removeEventListener("click",he));const je=Se=>{if(!fe)return;const Le=Se.target;Le&&K.contains(Le)||a()};y.addEventListener("pointerdown",je,!0),ve.push(()=>y.removeEventListener("pointerdown",je,!0));const we=Se=>{!fe||Se.key!=="Escape"||(Se.preventDefault(),a())};y.addEventListener("keydown",we,!0),ve.push(()=>y.removeEventListener("keydown",we,!0));const Ie=Se=>{Se.key==="Escape"?fe&&(Se.preventDefault(),Se.stopPropagation(),a()):Se.key==="ArrowDown"||Se.key==="ArrowRight"?(Se.preventDefault(),ye(!0),R(-1,1)):(Se.key==="ArrowUp"||Se.key==="ArrowLeft")&&(Se.preventDefault(),ye(!0),R(-1,-1))};B.addEventListener("keydown",Ie),ve.push(()=>B.removeEventListener("keydown",Ie));const Ne=Se=>{Ee=Se===!0,B.disabled=Ee,B.setAttribute("aria-disabled",Ee?"true":"false"),Ee&&fe&&ye(!1)},Re={el:K,fab:B,menu:oe,open:n,close:a,toggle:U,setItems(Se){C=v(Se),N()},setDisabled:Ne,destroy(){be=!0;for(const Se of ve.splice(0))Se();for(;K.firstChild;)K.removeChild(K.firstChild);K.parentNode&&K.parentNode.removeChild(K)}};return Ne(Ee),N(),_.appendChild(K),_.__latSpeedDial=Re,Re}F("speeddial",{kind:"button",action:!0,build(_,b){const y=_.props||{},h=b.doc.createElement("div"),$=o(h,{items:y.speedDialItems||y.items,position:y.position,fixed:y.fixed,openOnHover:y.openOnHover,direction:y.direction,mode:_.mode,radial:y.radial,modal:y.modal,openIcon:y.openIcon,closeIcon:y.closeIcon,text:y.text!=null?y.text:_.label,variant:y.variant,disabled:_.disabled,t:b.t,doc:b.doc,inForm:!0,emitter:b.emitter,itemName:_.name,formItem:_});return b.disposers.push(()=>$.destroy()),h},read(){return null},write(){},state(_,b){const y=_&&_.__latSpeedDial;y&&y.setDisabled(b.disabled===!0)}})}),Me("packages/modules/form/controls/multipart-upload.js",function(A,J){"use strict";Object.defineProperty(A,"uploadMultipart",{enumerable:!0,get:function(){return _e}});function _e(F,L,e={}){return new Promise((P,D)=>{const I=new XMLHttpRequest,M=new FormData,W=L.fieldName||"file";if(L.params)for(const[E,T]of Object.entries(L.params))M.append(E,String(T));if(M.append(W,F,F.name),I.open("POST",L.target,!0),L.headers)for(const[E,T]of Object.entries(L.headers))I.setRequestHeader(E,T);if(I.upload.addEventListener("progress",E=>{e.onProgress&&E.lengthComputable&&e.onProgress(Math.round(E.loaded/E.total*100))}),I.addEventListener("load",()=>{if(I.status>=200&&I.status<300){let E=I.responseText;try{E=JSON.parse(I.responseText)}catch{}P(E)}else D(new Error(`upload failed with status ${I.status}`))}),I.addEventListener("error",()=>D(new Error("upload failed"))),I.addEventListener("abort",()=>D(new Error("upload aborted"))),e.signal){if(e.signal.aborted){I.abort();return}e.signal.addEventListener("abort",()=>I.abort())}I.send(M)})}}),Me("packages/modules/form/controls/avatar.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,L=J("packages/modules/form/controls/field-icon.js"),e=L.makeFieldIcon,P=L.injectFieldIconStyles,D=J("packages/modules/form/controls/file.js"),I=D.accepts,M=D.formatSize,E=J("packages/modules/form/controls/multipart-upload.js").uploadMultipart,T=Object.freeze({small:40,medium:64,large:96}),i=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 p(s){return s}function S(s,u){const r="http://www.w3.org/2000/svg",m=s.createElementNS(r,"svg");m.setAttribute("viewBox","0 0 16 16"),m.setAttribute("focusable","false"),m.setAttribute("aria-hidden","true");const z=s.createElementNS(r,"path");return z.setAttribute("d",u),z.setAttribute("fill","currentColor"),m.appendChild(z),m}function k(s){return typeof s=="number"&&Number.isFinite(s)&&s>0?s:typeof s=="string"&&T[s]?T[s]:T.medium}function d(s,u){const r=u&&u.defaultView,m=r&&r.Event,z=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(z)}function c(s){if(!s||typeof s!="object")return null;const u=s;return u.src==null||u.src===""?null:u}function t(s){return new Promise((u,r)=>{const m=new FileReader;m.onload=()=>u(String(m.result)),m.onerror=()=>r(m.error||new Error("could not read the file")),m.readAsDataURL(s)})}F("avatar",{kind:"field",build(s,u){const r=u.doc,m=u.t||p;P(r);const z=s.props||{},l=Array.isArray(z.accept)&&z.accept.length?z.accept.map(String):["image/*"],g=Number(z.maxSize)||0,w=r.createElement("div");w.className="lat-form__avatar";const x={value:c(s.value),rejectedMessage:null,accept:l,maxSize:g,size:k(z.size),circle:z.circle===!0,alt:z.alt!=null?String(z.alt):"",preview:z.preview!=null&&z.preview!==""?String(z.preview):null,icon:z.icon,placeholder:s.placeholder!=null&&s.placeholder!==""?String(s.placeholder):m("form.avatar.placeholder"),removeIcon:z.removeIcon!==!1,upload:z.upload&&typeof z.upload=="object"?z.upload:null,disabled:s.disabled===!0,readOnly:s.readOnly===!0,label:s.label!=null&&s.label!==""?String(s.label):null};w.__latAvatar=x;const v=r.createElement("input");v.type="file",v.className="lat-form__avatar-input",v.tabIndex=-1,v.setAttribute("aria-hidden","true"),l.length&&(v.accept=l.join(",")),w.appendChild(v);const f=r.createElement("button");f.type="button",f.className="lat-form__avatar-picture",w.appendChild(f);const o=r.createElement("button");o.type="button",o.className="lat-form__avatar-remove",o.setAttribute("aria-label",m("form.avatar.remove")),o.title=m("form.avatar.remove"),o.appendChild(e(r,"close")||S(r,i.photo)),w.appendChild(o);const _=r.createElement("span");return _.className="lat-form__avatar-status",w.appendChild(_),w.style.setProperty("--lat-avatar-size",`${x.size}px`),w.__latPaint=()=>{w.style.setProperty("--lat-avatar-size",`${x.size}px`),f.classList.toggle("lat-form__avatar-picture--circle",x.circle);const b=x.disabled||x.readOnly;f.disabled=b,f.tabIndex=b?-1:0,f.setAttribute("aria-label",x.label||m("form.avatar.choose")),f.textContent="";const y=x.value&&x.value.src?x.value.src:null;if(y){const $=r.createElement("img");$.className="lat-form__avatar-img",$.src=y,$.alt=x.alt,f.appendChild($)}else if(x.preview){const $=r.createElement("img");$.className="lat-form__avatar-img",$.src=x.preview,$.alt=x.alt,f.appendChild($)}else if(x.icon!=null&&x.icon!==!1){if(typeof x.icon=="object"&&x.icon.nodeType)f.appendChild(x.icon);else if(typeof x.icon=="string"){const $=r.createElement("img");$.className="lat-form__avatar-img",$.src=x.icon,$.alt=x.alt,f.appendChild($)}}else{const $=r.createElement("span");$.className="lat-form__avatar-placeholder",$.appendChild(S(r,i.photo));const ee=r.createElement("span");ee.className="lat-form__avatar-placeholder-text",ee.textContent=x.placeholder,$.appendChild(ee),f.appendChild($)}const h=!!(x.value&&x.value.src);o.hidden=!h||!x.removeIcon||x.disabled||x.readOnly,o.disabled=x.disabled||x.readOnly,_.textContent="",_.className="lat-form__avatar-status",x.value&&x.value.status==="uploading"?(_.classList.add("lat-form__avatar-status--uploading"),_.textContent=`${Math.round(x.value.progress||0)}%`):x.value&&x.value.status==="failed"&&(_.classList.add("lat-form__avatar-status--failed"),_.textContent=x.value.message||m("form.avatar.uploadFailed"))},w.__latStartUpload=()=>{const b=x.upload,y=x.value;!b||!y||!y.file||b.autosend===!1||(y.status="uploading",y.progress=0,w.__latPaint(),E(y.file,b,{onProgress(h){x.value===y&&(y.progress=h,w.__latPaint())}}).then(h=>{x.value===y&&(y.status="done",y.progress=100,b.updateFromResponse!==!1&&h&&typeof h=="object"&&(h.src!=null&&(y.src=String(h.src)),h.id!=null&&(y.id=h.id)),w.__latPaint(),d(w,r))},h=>{x.value===y&&(y.status="failed",y.message=h&&h.message?String(h.message):m("form.avatar.uploadFailed"),w.__latPaint(),d(w,r))}))},w.__latAdmit=b=>{if(!(!b||x.disabled||x.readOnly)){if(x.maxSize&&b.size>x.maxSize){x.rejectedMessage=m("form.avatar.rejected.size",{size:M(x.maxSize)});return}if(!I(b,x.accept)){x.rejectedMessage=m("form.avatar.rejected.type");return}x.rejectedMessage=null,t(b).then(y=>{x.value={src:y,file:b,name:b.name,size:b.size,status:"pending"},w.__latPaint(),d(w,r),w.__latStartUpload()})}},w.__latRemove=()=>{x.disabled||x.readOnly||(x.value=null,w.__latPaint(),d(w,r))},v.addEventListener("change",()=>{const b=v.files&&v.files[0];w.__latAdmit(b),v.value=""}),f.addEventListener("click",()=>{x.disabled||x.readOnly||v.click()}),f.addEventListener("keydown",b=>{x.disabled||x.readOnly||(b.key==="Enter"||b.key===" "||b.key==="Spacebar")&&(b.preventDefault(),v.click())}),o.addEventListener("click",b=>{b.stopPropagation(),w.__latRemove()}),["dragenter","dragover"].forEach(b=>f.addEventListener(b,y=>{x.disabled||x.readOnly||(y.preventDefault(),f.classList.add("lat-form__avatar-picture--dragover"))})),f.addEventListener("dragleave",()=>{f.classList.remove("lat-form__avatar-picture--dragover")}),f.addEventListener("drop",b=>{if(b.preventDefault(),f.classList.remove("lat-form__avatar-picture--dragover"),x.disabled||x.readOnly)return;const y=b.dataTransfer&&b.dataTransfer.files&&b.dataTransfer.files[0];w.__latAdmit(y)}),w.__latPaint(),x.value&&x.value.file&&x.value.status==="pending"&&w.__latStartUpload(),w},read(s){return s.__latAvatar?s.__latAvatar.value:null},write(s,u){const r=s.__latAvatar;r&&(r.value=c(u),s.__latPaint&&s.__latPaint())},state(s,u){const r=s.__latAvatar;r&&(r.disabled=u.disabled===!0,r.readOnly=u.readOnly===!0,r.disabled?s.setAttribute("aria-disabled","true"):s.removeAttribute("aria-disabled"),r.readOnly?s.setAttribute("aria-readonly","true"):s.removeAttribute("aria-readonly"),s.__latPaint&&s.__latPaint())},validate(s,u,r){const m=s.__latAvatar;return m&&m.rejectedMessage?m.rejectedMessage:null},focus(s){const u=s.querySelector(".lat-form__avatar-picture");u&&u.focus()}})}),Me("packages/modules/form/controls/togglegroup.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/controls/button.js").buildIcon,P="lat-form__togglegroup",D="lat-form__togglegroup-btn";function I(E,T){const i=E!==null&&typeof E=="object"?E:{},p=i.id!=null?String(i.id):i.value!=null?String(i.value):String(T),S=i.text!=null?String(i.text):p;return{id:p,text:S,offText:i.offText!=null?String(i.offText):S,icon:i.icon!=null?i.icon:null,offIcon:i.offIcon!=null?i.offIcon:i.icon,selected:i.selected===!0,disabled:i.disabled===!0,hidden:i.hidden===!0,full:i.full===!0}}function M(E,T){const i=T&&T.defaultView,p=i&&i.Event,S=p?new p("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};E.dispatchEvent(S)}function W(E){return typeof E=="number"&&Number.isFinite(E)&&E>=0?E:0}F("togglegroup",{kind:"field",build(E,T){const i=T.doc,p=E.props||{},S=p.multiselect===!0,k=p.full===!0,d=i.createElement("div");d.className=P,d.setAttribute("role","group"),d.setAttribute("aria-label",E.label!=null&&E.label!==""?String(E.label):T.t("form.togglegroup")),d.style.setProperty("--lat-form-gap",`${W(p.gap)}px`),k&&d.setAttribute("data-full","true");const c=(Array.isArray(E.options)?E.options:[]).map(I).filter(g=>!g.hidden),t=[],s={},u={doc:i,options:c,buttons:t,pressed:s,multiselect:S,disabled:E.disabled===!0,readOnly:E.readOnly===!0};d.__latToggleGroup=u;for(const g of c){const w=i.createElement("button");w.type="button",w.className=D,w.setAttribute("data-index",String(t.length)),g.full&&w.setAttribute("data-full","true"),w.disabled=g.disabled||u.disabled,w.__tg={opt:g,pressed:!1},d.appendChild(w),t.push(w),s[g.id]=!1}const r=g=>{const w=g.__tg,x=w.opt,v=w.pressed;g.setAttribute("aria-pressed",v?"true":"false"),g.removeAttribute("aria-label"),g.textContent="";const f=e(v?x.icon:x.offIcon,i);f&&g.appendChild(f);const o=v?x.text:x.offText;if(o!==""){const _=i.createElement("span");_.className=`${D}-label`,_.textContent=o,g.appendChild(_)}else f&&g.setAttribute("aria-label",x.id)},m=()=>{for(const g of t)g.__tg.pressed=s[g.__tg.opt.id]===!0,r(g)},z=g=>{if(g.disabled||u.disabled||u.readOnly)return!1;if(S)s[g.id]=!s[g.id];else{if(s[g.id])return!1;for(const w of c)s[w.id]=w.id===g.id}return m(),!0},l=E.value!=null&&typeof E.value=="object"?E.value:{};for(const g of c)s[g.id]=l[g.id]===!0;if(S)for(const g of c)s[g.id]=s[g.id]||g.selected===!0;else{let g=c.find(w=>s[w.id]);g||(g=c.find(w=>w.selected)),g||(g=c[0]);for(const w of c)s[w.id]=w.id===(g&&g.id)}return m(),d.addEventListener("click",g=>{const w=g.target&&g.target.closest?g.target.closest(`.${D}`):null;if(!w||!d.contains(w)||!w.__tg)return;const x=w.__tg.opt;z(x)&&(d.__latChangeDetail={id:x.id,pressed:s[x.id]},M(d,i))}),d.__latKey=g=>{if(g.key!=="ArrowLeft"&&g.key!=="ArrowRight")return;const w=t.filter(o=>!o.disabled);if(!w.length)return;const x=w.indexOf(i.activeElement),v=g.key==="ArrowRight"?1:-1,f=x===-1?v===1?0:w.length-1:x+v;f<0||f>=w.length||(g.preventDefault(),w[f].focus())},d.addEventListener("keydown",d.__latKey),d},read(E){const T=E&&E.__latToggleGroup,i={};if(!T)return i;for(const p of T.options)i[p.id]=T.pressed[p.id]===!0;return i},write(E,T){const i=E&&E.__latToggleGroup;if(!i)return;const p=T!=null&&typeof T=="object"&&!Array.isArray(T)?T:{};for(const k of i.options)i.pressed[k.id]=p[k.id]===!0;if(!i.multiselect){const k=i.options.find(d=>i.pressed[d.id]);for(const d of i.options)i.pressed[d.id]=d.id===(k?k.id:i.options[0]&&i.options[0].id)}for(const k of i.buttons)k.__tg.pressed=i.pressed[k.__tg.opt.id]===!0;const S=i.doc;for(const k of i.buttons){const d=k.__tg,c=d.opt,t=d.pressed;k.setAttribute("aria-pressed",t?"true":"false"),k.removeAttribute("aria-label"),k.textContent="";const s=e(t?c.icon:c.offIcon,S);s&&k.appendChild(s);const u=t?c.text:c.offText;if(u!==""){const r=S.createElement("span");r.className=`${D}-label`,r.textContent=u,k.appendChild(r)}else s&&k.setAttribute("aria-label",c.id)}},state(E,T){const i=E&&E.__latToggleGroup;if(i){i.disabled=T.disabled===!0,i.readOnly=T.readOnly===!0,i.readOnly?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly"),i.disabled?E.setAttribute("aria-disabled","true"):E.removeAttribute("aria-disabled");for(const p of i.buttons)p.disabled=i.disabled||p.__tg.opt.disabled}},focus(E){const T=E&&E.__latToggleGroup,i=T&&T.buttons.find(p=>!p.disabled);i&&typeof i.focus=="function"&&i.focus()}})}),Me("packages/modules/form/controls/grid.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/model.js").cssSize,P="__latFormTotal",D="__latFormTotals",I=new Set(["number","currency","percent","integer","decimal"]),M="lat-invalid",W=240;function E(C){return C!==null&&typeof C=="object"&&!Array.isArray(C)}function T(C){return C==null||C===""}function i(C){if(typeof C=="number")return Number.isFinite(C)?C:null;if(E(C)&&Object.hasOwn(C,"amount"))return i(C.amount);if(typeof C=="string"&&C.trim()!==""){const K=Number(C);return Number.isFinite(K)?K:null}return null}function p(C){return E(C)&&Object.hasOwn(C,"amount")&&Object.keys(C).every(K=>K==="amount"||K==="code")?C.amount:C}function S(C,K,G){if(typeof C=="function")try{return C(K,G)}catch{return null}const B=K.map(i).filter(ge=>ge!==null);if(C==="count")return K.filter(ge=>!T(ge)).length;if(B.length===0)return C==="avg"?null:0;const te=B.reduce((ge,oe)=>ge+oe,0);return C==="avg"?te/B.length:te}function k(C){return typeof C=="function"||C==="sum"||C==="avg"||C==="count"?C:"sum"}function d(C){if(typeof C=="string")return C;if(E(C)){if(C.field!=null)return String(C.field);if(C.id!=null)return String(C.id)}return null}function c(C,K){if(C===!0)return{enabled:()=>K()};if(typeof C=="string")return{editor:C,enabled:()=>K()};if(E(C)&&C.enabled!==void 0&&C.enabled!==!1){const G=C.enabled;return{...C,enabled:B=>K()&&(typeof G=="function"?G(B)!==!1:!0)}}return C}function t(C,K){if(!(!C||!C.children))for(const G of Array.from(C.children))K(G),t(G,K)}function s(C,K,G){let B=null;return t(C,te=>{B||!te.getAttribute||te.getAttribute("data-key")!==K||t(te,ge=>{!B&&ge.getAttribute&&ge.getAttribute("data-col")===G&&(B=ge)})}),B}function u(C,K,G={}){const B=C.cal.model&&C.cal.model.messages;if(B&&typeof B.t=="function"){const ge=B.t(K,G);if(ge!==K)return ge}const te=C.grid&&C.grid.messages;if(te&&typeof te.t=="function")try{const ge=te.t(K,G);if(ge!==K)return ge}catch{}return C.cal.t(K,G)}function r(C){return C.grid?C.grid.rows.data().map(K=>{const G={};for(const B of Object.keys(K))B!==P&&(G[B]=p(K[B]));return G}):C.pending.map(K=>({...K}))}function m(C,K){return C.valueAs==="arrays"?K.map(G=>C.fields.map(B=>G[B]===void 0?null:G[B])):K}function z(C,K){if(!Array.isArray(K))return[];const G=[];for(const B of K)if(Array.isArray(B)){const te={};C.fields.forEach((ge,oe)=>{te[ge]=B[oe]===void 0?null:B[oe]}),G.push(te)}else E(B)&&G.push({...B});return G}function l(C,K){C.mute+=1;try{return K()}finally{C.mute-=1}}function g(C,K,G){const B=r(C).find(te=>String(te[C.rowKey])===String(K));return!B||B[G]===void 0?null:B[G]}function w(C){const K=r(C);for(const G of C.mapped){const B=K.find(ge=>String(ge[C.rowKey])===String(G.row)),te=B&&B[G.col]!==void 0?B[G.col]:null;G.record.value=te,G.record.item.value=te}}function x(C,K,G){if(typeof G!="number")return G;const B=C.grid.rows.get(0);let te=null;if(B&&B.key!=null)try{te=C.grid.rows.value(B.key,K)}catch{te=null}return E(te)&&Object.hasOwn(te,"amount")?{...te,amount:G}:G}function v(C){const K=C.totals&&C.totals.row;if(!K||!C.grid||typeof C.grid.setPinnedRows!="function")return;const G=r(C),B={[C.rowKey]:D};for(const te of K.fields){const ge=S(K.fns[te],G.map(oe=>oe[te]),{field:te,rows:G});B[te]=x(C,te,ge)}K.labelField&&(B[K.labelField]=K.label!=null?K.label:u(C,"form.grid.total")),C.grid.setPinnedRows([B],{edge:"bottom"})}function f(C,K,G){const B=G[K],te=C.columnSpecs.get(K)||{},ge=C.grid,oe=String(G[C.rowKey]);let fe=null;try{fe=ge.validation.check(K,B,G)}catch{fe=null}if(fe)return fe.message;const ve=E(te.edit)?te.edit:{},be=E(ve.props)?ve.props:{},X=i(B);if(X!==null){if(typeof be.min=="number"&&X<be.min)return u(C,"form.validation.min",{min:be.min});if(typeof be.max=="number"&&X>be.max)return u(C,"form.validation.max",{max:be.max})}if(typeof ve.validate=="function"){let de;try{de=ve.validate({value:B,row:ge.rows.byKey(oe),column:ge.columns.get(K),grid:ge,data:G})}catch{de="Invalid value"}if(typeof de=="string")return de}return null}function o(C){const K=[];return C.grid&&(r(C).forEach((B,te)=>{for(const ge of C.fields){const oe=f(C,ge,B);oe&&K.push({key:String(B[C.rowKey]),field:ge,row:te+1,message:oe})}}),C.invalid=new Map(K.map(B=>[`${B.key}\0${B.field}`,B])),y(C)),K}function _(C,K){let G=null;try{G=C.grid.columns.get(K)}catch{G=null}const B=C.columnSpecs.get(K)||{},te=G&&G.title||B.title||B.header;return te!=null&&te!==""?String(te):K}function b(C,K){return u(C,"form.grid.cellInvalid",{row:K.row,column:_(C,K.field),message:K.message})}function y(C){if(!C.grid||!C.gridEl)return;const K=new Set;for(const G of C.invalid.values()){const B=s(C.gridEl,G.key,G.field);B&&(K.add(B),B.classList.add(M),B.setAttribute("aria-invalid","true"),B.setAttribute("title",b(C,G)),B.getAttribute("tabindex")==null&&B.setAttribute("tabindex","-1"))}for(const G of C.marked)!K.has(G)&&G.classList&&G.classList.contains(M)&&(G.classList.remove(M),G.removeAttribute("aria-invalid"),G.removeAttribute("title"));C.marked=K}function h(C){if(!C.grid)return;const K=C.invalid.values().next().value||null,G=r(C),B=K?K.key:G.length?String(G[0][C.rowKey]):null,te=K?K.field:C.fields[0];if(B==null||te==null)return;try{C.grid.scroll.toCell(B,te)}catch{}const ge=s(C.gridEl,B,te);ge&&typeof ge.focus=="function"&&(ge.getAttribute("tabindex")==null&&ge.setAttribute("tabindex","-1"),ge.focus())}function $(C,K){const G=K.map(ge=>ge[C.rowKey]);if(G.length&&G.every(ge=>typeof ge=="number"))return Math.max(...G)+1;const B=new Set(G.map(String));let te=K.length+1;for(;B.has(`row-${te}`);)te+=1;return`row-${te}`}function ee(C,K,G){let B=G;if(!E(B)){const ge=typeof C.newRow=="function"?C.newRow(K.map(oe=>({...oe}))):C.newRow;B=E(ge)?ge:{}}const te={};for(const ge of C.fields)te[ge]=null;return Object.assign(te,B),(te[C.rowKey]==null||K.some(ge=>String(ge[C.rowKey])===String(te[C.rowKey])))&&(te[C.rowKey]=$(C,K)),te}function O(C,K,G){const B=String(K.row);if(G.type==="cellEdit"){const ge=String(G.key)===B&&G.colId===K.col;return{touched:ge,value:ge?G.value:void 0}}if(G.type==="rowAdd"){const ge=String(G.row[C.rowKey])===B;return{touched:ge,value:ge&&G.row[K.col]!==void 0?G.row[K.col]:null}}return{touched:String(G.key)===B,value:null}}function ae(C,K,G){const{cal:B,record:te}=C,ge=B.emitter,oe=[ge.emitBefore("beforeChange",{name:te.item.name,value:m(C,G),previousValue:te.value,item:te.item,change:K},"user")];for(const fe of C.mapped){const ve=O(C,fe,K);ve.touched&&oe.push(ge.emitBefore("beforeChange",{name:fe.prop,value:ve.value,previousValue:fe.record.value,item:fe.record.item,change:K},"user"))}return oe.some(fe=>fe&&typeof fe.then=="function")?Promise.all(oe).then(fe=>fe.every(ve=>ve!==!1)):oe.every(fe=>fe!==!1)}function le(C,K,G,B){const{cal:te,record:ge,hooks:oe}=C,fe=m(C,r(C));ge.value=fe,ge.item.value=fe,w(C),v(C),oe.clearError();const ve=ge.validation&&ge.validation.valid===!1;(C.invalid.size>0||ge.item.validationMode==="change")&&o(C),te.emitter.emit("change",{name:ge.item.name,value:fe,previousValue:G,item:ge.item,change:K});for(const be of C.mapped){const X=B.get(be.prop);be.record.value!==X&&O(C,be,K).touched&&te.emitter.emit("change",{name:be.prop,value:be.record.value,previousValue:X,item:be.record.item,change:K})}oe.applyRules(),(ge.item.validationMode==="change"||ve)&&oe.validateItem()}function se(C){return{rows:C.record.value,mapped:new Map(C.mapped.map(K=>[K.prop,K.record.value]))}}function Z(C,K){if(!C.grid||!C.editable())return null;const G=r(C),B=ee(C,G,K),te=String(B[C.rowKey]),ge={type:"rowAdd",key:te,row:{...B}},oe=se(C),fe=be=>{if(!be)return null;const X=l(C,()=>C.grid.rows.apply({add:[B]}));return X&&X.rejected&&X.rejected.length?null:(le(C,ge,oe.rows,oe.mapped),te)},ve=ae(C,ge,[...G,B]);return ve&&typeof ve.then=="function"?ve.then(fe):fe(ve)}function Q(C,K){if(!C.grid||!C.editable())return[];const G=[];for(const B of[].concat(K)){const te=String(B),ge=r(C);if(!ge.some(de=>String(de[C.rowKey])===te))continue;const oe={type:"rowRemove",key:te},fe=se(C),ve=ge.filter(de=>String(de[C.rowKey])!==te),be=de=>{de&&(l(C,()=>C.grid.rows.apply({remove:[te]})),C.activeKey===te&&(C.activeKey=null),le(C,oe,fe.rows,fe.mapped))},X=ae(C,oe,ve);X&&typeof X.then=="function"?X.then(be):be(X),G.push(te)}return G}function Pe(C){let K=[];try{K=C.grid.selection.keys()}catch{K=[]}return K.length?K.map(String):C.activeKey!=null?[C.activeKey]:[]}function ie(C){const K=C.cal.doc,G=K.createElement("div");G.className="lat-form__grid-controls",G.setAttribute("role","toolbar"),G.setAttribute("aria-label",u(C,"form.grid.rowControls"));const B=(te,ge,oe)=>{const fe=K.createElement("button");return fe.type="button",fe.className=`lat-form__grid-btn lat-form__grid-${te}`,fe.textContent=ge,fe.setAttribute("aria-label",ge),fe.addEventListener("click",oe),G.appendChild(fe),fe};return C.addBtn=B("add",u(C,"form.grid.addRow"),()=>{const te=Z(C);te!=null&&typeof te=="string"&&(C.activeKey=te)}),C.delBtn=B("delete",u(C,"form.grid.deleteRow"),()=>{Q(C,Pe(C))}),G}function j(C,K,G){if(!E(C))return null;const B=K.filter(oe=>I.has((G.get(oe)||{}).type));let te=null,ge=null;if(C.row){const oe=C.row===!0||typeof C.row=="function"||typeof C.row=="string"?{fn:C.row===!0?void 0:C.row}:C.row,fe=E(oe.columns)&&!Array.isArray(oe.columns)?oe.columns:null,ve=Array.isArray(oe.columns)?oe.columns.map(String):fe?Object.keys(fe):B,be={};for(const X of ve)be[X]=k(fe&&fe[X]!==void 0?fe[X]:oe.fn);te={fields:ve,fns:be,label:oe.label,labelField:oe.labelColumn!=null?String(oe.labelColumn):K.find(X=>!ve.includes(X))||null}}if(C.column){const oe=C.column===!0||typeof C.column=="function"||typeof C.column=="string"?{fn:C.column===!0?void 0:C.column}:C.column;ge={fn:k(oe.fn),fields:Array.isArray(oe.columns)?oe.columns.map(String):B,title:oe.title,column:E(oe.column)?oe.column:{}}}return te||ge?{row:te,column:ge}:null}function H(C){const K=C.createGrid;if(typeof K!="function"){console.warn(`lattice-form: a "grid" item needs createGrid — pass it on the item or the form config: { type: 'grid', createGrid, … }.`);return}const G=C.props,B=C.columnDefs.map(oe=>E(oe)?oe.edit===void 0?oe:{...oe,edit:c(oe.edit,C.editable)}:oe);if(C.totals&&C.totals.column){const oe=C.totals.column;B.push({id:P,field:P,title:oe.title!=null?oe.title:C.say("form.grid.total"),sort:!1,...oe.column,value:{deps:"*",compute:fe=>S(oe.fn,oe.fields.map(ve=>fe[ve]),{row:fe})}})}const te={...E(G.gridOptions)?G.gridOptions:{},rowKey:C.rowKey,columns:B,rows:C.pending,density:C.density},ge=K(C.gridEl,te);C.grid=ge,C.pending=[];for(const oe of C.columnDefs){const fe=d(oe);fe&&!C.columnSpecs.has(fe)&&C.columnSpecs.set(fe,E(oe)?oe:{field:fe})}ge.on("beforeEdit",oe=>{if(C.mute>0||oe.defaultPrevented)return;if(!C.editable()){oe.preventDefault("readOnly");return}const fe=r(C),ve=fe.findIndex(X=>String(X[C.rowKey])===String(oe.key));if(ve<0||!oe.changes.length)return;const be=[];for(const X of oe.changes){const de={type:"cellEdit",key:String(oe.key),colId:X.colId,value:p(X.newValue),oldValue:p(X.oldValue)},pe=fe.map((Y,re)=>re===ve?{...Y,[X.colId]:de.value}:Y);be.push(ae(C,de,pe))}if(be.some(X=>X&&typeof X.then=="function"))return Promise.all(be).then(X=>{X.some(de=>de===!1)&&oe.preventDefault("prevented")});be.some(X=>X===!1)&&oe.preventDefault("prevented")}),ge.on("cell:changed",oe=>{if(C.mute>0)return;const fe={type:"cellEdit",key:String(oe.key),colId:oe.colId,value:p(oe.value),oldValue:p(oe.oldValue)},ve={rows:C.record.value,mapped:new Map(C.mapped.map(be=>[be.prop,be.record.value]))};le(C,fe,ve.rows,ve.mapped)}),ge.on("render:done",()=>y(C)),ge.on("cell:clicked",oe=>{oe&&oe.key!=null&&(C.activeKey=String(oe.key))}),C.gridEl.addEventListener("focusin",oe=>{let fe=oe.target;for(;fe&&fe!==C.gridEl;){const ve=fe.getAttribute&&fe.getAttribute("data-key");if(ve!=null&&ve!==""){C.activeKey=ve;return}fe=fe.parentNode}}),v(C)}function ne(C,K){const G=K.doc,B=C.props||{},te=G.createElement("div");te.className="lat-form__grid",te.setAttribute("role","group"),C.label!=null&&C.label!==""&&te.setAttribute("aria-label",String(C.label));const ge=C.height==null?W:C.height,oe=ge==="100%";te.style.width="100%",oe&&(te.style.flex="1 1 auto",te.style.minHeight="0");const fe=Array.isArray(B.columns)?B.columns:[],ve=fe.map(d).filter(Y=>Y!=null),be=new Map;fe.forEach(Y=>{const re=d(Y);re&&be.set(re,E(Y)?Y:{field:re})});const X={cal:K,item:C,props:B,el:te,record:null,hooks:null,grid:null,gridEl:null,columnDefs:fe,columnSpecs:be,fields:ve,rowKey:B.rowKey!=null?String(B.rowKey):"id",valueAs:B.valueAs==="arrays"?"arrays":"rows",valueRows:B.valueRows!==!1,createGrid:typeof B.createGrid=="function"?B.createGrid:K.model.createGrid,density:K.model.density,newRow:B.newRow,totals:null,mapped:[],pending:[],mute:0,invalid:new Map,marked:new Set,activeKey:null,readOnly:!1,disabled:!1,editable:()=>!X.readOnly&&!X.disabled,say:(Y,re)=>u(X,Y,re)};X.totals=j(B.totals,ve,be),X.pending=z(X,C.value),te.__latGrid=X;const de=G.createElement("div");de.className="lat-form__grid-host",de.style.width="100%",oe?(de.style.flex="1 1 auto",de.style.minHeight="0"):de.style.height=e(ge),X.gridEl=de,te.appendChild(de),H(X),B.rowControls===!0&&te.appendChild(ie(X));let pe=!1;return te.addEventListener("focusin",()=>{pe||(pe=!0,q(te,G,"focus"))}),te.addEventListener("focusout",Y=>{te.contains(Y.relatedTarget)||(pe=!1,q(te,G,"blur"))}),te}function q(C,K,G){const B=K&&K.defaultView,te=B&&B.Event,ge=te?new te(G,{bubbles:!0}):{type:G,bubbles:!0,cancelable:!1,defaultPrevented:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){}};C.dispatchEvent(ge)}function ke(C,K){return{kind:"mapped",custom:!0,read(){return g(C,K.row,K.col)},write(G,B){C.grid&&(l(C,()=>C.grid.edit.setCells([{key:String(K.row),colId:K.col,value:B}])),Ee(C))},state(){},validate(){if(!C.grid)return null;const G=r(C).find(te=>String(te[C.rowKey])===String(K.row));if(!G)return null;const B=f(C,K.col,G);return B?{code:"cell",message:B}:null},focus(){if(!C.grid)return;try{C.grid.scroll.toCell(String(K.row),K.col)}catch{}const G=s(C.gridEl,String(K.row),K.col);G&&typeof G.focus=="function"&&(G.getAttribute("tabindex")==null&&G.setAttribute("tabindex","-1"),G.focus())}}}function Ee(C){const K=m(C,r(C));C.record.value=K,C.record.item.value=K,w(C),v(C),C.invalid=new Map,y(C)}F("grid",{kind:"grid",build:ne,read(C){const K=C.__latGrid;return m(K,r(K))},write(C,K){const G=C.__latGrid,B=z(G,K);if(!G.grid){G.pending=B;return}l(G,()=>G.grid.rows.load(B)),G.invalid=new Map,w(G),v(G),y(G)},state(C,K){const G=C.__latGrid;G.readOnly=K.readOnly===!0,G.disabled=K.disabled===!0,G.readOnly?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly"),C.toggleAttribute("inert",G.disabled),C.inert=G.disabled,G.disabled?C.setAttribute("aria-disabled","true"):C.removeAttribute("aria-disabled");const B=!G.editable();for(const te of[G.addBtn,G.delBtn])te&&(te.disabled=B)},validate(C,K){const G=C.__latGrid;if(!G.grid)return null;const B=o(G);return K.required===!0&&r(G).length===0?{code:"required",message:u(G,"form.grid.required")}:B.length?{code:"cell",message:b(G,B[0])}:null},focus(C){h(C.__latGrid)},blur(C){const K=C.ownerDocument&&C.ownerDocument.activeElement;K&&C.contains(K)&&typeof K.blur=="function"&&K.blur()},density(C,K){const G=C.__latGrid;if(G.density=K,G.grid&&typeof G.grid.set=="function")try{G.grid.set("density",K)}catch{}},connect(C,K,G){const B=C.control.__latGrid;B.record=C,B.hooks=G;const te=E(B.props.fields)?B.props.fields:{};for(const ge of Object.keys(te)){const oe=te[ge];if(!E(oe)||oe.row==null||oe.col==null||K.items.has(ge))continue;const fe={prop:ge,row:String(oe.row),col:String(oe.col),record:null},ve=ke(B,fe),be=g(B,fe.row,fe.col);fe.record={item:{kind:"item",name:ge,type:"grid",value:be,label:void 0,disabled:!1,readOnly:!1,required:!1,validation:null,validationMode:"submit",props:{},mappedFrom:C.item.name},el:C.el,control:C.control,controlWrap:null,def:ve,value:be,hidden:!1,validation:{pristine:!0,valid:null,code:null,message:null},validationEl:K.doc.createElement("div"),preEl:null,tooltipId:null,mapped:!0},B.mapped.push(fe),K.items.set(ge,fe.record)}C.mapped=B.mapped.map(ge=>ge.record),C.valueRows=B.valueRows,C.control.__latGridApi={addRow:ge=>Z(B,ge),removeRows:ge=>Q(B,ge),grid:()=>B.grid}},destroy(C){const K=C.__latGrid;K&&K.grid&&typeof K.grid.destroy=="function"&&K.grid.destroy(),K&&(K.grid=null)}})}),Me("packages/modules/form/controls/slider.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,P=0,D=100,I=1;function M(o,_,b){return Math.min(Math.max(o,_),b)}function W(o,_,b){return b>0?_+Math.round((o-_)/b)*b:o}function E(o){const _=typeof o.min=="number"&&Number.isFinite(o.min)?o.min:P;let b=typeof o.max=="number"&&Number.isFinite(o.max)?o.max:D;const y=typeof o.step=="number"&&Number.isFinite(o.step)&&o.step>0?o.step:I;return b<=_&&(b=_+y),{min:_,max:b,step:y}}function T(o,_,b,y){const h=Number(o),$=Number.isFinite(h)?h:_;return M(W($,_,y),_,b)}function i(o,_,b,y){const h=Array.isArray(o)&&o.length>=2?o:[_,b];let $=T(h[0],_,b,y),ee=T(h[1],_,b,y);if($>ee){const O=$;$=ee,ee=O}return[$,ee]}function p(o){return o.props&&typeof o.props=="object"?o.props:{}}function S(o){return p(o).range===!0}function k(o){return o.mode==="vertical"}function d(o){return p(o).inverse===!0}function c(o){return o.tooltip!==!1}function t(o){const _=p(o).tickTemplate;return typeof _=="function"?_:b=>String(b)}function s(o,_,b){const y=_&&_.defaultView,h=y&&y.Event,$=h?new h(b,{bubbles:!0}):{type:b,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};o.dispatchEvent($)}function u(o,_){const b=M((_-o.min)/(o.max-o.min),0,1);return o.inverse?1-b:b}function r(o,_){const b=o.inverse?1-_:_;return M(W(o.min+b*(o.max-o.min),o.min,o.step),o.min,o.max)}function m(o,_,b,y){const h=o.vertical?_.height>0?(_.bottom-y)/_.height:0:_.width>0?(b-_.left)/_.width:0;return M(h,0,1)}function z(o,_){const b=o.isRange?o.value[_]:o.value,y=`${(u(o,b)*100).toFixed(4)}%`,h=o.thumbs[_];o.vertical?h.style.bottom=y:h.style.left=y;const $=o.template(b);h.setAttribute("aria-valuenow",String(b)),h.setAttribute("aria-valuetext",$);const ee=o.tooltips[_];ee&&(ee.textContent=$)}function l(o){const _=o.isRange?u(o,o.value[0]):Math.min(u(o,o.min),u(o,o.value)),b=o.isRange?u(o,o.value[1]):Math.max(u(o,o.min),u(o,o.value)),y=`${(Math.min(_,b)*100).toFixed(4)}%`,h=`${(Math.abs(b-_)*100).toFixed(4)}%`;o.vertical?(o.fill.style.bottom=y,o.fill.style.height=h):(o.fill.style.left=y,o.fill.style.width=h)}function g(o){const _=o.doc;for(;o.ticksEl.firstChild;)o.ticksEl.removeChild(o.ticksEl.firstChild);if(!o.tick&&!o.majorTick){o.ticksEl.hidden=!0;return}o.ticksEl.hidden=!1;const b=new Set;if(o.majorTick>0)for(let h=o.min;h<=o.max+1e-9;h+=o.majorTick)b.add(Math.round(h/o.step)*o.step);const y=(h,$)=>{const ee=M(h,o.min,o.max),O=`${(u(o,ee)*100).toFixed(4)}%`,ae=_.createElement("span");if(ae.className=$?"lat-form__slider-tick lat-form__slider-tick--major":"lat-form__slider-tick",ae.setAttribute("aria-hidden","true"),o.vertical?ae.style.bottom=O:ae.style.left=O,o.ticksEl.appendChild(ae),$){const le=_.createElement("span");le.className="lat-form__slider-tick-label",le.setAttribute("aria-hidden","true"),le.textContent=o.template(ee),o.vertical?le.style.bottom=O:le.style.left=O,o.ticksEl.appendChild(le)}};if(o.tick>0)for(let h=o.min;h<=o.max+1e-9;h+=o.tick){const $=Math.min(o.max,h);b.has(Math.round($/o.step)*o.step)||y($,!1)}for(const h of b)y(Math.min(o.max,Math.max(o.min,h)),!0)}function w(o){for(let _=0;_<o.thumbs.length;_++)z(o,_);l(o)}function x(o,_,b){const y=o.tooltips[_];y&&(b?y.classList.add("lat-form__slider-tooltip--visible"):y.classList.remove("lat-form__slider-tooltip--visible"))}function v(o,_,b){const y=M(W(b,o.min,o.step),o.min,o.max);if(!o.isRange){o.value=y,w(o);return}const h=o.value.slice();_===0?h[0]=Math.min(y,h[1]):h[1]=Math.max(y,h[0]),o.value=h,w(o)}function f(o,_){return o.isRange?o.value[_]:o.value}F("slider",{kind:"field",build(o,_){const b=_.doc,y=typeof _.t=="function"?_.t:e,{min:h,max:$,step:ee}=E(o),O=S(o),ae=k(o),le=d(o),se=b.createElement("div");se.className=ae?"lat-form__slider lat-form__slider--vertical":"lat-form__slider";const Z=b.createElement("div");Z.className="lat-form__slider-track",se.appendChild(Z);const Q=b.createElement("div");Q.className="lat-form__slider-fill",Z.appendChild(Q);const Pe=b.createElement("div");Pe.className="lat-form__slider-ticks",Pe.setAttribute("aria-hidden","true"),Z.appendChild(Pe);const ie={doc:b,t:y,min:h,max:$,step:ee,isRange:O,vertical:ae,inverse:le,tooltipOn:c(o),template:t(o),tick:Number(p(o).tick)>0?Number(p(o).tick):0,majorTick:Number(p(o).majorTick)>0?Number(p(o).majorTick):0,value:O?i(o.value,h,$,ee):T(o.value,h,$,ee),track:Z,fill:Q,ticksEl:Pe,thumbs:[],tooltips:[],disabled:!1,readOnly:!1,dragging:null,disposers:[]};se.__latSlider=ie;const j=O?[y("form.slider.low"),y("form.slider.high")]:[null];for(let G=0;G<j.length;G++){const B=b.createElement("div");B.className="lat-form__slider-thumb",B.setAttribute("role","slider"),B.setAttribute("aria-orientation",ae?"vertical":"horizontal"),B.setAttribute("aria-valuemin",String(h)),B.setAttribute("aria-valuemax",String($));const te=o.label!=null&&o.label!==""?String(o.label):y("form.slider");B.setAttribute("aria-label",j[G]!=null?`${te} – ${j[G]}`:te),B.tabIndex=0,Z.appendChild(B),ie.thumbs.push(B);let ge=null;ie.tooltipOn&&(ge=b.createElement("span"),ge.className="lat-form__slider-tooltip",ge.setAttribute("aria-hidden","true"),B.appendChild(ge)),ie.tooltips.push(ge)}g(ie),w(ie);const H=()=>{s(se,b,"change")},ne=()=>{s(se,b,"input")},q=(G,B)=>{if(ie.disabled||ie.readOnly)return;const te=f(ie,B);if(G.key==="ArrowRight"||G.key==="ArrowUp")v(ie,B,te+ie.step);else if(G.key==="ArrowLeft"||G.key==="ArrowDown")v(ie,B,te-ie.step);else if(G.key==="PageUp")v(ie,B,te+ie.step*10);else if(G.key==="PageDown")v(ie,B,te-ie.step*10);else if(G.key==="Home")v(ie,B,ie.min);else if(G.key==="End")v(ie,B,ie.max);else return;G.preventDefault(),f(ie,B)!==te&&(ne(),H())},ke=(G,B)=>{ie.disabled||ie.readOnly||(G.preventDefault(),ie.dragging=B,ie.dragStartValue=f(ie,B),x(ie,B,!0),ie.thumbs[B].focus())},Ee=G=>{if(ie.disabled||ie.readOnly||G.target!==Z&&G.target!==Q)return;const B=Z.getBoundingClientRect(),te=r(ie,m(ie,B,G.clientX,G.clientY)),ge=ie.isRange?Math.abs(te-ie.value[0])<=Math.abs(te-ie.value[1])?0:1:0;ie.dragging=ge,ie.dragStartValue=f(ie,ge),v(ie,ge,te),ne(),x(ie,ge,!0),ie.thumbs[ge].focus()},C=G=>{if(ie.dragging==null)return;const B=Z.getBoundingClientRect(),te=r(ie,m(ie,B,G.clientX,G.clientY));te!==f(ie,ie.dragging)&&(v(ie,ie.dragging,te),ne())},K=()=>{if(ie.dragging==null)return;const G=ie.dragging;ie.dragging=null,(!ie.focused||ie.focused!==G)&&x(ie,G,!1),f(ie,G)!==ie.dragStartValue&&H()};return Z.addEventListener("pointerdown",Ee),b.addEventListener("pointermove",C),b.addEventListener("pointerup",K),ie.disposers.push(()=>Z.removeEventListener("pointerdown",Ee),()=>b.removeEventListener("pointermove",C),()=>b.removeEventListener("pointerup",K)),ie.thumbs.forEach((G,B)=>{const te=ve=>{ve.stopPropagation(),ke(ve,B)},ge=ve=>q(ve,B),oe=()=>{ie.focused=B,x(ie,B,!0)},fe=()=>{ie.focused===B&&(ie.focused=null),ie.dragging!==B&&x(ie,B,!1)};G.addEventListener("pointerdown",te),G.addEventListener("keydown",ge),G.addEventListener("focus",oe),G.addEventListener("blur",fe),ie.disposers.push(()=>G.removeEventListener("pointerdown",te),()=>G.removeEventListener("keydown",ge),()=>G.removeEventListener("focus",oe),()=>G.removeEventListener("blur",fe))}),se},read(o){const _=o.__latSlider;return _?_.value:P},write(o,_){const b=o.__latSlider;b&&(b.value=b.isRange?i(_,b.min,b.max,b.step):T(_,b.min,b.max,b.step),w(b))},state(o,_){const b=o.__latSlider;if(b){b.disabled=_.disabled===!0,b.readOnly=_.readOnly===!0,o.setAttribute("data-disabled",String(b.disabled)),o.setAttribute("data-readonly",String(b.readOnly));for(const y of b.thumbs)y.tabIndex=b.disabled?-1:0,b.disabled?y.setAttribute("aria-disabled","true"):y.removeAttribute("aria-disabled"),b.readOnly?y.setAttribute("aria-readonly","true"):y.removeAttribute("aria-readonly")}},focus(o){const _=o.__latSlider;_&&_.thumbs[0]&&typeof _.thumbs[0].focus=="function"&&_.thumbs[0].focus()},blur(o){const _=o.__latSlider;if(_)for(const b of _.thumbs)typeof b.blur=="function"&&b.blur()},destroy(o){const _=o.__latSlider;if(_)for(const b of _.disposers.splice(0))b()},live:{min(o,_){const b=o.__latSlider;if(b){b.min=typeof _=="number"&&Number.isFinite(_)?_:P,b.max<=b.min&&(b.max=b.min+b.step);for(const y of b.thumbs)y.setAttribute("aria-valuemin",String(b.min));g(b),w(b)}},max(o,_){const b=o.__latSlider;if(b){b.max=typeof _=="number"&&Number.isFinite(_)&&_>b.min?_:b.min+b.step;for(const y of b.thumbs)y.setAttribute("aria-valuemax",String(b.max));g(b),w(b)}},step(o,_){const b=o.__latSlider;b&&(b.step=typeof _=="number"&&Number.isFinite(_)&&_>0?_:I,g(b),w(b))},tick(o,_){const b=o.__latSlider;b&&(b.tick=Number(_)>0?Number(_):0,g(b))},majorTick(o,_){const b=o.__latSlider;b&&(b.majorTick=Number(_)>0?Number(_):0,g(b))}}})}),Me("packages/core/src/internal/lru.js",function(A,J){"use strict";Object.defineProperty(A,"Lru",{enumerable:!0,get:function(){return _e}});class _e{#e;#t=new Map;#n;constructor(L=256,e=null){this.#e=L,this.#n=e}get size(){return this.#t.size}get max(){return this.#e}set max(L){this.#e=L,this.#r()}has(L){return this.#t.has(L)}get(L){const e=this.#t;if(!e.has(L))return;const P=e.get(L);return e.delete(L),e.set(L,P),P}peek(L){return this.#t.get(L)}set(L,e){const P=this.#t;return P.has(L)&&P.delete(L),P.set(L,e),this.#r(),e}delete(L){const e=this.#t.get(L);return this.#t.delete(L)&&this.#n&&this.#n(e,L),e}clear(){if(this.#n)for(const[L,e]of this.#t)this.#n(e,L);this.#t.clear()}keys(){return this.#t.keys()}values(){return this.#t.values()}#r(){const L=this.#t;for(;L.size>this.#e;){const e=L.keys().next().value,P=L.get(e);L.delete(e),this.#n&&this.#n(P,e)}}}}),Me("packages/core/src/columns/types/network.js",function(A,J){"use strict";Object.defineProperty(A,"toUint32",{enumerable:!0,get:function(){return I}}),Object.defineProperty(A,"parseIpv4",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"formatIpv4",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"isIpv4",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"compareIpv4",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"packCidr",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"cidrParts",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"cidrNetworkOf",{enumerable:!0,get:function(){return c}}),Object.defineProperty(A,"storeNumberOf",{enumerable:!0,get:function(){return t}}),Object.defineProperty(A,"parseCidr",{enumerable:!0,get:function(){return u}}),Object.defineProperty(A,"formatCidr",{enumerable:!0,get:function(){return r}}),Object.defineProperty(A,"isCidr",{enumerable:!0,get:function(){return m}}),Object.defineProperty(A,"compareCidr",{enumerable:!0,get:function(){return z}}),Object.defineProperty(A,"netmask",{enumerable:!0,get:function(){return l}}),Object.defineProperty(A,"networkAddress",{enumerable:!0,get:function(){return g}}),Object.defineProperty(A,"broadcastAddress",{enumerable:!0,get:function(){return w}}),Object.defineProperty(A,"addressCount",{enumerable:!0,get:function(){return x}}),Object.defineProperty(A,"hostCount",{enumerable:!0,get:function(){return v}}),Object.defineProperty(A,"containsAddress",{enumerable:!0,get:function(){return f}}),Object.defineProperty(A,"overlaps",{enumerable:!0,get:function(){return o}}),Object.defineProperty(A,"ipv6Groups",{enumerable:!0,get:function(){return y}}),Object.defineProperty(A,"parseIpv6",{enumerable:!0,get:function(){return O}}),Object.defineProperty(A,"formatIpv6",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(A,"isIpv6",{enumerable:!0,get:function(){return le}}),Object.defineProperty(A,"compareIpv6",{enumerable:!0,get:function(){return se}}),Object.defineProperty(A,"macValue",{enumerable:!0,get:function(){return H}}),Object.defineProperty(A,"parseMac",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(A,"formatMac",{enumerable:!0,get:function(){return q}}),Object.defineProperty(A,"isMac",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(A,"macHex",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(A,"macContains",{enumerable:!0,get:function(){return C}}),Object.defineProperty(A,"compareMac",{enumerable:!0,get:function(){return K}}),Object.defineProperty(A,"MAC_OPERATORS",{enumerable:!0,get:function(){return G}}),Object.defineProperty(A,"NETWORK_TYPES",{enumerable:!0,get:function(){return de}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return pe}});const F=J("packages/core/src/internal/predicates.js").isNil,e=J("packages/core/src/internal/lru.js").Lru,P=4294967295,D=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function I(Y){if(F(Y))return null;if(typeof Y=="string")return M(Y);const re=Number(Y);return Number.isFinite(re)?re<0?re<-2147483648?null:re>>>0:re>P?null:Math.trunc(re)>>>0:null}function M(Y){if(F(Y))return null;const re=String(Y).trim();if(re==="")return null;const N=D.exec(re);if(!N)return null;let ce=0;for(let ye=1;ye<=4;ye++){const R=N[ye];if(R.length>1&&R.charCodeAt(0)===48)return null;const n=Number(R);if(n>255)return null;ce=ce*256+n}return ce}function W(Y){const re=I(Y);return re===null?"":`${re>>>24&255}.${re>>>16&255}.${re>>>8&255}.${re&255}`}function E(Y){return typeof Y=="string"&&M(Y)!==null}function T(Y,re){const N=I(Y),ce=I(re);return N===null?ce===null?0:1:ce===null||N<ce?-1:N>ce?1:0}const i=64,p=P*i+32,S=/^(?:0|[1-9]\d?)$/;function k(Y,re){return Y*i+re}function d(Y){if(F(Y))return null;if(typeof Y=="string"){const ce=u(Y);return ce===null?null:d(ce)}if(typeof Y=="object"){const ce=I(Y.address),ye=Number(Y.prefix);return ce===null||!Number.isInteger(ye)||ye<0||ye>32?null:{address:ce,prefix:ye}}const re=Number(Y);if(!Number.isInteger(re)||re<0||re>p)return null;const N=re%i;return N>32?null:{address:(re-N)/i,prefix:N}}function c(Y){return!!(Y&&Y.typeOptions&&Y.typeOptions.cidrNetwork)}function t(Y){return!!(Y&&Y.typeOptions&&Y.typeOptions.storeNumber)}function s(Y,re,N){return Y==null?null:t(re)?Y:N(Y)}function u(Y,re){if(F(Y))return null;const N=String(Y).trim();if(N==="")return null;const ce=N.indexOf("/");if(ce<0)return null;const ye=M(N.slice(0,ce));if(ye===null)return null;const R=N.slice(ce+1).trim();if(!S.test(R))return null;const n=Number(R);if(n>32)return null;const a=re&&re.network?(ye&l(n))>>>0:ye;return k(a,n)}function r(Y){const re=d(Y);return re?`${W(re.address)}/${re.prefix}`:""}function m(Y){return typeof Y=="string"&&u(Y)!==null}function z(Y,re){const N=d(Y),ce=d(re);return N?ce?N.address!==ce.address?N.address<ce.address?-1:1:N.prefix-ce.prefix:-1:ce?1:0}function l(Y){return Y===0?0:4294967295<<32-Y>>>0}function g(Y){const re=d(Y);return re?(re.address&l(re.prefix))>>>0:null}function w(Y){const re=d(Y);return re?(re.address&l(re.prefix)|~l(re.prefix)>>>0)>>>0:null}function x(Y){const re=d(Y);return re?2**(32-re.prefix):null}function v(Y){const re=d(Y);return re?re.prefix===32?1:re.prefix===31?2:2**(32-re.prefix)-2:null}function f(Y,re){const N=d(Y);if(!N)return!1;const ce=I(re);if(ce===null)return!1;const ye=l(N.prefix);return(ce&ye)>>>0===(N.address&ye)>>>0}function o(Y,re){const N=g(Y),ce=g(re);return N===null||ce===null?!1:N<=w(re)&&ce<=w(Y)}const _=/^[0-9a-fA-F]{1,4}$/,b=new e(512);function y(Y){if(F(Y))return null;let re=String(Y).trim();if(re==="")return null;const N=re.indexOf("%");if(N>=0&&(re=re.slice(0,N)),re==="")return null;if(re.indexOf(".")>=0){const U=re.lastIndexOf(":");if(U<0)return null;const V=M(re.slice(U+1));if(V===null)return null;re=`${re.slice(0,U+1)}${(V>>>16&65535).toString(16)}:${(V&65535).toString(16)}`}const ce=re.split("::");if(ce.length>2)return null;const ye=h(ce[0]);if(ye===null)return null;if(ce.length===1)return ye.length===8?ye:null;const R=h(ce[1]);if(R===null)return null;const n=8-ye.length-R.length;if(n<1)return null;const a=ye.slice();for(let U=0;U<n;U++)a.push(0);for(const U of R)a.push(U);return a}function h(Y){if(Y==="")return[];const re=[];for(const N of Y.split(":")){if(!_.test(N))return null;re.push(parseInt(N,16))}return re}function $(Y){if(typeof Y!="string")return y(Y);if(b.has(Y))return b.get(Y);const re=y(Y);return b.set(Y,re),re}function ee(Y){if(Y[0]===0&&Y[1]===0&&Y[2]===0&&Y[3]===0&&Y[4]===0&&Y[5]===65535)return`::ffff:${W((Y[6]<<16|Y[7])>>>0)}`;let re=-1,N=0,ce=-1,ye=0;for(let a=0;a<8;a++)Y[a]===0?(ce<0?(ce=a,ye=1):ye++,ye>N&&(N=ye,re=ce)):(ce=-1,ye=0);if(N<2)return Y.map(a=>a.toString(16)).join(":");const R=Y.slice(0,re).map(a=>a.toString(16)).join(":"),n=Y.slice(re+N).map(a=>a.toString(16)).join(":");return`${R}::${n}`}function O(Y){const re=y(Y);return re===null?null:ee(re)}function ae(Y){return O(Y)??""}function le(Y){return typeof Y=="string"&&Y.indexOf(":")>=0&&y(Y)!==null}function se(Y,re){const N=$(Y),ce=$(re);if(!N)return ce?1:0;if(!ce)return-1;for(let ye=0;ye<8;ye++)if(N[ye]!==ce[ye])return N[ye]<ce[ye]?-1:1;return 0}const Z=/^[0-9a-fA-F]{12}$/,Q=/^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$/,Pe=/^[0-9a-fA-F]{2}$/;function ie(Y){const re=[];for(let N=0;N<12;N+=2)re.push(parseInt(Y.slice(N,N+2),16));return re}function j(Y){if(F(Y))return null;if(typeof Y=="number"){if(!Number.isInteger(Y)||Y<0||Y>0xffffffffffff)return null;const ye=[];for(let R=5;R>=0;R--)ye.push(Math.floor(Y/256**R)%256);return ye}const re=String(Y).trim();if(re==="")return null;if(Z.test(re))return ie(re);if(re.indexOf(".")>=0)return Q.test(re)?ie(re.split(".").join("")):null;const N=re.indexOf(":")>=0?":":re.indexOf("-")>=0?"-":null;if(N===null)return null;const ce=re.split(N);if(ce.length!==6)return null;for(const ye of ce)if(!Pe.test(ye))return null;return ce.map(ye=>parseInt(ye,16))}function H(Y){const re=j(Y);if(!re)return null;let N=0;for(const ce of re)N=N*256+ce;return N}function ne(Y){const re=j(Y);return re?re.map(N=>N.toString(16).padStart(2,"0")).join(":"):null}function q(Y,re="colon"){const N=j(Y);if(!N)return"";const ce=N.map(ye=>ye.toString(16).padStart(2,"0"));switch(re){case"hyphen":return ce.join("-");case"colon-upper":return ce.map(ye=>ye.toUpperCase()).join(":");case"cisco":return`${ce[0]}${ce[1]}.${ce[2]}${ce[3]}.${ce[4]}${ce[5]}`;default:return ce.join(":")}}function ke(Y){return typeof Y=="string"&&j(Y)!==null}function Ee(Y){if(F(Y))return null;const re=String(Y).trim();if(re==="")return null;const N=re.replace(/[:-]/g,"").replace(/\./g,"").toLowerCase();return/^[0-9a-f]+$/.test(N)?N:null}function C(Y,re){const N=Ee(Y),ce=Ee(re);return!!(N&&ce&&N.includes(ce))}function K(Y,re){const N=H(Y),ce=H(re);return N===null?ce===null?0:1:ce===null||N<ce?-1:N>ce?1:0}const G=Object.freeze(["macEquals","macInRange","macContains"]),B=Object.freeze(["eq","ne","contains","notContains","startsWith","endsWith"]);function te(Y){switch(Y){case"macEquals":return{compile:re=>{const N=H(re);return N===null?()=>!1:ce=>H(ce)===N},check:re=>H(re)===null?"the operand is not a MAC address":null};case"macInRange":return{compile:re=>{const N=Array.isArray(re)?re:[re,re],ce=H(N[0]),ye=H(N[1]);return ce===null||ye===null||ce>ye?()=>!1:R=>{const n=H(R);return n!==null&&n>=ce&&n<=ye}},check:re=>{const N=Array.isArray(re)?re:[];if(N.length!==2)return"the operand must be two MAC addresses, the low and high ends of the range";const ce=H(N[0]),ye=H(N[1]);return ce===null||ye===null?"an end of the range is not a MAC address":ce>ye?"the low end of the range is above the high end":null}};case"macContains":return{compile:re=>N=>C(N,re),check:re=>Ee(re)===null?"the operand is not hex":null};default:return{compile:()=>()=>!1,check:()=>"unknown MAC operator"}}}function ge(Y){switch(Y){case"eq":return{compile:re=>{const N=H(re);return N===null?()=>!1:ce=>H(ce)===N},check:re=>H(re)===null?"the operand is not a MAC address":null};case"ne":return{compile:re=>{const N=H(re);return N===null?()=>!1:ce=>H(ce)!==N},check:re=>H(re)===null?"the operand is not a MAC address":null};case"contains":return{compile:re=>N=>C(N,re),check:re=>Ee(re)===null?"the operand is not hex":null};case"notContains":return{compile:re=>N=>!C(N,re),check:re=>Ee(re)===null?"the operand is not hex":null};case"startsWith":return{compile:re=>{const N=String(re??"").toLowerCase();return ce=>ce==null?!1:String(ce).toLowerCase().startsWith(N)}};case"endsWith":return{compile:re=>{const N=String(re??"").toLowerCase();return ce=>ce==null?!1:String(ce).toLowerCase().endsWith(N)}};default:return{compile:()=>()=>!1,check:()=>"unknown MAC text operator"}}}const oe=Object.freeze(["lt","lte","gt","gte","between","notBetween","in","notIn","matches"]);function fe(Y){const re=d(Y);return re===null?null:k(re.address,re.prefix)}function ve(Y,re,N){const ce=a=>String(a??"").trim().toLowerCase(),ye=a=>{if(a==null)return null;const U=re(a);return U===""?null:U.toLowerCase()},R=a=>Y(a)===null?`the operand is not ${N}`:null,n=(a,U)=>({compile:V=>{const ue=ce(V);return Ce=>{const he=ye(Ce);return he===null?U:U?!a(he,ue):a(he,ue)}}});return Object.freeze({eq:{compile:a=>{const U=Y(a);return U===null?()=>!1:V=>Y(V)===U},check:R},ne:{compile:a=>{const U=Y(a);return U===null?()=>!0:V=>Y(V)!==U},check:R},contains:n((a,U)=>a.includes(U),!1),notContains:n((a,U)=>a.includes(U),!0),startsWith:n((a,U)=>a.startsWith(U),!1),endsWith:n((a,U)=>a.endsWith(U),!1),...Object.fromEntries(oe.map(a=>[a,Object.freeze({})]))})}const be=Object.freeze({ipv4:"Enter an IPv4 address, for example 10.0.0.1",cidr:"Enter a network in CIDR form, for example 10.0.0.0/24",ipv6:"Enter an IPv6 address, for example 2001:db8::1",mac:"Enter a MAC address, for example 00:1a:2b:3c:4d:5e"}),X=(Y,re)=>N=>{const ce=N&&typeof N.text=="string"?N.text:"";return ce.trim()!==""&&Y(ce)===null?re:null},de=Object.freeze({ipv4:{base:"number",storage:"int32",unsignedInt32:!0,matches:E,parse:Y=>M(Y.text),parseError:X(M,be.ipv4),compare:T,format:Y=>W(Y.value),operators:ve(I,W,"an IPv4 address"),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",excelKind:"string",toStorage:Y=>I(Y),toRow:(Y,re)=>s(Y,re,W),toClipboard:Y=>W(Y),fromClipboard:Y=>M(Y)},cidr:{base:"number",storage:"float64",matches:m,parse:Y=>u(Y.text,{network:c(Y.column)}),parseError:X(u,be.cidr),compare:z,format:Y=>r(Y.value),operators:ve(fe,r,"a network in CIDR form"),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",excelKind:"string",toStorage:Y=>{const re=d(Y);return re===null?null:k(re.address,re.prefix)},toRow:(Y,re)=>s(Y,re,r),toClipboard:Y=>r(Y),fromClipboard:(Y,re)=>u(Y,{network:c(re&&re.column)})},ipv6:{base:"text",storage:"dictionary",matches:le,parse:Y=>O(Y.text),parseError:X(O,be.ipv6),compare:se,format:Y=>ae(Y.value),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",toStorage:Y=>O(Y),toClipboard:Y=>ae(Y),fromClipboard:Y=>O(Y)},mac:{base:"text",storage:"dictionary",matches:ke,parse:Y=>ne(Y.text),parseError:X(ne,be.mac),compare:K,format:Y=>q(Y.value,Y.column&&Y.column.typeOptions&&Y.column.typeOptions.macFormat),operators:Object.freeze({...Object.fromEntries(G.map(Y=>[Y,te(Y)])),...Object.fromEntries(B.map(Y=>[Y,ge(Y)]))}),defaults:{filter:"text",editor:"ipaddress",align:"start"},excel:"@",toStorage:Y=>ne(Y),fromClipboard:Y=>ne(Y)}}),pe=de}),Me("packages/core/src/columns/types/vlan.js",function(A,J){"use strict";Object.defineProperty(A,"vlanError",{enumerable:!0,get:function(){return P}}),Object.defineProperty(A,"parseVlans",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"formatVlans",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"vlanContains",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"vlanOverlaps",{enumerable:!0,get:function(){return T}}),Object.defineProperty(A,"vlanCount",{enumerable:!0,get:function(){return i}}),Object.defineProperty(A,"isVlan",{enumerable:!0,get:function(){return p}}),Object.defineProperty(A,"compareVlans",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"VLAN_TYPES",{enumerable:!0,get:function(){return k}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return d}});const _e=1,F=4094,L=/^\d+$/;function e(c,t){const s=!!(t&&t.single),u=c==null?"":String(c).trim();if(u==="")return{ids:null,error:null};const r=u.split(","),m=new Set;for(const z of r){const l=z.trim();if(l==="")return{ids:null,error:`"${u}" has an empty entry`};const g=l.indexOf("-");if(g>=0){if(s)return{ids:null,error:"a single-ID VLAN column holds one ID, not a list or range"};const w=l.slice(0,g).trim(),x=l.slice(g+1).trim();if(!L.test(w)||!L.test(x))return{ids:null,error:`"${l}" is not a VLAN range like 20-30`};let v=Number(w),f=Number(x);if(v<_e||v>F||f<_e||f>F)return{ids:null,error:`VLAN IDs are between ${_e} and ${F}`};if(v>f){const o=v;v=f,f=o}for(let o=v;o<=f;o++)m.add(o)}else{if(!L.test(l))return{ids:null,error:`"${l}" is not a VLAN ID (a whole number ${_e}-${F})`};const w=Number(l);if(w<_e||w>F)return{ids:null,error:`VLAN IDs are between ${_e} and ${F}`};if(s&&r.length>1)return{ids:null,error:"a single-ID VLAN column holds one ID, not a list or range"};m.add(w)}}return s&&m.size>1?{ids:null,error:"a single-ID VLAN column holds one ID, not a list or range"}:{ids:[...m].sort((z,l)=>z-l),error:null}}function P(c,t){return e(c,t).error}function D(c){const t=[];let s=0;for(;s<c.length;){let u=s;for(;u+1<c.length&&c[u+1]===c[u]+1;)u++;t.push(u===s?String(c[s]):`${c[s]}-${c[u]}`),s=u+1}return t.join(",")}function I(c){if(c==null||c==="")return null;if(typeof c=="string")return e(c,{}).ids;if(Array.isArray(c)){const t=new Set;for(const s of c){if(typeof s!="number"||!Number.isInteger(s)||s<_e||s>F)return null;t.add(s)}return t.size?[...t].sort((s,u)=>s-u):null}return typeof c=="number"&&Number.isInteger(c)&&c>=_e&&c<=F?[c]:null}function M(c,t){const s=e(c,t);return s.ids===null?null:D(s.ids)}function W(c){const t=I(c);return t===null?"":D(t)}function E(c,t){const s=I(c);if(s===null)return!1;const u=Number(t);return Number.isInteger(u)&&s.includes(u)}function T(c,t){const s=I(c);if(s===null)return!1;const u=new Set(s),r=Array.isArray(t)?t:typeof t=="string"?t.split(","):[t];for(const m of r){const z=Number(typeof m=="string"?m.trim():m);if(Number.isInteger(z)&&u.has(z))return!0}return!1}function i(c){const t=I(c);return t===null?0:t.length}function p(c){return typeof c=="string"&&M(c)!==null}function S(c,t){const s=I(c),u=I(t);return s===null?u===null?0:1:u===null?-1:s[0]!==u[0]?s[0]<u[0]?-1:1:s.length<u.length?-1:s.length>u.length?1:0}const k=Object.freeze({vlan:{base:"text",storage:"dictionary",matches:p,parse:c=>M(c.text,{single:!!(c.column&&c.column.typeOptions&&c.column.typeOptions.vlanSingle)}),parseError:c=>P(c.text,{single:!!(c.column&&c.column.typeOptions&&c.column.typeOptions.vlanSingle)}),compare:S,format:c=>W(c.value),defaults:{filter:"text",editor:"vlan",align:"start"},excel:"@",operators:Object.freeze({contains:{compile:c=>t=>E(t,c),check:c=>{const t=Number(typeof c=="string"?c.trim():c);return!Number.isInteger(t)||t<_e||t>F?`contains needs one VLAN ID ${_e}-${F}`:null}},overlaps:{compile:c=>t=>T(t,c),check:c=>{const t=Array.isArray(c)?c:typeof c=="string"?c.split(","):[c];for(const s of t){const u=Number(typeof s=="string"?s.trim():s);if(!Number.isInteger(u)||u<_e||u>F)return`overlaps needs VLAN IDs ${_e}-${F}`}return null}}}),toStorage:c=>M(c),toClipboard:c=>W(c),fromClipboard:c=>M(c)}}),d=k}),Me("packages/modules/form/controls/network.js",function(A,J){"use strict";const F=J("packages/modules/form/controls/registry.js").registerControl,e=J("packages/modules/form/messages.js").t,P=J("packages/dom/src/autofill.js"),D=P.noHistory,I=P.applyAutocomplete,M=J("packages/core/src/columns/types/network.js"),W=M.parseIpv4,E=M.formatIpv4,T=M.parseCidr,i=M.formatCidr,p=M.parseIpv6,S=M.formatIpv6,k=M.parseMac,d=M.formatMac,c=J("packages/core/src/columns/types/vlan.js"),t=c.parseVlans,s=c.formatVlans,u=c.vlanError,r=Symbol("lattice-form-network-invalid"),m=32;function z(v){return v&&v.props?v.props.macFormat:void 0}function l(v){return!!(v&&v.props&&v.props.vlanSingle===!0)}function g(v){const f=Number(v&&v.props&&v.props.prefix);return Number.isInteger(f)&&f>=0&&f<=32?f:m}function w(v){return!!(v&&v.props&&v.props.cidrNetwork===!0)}function x(v,f){const o=f.display||f.canonical;function _(b,y,h){if(h==null||h===""){y&&(y.value=null),b.value="";return}const $=y?y.item:{};y&&(y.value=f.canonical(h,$)||null),b.value=o(h,$)}F(v,{kind:"field",build(b,y){const $=y.doc.createElement("input");$.type="text",$.inputMode=f.inputMode,$.autocapitalize="off",$.autocorrect="off",$.spellcheck=!1,b.name&&($.name=b.name),D($),I($,b.autocomplete),b.placeholder!=null&&($.placeholder=String(b.placeholder));const ee=typeof y.t=="function"?y.t:e,O={input:$,item:b,t:ee,value:null,offBlur:null};$.__latNetwork=O,_($,O,b.value);const ae=()=>{const le=$.value;if(String(le).trim()===""){_($,O,null);return}const se=f.parse(le,O.item);se.ok&&_($,O,se.value)};return $.addEventListener("blur",ae),O.offBlur=()=>$.removeEventListener("blur",ae),$},read(b){const y=b.__latNetwork,$=(y?y.input:b).value;if(String($).trim()==="")return null;const ee=f.parse($,y?y.item:{});return ee.ok?f.canonical(ee.value,y?y.item:{})||null:r},write(b,y){const h=b.__latNetwork;_(h?h.input:b,h,y)},state(b,y){const h=b.__latNetwork,$=h?h.input:b;$.disabled=y.disabled===!0,$.readOnly=y.readOnly===!0},validate(b,y){const h=b.__latNetwork,ee=(h?h.input:b).value;if(String(ee).trim()===""||f.parse(ee,y).ok)return null;const ae=h?h.t:e,le=typeof f.messageKey=="function"?f.messageKey(y):f.messageKey;return{code:"pattern",message:ae(le),keepText:!0}},destroy(b){const y=b.__latNetwork;y&&typeof y.offBlur=="function"&&y.offBlur()}})}x("ipv4",{inputMode:"numeric",parse:v=>{const f=W(v);return f===null?{ok:!1}:{ok:!0,value:f}},canonical:v=>E(v),messageKey:"form.validation.ipv4"}),x("ipv6",{inputMode:"text",parse:v=>{const f=p(v);return f===null?{ok:!1}:{ok:!0,value:f}},canonical:v=>S(v),messageKey:"form.validation.ipv6"}),x("cidr",{inputMode:"numeric",parse:(v,f)=>{const o=v.indexOf("/")>=0?v:`${v}/${g(f)}`,_=T(o,{network:w(f)});return _===null?{ok:!1}:{ok:!0,value:_}},canonical:v=>i(v),messageKey:"form.validation.cidr"}),x("mac",{inputMode:"text",parse:v=>{const f=k(v);return f===null?{ok:!1}:{ok:!0,value:f}},canonical:v=>d(v),display:(v,f)=>d(v,z(f)),messageKey:"form.validation.mac"}),x("vlan",{inputMode:"numeric",parse:(v,f)=>{const o=l(f);return u(v,{single:o})?{ok:!1}:{ok:!0,value:t(v,{single:o})}},canonical:v=>s(v),messageKey:v=>l(v)?"form.validation.vlanSingle":"form.validation.vlan"})}),Me("packages/modules/form/controls/index.js",function(A,J){"use strict";const _e=J("packages/modules/form/controls/input.js"),F=J("packages/modules/form/controls/number.js"),L=J("packages/modules/form/controls/textarea.js"),e=J("packages/modules/form/controls/checkbox.js"),P=J("packages/modules/form/controls/button.js"),D=J("packages/modules/form/controls/buttons.js"),I=J("packages/modules/form/controls/text.js"),M=J("packages/modules/form/controls/combo.js"),W=J("packages/modules/form/controls/select.js"),E=J("packages/modules/form/controls/listbox.js"),T=J("packages/modules/form/controls/radiogroup.js"),i=J("packages/modules/form/controls/checkboxgroup.js"),p=J("packages/modules/form/controls/toggle.js"),S=J("packages/modules/form/controls/datepicker.js"),k=J("packages/modules/form/controls/time.js"),d=J("packages/modules/form/controls/daterange.js"),c=J("packages/modules/form/controls/file.js"),t=J("packages/modules/form/controls/richtext.js"),s=J("packages/modules/form/controls/rating.js"),u=J("packages/modules/form/controls/stage.js"),r=J("packages/modules/form/controls/chips.js"),m=J("packages/modules/form/controls/otp.js"),z=J("packages/modules/form/controls/color.js"),l=J("packages/modules/form/controls/barcode.js"),g=J("packages/modules/form/controls/speeddial.js"),w=J("packages/modules/form/controls/container.js"),x=J("packages/modules/form/controls/avatar.js"),v=J("packages/modules/form/controls/togglegroup.js"),f=J("packages/modules/form/controls/grid.js"),o=J("packages/modules/form/controls/slider.js"),_=J("packages/modules/form/controls/network.js")}),Me("packages/modules/form/create.js",function(A,J){"use strict";Object.defineProperty(A,"createForm",{enumerable:!0,get:function(){return te}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return ge}});const _e=J("packages/modules/form/styles.js"),F=_e.NS,L=_e.injectStyles,e=J("packages/modules/form/model.js"),P=e.resolveConfig,D=e.DENSITIES,I=e.cssSize,M=e.resolveLabelPosition,W=J("packages/modules/form/view.js"),E=W.markValidation,T=W.mount,i=W.runValidation,p=W.validateItem,S=W.wizardBack,k=W.wizardGoTo,d=W.wizardNext,c=W.VALIDATED_KINDS,t=W.applyCss,s=W.applyItemWidth,u=W.applyItemHeight,r=W.applyItemLabelPosition,m=W.applyItemLabelWidth,l=J("packages/modules/form/validation.js").maskPlaceholderOf,g=J("packages/modules/form/emitter.js"),w=g.Emitter,x=g.FORM_EVENTS,f=J("packages/modules/form/messages.js").createTranslator,o=J("packages/modules/form/bind.js"),_=o.resolveBind,b=o.applyBinding,y=o.mergeBoundNetworkOptions,$=J("packages/modules/form/rules.js").applyRules,O=J("packages/modules/form/state.js").syncRecordState,ae=J("packages/modules/form/controls/container.js"),le=ae.attachToContainer,se=ae.attachHtmlToContainer,Z=ae.getContainerWidget,Pe=J("packages/modules/form/controls/button.js").setButtonCaption,j=J("packages/modules/form/ready.js").createReadySignal,ne=J("packages/dom/src/watermark.js").mountViewWatermark,q=J("packages/modules/form/controls/index.js"),ke=new Set;function Ee(oe,fe){ke.has(oe)||(ke.add(oe),console.warn("[lattice]",fe))}const C=new Set(["min","max","step"]);function K(oe,fe){const ve=oe.item;switch(fe){case"label":return ve.label!=null?String(ve.label):null;case"helpMessage":return ve.helpMessage!=null?String(ve.helpMessage):null;case"placeholder":return ve.placeholder!=null?String(ve.placeholder):null;case"labelPosition":return oe.labelPosition;case"hiddenLabel":return ve.hiddenLabel===!0;case"labelWidth":return oe.labelWidth!=null?oe.labelWidth:null;case"required":return ve.required===!0;case"readOnly":return ve.readOnly===!0;case"disabled":return ve.disabled===!0;case"hidden":return oe.hidden===!0;case"width":return ve.width!=null?ve.width:null;case"height":return ve.height!=null?ve.height:null;case"padding":return ve.padding!=null?ve.padding:null;case"min":return ve.min!=null?ve.min:null;case"max":return ve.max!=null?ve.max:null;case"step":return ve.step!=null?ve.step:null;case"options":return ve.options!=null?ve.options:null;case"validation":return ve.validation!=null?ve.validation:null;case"errorMessage":return ve.errorMessage!=null?ve.errorMessage:null;case"css":return ve.css!=null?ve.css:null;default:if(ve.props&&Object.hasOwn(ve.props,fe))return ve.props[fe];Ee(`form.item.get.unknown:${fe}`,`lattice-form: getItem(name).get("${fe}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`);return}}function G(oe,fe,ve,be){const X=fe.item,de=fe.facade;switch(ve){case"label":{const pe=be==null?"":String(be);X.label=pe,fe.def.kind==="button"?Pe(fe.control,pe):fe.labelEl?fe.labelEl.textContent=pe:fe.placeholderEl&&pe!==""&&fe.placeholderEl.setAttribute("aria-label",pe);return}case"helpMessage":{const pe=be==null?null:String(be);if(X.helpMessage=pe,pe==null||pe===""){fe.helpEl&&(fe.helpEl.remove(),fe.helpEl=null);return}if(fe.helpEl)fe.helpEl.textContent=pe;else{const Y=oe.doc.createElement("div");Y.className=`${F}__help`,Y.textContent=pe,fe.controlWrap.appendChild(Y),fe.helpEl=Y}return}case"placeholder":{X.placeholder=be,fe.placeholderBase=be==null?l(X):String(be),fe.def.live&&typeof fe.def.live.placeholder=="function"&&fe.def.live.placeholder(fe.control,be,X,fe),$(oe);return}case"labelPosition":{r(fe,M(be)),X.labelPosition=fe.labelPosition;return}case"labelWidth":{X.labelWidth=be,m(fe,be);return}case"hiddenLabel":{X.hiddenLabel=be===!0,r(fe,X.hiddenLabel?"hidden":fe.labelPositionBase);return}case"required":{X.required=be===!0,$(oe);return}case"readOnly":{X.readOnly=be===!0,O(fe);return}case"disabled":{X.disabled=be===!0,O(fe);return}case"hidden":{be===!0?de.hide():de.show();return}case"width":{X.width=be,s(fe,be);return}case"height":{X.height=be,u(fe,be);return}case"padding":{X.padding=be==null?null:I(be),fe.def.kind==="container"?fe.control.style.padding=X.padding==null?"":X.padding:fe.el.style.padding=X.padding==null?"":X.padding;return}case"css":{X.css=be,t(fe.el,be);return}case"validation":{X.validation=be;return}case"errorMessage":{X.errorMessage=be;return}case"options":{de.setOptions(be);return}default:{const pe=fe.def.live;if(pe&&typeof pe[ve]=="function"){C.has(ve)?X[ve]=be:(X.props||(X.props={}),X.props[ve]=be),pe[ve](fe.control,be,X,fe);return}Ee(`form.item.set.unknown:${ve}`,`lattice-form: getItem(name).set() was given "${ve}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`)}}}function B(oe){if(Array.isArray(oe))return oe.map(B);if(oe==null||typeof oe!="object"||typeof oe.nodeType=="number"||Object.getPrototypeOf(oe)!==Object.prototype)return oe;const fe=oe.type==="buttons"?"buttons":oe.type==="speeddial"?"speedDialItems":null,ve=fe!=null&&Array.isArray(oe.items),be={};for(const X of Object.keys(oe))ve&&X==="items"||(be[X]=B(oe[X]));return ve&&(be[fe]=oe.items.map(B)),be}function te(oe,fe={}){const ve=oe&&oe.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,be=_(fe);let X=fe;if(be){if(X={...fe},X.density===void 0){const n=be.density();n!=null&&(X.density=n)}if(Array.isArray(X.rows)&&X.rows.length||Array.isArray(X.cols)&&X.cols.length)be.kind==="grid"&&fe.bind&&fe.bind.grid&&y(fe.bind.grid,X);else{const n=be.items();n.length&&(X.rows=[{items:n}])}}const de=P(B(X)),pe={el:oe||null,doc:ve,model:de,config:de,items:new Map,order:[],emitter:new w,t:f(de.messages).t,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},Y=R=>{if(R.kind==="fieldset")return R.facade||(R.facade={el:R.el,name:R.name,getValue(){},setValue(){return R.facade},show(){return R.hidden=!1,R.el.hidden=!1,R.facade},hide(){return R.hidden=!0,R.el.hidden=!0,R.facade},isVisible(){return!R.hidden},disable(){return R.facade},enable(){return R.facade},focus(){return typeof R.el.focus=="function"&&R.el.focus(),R.facade},blur(){return typeof R.el.blur=="function"&&R.el.blur(),R.facade},validate(){return!0},setLoading(){return R.facade},setOptions(){return R.facade},reload(){return R.facade},getLabel(){return R.label},setLabel(n){const a=n==null?"":String(n);if(R.label=a,R.legendEl)R.legendEl.textContent=a;else{const U=pe.doc.createElement("legend");U.className=`${F}__legend`,U.textContent=a,R.el.insertBefore(U,R.el.firstChild),R.legendEl=U}return R.facade},setHelp(n){if(n==null||n==="")return R.helpEl&&(R.helpEl.remove(),R.helpEl=null),R.facade;const a=String(n);if(R.helpEl)R.helpEl.textContent=a;else{const U=pe.doc.createElement("div");U.className=`${F}__help`,U.textContent=a,R.el.appendChild(U),R.helpEl=U}return R.facade},set(n){if(n==null||typeof n!="object")return R.facade;for(const a of Object.keys(n))a==="label"?R.facade.setLabel(n[a]):a==="helpMessage"?R.facade.setHelp(n[a]):Ee(`form.item.set.unknown:${a}`,`lattice-form: getItem(name).set() was given "${a}", which is not a live prop of this item; it was ignored. See the warnings catalogue for the live props a control documents.`);return R.facade},get(n){if(n==="label")return R.label!=null?R.label:null;if(n==="helpMessage")return R.helpEl?R.helpEl.textContent:null;Ee(`form.item.get.unknown:${n}`,`lattice-form: getItem(name).get("${n}") is not a prop this item carries; it returns undefined. See the warnings catalogue for the live props a control documents.`)},setPlaceholder(){return R.facade},getPlaceholder(){return null}}),R.facade;if(!R.facade&&(R.facade={el:R.el,item:R.item,name:R.item.name,get labelEffectivePosition(){return R.labelEffectivePosition},getValue(){return R.value},setValue(n){return R.def.write(R.control,n),R.value=R.def.read(R.control),R.item.value=R.value,$(pe),R.facade},show(){return R.hidden=!1,R.el.hidden=!1,R.facade},hide(){return R.hidden=!0,R.el.hidden=!0,R.facade},isVisible(){return!(R.hidden||R.ruleHidden)},disable(){return R.item.disabled=!0,O(R),R.facade},enable(){return R.item.disabled=!1,O(R),R.facade},focus(){return typeof R.def.focus=="function"?R.def.focus(R.control):typeof R.control.focus=="function"&&R.control.focus(),R.facade},blur(){return typeof R.def.blur=="function"?R.def.blur(R.control):typeof R.control.blur=="function"&&R.control.blur(),R.facade},validate(){return p(pe,R)},setLoading(n){return typeof R.def.setLoading=="function"&&R.def.setLoading(R.control,n===!0),R.facade},setOptions(n){const a=R.control&&(R.control.__combo||R.control.__select);return a&&typeof a.setOptions=="function"&&(a.setOptions(n),R.item.options=n),R.facade},reload(){const n=R.control&&(R.control.__combo||R.control.__select);return n&&typeof n.reload=="function"&&n.reload(),R.facade},getOptions(){const n=R.control&&R.control.__listbox;return n&&typeof n.getOptions=="function"?n.getOptions():void 0},addOption(n,a){const U=R.control&&R.control.__listbox;return U&&typeof U.addOption=="function"&&U.addOption(n,a),R.facade},removeOption(n){const a=R.control&&R.control.__listbox;return a&&typeof a.removeOption=="function"&&a.removeOption(n),R.facade},updateOption(n,a){const U=R.control&&R.control.__listbox;return U&&typeof U.updateOption=="function"&&U.updateOption(n,a),R.facade},filter(n){const a=R.control&&R.control.__listbox;return a&&typeof a.filter=="function"&&a.filter(n),R.facade},remeasure(){const n=R.control&&R.control.__listbox;return n&&typeof n.remeasure=="function"&&n.remeasure(),R.facade},getLabel(){return R.item.label!=null?String(R.item.label):null},setLabel(n){return R.facade.set({label:n})},setHelp(n){return R.facade.set({helpMessage:n})},getPlaceholder(){return R.facade.get("placeholder")},setPlaceholder(n){return R.facade.set({placeholder:n})},set(n){if(n==null||typeof n!="object")return R.facade;for(const a of Object.keys(n))G(pe,R,a,n[a]);return R.facade},get(n){return K(R,n)}},R.def.kind==="container"&&(R.facade.attach=(n,a)=>(le(R.control,n,a),R.facade),R.facade.attachHTML=n=>(se(pe.doc,R.control,n),R.facade),R.facade.getWidget=()=>Z(R.control)),R.def.kind==="grid")){const n=R.control.__latGridApi;R.facade.addRow=a=>n.addRow(a),R.facade.removeRows=a=>n.removeRows(a),R.facade.getGrid=()=>n.grid()}return R.facade};oe&&ve&&L(ve);const re=oe&&typeof oe.style.cssText=="string"?oe.style.cssText:"",N=new Set(["field","toggle","display","grid"]),ce={el:oe||null,config:de,getItem(R){const n=pe.items.get(String(R));return n?Y(n):void 0},getValue(){const R={};for(const n of pe.order)if(n.item.name!=null&&N.has(n.def.kind)&&(n.valueRows!==!1&&(R[n.item.name]=n.value),n.mapped))for(const a of n.mapped)R[a.item.name]=a.value;return R},setValue(R){if(R==null||typeof R!="object")return ce;for(const n of Object.keys(R)){const a=pe.items.get(n);a&&Y(a).setValue(R[n])}return ce},clear(){for(const R of pe.order)if(R.item.name!=null)if(R.def.kind==="field"){const n=R.item.props&&R.item.props.multiple===!0,a=R.item.type==="togglegroup"?{}:R.item.type==="chips"?n?[]:null:R.item.type==="number"||R.item.type==="radiogroup"||R.item.type==="datepicker"||R.item.type==="stage"||R.item.type==="combo"&&!n?null:R.item.type==="rating"?0:R.item.type==="file"||R.item.type==="checkboxgroup"||(R.item.type==="select"||R.item.type==="combo")&&n?[]:"";R.value=a,R.item.value=a,R.def.write(R.control,a)}else R.def.kind==="toggle"?(R.value=!1,R.item.value=!1,R.def.write(R.control,!1)):R.def.kind==="grid"&&(R.def.write(R.control,[]),R.value=R.def.read(R.control),R.item.value=R.value);return $(pe),ce},validate(){const R=[];let n=!0;for(const a of pe.order){if(a.item.name==null||!c.has(a.def.kind)||a.item.disabled===!0||a.ruleHidden===!0||a.hidden===!0||(typeof a.def.reset=="function"&&a.def.reset(a.control,a.item),a.item.required!==!0&&a.item.validation==null&&typeof a.def.validate!="function"&&a.ruleRequired!==!0))continue;const U=i(pe,a);E(pe,a,U),U&&(n=!1,R.push({name:a.item.name,rule:U.code,message:U.message}))}return pe.emitter.emit("validated",{name:null,item:null,value:void 0,valid:n,failures:R}),n},forEach(R){for(const n of pe.order)R(Y(n))},on(R,n){return R!=="*"&&!x.includes(R)?(console.warn(`lattice-form: "${R}" is not a form event and will never fire.`),()=>{}):pe.emitter.on(R,n)},off(R,n){pe.emitter.off(R,n)},setDensity(R){if(!D.includes(R))return ce;de.density=R,oe&&oe.setAttribute("data-density",R);for(const n of pe.order)typeof n.def.density=="function"&&n.def.density(n.control,R);return ce},setReadOnly(R){for(const n of pe.order)n.item.readOnly=R===!0,O(n);return ce},setDisabled(R){for(const n of pe.order)n.item.disabled=R===!0,O(n);return ce},setSpacing(R){const n=R==null?null:I(R);return de.spacing=n,oe&&(n==null?oe.style.removeProperty("--lattice-form-item-gap"):oe.style.setProperty("--lattice-form-item-gap",n)),ce},isDirty(R){return R==null?pe.dirty.size>0:pe.dirty.has(String(R))},isConflicted(R){return R==null?pe.conflicts.size>0:pe.conflicts.has(String(R))},save(){const R=pe.bound;if(!R)return!1;if(pe.dirty.size===0)return!0;const n={};for(const V of pe.dirty){const ue=ce.getItem(V);ue&&(n[V]=ue.getValue())}const a=R.save(n),U=V=>{if(!V)return!1;for(const ue of Object.keys(n))pe.baseline[ue]=n[ue],pe.dirty.delete(ue),pe.conflicts.delete(ue);return!0};return a&&typeof a.then=="function"?a.then(U):U(a)},revert(){for(const R of pe.dirty){if(!Object.hasOwn(pe.baseline,R))continue;const n=pe.items.get(R);n&&Y(n).setValue(pe.baseline[R])}return pe.dirty.clear(),pe.conflicts.clear(),ce},_bind(R){return b(pe,ce,R),ce},_commit(R){for(const n of Object.keys(R||{}))pe.baseline[n]=R[n],pe.dirty.delete(n),pe.conflicts.delete(n)},get steps(){return pe.model.steps||[]},get activeStep(){return pe.wizard?pe.wizard.active:0},next(){return d(pe)},back(){return S(pe)},goToStep(R){return k(pe,R)},__reapplyRules(){return $(pe),ce},destroy(){ye.fail(new Error("lattice-grid: the form was destroyed before it became ready."));for(const n of pe.disposers.splice(0))n();pe.emitter.clear();const R=pe.el;if(R){for(;R.firstChild;)R.removeChild(R.firstChild);R.classList.remove(F),R.removeAttribute("data-density"),R.removeAttribute("data-lattice-standalone"),R.style.cssText=re,R.__latticeForm===ce&&(R.__latticeForm=null)}pe.items.clear(),pe.order.length=0,pe.dirty.clear(),pe.conflicts.clear(),pe.baseline={},pe.bound=null}};oe&&(oe.__latticeForm=ce),pe.form=ce,oe&&ve&&(T(pe),pe.disposers.push(ne(oe,fe).destroy)),be&&b(pe,ce,be);const ye=j();return ye.settleSoon(),ce.ready=ye.promise,ce}const ge=te}),Me("packages/modules/form/group.js",function(A,J){"use strict";Object.defineProperty(A,"GROUP_EVENTS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"createFormGroup",{enumerable:!0,get:function(){return d}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return c}});const F=J("packages/modules/form/emitter.js").Emitter,e=J("packages/modules/form/bind-router.js").routerBinding,P=J("packages/modules/form/group-rules.js"),D=P.attachRuleResolver,I=P.detachRuleResolver,M=P.makeRuleResolver,W=P.reapplyMembers,E=Object.freeze(["change","validated"]),T=new Set;function i(t){const s={},u=t.getValue();for(const r of Object.keys(u))t.isDirty(r)===!0&&(s[r]=u[r]);return s}function p(t,s){T.has(t)||(T.add(t),console.warn("[lattice]",s))}const S=new WeakMap;function k(t,s){let u=S.get(t);if(!u){const r=t.destroy;u={original:r,watchers:new Set},S.set(t,u),t.destroy=function(){const z=S.get(t)||u;for(const l of[...z.watchers])l.detach(t);return r.call(t)}}u.watchers.add(s)}function d(t,s={}){const u=[],r=new Map,m=new Map,z=new F,l=s&&typeof s.bind=="object"&&s.bind.router!=null?s.bind:null,g=l?e(l):null,w=()=>{r.clear(),m.clear();for(const _ of u){const b=Object.keys(_.form.getValue());for(const y of b)r.has(y)?p(`form.group.duplicate-field:${y}`,`form group: the field "${y}" is owned by more than one form; the first one added wins.`):r.set(y,_);_.id!=null&&!m.has(_.id)&&m.set(_.id,_)}},x=M({owners:r,byId:m,warnOnce:p}),v=_=>{const b=u.findIndex($=>$.form===_);if(b===-1)return!1;const[y]=u.splice(b,1);for(const $ of y.unsubs)$();w();const h=S.get(_);return h&&(h.watchers.delete(f),h.watchers.size===0&&(S.delete(_),_.destroy=h.original)),I(_),typeof _.__reapplyRules=="function"&&_.__reapplyRules(),W(u),!0},f={detach:v},o={get forms(){return u.map(_=>_.form)},add(_,b){if(!_||typeof _!="object"||typeof _.getValue!="function"||u.some(ee=>ee.form===_))return o;const y={form:_,id:b&&b.id,unsubs:[],lastFailures:[]};u.push(y),g&&typeof _._bind=="function"&&_._bind(g);const h=ee=>{z.emit("change",{form:_,name:ee.name,value:ee.value}),W(u)},$=ee=>{y.lastFailures=ee.failures||[],z.emit("validated",{form:_,valid:ee.valid})};return y.unsubs.push(_.on("change",h)),y.unsubs.push(_.on("validated",$)),k(_,f),w(),D(_,x),W(u),o},remove(_){return v(_),o},getValue(){const _={};for(const b of u)Object.assign(_,b.form.getValue());return s.transform&&typeof s.transform.get=="function"?s.transform.get(_):_},setValue(_){if(s.transform&&typeof s.transform.set=="function")s.transform.set(_);else if(_!=null&&typeof _=="object")for(const b of Object.keys(_)){const y=r.get(b);y&&y.form.setValue({[b]:_[b]})}return W(u),o},getItem(_){const b=r.get(String(_));return b?b.form.getItem(_):void 0},validate(){let _=!0;const b=[];for(const y of u){y.form.validate()===!1&&(_=!1);for(const $ of y.lastFailures||[])b.push({form:y.form,name:$.name})}if(!_){const y=b.find(h=>h.name!=null);if(y){const h=y.form.getItem(y.name);h&&(h.focus(),h.el&&typeof h.el.scrollIntoView=="function"&&h.el.scrollIntoView({block:"nearest"}))}}return _},setReadOnly(_){for(const b of u)b.form.setReadOnly(_===!0);return o},setDisabled(_){for(const b of u)b.form.setDisabled(_===!0);return o},clear(){for(const _ of u)_.form.clear();return o},reset(){for(const _ of u)typeof _.form.revert=="function"&&_.form.revert();return o},save(){if(!g)return!1;const _=u.map($=>({member:$,changes:i($.form)})),b={};for(const $ of _)Object.assign(b,$.changes);if(!Object.keys(b).length)return!0;const y=g.save(b),h=$=>{if(!$)return!1;for(const ee of _)ee.member.form&&typeof ee.member.form._commit=="function"&&ee.member.form._commit(ee.changes);return!0};return y&&typeof y.then=="function"?y.then(h):h(y)},isDirty(){return u.some(_=>_.form.isDirty()===!0)},on(_,b){return _!=="*"&&!E.includes(_)?(console.warn(`lattice-form: "${_}" is not a form group event and will never fire.`),()=>{}):z.on(_,b)},off(_,b){z.off(_,b)},destroy(){for(;u.length;){const _=u[u.length-1].form;v(_)}z.clear()}};if(Array.isArray(t))for(const _ of t)o.add(_);else t&&typeof t=="object"&&typeof t.getValue=="function"&&o.add(t);return o}const c=d}),Me("packages/modules/form/enhance.js",function(A,J){"use strict";Object.defineProperty(A,"itemForField",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"configForForm",{enumerable:!0,get:function(){return W}}),Object.defineProperty(A,"enhanceForm",{enumerable:!0,get:function(){return E}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return T}});const F=J("packages/modules/form/create.js").createForm,L=Object.freeze(["text","email","password","url"]);function e(i){const p=i&&i.type?String(i.type).toLowerCase():"";return p==="submit"||p==="image"||i&&i.tagName==="BUTTON"&&p!=="button"}function P(i){if(!i||!i.name)return!1;const p=i&&i.type?String(i.type).toLowerCase():"";return!(p==="submit"||p==="button"||p==="reset"||p==="image"||p==="hidden"||p==="file"||i.tagName==="BUTTON")}function D(i,p){if(typeof i.getAttribute=="function"){const S=i.getAttribute("data-label");if(S!=null&&S!=="")return S;const k=i.getAttribute("aria-label");if(k!=null&&k!=="")return k}if(i.id&&typeof p.querySelector=="function"){const S=p.querySelector(`label[for="${i.id}"]`);if(S&&S.textContent!=null){const k=String(S.textContent).trim();if(k)return k}}return String(i.name||"")}function I(i){return i.type==="checkbox"?i.checked===!0:i.value==null?"":i.value}function M(i,p){if(e(i)||!P(i))return null;const S=i.type?String(i.type).toLowerCase():"text",k={type:"input",name:i.name,label:D(i,p),value:I(i)};if(S==="number")k.type="number",i.min!=null&&i.min!==""&&(k.min=Number(i.min)),i.max!=null&&i.max!==""&&(k.max=Number(i.max)),i.step!=null&&i.step!==""&&(k.step=Number(i.step));else if(S==="checkbox")k.type="checkbox";else if(i.tagName==="TEXTAREA")k.type="textarea";else if(L.includes(S))k.subtype=S,(S==="email"||S==="url")&&(k.validation=S);else return null;if(i.placeholder!=null&&i.placeholder!==""&&(k.placeholder=i.placeholder),i.required===!0&&(k.required=!0),i.disabled===!0&&(k.disabled=!0),i.readOnly===!0&&(k.readOnly=!0),typeof i.getAttribute=="function"){const d=i.getAttribute("data-validation")||i.getAttribute("data-rule");d&&(k.validation=d);const c=i.getAttribute("data-error-message");c&&(k.errorMessage=c);const t=i.getAttribute("data-help");t&&(k.helpMessage=t)}return k}function W(i,p){const S=i&&i.ownerDocument||(typeof document<"u"?document:null),k=[],d=i&&i.elements?i.elements:[];for(const c of d){const t=M(c,S);t&&k.push(t)}return{...p||{},rows:k}}function E(i,p){if(!i)return null;if(i.__latticeForm)return i.__latticeForm;const S=i.ownerDocument||(typeof document<"u"?document:null),k=[],d=i.elements?i.elements:[];for(const t of d)e(t)&&k.push(t);const c=F(i,W(i,p));i.__latticeForm=c;for(const t of k)t.parentNode!==i&&i.appendChild(t);return typeof i.addEventListener=="function"&&S&&i.addEventListener("submit",t=>{c.validate()||(t.preventDefault(),t.stopImmediatePropagation())},!0),c}const T=E}),Me("packages/modules/form/index.js",function(A,J){"use strict";Object.defineProperty(A,"registerControl",{enumerable:!0,get:function(){return S}}),Object.defineProperty(A,"createForm",{enumerable:!0,get:function(){return M}}),Object.defineProperty(A,"default",{enumerable:!0,get:function(){return k}});const F=J("packages/modules/form/styles.js").NS,e=J("packages/modules/form/controls/registry.js").registerControl,D=J("packages/modules/form/model.js").cssSize,M=J("packages/modules/form/create.js").createForm,W=J("packages/modules/form/controls/combo.js");Object.defineProperty(A,"createCombo",{enumerable:!0,get:function(){return W.createCombo}});const E=J("packages/modules/form/controls/select.js");Object.defineProperty(A,"createSelect",{enumerable:!0,get:function(){return E.createSelect}});const T=J("packages/modules/form/controls/speeddial.js");Object.defineProperty(A,"createSpeedDial",{enumerable:!0,get:function(){return T.createSpeedDial}});const i=J("packages/modules/form/group.js");Object.defineProperty(A,"createFormGroup",{enumerable:!0,get:function(){return i.createFormGroup}});const p=J("packages/modules/form/enhance.js");Object.defineProperty(A,"enhanceForm",{enumerable:!0,get:function(){return p.enhanceForm}});function S(d,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 t=typeof c.getValue=="function"?c.getValue:()=>null,s=typeof c.setValue=="function"?c.setValue:()=>{};e(String(d),{kind:"field",custom:!0,validate:typeof c.validate=="function"?(u,r,m)=>c.validate(m,r,u):void 0,destroy:typeof c.destroy=="function"?u=>c.destroy(u):void 0,build(u,r){const m=r.doc.createElement("div");m.className=`${F}__custom`;const z={name:u.name,item:u,getValue(){return z._read?z._read():void 0},setValue(l){z._write&&z._write(l)},onChange(l){z._commit&&z._commit(l===void 0?t(m):l)},onInput(l){z._input&&z._input(l===void 0?t(m):l)}};return m.__latticeFormApi=z,c.create(m,u,z),u.height!=null&&(m.style.height=D(u.height)),s(m,u.value),m},read(u){return t(u)},write(u,r){s(u,r)},state(u,r){u.setAttribute("data-disabled",r.disabled===!0?"true":"false"),u.setAttribute("data-readonly",r.readOnly===!0?"true":"false")}})}const k=M});var nn=un("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=nn:typeof define=="function"&&define.amd?define(function(){return nn}):hn.LatticeGridForm=nn})(typeof globalThis<"u"?globalThis:this);
|
|
2400
2400
|
|
|
2401
2401
|
//# sourceMappingURL=form.min.js.map
|