@toclocoinc/lattice-grid 1.101.2 → 1.101.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +1 -1
- package/angular/package.json +1 -1
- package/docs/API.html +115 -17
- package/docs/THEMING.md +2 -1
- 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/deckgl.html +1 -1
- package/docs/api/designer.html +1 -1
- package/docs/api/form.html +114 -14
- package/docs/api/gantt.html +1 -1
- package/docs/api/geometry.html +1 -1
- package/docs/api/grid.html +2 -2
- package/docs/api/index.html +2 -2
- package/docs/api/kanban.html +1 -1
- package/docs/api/kpi.html +1 -1
- package/docs/api/layout.html +1 -1
- package/docs/api/leaflet.html +1 -1
- package/docs/api/list.html +1 -1
- package/docs/api/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/types.html +1 -1
- package/docs/api-detail.html +9 -6
- 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/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/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 +5 -3
- package/modules/form.esm.min.js +221 -196
- package/modules/form.esm.min.js.map +2 -2
- package/modules/form.min.cjs +221 -196
- package/modules/form.min.js +221 -196
- 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/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/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/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/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/vue.d.ts +1 -1
- package/modules/vue.esm.min.js +1 -1
- package/modules/vue.min.cjs +1 -1
- package/modules/vue.min.js +1 -1
- package/modules/webcomponent.d.ts +1 -1
- package/modules/webcomponent.esm.min.js +2 -2
- package/modules/webcomponent.min.cjs +2 -2
- package/modules/webcomponent.min.js +2 -2
- package/package.json +1 -1
package/modules/form.esm.min.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.101.
|
|
2
|
+
* Lattice Grid 1.101.4, form module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
6
|
-
var
|
|
6
|
+
var Gt=Object.create(null),Kt=Object.create(null);function Ne(S,q){Gt[S]=q}function Zt(S){var q=Kt[S];if(q)return q;var e=Object.create(null);Kt[S]=e;var V=Gt[S];if(!V)throw new Error("[lattice] missing module: "+S);return V(e,Zt),e}Ne("packages/modules/form/styles.js",function(S,q){"use strict";Object.defineProperty(S,"NS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"NEVER_STACK_COLS_CONTAINER",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"css",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"injectStyles",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"injectColsBreakpoint",{enumerable:!0,get:function(){return P}});const e="lat-form",V="lat-cols-never",$="data-lattice-form-styles";function ee(){return`
|
|
7
|
+
/* The shared top-level layer host (BACKLOG-0002291): select, combo and the
|
|
8
|
+
date picker each reparent their own popup in here while it is open, so an
|
|
9
|
+
ancestor's \`overflow: hidden\` or fixed height never clips it. One host per
|
|
10
|
+
document; it carries no box of its own, each popup positions itself
|
|
11
|
+
\`fixed\` against its field. */
|
|
12
|
+
.lat-form__layer-host{ position:static; }
|
|
13
|
+
/* A popup raised into the browser's top layer carries the popover attribute while open; the
|
|
14
|
+
browser's own popover defaults (inset, margin, padding, border, colours) must not override
|
|
15
|
+
the control's layout, so they are reset here at the lowest specificity and each popup's own
|
|
16
|
+
rules below still win. */
|
|
17
|
+
:where(.lat-form__layer-host) > [popover]{ inset:auto; margin:0; padding:0; border:0; overflow:visible; color:inherit; background:transparent; }
|
|
7
18
|
.${e}{
|
|
8
19
|
--lattice-density-scale:1;
|
|
9
20
|
--lattice-presentation-scale:1;
|
|
@@ -66,7 +77,10 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
66
77
|
and __cols runs side by side (the top-level form and the fieldset body add
|
|
67
78
|
the same class). __cols shares the width among its children by default and
|
|
68
79
|
stacks them into one column once its own width drops below the breakpoint
|
|
69
|
-
(BACKLOG-0002196)
|
|
80
|
+
(BACKLOG-0002196); a colsBreakpoint of 0 or false renames the container to a
|
|
81
|
+
name with no matching @container rule, so it never stacks. A fullWidth button
|
|
82
|
+
fills its own column via min-width:0 here plus the button's own data-full
|
|
83
|
+
width, so two fullWidth buttons keep sharing the row. */
|
|
70
84
|
.${e}__rows{
|
|
71
85
|
display:flex; flex-direction:column; box-sizing:border-box; min-width:0; min-height:0;
|
|
72
86
|
gap:var(--lattice-form-item-gap); align-items:stretch;
|
|
@@ -145,6 +159,9 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
145
159
|
.${e}__control textarea,
|
|
146
160
|
.${e}__control select,
|
|
147
161
|
.${e}__control button{
|
|
162
|
+
/* The whole-control rule: a button that IS the control (a button item). A control's own part
|
|
163
|
+
buttons (a colour swatch, a picker toggle) are styled by their own two-class rules, which
|
|
164
|
+
must outrank this 0,1,1 selector (BACKLOG-0002338). */
|
|
148
165
|
box-sizing:border-box; width:100%; height:var(--lattice-row-height); min-height:0;
|
|
149
166
|
padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.5);
|
|
150
167
|
border:var(--lattice-border-width) solid var(--lattice-border-color);
|
|
@@ -295,6 +312,10 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
295
312
|
box-shadow:0 6px 20px rgba(0,0,0,.16); color:var(--lattice-foreground);
|
|
296
313
|
}
|
|
297
314
|
.lat-combo__popup[hidden]{ display:none; }
|
|
315
|
+
/* While open the popup lives in the shared layer host, positioned \`fixed\`
|
|
316
|
+
against the control (BACKLOG-0002291): the JS sets \`top\`/\`left\`/\`width\`
|
|
317
|
+
inline, this only supplies the flipped side's class. */
|
|
318
|
+
.lat-combo__popup--above{ top:auto; bottom:100%; margin-top:0; margin-bottom:2px; }
|
|
298
319
|
.lat-combo__list{
|
|
299
320
|
position:relative; box-sizing:border-box; max-height:calc(var(--lattice-row-height) * 8);
|
|
300
321
|
overflow-y:auto; overflow-x:hidden;
|
|
@@ -663,6 +684,10 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
663
684
|
box-shadow:0 4px 12px color-mix(in srgb, var(--lattice-foreground) 20%, transparent);
|
|
664
685
|
}
|
|
665
686
|
.${e}__datepicker-popup[hidden]{ display:none; }
|
|
687
|
+
/* While open the popup lives in the shared layer host, positioned \`fixed\`
|
|
688
|
+
against the picker (BACKLOG-0002291): the JS sets \`top\`/\`left\`/\`min-width\`
|
|
689
|
+
inline, this only supplies the flipped side's class. */
|
|
690
|
+
.${e}__datepicker-popup--above{ top:auto; bottom:calc(100% + var(--lattice-space) / 2); }
|
|
666
691
|
.${e}__datepicker-head{ display:flex; flex-direction:row; align-items:center; gap:calc(var(--lattice-space) / 2); }
|
|
667
692
|
.${e}__datepicker .${e}__datepicker-nav{ flex:0 0 auto; width:var(--lattice-row-height); cursor:pointer; padding:0; }
|
|
668
693
|
.${e}__datepicker-title{ flex:1 1 auto; text-align:center; font-weight:600; }
|
|
@@ -991,26 +1016,26 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
991
1016
|
.${e}__color .${e}__color-input:focus{ outline:none; }
|
|
992
1017
|
.${e}__color .${e}__color-input:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
|
|
993
1018
|
.${e}__color .${e}__color-input[readonly]{ color:var(--lattice-foreground-muted); }
|
|
994
|
-
.${e}__color-swatch{
|
|
1019
|
+
.${e}__color .${e}__color-swatch{
|
|
995
1020
|
flex:0 0 auto; box-sizing:border-box; padding:0; cursor:pointer;
|
|
996
1021
|
width:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
997
1022
|
height:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
998
1023
|
border:var(--lattice-border-width) solid var(--lattice-border-color); border-radius:calc(var(--lattice-radius) / 1.5);
|
|
999
1024
|
background:transparent;
|
|
1000
1025
|
}
|
|
1001
|
-
.${e}__color-swatch--empty{
|
|
1026
|
+
.${e}__color .${e}__color-swatch--empty{
|
|
1002
1027
|
background-image:linear-gradient(135deg, transparent 46%, var(--lattice-border-color) 48%, var(--lattice-border-color) 52%, transparent 54%);
|
|
1003
1028
|
}
|
|
1004
|
-
.${e}__color-swatch:focus-visible, .${e}__color-toggle:focus-visible, .${e}__color-clear:focus-visible{
|
|
1029
|
+
.${e}__color .${e}__color-swatch:focus-visible, .${e}__color .${e}__color-toggle:focus-visible, .${e}__color .${e}__color-clear:focus-visible{
|
|
1005
1030
|
outline:2px solid var(--lattice-focus-ring); outline-offset:1px;
|
|
1006
1031
|
}
|
|
1007
|
-
.${e}__color-toggle, .${e}__color-clear{
|
|
1032
|
+
.${e}__color .${e}__color-toggle, .${e}__color .${e}__color-clear{
|
|
1008
1033
|
flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
|
|
1009
1034
|
width:calc(var(--lattice-control-size) * var(--lattice-scale)); height:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1010
1035
|
padding:0; margin:0; border:0; background:transparent; color:var(--lattice-foreground-muted); cursor:pointer;
|
|
1011
1036
|
}
|
|
1012
|
-
.${e}__color-toggle:hover, .${e}__color-clear:hover{ color:var(--lattice-foreground); }
|
|
1013
|
-
.${e}__color-toggle:disabled, .${e}__color-clear:disabled, .${e}__color-swatch:disabled{ opacity:.5; cursor:not-allowed; }
|
|
1037
|
+
.${e}__color .${e}__color-toggle:hover, .${e}__color .${e}__color-clear:hover{ color:var(--lattice-foreground); }
|
|
1038
|
+
.${e}__color .${e}__color-toggle:disabled, .${e}__color .${e}__color-clear:disabled, .${e}__color .${e}__color-swatch:disabled{ opacity:.5; cursor:not-allowed; }
|
|
1014
1039
|
.${e}__color-popover{
|
|
1015
1040
|
position:absolute; top:100%; left:0; z-index:10; margin-top:2px; box-sizing:border-box;
|
|
1016
1041
|
padding:calc(var(--lattice-space) * 1.25); min-width:220px;
|
|
@@ -1080,13 +1105,13 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1080
1105
|
font:inherit; cursor:pointer; padding:0 calc(var(--lattice-space) * 1.25);
|
|
1081
1106
|
}
|
|
1082
1107
|
.${e}__color-select{ margin-left:auto; background:var(--lattice-accent); border-color:var(--lattice-accent); color:#fff; }
|
|
1083
|
-
`.trim()}function re(L){const C=L&&L.documentElement;if(!C||C.getAttribute(U))return;C.setAttribute(U,"1");const A=L.createElement("style");A.textContent=O(),(L.head||L.body||C).appendChild(A)}function g(L,C){const A=`lat-cols-bp-${String(C).replace(/[^0-9]/g,"")}`,H=`data-lattice-cols-breakpoint-${A}`,T=L&&L.documentElement;if(T&&!T.querySelector(`style[${H}]`)){const v=L.createElement("style");v.setAttribute(H,"1"),v.textContent=`@container ${A} (max-width:${C}px){.${e}__cols > *{flex:1 1 100%}}`,(L.head||L.body||T).appendChild(v)}return A}}),je("packages/modules/form/controls/registry.js",function(M,X){"use strict";Object.defineProperty(M,"registerControl",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"resolveControl",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"controlTypes",{enumerable:!0,get:function(){return re}});const e=new Map;function U(g,L){e.set(g,L)}function O(g){return e.get(g)||null}function re(){return[...e.keys()]}}),je("packages/modules/form/validation.js",function(M,X){"use strict";Object.defineProperty(M,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"BUILTIN_RULES",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"isEmpty",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"resolveValidationMode",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"validateValue",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"normalizeHookResult",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["change","blur","submit"]),U=Object.freeze(["email","number","integer","url"]),O=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function re(f){return f==null||f===""||f===!1||Array.isArray(f)&&f.length===0}function g(f){return e.includes(f)?f:"submit"}function L(f){return Object.prototype.toString.call(f)==="[object RegExp]"}function C(f,u){if(f==="email")return typeof u=="string"&&O.test(u);if(f==="number")return Number.isFinite(Number(u));if(f==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(f==="url"){if(typeof u!="string")return!1;try{const h=new URL(u);return h.protocol==="http:"||h.protocol==="https:"}catch{return!1}}return!0}function A(f,u){return typeof f.errorMessage=="string"&&f.errorMessage!==""?f.errorMessage:u}function H(f,u,h,x){let t;try{t=f(u,h)}catch{return{code:"custom",message:A(h,x("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:A(h,x("form.validation.custom"))}:{code:"custom",message:String(t)}}function T(f,u,h,x){if((f.required===!0||x===!0)&&re(u))return{code:"required",message:A(f,h("form.validation.required"))};const t=f.validation;return t==null?null:typeof t=="function"?H(t,u,f,h):L(t)?re(u)||t.test(String(u))?null:{code:"pattern",message:A(f,h("form.validation.pattern"))}:typeof t=="string"&&U.includes(t)?re(u)||C(t,u)?null:{code:t,message:A(f,h(`form.validation.${t}`))}:null}function v(f,u,h){return f==null||f===!0?null:f===!1?{code:"custom",message:A(u,h("form.validation.custom"))}:typeof f=="string"?{code:"custom",message:f}:typeof f=="object"?{code:f.code||"custom",message:f.message!=null?String(f.message):A(u,h("form.validation.custom"))}:null}}),je("packages/modules/form/model.js",function(M,X){"use strict";Object.defineProperty(M,"isEmpty",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"DENSITIES",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"CONTROL_TYPES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"cssSize",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"resolveLabelPosition",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"resolveDensity",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"resolveColsBreakpoint",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"axisOf",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"normalizeItem",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"normalizeBlock",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"resolveConfig",{enumerable:!0,get:function(){return h}});const U=X("packages/modules/form/validation.js").resolveValidationMode;function O(t){return t!==null&&typeof t=="object"}function re(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const g=Object.freeze(["compact","standard","comfortable"]),L=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial"]);function C(t){return typeof t=="number"?`${t}px`:String(t)}function A(t){return t==="left"||t==="hidden"?t:"top"}function H(t){return g.includes(t)?t:"standard"}function T(t){return typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function v(t){return Array.isArray(t.items)&&t.items.length?"items":Array.isArray(t.rows)&&t.rows.length?"rows":Array.isArray(t.cols)&&t.cols.length?"cols":null}function f(t,n){const a=t.text!=null&&t.type===void 0,m=a?"text":t.type!=null&&t.type!==""?String(t.type):"input",E=a?t.text:t.value,_={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:m,label:t.label,labelPosition:t.labelPosition==null?null:A(t.labelPosition),labelWidth:t.labelWidth,requiredHint:t.requiredHint,width:t.width,placeholder:t.placeholder,helpMessage:t.helpMessage,hidden:t.hidden===!0,disabled:t.disabled===!0,readOnly:t.readOnly===!0,tooltip:t.tooltip,lockIcon:t.lockIcon,addons:t.addons,value:E,subtype:t.subtype,step:t.step,min:t.min,max:t.max,rows:t.rows,options:t.options,mode:t.mode,locale:t.locale,timeZone:t.timeZone,css:t.css,visibleWhen:t.visibleWhen,readOnlyWhen:t.readOnlyWhen,requiredWhen:t.requiredWhen,required:t.required===!0,validation:t.validation,errorMessage:t.errorMessage,successMessage:t.successMessage,preMessage:t.preMessage,validationMode:U(t.validationMode),props:O(t.props)?Object.assign({},t.props):{},path:n};for(const c of Object.keys(t))!(c in _)&&c!=="text"&&c!=="value"&&c!=="type"&&(_.props[c]=t[c]);return _}function u(t,n){if(!O(t))return null;if(t.fieldset!=null){const m=O(t.fieldset)?t.fieldset:t,E=O(t.fieldset)?t.fieldset.legend:t.fieldset,_=v(m),c=_==="items"?m.items:_==="rows"?m.rows:_==="cols"?m.cols:[];return{kind:"fieldset",legend:E==null?null:String(E),axis:_,spacing:m.spacing==null?null:C(m.spacing),labelPosition:m.labelPosition==null?null:A(m.labelPosition),labelWidth:m.labelWidth,blocks:c.filter(O).map((S,o)=>u(S,`${n}/${o}`)).filter(Boolean),css:m.css,hidden:m.hidden===!0}}if(t.container!=null){const m=O(t.container)?t.container:t,E=v(m),_=E==="items"?m.items:E==="rows"?m.rows:E==="cols"?m.cols:[];return{kind:"container",axis:E,spacing:m.spacing==null?null:C(m.spacing),labelPosition:m.labelPosition==null?null:A(m.labelPosition),labelWidth:m.labelWidth,blocks:_.filter(O).map((c,S)=>u(c,`${n}/${S}`)).filter(Boolean),css:m.css,hidden:m.hidden===!0}}if(t.panel!=null){const m=O(t.panel)?t.panel:{},E=O(t.panel)&&v(t.panel)?t.panel:t,_=v(E),c=_==="items"?E.items:_==="rows"?E.rows:_==="cols"?E.cols:[],S=Array.isArray(m.actions)?m.actions.filter(O).map(o=>({icon:o.icon,ariaLabel:o.ariaLabel!=null&&o.ariaLabel!==""?String(o.ariaLabel):null,onClick:typeof o.onClick=="function"?o.onClick:null})):[];return{kind:"panel",title:m.title!=null&&m.title!==""?String(m.title):null,subtitle:m.subtitle!=null&&m.subtitle!==""?String(m.subtitle):null,actions:S,collapsible:m.collapsible===!0,axis:_,spacing:E.spacing==null?null:C(E.spacing),labelPosition:E.labelPosition==null?null:A(E.labelPosition),labelWidth:E.labelWidth,blocks:c.filter(O).map((o,d)=>u(o,`${n}/${d}`)).filter(Boolean),css:E.css,hidden:E.hidden===!0}}const a=v(t);if(a){const m=a==="items"?t.items:a==="rows"?t.rows:t.cols;return{kind:"container",axis:a,spacing:t.spacing==null?null:C(t.spacing),labelPosition:t.labelPosition==null?null:A(t.labelPosition),labelWidth:t.labelWidth,blocks:m.filter(O).map((E,_)=>u(E,`${n}/${_}`)).filter(Boolean),css:t.css,hidden:t.hidden===!0}}return t.spacer===!0||t.type==="spacer"?{kind:"spacer",css:t.css,hidden:t.hidden===!0}:t.separator===!0||t.type==="separator"?{kind:"separator",label:t.label!=null&&t.label!==""?String(t.label):null,css:t.css,hidden:t.hidden===!0}:f(t,n)}function h(t={}){const n=O(t)?t:{},a=Array.isArray(n.steps)?n.steps.filter(O).map((o,d)=>x(o,d)).filter(Boolean):[],m=a.length>0,E=!m&&Array.isArray(n.rows)&&n.rows.length,_=!m&&!E&&Array.isArray(n.cols)&&n.cols.length,c=E||m?"rows":"cols",S=m?[]:E?n.rows:_?n.cols:[];return{axis:c,density:H(n.density),css:n.css,messages:n.messages,colsBreakpoint:T(n.colsBreakpoint),spacing:n.spacing==null?null:C(n.spacing),labelGap:n.labelGap==null?null:C(n.labelGap),labelPosition:n.labelPosition==null?null:A(n.labelPosition),labelWidth:n.labelWidth,requiredHint:n.requiredHint,blocks:S.filter(O).map((o,d)=>u(o,String(d))).filter(Boolean),steps:a,stepOrientation:n.stepOrientation==="vertical"?"vertical":"horizontal"}}function x(t,n){const m=(Array.isArray(t.rows)?t.rows:[]).filter(O).map((E,_)=>u(E,`step${n}/${_}`)).filter(Boolean);return m.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${n}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:m,css:t.css}}}),je("packages/modules/form/state.js",function(M,X){"use strict";Object.defineProperty(M,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"guardBooleanInput",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"syncRootAria",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"syncRecordState",{enumerable:!0,get:function(){return re}});function e(g,L,C){g.disabled=L===!0,g.__latReadOnly=C===!0,C===!0?g.setAttribute("aria-readonly","true"):g.removeAttribute("aria-readonly")}function U(g){const L=()=>g.__latReadOnly===!0,C=v=>{L()&&v.preventDefault()},A=v=>{L()&&(v.preventDefault(),v.stopPropagation())},H=v=>{L()&&(v.key===" "||v.key==="Enter")&&v.preventDefault()},T=v=>{L()&&v.key===" "&&v.preventDefault()};g.addEventListener("pointerdown",C),g.addEventListener("click",A),g.addEventListener("keydown",H),g.addEventListener("keyup",T)}function O(g,L,C){L?g.setAttribute("aria-disabled","true"):g.removeAttribute("aria-disabled"),C?g.setAttribute("aria-readonly","true"):g.removeAttribute("aria-readonly")}function re(g){const L=g.item,C=L.disabled===!0,A=L.readOnly===!0||g.ruleReadOnly===!0;g.controlWrap&&(g.controlWrap.setAttribute("data-disabled",C?"true":"false"),g.controlWrap.setAttribute("data-readonly",A?"true":"false")),g.def.state(g.control,{...L,readOnly:A}),typeof g.syncLock=="function"&&g.syncLock(),typeof g.syncAddons=="function"&&g.syncAddons()}}),je("packages/modules/form/group-rules.js",function(M,X){"use strict";Object.defineProperty(M,"attachRuleResolver",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"detachRuleResolver",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"ruleResolverFor",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"makeRuleResolver",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"reapplyMembers",{enumerable:!0,get:function(){return L}});const e=new WeakMap;function U(C,A){e.set(C,A)}function O(C){e.delete(C)}function re(C){return e.get(C)}function g(C){const{owners:A,byId:H,warnOnce:T}=C;return function(f,u){if(f==null||typeof f!="object")return;const h=f.name;if(f.form!=null){const t=H.get(f.form);if(!t){T(`form.group.unknown-member:${String(f.form)}`,`form group: a rule pins the member "${f.form}", but no member has that id; the rule reads an empty value.`);return}return h!=null?t.form.getValue()[h]:void 0}if(h==null)return;if(Object.prototype.hasOwnProperty.call(u,h))return u[h];const x=A.get(String(h));if(x)return x.form.getValue()[h]}}function L(C){for(const A of C)A.form&&typeof A.form.__reapplyRules=="function"&&A.form.__reapplyRules()}}),je("packages/modules/form/rules.js",function(M,X){"use strict";Object.defineProperty(M,"evalRule",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"applyRules",{enumerable:!0,get:function(){return A}});const U=X("packages/modules/form/model.js").isEmpty,re=X("packages/modules/form/state.js").syncRecordState,L=X("packages/modules/form/group-rules.js").ruleResolverFor;function C(T,v,f){if(T==null)return null;if(typeof T=="function")return!!T(v);if(typeof T=="boolean")return T;if(typeof T=="object"){const u=f?f(T,v):T.name!=null?v[T.name]:void 0;if(typeof T.fn=="function")return!!T.fn(u,v);let h=!0,x=!1;return Object.prototype.hasOwnProperty.call(T,"equals")&&(x=!0,h=h&&u===T.equals),Object.prototype.hasOwnProperty.call(T,"in")&&(x=!0,h=h&&Array.isArray(T.in)&&T.in.includes(u)),Object.prototype.hasOwnProperty.call(T,"empty")&&(x=!0,h=h&&U(u)===!!T.empty),x?h:!1}return!1}function A(T){const v={};for(const u of T.order)u.item.name!=null&&(v[u.item.name]=u.value);const f=T.form?L(T.form):void 0;for(const u of T.order){const h=u.item;u.ruleHidden=C(h.visibleWhen,v,f)===!1,u.ruleReadOnly=C(h.readOnlyWhen,v,f)===!0,u.ruleRequired=C(h.requiredWhen,v,f)===!0,u.el.hidden=u.hidden||u.ruleHidden,re(u);const x=h.required===!0||u.ruleRequired,t=u.labelEl!=null&&u.labelPosition!=="hidden",n=u.placeholderEl||u.control;x?n.setAttribute("aria-required","true"):n.removeAttribute("aria-required"),x&&t?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),H(u,x,t,a=>T.t(a))}}function H(T,v,f,u){const h=T.placeholderEl;if(!h)return;const x=T.placeholderBase;if(v&&!f&&x!==""){const t=T.requiredHint,n=t===!1?"":typeof t=="string"?u(t):" *";h.placeholder=x+n}else h.placeholder=x}}),je("packages/modules/form/stepper.js",function(M,X){"use strict";Object.defineProperty(M,"createStepper",{enumerable:!0,get:function(){return re}});const U=X("packages/modules/form/styles.js").NS;function O(g,L,C){return Math.min(C,Math.max(L,g))}function re(g,L){const C=L.doc,A=L.steps||[],H=L.t||(_=>_),T=L.orientation==="vertical"?"vertical":"horizontal";let v=O(Number(L.active)||0,0,Math.max(0,A.length-1));const f=[];g.className=`${U}__stepper ${U}__stepper--${T}`,g.setAttribute("data-orientation",T),g.setAttribute("role","navigation"),g.setAttribute("aria-label",H("form.steps"));const u=C.createElement("ol");u.className=`${U}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",T),g.appendChild(u);let h=[];const x=_=>f[_]?f[_]:_<v?"complete":_===v?"active":"pending",t=_=>_<=v+1,n=()=>{u.textContent="",h=A.map((_,c)=>{const S=x(c),o=C.createElement("li");o.className=`${U}__stepper-item is-${S}`+(c===v?" is-active":"")+(t(c)?"":" is-locked");const d=C.createElement("button");d.type="button",d.className=`${U}__stepper-step`,d.setAttribute("role","tab"),d.setAttribute("aria-selected",c===v?"true":"false"),c===v&&d.setAttribute("aria-current","step"),d.tabIndex=c===v?0:-1,d.setAttribute("aria-disabled",t(c)?"false":"true");const l=C.createElement("span");l.className=`${U}__stepper-marker`,l.setAttribute("aria-hidden","true"),l.textContent=S==="complete"?"✓":S==="error"?"!":String(c+1),d.appendChild(l);const s=C.createElement("span");return s.className=`${U}__stepper-label`,s.textContent=_.label!=null&&_.label!==""?_.label:`${H("form.step")} ${c+1}`,d.appendChild(s),o.appendChild(d),u.appendChild(o),d})},a=_=>{typeof L.onGoTo=="function"&&t(_)&&L.onGoTo(_)},m=_=>{const c=_.target&&_.target.closest?_.target.closest(`.${U}__stepper-step`):null;if(!c||!u.contains(c))return;const S=h.indexOf(c);S>=0&&a(S)},E=_=>{const c=_.target&&_.target.closest?_.target.closest(`.${U}__stepper-step`):null;if(!c||!u.contains(c))return;const S=A.length;let o=h.indexOf(c);if(o<0)return;if(_.key==="ArrowRight"||_.key==="ArrowDown")o=(o+1)%S;else if(_.key==="ArrowLeft"||_.key==="ArrowUp")o=(o-1+S)%S;else if(_.key==="Home")o=0;else if(_.key==="End")o=S-1;else if(_.key==="Enter"||_.key===" "){_.preventDefault(),a(o);return}else return;_.preventDefault();const d=h[o];d&&d.focus()};return u.addEventListener("click",m),u.addEventListener("keydown",E),n(),{el:g,setActive(_){v=O(Number(_)||0,0,Math.max(0,A.length-1)),n()},setStatus(_,c){f[_]=c,n()},statusOf:x}}}),je("packages/core/src/internal/icon-builtins.js",function(M,X){"use strict";Object.defineProperty(M,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"normaliseIcon",{enumerable:!0,get:function(){return U}});const e={chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},dash:{viewBox:"0 0 16 16",paths:["M4 8h8"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},minus:{viewBox:"0 0 16 16",paths:["M3.5 8h9"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},calendar:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3z","M3 5.5h10","M5.5 1.5v2","M10.5 1.5v2"],paint:"stroke"},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},filter:{viewBox:"0 0 16 16",paths:["M2 3h12l-4.5 5.2V13L6.5 11.5V8.2Z"]},pause:{viewBox:"0 0 16 16",paths:["M4.5 3h2.5v10H4.5zM9 3h2.5v10H9z"]},play:{viewBox:"0 0 16 16",paths:["M4.5 3l8 5-8 5z"]},chart:{viewBox:"0 0 16 16",paths:["M2.5 13.5h11","M4.5 13.5v-4","M8 13.5v-8","M11.5 13.5v-6"],paint:"stroke"},palette:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 0 0 0 13c.7 0 1.2-.5 1.2-1.1 0-.3-.1-.6-.3-.8a1.1 1.1 0 0 1 .8-1.9h1.4A3.4 3.4 0 0 0 14.5 7c0-3-2.9-5.5-6.5-5.5Z","M4.6 7.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM6.7 4.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM9.9 4.7a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM11.9 6.9a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"]},undo:{viewBox:"0 0 16 16",paths:["M3 8h6.5a3.25 3.25 0 0 1 0 6.5H6M3 8l3-3M3 8l3 3"],paint:"stroke"},redo:{viewBox:"0 0 16 16",paths:["M13 8H6.5a3.25 3.25 0 0 0 0 6.5H10M13 8l-3-3M13 8l-3 3"],paint:"stroke"},columns:{viewBox:"0 0 16 16",paths:["M2.5 2.5h11v11h-11zM6.5 2.5v11M10 2.5v11"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},restore:{viewBox:"0 0 16 16",paths:["M3 8a5 5 0 1 0 1.6-3.7M3 3v2.8h2.8"],paint:"stroke"},spreadsheet:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3zM3 6h10M3 9.5h10M6.5 6v7.5"],paint:"stroke"},print:{viewBox:"0 0 16 16",paths:["M4.5 6V2.5h7V6M4.5 11.5h-2V6h11v5.5h-2M4.5 9.5h7v4h-7z"],paint:"stroke"},maximise:{viewBox:"0 0 16 16",paths:["M2.5 6V2.5H6M10 2.5h3.5V6M13.5 10v3.5H10M6 13.5H2.5V10"],paint:"stroke"},minimise:{viewBox:"0 0 16 16",paths:["M6 2.5V6H2.5M13.5 6H10V2.5M10 13.5V10h3.5M2.5 10H6v3.5"],paint:"stroke"},views:{viewBox:"0 0 16 16",paths:["M4 2.5h8v11L8 11l-4 2.5z"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},share:{viewBox:"0 0 16 16",paths:["M11.5 5.5a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M4.5 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M11.5 14.1a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M6.1 7.1l3.8-1.9M6.1 8.9l3.8 1.9"],paint:"stroke"},pin:{viewBox:"0 0 16 16",paths:["M8 2v6M5 8h6l1 2.5H4zM8 10.5V14"],paint:"stroke"},sortAsc:{viewBox:"0 0 16 16",paths:["M8 3.5 12 8H4Z"]},sortDesc:{viewBox:"0 0 16 16",paths:["M8 12.5 4 8h8Z"]},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"},drag:{viewBox:"0 0 16 16",paths:["M6 3.5h1.5V5H6Zm3 0h1.5V5H9ZM6 7.25h1.5v1.5H6Zm3 0h1.5v1.5H9ZM6 11h1.5v1.5H6Zm3 0h1.5v1.5H9Z"]},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},circleFilled:{viewBox:"0 0 16 16",paths:["M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]},square:{viewBox:"0 0 16 16",paths:["M3 3h10v10H3Z"]},bolt:{viewBox:"0 0 16 16",paths:["M9.5 1.5 3.5 9h3.2l-.7 5.5L12.5 7H9.3Z"]},flag:{viewBox:"0 0 16 16",paths:["M4 1.5h1.5v13H4Zm1.5 1h7.5l-1.6 2.6L13 7.7H5.5Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},highlight:{viewBox:"0 0 16 16",paths:["M4 11 10 5l2 2-6 6H4z","M3 14.5h10"],paint:"stroke"},eraser:{viewBox:"0 0 16 16",paths:["M3 11 9 5 13 9 7 15Z","M5 13 9 9"],paint:"stroke"},thumbUp:{viewBox:"0 0 16 16",paths:["M5.5 6.8 8.6 1.5a1.6 1.6 0 0 1 1.5 2.1L9.4 6h3.4a1.4 1.4 0 0 1 1.35 1.78l-1.3 4.6A1.9 1.9 0 0 1 11 13.8H5.5ZM4 6.5H1.5v7.3H4Z"]},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},copy:{viewBox:"0 0 16 16",paths:["M5.5 2.5h8v8M2.5 5.5h8v8h-8Z"],paint:"stroke"},present:{viewBox:"0 0 16 16",paths:["M2 2.5h12v8H2Z","M8 10.5v3","M6 13.5h4"],paint:"stroke"},cabinet:{viewBox:"0 0 16 16",paths:["M3 2h10v12H3ZM5 4v4h2.5V4ZM8.5 4v4H11V4ZM5 9.5V11h6V9.5Z"]},splice:{viewBox:"0 0 16 16",paths:["M8 4.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM8 6.8a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4ZM1.5 7.2h3v1.6h-3ZM11.5 7.2h3v1.6h-3Z"]},exchange:{viewBox:"0 0 16 16",paths:["M8 1.5 14.5 6v1H1.5V6ZM3 8h2v5H3ZM7 8h2v5H7ZM11 8h2v5h-2ZM1.5 13.5h13V15h-13Z"]},pole:{viewBox:"0 0 16 16",paths:["M7.2 1.5h1.6V15H7.2ZM3 3.5h10V5H3ZM4.5 7h7v1.4h-7Z"]},chamber:{viewBox:"0 0 16 16",paths:["M2.5 3.5h11v9h-11ZM4.5 5.5v5h7v-5ZM6 7h4v1.5H6Z"]},premises:{viewBox:"0 0 16 16",paths:["M8 1.8 14.5 7.5h-2V14h-9V7.5h-2ZM6.8 10.4V14h2.4v-3.6Z"]},fault:{viewBox:"0 0 16 16",paths:["M5.2 1.5h5.6L14.5 5.2v5.6L10.8 14.5H5.2L1.5 10.8V5.2ZM5.4 9.4 6.6 10.6 8 9.2 9.4 10.6 10.6 9.4 9.2 8 10.6 6.6 9.4 5.4 8 6.8 6.6 5.4 5.4 6.6 6.8 8Z"]},user:{viewBox:"0 0 16 16",paths:["M8 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z","M8 9c3 0 5.5 1.5 5.5 3.5V14h-11v-1.5C2.5 10.5 5 9 8 9Z"]},blank:{viewBox:"0 0 16 16",paths:[""]}};function U(O){return typeof O=="string"?{viewBox:"0 0 16 16",paths:[O],paint:"fill"}:Array.isArray(O)?{viewBox:"0 0 16 16",paths:O.slice(),paint:"fill"}:{viewBox:O&&O.viewBox||"0 0 16 16",paths:O&&Array.isArray(O.paths)?O.paths.slice():O&&O.path?[O.path]:[],paint:O&&O.paint==="stroke"?"stroke":"fill"}}}),je("packages/modules/form/controls/field-icon.js",function(M,X){"use strict";Object.defineProperty(M,"fieldIconStylesheet",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"injectFieldIconStyles",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"makeFieldIcon",{enumerable:!0,get:function(){return C}});const U=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,O="http://www.w3.org/2000/svg",re="data-lattice-form-field-icon-styles";function g(){return`
|
|
1108
|
+
`.trim()}function h(y){const A=y&&y.documentElement;if(!A||A.getAttribute($))return;A.setAttribute($,"1");const B=y.createElement("style");B.textContent=ee(),(y.head||y.body||A).appendChild(B)}function P(y,A){const B=`lat-cols-bp-${String(A).replace(/[^0-9]/g,"")}`,O=`data-lattice-cols-breakpoint-${B}`,v=y&&y.documentElement;if(v&&!v.querySelector(`style[${O}]`)){const d=y.createElement("style");d.setAttribute(O,"1"),d.textContent=`@container ${B} (max-width:${A}px){.${e}__cols > *{flex:1 1 100%}}`,(y.head||y.body||v).appendChild(d)}return B}}),Ne("packages/modules/form/controls/registry.js",function(S,q){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"resolveControl",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"controlTypes",{enumerable:!0,get:function(){return ee}});const e=new Map;function V(h,P){e.set(h,P)}function $(h){return e.get(h)||null}function ee(){return[...e.keys()]}}),Ne("packages/modules/form/validation.js",function(S,q){"use strict";Object.defineProperty(S,"VALIDATION_MODES",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"BUILTIN_RULES",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"resolveValidationMode",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"validateValue",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"normalizeHookResult",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["change","blur","submit"]),V=Object.freeze(["email","number","integer","url"]),$=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function ee(d){return d==null||d===""||d===!1||Array.isArray(d)&&d.length===0}function h(d){return e.includes(d)?d:"submit"}function P(d){return Object.prototype.toString.call(d)==="[object RegExp]"}function y(d,u){if(d==="email")return typeof u=="string"&&$.test(u);if(d==="number")return Number.isFinite(Number(u));if(d==="integer")return typeof u=="number"?Number.isInteger(u):typeof u=="string"&&/^-?\d+$/.test(u);if(d==="url"){if(typeof u!="string")return!1;try{const _=new URL(u);return _.protocol==="http:"||_.protocol==="https:"}catch{return!1}}return!0}function A(d,u){return typeof d.errorMessage=="string"&&d.errorMessage!==""?d.errorMessage:u}function B(d,u,_,w){let t;try{t=d(u,_)}catch{return{code:"custom",message:A(_,w("form.validation.custom"))}}return t===!0||t===void 0||t===null?null:t===!1?{code:"custom",message:A(_,w("form.validation.custom"))}:{code:"custom",message:String(t)}}function O(d,u,_,w){if((d.required===!0||w===!0)&&ee(u))return{code:"required",message:A(d,_("form.validation.required"))};const t=d.validation;return t==null?null:typeof t=="function"?B(t,u,d,_):P(t)?ee(u)||t.test(String(u))?null:{code:"pattern",message:A(d,_("form.validation.pattern"))}:typeof t=="string"&&V.includes(t)?ee(u)||y(t,u)?null:{code:t,message:A(d,_(`form.validation.${t}`))}:null}function v(d,u,_){return d==null||d===!0?null:d===!1?{code:"custom",message:A(u,_("form.validation.custom"))}:typeof d=="string"?{code:"custom",message:d}:typeof d=="object"?{code:d.code||"custom",message:d.message!=null?String(d.message):A(u,_("form.validation.custom"))}:null}}),Ne("packages/modules/form/model.js",function(S,q){"use strict";Object.defineProperty(S,"isEmpty",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"DENSITIES",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"CONTROL_TYPES",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"cssSize",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"resolveLabelPosition",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"resolveDensity",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"resolveColsBreakpoint",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"axisOf",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"normalizeItem",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"normalizeBlock",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"resolveConfig",{enumerable:!0,get:function(){return _}});const V=q("packages/modules/form/validation.js").resolveValidationMode;function $(t){return t!==null&&typeof t=="object"}function ee(t){return!!(t==null||t===""||t===!1||Array.isArray(t)&&t.length===0)}const h=Object.freeze(["compact","standard","comfortable"]),P=Object.freeze(["input","number","textarea","checkbox","button","text","combo","select","radiogroup","checkboxgroup","toggle","datepicker","file","richtext","rating","stage","chips","otp","color","speeddial"]);function y(t){return typeof t=="number"?`${t}px`:String(t)}function A(t){return t==="left"||t==="hidden"?t:"top"}function B(t){return h.includes(t)?t:"standard"}function O(t){return t===!1||t===0?!1:typeof t=="number"&&Number.isFinite(t)&&t>0?t:480}function v(t){return Array.isArray(t.items)&&t.items.length?"items":Array.isArray(t.rows)&&t.rows.length?"rows":Array.isArray(t.cols)&&t.cols.length?"cols":null}function d(t,o){const l=t.text!=null&&t.type===void 0,b=l?"text":t.type!=null&&t.type!==""?String(t.type):"input",p=l?t.text:t.value,m={kind:"item",name:t.name!=null&&t.name!==""?String(t.name):null,type:b,label:t.label,labelPosition:t.labelPosition==null?null:A(t.labelPosition),labelWidth:t.labelWidth,requiredHint:t.requiredHint,width:t.width,placeholder:t.placeholder,helpMessage:t.helpMessage,hidden:t.hidden===!0,disabled:t.disabled===!0,readOnly:t.readOnly===!0,tooltip:t.tooltip,lockIcon:t.lockIcon,addons:t.addons,value:p,subtype:t.subtype,step:t.step,min:t.min,max:t.max,rows:t.rows,options:t.options,mode:t.mode,locale:t.locale,timeZone:t.timeZone,css:t.css,visibleWhen:t.visibleWhen,readOnlyWhen:t.readOnlyWhen,requiredWhen:t.requiredWhen,required:t.required===!0,validation:t.validation,errorMessage:t.errorMessage,successMessage:t.successMessage,preMessage:t.preMessage,validationMode:V(t.validationMode),props:$(t.props)?Object.assign({},t.props):{},path:o};for(const f of Object.keys(t))!(f in m)&&f!=="text"&&f!=="value"&&f!=="type"&&(m.props[f]=t[f]);return m}function u(t,o){if(!$(t))return null;if(t.fieldset!=null){const b=$(t.fieldset)?t.fieldset:t,p=$(t.fieldset)?t.fieldset.legend:t.fieldset,m=v(b),f=m==="items"?b.items:m==="rows"?b.rows:m==="cols"?b.cols:[];return{kind:"fieldset",legend:p==null?null:String(p),axis:m,spacing:b.spacing==null?null:y(b.spacing),labelPosition:b.labelPosition==null?null:A(b.labelPosition),labelWidth:b.labelWidth,blocks:f.filter($).map((N,c)=>u(N,`${o}/${c}`)).filter(Boolean),css:b.css,hidden:b.hidden===!0}}if(t.container!=null){const b=$(t.container)?t.container:t,p=v(b),m=p==="items"?b.items:p==="rows"?b.rows:p==="cols"?b.cols:[];return{kind:"container",axis:p,spacing:b.spacing==null?null:y(b.spacing),labelPosition:b.labelPosition==null?null:A(b.labelPosition),labelWidth:b.labelWidth,blocks:m.filter($).map((f,N)=>u(f,`${o}/${N}`)).filter(Boolean),css:b.css,hidden:b.hidden===!0}}if(t.panel!=null){const b=$(t.panel)?t.panel:{},p=$(t.panel)&&v(t.panel)?t.panel:t,m=v(p),f=m==="items"?p.items:m==="rows"?p.rows:m==="cols"?p.cols:[],N=Array.isArray(b.actions)?b.actions.filter($).map(c=>({icon:c.icon,ariaLabel:c.ariaLabel!=null&&c.ariaLabel!==""?String(c.ariaLabel):null,onClick:typeof c.onClick=="function"?c.onClick:null})):[];return{kind:"panel",title:b.title!=null&&b.title!==""?String(b.title):null,subtitle:b.subtitle!=null&&b.subtitle!==""?String(b.subtitle):null,actions:N,collapsible:b.collapsible===!0,axis:m,spacing:p.spacing==null?null:y(p.spacing),labelPosition:p.labelPosition==null?null:A(p.labelPosition),labelWidth:p.labelWidth,blocks:f.filter($).map((c,i)=>u(c,`${o}/${i}`)).filter(Boolean),css:p.css,hidden:p.hidden===!0}}const l=v(t);if(l){const b=l==="items"?t.items:l==="rows"?t.rows:t.cols;return{kind:"container",axis:l,spacing:t.spacing==null?null:y(t.spacing),labelPosition:t.labelPosition==null?null:A(t.labelPosition),labelWidth:t.labelWidth,blocks:b.filter($).map((p,m)=>u(p,`${o}/${m}`)).filter(Boolean),css:t.css,hidden:t.hidden===!0}}return t.spacer===!0||t.type==="spacer"?{kind:"spacer",css:t.css,hidden:t.hidden===!0}:t.separator===!0||t.type==="separator"?{kind:"separator",label:t.label!=null&&t.label!==""?String(t.label):null,css:t.css,hidden:t.hidden===!0}:d(t,o)}function _(t={}){const o=$(t)?t:{},l=Array.isArray(o.steps)?o.steps.filter($).map((c,i)=>w(c,i)).filter(Boolean):[],b=l.length>0,p=!b&&Array.isArray(o.rows)&&o.rows.length,m=!b&&!p&&Array.isArray(o.cols)&&o.cols.length,f=p||b?"rows":"cols",N=b?[]:p?o.rows:m?o.cols:[];return{axis:f,density:B(o.density),css:o.css,messages:o.messages,colsBreakpoint:O(o.colsBreakpoint),spacing:o.spacing==null?null:y(o.spacing),labelGap:o.labelGap==null?null:y(o.labelGap),labelPosition:o.labelPosition==null?null:A(o.labelPosition),labelWidth:o.labelWidth,requiredHint:o.requiredHint,blocks:N.filter($).map((c,i)=>u(c,String(i))).filter(Boolean),steps:l,stepOrientation:o.stepOrientation==="vertical"?"vertical":"horizontal",validateSteps:o.validateSteps!==!1}}function w(t,o){const b=(Array.isArray(t.rows)?t.rows:[]).filter($).map((p,m)=>u(p,`step${o}/${m}`)).filter(Boolean);return b.length===0?null:{id:t.id!=null&&t.id!==""?String(t.id):`step-${o}`,label:t.label!=null?String(t.label):null,axis:"rows",blocks:b,css:t.css}}}),Ne("packages/modules/form/state.js",function(S,q){"use strict";Object.defineProperty(S,"applyBooleanInputState",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"guardBooleanInput",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"syncRootAria",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"syncRecordState",{enumerable:!0,get:function(){return ee}});function e(h,P,y){h.disabled=P===!0,h.__latReadOnly=y===!0,y===!0?h.setAttribute("aria-readonly","true"):h.removeAttribute("aria-readonly")}function V(h){const P=()=>h.__latReadOnly===!0,y=v=>{P()&&v.preventDefault()},A=v=>{P()&&(v.preventDefault(),v.stopPropagation())},B=v=>{P()&&(v.key===" "||v.key==="Enter")&&v.preventDefault()},O=v=>{P()&&v.key===" "&&v.preventDefault()};h.addEventListener("pointerdown",y),h.addEventListener("click",A),h.addEventListener("keydown",B),h.addEventListener("keyup",O)}function $(h,P,y){P?h.setAttribute("aria-disabled","true"):h.removeAttribute("aria-disabled"),y?h.setAttribute("aria-readonly","true"):h.removeAttribute("aria-readonly")}function ee(h){const P=h.item,y=P.disabled===!0,A=P.readOnly===!0||h.ruleReadOnly===!0;h.controlWrap&&(h.controlWrap.setAttribute("data-disabled",y?"true":"false"),h.controlWrap.setAttribute("data-readonly",A?"true":"false")),h.def.state(h.control,{...P,readOnly:A}),typeof h.syncLock=="function"&&h.syncLock(),typeof h.syncAddons=="function"&&h.syncAddons()}}),Ne("packages/modules/form/group-rules.js",function(S,q){"use strict";Object.defineProperty(S,"attachRuleResolver",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"detachRuleResolver",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"ruleResolverFor",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"makeRuleResolver",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"reapplyMembers",{enumerable:!0,get:function(){return P}});const e=new WeakMap;function V(y,A){e.set(y,A)}function $(y){e.delete(y)}function ee(y){return e.get(y)}function h(y){const{owners:A,byId:B,warnOnce:O}=y;return function(d,u){if(d==null||typeof d!="object")return;const _=d.name;if(d.form!=null){const t=B.get(d.form);if(!t){O(`form.group.unknown-member:${String(d.form)}`,`form group: a rule pins the member "${d.form}", but no member has that id; the rule reads an empty value.`);return}return _!=null?t.form.getValue()[_]:void 0}if(_==null)return;if(Object.prototype.hasOwnProperty.call(u,_))return u[_];const w=A.get(String(_));if(w)return w.form.getValue()[_]}}function P(y){for(const A of y)A.form&&typeof A.form.__reapplyRules=="function"&&A.form.__reapplyRules()}}),Ne("packages/modules/form/rules.js",function(S,q){"use strict";Object.defineProperty(S,"evalRule",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"applyRules",{enumerable:!0,get:function(){return A}});const V=q("packages/modules/form/model.js").isEmpty,ee=q("packages/modules/form/state.js").syncRecordState,P=q("packages/modules/form/group-rules.js").ruleResolverFor;function y(O,v,d){if(O==null)return null;if(typeof O=="function")return!!O(v);if(typeof O=="boolean")return O;if(typeof O=="object"){const u=d?d(O,v):O.name!=null?v[O.name]:void 0;if(typeof O.fn=="function")return!!O.fn(u,v);let _=!0,w=!1;return Object.prototype.hasOwnProperty.call(O,"equals")&&(w=!0,_=_&&u===O.equals),Object.prototype.hasOwnProperty.call(O,"in")&&(w=!0,_=_&&Array.isArray(O.in)&&O.in.includes(u)),Object.prototype.hasOwnProperty.call(O,"empty")&&(w=!0,_=_&&V(u)===!!O.empty),w?_:!1}return!1}function A(O){const v={};for(const u of O.order)u.item.name!=null&&(v[u.item.name]=u.value);const d=O.form?P(O.form):void 0;for(const u of O.order){const _=u.item;u.ruleHidden=y(_.visibleWhen,v,d)===!1,u.ruleReadOnly=y(_.readOnlyWhen,v,d)===!0,u.ruleRequired=y(_.requiredWhen,v,d)===!0,u.el.hidden=u.hidden||u.ruleHidden,ee(u);const w=_.required===!0||u.ruleRequired,t=u.labelEl!=null&&u.labelPosition!=="hidden",o=u.placeholderEl||u.control;w?o.setAttribute("aria-required","true"):o.removeAttribute("aria-required"),w&&t?u.el.setAttribute("data-required","true"):u.el.removeAttribute("data-required"),B(u,w,t,l=>O.t(l))}}function B(O,v,d,u){const _=O.placeholderEl;if(!_)return;const w=O.placeholderBase;if(v&&!d&&w!==""){const t=O.requiredHint,o=t===!1?"":typeof t=="string"?u(t):" *";_.placeholder=w+o}else _.placeholder=w}}),Ne("packages/modules/form/stepper.js",function(S,q){"use strict";Object.defineProperty(S,"createStepper",{enumerable:!0,get:function(){return ee}});const V=q("packages/modules/form/styles.js").NS;function $(h,P,y){return Math.min(y,Math.max(P,h))}function ee(h,P){const y=P.doc,A=P.steps||[],B=P.t||(m=>m),O=P.orientation==="vertical"?"vertical":"horizontal";let v=$(Number(P.active)||0,0,Math.max(0,A.length-1));const d=[];h.className=`${V}__stepper ${V}__stepper--${O}`,h.setAttribute("data-orientation",O),h.setAttribute("role","navigation"),h.setAttribute("aria-label",B("form.steps"));const u=y.createElement("ol");u.className=`${V}__stepper-list`,u.setAttribute("role","tablist"),u.setAttribute("aria-orientation",O),h.appendChild(u);let _=[];const w=m=>d[m]?d[m]:m<v?"complete":m===v?"active":"pending",t=m=>m<=v+1,o=()=>{u.textContent="",_=A.map((m,f)=>{const N=w(f),c=y.createElement("li");c.className=`${V}__stepper-item is-${N}`+(f===v?" is-active":"")+(t(f)?"":" is-locked");const i=y.createElement("button");i.type="button",i.className=`${V}__stepper-step`,i.setAttribute("role","tab"),i.setAttribute("aria-selected",f===v?"true":"false"),f===v&&i.setAttribute("aria-current","step"),i.tabIndex=f===v?0:-1,i.setAttribute("aria-disabled",t(f)?"false":"true");const n=y.createElement("span");n.className=`${V}__stepper-marker`,n.setAttribute("aria-hidden","true"),n.textContent=N==="complete"?"✓":N==="error"?"!":String(f+1),i.appendChild(n);const a=y.createElement("span");return a.className=`${V}__stepper-label`,a.textContent=m.label!=null&&m.label!==""?m.label:`${B("form.step")} ${f+1}`,i.appendChild(a),c.appendChild(i),u.appendChild(c),i})},l=m=>{typeof P.onGoTo=="function"&&t(m)&&P.onGoTo(m)},b=m=>{const f=m.target&&m.target.closest?m.target.closest(`.${V}__stepper-step`):null;if(!f||!u.contains(f))return;const N=_.indexOf(f);N>=0&&l(N)},p=m=>{const f=m.target&&m.target.closest?m.target.closest(`.${V}__stepper-step`):null;if(!f||!u.contains(f))return;const N=A.length;let c=_.indexOf(f);if(c<0)return;if(m.key==="ArrowRight"||m.key==="ArrowDown")c=(c+1)%N;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")c=(c-1+N)%N;else if(m.key==="Home")c=0;else if(m.key==="End")c=N-1;else if(m.key==="Enter"||m.key===" "){m.preventDefault(),l(c);return}else return;m.preventDefault();const i=_[c];i&&i.focus()};return u.addEventListener("click",b),u.addEventListener("keydown",p),o(),{el:h,setActive(m){v=$(Number(m)||0,0,Math.max(0,A.length-1)),o()},setStatus(m,f){d[m]=f,o()},statusOf:w}}}),Ne("packages/core/src/internal/icon-builtins.js",function(S,q){"use strict";Object.defineProperty(S,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"normaliseIcon",{enumerable:!0,get:function(){return V}});const e={chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},dash:{viewBox:"0 0 16 16",paths:["M4 8h8"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},minus:{viewBox:"0 0 16 16",paths:["M3.5 8h9"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},calendar:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3z","M3 5.5h10","M5.5 1.5v2","M10.5 1.5v2"],paint:"stroke"},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},filter:{viewBox:"0 0 16 16",paths:["M2 3h12l-4.5 5.2V13L6.5 11.5V8.2Z"]},pause:{viewBox:"0 0 16 16",paths:["M4.5 3h2.5v10H4.5zM9 3h2.5v10H9z"]},play:{viewBox:"0 0 16 16",paths:["M4.5 3l8 5-8 5z"]},chart:{viewBox:"0 0 16 16",paths:["M2.5 13.5h11","M4.5 13.5v-4","M8 13.5v-8","M11.5 13.5v-6"],paint:"stroke"},palette:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 0 0 0 13c.7 0 1.2-.5 1.2-1.1 0-.3-.1-.6-.3-.8a1.1 1.1 0 0 1 .8-1.9h1.4A3.4 3.4 0 0 0 14.5 7c0-3-2.9-5.5-6.5-5.5Z","M4.6 7.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM6.7 4.6a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM9.9 4.7a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM11.9 6.9a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"]},undo:{viewBox:"0 0 16 16",paths:["M3 8h6.5a3.25 3.25 0 0 1 0 6.5H6M3 8l3-3M3 8l3 3"],paint:"stroke"},redo:{viewBox:"0 0 16 16",paths:["M13 8H6.5a3.25 3.25 0 0 0 0 6.5H10M13 8l-3-3M13 8l-3 3"],paint:"stroke"},columns:{viewBox:"0 0 16 16",paths:["M2.5 2.5h11v11h-11zM6.5 2.5v11M10 2.5v11"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},restore:{viewBox:"0 0 16 16",paths:["M3 8a5 5 0 1 0 1.6-3.7M3 3v2.8h2.8"],paint:"stroke"},spreadsheet:{viewBox:"0 0 16 16",paths:["M3 2.5h10v11H3zM3 6h10M3 9.5h10M6.5 6v7.5"],paint:"stroke"},print:{viewBox:"0 0 16 16",paths:["M4.5 6V2.5h7V6M4.5 11.5h-2V6h11v5.5h-2M4.5 9.5h7v4h-7z"],paint:"stroke"},maximise:{viewBox:"0 0 16 16",paths:["M2.5 6V2.5H6M10 2.5h3.5V6M13.5 10v3.5H10M6 13.5H2.5V10"],paint:"stroke"},minimise:{viewBox:"0 0 16 16",paths:["M6 2.5V6H2.5M13.5 6H10V2.5M10 13.5V10h3.5M2.5 10H6v3.5"],paint:"stroke"},views:{viewBox:"0 0 16 16",paths:["M4 2.5h8v11L8 11l-4 2.5z"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},share:{viewBox:"0 0 16 16",paths:["M11.5 5.5a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M4.5 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M11.5 14.1a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6M6.1 7.1l3.8-1.9M6.1 8.9l3.8 1.9"],paint:"stroke"},pin:{viewBox:"0 0 16 16",paths:["M8 2v6M5 8h6l1 2.5H4zM8 10.5V14"],paint:"stroke"},sortAsc:{viewBox:"0 0 16 16",paths:["M8 3.5 12 8H4Z"]},sortDesc:{viewBox:"0 0 16 16",paths:["M8 12.5 4 8h8Z"]},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"},drag:{viewBox:"0 0 16 16",paths:["M6 3.5h1.5V5H6Zm3 0h1.5V5H9ZM6 7.25h1.5v1.5H6Zm3 0h1.5v1.5H9ZM6 11h1.5v1.5H6Zm3 0h1.5v1.5H9Z"]},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},circleFilled:{viewBox:"0 0 16 16",paths:["M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z"]},square:{viewBox:"0 0 16 16",paths:["M3 3h10v10H3Z"]},bolt:{viewBox:"0 0 16 16",paths:["M9.5 1.5 3.5 9h3.2l-.7 5.5L12.5 7H9.3Z"]},flag:{viewBox:"0 0 16 16",paths:["M4 1.5h1.5v13H4Zm1.5 1h7.5l-1.6 2.6L13 7.7H5.5Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},highlight:{viewBox:"0 0 16 16",paths:["M4 11 10 5l2 2-6 6H4z","M3 14.5h10"],paint:"stroke"},eraser:{viewBox:"0 0 16 16",paths:["M3 11 9 5 13 9 7 15Z","M5 13 9 9"],paint:"stroke"},thumbUp:{viewBox:"0 0 16 16",paths:["M5.5 6.8 8.6 1.5a1.6 1.6 0 0 1 1.5 2.1L9.4 6h3.4a1.4 1.4 0 0 1 1.35 1.78l-1.3 4.6A1.9 1.9 0 0 1 11 13.8H5.5ZM4 6.5H1.5v7.3H4Z"]},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},copy:{viewBox:"0 0 16 16",paths:["M5.5 2.5h8v8M2.5 5.5h8v8h-8Z"],paint:"stroke"},present:{viewBox:"0 0 16 16",paths:["M2 2.5h12v8H2Z","M8 10.5v3","M6 13.5h4"],paint:"stroke"},cabinet:{viewBox:"0 0 16 16",paths:["M3 2h10v12H3ZM5 4v4h2.5V4ZM8.5 4v4H11V4ZM5 9.5V11h6V9.5Z"]},splice:{viewBox:"0 0 16 16",paths:["M8 4.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM8 6.8a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4ZM1.5 7.2h3v1.6h-3ZM11.5 7.2h3v1.6h-3Z"]},exchange:{viewBox:"0 0 16 16",paths:["M8 1.5 14.5 6v1H1.5V6ZM3 8h2v5H3ZM7 8h2v5H7ZM11 8h2v5h-2ZM1.5 13.5h13V15h-13Z"]},pole:{viewBox:"0 0 16 16",paths:["M7.2 1.5h1.6V15H7.2ZM3 3.5h10V5H3ZM4.5 7h7v1.4h-7Z"]},chamber:{viewBox:"0 0 16 16",paths:["M2.5 3.5h11v9h-11ZM4.5 5.5v5h7v-5ZM6 7h4v1.5H6Z"]},premises:{viewBox:"0 0 16 16",paths:["M8 1.8 14.5 7.5h-2V14h-9V7.5h-2ZM6.8 10.4V14h2.4v-3.6Z"]},fault:{viewBox:"0 0 16 16",paths:["M5.2 1.5h5.6L14.5 5.2v5.6L10.8 14.5H5.2L1.5 10.8V5.2ZM5.4 9.4 6.6 10.6 8 9.2 9.4 10.6 10.6 9.4 9.2 8 10.6 6.6 9.4 5.4 8 6.8 6.6 5.4 5.4 6.6 6.8 8Z"]},user:{viewBox:"0 0 16 16",paths:["M8 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z","M8 9c3 0 5.5 1.5 5.5 3.5V14h-11v-1.5C2.5 10.5 5 9 8 9Z"]},blank:{viewBox:"0 0 16 16",paths:[""]}};function V($){return typeof $=="string"?{viewBox:"0 0 16 16",paths:[$],paint:"fill"}:Array.isArray($)?{viewBox:"0 0 16 16",paths:$.slice(),paint:"fill"}:{viewBox:$&&$.viewBox||"0 0 16 16",paths:$&&Array.isArray($.paths)?$.paths.slice():$&&$.path?[$.path]:[],paint:$&&$.paint==="stroke"?"stroke":"fill"}}}),Ne("packages/modules/form/controls/field-icon.js",function(S,q){"use strict";Object.defineProperty(S,"fieldIconStylesheet",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"injectFieldIconStyles",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"makeFieldIcon",{enumerable:!0,get:function(){return y}});const V=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,$="http://www.w3.org/2000/svg",ee="data-lattice-form-field-icon-styles";function h(){return`
|
|
1084
1109
|
.lat-form__field-icon{
|
|
1085
1110
|
display:block; flex:0 0 auto;
|
|
1086
1111
|
width:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1087
1112
|
height:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1088
1113
|
}
|
|
1089
|
-
`.trim()}function L(A){const H=A&&A.documentElement;if(!H||H.getAttribute(re))return;H.setAttribute(re,"1");const T=A.createElement("style");T.textContent=g(),(A.head||A.body||H).appendChild(T)}function C(A,H){const T=U[H];if(!T)return null;const v=A.createElementNS(O,"svg");v.setAttribute("class","lat-form__field-icon"),v.setAttribute("viewBox",T.viewBox||"0 0 16 16"),v.setAttribute("aria-hidden","true"),v.setAttribute("focusable","false");const f=T.paint==="stroke";for(const u of T.paths||[]){const h=A.createElementNS(O,"path");h.setAttribute("d",u),f?(h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","1.5"),h.setAttribute("stroke-linecap","round"),h.setAttribute("stroke-linejoin","round")):h.setAttribute("fill","currentColor"),v.appendChild(h)}return v}}),je("packages/modules/form/messages.js",function(M,X){"use strict";Object.defineProperty(M,"FALLBACK_EN",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"createTranslator",{enumerable:!0,get:function(){return L}});const e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.combo.toggle":"Show options","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.daterange.open":"Open date range picker","form.daterange.prev":"Previous month","form.daterange.next":"Next month","form.daterange.apply":"Apply","form.daterange.cancel":"Cancel","form.daterange.clear":"Clear","form.daterange.presets":"Presets","form.daterange.today":"Today","form.daterange.yesterday":"Yesterday","form.daterange.last7":"Last 7 days","form.daterange.last30":"Last 30 days","form.daterange.thisMonth":"This month","form.daterange.lastMonth":"Last month","form.daterange.monthThisMonth":"This month","form.daterange.monthLastMonth":"Last month","form.daterange.monthLast3":"Last 3 months","form.daterange.monthLast6":"Last 6 months","form.daterange.monthLast12":"Last 12 months","form.daterange.monthThisYear":"This year","form.daterange.monthLastYear":"Last year","form.daterange.invalid":"Enter a start and end date.","form.daterange.bounds":"Date is outside the allowed range.","form.daterange.minSpan":"Select a range of at least {min} {unit}.","form.daterange.maxSpan":"Select a range of at most {max} {unit}.","form.daterange.days":"days","form.daterange.months":"months","form.tooltip.help":"Help","form.readonly":"Read-only","form.panel.collapse":"Collapse section","form.panel.expand":"Expand section","form.file.add":"Add files","form.file.dropText":"Drag files here or","form.file.browse":"browse","form.file.dropToUpload":"Drop to upload","form.file.addMore":"Add more or drop here","form.file.typeNotAccepted":"This file type is not accepted","form.file.hint.size":"up to {size} each","form.file.hint.file":"max {max} file","form.file.hint.files":"max {max} files","form.file.addedOne":"1 file added","form.file.added":"{count} files added","form.file.uploaded":"{name} uploaded","form.file.failed":"{name} failed","form.file.remove":"Remove","form.file.retry":"Retry","form.file.rejected.size":"File is larger than {size}","form.file.rejected.type":"File type not allowed","form.file.rejected.count":"Too many files (max {max})","form.file.uploadFailed":"Upload failed","form.richtext.bold":"Bold (Ctrl+B)","form.richtext.italic":"Italic (Ctrl+I)","form.richtext.underline":"Underline (Ctrl+U)","form.richtext.strike":"Strikethrough","form.richtext.color":"Text colour","form.richtext.heading":"Paragraph style","form.richtext.alignLeft":"Align left","form.richtext.alignCenter":"Align centre","form.richtext.alignRight":"Align right","form.richtext.ul":"Bulleted list","form.richtext.ol":"Numbered list","form.richtext.outdent":"Decrease indent","form.richtext.indent":"Increase indent","form.richtext.link":"Link (Ctrl+K)","form.richtext.image":"Insert image","form.richtext.clear":"Clear formatting","form.richtext.source":"HTML source","form.richtext.undo":"Undo (Ctrl+Z)","form.richtext.redo":"Redo (Ctrl+Y)","form.richtext.lowercase":"lower case","form.richtext.uppercase":"UPPER CASE","form.richtext.lowercaseText":"ab","form.richtext.uppercaseText":"AB","form.richtext.placeholder":"Start writing…","form.richtext.formatting":"Formatting","form.richtext.richText":"Rich text","form.richtext.linkLabel":"Link address","form.richtext.linkPlaceholder":"https://","form.richtext.linkAdd":"Add link","form.richtext.linkUpdate":"Update","form.richtext.linkRemove":"Remove","form.richtext.colorCustom":"Custom colour","form.richtext.colorRemove":"Remove colour","form.color.open":"Open colour picker","form.color.clear":"Clear colour","form.color.customColor":"Custom colour","form.color.select":"Select","form.color.hexLabel":"Hex","form.color.redLabel":"Red","form.color.greenLabel":"Green","form.color.blueLabel":"Blue","form.color.saturationLightness":"Saturation and lightness","form.color.hue":"Hue","form.color.invalidHex":"Enter a colour such as #1a2b3c"}),U=Object.freeze({...e});function O(C,A={}){const H=e[C];return H===void 0?C:H.replace(/\{(\w+)\}/g,(T,v)=>A[v]===void 0?T:String(A[v]))}const re={t(C,A={}){return O(C,A)}};function g(C,A={}){return re.t(C,A)}function L(C){return{t(A,H={}){const T=C&&typeof C.t=="function"?C.t(A,H):A;return T===A?O(A,H):T}}}}),je("packages/dom/src/editors/sanitize-richtext.js",function(M,X){"use strict";Object.defineProperty(M,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"escapeHtml",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"sanitizeRichText",{enumerable:!0,get:function(){return T}});const e={p:["style","class"],br:[],h1:["style"],h2:["style"],h3:["style"],h4:["style"],blockquote:["style"],pre:[],code:[],b:[],strong:[],i:[],em:[],u:[],s:[],strike:[],sub:[],sup:[],span:["style","class"],font:["color"],ins:["class"],del:["class"],ul:[],ol:["start"],li:["style","class"],a:["href","target","rel","title"],img:["src","alt","width","height","style"],hr:[],div:["style"],table:[],thead:[],tbody:[],tr:[],th:["style"],td:["style"]},U={color:/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"background-color":/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"text-align":/^(left|center|right|justify)$/,"max-width":/^\d+(px|%)$/,width:/^\d+(px|%)$/,height:/^\d+(px|%)$/,"text-decoration":/^(underline|line-through)$/,"font-weight":/^(bold|\d{3})$/,"font-style":/^italic$/},O=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),re=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],g=/^(data:image\/|https?:\/\/|\/)/i,L={"&":"&","<":"<",">":">",'"':""","'":"'"};function C(v){const f=v==null?"":String(v);return/[&<>"']/.test(f)?f.replace(/[&<>"']/g,u=>L[u]):f}function A(v,f){const u=String(v).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(f&&u.startsWith("data:image/")):!1}function H(v){if(v.__latRtCanParse!==void 0)return v.__latRtCanParse;try{const f=v.createElement("template");f.innerHTML="<p>x</p>";const u=!!(f.content&&f.content.childNodes&&f.content.childNodes.length);return v.__latRtCanParse=u,u}catch{return v.__latRtCanParse=!1,!1}}function T(v,f,u=e,h={}){const x=u||e,t=String(f??"");if(!H(v))return C(t.replace(/<[^>]*>/g,""));const n=h.imageSrcPattern||g,a=v.createElement("template");a.innerHTML=t;const m=E=>{[...E.childNodes].forEach(_=>{if(_.nodeType===8){_.remove();return}if(_.nodeType!==1)return;const c=_.tagName.toLowerCase();if(O.has(c)){_.remove();return}if(m(_),!x[c]){const S=re.includes(c)?v.createElement("p"):null;if(S){for(;_.firstChild;)S.appendChild(_.firstChild);_.replaceWith(S)}else{for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.remove()}return}if([..._.attributes].forEach(S=>{const o=S.name.toLowerCase();if(/^on/i.test(o)||o==="srcdoc"||o==="id"||o==="name"){_.removeAttribute(S.name);return}if(!x[c].includes(o)){_.removeAttribute(S.name);return}if(o==="href"){const d=S.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(d)||A(d))&&_.removeAttribute("href")}else if(o==="src"){const d=S.value.trim();(!n.test(d)||A(d,!0))&&_.removeAttribute("src")}else if(o==="style"){if(h.stripStyles&&c!=="img"){_.removeAttribute("style");return}const d=S.value.split(";").map(l=>l.trim()).filter(Boolean).map(l=>{const s=l.indexOf(":");return[l.slice(0,s).trim().toLowerCase(),l.slice(s+1).trim()]}).filter(([l,s])=>U[l]&&U[l].test(s)).map(([l,s])=>`${l}: ${s}`).join("; ");d?_.setAttribute("style",d):_.removeAttribute("style")}else if(o==="target"&&S.value!=="_blank")_.removeAttribute("target");else if(o==="class"){const d=S.value.split(/\s+/).filter(l=>/^lat-/.test(l)||/^dfc-/.test(l)).join(" ");d?_.setAttribute("class",d):_.removeAttribute("class")}}),c==="div"){const S=v.createElement("p");for([..._.attributes].forEach(o=>S.setAttribute(o.name,o.value));_.firstChild;)S.appendChild(_.firstChild);_.replaceWith(S)}if(c==="img"&&!_.getAttribute("src")&&_.remove(),c==="a")if(_.getAttribute("href"))_.getAttribute("target")==="_blank"&&_.setAttribute("rel","noopener noreferrer");else{for(;_.firstChild;)_.parentNode.insertBefore(_.firstChild,_);_.remove()}})};return m(a.content),a.innerHTML}}),je("packages/modules/form/controls/combo.js",function(M,X){"use strict";Object.defineProperty(M,"adornmentStylesheet",{enumerable:!0,get:function(){return c}}),Object.defineProperty(M,"injectAdornmentStyles",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"isImageUrl",{enumerable:!0,get:function(){return o}}),Object.defineProperty(M,"initialsFor",{enumerable:!0,get:function(){return d}}),Object.defineProperty(M,"stableHash",{enumerable:!0,get:function(){return l}}),Object.defineProperty(M,"avatarColor",{enumerable:!0,get:function(){return s}}),Object.defineProperty(M,"applyAvatarTint",{enumerable:!0,get:function(){return r}}),Object.defineProperty(M,"makeIcon",{enumerable:!0,get:function(){return i}}),Object.defineProperty(M,"renderIcon",{enumerable:!0,get:function(){return B}}),Object.defineProperty(M,"renderAvatar",{enumerable:!0,get:function(){return z}}),Object.defineProperty(M,"renderDot",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(M,"renderAdornment",{enumerable:!0,get:function(){return se}}),Object.defineProperty(M,"renderTemplateContent",{enumerable:!0,get:function(){return k}}),Object.defineProperty(M,"createCombo",{enumerable:!0,get:function(){return N}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,L=X("packages/modules/form/styles.js").injectStyles,A=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,T=X("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,v=X("packages/modules/form/controls/field-icon.js"),f=v.makeFieldIcon,u=v.injectFieldIconStyles,h=250,x=20,t=48,n="data-lattice-combo-chip-row-styles";function a(){return`
|
|
1114
|
+
`.trim()}function P(A){const B=A&&A.documentElement;if(!B||B.getAttribute(ee))return;B.setAttribute(ee,"1");const O=A.createElement("style");O.textContent=h(),(A.head||A.body||B).appendChild(O)}function y(A,B){const O=V[B];if(!O)return null;const v=A.createElementNS($,"svg");v.setAttribute("class","lat-form__field-icon"),v.setAttribute("viewBox",O.viewBox||"0 0 16 16"),v.setAttribute("aria-hidden","true"),v.setAttribute("focusable","false");const d=O.paint==="stroke";for(const u of O.paths||[]){const _=A.createElementNS($,"path");_.setAttribute("d",u),d?(_.setAttribute("fill","none"),_.setAttribute("stroke","currentColor"),_.setAttribute("stroke-width","1.5"),_.setAttribute("stroke-linecap","round"),_.setAttribute("stroke-linejoin","round")):_.setAttribute("fill","currentColor"),v.appendChild(_)}return v}}),Ne("packages/modules/form/messages.js",function(S,q){"use strict";Object.defineProperty(S,"FALLBACK_EN",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"t",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"createTranslator",{enumerable:!0,get:function(){return P}});const e=Object.freeze({"form.separator":"Separator","form.select.toggle":"Show options","form.combo.toggle":"Show options","form.combo.loading":"Loading…","form.combo.empty":"No results","form.combo.error":"Could not load options","form.combo.retry":"Retry","form.combo.selectAll":"Select all","form.combo.remove":"Remove {label}","form.combo.results":"{count} results","form.combo.more":"+{count}","form.combo.create":"Create “{query}”","form.speeddial.open":"Open actions","form.speeddial.close":"Close actions","form.speeddial.menu":"Actions","form.listbox.filterPlaceholder":"Filter options","form.listbox.selectAll":"Select all","form.listbox.toolbar":"Reorder","form.listbox.moveUp":"Move up","form.listbox.moveDown":"Move down","form.listbox.moveSelected":"Move selected","form.listbox.moveAll":"Move all","form.listbox.min":"Select at least {min}.","form.listbox.max":"Select at most {max}.","form.listbox.empty":"No options","form.rating":"Rating","form.stage":"Stage","form.chips":"Options","form.chips.min":"Select at least {min}.","form.chips.max":"Select at most {max}.","form.password.show":"Show password","form.password.hide":"Hide password","form.otp.label":"One-time code","form.otp.digit":"Digit {n} of {total}","form.invalid":"Invalid value","form.required":"Required","form.step":"Step","form.steps":"Steps","form.next":"Next","form.back":"Back","form.finish":"Finish","form.number.unitPicker":"Display unit","form.validation.required":"This field is required.","form.validation.email":"Enter a valid email address.","form.validation.number":"Enter a valid number.","form.validation.unit":"Enter a value such as 10 {unit}.","form.validation.min":"Must be {min} or more.","form.validation.max":"Must be {max} or less.","form.validation.step":"Must be in steps of {step}.","form.validation.integer":"Enter a whole number.","form.validation.url":"Enter a valid URL.","form.validation.pattern":"The value does not match the required format.","form.validation.custom":"Validation failed.","form.datepicker.open":"Open calendar","form.datepicker.openTime":"Open time picker","form.datepicker.prev":"Previous month","form.datepicker.next":"Next month","form.datepicker.hour":"Hour","form.datepicker.minute":"Minute","form.datepicker.done":"Done","form.daterange.open":"Open date range picker","form.daterange.prev":"Previous month","form.daterange.next":"Next month","form.daterange.apply":"Apply","form.daterange.cancel":"Cancel","form.daterange.clear":"Clear","form.daterange.presets":"Presets","form.daterange.today":"Today","form.daterange.yesterday":"Yesterday","form.daterange.last7":"Last 7 days","form.daterange.last30":"Last 30 days","form.daterange.thisMonth":"This month","form.daterange.lastMonth":"Last month","form.daterange.monthThisMonth":"This month","form.daterange.monthLastMonth":"Last month","form.daterange.monthLast3":"Last 3 months","form.daterange.monthLast6":"Last 6 months","form.daterange.monthLast12":"Last 12 months","form.daterange.monthThisYear":"This year","form.daterange.monthLastYear":"Last year","form.daterange.invalid":"Enter a start and end date.","form.daterange.bounds":"Date is outside the allowed range.","form.daterange.minSpan":"Select a range of at least {min} {unit}.","form.daterange.maxSpan":"Select a range of at most {max} {unit}.","form.daterange.days":"days","form.daterange.months":"months","form.tooltip.help":"Help","form.readonly":"Read-only","form.panel.collapse":"Collapse section","form.panel.expand":"Expand section","form.file.add":"Add files","form.file.dropText":"Drag files here or","form.file.browse":"browse","form.file.dropToUpload":"Drop to upload","form.file.addMore":"Add more or drop here","form.file.typeNotAccepted":"This file type is not accepted","form.file.hint.size":"up to {size} each","form.file.hint.file":"max {max} file","form.file.hint.files":"max {max} files","form.file.addedOne":"1 file added","form.file.added":"{count} files added","form.file.uploaded":"{name} uploaded","form.file.failed":"{name} failed","form.file.remove":"Remove","form.file.retry":"Retry","form.file.rejected.size":"File is larger than {size}","form.file.rejected.type":"File type not allowed","form.file.rejected.count":"Too many files (max {max})","form.file.uploadFailed":"Upload failed","form.richtext.bold":"Bold (Ctrl+B)","form.richtext.italic":"Italic (Ctrl+I)","form.richtext.underline":"Underline (Ctrl+U)","form.richtext.strike":"Strikethrough","form.richtext.color":"Text colour","form.richtext.heading":"Paragraph style","form.richtext.alignLeft":"Align left","form.richtext.alignCenter":"Align centre","form.richtext.alignRight":"Align right","form.richtext.ul":"Bulleted list","form.richtext.ol":"Numbered list","form.richtext.outdent":"Decrease indent","form.richtext.indent":"Increase indent","form.richtext.link":"Link (Ctrl+K)","form.richtext.image":"Insert image","form.richtext.clear":"Clear formatting","form.richtext.source":"HTML source","form.richtext.undo":"Undo (Ctrl+Z)","form.richtext.redo":"Redo (Ctrl+Y)","form.richtext.lowercase":"lower case","form.richtext.uppercase":"UPPER CASE","form.richtext.lowercaseText":"ab","form.richtext.uppercaseText":"AB","form.richtext.placeholder":"Start writing…","form.richtext.formatting":"Formatting","form.richtext.richText":"Rich text","form.richtext.linkLabel":"Link address","form.richtext.linkPlaceholder":"https://","form.richtext.linkAdd":"Add link","form.richtext.linkUpdate":"Update","form.richtext.linkRemove":"Remove","form.richtext.colorCustom":"Custom colour","form.richtext.colorRemove":"Remove colour","form.color.open":"Open colour picker","form.color.clear":"Clear colour","form.color.customColor":"Custom colour","form.color.select":"Select","form.color.hexLabel":"Hex","form.color.redLabel":"Red","form.color.greenLabel":"Green","form.color.blueLabel":"Blue","form.color.saturationLightness":"Saturation and lightness","form.color.hue":"Hue","form.color.invalidHex":"Enter a colour such as #1a2b3c"}),V=Object.freeze({...e});function $(y,A={}){const B=e[y];return B===void 0?y:B.replace(/\{(\w+)\}/g,(O,v)=>A[v]===void 0?O:String(A[v]))}const ee={t(y,A={}){return $(y,A)}};function h(y,A={}){return ee.t(y,A)}function P(y){return{t(A,B={}){const O=y&&typeof y.t=="function"?y.t(A,B):A;return O===A?$(A,B):O}}}}),Ne("packages/dom/src/editors/sanitize-richtext.js",function(S,q){"use strict";Object.defineProperty(S,"ALLOWED",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"sanitizeRichText",{enumerable:!0,get:function(){return O}});const e={p:["style","class"],br:[],h1:["style"],h2:["style"],h3:["style"],h4:["style"],blockquote:["style"],pre:[],code:[],b:[],strong:[],i:[],em:[],u:[],s:[],strike:[],sub:[],sup:[],span:["style","class"],font:["color"],ins:["class"],del:["class"],ul:[],ol:["start"],li:["style","class"],a:["href","target","rel","title"],img:["src","alt","width","height","style"],hr:[],div:["style"],table:[],thead:[],tbody:[],tr:[],th:["style"],td:["style"]},V={color:/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"background-color":/^(#[0-9a-f]{3,8}|rgb\(|rgba\(|[a-z]+$)/i,"text-align":/^(left|center|right|justify)$/,"max-width":/^\d+(px|%)$/,width:/^\d+(px|%)$/,height:/^\d+(px|%)$/,"text-decoration":/^(underline|line-through)$/,"font-weight":/^(bold|\d{3})$/,"font-style":/^italic$/},$=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),ee=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],h=/^(data:image\/|https?:\/\/|\/)/i,P={"&":"&","<":"<",">":">",'"':""","'":"'"};function y(v){const d=v==null?"":String(v);return/[&<>"']/.test(d)?d.replace(/[&<>"']/g,u=>P[u]):d}function A(v,d){const u=String(v).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return u.startsWith("javascript:")||u.startsWith("vbscript:")?!0:u.startsWith("data:")?!(d&&u.startsWith("data:image/")):!1}function B(v){if(v.__latRtCanParse!==void 0)return v.__latRtCanParse;try{const d=v.createElement("template");d.innerHTML="<p>x</p>";const u=!!(d.content&&d.content.childNodes&&d.content.childNodes.length);return v.__latRtCanParse=u,u}catch{return v.__latRtCanParse=!1,!1}}function O(v,d,u=e,_={}){const w=u||e,t=String(d??"");if(!B(v))return y(t.replace(/<[^>]*>/g,""));const o=_.imageSrcPattern||h,l=v.createElement("template");l.innerHTML=t;const b=p=>{[...p.childNodes].forEach(m=>{if(m.nodeType===8){m.remove();return}if(m.nodeType!==1)return;const f=m.tagName.toLowerCase();if($.has(f)){m.remove();return}if(b(m),!w[f]){const N=ee.includes(f)?v.createElement("p"):null;if(N){for(;m.firstChild;)N.appendChild(m.firstChild);m.replaceWith(N)}else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}return}if([...m.attributes].forEach(N=>{const c=N.name.toLowerCase();if(/^on/i.test(c)||c==="srcdoc"||c==="id"||c==="name"){m.removeAttribute(N.name);return}if(!w[f].includes(c)){m.removeAttribute(N.name);return}if(c==="href"){const i=N.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(i)||A(i))&&m.removeAttribute("href")}else if(c==="src"){const i=N.value.trim();(!o.test(i)||A(i,!0))&&m.removeAttribute("src")}else if(c==="style"){if(_.stripStyles&&f!=="img"){m.removeAttribute("style");return}const i=N.value.split(";").map(n=>n.trim()).filter(Boolean).map(n=>{const a=n.indexOf(":");return[n.slice(0,a).trim().toLowerCase(),n.slice(a+1).trim()]}).filter(([n,a])=>V[n]&&V[n].test(a)).map(([n,a])=>`${n}: ${a}`).join("; ");i?m.setAttribute("style",i):m.removeAttribute("style")}else if(c==="target"&&N.value!=="_blank")m.removeAttribute("target");else if(c==="class"){const i=N.value.split(/\s+/).filter(n=>/^lat-/.test(n)||/^dfc-/.test(n)).join(" ");i?m.setAttribute("class",i):m.removeAttribute("class")}}),f==="div"){const N=v.createElement("p");for([...m.attributes].forEach(c=>N.setAttribute(c.name,c.value));m.firstChild;)N.appendChild(m.firstChild);m.replaceWith(N)}if(f==="img"&&!m.getAttribute("src")&&m.remove(),f==="a")if(m.getAttribute("href"))m.getAttribute("target")==="_blank"&&m.setAttribute("rel","noopener noreferrer");else{for(;m.firstChild;)m.parentNode.insertBefore(m.firstChild,m);m.remove()}})};return b(l.content),l.innerHTML}}),Ne("packages/dom/src/themeof.js",function(S,q){"use strict";Object.defineProperty(S,"themeOf",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"carryTheme",{enumerable:!0,get:function(){return V}});function e($){for(let ee=$;ee;ee=ee.parentNode){if(typeof ee.getAttribute!="function")continue;const h=ee.getAttribute("data-theme");if(h)return h}return null}function V($,ee){if(!$||typeof $.setAttribute!="function")return;const h=e(ee);h?$.setAttribute("data-theme",h):typeof $.removeAttribute=="function"&&$.removeAttribute("data-theme")}}),Ne("packages/modules/form/controls/popup-layer.js",function(S,q){"use strict";Object.defineProperty(S,"getLayerHost",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"placeAgainstField",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"openInLayer",{enumerable:!0,get:function(){return b}});const V=q("packages/dom/src/themeof.js").carryTheme,$="lat-form__layer-host",ee=Object.freeze(["--lattice-density-scale","--lattice-presentation-scale","--lattice-scale","--lattice-space","--lattice-row-height","--lattice-font-size","--lattice-control-size","--lattice-border-color","--lattice-border-width","--lattice-background","--lattice-foreground","--lattice-foreground-muted","--lattice-accent","--lattice-accent-contrast","--lattice-switch-track-on","--lattice-switch-track-off","--lattice-switch-handle","--lattice-switch-label","--lattice-focus-ring","--lattice-danger","--lattice-success","--lattice-radius","--lattice-form-item-gap","--lattice-form-label-gap","--lattice-disabled-foreground","--lattice-disabled-background","--lattice-disabled-border","--lattice-readonly-foreground","--lattice-readonly-background","--lattice-readonly-border","--lattice-popup-z"]),h="2147483647";function P(p){return typeof p.showPopover=="function"&&typeof p.hidePopover=="function"}function y(p){if(p.style.zIndex=`var(--lattice-popup-z, ${h})`,!!P(p)){p.setAttribute("popover","manual"),p.style.margin="0",p.style.inset="auto";try{p.showPopover()}catch{}}}function A(p){if(P(p)&&p.hasAttribute("popover")){try{p.hidePopover()}catch{}p.removeAttribute("popover")}p.style.zIndex="",p.style.margin="",p.style.inset=""}function B(p,m){const f=m.ownerDocument&&m.ownerDocument.defaultView;if(!f||typeof f.getComputedStyle!="function")return;const N=f.getComputedStyle(m);for(const c of ee){const i=N.getPropertyValue(c);i&&p.style.setProperty(c,i)}}const O=new WeakMap,v=new WeakMap,d=new WeakMap;function u(p){for(let m=p;m;m=m.parentNode){if(typeof m.getAttribute!="function")continue;if((typeof m.tagName=="string"?m.tagName.toUpperCase():"")==="DIALOG"&&m.getAttribute("open")!==null)return m}return null}function _(p,m){const f=m?u(m):null;if(f){const a=v.get(f);if(a&&a.parentNode===f)return a;let r=null;for(const M of f.childNodes||[])if(M&&typeof M.className=="string"&&M.className.split(/\s+/).includes($)){r=M;break}const s=r||p.createElement("div");return r||(s.className=$,f.appendChild(s)),v.set(f,s),s}const N=O.get(p);if(N&&N.isConnected!==!1)return N;const c=p.body||p.documentElement,i=c&&typeof c.querySelector=="function"?c.querySelector(`.${$}`):null,n=i||p.createElement("div");return i||(n.className=$,c.appendChild(n)),O.set(p,n),n}function w(p,m,f){return p.bottom<=0||p.top>=f||p.right<=0||p.left>=m}function t(p,m,f={}){const N=m.ownerDocument,c=N&&N.defaultView,i=c?c.innerWidth:0,n=c?c.innerHeight:0;p.style.position="fixed";const a=m.getBoundingClientRect();if(w(a,i,n))return!0;p.style.marginTop="0",p.style.marginBottom="0",p.style.marginLeft="0",p.style.marginRight="0",f.matchWidth===!1?p.style.minWidth=`${a.width}px`:p.style.width=`${a.width}px`;let r=a.left;const s=p.offsetWidth||a.width;i&&r+s>i&&(r=Math.max(0,i-s)),p.style.left=`${r}px`,p.style.right="auto";const M=p.offsetHeight||0;return n-a.bottom<M+4&&a.top>M+4?(p.style.top="auto",p.style.bottom=`${Math.max(0,n-a.top)}px`,f.aboveClass&&p.classList.add(f.aboveClass)):(p.style.bottom="auto",p.style.top=`${a.bottom}px`,f.aboveClass&&p.classList.remove(f.aboveClass)),!1}function o(p,m){let f=d.get(p);if(!f){const N=p.defaultView;f={entries:new Set,onTrack(){for(const c of[...f.entries])c.reposition()}},N&&(N.addEventListener("scroll",f.onTrack,!0),N.addEventListener("resize",f.onTrack)),d.set(p,f)}f.entries.add(m)}function l(p,m){const f=d.get(p);if(f&&(f.entries.delete(m),f.entries.size===0)){const N=p.defaultView;N&&(N.removeEventListener("scroll",f.onTrack,!0),N.removeEventListener("resize",f.onTrack)),d.delete(p)}}function b(p,m,f={}){const N=m.ownerDocument,c=_(N,m),i=p.parentNode,n=p.nextSibling;let a=!1;c.appendChild(p),V(p,m),B(p,m),y(p);const r={reposition(){if(a)return;t(p,m,f)&&typeof f.onOffscreen=="function"&&f.onOffscreen()},close(){a||(a=!0,l(N,r),A(p),i&&(n&&n.parentNode===i?i.insertBefore(p,n):i.appendChild(p)))}};return o(N,r),r.reposition(),r}}),Ne("packages/modules/form/controls/combo.js",function(S,q){"use strict";Object.defineProperty(S,"adornmentStylesheet",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"injectAdornmentStyles",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"isImageUrl",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"initialsFor",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"stableHash",{enumerable:!0,get:function(){return s}}),Object.defineProperty(S,"avatarColor",{enumerable:!0,get:function(){return M}}),Object.defineProperty(S,"applyAvatarTint",{enumerable:!0,get:function(){return D}}),Object.defineProperty(S,"makeIcon",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(S,"renderIcon",{enumerable:!0,get:function(){return U}}),Object.defineProperty(S,"renderAvatar",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(S,"renderDot",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"renderAdornment",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"renderTemplateContent",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return H}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,P=q("packages/modules/form/styles.js").injectStyles,A=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,O=q("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,v=q("packages/modules/form/controls/field-icon.js"),d=v.makeFieldIcon,u=v.injectFieldIconStyles,w=q("packages/modules/form/controls/popup-layer.js").openInLayer,t=250,o="lat-combo__popup--above",l=20,b=48,p="data-lattice-combo-chip-row-styles";function m(){return`
|
|
1090
1115
|
.lat-combo__control{ position:relative; }
|
|
1091
1116
|
.lat-combo__chip-row{
|
|
1092
1117
|
display:flex;flex-wrap:wrap;align-items:flex-start;
|
|
@@ -1101,7 +1126,7 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1101
1126
|
.lat-combo[data-chip-placement] .lat-combo__summary{
|
|
1102
1127
|
flex:0 0 auto;margin-top:calc(var(--lattice-space)/4);
|
|
1103
1128
|
}
|
|
1104
|
-
`.trim()}function
|
|
1129
|
+
`.trim()}function f(E){const G=E&&E.documentElement;if(!G||G.getAttribute(p))return;G.setAttribute(p,"1");const R=E.createElement("style");R.textContent=m(),(E.head||E.body||G).appendChild(R)}const N="data-lattice-form-adornment-styles",c="http://www.w3.org/2000/svg";function i(){return`
|
|
1105
1130
|
.lat-combo__value{
|
|
1106
1131
|
flex:0 0 auto; display:inline-flex; align-items:center; min-width:0;
|
|
1107
1132
|
gap:calc(var(--lattice-space) / 2);
|
|
@@ -1140,17 +1165,17 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1140
1165
|
.lat-select__value{ display:flex; align-items:center; gap:calc(var(--lattice-space) / 2); }
|
|
1141
1166
|
.lat-select__value[data-placeholder='true']{ display:block; }
|
|
1142
1167
|
.lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
|
|
1143
|
-
`.trim()}function S(y){const $=y&&y.documentElement;if(!$||$.getAttribute(E))return;$.setAttribute(E,"1");const w=y.createElement("style");w.textContent=c(),(y.head||y.body||$).appendChild(w)}function o(y){return/^(https?:|data:image\/|\/)/i.test(y)}function d(y){const $=String(y??"").trim();if(!$)return"";const w=$.split(/\s+/);return w.length>=2?(w[0][0]+w[1][0]).toUpperCase():$.slice(0,2).toUpperCase()}function l(y){let $=5381;const w=String(y??"");for(let V=0;V<w.length;V++)$=($<<5)+$+w.charCodeAt(V)>>>0;return $}function s(y){if(y&&y.color!=null&&String(y.color)!=="")return String(y.color);const $=y&&y.label!=null?String(y.label):y&&y.value!=null?String(y.value):"";return`hsl(${l($)%360}, 62%, 45%)`}function r(y,$){y.style.background=s($),y.style.color="#fff"}function i(y,$){const w=A[$];if(!w)return null;const V=y.createElementNS(_,"svg");V.setAttribute("class","lat-combo__icon"),V.setAttribute("viewBox",w.viewBox||"0 0 16 16"),V.setAttribute("aria-hidden","true"),V.setAttribute("focusable","false");const oe=w.paint==="stroke";for(const ie of w.paths||[]){const _e=y.createElementNS(_,"path");_e.setAttribute("d",ie),oe?(_e.setAttribute("fill","none"),_e.setAttribute("stroke","currentColor"),_e.setAttribute("stroke-width","1.5"),_e.setAttribute("stroke-linecap","round"),_e.setAttribute("stroke-linejoin","round")):_e.setAttribute("fill","currentColor"),V.appendChild(_e)}return V}function B(y,$,w){if($==null||$==="")return null;let V;if($.nodeType)V=$.cloneNode(!0),V.setAttribute&&V.setAttribute("aria-hidden","true");else{const oe=String($),ie=i(y,oe);ie?V=ie:(V=y.createElement("span"),V.className="lat-combo__icon lat-combo__icon--glyph",V.setAttribute("aria-hidden","true"),V.textContent=oe.slice(0,2))}return w!=null&&String(w)!==""&&V&&V.style&&(V.style.color=String(w)),V}function z(y,$){const w=y.createElement("span");w.className="lat-combo__avatar",w.setAttribute("aria-hidden","true");const V=String($.avatar);if(o(V)){const oe=y.createElement("img");return oe.className="lat-combo__avatar-img",oe.alt="",oe.src=V,oe.addEventListener("error",()=>{for(;w.firstChild;)w.removeChild(w.firstChild);w.classList.add("lat-combo__avatar--initials"),w.textContent=d($.label),r(w,$)}),w.appendChild(oe),w}return w.classList.add("lat-combo__avatar--initials"),w.textContent=V.slice(0,2),r(w,$),w}const W={r:255,g:255,b:255},b={r:20,g:24,b:28},J=3;function Q(y){const $=y.split(/[,/\s]+/).filter(Boolean).map(Number);return $.length<3||$.some(w=>Number.isNaN(w))?null:{r:$[0],g:$[1],b:$[2]}}function ne(y,$){const w=String($).trim();if(!w)return null;if(y&&y.createElement)try{const oe=y.defaultView;if(oe&&oe.getComputedStyle){const ie=y.createElement("span");ie.style.color=w;const _e=/rgba?\(([^)]+)\)/.exec(oe.getComputedStyle(ie).color||"");if(_e)return Q(_e[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(w)){let oe=w.slice(1);return(oe.length===3||oe.length===4)&&(oe=oe.split("").map(ie=>ie+ie).join("")),{r:parseInt(oe.slice(0,2),16),g:parseInt(oe.slice(2,4),16),b:parseInt(oe.slice(4,6),16)}}const V=/rgba?\(([^)]+)\)/.exec(w);return V?Q(V[1]):null}function Z(y){const $=w=>{const V=w/255;return V<=.03928?V/12.92:((V+.055)/1.055)**2.4};return .2126*$(y.r)+.7152*$(y.g)+.0722*$(y.b)}function Y(y,$){const w=Z(y),V=Z($),oe=Math.max(w,V),ie=Math.min(w,V);return(oe+.05)/(ie+.05)}function Ne(y,$){const w=ne(y,$);return w?Y(w,W)<J||Y(w,b)<J:!0}function ve(y,$){const w=y.createElement("span");w.className="lat-combo__dot",w.setAttribute("aria-hidden","true");const V=String($.dot);return w.style.background=V,Ne(y,V)&&w.setAttribute("data-ring","true"),w}function se(y,$){const w=$&&$.dot;if(w!=null&&w!=="")return ve(y,$);const V=$&&$.icon;if(V!=null&&V!=="")return B(y,V,$.color);const oe=$&&$.avatar;return oe!=null&&oe!==""?z(y,$):null}function k(y,$,w){if(typeof w!="function")return null;const V=w($);if(V==null||V===!1)return null;if(V.nodeType)return V.cloneNode(!0);const oe=y.createElement("span");oe.className="lat-combo__template";const ie=String(V);return ie.includes("<")?oe.innerHTML=T(y,ie):oe.textContent=ie,oe}function I(y){return y!=null&&typeof y=="object"?y.value:y}function F(y){return y==null?"":typeof y!="object"?String(y):y.label!=null?String(y.label):y.title!=null?String(y.title):y.value==null?"":String(y.value)}function p(y){return y==null||typeof y!="object"?null:y.description!=null?String(y.description):y.subtitle!=null?String(y.subtitle):null}function D(y){return p(y)!=null||y!=null&&typeof y=="object"&&(y.avatar!=null||y.icon!=null)}function G(y){const $=y!=null&&typeof y=="object"?y:{};return{value:I(y),label:F(y),description:p(y),avatar:$.avatar,icon:$.icon,color:$.color,dot:$.dot,disabled:$.disabled===!0}}function R(y){if(Array.isArray(y))return{items:y,total:y.length,hasMore:!1};if(y&&typeof y=="object"){const $=Array.isArray(y.items)?y.items:[];return{items:$,total:typeof y.total=="number"?y.total:$.length,hasMore:y.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function ee(y,$){return y===$?!0:y!=null&&$!=null&&String(y)===String($)}function P(y,$,w={}){const V=y&&y.defaultView;return V&&V.Event?new V.Event($,w):{type:$,bubbles:w.bubbles!==!1,cancelable:w.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function N(y,$={}){const w=$.doc||y&&y.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;w&&(L(w),S(w),u(w));const V=typeof $.t=="function"?$.t:re,oe=$.multiple===!0,ie=oe&&["above","below"].includes($.chipPlacement)?$.chipPlacement:"inside";w&&ie!=="inside"&&m(w);const _e=typeof $.debounce=="number"&&$.debounce>=0?$.debounce:h,Oe=typeof $.pageSize=="number"&&$.pageSize>0?$.pageSize:x,Se=$.selectAll===!0,j=oe?Array.isArray($.value)?$.value:$.value==null?[]:[$.value]:$.value==null?null:$.value,te=w.createElement("div");te.className="lat-combo",oe&&te.setAttribute("data-multiple","true"),ie!=="inside"&&te.setAttribute("data-chip-placement",ie),$.inForm||(te.setAttribute("data-lattice-standalone","true"),te.setAttribute("data-density",["compact","standard","comfortable"].includes($.density)?$.density:"standard"));const ce=w.createElement("div");ce.className="lat-combo__control";const K=w.createElement("div");K.className="lat-combo__chips";const de=w.createElement("span");de.className="lat-combo__summary",de.hidden=!0;const ue=w.createElement("div");ue.className="lat-combo__chip-row",ue.setAttribute("role","group"),ue.hidden=!0;const be=ie==="inside"?K:ue;typeof $.maxHeight=="number"&&(be.style.maxHeight=`${$.maxHeight}px`);const Ce=w.createElement("span");Ce.className="lat-combo__value",Ce.setAttribute("aria-hidden","true"),Ce.hidden=!0;const Ae=w.createElement("input");Ae.className="lat-combo__input",Ae.type="text",Ae.setAttribute("role","combobox"),Ae.setAttribute("aria-autocomplete","list"),Ae.setAttribute("aria-haspopup","listbox"),oe&&Ae.setAttribute("aria-multiselectable","true"),$.placeholder!=null&&(Ae.placeholder=String($.placeholder)),$.inForm&&$.ariaLabel!=null&&Ae.setAttribute("aria-label",String($.ariaLabel));const ye=w.createElement("button");ye.type="button",ye.className="lat-combo__toggle",ye.setAttribute("aria-label",V("form.combo.toggle")),ye.setAttribute("aria-haspopup","listbox");const me=f(w,"chevronDown");me&&ye.appendChild(me);const we=w.createElement("div");we.className="lat-combo__popup",we.hidden=!0;const q=w.createElement("div");q.className="lat-combo__list",q.setAttribute("role","listbox");const $e=w.createElement("div");$e.className="lat-combo__spacer",q.appendChild($e);const he=w.createElement("div");he.className="lat-combo__status",he.setAttribute("role","status"),he.setAttribute("aria-live","polite");const Me=w.createElement("div");Me.className="lat-combo__option lat-combo__option--create",Me.setAttribute("role","option"),Me.hidden=!0,q.insertBefore(Me,$e),we.appendChild(q),we.appendChild(he),ce.appendChild(we),ie!=="inside"?(ce.appendChild(Ae),ce.appendChild(ye),ue.appendChild(K),ue.appendChild(de),ie==="above"&&te.appendChild(ue),te.appendChild(ce),ie==="below"&&te.appendChild(ue)):(ce.appendChild(K),ce.appendChild(de),ce.appendChild(Ce),ce.appendChild(Ae),ce.appendChild(ye),te.appendChild(ce));const Fe=`lat-combo-lb-${gt()}`;q.id=Fe,Ae.setAttribute("aria-controls",Fe);let fe=[],xe=[];const Te=new Map;let Ue=0,qe=0,Qe=!1,Ge=!1,Je=!1,Le="",We=!1,Ze=-1,at=null,st=0,rt=null;const nt=new Map,Et=Array.isArray($.options)?$.options:[],et=[],Ye=[];let ct=0,ft=0;const St=gt(),_t=[];let ot=!1;function gt(){return gt.n=(gt.n||0)+1,gt.n}function tt(le,ke,Pe){le.addEventListener(ke,Pe),_t.push(()=>le.removeEventListener(ke,Pe))}function it(le){const ke=Te.get(String(le));if(ke)return ke;if(le!=null){for(const Pe of Te.values())if(ee(Pe.value,le))return Pe}return null}function Ot(le){const ke=it(le);return ke?ke.label:le==null?"":String(le)}function pt(le){le.value!=null&&Te.set(String(le.value),le)}function Nt(le){if(typeof $.resolveLabels!="function")return;const ke=le.filter(He=>He!=null&&!it(He));if(ke.length===0)return;const Pe=$.resolveLabels(ke),ze=He=>{if(!(ot||!Array.isArray(He))){for(const Ve of He){const Ie=G(Ve);Ie.value!=null&&pt(Ie)}xe=xe.map(Ve=>it(Ve.value)||Ve),Ee(),pe()}};Pe&&typeof Pe.then=="function"?Pe.then(ze):ze(Pe)}function vt(){y.dispatchEvent(P(w,"change",{bubbles:!0}))}function Lt(){return oe?xe.map(le=>le.value):xe.length?xe[0].value:null}function Pt(le){let ke;if(oe)ke=Array.isArray(le)?le:le==null?[]:[le];else{const ze=Array.isArray(le)?le.length?le[0]:null:le;ke=ze==null?[]:[ze]}const Pe=ke.filter(ze=>ze!=null&&(ze!==""||it(ze)!=null));xe=Pe.map(ze=>it(ze)||{value:ze,label:ze==null?"":String(ze),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Nt(Pe),Ee(),kt(),At()}function ut(){return $.readOnly===!0}function Mt(){xe.length!==0&&(xe=[],Ee(),kt(),At(),vt())}function lt(le){const ke=w.createElement("span");ke.className="lat-combo__chip",ke.dataset.value=String(le.value);const Pe=k(w,le,$.selectedTemplate);if(Pe){const ze=w.createElement("span");ze.className="lat-combo__chip-label",ze.appendChild(Pe),ke.appendChild(ze)}else{const ze=se(w,le);ze&&ke.appendChild(ze);const He=w.createElement("span");He.className="lat-combo__chip-label",He.textContent=Ot(le.value),ke.appendChild(He)}if(!le.disabled&&!ut()){const ze=w.createElement("button");ze.type="button",ze.className="lat-combo__chip-remove",ze.setAttribute("aria-label",V("form.combo.remove",{label:Ot(le.value)})),ze.textContent="×",tt(ze,"click",Ve=>{Ve.stopPropagation(),De(le.value)}),ke.appendChild(ze)}return ke}function ae(){oe||(Ae.value=xe.length?Ot(xe[0].value):"")}function pe(){if(oe){Ce.hidden=!0;return}for(;Ce.firstChild;)Ce.removeChild(Ce.firstChild);if(xe.length===0){Ce.hidden=!0;return}const le=xe[0],Pe=k(w,le,$.selectedTemplate)||se(w,le);Pe?(Ce.appendChild(Pe),Ce.hidden=!1):Ce.hidden=!0}function ge(le){const ke=V("form.combo.selected",{count:le});return ke==="form.combo.selected"?`Selected: ${le}`:ke}function Ee(){for(;K.firstChild;)K.removeChild(K.firstChild);if(oe){for(const le of xe)K.appendChild(lt(le));K.hidden=xe.length===0}else K.hidden=!0;ie!=="inside"&&(ue.hidden=!oe||xe.length===0,ue.setAttribute("aria-label",ge(xe.length))),ae(),pe(),Be()}function Be(){if(!oe||xe.length===0){de.hidden=!0;return}const le=be.getBoundingClientRect().bottom;let ke=0;const Pe=[...K.children];for(const ze of Pe)ze.getBoundingClientRect().top>=le-1&&(ke+=1);ke>0?(de.hidden=!1,de.textContent=V("form.combo.more",{count:ke})):de.hidden=!0}function De(le){if(ut())return;const ke=xe.length;xe=xe.filter(Pe=>!ee(Pe.value,le)),xe.length!==ke&&(Ee(),kt(),At(),vt())}function Re(le){if(ut())return;const ke=it(le)||{value:le,label:le==null?"":String(le),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(pt(ke),oe){if(xe.some(Pe=>ee(Pe.value,le)))return;xe=[...xe,ke]}else{if(xe.length&&ee(xe[0].value,le))return;xe=[ke]}Ee(),kt(),At(),vt()}function Xe(){if(ut())return;const le=fe.filter(ke=>!ke.disabled).map(ke=>({...ke}));if(!(le.length===0&&xe.length===0)){for(const ke of le)pt(ke);xe=le,Ee(),kt(),At(),vt()}}function dt(){return fe.length>0&&fe.every(le=>xe.some(ke=>ee(ke.value,le.value)))}function kt(){const le=te.querySelector(".lat-combo__select-all");if(!le)return;const ke=dt();le.setAttribute("aria-selected",ke?"true":"false"),le.textContent=V("form.combo.selectAll")}function yt(){We||ot||$.disabled||(We=!0,we.hidden=!1,Ae.setAttribute("aria-expanded","true"),ye.setAttribute("aria-expanded","true"),Xt(),fe.length===0&&$.load&&!Ge&&!Je?$t(0):Ct())}function ht(){We&&(We=!1,we.hidden=!0,Ae.setAttribute("aria-expanded","false"),ye.setAttribute("aria-expanded","false"),Ae.removeAttribute("aria-activedescendant"))}function Gt(){ot||(Ae.focus(),yt())}function Kt(){Ae.blur()}function wt(le){if(Ze=le,!We)return;const ke=le===-1?`${Me.id}`:`${Fe}-opt-${le}`;Ae.setAttribute("aria-activedescendant",ke)}function Tt(le){const ke=Me.hidden===!1,Pe=ke?-1:0,ze=Math.max(Pe,fe.length-1);if(fe.length===0&&!ke){wt(-1);return}wt(Math.max(Pe,Math.min(ze,Ze+le))),zt()}function zt(){if(Ze<0)return;const le=Ye[Ze]||0,ke=le+(et[Ze]||It(fe[Ze]));le<ft?q.scrollTop=le:ke>ft+ct&&(q.scrollTop=ke-ct)}function It(le){return D(le)?52:30}function Rt(le){return`${Fe}-opt-${le}`}function Zt(le,ke){const Pe=w.createElement("div");Pe.className="lat-combo__option",Pe.setAttribute("role","option"),Pe.id=Rt(ke);const ze=xe.some(Ie=>ee(Ie.value,le.value));Pe.setAttribute("aria-selected",ze?"true":"false"),le.disabled&&Pe.setAttribute("aria-disabled","true");const He=k(w,le,$.optionTemplate);if(He)Pe.appendChild(He);else{const Ie=se(w,le);Ie&&Pe.appendChild(Ie);const Ke=w.createElement("span");Ke.className="lat-combo__text";const bt=w.createElement("span");if(bt.className="lat-combo__title",bt.textContent=le.label,Ke.appendChild(bt),le.description!=null){const Dt=w.createElement("span");Dt.className="lat-combo__subtitle",Dt.textContent=le.description,Ke.appendChild(Dt)}Pe.appendChild(Ke)}return tt(Pe,"click",Ie=>{Ie.stopPropagation(),Ht(ke)}),Pe}function Yt(){const le=$.newOptions&&!ut()&&Le.trim()!=="",ke=fe.some(Pe=>ee(Pe.value,Le)||Pe.label===Le);if(!le||ke){Me.hidden=!0;return}Me.hidden=!1,Me.id=`${Fe}-create`,Me.textContent=V("form.combo.create",{query:Le}),Ze===-1&&wt(-1)}function Ct(){if(Yt(),We&&(ct=q.clientHeight||ct),fe.length===0){$e.style.height="0px",jt();return}let le=!1;for(let Ie=0;Ie<fe.length;Ie++)et[Ie]==null&&(et[Ie]=It(fe[Ie]));Ye.length=0,Ye[0]=0;for(let Ie=1;Ie<=fe.length;Ie++)Ye[Ie]=Ye[Ie-1]+et[Ie-1];const ke=Ye[fe.length];$e.style.height=`${ke}px`;const Pe=ft,ze=ft+ct;let He=0;for(;He<fe.length-1&&Ye[He+1]<Pe;)He+=1;let Ve=He;for(;Ve<fe.length&&Ye[Ve]<ze;)Ve+=1;for(Ve=Math.min(fe.length,Ve+2);$e.firstChild;)$e.removeChild($e.firstChild);for(let Ie=He;Ie<Ve;Ie++){const Ke=Zt(fe[Ie],Ie);Ke.style.position="absolute",Ke.style.left="0",Ke.style.right="0",Ke.style.top="0",Ke.style.transform=`translateY(${Ye[Ie]}px)`,$e.appendChild(Ke)}for(let Ie=He;Ie<Ve;Ie++){const Ke=w.getElementById(Rt(Ie));if(!Ke)continue;const bt=Ke.getBoundingClientRect().height;bt>0&&Math.abs(bt-et[Ie])>.5&&(et[Ie]=bt,le=!0)}le?Ct():jt()}function jt(){for(;he.firstChild;)he.removeChild(he.firstChild);if(Ge)he.textContent=V("form.combo.loading"),he.dataset.state="loading";else if(Je){he.textContent=V("form.combo.error"),he.dataset.state="error";const le=w.createElement("button");le.type="button",le.className="lat-combo__retry",le.textContent=V("form.combo.retry"),tt(le,"click",Pe=>{Pe.stopPropagation(),Ft()}),he.appendChild(le)}else fe.length===0&&!$.load&&Et.length===0?he.textContent="":fe.length===0?(he.textContent=V("form.combo.empty"),he.dataset.state="empty"):(he.textContent=V("form.combo.results",{count:qe}),he.dataset.state="results")}function At(){const le=`${Fe}-opt-`;for(const ke of q.querySelectorAll('.lat-combo__option[role="option"]')){const Pe=ke.id||"";if(!Pe.startsWith(le))continue;const ze=Number(Pe.slice(le.length));if(Number.isNaN(ze))continue;const He=fe[ze];He&&ke.setAttribute("aria-selected",xe.some(Ve=>ee(Ve.value,He.value))?"true":"false")}kt()}function Xt(){ct=q.clientHeight||240}function qt(){if(Se&&oe){const le=w.createElement("div");le.className="lat-combo__select-all",le.setAttribute("role","option"),tt(le,"click",Pe=>{Pe.stopPropagation(),!ut()&&(dt()?(xe=[],Ee(),At(),vt()):Xe())}),we.insertBefore(le,q)}}function $t(le){if(ot)return;if(typeof $.load!="function"){const Ve=Le.trim().toLowerCase(),Ie=Et.map(G).filter(Ke=>Ve===""||Ke.label.toLowerCase().includes(Ve));fe=Ie,qe=Ie.length,Qe=!1,Ue=1,et.length=0,Ye.length=0;for(const Ke of fe)pt(Ke);Ct();return}if(Ge)return;Ge=!0,Je=!1,st+=1;const ke=st;at&&at.abort(),at=new AbortController;const Pe=at.signal;jt();let ze;try{ze=$.load({search:Le,page:le,signal:Pe,pageSize:Oe})}catch{Ge=!1,Je=!0,jt();return}const He=Ve=>{if(ot||ke!==st)return;Ge=!1;const Ie=R(Ve),Ke=Ie.items.map(G);le===0?(fe=Ke,et.length=0,Ye.length=0,nt.set(Le,{items:Ke,total:Ie.total,hasMore:Ie.hasMore,nextPage:1})):fe=fe.concat(Ke),qe=typeof Ie.total=="number"?Ie.total:fe.length,Qe=Ie.hasMore,Ue=le+1;for(const bt of Ke)pt(bt);et.length=fe.length,Ct(),Bt()};ze&&typeof ze.then=="function"?ze.then(He).catch(Ve=>{ot||ke!==st||Ve&&Ve.name==="AbortError"||(Ge=!1,Je=!0,jt())}):He(ze)}function Bt(){if(!Qe||Ge||!We)return;(Ye[fe.length]||0)<ct+t&&$t(Ue)}function Ft(){ot||(rt&&(clearTimeout(rt),rt=null),at&&at.abort(),st+=1,nt.delete(Le),fe=[],qe=0,Qe=!1,Ge=!1,Je=!1,Ue=0,et.length=0,Ye.length=0,Ze=-1,$t(0))}function Jt(){Le=Ae.value,at&&at.abort(),st+=1;const le=nt.get(Le);if(le&&typeof $.load=="function"){fe=le.items.map(G),qe=le.total,Qe=le.hasMore,Ue=le.nextPage,Ge=!1,Je=!1,et.length=0,Ye.length=0,Ze=-1;for(const ke of fe)pt(ke);Ct(),Bt();return}fe=[],qe=0,Qe=!1,Ge=!1,Je=!1,Ue=0,et.length=0,Ye.length=0,Ze=-1,$t(0)}function Qt(){rt&&clearTimeout(rt),rt=setTimeout(()=>{rt=null,Jt()},_e)}function er(le){const ke=Me.hidden===!1,Pe=fe.length+(ke?1:0);if(le.key==="ArrowDown"){if(le.preventDefault(),yt(),Pe===0)return;Ze===-1?wt(fe.length?0:-1):Tt(1)}else if(le.key==="ArrowUp"){if(le.preventDefault(),!We){yt();return}if(Ze===-1){fe.length&&wt(0);return}Tt(-1)}else if(le.key==="Home"){if(!We)return;le.preventDefault(),wt(ke?-1:0),zt()}else if(le.key==="End"){if(!We)return;le.preventDefault(),wt(fe.length-1),zt()}else if(le.key==="PageDown"){if(!We)return;le.preventDefault(),Tt(Math.max(1,Math.floor(Math.max(ct,60)/30)))}else if(le.key==="PageUp"){if(!We)return;le.preventDefault(),Tt(-Math.max(1,Math.floor(Math.max(ct,60)/30)))}else if(le.key==="Enter"){if(!We){yt();return}Ze===-1&&ke?(le.preventDefault(),tr()):Ze>=0&&fe[Ze]&&(le.preventDefault(),Ht(Ze))}else le.key==="Escape"?We&&(le.preventDefault(),ht()):le.key==="Backspace"&&oe&&Ae.value===""&&xe.length?(le.preventDefault(),De(xe[xe.length-1].value)):le.key==="Tab"&&ht()}function tr(){if(!$.newOptions||ut())return;const le=Le.trim();if(le==="")return;let ke;typeof $.newOptions=="object"&&typeof $.newOptions.create=="function"?ke=$.newOptions.create(le):ke={value:le,label:le};const Pe=G(ke);pt(Pe),Re(Pe.value),ht()}function Ht(le){if(ut())return;const ke=fe[le];!ke||ke.disabled||(oe?(xe.some(Pe=>ee(Pe.value,ke.value))?De(ke.value):Re(ke.value),Ae.focus()):(Re(ke.value),ht(),Ae.value=ke.label))}const rr=()=>{We||(Ae.focus(),yt())},nr=le=>{le.stopPropagation(),We?ht():(Ae.focus(),yt())},or=()=>{Qt()},ar=le=>{le.stopPropagation()},ir=()=>{ft=q.scrollTop,Ct(),Qe&&!Ge&&q.scrollTop+q.clientHeight>=q.scrollHeight-t&&$t(Ue)},lr=()=>{y.dispatchEvent(P(w,"focus"))},sr=()=>{y.dispatchEvent(P(w,"blur")),ht()};tt(ce,"click",rr),tt(ye,"click",nr),tt(Ae,"input",or),tt(Ae,"change",ar),tt(Ae,"keydown",er),tt(Ae,"focus",lr),tt(Ae,"blur",sr),tt(q,"scroll",ir),tt(q,"mousedown",le=>le.preventDefault()),qt(),Et.length&&typeof $.load!="function"&&(Le="",$t(0)),Pt(j);const mt={el:y,root:te,input:Ae,getValue:Lt,setValue(le){return Pt(le),mt},reload(){return Ft(),mt},clear(){return Mt(),mt},open(){return yt(),mt},close(){return ht(),mt},focus(){return Gt(),mt},blur(){return Kt(),mt},setDisabled(le){$.disabled=le,Ae.disabled=le,ye.disabled=le,le&&ht()},setReadOnly(le){$.readOnly=le,Ae.readOnly=le,le?Ae.setAttribute("aria-readonly","true"):Ae.removeAttribute("aria-readonly"),Ee()},destroy(){ot=!0,rt&&clearTimeout(rt),at&&at.abort();for(const le of _t.splice(0))le();for(;te.firstChild;)te.removeChild(te.firstChild)}};return y.appendChild(te),y.__combo=mt,mt}U("combo",{kind:"field",build(y,$){const w=$.doc.createElement("div"),V=y.props||{},oe=N(w,{load:V.load,options:y.options,multiple:V.multiple,value:y.value,resolveLabels:V.resolveLabels,newOptions:V.newOptions,optionTemplate:V.optionTemplate,selectedTemplate:V.selectedTemplate,selectAll:V.selectAll,debounce:V.debounce,pageSize:V.pageSize,maxHeight:V.maxHeight,chipPlacement:V.chipPlacement,placeholder:y.placeholder,ariaLabel:y.label,t:$.t,doc:$.doc,inForm:!0});if($.disposers.push(()=>oe.destroy()),Array.isArray(V.dependsOn))for(const ie of V.dependsOn){const _e=Se=>{Se.name===ie&&(oe.clear(),oe.reload())},Oe=$.emitter.on("change",_e);$.disposers.push(Oe)}return w.focus=()=>oe.focus(),w.blur=()=>oe.blur(),w},read(y){return y.__combo?y.__combo.getValue():null},write(y,$){y.__combo&&y.__combo.setValue($)},state(y,$){y.__combo&&(y.__combo.setDisabled($.disabled===!0),y.__combo.setReadOnly($.readOnly===!0))}})}),je("packages/modules/form/extras.js",function(M,X){"use strict";Object.defineProperty(M,"injectChromeStyles",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"buildTooltip",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"renderAvatarAddon",{enumerable:!0,get:function(){return m}}),Object.defineProperty(M,"buildAddons",{enumerable:!0,get:function(){return E}}),Object.defineProperty(M,"buildPanel",{enumerable:!0,get:function(){return _}});const U=X("packages/modules/form/styles.js").NS,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/combo.js"),C=L.initialsFor,A=L.renderAvatar,H="data-lattice-form-chrome-styles";function T(c){return c==="cols"?`${U}__cols`:c==="items"?`${U}__items`:`${U}__rows`}function v(){return`
|
|
1144
|
-
.${
|
|
1168
|
+
`.trim()}function n(E){const G=E&&E.documentElement;if(!G||G.getAttribute(N))return;G.setAttribute(N,"1");const R=E.createElement("style");R.textContent=i(),(E.head||E.body||G).appendChild(R)}function a(E){return/^(https?:|data:image\/|\/)/i.test(E)}function r(E){const G=String(E??"").trim();if(!G)return"";const R=G.split(/\s+/);return R.length>=2?(R[0][0]+R[1][0]).toUpperCase():G.slice(0,2).toUpperCase()}function s(E){let G=5381;const R=String(E??"");for(let ce=0;ce<R.length;ce++)G=(G<<5)+G+R.charCodeAt(ce)>>>0;return G}function M(E){if(E&&E.color!=null&&String(E.color)!=="")return String(E.color);const G=E&&E.label!=null?String(E.label):E&&E.value!=null?String(E.value):"";return`hsl(${s(G)%360}, 62%, 45%)`}function D(E,G){E.style.background=M(G),E.style.color="#fff"}function Y(E,G){const R=A[G];if(!R)return null;const ce=E.createElementNS(c,"svg");ce.setAttribute("class","lat-combo__icon"),ce.setAttribute("viewBox",R.viewBox||"0 0 16 16"),ce.setAttribute("aria-hidden","true"),ce.setAttribute("focusable","false");const me=R.paint==="stroke";for(const xe of R.paths||[]){const C=E.createElementNS(c,"path");C.setAttribute("d",xe),me?(C.setAttribute("fill","none"),C.setAttribute("stroke","currentColor"),C.setAttribute("stroke-width","1.5"),C.setAttribute("stroke-linecap","round"),C.setAttribute("stroke-linejoin","round")):C.setAttribute("fill","currentColor"),ce.appendChild(C)}return ce}function U(E,G,R){if(G==null||G==="")return null;let ce;if(G.nodeType)ce=G.cloneNode(!0),ce.setAttribute&&ce.setAttribute("aria-hidden","true");else{const me=String(G),xe=Y(E,me);xe?ce=xe:(ce=E.createElement("span"),ce.className="lat-combo__icon lat-combo__icon--glyph",ce.setAttribute("aria-hidden","true"),ce.textContent=me.slice(0,2))}return R!=null&&String(R)!==""&&ce&&ce.style&&(ce.style.color=String(R)),ce}function Q(E,G){const R=E.createElement("span");R.className="lat-combo__avatar",R.setAttribute("aria-hidden","true");const ce=String(G.avatar);if(a(ce)){const me=E.createElement("img");return me.className="lat-combo__avatar-img",me.alt="",me.src=ce,me.addEventListener("error",()=>{for(;R.firstChild;)R.removeChild(R.firstChild);R.classList.add("lat-combo__avatar--initials"),R.textContent=r(G.label),D(R,G)}),R.appendChild(me),R}return R.classList.add("lat-combo__avatar--initials"),R.textContent=ce.slice(0,2),D(R,G),R}const oe={r:255,g:255,b:255},F={r:20,g:24,b:28},K=3;function W(E){const G=E.split(/[,/\s]+/).filter(Boolean).map(Number);return G.length<3||G.some(R=>Number.isNaN(R))?null:{r:G[0],g:G[1],b:G[2]}}function ge(E,G){const R=String(G).trim();if(!R)return null;if(E&&E.createElement)try{const me=E.defaultView;if(me&&me.getComputedStyle){const xe=E.createElement("span");xe.style.color=R;const C=/rgba?\(([^)]+)\)/.exec(me.getComputedStyle(xe).color||"");if(C)return W(C[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(R)){let me=R.slice(1);return(me.length===3||me.length===4)&&(me=me.split("").map(xe=>xe+xe).join("")),{r:parseInt(me.slice(0,2),16),g:parseInt(me.slice(2,4),16),b:parseInt(me.slice(4,6),16)}}const ce=/rgba?\(([^)]+)\)/.exec(R);return ce?W(ce[1]):null}function ve(E){const G=R=>{const ce=R/255;return ce<=.03928?ce/12.92:((ce+.055)/1.055)**2.4};return .2126*G(E.r)+.7152*G(E.g)+.0722*G(E.b)}function le(E,G){const R=ve(E),ce=ve(G),me=Math.max(R,ce),xe=Math.min(R,ce);return(me+.05)/(xe+.05)}function x(E,G){const R=ge(E,G);return R?le(R,oe)<K||le(R,F)<K:!0}function L(E,G){const R=E.createElement("span");R.className="lat-combo__dot",R.setAttribute("aria-hidden","true");const ce=String(G.dot);return R.style.background=ce,x(E,ce)&&R.setAttribute("data-ring","true"),R}function I(E,G){const R=G&&G.dot;if(R!=null&&R!=="")return L(E,G);const ce=G&&G.icon;if(ce!=null&&ce!=="")return U(E,ce,G.color);const me=G&&G.avatar;return me!=null&&me!==""?Q(E,G):null}function g(E,G,R){if(typeof R!="function")return null;const ce=R(G);if(ce==null||ce===!1)return null;if(ce.nodeType)return ce.cloneNode(!0);const me=E.createElement("span");me.className="lat-combo__template";const xe=String(ce);return xe.includes("<")?me.innerHTML=O(E,xe):me.textContent=xe,me}function T(E){return E!=null&&typeof E=="object"?E.value:E}function X(E){return E==null?"":typeof E!="object"?String(E):E.label!=null?String(E.label):E.title!=null?String(E.title):E.value==null?"":String(E.value)}function z(E){return E==null||typeof E!="object"?null:E.description!=null?String(E.description):E.subtitle!=null?String(E.subtitle):null}function te(E){return z(E)!=null||E!=null&&typeof E=="object"&&(E.avatar!=null||E.icon!=null)}function re(E){const G=E!=null&&typeof E=="object"?E:{};return{value:T(E),label:X(E),description:z(E),avatar:G.avatar,icon:G.icon,color:G.color,dot:G.dot,disabled:G.disabled===!0}}function j(E){if(Array.isArray(E))return{items:E,total:E.length,hasMore:!1};if(E&&typeof E=="object"){const G=Array.isArray(E.items)?E.items:[];return{items:G,total:typeof E.total=="number"?E.total:G.length,hasMore:E.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function k(E,G){return E===G?!0:E!=null&&G!=null&&String(E)===String(G)}function Z(E,G,R={}){const ce=E&&E.defaultView;return ce&&ce.Event?new ce.Event(G,R):{type:G,bubbles:R.bubbles!==!1,cancelable:R.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function H(E,G={}){const R=G.doc||E&&E.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;R&&(P(R),n(R),u(R));const ce=typeof G.t=="function"?G.t:ee,me=G.multiple===!0,xe=me&&["above","below"].includes(G.chipPlacement)?G.chipPlacement:"inside";R&&xe!=="inside"&&f(R);const C=typeof G.debounce=="number"&&G.debounce>=0?G.debounce:t,ne=typeof G.pageSize=="number"&&G.pageSize>0?G.pageSize:l,se=G.selectAll===!0,J=me?Array.isArray(G.value)?G.value:G.value==null?[]:[G.value]:G.value==null?null:G.value,ue=R.createElement("div");ue.className="lat-combo",me&&ue.setAttribute("data-multiple","true"),xe!=="inside"&&ue.setAttribute("data-chip-placement",xe),G.inForm||(ue.setAttribute("data-lattice-standalone","true"),ue.setAttribute("data-density",["compact","standard","comfortable"].includes(G.density)?G.density:"standard"));const he=R.createElement("div");he.className="lat-combo__control";const be=R.createElement("div");be.className="lat-combo__chips";const Ee=R.createElement("span");Ee.className="lat-combo__summary",Ee.hidden=!0;const Oe=R.createElement("div");Oe.className="lat-combo__chip-row",Oe.setAttribute("role","group"),Oe.hidden=!0;const Ae=xe==="inside"?be:Oe;typeof G.maxHeight=="number"&&(Ae.style.maxHeight=`${G.maxHeight}px`);const Ce=R.createElement("span");Ce.className="lat-combo__value",Ce.setAttribute("aria-hidden","true"),Ce.hidden=!0;const ye=R.createElement("input");ye.className="lat-combo__input",ye.type="text",ye.setAttribute("role","combobox"),ye.setAttribute("aria-autocomplete","list"),ye.setAttribute("aria-haspopup","listbox"),me&&ye.setAttribute("aria-multiselectable","true"),G.placeholder!=null&&(ye.placeholder=String(G.placeholder)),G.inForm&&G.ariaLabel!=null&&ye.setAttribute("aria-label",String(G.ariaLabel));const ke=R.createElement("button");ke.type="button",ke.className="lat-combo__toggle",ke.setAttribute("aria-label",ce("form.combo.toggle")),ke.setAttribute("aria-haspopup","listbox");const Le=d(R,"chevronDown");Le&&ke.appendChild(Le);const De=R.createElement("div");De.className="lat-combo__popup lat-combo",De.hidden=!0;const He=R.createElement("div");He.className="lat-combo__list",He.setAttribute("role","listbox");const de=R.createElement("div");de.className="lat-combo__spacer",He.appendChild(de);const fe=R.createElement("div");fe.className="lat-combo__status",fe.setAttribute("role","status"),fe.setAttribute("aria-live","polite");const we=R.createElement("div");we.className="lat-combo__option lat-combo__option--create",we.setAttribute("role","option"),we.hidden=!0,He.insertBefore(we,de),De.appendChild(He),De.appendChild(fe),he.appendChild(De),xe!=="inside"?(he.appendChild(ye),he.appendChild(ke),Oe.appendChild(be),Oe.appendChild(Ee),xe==="above"&&ue.appendChild(Oe),ue.appendChild(he),xe==="below"&&ue.appendChild(Oe)):(he.appendChild(be),he.appendChild(Ee),he.appendChild(Ce),he.appendChild(ye),he.appendChild(ke),ue.appendChild(he));const Se=`lat-combo-lb-${wt()}`;He.id=Se,ye.setAttribute("aria-controls",Se);let Te=[],Pe=[];const tt=new Map;let Ze=0,Je=0,Be=!1,Qe=!1,lt=!1,ot="",Ye=!1,Xe=-1,qe=null,_t=0,st=null;const pt=new Map,Ot=Array.isArray(G.options)?G.options:[],rt=[],et=[];let it=0,ut=0;const Lt=wt(),jt=[];let at=!1,dt=null;function wt(){return wt.n=(wt.n||0)+1,wt.n}function nt(ie,$e,Me){ie.addEventListener($e,Me),jt.push(()=>ie.removeEventListener($e,Me))}function vt(ie){const $e=tt.get(String(ie));if($e)return $e;if(ie!=null){for(const Me of tt.values())if(k(Me.value,ie))return Me}return null}function Nt(ie){const $e=vt(ie);return $e?$e.label:ie==null?"":String(ie)}function mt(ie){ie.value!=null&&tt.set(String(ie.value),ie)}function Tt(ie){if(typeof G.resolveLabels!="function")return;const $e=ie.filter(We=>We!=null&&!vt(We));if($e.length===0)return;const Me=G.resolveLabels($e),ze=We=>{if(!(at||!Array.isArray(We))){for(const Ge of We){const Re=re(Ge);Re.value!=null&&mt(Re)}Pe=Pe.map(Ge=>vt(Ge.value)||Ge),Ue(),Ie()}};Me&&typeof Me.then=="function"?Me.then(ze):ze(Me)}function yt(){E.dispatchEvent(Z(R,"change",{bubbles:!0}))}function ct(){return me?Pe.map(ie=>ie.value):Pe.length?Pe[0].value:null}function ae(ie){let $e;if(me)$e=Array.isArray(ie)?ie:ie==null?[]:[ie];else{const ze=Array.isArray(ie)?ie.length?ie[0]:null:ie;$e=ze==null?[]:[ze]}const Me=$e.filter(ze=>ze!=null&&(ze!==""||vt(ze)!=null));Pe=Me.map(ze=>vt(ze)||{value:ze,label:ze==null?"":String(ze),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Tt(Me),Ue(),At(),Et()}function pe(){return G.readOnly===!0}function _e(){Pe.length!==0&&(Pe=[],Ue(),At(),Et(),yt())}function je(ie){const $e=R.createElement("span");$e.className="lat-combo__chip",$e.dataset.value=String(ie.value);const Me=g(R,ie,G.selectedTemplate);if(Me){const ze=R.createElement("span");ze.className="lat-combo__chip-label",ze.appendChild(Me),$e.appendChild(ze)}else{const ze=I(R,ie);ze&&$e.appendChild(ze);const We=R.createElement("span");We.className="lat-combo__chip-label",We.textContent=Nt(ie.value),$e.appendChild(We)}if(!ie.disabled&&!pe()){const ze=R.createElement("button");ze.type="button",ze.className="lat-combo__chip-remove",ze.setAttribute("aria-label",ce("form.combo.remove",{label:Nt(ie.value)})),ze.textContent="×",nt(ze,"click",Ge=>{Ge.stopPropagation(),zt(ie.value)}),$e.appendChild(ze)}return $e}function Ve(){me||(ye.value=Pe.length?Nt(Pe[0].value):"")}function Ie(){if(me){Ce.hidden=!0;return}for(;Ce.firstChild;)Ce.removeChild(Ce.firstChild);if(Pe.length===0){Ce.hidden=!0;return}const ie=Pe[0],Me=g(R,ie,G.selectedTemplate)||I(R,ie);Me?(Ce.appendChild(Me),Ce.hidden=!1):Ce.hidden=!0}function Fe(ie){const $e=ce("form.combo.selected",{count:ie});return $e==="form.combo.selected"?`Selected: ${ie}`:$e}function Ue(){for(;be.firstChild;)be.removeChild(be.firstChild);if(me){for(const ie of Pe)be.appendChild(je(ie));be.hidden=Pe.length===0}else be.hidden=!0;xe!=="inside"&&(Oe.hidden=!me||Pe.length===0,Oe.setAttribute("aria-label",Fe(Pe.length))),Ve(),Ie(),bt()}function bt(){if(!me||Pe.length===0){Ee.hidden=!0;return}const ie=Ae.getBoundingClientRect().bottom;let $e=0;const Me=[...be.children];for(const ze of Me)ze.getBoundingClientRect().top>=ie-1&&($e+=1);$e>0?(Ee.hidden=!1,Ee.textContent=ce("form.combo.more",{count:$e})):Ee.hidden=!0}function zt(ie){if(pe())return;const $e=Pe.length;Pe=Pe.filter(Me=>!k(Me.value,ie)),Pe.length!==$e&&(Ue(),At(),Et(),yt())}function Dt(ie){if(pe())return;const $e=vt(ie)||{value:ie,label:ie==null?"":String(ie),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(mt($e),me){if(Pe.some(Me=>k(Me.value,ie)))return;Pe=[...Pe,$e]}else{if(Pe.length&&k(Pe[0].value,ie))return;Pe=[$e]}Ue(),At(),Et(),yt()}function Yt(){if(pe())return;const ie=Te.filter($e=>!$e.disabled).map($e=>({...$e}));if(!(ie.length===0&&Pe.length===0)){for(const $e of ie)mt($e);Pe=ie,Ue(),At(),Et(),yt()}}function Bt(){return Te.length>0&&Te.every(ie=>Pe.some($e=>k($e.value,ie.value)))}function At(){const ie=ue.querySelector(".lat-combo__select-all");if(!ie)return;const $e=Bt();ie.setAttribute("aria-selected",$e?"true":"false"),ie.textContent=ce("form.combo.selectAll")}function xt(){Ye||at||G.disabled||(Ye=!0,De.hidden=!1,ye.setAttribute("aria-expanded","true"),ke.setAttribute("aria-expanded","true"),dt=w(De,he,{aboveClass:o,onOffscreen:ft}),er(),Te.length===0&&G.load&&!Qe&&!lt?St(0):$t())}function ft(){Ye&&(Ye=!1,De.hidden=!0,De.classList.remove(o),dt&&(dt.close(),dt=null),ye.setAttribute("aria-expanded","false"),ke.setAttribute("aria-expanded","false"),ye.removeAttribute("aria-activedescendant"))}function Xt(){at||(ye.focus(),xt())}function qt(){ye.blur()}function kt(ie){if(Xe=ie,!Ye)return;const $e=ie===-1?`${we.id}`:`${Se}-opt-${ie}`;ye.setAttribute("aria-activedescendant",$e)}function Mt(ie){const $e=we.hidden===!1,Me=$e?-1:0,ze=Math.max(Me,Te.length-1);if(Te.length===0&&!$e){kt(-1);return}kt(Math.max(Me,Math.min(ze,Xe+ie))),It()}function It(){if(Xe<0)return;const ie=et[Xe]||0,$e=ie+(rt[Xe]||Ft(Te[Xe]));ie<ut?He.scrollTop=ie:$e>ut+it&&(He.scrollTop=$e-it)}function Ft(ie){return te(ie)?52:30}function Ht(ie){return`${Se}-opt-${ie}`}function Jt(ie,$e){const Me=R.createElement("div");Me.className="lat-combo__option",Me.setAttribute("role","option"),Me.id=Ht($e);const ze=Pe.some(Re=>k(Re.value,ie.value));Me.setAttribute("aria-selected",ze?"true":"false"),ie.disabled&&Me.setAttribute("aria-disabled","true");const We=g(R,ie,G.optionTemplate);if(We)Me.appendChild(We);else{const Re=I(R,ie);Re&&Me.appendChild(Re);const Ke=R.createElement("span");Ke.className="lat-combo__text";const ht=R.createElement("span");if(ht.className="lat-combo__title",ht.textContent=ie.label,Ke.appendChild(ht),ie.description!=null){const Rt=R.createElement("span");Rt.className="lat-combo__subtitle",Rt.textContent=ie.description,Ke.appendChild(Rt)}Me.appendChild(Ke)}return nt(Me,"click",Re=>{Re.stopPropagation(),Wt($e)}),Me}function Qt(){const ie=G.newOptions&&!pe()&&ot.trim()!=="",$e=Te.some(Me=>k(Me.value,ot)||Me.label===ot);if(!ie||$e){we.hidden=!0;return}we.hidden=!1,we.id=`${Se}-create`,we.textContent=ce("form.combo.create",{query:ot}),Xe===-1&&kt(-1)}function $t(){if(Qt(),Ye&&(it=He.clientHeight||it),Te.length===0){de.style.height="0px",Pt(),dt&&dt.reposition();return}let ie=!1;for(let Re=0;Re<Te.length;Re++)rt[Re]==null&&(rt[Re]=Ft(Te[Re]));et.length=0,et[0]=0;for(let Re=1;Re<=Te.length;Re++)et[Re]=et[Re-1]+rt[Re-1];const $e=et[Te.length];de.style.height=`${$e}px`;const Me=ut,ze=ut+it;let We=0;for(;We<Te.length-1&&et[We+1]<Me;)We+=1;let Ge=We;for(;Ge<Te.length&&et[Ge]<ze;)Ge+=1;for(Ge=Math.min(Te.length,Ge+2);de.firstChild;)de.removeChild(de.firstChild);for(let Re=We;Re<Ge;Re++){const Ke=Jt(Te[Re],Re);Ke.style.position="absolute",Ke.style.left="0",Ke.style.right="0",Ke.style.top="0",Ke.style.transform=`translateY(${et[Re]}px)`,de.appendChild(Ke)}for(let Re=We;Re<Ge;Re++){const Ke=R.getElementById(Ht(Re));if(!Ke)continue;const ht=Ke.getBoundingClientRect().height;ht>0&&Math.abs(ht-rt[Re])>.5&&(rt[Re]=ht,ie=!0)}if(ie){$t();return}Pt(),dt&&dt.reposition()}function Pt(){for(;fe.firstChild;)fe.removeChild(fe.firstChild);if(Qe)fe.textContent=ce("form.combo.loading"),fe.dataset.state="loading";else if(lt){fe.textContent=ce("form.combo.error"),fe.dataset.state="error";const ie=R.createElement("button");ie.type="button",ie.className="lat-combo__retry",ie.textContent=ce("form.combo.retry"),nt(ie,"click",Me=>{Me.stopPropagation(),Ut()}),fe.appendChild(ie)}else Te.length===0&&!G.load&&Ot.length===0?fe.textContent="":Te.length===0?(fe.textContent=ce("form.combo.empty"),fe.dataset.state="empty"):(fe.textContent=ce("form.combo.results",{count:Je}),fe.dataset.state="results")}function Et(){const ie=`${Se}-opt-`;for(const $e of He.querySelectorAll('.lat-combo__option[role="option"]')){const Me=$e.id||"";if(!Me.startsWith(ie))continue;const ze=Number(Me.slice(ie.length));if(Number.isNaN(ze))continue;const We=Te[ze];We&&$e.setAttribute("aria-selected",Pe.some(Ge=>k(Ge.value,We.value))?"true":"false")}At()}function er(){it=He.clientHeight||240}function tr(){if(se&&me){const ie=R.createElement("div");ie.className="lat-combo__select-all",ie.setAttribute("role","option"),nt(ie,"click",Me=>{Me.stopPropagation(),!pe()&&(Bt()?(Pe=[],Ue(),Et(),yt()):Yt())}),De.insertBefore(ie,He)}}function St(ie){if(at)return;if(typeof G.load!="function"){const Ge=ot.trim().toLowerCase(),Re=Ot.map(re).filter(Ke=>Ge===""||Ke.label.toLowerCase().includes(Ge));Te=Re,Je=Re.length,Be=!1,Ze=1,rt.length=0,et.length=0;for(const Ke of Te)mt(Ke);$t();return}if(Qe)return;Qe=!0,lt=!1,_t+=1;const $e=_t;qe&&qe.abort(),qe=new AbortController;const Me=qe.signal;Pt();let ze;try{ze=G.load({search:ot,page:ie,signal:Me,pageSize:ne})}catch{Qe=!1,lt=!0,Pt();return}const We=Ge=>{if(at||$e!==_t)return;Qe=!1;const Re=j(Ge),Ke=Re.items.map(re);ie===0?(Te=Ke,rt.length=0,et.length=0,pt.set(ot,{items:Ke,total:Re.total,hasMore:Re.hasMore,nextPage:1})):Te=Te.concat(Ke),Je=typeof Re.total=="number"?Re.total:Te.length,Be=Re.hasMore,Ze=ie+1;for(const ht of Ke)mt(ht);rt.length=Te.length,$t(),Vt()};ze&&typeof ze.then=="function"?ze.then(We).catch(Ge=>{at||$e!==_t||Ge&&Ge.name==="AbortError"||(Qe=!1,lt=!0,Pt())}):We(ze)}function Vt(){if(!Be||Qe||!Ye)return;(et[Te.length]||0)<it+b&&St(Ze)}function Ut(){at||(st&&(clearTimeout(st),st=null),qe&&qe.abort(),_t+=1,pt.delete(ot),Te=[],Je=0,Be=!1,Qe=!1,lt=!1,Ze=0,rt.length=0,et.length=0,Xe=-1,St(0))}function rr(){ot=ye.value,qe&&qe.abort(),_t+=1;const ie=pt.get(ot);if(ie&&typeof G.load=="function"){Te=ie.items.map(re),Je=ie.total,Be=ie.hasMore,Ze=ie.nextPage,Qe=!1,lt=!1,rt.length=0,et.length=0,Xe=-1;for(const $e of Te)mt($e);$t(),Vt();return}Te=[],Je=0,Be=!1,Qe=!1,lt=!1,Ze=0,rt.length=0,et.length=0,Xe=-1,St(0)}function nr(){st&&clearTimeout(st),st=setTimeout(()=>{st=null,rr()},C)}function or(ie){const $e=we.hidden===!1,Me=Te.length+($e?1:0);if(ie.key==="ArrowDown"){if(ie.preventDefault(),xt(),Me===0)return;Xe===-1?kt(Te.length?0:-1):Mt(1)}else if(ie.key==="ArrowUp"){if(ie.preventDefault(),!Ye){xt();return}if(Xe===-1){Te.length&&kt(0);return}Mt(-1)}else if(ie.key==="Home"){if(!Ye)return;ie.preventDefault(),kt($e?-1:0),It()}else if(ie.key==="End"){if(!Ye)return;ie.preventDefault(),kt(Te.length-1),It()}else if(ie.key==="PageDown"){if(!Ye)return;ie.preventDefault(),Mt(Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="PageUp"){if(!Ye)return;ie.preventDefault(),Mt(-Math.max(1,Math.floor(Math.max(it,60)/30)))}else if(ie.key==="Enter"){if(!Ye){xt();return}Xe===-1&&$e?(ie.preventDefault(),ar()):Xe>=0&&Te[Xe]&&(ie.preventDefault(),Wt(Xe))}else ie.key==="Escape"?Ye&&(ie.preventDefault(),ft()):ie.key==="Backspace"&&me&&ye.value===""&&Pe.length?(ie.preventDefault(),zt(Pe[Pe.length-1].value)):ie.key==="Tab"&&ft()}function ar(){if(!G.newOptions||pe())return;const ie=ot.trim();if(ie==="")return;let $e;typeof G.newOptions=="object"&&typeof G.newOptions.create=="function"?$e=G.newOptions.create(ie):$e={value:ie,label:ie};const Me=re($e);mt(Me),Dt(Me.value),ft()}function Wt(ie){if(pe())return;const $e=Te[ie];!$e||$e.disabled||(me?(Pe.some(Me=>k(Me.value,$e.value))?zt($e.value):Dt($e.value),ye.focus()):(Dt($e.value),ft(),ye.value=$e.label))}const ir=()=>{Ye||(ye.focus(),xt())},lr=ie=>{ie.stopPropagation(),Ye?ft():(ye.focus(),xt())},sr=()=>{nr()},cr=ie=>{ie.stopPropagation()},ur=()=>{ut=He.scrollTop,$t(),Be&&!Qe&&He.scrollTop+He.clientHeight>=He.scrollHeight-b&&St(Ze)},dr=()=>{E.dispatchEvent(Z(R,"focus"))},fr=()=>{E.dispatchEvent(Z(R,"blur")),ft()};nt(he,"click",ir),nt(ke,"click",lr),nt(ye,"input",sr),nt(ye,"change",cr),nt(ye,"keydown",or),nt(ye,"focus",dr),nt(ye,"blur",fr),nt(He,"scroll",ur),nt(He,"mousedown",ie=>ie.preventDefault()),tr(),Ot.length&&typeof G.load!="function"&&(ot="",St(0)),ae(J);const gt={el:E,root:ue,input:ye,getValue:ct,setValue(ie){return ae(ie),gt},reload(){return Ut(),gt},clear(){return _e(),gt},open(){return xt(),gt},close(){return ft(),gt},focus(){return Xt(),gt},blur(){return qt(),gt},setDisabled(ie){G.disabled=ie,ye.disabled=ie,ke.disabled=ie,ie&&ft()},setReadOnly(ie){G.readOnly=ie,ye.readOnly=ie,ie?ye.setAttribute("aria-readonly","true"):ye.removeAttribute("aria-readonly"),Ue()},destroy(){ft(),at=!0,st&&clearTimeout(st),qe&&qe.abort();for(const ie of jt.splice(0))ie();for(;ue.firstChild;)ue.removeChild(ue.firstChild)}};return E.appendChild(ue),E.__combo=gt,gt}V("combo",{kind:"field",build(E,G){const R=G.doc.createElement("div"),ce=E.props||{},me=H(R,{load:ce.load,options:E.options,multiple:ce.multiple,value:E.value,resolveLabels:ce.resolveLabels,newOptions:ce.newOptions,optionTemplate:ce.optionTemplate,selectedTemplate:ce.selectedTemplate,selectAll:ce.selectAll,debounce:ce.debounce,pageSize:ce.pageSize,maxHeight:ce.maxHeight,chipPlacement:ce.chipPlacement,placeholder:E.placeholder,ariaLabel:E.label,t:G.t,doc:G.doc,inForm:!0});if(G.disposers.push(()=>me.destroy()),Array.isArray(ce.dependsOn))for(const xe of ce.dependsOn){const C=se=>{se.name===xe&&(me.clear(),me.reload())},ne=G.emitter.on("change",C);G.disposers.push(ne)}return R.focus=()=>me.focus(),R.blur=()=>me.blur(),R},read(E){return E.__combo?E.__combo.getValue():null},write(E,G){E.__combo&&E.__combo.setValue(G)},state(E,G){E.__combo&&(E.__combo.setDisabled(G.disabled===!0),E.__combo.setReadOnly(G.readOnly===!0))}})}),Ne("packages/modules/form/extras.js",function(S,q){"use strict";Object.defineProperty(S,"injectChromeStyles",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"buildTooltip",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"buildLock",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"renderAvatarAddon",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"buildAddons",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"buildPanel",{enumerable:!0,get:function(){return m}});const V=q("packages/modules/form/styles.js").NS,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/combo.js"),y=P.initialsFor,A=P.renderAvatar,B="data-lattice-form-chrome-styles";function O(f){return f==="cols"?`${V}__cols`:f==="items"?`${V}__items`:`${V}__rows`}function v(){return`
|
|
1169
|
+
.${V}__label-group{
|
|
1145
1170
|
display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
|
|
1146
1171
|
min-width:0; box-sizing:border-box;
|
|
1147
1172
|
}
|
|
1148
|
-
.${
|
|
1173
|
+
.${V}__item[data-label-position='top'] .${V}__label-group{
|
|
1149
1174
|
margin-bottom:var(--lattice-form-label-gap);
|
|
1150
1175
|
}
|
|
1151
|
-
.${
|
|
1152
|
-
.${
|
|
1153
|
-
.${
|
|
1176
|
+
.${V}__item[data-label-position='top'] .${V}__label-group .${V}__label{ margin-bottom:0; }
|
|
1177
|
+
.${V}__tooltip-wrap{ position:relative; display:inline-flex; flex:0 0 auto; }
|
|
1178
|
+
.${V}__tooltip-trigger{
|
|
1154
1179
|
display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
|
|
1155
1180
|
box-sizing:border-box; width:calc(var(--lattice-font-size) * 1.35);
|
|
1156
1181
|
height:calc(var(--lattice-font-size) * 1.35); min-height:0;
|
|
@@ -1159,13 +1184,13 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1159
1184
|
color:var(--lattice-foreground-muted); font:inherit; line-height:1;
|
|
1160
1185
|
font-weight:600; cursor:pointer;
|
|
1161
1186
|
}
|
|
1162
|
-
.${
|
|
1163
|
-
.${
|
|
1187
|
+
.${V}__tooltip-trigger:hover,
|
|
1188
|
+
.${V}__tooltip-trigger:focus-visible{
|
|
1164
1189
|
color:var(--lattice-foreground);
|
|
1165
1190
|
background:color-mix(in srgb, var(--lattice-foreground-muted) 28%, transparent);
|
|
1166
1191
|
}
|
|
1167
|
-
.${
|
|
1168
|
-
.${
|
|
1192
|
+
.${V}__tooltip-trigger:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
1193
|
+
.${V}__tooltip{
|
|
1169
1194
|
position:absolute; z-index:20; bottom:calc(100% + var(--lattice-space) / 2); left:50%;
|
|
1170
1195
|
transform:translateX(-50%); box-sizing:border-box; width:max-content; max-width:280px;
|
|
1171
1196
|
padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
|
|
@@ -1175,11 +1200,11 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1175
1200
|
font-size:calc(var(--lattice-font-size) - 1px); line-height:1.35; white-space:normal;
|
|
1176
1201
|
opacity:0; pointer-events:none;
|
|
1177
1202
|
}
|
|
1178
|
-
.${
|
|
1203
|
+
.${V}__tooltip--open{ opacity:1; }
|
|
1179
1204
|
/* A read-only field's lock sits inside the control's right edge (the control
|
|
1180
1205
|
wrapper is the input's box, so the inset matches the field's own padding). */
|
|
1181
|
-
.${
|
|
1182
|
-
.${
|
|
1206
|
+
.${V}__control{ position:relative; }
|
|
1207
|
+
.${V}__lock{
|
|
1183
1208
|
position:absolute; top:50%; right:calc(var(--lattice-space) * 1.5);
|
|
1184
1209
|
transform:translateY(-50%); z-index:1; pointer-events:none;
|
|
1185
1210
|
display:inline-flex; align-items:center; justify-content:center;
|
|
@@ -1187,59 +1212,59 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1187
1212
|
height:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
1188
1213
|
color:var(--lattice-foreground-muted);
|
|
1189
1214
|
}
|
|
1190
|
-
.${
|
|
1191
|
-
.${
|
|
1192
|
-
.${
|
|
1215
|
+
.${V}__lock[hidden]{ display:none; }
|
|
1216
|
+
.${V}__control--lock input,
|
|
1217
|
+
.${V}__control--lock textarea{
|
|
1193
1218
|
padding-right:calc(var(--lattice-space) * 1.5 + (var(--lattice-control-size) * var(--lattice-scale)) + calc(var(--lattice-space) / 2));
|
|
1194
1219
|
}
|
|
1195
|
-
.${
|
|
1220
|
+
.${V}__field{
|
|
1196
1221
|
display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
|
|
1197
1222
|
min-width:0; flex:1 1 auto;
|
|
1198
1223
|
}
|
|
1199
|
-
.${
|
|
1200
|
-
.${
|
|
1224
|
+
.${V}__addons{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
|
|
1225
|
+
.${V}__addon{
|
|
1201
1226
|
display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
|
|
1202
1227
|
flex:0 0 auto; width:var(--lattice-row-height); height:var(--lattice-row-height); min-height:0;
|
|
1203
1228
|
padding:0; margin:0; border:var(--lattice-border-width) solid var(--lattice-border-color);
|
|
1204
1229
|
border-radius:50%; background:var(--lattice-background); color:var(--lattice-foreground);
|
|
1205
1230
|
font:inherit; line-height:1; cursor:pointer; text-decoration:none;
|
|
1206
1231
|
}
|
|
1207
|
-
.${
|
|
1208
|
-
.${
|
|
1209
|
-
.${
|
|
1210
|
-
.${
|
|
1211
|
-
.${
|
|
1232
|
+
.${V}__addon:hover, .${V}__addon:focus-visible{ border-color:var(--lattice-accent); color:var(--lattice-accent); }
|
|
1233
|
+
.${V}__addon:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
1234
|
+
.${V}__addon:disabled, .${V}__addon[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
|
|
1235
|
+
.${V}__icon-glyph{ font-size:calc(var(--lattice-font-size) - 1px); line-height:1; }
|
|
1236
|
+
.${V}__addon-avatar{
|
|
1212
1237
|
display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
|
|
1213
1238
|
width:var(--lattice-row-height); height:var(--lattice-row-height);
|
|
1214
1239
|
}
|
|
1215
|
-
.${
|
|
1240
|
+
.${V}__addon-avatar .lat-combo__avatar{
|
|
1216
1241
|
width:var(--lattice-row-height); height:var(--lattice-row-height);
|
|
1217
1242
|
font-size:calc(var(--lattice-font-size) - 1px);
|
|
1218
1243
|
}
|
|
1219
|
-
.${
|
|
1244
|
+
.${V}__panel{
|
|
1220
1245
|
display:flex; flex-direction:column; box-sizing:border-box; min-width:0; min-height:0;
|
|
1221
1246
|
border:var(--lattice-border-width) solid var(--lattice-border-color);
|
|
1222
1247
|
border-radius:var(--lattice-radius); background:var(--lattice-background);
|
|
1223
1248
|
padding:calc(var(--lattice-space) * 1.5);
|
|
1224
1249
|
}
|
|
1225
|
-
.${
|
|
1226
|
-
.${
|
|
1250
|
+
.${V}__panel[hidden]{ display:none; }
|
|
1251
|
+
.${V}__panel-header{
|
|
1227
1252
|
display:flex; align-items:flex-start; justify-content:space-between; gap:var(--lattice-space);
|
|
1228
1253
|
box-sizing:border-box; padding-bottom:calc(var(--lattice-space) * 1.25);
|
|
1229
1254
|
border-bottom:var(--lattice-border-width) solid var(--lattice-border-color);
|
|
1230
1255
|
margin-bottom:calc(var(--lattice-space) * 1.25);
|
|
1231
1256
|
}
|
|
1232
|
-
.${
|
|
1233
|
-
.${
|
|
1257
|
+
.${V}__panel-heading{ display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 4); min-width:0; }
|
|
1258
|
+
.${V}__panel-title{
|
|
1234
1259
|
margin:0; font-size:calc(var(--lattice-font-size) + 1px); font-weight:600; line-height:1.3;
|
|
1235
1260
|
color:var(--lattice-foreground);
|
|
1236
1261
|
}
|
|
1237
|
-
.${
|
|
1262
|
+
.${V}__panel-subtitle{
|
|
1238
1263
|
margin:0; color:var(--lattice-foreground-muted);
|
|
1239
1264
|
font-size:calc(var(--lattice-font-size) - 1px); line-height:1.4;
|
|
1240
1265
|
}
|
|
1241
|
-
.${
|
|
1242
|
-
.${
|
|
1266
|
+
.${V}__panel-actions{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space) / 2); flex:0 0 auto; }
|
|
1267
|
+
.${V}__panel-action{
|
|
1243
1268
|
display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
|
|
1244
1269
|
flex:0 0 auto; width:calc(var(--lattice-row-height) - var(--lattice-space) / 2);
|
|
1245
1270
|
height:calc(var(--lattice-row-height) - var(--lattice-space) / 2); min-height:0;
|
|
@@ -1247,27 +1272,27 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1247
1272
|
background:transparent; color:var(--lattice-foreground-muted);
|
|
1248
1273
|
font:inherit; line-height:1; cursor:pointer;
|
|
1249
1274
|
}
|
|
1250
|
-
.${
|
|
1275
|
+
.${V}__panel-action:hover, .${V}__panel-action:focus-visible{
|
|
1251
1276
|
color:var(--lattice-foreground);
|
|
1252
1277
|
background:color-mix(in srgb, var(--lattice-foreground-muted) 16%, transparent);
|
|
1253
1278
|
}
|
|
1254
|
-
.${
|
|
1255
|
-
.${
|
|
1256
|
-
.${
|
|
1257
|
-
`.trim()}function f
|
|
1258
|
-
.${
|
|
1279
|
+
.${V}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
1280
|
+
.${V}__panel-body{ min-width:0; min-height:0; }
|
|
1281
|
+
.${V}__panel-body[hidden]{ display:none; }
|
|
1282
|
+
`.trim()}function d(f){const N=f&&f.documentElement;if(!N||(h(f),N.getAttribute(B)))return;N.setAttribute(B,"1");const c=f.createElement("style");c.textContent=v(),(f.head||f.body||N).appendChild(c)}function u(f,N,c,i){N.addEventListener(c,i),f.disposers.push(()=>N.removeEventListener(c,i))}function _(f,N){if(N==null||N==="")return null;if(N.nodeType){const n=N.cloneNode(!0);return n.setAttribute&&n.setAttribute("aria-hidden","true"),n}const c=ee(f,String(N));if(c)return c;const i=f.createElement("span");return i.className=`${V}__icon-glyph`,i.setAttribute("aria-hidden","true"),i.textContent=String(N).slice(0,2),i}function w(f,N){const{labelEl:c,item:i,labelPosition:n,labelWidth:a}=N,r=i.tooltip;if(typeof r!="string"||r===""||n==="hidden")return null;d(f.doc);const s=f.doc,M=s.createElement("div");M.className=`${V}__label-group`,n==="left"&&a!=null&&(M.style.flex=`0 0 ${typeof a=="number"?`${a}px`:String(a)}`),M.appendChild(c);const D=`lat-form-tip-${w.seq=(w.seq||0)+1}`,Y=s.createElement("span");Y.className=`${V}__tooltip-wrap`;const U=s.createElement("button");U.type="button",U.className=`${V}__tooltip-trigger`,U.setAttribute("aria-label",f.t("form.tooltip.help")),U.setAttribute("aria-expanded","false"),U.setAttribute("aria-controls",D),U.textContent="?";const Q=s.createElement("span");Q.className=`${V}__tooltip`,Q.setAttribute("id",D),Q.setAttribute("role","tooltip"),Q.textContent=r,Y.appendChild(U),Y.appendChild(Q),M.appendChild(Y);let oe=!1;const F=()=>{U.setAttribute("aria-expanded","true"),Q.classList.add(`${V}__tooltip--open`)},K=()=>{oe||(U.setAttribute("aria-expanded","false"),Q.classList.remove(`${V}__tooltip--open`))};return u(f,U,"mouseenter",F),u(f,U,"mouseleave",K),u(f,U,"focus",F),u(f,U,"blur",K),u(f,U,"click",W=>{W.stopPropagation(),oe=!oe,oe?F():K()}),{group:M,tooltipId:D}}function t(f,N,c,i){const n=i&&i.tagName;if(!(c.lockIcon!==!1&&(n==="INPUT"||n==="TEXTAREA")&&(c.readOnly===!0||c.readOnlyWhen!=null)))return null;d(f.doc);const r=f.doc.createElement("span");r.className=`${V}__lock`,r.setAttribute("aria-hidden","true"),r.title=f.t("form.readonly");const s=ee(f.doc,"lock");return s&&r.appendChild(s),N.appendChild(r),{el:r}}function o(f,N){if(!Array.isArray(f))return null;const c=N==null?"":String(N);for(const i of f){if(i!=null&&typeof i=="object"&&Array.isArray(i.options)){const n=o(i.options,N);if(n)return n;continue}if(i!=null&&typeof i=="object"){const n=i.value==null?"":String(i.value);if(n===c)return{label:i.label!=null?String(i.label):n,avatar:i.avatar,color:i.color}}else{const n=String(i);if(n===c)return{label:n,avatar:void 0,color:void 0}}}return null}function l(f,N,c){let i=null,n=N==null?"":String(N),a;if(typeof f=="function")i=f(N,c);else if(f===!0){const r=o(c.options,N);r&&(n=r.label,a=r.color,r.avatar!=null&&r.avatar!==""&&(i=String(r.avatar)))}else i=String(f);if(i==null||i===""){if(n==null||n==="")return null;i=y(n)}return{avatar:i,label:n,color:a}}function b(f,N,c,i,n){for(;N.firstChild;)N.removeChild(N.firstChild);const a=l(c.avatar,i,n);a&&N.appendChild(A(f,a))}function p(f,N){const c=N.addons;if(!Array.isArray(c)||c.length===0)return null;d(f.doc);const i=f.doc,n=i.createElement("div");n.className=`${V}__addons`;const a=[];for(const r of c){if(r==null||typeof r!="object")continue;if(r.avatar!==void 0&&r.avatar!==null&&r.avatar!==!1){const U=i.createElement("span");U.className=`${V}__addon-avatar`,U.setAttribute("aria-hidden","true"),n.appendChild(U),a.push({el:U,spec:r,avatar:!0});continue}const M=r.href,D=i.createElement(M!=null?"a":"button");D.className=`${V}__addon`,M==null?D.type="button":D.href=String(M),r.ariaLabel!=null&&r.ariaLabel!==""&&(D.setAttribute("aria-label",String(r.ariaLabel)),D.title=r.tooltip!=null&&r.tooltip!==""?String(r.tooltip):String(r.ariaLabel));const Y=_(i,r.icon);Y&&D.appendChild(Y),n.appendChild(D),a.push({el:D,spec:r,avatar:!1})}return{bar:n,entries:a}}function m(f,N,c,i,n){d(f.doc);const a=f.doc,r=a.createElement("section");r.className=`${V}__panel`;const s=a.createElement("div");s.className=`${V}__panel-header`;const M=a.createElement("div");if(M.className=`${V}__panel-heading`,N.title!=null){const U=a.createElement("h3");U.className=`${V}__panel-title`,U.textContent=N.title,M.appendChild(U)}if(N.subtitle!=null){const U=a.createElement("p");U.className=`${V}__panel-subtitle`,U.textContent=N.subtitle,M.appendChild(U)}s.appendChild(M);const D=a.createElement("div");D.className=`${V}__panel-actions`,s.appendChild(D),r.appendChild(s);const Y=a.createElement("div");Y.className=`${V}__panel-body`,N.axis&&(Y.classList.add(O(N.axis)),n.buildChildren(f,Y,N.blocks,N.axis,i)),r.appendChild(Y);for(const U of N.actions){const Q=a.createElement("button");Q.type="button",Q.className=`${V}__panel-action`,U.ariaLabel!=null&&U.ariaLabel!==""&&(Q.setAttribute("aria-label",String(U.ariaLabel)),Q.title=String(U.ariaLabel));const oe=_(a,U.icon);oe&&Q.appendChild(oe),typeof U.onClick=="function"&&u(f,Q,"click",()=>{U.onClick()}),D.appendChild(Q)}if(N.collapsible){const U=a.createElement("button");U.type="button",U.className=`${V}__panel-action ${V}__panel-collapse`,U.setAttribute("aria-expanded","true");const Q=f.t("form.panel.collapse");U.setAttribute("aria-label",Q),U.title=Q;const oe=ee(a,"chevronUp");oe&&U.appendChild(oe);let F=!1;u(f,U,"click",()=>{F=!F,Y.hidden=F,U.setAttribute("aria-expanded",F?"false":"true");const K=f.t(F?"form.panel.expand":"form.panel.collapse");for(U.setAttribute("aria-label",K),U.title=K;U.firstChild;)U.removeChild(U.firstChild);const W=ee(a,F?"chevronDown":"chevronUp");W&&U.appendChild(W)}),D.appendChild(U)}return n.applyCss(r,N.css),N.spacing!=null&&r.style.setProperty("--lattice-form-item-gap",N.spacing),N.hidden&&(r.hidden=!0),c.appendChild(r),r}}),Ne("packages/modules/form/view.js",function(S,q){"use strict";Object.defineProperty(S,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"applyCss",{enumerable:!0,get:function(){return r}}),Object.defineProperty(S,"runValidation",{enumerable:!0,get:function(){return W}}),Object.defineProperty(S,"markValidation",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(S,"validateItem",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(S,"buildItem",{enumerable:!0,get:function(){return L}}),Object.defineProperty(S,"buildBlock",{enumerable:!0,get:function(){return I}}),Object.defineProperty(S,"buildChildren",{enumerable:!0,get:function(){return g}}),Object.defineProperty(S,"mount",{enumerable:!0,get:function(){return T}}),Object.defineProperty(S,"wizardGoTo",{enumerable:!0,get:function(){return z}}),Object.defineProperty(S,"wizardNext",{enumerable:!0,get:function(){return te}}),Object.defineProperty(S,"wizardBack",{enumerable:!0,get:function(){return re}});const e=q("packages/modules/form/styles.js"),V=e.NS,$=e.injectColsBreakpoint,ee=e.NEVER_STACK_COLS_CONTAINER,h=q("packages/modules/form/model.js"),P=h.cssSize,y=h.isEmpty,B=q("packages/modules/form/controls/registry.js").resolveControl,v=q("packages/modules/form/rules.js").applyRules,u=q("packages/modules/form/state.js").syncRecordState,w=q("packages/modules/form/stepper.js").createStepper,t=q("packages/modules/form/validation.js"),o=t.normalizeHookResult,l=t.validateValue,b=q("packages/modules/form/extras.js"),p=b.buildTooltip,m=b.buildLock,f=b.buildAddons,N=b.renderAvatarAddon,c=b.buildPanel,i="data-lattice-separator-label-styles";function n(){return`
|
|
1283
|
+
.${V}__separator--labelled{
|
|
1259
1284
|
display:flex; align-items:center; gap:var(--lattice-space);
|
|
1260
1285
|
border-top:0; margin:var(--lattice-space) 0; width:100%;
|
|
1261
1286
|
}
|
|
1262
|
-
.${
|
|
1287
|
+
.${V}__separator--labelled .${V}__separator-rule{
|
|
1263
1288
|
flex:1 1 auto; min-width:0; height:0;
|
|
1264
1289
|
border-top:var(--lattice-border-width) solid var(--lattice-border-color);
|
|
1265
1290
|
}
|
|
1266
|
-
.${
|
|
1291
|
+
.${V}__separator--labelled .${V}__separator-label{
|
|
1267
1292
|
color:var(--lattice-foreground-muted);
|
|
1268
1293
|
font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
|
|
1269
1294
|
}
|
|
1270
|
-
`.trim()}function l(P){const N=P&&P.documentElement;if(!N||N.getAttribute(o))return;N.setAttribute(o,"1");const y=P.createElement("style");y.textContent=d(),(P.head||P.body||N).appendChild(y)}function s(P,N){if(N!=null){if(typeof N=="string"){if(N.trim()){const y=typeof P.style.cssText=="string"?P.style.cssText:"";P.style.cssText=y?`${y};${N}`:N}return}for(const y of Object.keys(N))P.style[y]=N[y]}}function r(P){return P==="cols"?`${U}__cols`:P==="items"?`${U}__items`:`${U}__rows`}function i(P,N,y,$){N.addEventListener(y,$),P.disposers.push(()=>N.removeEventListener(y,$))}function B(P){return P.uidSeq+=1,`lat-form-${P.uidSeq}`}function z(P){if(P==null)return null;const N=P.tagName;return N==="INPUT"||N==="TEXTAREA"||N==="SELECT"?P:typeof P.querySelector=="function"?P.querySelector("input, textarea, select"):null}function W(P,N,y){const $={name:N.item.name,value:y,previousValue:N.value,item:N.item},w=P.emitter.emitBefore("beforeChange",$,"user"),V=()=>{N.value=y,N.item.value=y,ne(N),P.emitter.emit("change",{name:N.item.name,value:y,previousValue:$.previousValue,item:N.item}),T(P),N.item.validationMode==="change"&&Ne(P,N)},oe=_e=>{N.def.write(N.control,N.value),Q(P,N,_e)},ie=_e=>{if(!_e){N.def.write(N.control,N.value);return}const Oe=b(P,N,y);Oe&&typeof Oe.then=="function"?Oe.then(Se=>{Se.ok?V():oe(Se.message)}):Oe.ok?V():oe(Oe.message)};w&&typeof w.then=="function"?w.then(ie):ie(w)}function b(P,N,y){if(N.ruleRequired&&L(y))return{ok:!1,message:P.t("form.required")};const $=N.def;if(typeof $.validate!="function")return{ok:!0,message:null};const w=$.validate(N.control,N.item,y);return w&&typeof w.then=="function"?w.then(V=>J(P,V)):J(P,w)}function J(P,N){return N===!1?{ok:!1,message:P.t("form.invalid")}:typeof N=="string"?{ok:!1,message:N}:{ok:!0,message:null}}function Q(P,N,y){let $=N.errorEl;$||($=P.doc.createElement("div"),$.className=`${U}__error`,$.id=B(P),N.controlWrap.appendChild($),N.errorEl=$);const w=y==null||y===""?P.t("form.invalid"):String(y);$.textContent=w,N.el.setAttribute("data-invalid","true"),N.control.setAttribute("aria-invalid","true");const V=(N.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!N.validationEl.hidden&&N.validationEl.textContent===w&&V.includes(N.validationEl.id))&&!V.includes($.id)&&(V.push($.id),N.control.setAttribute("aria-describedby",V.join(" ")))}function ne(P){P.errorEl&&(P.errorEl.remove(),P.errorEl=null),P.el.removeAttribute("data-invalid"),P.control.removeAttribute("aria-invalid")}function Z(P,N){const y=N.value,$=N.item;if(typeof N.def.validate=="function"){const w=t(N.def.validate(N.control,$,y),$,P.t);if(w)return w}return n($,y,P.t,N.ruleRequired===!0)}function Y(P,N,y){const $=N.item,w=N.validationEl;if(N.validation.pristine=!1,N.preEl&&(N.preEl.hidden=!0),y){N.validation.valid=!1,N.validation.code=y.code,N.validation.message=y.message,N.control.setAttribute("aria-invalid","true");const V=N.tooltipId?`${N.tooltipId} ${w.id}`:w.id;N.control.setAttribute("aria-describedby",V),w.textContent=y.message,w.className=`${U}__validation ${U}__validation--error`,w.hidden=!1;return}N.validation.valid=!0,N.validation.code=null,N.validation.message=null,N.control.removeAttribute("aria-invalid"),N.tooltipId?N.control.setAttribute("aria-describedby",N.tooltipId):N.control.removeAttribute("aria-describedby"),typeof $.successMessage=="string"&&$.successMessage!==""?(w.textContent=$.successMessage,w.className=`${U}__validation ${U}__validation--success`,w.hidden=!1):(w.textContent="",w.className=`${U}__validation`,w.hidden=!0)}function Ne(P,N){typeof N.def.reset=="function"&&N.def.reset(N.control,N.item);const y=Z(P,N);Y(P,N,y);const $=y==null;return P.emitter.emit("validated",{name:N.item.name,item:N.item,value:N.value,valid:$,failures:y?[{name:N.item.name,rule:y.code,message:y.message}]:[]}),$}function ve(P,N){const y=N.control,$=N.item,w=N.def,V=oe=>()=>{P.emitter.emit(oe,{name:$.name,item:$}),oe==="blur"&&$.validationMode==="blur"&&Ne(P,N)};if(w.kind==="field"){const oe=()=>{P.emitter.emit("input",{name:$.name,value:w.read(y,$),item:$})},ie=()=>{W(P,N,w.read(y,$))};i(P,y,"input",oe),i(P,y,"change",ie);for(const _e of w.domEvents||[])i(P,y,_e,Se=>{const j=Se&&typeof Se=="object"&&Se.detail&&typeof Se.detail=="object"?Se.detail:null;P.emitter.emit(_e,j?{name:$.name,item:$,...j}:{name:$.name,value:w.read(y,$),item:$})})}else w.kind==="toggle"?i(P,y,"change",()=>{W(P,N,w.read(y,$))}):w.kind==="button"&&i(P,y,"click",()=>{y.disabled||y.getAttribute("aria-disabled")==="true"||P.emitter.emit("click",{name:$.name,item:$,value:null})});w.kind!=="display"&&(i(P,y,"focus",V("focus")),i(P,y,"blur",V("blur")))}function se(P,N){if(typeof P=="string"&&/%$/.test(P.trim())){const y=parseFloat(P);if(Number.isFinite(y)){const $=Math.round(y*N/100*1e6)/1e6;return`0 0 calc(${y}% - ${$} * var(--lattice-space))`}}return`0 0 ${g(P)}`}function k(P,N,y,$={}){const w=A(N.type)||A("text"),V=N.labelPosition!=null?N.labelPosition:$.labelPosition!=null?$.labelPosition:"top",oe=N.labelWidth!=null?N.labelWidth:$.labelWidth,ie=N.requiredHint!==void 0?N.requiredHint:$.requiredHint,_e=P.doc.createElement("div");_e.className=`${U}__item`,_e.setAttribute("data-label-position",V);const Oe=w.build(N,P),Se=w.action===!0,j=!Se&&N.label!=null&&N.label!=="";let te=null,ce=null;if(j){te=P.doc.createElement("label"),te.className=`${U}__label`,te.textContent=String(N.label);const we=B(P);te.setAttribute("for",we),(z(Oe)||Oe).id=we,V==="hidden"&&te.classList.add(`${U}__label--hidden`);const q=m(P,{labelEl:te,item:N,labelPosition:V,labelWidth:oe});q?(ce=q.tooltipId,_e.appendChild(q.group)):(V==="left"&&oe!=null&&(te.style.flex=`0 0 ${g(oe)}`),_e.appendChild(te))}else if(V==="hidden"&&!Se){const we=z(Oe);we&&N.placeholder!=null&&N.placeholder!==""&&we.setAttribute("aria-label",String(N.placeholder))}const K=P.doc.createElement("div");K.className=`${U}__control`,K.appendChild(Oe);const de=E(P,K,N,Oe),ue=_(P,N);let be=K;if(ue&&(be=P.doc.createElement("div"),be.className=`${U}__field`,be.appendChild(K),be.appendChild(ue.bar)),_e.appendChild(be),!Se&&N.helpMessage!=null&&N.helpMessage!==""){const we=P.doc.createElement("div");we.className=`${U}__help`,we.textContent=String(N.helpMessage),K.appendChild(we)}let Ce=null;!Se&&N.preMessage!=null&&N.preMessage!==""&&(Ce=P.doc.createElement("div"),Ce.className=`${U}__pre`,Ce.textContent=String(N.preMessage),K.appendChild(Ce));const Ae=P.doc.createElement("div");Ae.className=`${U}__validation`,Ae.id=B(P),Ae.hidden=!0,K.appendChild(Ae),N.width!=null&&($.colsGapCount!=null?_e.style.setProperty("--lattice-item-flex",se(N.width,$.colsGapCount)):_e.style.flex=`0 0 ${g(N.width)}`),V==="left"&&(be.style.flex="1 1 auto"),Se&&V==="left"&&oe!=null&&!(N.props&&N.props.fullWidth===!0)&&(be.style.paddingLeft=`calc(${g(oe)} + var(--lattice-space))`),s(_e,N.css);const ye=w.read(Oe,N),me={item:N,el:_e,control:Oe,controlWrap:K,def:w,value:ye,hidden:N.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ae,preEl:Ce,labelEl:te,labelPosition:V,requiredHint:ie,placeholderEl:z(Oe),placeholderBase:N.placeholder!=null?String(N.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:ce,lockEl:de?de.el:null};if(N.value=ye,ce&&me.control.setAttribute("aria-describedby",ce),ue)for(const we of ue.entries){if(we.avatar){c(P.doc,we.el,we.spec,me.value,me.item);continue}typeof we.spec.onClick=="function"&&i(P,we.el,"click",()=>{we.spec.onClick(me.value,me.item)})}if(me.syncLock=()=>{if(!me.lockEl)return;const we=me.item.readOnly===!0||me.ruleReadOnly;me.lockEl.hidden=!we,me.lockEl.parentElement.classList.toggle(`${U}__control--lock`,we)},me.syncAddons=()=>{if(!ue)return;const we=me.item.disabled===!0;for(const q of ue.entries){if(q.avatar){c(P.doc,q.el,q.spec,me.value,me.item);continue}q.el.tagName==="A"?q.el.setAttribute("aria-disabled",we?"true":"false"):q.el.disabled=we}},f(me),me.hidden&&(_e.hidden=!0),w.custom&&Oe.__latticeFormApi){const we=Oe.__latticeFormApi;we._read=()=>me.value,we._write=q=>{me.value=q,me.item.value=q,w.write(Oe,q),T(P)},we._commit=q=>{W(P,me,q)},we._input=q=>{P.emitter.emit("input",{name:me.item.name,value:q,item:me.item})}}return typeof w.destroy=="function"&&P.disposers.push(()=>w.destroy(Oe)),ve(P,me),P.order.push(me),N.name!=null&&P.items.set(N.name,me),y.appendChild(_e),me}function I(P,N,y,$={}){const w={labelPosition:N.labelPosition!=null?N.labelPosition:$.labelPosition,labelWidth:N.labelWidth!=null?N.labelWidth:$.labelWidth,requiredHint:$.requiredHint};if(N.kind==="panel")return S(P,N,y,w,{buildChildren:F,applyCss:s});if(N.kind==="spacer"){const oe=P.doc.createElement("div");return oe.className=`${U}__spacer`,s(oe,N.css),N.hidden&&(oe.hidden=!0),y.appendChild(oe),oe}if(N.kind==="separator"){const oe=P.doc.createElement("div");oe.className=`${U}__separator`,oe.setAttribute("role","separator");const ie=N.label;if(ie!=null){l(P.doc),oe.classList.add(`${U}__separator--labelled`);const _e=P.t(ie);oe.setAttribute("aria-label",_e);const Oe=P.doc.createElement("span");Oe.className=`${U}__separator-rule`,Oe.setAttribute("aria-hidden","true");const Se=P.doc.createElement("span");Se.className=`${U}__separator-label`,Se.textContent=_e;const j=P.doc.createElement("span");j.className=`${U}__separator-rule`,j.setAttribute("aria-hidden","true"),oe.appendChild(Oe),oe.appendChild(Se),oe.appendChild(j)}else oe.setAttribute("aria-label",P.t("form.separator"));return s(oe,N.css),N.hidden&&(oe.hidden=!0),y.appendChild(oe),oe}if(N.kind==="fieldset"){const oe=P.doc.createElement("fieldset");if(oe.className=`${U}__fieldset`,N.legend!=null){const _e=P.doc.createElement("legend");_e.className=`${U}__legend`,_e.textContent=N.legend,oe.appendChild(_e)}const ie=P.doc.createElement("div");return ie.className=`${U}__fieldset-body`,N.axis&&ie.classList.add(r(N.axis)),N.axis&&F(P,ie,N.blocks,N.axis,w),oe.appendChild(ie),s(oe,N.css),N.spacing!=null&&oe.style.setProperty("--lattice-form-item-gap",N.spacing),N.hidden&&(oe.hidden=!0),y.appendChild(oe),oe}const V=P.doc.createElement("div");return V.className=r(N.axis),N.axis&&F(P,V,N.blocks,N.axis,w),s(V,N.css),N.spacing!=null&&V.style.setProperty("--lattice-form-item-gap",N.spacing),N.hidden&&(V.hidden=!0),y.appendChild(V),V}function F(P,N,y,$,w={}){const V=$==="cols"?{...w,colsGapCount:y.length-1}:w;for(const oe of y)oe.kind==="item"?k(P,oe,N,V):I(P,oe,N,w)}function p(P){const N=P.el;for(;N.firstChild;)N.removeChild(N.firstChild);P.items.clear(),P.order.length=0;const y=P.model;N.classList.add(U,r(y.axis)),N.setAttribute("data-density",y.density),y.colsBreakpoint!==480&&N.style.setProperty("--lattice-cols-container",O(P.doc,y.colsBreakpoint)),P.disposers.push(()=>{N.classList.remove(`${U}__rows`,`${U}__cols`,`${U}__items`)}),s(N,y.css),y.spacing!=null&&N.style.setProperty("--lattice-form-item-gap",y.spacing),y.labelGap!=null&&N.style.setProperty("--lattice-form-label-gap",y.labelGap);const $={labelPosition:y.labelPosition,labelWidth:y.labelWidth,requiredHint:y.requiredHint};y.steps&&y.steps.length?D(P,$):F(P,N,y.blocks,y.axis==="cols"?"cols":"rows",$),T(P)}function D(P,N={}){const y=P.model,$=y.steps,w=P.doc,V=P.el,oe=w.createElement("div");V.appendChild(oe);const ie=h(oe,{doc:w,t:P.t,steps:$.map(ue=>({id:ue.id,label:ue.label})),active:0,orientation:y.stepOrientation,onGoTo:ue=>{G(P,ue)}}),_e=[];let Oe=P.order.length;for(const ue of $){const be=w.createElement("div");be.className=`${U}__step`,be.hidden=!0,F(P,be,ue.blocks,ue.axis,N),ue.css&&s(be,ue.css),V.appendChild(be);const Ce=P.order.length;be.__records=P.order.slice(Oe,Ce),Oe=Ce,_e.push(be)}const Se=w.createElement("div");Se.className=`${U}__step-nav`;const j=w.createElement("button");j.type="button",j.className=`${U}__step-back`,j.textContent=P.t("form.back");const te=w.createElement("button");te.type="button",te.className=`${U}__step-next`,te.textContent=P.t("form.next"),Se.appendChild(j),Se.appendChild(te),V.appendChild(Se);const ce={steps:$,bodies:_e,stepper:ie,back:j,next:te,active:0};P.wizard=ce;const K=()=>{ie.setActive(ce.active),_e.forEach((ue,be)=>{ue.hidden=be!==ce.active}),j.disabled=ce.active===0,te.textContent=ce.active===$.length-1?P.t("form.finish"):P.t("form.next")},de=async ue=>{const be=_e[ue].__records||[];for(const Ce of be){if(Ce.item.name==null||Ce.def.kind==="button")continue;const Ae=await Promise.resolve(b(P,Ce,Ce.value));if(!Ae.ok)return Q(P,Ce,Ae.message),!1;ne(Ce)}return!0};ce._stepValid=de,ce._render=K,j.addEventListener("click",()=>{ee(P)}),te.addEventListener("click",()=>{R(P)}),K()}async function G(P,N){const y=P.wizard;if(!y)return!1;const $=y.steps.length,w=Number(N);if(!Number.isFinite(w)||w<0||w>=$)return!1;const V=y.active;if(w===V)return!1;if(w>V)for(let oe=V;oe<w;oe+=1){if(!await y._stepValid(oe))return y.stepper.setStatus(oe,"error"),!1;y.stepper.setStatus(oe,"complete")}return y.active=w,y._render(),!0}function R(P){const N=P.wizard;return N?N.active>=N.steps.length-1?N._stepValid(N.active).then(y=>(N.stepper.setStatus(N.active,y?"complete":"error"),y)):G(P,N.active+1):Promise.resolve(!1)}function ee(P){const N=P.wizard;return N?G(P,N.active-1):Promise.resolve(!1)}}),je("packages/modules/form/emitter.js",function(M,X){"use strict";Object.defineProperty(M,"FORM_EVENTS",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"Emitter",{enumerable:!0,get:function(){return O}});const e=new Set(["api","user"]),U=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class O{#e=new Map;on(g,L){if(typeof L!="function")return()=>{};let C=this.#e.get(g);return C||(C=new Set,this.#e.set(g,C)),C.add(L),()=>this.off(g,L)}off(g,L){const C=this.#e.get(g);C&&C.delete(L)}emit(g,L){const C=this.#e.get(g),A=this.#e.get("*");if((!C||C.size===0)&&(!A||A.size===0))return;const H={...L||null,type:g},T=(v,f)=>{for(const u of[...v])try{u(H)}catch(h){console.warn(`lattice-form: a '${f}' handler threw; other handlers were unaffected.`,h)}};C&&C.size&&T(C,g),A&&A.size&&T(A,"*")}emitBefore(g,L,C){const A=this.#e.get(g);if(!A||A.size===0)return!0;let H=!1,T=null;const v=n=>{H=!0,n!=null&&T===null&&(T=String(n))},f=C||L&&L.origin,u={...L||null,type:g,origin:e.has(f)?f:"user",get defaultPrevented(){return H},get reason(){return T},preventDefault(n){v(n)}},h=[...A],x=()=>(H&&T===null&&(T="prevented"),H&&L&&typeof L=="object"&&(L.reason=T),!H),t=[];for(let n=0;n<h.length;n++){const a=h[n];try{const m=a(u);m&&typeof m.then=="function"?t.push(m):m===!1&&v("prevented")}catch(m){v("error"),console.warn(`lattice-form: a '${g}' before-handler threw; the commit was cancelled.`,m)}}return t.length===0?x():Promise.allSettled(t).then(n=>{for(const a of n)a.status==="rejected"?(v("error"),console.warn(`lattice-form: a '${g}' before-handler rejected; the commit was cancelled.`,a.reason)):a.value===!1&&v("prevented");return x()})}clear(){this.#e.clear()}}}),je("packages/modules/form/bind-router.js",function(M,X){"use strict";Object.defineProperty(M,"routerBinding",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"writeRouterRecord",{enumerable:!0,get:function(){return O}});function e(re){return re!==null&&typeof re=="object"&&!Array.isArray(re)}function U(re){const{router:g,route:L,key:C}=re,A=f=>f!=null&&String(f.rowKey??f.id)===String(C);return{kind:"router",record:()=>g&&typeof g.get=="function"?g.get(L,C):void 0,items:()=>[],density:()=>{},subscribe:f=>{if(!g||typeof g.subscribe!="function")return()=>{};const u=x=>{if(x){for(const t of x.add||[])A(t)&&f(null,null,t);for(const t of x.update||[])A(t)&&f(null,null,t)}},h=g.subscribe(L,u);return typeof h=="function"?h:()=>{}},save:f=>O(re,f)}}function O(re,g){const{router:L,route:C,key:A,onSave:H}=re;if(!Object.keys(g||{}).length)return!0;const v=()=>L&&typeof L.get=="function"?L.get(C,A):void 0,f=n=>{!L||typeof L.apply!="function"||L.apply([{op:"upsert",row:n}])},u=()=>{!L||typeof L.apply!="function"||(e(h)?L.apply([{op:"upsert",row:h}]):L.apply([{op:"delete",row:x}]))},h=v(),x={...e(h)?h:{},...g};if(f(x),typeof H!="function")return!0;let t;try{t=H(g,x)}catch{return u(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(u(),!1)):!0}}),je("packages/modules/form/bind.js",function(M,X){"use strict";Object.defineProperty(M,"resolveBind",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"isBound",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"applyBinding",{enumerable:!0,get:function(){return t}});const U=X("packages/modules/form/model.js").DENSITIES,re=X("packages/modules/form/bind-router.js").routerBinding,g=new Set(["number","currency","percent","integer","decimal","duration"]);function L(n){const a=n&&n.dataType;if(a&&(a.unitConfig||a.temperatureConfig))return!0;const m=n&&n.edit?n.edit.editor:null;return m==="unit"||m==="temperature"}function C(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function A(n){const a=n&&n.edit?n.edit.editor:null,m=n&&n.type;return a==="checkbox"||m==="boolean"?"checkbox":a==="number"||m!=null&&g.has(m)||L(n)?"number":"input"}function H(n){const a=n&&n.columns&&typeof n.columns.all=="function"?n.columns.all():[],m=[];for(const E of a){if(!E||!E.field||E.generated||E.computed)continue;const _={type:A(E),name:E.field,label:E.title,format:E.format},c=E.dataType,S=c&&c.unitConfig,o=c&&c.temperatureConfig;S?Object.assign(_,{system:S.system,unit:S.unit,binary:S.binary,decimals:S.decimals,minDecimals:S.minDecimals,maxDecimals:S.maxDecimals,display:S.display,group:S.group,space:S.space,placement:S.placement,significantFigures:S.significantFigures,compound:S.compound,nullDisplay:S.nullDisplay}):o&&Object.assign(_,{scale:o.scale,display:o.display,decimals:o.decimals,minDecimals:o.minDecimals,maxDecimals:o.maxDecimals,space:o.space,nullDisplay:o.nullDisplay}),m.push(_)}return m}function T(n,a){const m=n&&n.columns&&typeof n.columns.all=="function"?n.columns.all():[];for(const E of m)if(E&&E.field===a)return E;return null}function v(n){const a=n&&typeof n.get=="function"?n.get("density"):void 0;return U.includes(a)?a:void 0}function f(n){const{grid:a,rowKey:m}=n,E=()=>{const o=a&&a.rows&&typeof a.rows.byKey=="function"?a.rows.byKey(m):null;return o&&C(o.data)?{...o.data}:{}},_=o=>{const d=T(a,o);return d?d.id:o};return{kind:"grid",record:E,items:()=>H(a),density:()=>v(a),subscribe:o=>{if(!a||typeof a.on!="function")return()=>{};const d=l=>{if(!l||l.key!==m)return;const s=a.columns&&typeof a.columns.get=="function"?a.columns.get(l.colId):null,r=s?s.field:l.colId;r&&o(r,l.value)};return a.on("cell:changed",d)},save:o=>{const d=Object.keys(o);if(!d.length)return!0;if(!a||!a.edit||typeof a.edit.setCells!="function")return!1;const l=d.map(r=>({key:m,colId:_(r),value:o[r]})),s=a.edit.setCells(l,"cell",{origin:"form"});return s&&typeof s.then=="function"?s.then(r=>r>0):s>0}}}function u(n){return{kind:"values",record:()=>({...n}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:E=>{for(const _ of Object.keys(E))n[_]=E[_];return!0}}}function h(n){const a=n&&n.bind;return a==null||typeof a!="object"?null:a.grid!=null&&C(a.grid)?f(a):a.router!=null?re(a):u(a)}function x(n){return!!(n&&n.bind!=null&&typeof n.bind=="object")}function t(n,a,m){n.bound=m;const E=(S,o)=>{const d=a.getItem(S);d&&d.setValue(o)},_=(S,o,d)=>{if(d!=null){for(const l of Object.keys(d))if(n.items.has(l)){if(n.dirty.has(l)){n.conflicts.add(l);continue}n.baseline[l]=d[l],E(l,d[l])}return}if(n.items.has(S)){if(n.dirty.has(S)){n.conflicts.add(S);return}n.baseline[S]=o,E(S,o)}},c=m.record();if(c!=null&&typeof c=="object")for(const S of Object.keys(c))n.items.has(S)&&(n.baseline[S]=c[S],E(S,c[S]));n.disposers.push(a.on("change",S=>{n.dirty.add(S.name),n.conflicts.delete(S.name)})),n.disposers.push(m.subscribe(_))}}),je("packages/modules/form/controls/input.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=Object.freeze(["text","email","password","url"]),re=Object.freeze({viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"],paint:"fill"}),g=Object.freeze({viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"});function L(v){return O.includes(v)?v:"text"}function C(v){return!(v.props&&v.props.reveal===!1)}function A(v,f){const u=f?g:re,h=v.createElementNS("http://www.w3.org/2000/svg","svg");h.setAttribute("viewBox",u.viewBox),h.setAttribute("focusable","false"),h.setAttribute("aria-hidden","true"),u.paint==="stroke"?(h.setAttribute("fill","none"),h.setAttribute("stroke","currentColor"),h.setAttribute("stroke-width","1.5"),h.setAttribute("stroke-linecap","round"),h.setAttribute("stroke-linejoin","round")):h.setAttribute("fill","currentColor");for(const x of u.paths){const t=v.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",x),h.appendChild(t)}return h}function H(v){return v.__latPassword?v.__latPassword.input:v}function T(v,f,u){const h=f&&f.defaultView,x=h&&h.Event,t=x?new x(u,{bubbles:!0}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};v.dispatchEvent(t)}U("input",{kind:"field",build(v,f){const u=f.doc,h=L(v.subtype);if(h!=="password"||!C(v)){const c=u.createElement("input");return c.type=h,v.name&&(c.name=v.name),v.placeholder!=null&&(c.placeholder=String(v.placeholder)),c.value=v.value==null?"":String(v.value),c}const x=u.createElement("div");x.className="lat-form__password";const t=u.createElement("input");t.type="password",v.name&&(t.name=v.name),v.placeholder!=null&&(t.placeholder=String(v.placeholder)),t.value=v.value==null?"":String(v.value),x.appendChild(t);const n=u.createElement("button");n.type="button",n.className="lat-form__password-btn",n.setAttribute("aria-pressed","false");const a=f.t("form.password.show");n.setAttribute("aria-label",a),n.title=a,n.appendChild(A(u,!1)),x.appendChild(n);const m={revealed:!1,disabled:!1,input:t,btn:n};x.__latPassword=m;const E=c=>{m.revealed=c===!0,t.type=m.revealed?"text":"password",n.setAttribute("aria-pressed",m.revealed?"true":"false");const S=f.t(m.revealed?"form.password.hide":"form.password.show");n.setAttribute("aria-label",S),n.title=S,n.replaceChild(A(u,m.revealed),n.firstChild)};m.setRevealed=E,n.addEventListener("click",()=>{m.disabled||E(!m.revealed)});let _=!1;return x.addEventListener("focusin",()=>{_||(_=!0,T(x,u,"focus"))}),x.addEventListener("focusout",c=>{x.contains(c.relatedTarget)||(_=!1,E(!1),T(x,u,"blur"))}),x},read(v){return H(v).value},write(v,f){H(v).value=f==null?"":String(f)},state(v,f){const u=H(v);u.disabled=f.disabled===!0,u.readOnly=f.readOnly===!0;const h=v.__latPassword;h&&(h.disabled=f.disabled===!0,h.btn&&(h.btn.disabled=h.disabled))},reset(v){const f=v.__latPassword;f&&typeof f.setRevealed=="function"&&f.setRevealed(!1)}})}),je("packages/core/src/internal/predicates.js",function(M,X){"use strict";Object.defineProperty(M,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"isFunction",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"isNil",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"isBlank",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"isCtor",{enumerable:!0,get:function(){return g}});function e(L){return L!==null&&typeof L=="object"&&!Array.isArray(L)}function U(L){return typeof L=="function"}function O(L){return L==null}function re(L){return L==null||L===""}function g(L){return typeof L!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(L))?!0:!!(L.prototype&&Object.getOwnPropertyNames(L.prototype).length>1)}}),je("packages/core/src/internal/warn.js",function(M,X){"use strict";Object.defineProperty(M,"reportedWarnings",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"warnOnce",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"infoOnce",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"resetWarnings",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"invariant",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"DEV",{enumerable:!0,get:function(){return x}});const e=new Set,U=2e3;function O(t){if(e.add(t),e.size>U){const n=e.values().next().value;n!==void 0&&e.delete(n)}}const re=[],g=500;function L(t,n,a){re.push({key:t,level:n,message:a.map(m=>typeof m=="string"?m:C(m)).join(" "),at:Date.now()}),re.length>g&&re.shift()}function C(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function A(){return re.map(t=>({...t}))}function H(t){if(t.length===0||typeof t[0]!="string")return t;const n=t[0].replace(/^\[lattice\]\s*/,"");return n===t[0]?t:[n,...t.slice(1)]}function T(t,...n){if(e.has(t))return;O(t);const a=H(n);L(t,"warn",a),console.warn("[lattice]",...a)}function v(t,...n){if(e.has(t))return;O(t);const a=H(n);L(t,"info",a),console.info("[lattice]",...a)}function f(){e.clear(),re.length=0}function u(t,n){const a=new Error(`[lattice] ${t}`);throw n!==void 0&&(a.cause=n),a}function h(t,n){t||u(n)}const x=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),je("packages/core/src/format/mask.js",function(M,X){"use strict";Object.defineProperty(M,"splitSections",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"parseSection",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"compileMask",{enumerable:!0,get:function(){return L}});const e=new Set(["0","#","?",",","."]),U="\0";function O(A){const H=[];let T="",v=!1;for(let f=0;f<A.length;f++){const u=A[f];if(u==="\\"){T+=u+(A[f+1]??""),f+=1;continue}if(u==='"'){v=!v,T+=u;continue}if(u===";"&&!v){H.push(T),T="";continue}T+=u}return H.push(T),H}function re(A){let H="",T="",v="",f=1,u=!1,h=!1;const x=o=>{h?T+=o:H+=o};for(let o=0;o<A.length;o++){const d=A[o];if(d==="\\"){x(A[o+1]??""),o+=1;continue}if(d==='"'){const l=A.indexOf('"',o+1);x(l===-1?A.slice(o+1):A.slice(o+1,l)),o=l===-1?A.length:l;continue}if(d==="%"){f*=100,x("%");continue}if(d==="@"){u=!0,x("\0");continue}if(e.has(d)){v+=d,h=!0;continue}x(d)}let t=-1;for(let o=v.length-1;o>=0;o--){const d=v[o];if(d==="0"||d==="#"||d==="?"){t=o;break}}let n=!1,a="";for(let o=0;o<v.length;o++){const d=v[o];if(d===","){o>t?f/=1e3:n=!0;continue}a+=d}const m=a.indexOf("."),E=m===-1?a:a.slice(0,m),_=m===-1?"":a.slice(m+1);let c=0;for(const o of E)o==="0"&&(c+=1);let S=0;for(const o of _)o==="0"&&(S+=1);return{prefix:H,suffix:T,minInt:c,minDec:S,maxDec:_.length,grouping:n,scale:f,hasNumber:t!==-1,isText:u}}function g(A,H){const T=new Intl.NumberFormat(H,{minimumIntegerDigits:Math.max(A.minInt,1),minimumFractionDigits:A.minDec,maximumFractionDigits:Math.max(A.maxDec,A.minDec),useGrouping:A.grouping}),{prefix:v,suffix:f,scale:u,hasNumber:h}=A;return x=>{if(!h)return v+f;const t=u===1?x:x*u;return v+T.format(t)+f}}function L(A,H){const v=O(String(A)).map(re),f=v.map(a=>g(a,H)),u=0,h=v.length>1?1:-1,x=v.length>2?2:-1,t=v.length>3?3:-1,n=a=>{if(a==null||a==="")return"";if(typeof a!="number"||Number.isNaN(a)){const m=Number(a);if(Number.isNaN(m))return t===-1?String(a):(v[t].prefix+v[t].suffix).split("\0").join(String(a));a=m}return a===0&&x!==-1?f[x](0):a<0&&h!==-1?f[h](-a):f[u](a)};return n.spec={mask:A},{format:n,ooxml:C(String(A))}}function C(A){return A.trim()}}),je("packages/core/src/format/pattern.js",function(M,X){"use strict";Object.defineProperty(M,"parseNumberPattern",{enumerable:!0,get:function(){return g}});const U=X("packages/core/src/format/mask.js").splitSections;function O(L){let C="",A="",H="",T="",v=!1,f=!1,u=!1,h=!1;const x=n=>{u?A+=n:C+=n};for(let n=0;n<L.length;n++){const a=L[n];if(a==="\\"){x(L[n+1]??""),n+=1;continue}if(a==='"'){const m=L.indexOf('"',n+1);x(m===-1?L.slice(n+1):L.slice(n+1,m)),n=m===-1?L.length:m;continue}if(a==="%"){f=!0;continue}if(a==="0"||a==="#"){u=!0,h?T+=a:H+=a;continue}if(a===","){h||(v=!0);continue}if(a==="."&&!h){h=!0;continue}x(a)}if(!u)return{hasDigit:!1,prefix:C,suffix:A,minDec:0,maxDec:0,grouping:!1,percent:f};let t=0;for(const n of T)n==="0"&&(t+=1);return{hasDigit:!0,prefix:C,suffix:A,minDec:t,maxDec:T.length,grouping:v,percent:f}}function re(L,C){const A=C.trim(),H=L.trim();return A.startsWith("(")&&A.endsWith(")")&&A.slice(1,-1).trim()===H?"parentheses":A.endsWith("-")?"suffix":"minus"}function g(L){if(typeof L!="string")return null;const C=U(L);if(C.length===0)return null;const A=O(C[0]);if(!A.hasDigit)return null;const H={style:A.percent?"percent":"decimal",prefix:A.prefix,suffix:A.suffix,minDecimals:A.minDec,maxDecimals:Math.max(A.maxDec,A.minDec),thousandsSeparator:A.grouping?void 0:!1};if(C.length>1&&(H.negative=re(C[0],C[1])),C.length>2){const T=O(C[2]);T.hasDigit||(H.zeroDisplay=T.prefix+T.suffix)}return H}}),je("packages/core/src/format/number.js",function(M,X){"use strict";Object.defineProperty(M,"compileNumber",{enumerable:!0,get:function(){return C}});const U=X("packages/core/src/internal/predicates.js").isNil,re=X("packages/core/src/internal/warn.js").warnOnce,L=X("packages/core/src/format/pattern.js").parseNumberPattern;function C(A,H){const T=typeof A=="string"?{pattern:A}:A||{};let v=T;if(typeof T.pattern=="string"){const W=L(T.pattern);if(W){const{pattern:b,...J}=T;v={...W,...J}}else re(`format:pattern:${T.pattern}`,`invalid number format pattern "${T.pattern}"; the value will use the default number format`)}const f=v.locale||H||void 0,u=v.style||"decimal",h=typeof v.scale=="number"?v.scale:1,x=v.nullDisplay??"",t=v.zeroDisplay,n=v.prefix||"",a=v.suffix||"",m=v.negative||"minus",E=v.signed===!0,_={style:u,notation:v.notation||"standard"};u==="currency"&&(_.currency=v.currency||"USD",v.currencyDisplay&&(_.currencyDisplay=v.currencyDisplay)),typeof v.decimals=="number"?(_.minimumFractionDigits=v.decimals,_.maximumFractionDigits=v.decimals):(typeof v.minDecimals=="number"&&(_.minimumFractionDigits=v.minDecimals),typeof v.maxDecimals=="number"&&(_.maximumFractionDigits=v.maxDecimals),_.minimumFractionDigits>(_.maximumFractionDigits??20)&&(_.maximumFractionDigits=_.minimumFractionDigits)),v.thousandsSeparator===!1&&(_.useGrouping=!1),_.notation==="compact"&&(_.compactDisplay=v.compactDisplay||"short");const c=new Intl.NumberFormat(f,_),S=typeof v.thousandsSeparator=="string"?v.thousandsSeparator:null,o=typeof v.decimalSeparator=="string"?v.decimalSeparator:null;let d=",",l=".";if(S||o)for(const W of c.formatToParts(12345.6))W.type==="group"?d=W.value:W.type==="decimal"&&(l=W.value);const s=W=>{let b=W;return S&&(b=b.split(d).join("")),o&&(b=b.split(l).join("")),S&&(b=b.split("").join(S)),o&&(b=b.split("").join(o)),b},r=!!(S||o),i=n!==""&&u==="currency",B=W=>{let b;if(i){const J=c.formatToParts(W);let Q=!1;b="";for(const ne of J)b+=ne.value,!Q&&ne.type==="currency"&&(b+=n,Q=!0);Q||(b=n+b)}else b=n+c.format(W);return r&&(b=s(b)),b+a},z=W=>{if(U(W)||W==="")return x;const b=typeof W=="number"?W:Number(W);if(Number.isNaN(b))return x;const J=h===1?b:b*h;return J===0&&t!==void 0?t:J<0?m==="parentheses"?`(${B(-J)})`:m==="suffix"?`${B(-J)}-`:B(J):E&&J>0?`+${B(J)}`:B(J)};return z.negativeClass=v.negativeClass||null,z.spec=v,z}}),je("packages/core/src/columns/types/unit.js",function(M,X){"use strict";Object.defineProperty(M,"defineUnit",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"registerUnitSystem",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"unitSystemNames",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"unitsOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"localeSeparators",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"parseUnit",{enumerable:!0,get:function(){return z}}),Object.defineProperty(M,"formatUnit",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(M,"createUnitType",{enumerable:!0,get:function(){return k}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return I}});const U=X("packages/core/src/internal/predicates.js").isNil,re=X("packages/core/src/internal/warn.js").warnOnce;function g(F,p,D,G){return Object.freeze({symbol:F,factor:p,aliases:Object.freeze(D||[]),binary:!!(G&&G.binary),prefix:G&&G.prefix||null,auto:!(G&&G.auto===!1)})}function L(F,p,D,G){return g(F,p,D,G)}const C=Object.freeze({data:Object.freeze([g("B",1,["byte","bytes"]),g("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),g("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),g("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),g("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),g("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),g("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),g("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),g("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),g("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([g("bps",1,["bit","bits","bit/s","b/s"]),g("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),g("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),g("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),g("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([g("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),g("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),g("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),g("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),g("in",.0254,["inch","inches"],{auto:!1}),g("ft",.3048,["foot","feet"],{auto:!1}),g("yd",.9144,["yard","yards"],{auto:!1}),g("m",1,["metre","metres","meter","meters"]),g("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),g("mi",1609.344,["mile","miles"],{auto:!1}),g("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([g("mg",.001,["milligram","milligrams"]),g("g",1,["gram","grams"]),g("oz",28.349523125,["ounce","ounces"],{auto:!1}),g("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),g("kg",1e3,["kilogram","kilograms"]),g("st",6350.29318,["stone"],{auto:!1}),g("t",1e6,["tonne","tonnes","ton"],{auto:!1}),g("ton (US)",907184.74,["ton","shortton"],{auto:!1}),g("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([g("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),g("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),g("ms",.001,["msec","msecs","millisecond","milliseconds"]),g("s",1,["sec","secs","second","seconds"]),g("m",60,["min","mins","minute","minutes"]),g("h",3600,["hr","hrs","hour","hours"]),g("d",86400,["day","days"])]),speed:Object.freeze([g("mm/s",.001,["millimetre/s","millimeter/s"]),g("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),g("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),g("mph",.44704,["mile/h","miles/h"],{auto:!1}),g("kn",1852/3600,["knot","knots"],{auto:!1}),g("m/s",1,["metre/s","meter/s","mps"]),g("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([g("mm/s²",.001,["mm/s2"]),g("ft/s²",.3048,["ft/s2"],{auto:!1}),g("m/s²",1,["m/s2","metre/s2","meter/s2"]),g("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([g("mm²",1e-6,["mm2"]),g("cm²",1e-4,["cm2"]),g("in²",64516e-8,["in2","sqin"],{auto:!1}),g("ft²",.09290304,["ft2","sqft"],{auto:!1}),g("yd²",.83612736,["yd2","sqyd"],{auto:!1}),g("m²",1,["m2","sqm"]),g("ha",1e4,["hectare","hectares"],{auto:!1}),g("ac",4046.8564224,["acre","acres"],{auto:!1}),g("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([g("µL",1e-6,["ul","microlitre","microliter"]),g("mL",.001,["millilitre","milliliter"]),g("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),g("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),g("L",1,["litre","litres","liter","liters"]),g("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),g("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),g("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),g("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([g("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),g("J",1,["joule","joules"]),g("cal",4.184,["calorie","calories"],{auto:!1}),g("kJ",1e3,["kilojoule","kilojoules"]),g("BTU",1055.05585262,["btu"],{auto:!1}),g("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),g("MJ",1e6,["megajoule","megajoules"]),g("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),g("GJ",1e9,["gigajoule","gigajoules"]),g("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([g("mW",.001,["milliwatt","milliwatts"]),g("W",1,["watt","watts"]),g("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),g("kW",1e3,["kilowatt","kilowatts"]),g("hp",745.6998715822702,["horsepower"],{auto:!1}),g("MW",1e6,["megawatt","megawatts"]),g("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([g("mN",.001,["millinewton","millinewtons"]),g("N",1,["newton","newtons"]),g("lbf",4.4482216152605,["poundforce"],{auto:!1}),g("kgf",9.80665,["kilogramforce"],{auto:!1}),g("kN",1e3,["kilonewton","kilonewtons"]),g("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([g("Pa",1,["pascal","pascals"]),g("mbar",100,["millibar"],{auto:!1}),g("inH₂O",249.0889,["inh2o"],{auto:!1}),g("mmHg",133.322387415,["torr"],{auto:!1}),g("kPa",1e3,["kilopascal","kilopascals"]),g("inHg",3386.388640341,["inhg"],{auto:!1}),g("psi",6894.757293168361,["lbf/in2"],{auto:!1}),g("bar",1e5,[],{auto:!1}),g("atm",101325,["atmosphere","atmospheres"],{auto:!1}),g("MPa",1e6,["megapascal","megapascals"]),g("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([g("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),g("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),g("kN·m",1e3,["knm","kn.m"],{auto:!1}),g("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([g("kg/m³",1,["kg/m3"]),g("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),g("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),g("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([g("L/min",1/6e4,["lpm","l/min"],{auto:!1}),g("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),g("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),g("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),g("cfm",.0004719474432,["ft3/min"],{auto:!1}),g("L/s",.001,["lps","l/s"],{auto:!1}),g("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([g("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),g("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),g("mrad",.001,["milliradian","milliradians"],{auto:!1}),g("mil",Math.PI/3200,["nato-mil"],{auto:!1}),g("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),g("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),g("rad",1,["radian","radians"]),g("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([g("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),g("rad/s",1,["radps","radians/s"]),g("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),g("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([g("ppt",1e-12,["partspertrillion"],{auto:!1}),g("ppb",1e-9,["partsperbillion"]),g("ppm",1e-6,["partspermillion"]),g("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),g("‰",.001,["permille","permil"],{auto:!1}),g("%",.01,["pct","percent"]),g("×",1,["x","ratio","times"])]),molarity:Object.freeze([g("pM",1e-12,["picomolar","picomolarity"]),g("nM",1e-9,["nanomolar","nanomolarity"]),g("µM",1e-6,["um-molar","micromolar","micromolarity"]),g("mM",.001,["millimolar","millimolarity"]),g("M",1,["molar","mol/l","mol/L","molarity"]),g("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([g("mg/s",1e-6,["milligrams/s"]),g("g/s",.001,["grams/s"]),g("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),g("kg/s",1,["kilograms/s","kgps"]),g("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),g("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),g("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([g("µPa·s",1e-6,["upas","micropascalsecond"]),g("cP",.001,["centipoise"],{auto:!1}),g("mPa·s",.001,["mpas","millipascalsecond"]),g("P",.1,["poise"],{auto:!1}),g("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([g("cSt",1e-6,["centistokes","centistoke"]),g("mm²/s",1e-6,["mm2/s"],{auto:!1}),g("St",1e-4,["stokes","stoke"],{auto:!1}),g("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([g("mW/(m·K)",.001,["mw/mk"]),g("W/(m·K)",1,["w/mk","wmk"]),g("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),g("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([g("J/(kg·K)",1,["j/kgk","jkgk"]),g("kJ/(kg·K)",1e3,["kj/kgk"]),g("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([g("nSv/h",1e-9,["nsvh"]),g("µSv/h",1e-6,["usv/h","usvh"]),g("mSv/h",.001,["msvh"]),g("Sv/h",1,["svh"]),g("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),A=Symbol("ambiguous"),H=new Map,T=new Map;function v(F,p){const D=String(F||"").trim();if(!D)throw new Error("[lattice] a unit system needs a name");if(C[D]||T.has(D))throw new Error(`[lattice] unit system "${D}" already exists`);const G=[...p||[]];if(!G.length)throw new Error(`[lattice] unit system "${D}" has no units`);if(!G.some(ee=>ee.factor===1))throw new Error(`[lattice] unit system "${D}" has no base unit (none with factor 1)`);const R=new Set;for(const ee of G){if(R.has(ee.symbol))throw new Error(`[lattice] unit system "${D}" declares "${ee.symbol}" twice`);R.add(ee.symbol)}return T.set(D,Object.freeze(G)),H.delete(D),D}function f(){return[...Object.keys(C),...T.keys()]}function u(F){const p=h(F);return p?p.units:[]}function h(F){const p=String(F||""),D=H.get(p);if(D!==void 0)return D;const G=C[p]||T.get(p);if(!G)return H.set(p,null),null;const R=Object.freeze([...G].sort(($,w)=>$.factor-w.factor)),ee=new Map,P=new Map,N=($,w)=>{const V=ee.get($);V===void 0?ee.set($,w):V!==w&&ee.set($,A)};for(const $ of R){N($.symbol.toLowerCase(),$);for(const w of $.aliases)N(w.toLowerCase(),$);if($.prefix){const w=P.get($.prefix)||[];w.push($),P.set($.prefix,w)}}const y={units:R,byToken:ee,byPrefix:P,decimal:R.filter($=>!$.binary&&$.auto),binary:R.some($=>$.binary)?R.filter($=>($.binary||$.factor===1)&&$.auto):null};return H.set(p,y),y}function x(F,p){return p&&F.binary||F.decimal}function t(F,p){const D=h(F);if(!D||U(p))return null;const G=D.units.find(ee=>ee.symbol===String(p));if(G)return G;const R=D.byToken.get(String(p).trim().toLowerCase());return R&&R!==A?R:null}const n=new WeakMap;function a(F){const p=F||{};if(typeof p=="object"&&p!==null){const ee=n.get(p);if(ee!==void 0)return ee}const D=p.system||"data",G=h(D);let R=null;if(!G)re(`unit:system:${D}`,`unknown unit system "${D}"; known systems are ${f().join(", ")}`);else{let ee=p.unit?t(D,p.unit):null;ee||(p.unit&&re(`unit:unit:${D}:${p.unit}`,`unknown unit "${p.unit}" in system "${D}"; falling back to ${G.units[0].symbol}`),ee=G.units.find(P=>P.factor===1)||G.units[0]),R={index:G,base:ee,binary:p.binary===!0}}return typeof p=="object"&&p!==null&&n.set(p,R),R}const m=new WeakMap;function E(F,p){if(!F||!p||!Array.isArray(F.compound)||F.compound.length===0)return null;const D=m.get(F);if(D!==void 0)return D;const G=new Set,R=[];for(const P of F.compound){const N=t(F.system||"data",P);if(!N){re(`unit:compound:${F.system}:${P}`,`unknown compound unit "${P}" in system "${F.system||"data"}"; ignoring it`);continue}G.has(N.symbol)||(G.add(N.symbol),R.push(N))}R.sort((P,N)=>N.factor-P.factor);const ee=R.length>=2?R:null;return m.set(F,ee),ee}function _(F,p,D){return p===D||p.factor===D.factor?F:F*p.factor/D.factor}const c=new Map;function S(F){const p=F||"",D=c.get(p);if(D)return D;const G={group:",",decimal:"."};try{for(const R of new Intl.NumberFormat(F||void 0).formatToParts(12345.6))R.type==="group"?G.group=R.value:R.type==="decimal"&&(G.decimal=R.value)}catch{}return c.set(p,G),G}const o=/[\s ]/g,d=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,l=/^[^\d+\-(.,\s]+\s*/,s=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function r(F,p){const{group:D,decimal:G}=S(p);let R=String(F).replace(o,"");if(R==="")return null;const ee=G?R.indexOf(G):-1;if(D&&D!==G){if(ee>=0&&R.indexOf(D,ee+G.length)>=0)return null;R=R.split(D).join("")}if(G&&G!=="."&&(R=R.split(G).join(".")),!s.test(R))return null;const P=Number(R);return Number.isFinite(P)?P:null}function i(F,p,D){const G=String(F).trim().replace(/\.$/,"");if(G==="")return null;const R=p.units.find(w=>w.symbol===G);if(R)return R;const ee=G.toLowerCase(),P=p.byToken.get(ee);if(P===A)return null;if(P)return P;const N=p.byPrefix.get(ee);if(!N||!N.length)return null;const y=x(p,D),$=N.filter(w=>y.includes(w));return $.length===1?$[0]:null}function B(F,p,D,G){let R=F,ee=0,P=!1,N=!1;for(;R!=="";){const y=d.exec(R)[0];if(y==="")return null;const $=r(y,G&&G.locale);if($===null)return null;R=R.slice(y.length).trim();const w=R.search(/[+-]?[\d]/),V=(w>=0?R.slice(0,w):R).trim();if(R=w>=0?R.slice(w).trim():"",V===""){if(P)return null;N=!0,ee+=_($,D[0],p.base)}else{const oe=i(V,p.index,p.binary);if(!oe)return null;ee+=_($,oe,p.base)}if(P=!0,N&&R!=="")return null}return P?ee:null}function z(F,p){if(U(F))return null;if(typeof F=="number")return Number.isFinite(F)?F:null;const D=a(p);if(!D)return null;let G=String(F).trim();if(G==="")return null;let R=!1;G.startsWith("(")&&G.endsWith(")")&&(R=!0,G=G.slice(1,-1).trim());const ee=E(p,D);if(ee){G.startsWith("-")&&(R=!0,G=G.slice(1).trim());const ie=B(G,D,ee,p);return ie===null?null:R?-ie:ie}let P=null;const N=l.exec(G);if(N&&N[0]){const ie=i(N[0].trim(),D.index,D.binary);ie&&(P=ie,G=G.slice(N[0].length).trim())}const y=d.exec(G)[0],$=r(y,p&&p.locale);if($===null)return null;const w=G.slice(y.length).trim();if(P&&w!=="")return null;const V=P||(w===""?D.base:i(w,D.index,D.binary));if(!V)return null;const oe=_($,V,D.base);return R?-oe:oe}const W=new Map;function b(F,p,D,G){const R=`${F||""}|${p}|${D}|${G?1:0}`;let ee=W.get(R);return ee||(ee=new Intl.NumberFormat(F||void 0,{minimumFractionDigits:p,maximumFractionDigits:D,useGrouping:G}),W.set(R,ee)),ee}function J(F,p){if(!Number.isFinite(F)||F===0)return Math.max(0,p-1);const D=Math.floor(Math.log10(Math.abs(F)));return Math.min(20,Math.max(0,p-1-D))}function Q(F,p){if(!Number.isFinite(F)||F===0)return F;const D=Math.ceil(Math.log10(Math.abs(F))),G=10**(p-D);return Math.round(F*G)/G}function ne(F,p,D){if(!D||D===p.base.symbol)return p.base;if(D!=="auto")return Z(p,D);if(F===0||!Number.isFinite(F))return p.base;const G=Math.abs(F)*p.base.factor,R=x(p.index,p.binary);let ee=R[0];for(const y of R)G>=y.factor&&(ee=y);if(G>=ee.factor)return ee;let P=ee;for(const y of p.index.units)y.binary!==p.binary&&y.factor!==1||y.factor<=G&&y.factor>(P===ee?0:P.factor)&&(P=y);if(P!==ee)return P;let N=ee;for(const y of p.index.units)y.binary!==p.binary&&y.factor!==1||y.factor<N.factor&&(N=y);return N.factor<p.base.factor?N:p.base}function Z(F,p){const D=F.index.units.find(R=>R.symbol===p);if(D)return D;const G=F.index.byToken.get(String(p).toLowerCase());return G&&G!==A?G:(re(`unit:display:${p}`,`unknown display unit "${p}"; rendering in ${F.base.symbol}`),F.base)}function Y(F,p,D,G){const R=F<0;let ee=Math.abs(F)*p.base.factor;const P=typeof G.decimals=="number"?G.decimals:G.minDecimals??0,N=typeof G.decimals=="number"?G.decimals:G.maxDecimals??Math.max(P,2),y=G.space??" ",$=[];for(let V=0;V<D.length;V++){const oe=D[V],ie=V===D.length-1;let _e=ie?ee/oe.factor:Math.floor(ee/oe.factor);if(ee-=_e*oe.factor,ie){const Se=10**N;_e=Math.round(_e*Se)/Se+0}const Oe=ie?b(G.locale,P,N,G.group!==!1):b(G.locale,0,0,G.group!==!1);$.push(`${Oe.format(_e)}${y}${oe.symbol}`)}const w=$.join(" ");return R?`-${w}`:w}function Ne(F,p){const D=p||{},G=D.nullDisplay??"";if(U(F)||F==="")return G;const R=typeof F=="number"?F:Number(F);if(!Number.isFinite(R))return G;const ee=a(D);if(!ee)return String(R);const P=E(D,ee);if(P)return Y(R,ee,P,D);const N=typeof D.significantFigures=="number"&&D.significantFigures>0?D.significantFigures:0,y=N?Q(R,N):R,$=ne(y,ee,D.display),w=_(y,ee.base,$);let V=typeof D.decimals=="number"?D.decimals:D.minDecimals??0,oe=typeof D.decimals=="number"?D.decimals:D.maxDecimals??Math.max(V,2);N&&(V=J(w,N),oe=V);const ie=b(D.locale,V,oe,D.group!==!1).format(w),_e=D.space??" ";return D.placement==="prefix"?`${$.symbol}${D.space??""}${ie}`:`${ie}${_e}${$.symbol}`}function ve(F,p){const D=U(F)||Number.isNaN(F)?null:Number(F),G=U(p)||Number.isNaN(p)?null:Number(p);return D===null||Number.isNaN(D)?G===null||Number.isNaN(G)?0:1:G===null||Number.isNaN(G)||D<G?-1:D>G?1:0}function se(F){const p=typeof F.decimals=="number"&&F.decimals>0?`.${"0".repeat(F.decimals)}`:"";return`${typeof F.decimals=="number"?`#,##0${p}`:"#,##0.##"}" ${F.symbol}"`}function k(F){const p={system:"data",...F||{}},D=a(p),G=D?D.base.symbol:String(p.unit||""),R=Object.freeze({...p,unit:G}),ee=Object.freeze({...R,display:G,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),P=new Map([[R.locale||"",R]]),N=y=>{const $=y||"";let w=P.get($);return w||(w=Object.freeze({...R,locale:y||void 0}),P.set($,w)),w};return{base:"number",extends:"number",storage:"float64",unitConfig:R,format:y=>Ne(y.value,y.locale?N(y.locale):R),parse:y=>z(y.text,y.locale?N(y.locale):R),compare:ve,defaults:{filter:"number",editor:"unit",align:"end",total:p.total||"sum"},...p.totals?{totals:p.totals}:{},excel:p.excel||se({decimals:p.decimals,symbol:G}),toStorage:y=>typeof y=="number"?Number.isFinite(y)?y:null:typeof y=="string"?z(y,R):U(y)?null:z(String(y),R),toClipboard:y=>Ne(y,ee),fromClipboard:y=>z(y,R)}}const I=k}),je("packages/core/src/columns/types/temperature.js",function(M,X){"use strict";Object.defineProperty(M,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"findScale",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"convertTemperature",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"formatTemperature",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"parseTemperature",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"createTemperatureType",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return h}});const U=X("packages/core/src/internal/predicates.js").isNil,O=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:x=>x+273.15,fromKelvin:x=>x-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:x=>(x+459.67)*(5/9),fromKelvin:x=>x*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:x=>x,fromKelvin:x=>x}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:x=>x*(5/9),fromKelvin:x=>x*(9/5)})});function re(x){if(U(x))return null;const t=String(x).trim();if(t==="")return null;for(const[a,m]of Object.entries(O))if(t===a||t===m.symbol)return{key:a,scale:m};const n=t.toLowerCase();for(const[a,m]of Object.entries(O))if(m.aliases.includes(n))return{key:a,scale:m};return null}function g(x,t,n){const a=re(t),m=re(n);return!a||!m||!Number.isFinite(Number(x))?null:a.key===m.key?Number(x):m.scale.fromKelvin(a.scale.toKelvin(Number(x)))}const L=new Map;function C(x,t,n){const a=`${x||""}|${t}|${n}`;let m=L.get(a);return m||(m=new Intl.NumberFormat(x||void 0,{minimumFractionDigits:t,maximumFractionDigits:n}),L.set(a,m)),m}function A(x,t){const n=t||{},a=n.nullDisplay??"";if(U(x)||x==="")return a;const m=Number(x);if(!Number.isFinite(m))return a;const E=re(n.scale||"C");if(!E)return String(m);const _=re(n.display||n.scale||"C")||E,c=_.key===E.key?m:_.scale.fromKelvin(E.scale.toKelvin(m)),S=typeof n.decimals=="number"?n.decimals:null,o=S??n.minDecimals??0,d=S??n.maxDecimals??1;return`${C(n.locale,o,d).format(c)}${n.space??" "}${_.scale.symbol}`}const H=/^[+-]?[\d\s., ]*\d/;function T(x,t){const n=String(x).trim();if(n==="")return null;const a=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(c=>c.type==="decimal")?.value||".",m=a===","?".":",",E=n.split(m).join("").split(/[\s ]/).join("").replace(a,"."),_=Number(E);return Number.isFinite(_)?_:null}function v(x,t){if(U(x))return null;const n=t||{},a=re(n.scale||"C");if(!a)return null;if(typeof x=="number")return Number.isFinite(x)?x:null;let m=String(x).trim();if(m==="")return null;let E=!1;m.startsWith("(")&&m.endsWith(")")&&(E=!0,m=m.slice(1,-1).trim());const _=H.exec(m);if(!_)return null;const c=T(_[0],n.locale);if(c===null)return null;const S=m.slice(_[0].length).trim();if(S==="")return E?-c:c;const o=re(S);if(!o)return null;const d=o.key===a.key?c:a.scale.fromKelvin(o.scale.toKelvin(c));return E?-d:d}function f(x){const t=Object.freeze({scale:"C",...x||{}}),a=(re(t.scale)||re("C")).scale.symbol,m=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),E=new Map([[t.locale||"",t]]),_=c=>{const S=c||"";let o=E.get(S);return o||(o=Object.freeze({...t,locale:c||void 0}),E.set(S,o)),o};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:c=>A(c.value,c.locale?_(c.locale):t),parse:c=>v(c.text,c.locale?_(c.locale):t),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:t.excel||`#,##0${typeof t.decimals=="number"&&t.decimals>0?`.${"0".repeat(t.decimals)}`:".#"}" ${a}"`,toStorage:c=>typeof c=="number"?Number.isFinite(c)?c:null:typeof c=="string"?v(c,t):U(c)?null:v(String(c),t),toClipboard:c=>A(c,m),fromClipboard:c=>v(c,t)}}const u=Object.freeze({celsius:f({scale:"C"}),fahrenheit:f({scale:"F"}),kelvin:f({scale:"K"})}),h=f}),je("packages/modules/form/controls/number.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,L=X("packages/core/src/format/number.js").compileNumber,C=X("packages/core/src/columns/types/unit.js"),A=C.parseUnit,H=C.formatUnit,T=C.findUnit,v=C.unitsOf,f=X("packages/core/src/columns/types/temperature.js"),u=f.parseTemperature,h=f.formatTemperature,x=f.findScale,t="data-lattice-form-number-styles";function n(){return`
|
|
1295
|
+
`.trim()}function a(j){const k=j&&j.documentElement;if(!k||k.getAttribute(i))return;k.setAttribute(i,"1");const Z=j.createElement("style");Z.textContent=n(),(j.head||j.body||k).appendChild(Z)}function r(j,k){if(k!=null){if(typeof k=="string"){if(k.trim()){const Z=typeof j.style.cssText=="string"?j.style.cssText:"";j.style.cssText=Z?`${Z};${k}`:k}return}for(const Z of Object.keys(k))j.style[Z]=k[Z]}}function s(j){return j==="cols"?`${V}__cols`:j==="items"?`${V}__items`:`${V}__rows`}function M(j,k,Z,H){k.addEventListener(Z,H),j.disposers.push(()=>k.removeEventListener(Z,H))}function D(j){return j.uidSeq+=1,`lat-form-${j.uidSeq}`}function Y(j){if(j==null)return null;const k=j.tagName;return k==="INPUT"||k==="TEXTAREA"||k==="SELECT"?j:typeof j.querySelector=="function"?j.querySelector("input, textarea, select"):null}function U(j,k,Z){const H={name:k.item.name,value:Z,previousValue:k.value,item:k.item},E=j.emitter.emitBefore("beforeChange",H,"user"),G=()=>{k.value=Z,k.item.value=Z,K(k),j.emitter.emit("change",{name:k.item.name,value:Z,previousValue:H.previousValue,item:k.item}),v(j),k.item.validationMode==="change"&&ve(j,k)},R=me=>{k.def.write(k.control,k.value),F(j,k,me)},ce=me=>{if(!me){k.def.write(k.control,k.value);return}const xe=Q(j,k,Z);xe&&typeof xe.then=="function"?xe.then(C=>{C.ok?G():R(C.message)}):xe.ok?G():R(xe.message)};E&&typeof E.then=="function"?E.then(ce):ce(E)}function Q(j,k,Z){if(k.ruleRequired&&y(Z))return{ok:!1,message:j.t("form.required")};const H=k.def;if(typeof H.validate!="function")return{ok:!0,message:null};const E=H.validate(k.control,k.item,Z);return E&&typeof E.then=="function"?E.then(G=>oe(j,G)):oe(j,E)}function oe(j,k){return k===!1?{ok:!1,message:j.t("form.invalid")}:typeof k=="string"?{ok:!1,message:k}:{ok:!0,message:null}}function F(j,k,Z){let H=k.errorEl;H||(H=j.doc.createElement("div"),H.className=`${V}__error`,H.id=D(j),k.controlWrap.appendChild(H),k.errorEl=H);const E=Z==null||Z===""?j.t("form.invalid"):String(Z);H.textContent=E,k.el.setAttribute("data-invalid","true"),k.control.setAttribute("aria-invalid","true");const G=(k.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!k.validationEl.hidden&&k.validationEl.textContent===E&&G.includes(k.validationEl.id))&&!G.includes(H.id)&&(G.push(H.id),k.control.setAttribute("aria-describedby",G.join(" ")))}function K(j){j.errorEl&&(j.errorEl.remove(),j.errorEl=null),j.el.removeAttribute("data-invalid"),j.control.removeAttribute("aria-invalid")}function W(j,k){const Z=k.value,H=k.item;if(typeof k.def.validate=="function"){const E=o(k.def.validate(k.control,H,Z),H,j.t);if(E)return E}return l(H,Z,j.t,k.ruleRequired===!0)}function ge(j,k,Z){const H=k.item,E=k.validationEl;if(k.validation.pristine=!1,k.preEl&&(k.preEl.hidden=!0),Z){k.validation.valid=!1,k.validation.code=Z.code,k.validation.message=Z.message,k.control.setAttribute("aria-invalid","true");const G=k.tooltipId?`${k.tooltipId} ${E.id}`:E.id;k.control.setAttribute("aria-describedby",G),E.textContent=Z.message,E.className=`${V}__validation ${V}__validation--error`,E.hidden=!1;return}k.validation.valid=!0,k.validation.code=null,k.validation.message=null,k.control.removeAttribute("aria-invalid"),k.tooltipId?k.control.setAttribute("aria-describedby",k.tooltipId):k.control.removeAttribute("aria-describedby"),typeof H.successMessage=="string"&&H.successMessage!==""?(E.textContent=H.successMessage,E.className=`${V}__validation ${V}__validation--success`,E.hidden=!1):(E.textContent="",E.className=`${V}__validation`,E.hidden=!0)}function ve(j,k){typeof k.def.reset=="function"&&k.def.reset(k.control,k.item);const Z=W(j,k);ge(j,k,Z);const H=Z==null;return j.emitter.emit("validated",{name:k.item.name,item:k.item,value:k.value,valid:H,failures:Z?[{name:k.item.name,rule:Z.code,message:Z.message}]:[]}),H}function le(j,k){const Z=k.control,H=k.item,E=k.def,G=R=>()=>{j.emitter.emit(R,{name:H.name,item:H}),R==="blur"&&H.validationMode==="blur"&&ve(j,k)};if(E.kind==="field"){const R=()=>{j.emitter.emit("input",{name:H.name,value:E.read(Z,H),item:H})},ce=()=>{U(j,k,E.read(Z,H))};M(j,Z,"input",R),M(j,Z,"change",ce);for(const me of E.domEvents||[])M(j,Z,me,C=>{const ne=C&&typeof C=="object"&&C.detail&&typeof C.detail=="object"?C.detail:null;j.emitter.emit(me,ne?{name:H.name,item:H,...ne}:{name:H.name,value:E.read(Z,H),item:H})})}else E.kind==="toggle"?M(j,Z,"change",()=>{U(j,k,E.read(Z,H))}):E.kind==="button"&&M(j,Z,"click",()=>{Z.disabled||Z.getAttribute("aria-disabled")==="true"||j.emitter.emit("click",{name:H.name,item:H,value:null})});E.kind!=="display"&&(M(j,Z,"focus",G("focus")),M(j,Z,"blur",G("blur")))}function x(j,k){if(typeof j=="string"&&/%$/.test(j.trim())){const Z=parseFloat(j);if(Number.isFinite(Z)){const H=Math.round(Z*k/100*1e6)/1e6;return`0 0 calc(${Z}% - ${H} * var(--lattice-space))`}}return`0 0 ${P(j)}`}function L(j,k,Z,H={}){const E=B(k.type)||B("text"),G=k.labelPosition!=null?k.labelPosition:H.labelPosition!=null?H.labelPosition:"top",R=k.labelWidth!=null?k.labelWidth:H.labelWidth,ce=k.requiredHint!==void 0?k.requiredHint:H.requiredHint,me=j.doc.createElement("div");me.className=`${V}__item`,me.setAttribute("data-label-position",G);const xe=E.build(k,j),C=E.action===!0,ne=!C&&k.label!=null&&k.label!=="";let se=null,J=null;if(ne){se=j.doc.createElement("label"),se.className=`${V}__label`,se.textContent=String(k.label);const ke=D(j);se.setAttribute("for",ke),(Y(xe)||xe).id=ke,G==="hidden"&&se.classList.add(`${V}__label--hidden`);const Le=p(j,{labelEl:se,item:k,labelPosition:G,labelWidth:R});Le?(J=Le.tooltipId,me.appendChild(Le.group)):(G==="left"&&R!=null&&(se.style.flex=`0 0 ${P(R)}`),me.appendChild(se))}else if(G==="hidden"&&!C){const ke=Y(xe);ke&&k.placeholder!=null&&k.placeholder!==""&&ke.setAttribute("aria-label",String(k.placeholder))}const ue=j.doc.createElement("div");ue.className=`${V}__control`,ue.appendChild(xe);const he=m(j,ue,k,xe),be=f(j,k);let Ee=ue;if(be&&(Ee=j.doc.createElement("div"),Ee.className=`${V}__field`,Ee.appendChild(ue),Ee.appendChild(be.bar)),me.appendChild(Ee),!C&&k.helpMessage!=null&&k.helpMessage!==""){const ke=j.doc.createElement("div");ke.className=`${V}__help`,ke.textContent=String(k.helpMessage),ue.appendChild(ke)}let Oe=null;!C&&k.preMessage!=null&&k.preMessage!==""&&(Oe=j.doc.createElement("div"),Oe.className=`${V}__pre`,Oe.textContent=String(k.preMessage),ue.appendChild(Oe));const Ae=j.doc.createElement("div");Ae.className=`${V}__validation`,Ae.id=D(j),Ae.hidden=!0,ue.appendChild(Ae),k.width!=null&&(H.colsGapCount!=null?me.style.setProperty("--lattice-item-flex",x(k.width,H.colsGapCount)):me.style.flex=`0 0 ${P(k.width)}`),G==="left"&&(Ee.style.flex="1 1 auto"),C&&G==="left"&&R!=null&&!(k.props&&k.props.fullWidth===!0)&&(Ee.style.paddingLeft=`calc(${P(R)} + var(--lattice-space))`),r(me,k.css);const Ce=E.read(xe,k),ye={item:k,el:me,control:xe,controlWrap:ue,def:E,value:Ce,hidden:k.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:Ae,preEl:Oe,labelEl:se,labelPosition:G,requiredHint:ce,placeholderEl:Y(xe),placeholderBase:k.placeholder!=null?String(k.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:J,lockEl:he?he.el:null};if(k.value=Ce,J&&ye.control.setAttribute("aria-describedby",J),be)for(const ke of be.entries){if(ke.avatar){N(j.doc,ke.el,ke.spec,ye.value,ye.item);continue}typeof ke.spec.onClick=="function"&&M(j,ke.el,"click",()=>{ke.spec.onClick(ye.value,ye.item)})}if(ye.syncLock=()=>{if(!ye.lockEl)return;const ke=ye.item.readOnly===!0||ye.ruleReadOnly;ye.lockEl.hidden=!ke,ye.lockEl.parentElement.classList.toggle(`${V}__control--lock`,ke)},ye.syncAddons=()=>{if(!be)return;const ke=ye.item.disabled===!0;for(const Le of be.entries){if(Le.avatar){N(j.doc,Le.el,Le.spec,ye.value,ye.item);continue}Le.el.tagName==="A"?Le.el.setAttribute("aria-disabled",ke?"true":"false"):Le.el.disabled=ke}},u(ye),ye.hidden&&(me.hidden=!0),E.custom&&xe.__latticeFormApi){const ke=xe.__latticeFormApi;ke._read=()=>ye.value,ke._write=Le=>{ye.value=Le,ye.item.value=Le,E.write(xe,Le),v(j)},ke._commit=Le=>{U(j,ye,Le)},ke._input=Le=>{j.emitter.emit("input",{name:ye.item.name,value:Le,item:ye.item})}}return typeof E.destroy=="function"&&j.disposers.push(()=>E.destroy(xe)),le(j,ye),j.order.push(ye),k.name!=null&&j.items.set(k.name,ye),Z.appendChild(me),ye}function I(j,k,Z,H={}){const E={labelPosition:k.labelPosition!=null?k.labelPosition:H.labelPosition,labelWidth:k.labelWidth!=null?k.labelWidth:H.labelWidth,requiredHint:H.requiredHint};if(k.kind==="panel")return c(j,k,Z,E,{buildChildren:g,applyCss:r});if(k.kind==="spacer"){const R=j.doc.createElement("div");return R.className=`${V}__spacer`,r(R,k.css),k.hidden&&(R.hidden=!0),Z.appendChild(R),R}if(k.kind==="separator"){const R=j.doc.createElement("div");R.className=`${V}__separator`,R.setAttribute("role","separator");const ce=k.label;if(ce!=null){a(j.doc),R.classList.add(`${V}__separator--labelled`);const me=j.t(ce);R.setAttribute("aria-label",me);const xe=j.doc.createElement("span");xe.className=`${V}__separator-rule`,xe.setAttribute("aria-hidden","true");const C=j.doc.createElement("span");C.className=`${V}__separator-label`,C.textContent=me;const ne=j.doc.createElement("span");ne.className=`${V}__separator-rule`,ne.setAttribute("aria-hidden","true"),R.appendChild(xe),R.appendChild(C),R.appendChild(ne)}else R.setAttribute("aria-label",j.t("form.separator"));return r(R,k.css),k.hidden&&(R.hidden=!0),Z.appendChild(R),R}if(k.kind==="fieldset"){const R=j.doc.createElement("fieldset");if(R.className=`${V}__fieldset`,k.legend!=null){const me=j.doc.createElement("legend");me.className=`${V}__legend`,me.textContent=k.legend,R.appendChild(me)}const ce=j.doc.createElement("div");return ce.className=`${V}__fieldset-body`,k.axis&&ce.classList.add(s(k.axis)),k.axis&&g(j,ce,k.blocks,k.axis,E),R.appendChild(ce),r(R,k.css),k.spacing!=null&&R.style.setProperty("--lattice-form-item-gap",k.spacing),k.hidden&&(R.hidden=!0),Z.appendChild(R),R}const G=j.doc.createElement("div");return G.className=s(k.axis),k.axis&&g(j,G,k.blocks,k.axis,E),r(G,k.css),k.spacing!=null&&G.style.setProperty("--lattice-form-item-gap",k.spacing),k.hidden&&(G.hidden=!0),Z.appendChild(G),G}function g(j,k,Z,H,E={}){const G=H==="cols"?{...E,colsGapCount:Z.length-1}:E;for(const R of Z)R.kind==="item"?L(j,R,k,G):I(j,R,k,E)}function T(j){const k=j.el;for(;k.firstChild;)k.removeChild(k.firstChild);j.items.clear(),j.order.length=0;const Z=j.model;k.classList.add(V,s(Z.axis)),k.setAttribute("data-density",Z.density),Z.colsBreakpoint===!1?k.style.setProperty("--lattice-cols-container",ee):Z.colsBreakpoint!==480&&k.style.setProperty("--lattice-cols-container",$(j.doc,Z.colsBreakpoint)),j.disposers.push(()=>{k.classList.remove(`${V}__rows`,`${V}__cols`,`${V}__items`)}),r(k,Z.css),Z.spacing!=null&&k.style.setProperty("--lattice-form-item-gap",Z.spacing),Z.labelGap!=null&&k.style.setProperty("--lattice-form-label-gap",Z.labelGap);const H={labelPosition:Z.labelPosition,labelWidth:Z.labelWidth,requiredHint:Z.requiredHint};Z.steps&&Z.steps.length?X(j,H):g(j,k,Z.blocks,Z.axis==="cols"?"cols":"rows",H),v(j)}function X(j,k={}){const Z=j.model,H=Z.steps,E=j.doc,G=j.el,R=E.createElement("div");G.appendChild(R);const ce=w(R,{doc:E,t:j.t,steps:H.map(be=>({id:be.id,label:be.label})),active:0,orientation:Z.stepOrientation,onGoTo:be=>{z(j,be)}}),me=[];let xe=j.order.length;for(const be of H){const Ee=E.createElement("div");Ee.className=`${V}__step`,Ee.hidden=!0,g(j,Ee,be.blocks,be.axis,k),be.css&&r(Ee,be.css),G.appendChild(Ee);const Oe=j.order.length;Ee.__records=j.order.slice(xe,Oe),xe=Oe,me.push(Ee)}const C=E.createElement("div");C.className=`${V}__step-nav`;const ne=E.createElement("button");ne.type="button",ne.className=`${V}__step-back`,ne.textContent=j.t("form.back");const se=E.createElement("button");se.type="button",se.className=`${V}__step-next`,se.textContent=j.t("form.next"),C.appendChild(ne),C.appendChild(se),G.appendChild(C);const J={steps:H,bodies:me,stepper:ce,back:ne,next:se,active:0};j.wizard=J;const ue=()=>{ce.setActive(J.active),me.forEach((be,Ee)=>{be.hidden=Ee!==J.active}),ne.disabled=J.active===0,se.textContent=J.active===H.length-1?j.t("form.finish"):j.t("form.next")},he=be=>{const Ee=me[be].__records||[];for(const Oe of Ee)if(Oe.item.name!=null&&!(Oe.def.kind!=="field"&&Oe.def.kind!=="toggle")&&Oe.item.disabled!==!0&&!(Oe.ruleHidden===!0||Oe.hidden===!0)&&!(Oe.item.required!==!0&&Oe.item.validation==null&&typeof Oe.def.validate!="function"&&Oe.ruleRequired!==!0)&&!ve(j,Oe))return typeof Oe.def.focus=="function"?Oe.def.focus(Oe.control):typeof Oe.control.focus=="function"&&Oe.control.focus(),Oe;return null};J._stepInvalid=he,J._render=ue,ne.addEventListener("click",()=>{re(j)}),se.addEventListener("click",()=>{te(j)}),ue()}async function z(j,k){const Z=j.wizard;if(!Z)return!1;const H=Z.steps.length,E=Number(k);if(!Number.isFinite(E)||E<0||E>=H)return!1;const G=Z.active;if(E===G)return!1;if(E>G&&j.model.validateSteps!==!1)for(let R=G;R<E;R+=1){if(Z._stepInvalid(R))return Z.stepper.setStatus(R,"error"),!1;Z.stepper.setStatus(R,"complete")}return Z.active=E,Z._render(),!0}function te(j){const k=j.wizard;if(!k)return Promise.resolve(!1);if(k.active>=k.steps.length-1){if(j.model.validateSteps===!1)return Promise.resolve(!0);const Z=k._stepInvalid(k.active);return k.stepper.setStatus(k.active,Z?"error":"complete"),Promise.resolve(Z==null)}return z(j,k.active+1)}function re(j){const k=j.wizard;return k?z(j,k.active-1):Promise.resolve(!1)}}),Ne("packages/modules/form/emitter.js",function(S,q){"use strict";Object.defineProperty(S,"FORM_EVENTS",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"Emitter",{enumerable:!0,get:function(){return $}});const e=new Set(["api","user"]),V=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete","customColorsChange","open","close","itemClick"]);class ${#e=new Map;on(h,P){if(typeof P!="function")return()=>{};let y=this.#e.get(h);return y||(y=new Set,this.#e.set(h,y)),y.add(P),()=>this.off(h,P)}off(h,P){const y=this.#e.get(h);y&&y.delete(P)}emit(h,P){const y=this.#e.get(h),A=this.#e.get("*");if((!y||y.size===0)&&(!A||A.size===0))return;const B={...P||null,type:h},O=(v,d)=>{for(const u of[...v])try{u(B)}catch(_){console.warn(`lattice-form: a '${d}' handler threw; other handlers were unaffected.`,_)}};y&&y.size&&O(y,h),A&&A.size&&O(A,"*")}emitBefore(h,P,y){const A=this.#e.get(h);if(!A||A.size===0)return!0;let B=!1,O=null;const v=o=>{B=!0,o!=null&&O===null&&(O=String(o))},d=y||P&&P.origin,u={...P||null,type:h,origin:e.has(d)?d:"user",get defaultPrevented(){return B},get reason(){return O},preventDefault(o){v(o)}},_=[...A],w=()=>(B&&O===null&&(O="prevented"),B&&P&&typeof P=="object"&&(P.reason=O),!B),t=[];for(let o=0;o<_.length;o++){const l=_[o];try{const b=l(u);b&&typeof b.then=="function"?t.push(b):b===!1&&v("prevented")}catch(b){v("error"),console.warn(`lattice-form: a '${h}' before-handler threw; the commit was cancelled.`,b)}}return t.length===0?w():Promise.allSettled(t).then(o=>{for(const l of o)l.status==="rejected"?(v("error"),console.warn(`lattice-form: a '${h}' before-handler rejected; the commit was cancelled.`,l.reason)):l.value===!1&&v("prevented");return w()})}clear(){this.#e.clear()}}}),Ne("packages/modules/form/bind-router.js",function(S,q){"use strict";Object.defineProperty(S,"routerBinding",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"writeRouterRecord",{enumerable:!0,get:function(){return $}});function e(ee){return ee!==null&&typeof ee=="object"&&!Array.isArray(ee)}function V(ee){const{router:h,route:P,key:y}=ee,A=d=>d!=null&&String(d.rowKey??d.id)===String(y);return{kind:"router",record:()=>h&&typeof h.get=="function"?h.get(P,y):void 0,items:()=>[],density:()=>{},subscribe:d=>{if(!h||typeof h.subscribe!="function")return()=>{};const u=w=>{if(w){for(const t of w.add||[])A(t)&&d(null,null,t);for(const t of w.update||[])A(t)&&d(null,null,t)}},_=h.subscribe(P,u);return typeof _=="function"?_:()=>{}},save:d=>$(ee,d)}}function $(ee,h){const{router:P,route:y,key:A,onSave:B}=ee;if(!Object.keys(h||{}).length)return!0;const v=()=>P&&typeof P.get=="function"?P.get(y,A):void 0,d=o=>{!P||typeof P.apply!="function"||P.apply([{op:"upsert",row:o}])},u=()=>{!P||typeof P.apply!="function"||(e(_)?P.apply([{op:"upsert",row:_}]):P.apply([{op:"delete",row:w}]))},_=v(),w={...e(_)?_:{},...h};if(d(w),typeof B!="function")return!0;let t;try{t=B(h,w)}catch{return u(),!1}return t&&typeof t.then=="function"?t.then(()=>!0,()=>(u(),!1)):!0}}),Ne("packages/modules/form/bind.js",function(S,q){"use strict";Object.defineProperty(S,"resolveBind",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"isBound",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"applyBinding",{enumerable:!0,get:function(){return t}});const V=q("packages/modules/form/model.js").DENSITIES,ee=q("packages/modules/form/bind-router.js").routerBinding,h=new Set(["number","currency","percent","integer","decimal","duration"]);function P(o){const l=o&&o.dataType;if(l&&(l.unitConfig||l.temperatureConfig))return!0;const b=o&&o.edit?o.edit.editor:null;return b==="unit"||b==="temperature"}function y(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)}function A(o){const l=o&&o.edit?o.edit.editor:null,b=o&&o.type;return l==="checkbox"||b==="boolean"?"checkbox":l==="number"||b!=null&&h.has(b)||P(o)?"number":"input"}function B(o){const l=o&&o.columns&&typeof o.columns.all=="function"?o.columns.all():[],b=[];for(const p of l){if(!p||!p.field||p.generated||p.computed)continue;const m={type:A(p),name:p.field,label:p.title,format:p.format},f=p.dataType,N=f&&f.unitConfig,c=f&&f.temperatureConfig;N?Object.assign(m,{system:N.system,unit:N.unit,binary:N.binary,decimals:N.decimals,minDecimals:N.minDecimals,maxDecimals:N.maxDecimals,display:N.display,group:N.group,space:N.space,placement:N.placement,significantFigures:N.significantFigures,compound:N.compound,nullDisplay:N.nullDisplay}):c&&Object.assign(m,{scale:c.scale,display:c.display,decimals:c.decimals,minDecimals:c.minDecimals,maxDecimals:c.maxDecimals,space:c.space,nullDisplay:c.nullDisplay}),b.push(m)}return b}function O(o,l){const b=o&&o.columns&&typeof o.columns.all=="function"?o.columns.all():[];for(const p of b)if(p&&p.field===l)return p;return null}function v(o){const l=o&&typeof o.get=="function"?o.get("density"):void 0;return V.includes(l)?l:void 0}function d(o){const{grid:l,rowKey:b}=o,p=()=>{const c=l&&l.rows&&typeof l.rows.byKey=="function"?l.rows.byKey(b):null;return c&&y(c.data)?{...c.data}:{}},m=c=>{const i=O(l,c);return i?i.id:c};return{kind:"grid",record:p,items:()=>B(l),density:()=>v(l),subscribe:c=>{if(!l||typeof l.on!="function")return()=>{};const i=n=>{if(!n||n.key!==b)return;const a=l.columns&&typeof l.columns.get=="function"?l.columns.get(n.colId):null,r=a?a.field:n.colId;r&&c(r,n.value)};return l.on("cell:changed",i)},save:c=>{const i=Object.keys(c);if(!i.length)return!0;if(!l||!l.edit||typeof l.edit.setCells!="function")return!1;const n=i.map(r=>({key:b,colId:m(r),value:c[r]})),a=l.edit.setCells(n,"cell",{origin:"form"});return a&&typeof a.then=="function"?a.then(r=>r>0):a>0}}}function u(o){return{kind:"values",record:()=>({...o}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:p=>{for(const m of Object.keys(p))o[m]=p[m];return!0}}}function _(o){const l=o&&o.bind;return l==null||typeof l!="object"?null:l.grid!=null&&y(l.grid)?d(l):l.router!=null?ee(l):u(l)}function w(o){return!!(o&&o.bind!=null&&typeof o.bind=="object")}function t(o,l,b){o.bound=b;const p=(N,c)=>{const i=l.getItem(N);i&&i.setValue(c)},m=(N,c,i)=>{if(i!=null){for(const n of Object.keys(i))if(o.items.has(n)){if(o.dirty.has(n)){o.conflicts.add(n);continue}o.baseline[n]=i[n],p(n,i[n])}return}if(o.items.has(N)){if(o.dirty.has(N)){o.conflicts.add(N);return}o.baseline[N]=c,p(N,c)}},f=b.record();if(f!=null&&typeof f=="object")for(const N of Object.keys(f))o.items.has(N)&&(o.baseline[N]=f[N],p(N,f[N]));o.disposers.push(l.on("change",N=>{o.dirty.add(N.name),o.conflicts.delete(N.name)})),o.disposers.push(b.subscribe(m))}}),Ne("packages/modules/form/controls/input.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=Object.freeze(["text","email","password","url"]),ee=Object.freeze({viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"],paint:"fill"}),h=Object.freeze({viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"});function P(v){return $.includes(v)?v:"text"}function y(v){return!(v.props&&v.props.reveal===!1)}function A(v,d){const u=d?h:ee,_=v.createElementNS("http://www.w3.org/2000/svg","svg");_.setAttribute("viewBox",u.viewBox),_.setAttribute("focusable","false"),_.setAttribute("aria-hidden","true"),u.paint==="stroke"?(_.setAttribute("fill","none"),_.setAttribute("stroke","currentColor"),_.setAttribute("stroke-width","1.5"),_.setAttribute("stroke-linecap","round"),_.setAttribute("stroke-linejoin","round")):_.setAttribute("fill","currentColor");for(const w of u.paths){const t=v.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",w),_.appendChild(t)}return _}function B(v){return v.__latPassword?v.__latPassword.input:v}function O(v,d,u){const _=d&&d.defaultView,w=_&&_.Event,t=w?new w(u,{bubbles:!0}):{type:u,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};v.dispatchEvent(t)}V("input",{kind:"field",build(v,d){const u=d.doc,_=P(v.subtype);if(_!=="password"||!y(v)){const f=u.createElement("input");return f.type=_,v.name&&(f.name=v.name),v.placeholder!=null&&(f.placeholder=String(v.placeholder)),f.value=v.value==null?"":String(v.value),f}const w=u.createElement("div");w.className="lat-form__password";const t=u.createElement("input");t.type="password",v.name&&(t.name=v.name),v.placeholder!=null&&(t.placeholder=String(v.placeholder)),t.value=v.value==null?"":String(v.value),w.appendChild(t);const o=u.createElement("button");o.type="button",o.className="lat-form__password-btn",o.setAttribute("aria-pressed","false");const l=d.t("form.password.show");o.setAttribute("aria-label",l),o.title=l,o.appendChild(A(u,!1)),w.appendChild(o);const b={revealed:!1,disabled:!1,input:t,btn:o};w.__latPassword=b;const p=f=>{b.revealed=f===!0,t.type=b.revealed?"text":"password",o.setAttribute("aria-pressed",b.revealed?"true":"false");const N=d.t(b.revealed?"form.password.hide":"form.password.show");o.setAttribute("aria-label",N),o.title=N,o.replaceChild(A(u,b.revealed),o.firstChild)};b.setRevealed=p,o.addEventListener("click",()=>{b.disabled||p(!b.revealed)});let m=!1;return w.addEventListener("focusin",()=>{m||(m=!0,O(w,u,"focus"))}),w.addEventListener("focusout",f=>{w.contains(f.relatedTarget)||(m=!1,p(!1),O(w,u,"blur"))}),w},read(v){return B(v).value},write(v,d){B(v).value=d==null?"":String(d)},state(v,d){const u=B(v);u.disabled=d.disabled===!0,u.readOnly=d.readOnly===!0;const _=v.__latPassword;_&&(_.disabled=d.disabled===!0,_.btn&&(_.btn.disabled=_.disabled))},reset(v){const d=v.__latPassword;d&&typeof d.setRevealed=="function"&&d.setRevealed(!1)}})}),Ne("packages/core/src/internal/predicates.js",function(S,q){"use strict";Object.defineProperty(S,"isObject",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"isFunction",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"isNil",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"isBlank",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"isCtor",{enumerable:!0,get:function(){return h}});function e(P){return P!==null&&typeof P=="object"&&!Array.isArray(P)}function V(P){return typeof P=="function"}function $(P){return P==null}function ee(P){return P==null||P===""}function h(P){return typeof P!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(P))?!0:!!(P.prototype&&Object.getOwnPropertyNames(P.prototype).length>1)}}),Ne("packages/core/src/internal/warn.js",function(S,q){"use strict";Object.defineProperty(S,"reportedWarnings",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"infoOnce",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"resetWarnings",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"fail",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"invariant",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"DEV",{enumerable:!0,get:function(){return w}});const e=new Set,V=2e3;function $(t){if(e.add(t),e.size>V){const o=e.values().next().value;o!==void 0&&e.delete(o)}}const ee=[],h=500;function P(t,o,l){ee.push({key:t,level:o,message:l.map(b=>typeof b=="string"?b:y(b)).join(" "),at:Date.now()}),ee.length>h&&ee.shift()}function y(t){if(t instanceof Error)return t.message;try{return JSON.stringify(t)}catch{return String(t)}}function A(){return ee.map(t=>({...t}))}function B(t){if(t.length===0||typeof t[0]!="string")return t;const o=t[0].replace(/^\[lattice\]\s*/,"");return o===t[0]?t:[o,...t.slice(1)]}function O(t,...o){if(e.has(t))return;$(t);const l=B(o);P(t,"warn",l),console.warn("[lattice]",...l)}function v(t,...o){if(e.has(t))return;$(t);const l=B(o);P(t,"info",l),console.info("[lattice]",...l)}function d(){e.clear(),ee.length=0}function u(t,o){const l=new Error(`[lattice] ${t}`);throw o!==void 0&&(l.cause=o),l}function _(t,o){t||u(o)}const w=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),Ne("packages/core/src/format/mask.js",function(S,q){"use strict";Object.defineProperty(S,"splitSections",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"parseSection",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"compileMask",{enumerable:!0,get:function(){return P}});const e=new Set(["0","#","?",",","."]),V="\0";function $(A){const B=[];let O="",v=!1;for(let d=0;d<A.length;d++){const u=A[d];if(u==="\\"){O+=u+(A[d+1]??""),d+=1;continue}if(u==='"'){v=!v,O+=u;continue}if(u===";"&&!v){B.push(O),O="";continue}O+=u}return B.push(O),B}function ee(A){let B="",O="",v="",d=1,u=!1,_=!1;const w=c=>{_?O+=c:B+=c};for(let c=0;c<A.length;c++){const i=A[c];if(i==="\\"){w(A[c+1]??""),c+=1;continue}if(i==='"'){const n=A.indexOf('"',c+1);w(n===-1?A.slice(c+1):A.slice(c+1,n)),c=n===-1?A.length:n;continue}if(i==="%"){d*=100,w("%");continue}if(i==="@"){u=!0,w("\0");continue}if(e.has(i)){v+=i,_=!0;continue}w(i)}let t=-1;for(let c=v.length-1;c>=0;c--){const i=v[c];if(i==="0"||i==="#"||i==="?"){t=c;break}}let o=!1,l="";for(let c=0;c<v.length;c++){const i=v[c];if(i===","){c>t?d/=1e3:o=!0;continue}l+=i}const b=l.indexOf("."),p=b===-1?l:l.slice(0,b),m=b===-1?"":l.slice(b+1);let f=0;for(const c of p)c==="0"&&(f+=1);let N=0;for(const c of m)c==="0"&&(N+=1);return{prefix:B,suffix:O,minInt:f,minDec:N,maxDec:m.length,grouping:o,scale:d,hasNumber:t!==-1,isText:u}}function h(A,B){const O=new Intl.NumberFormat(B,{minimumIntegerDigits:Math.max(A.minInt,1),minimumFractionDigits:A.minDec,maximumFractionDigits:Math.max(A.maxDec,A.minDec),useGrouping:A.grouping}),{prefix:v,suffix:d,scale:u,hasNumber:_}=A;return w=>{if(!_)return v+d;const t=u===1?w:w*u;return v+O.format(t)+d}}function P(A,B){const v=$(String(A)).map(ee),d=v.map(l=>h(l,B)),u=0,_=v.length>1?1:-1,w=v.length>2?2:-1,t=v.length>3?3:-1,o=l=>{if(l==null||l==="")return"";if(typeof l!="number"||Number.isNaN(l)){const b=Number(l);if(Number.isNaN(b))return t===-1?String(l):(v[t].prefix+v[t].suffix).split("\0").join(String(l));l=b}return l===0&&w!==-1?d[w](0):l<0&&_!==-1?d[_](-l):d[u](l)};return o.spec={mask:A},{format:o,ooxml:y(String(A))}}function y(A){return A.trim()}}),Ne("packages/core/src/format/pattern.js",function(S,q){"use strict";Object.defineProperty(S,"parseNumberPattern",{enumerable:!0,get:function(){return h}});const V=q("packages/core/src/format/mask.js").splitSections;function $(P){let y="",A="",B="",O="",v=!1,d=!1,u=!1,_=!1;const w=o=>{u?A+=o:y+=o};for(let o=0;o<P.length;o++){const l=P[o];if(l==="\\"){w(P[o+1]??""),o+=1;continue}if(l==='"'){const b=P.indexOf('"',o+1);w(b===-1?P.slice(o+1):P.slice(o+1,b)),o=b===-1?P.length:b;continue}if(l==="%"){d=!0;continue}if(l==="0"||l==="#"){u=!0,_?O+=l:B+=l;continue}if(l===","){_||(v=!0);continue}if(l==="."&&!_){_=!0;continue}w(l)}if(!u)return{hasDigit:!1,prefix:y,suffix:A,minDec:0,maxDec:0,grouping:!1,percent:d};let t=0;for(const o of O)o==="0"&&(t+=1);return{hasDigit:!0,prefix:y,suffix:A,minDec:t,maxDec:O.length,grouping:v,percent:d}}function ee(P,y){const A=y.trim(),B=P.trim();return A.startsWith("(")&&A.endsWith(")")&&A.slice(1,-1).trim()===B?"parentheses":A.endsWith("-")?"suffix":"minus"}function h(P){if(typeof P!="string")return null;const y=V(P);if(y.length===0)return null;const A=$(y[0]);if(!A.hasDigit)return null;const B={style:A.percent?"percent":"decimal",prefix:A.prefix,suffix:A.suffix,minDecimals:A.minDec,maxDecimals:Math.max(A.maxDec,A.minDec),thousandsSeparator:A.grouping?void 0:!1};if(y.length>1&&(B.negative=ee(y[0],y[1])),y.length>2){const O=$(y[2]);O.hasDigit||(B.zeroDisplay=O.prefix+O.suffix)}return B}}),Ne("packages/core/src/format/number.js",function(S,q){"use strict";Object.defineProperty(S,"compileNumber",{enumerable:!0,get:function(){return y}});const V=q("packages/core/src/internal/predicates.js").isNil,ee=q("packages/core/src/internal/warn.js").warnOnce,P=q("packages/core/src/format/pattern.js").parseNumberPattern;function y(A,B){const O=typeof A=="string"?{pattern:A}:A||{};let v=O;if(typeof O.pattern=="string"){const Y=P(O.pattern);if(Y){const{pattern:U,...Q}=O;v={...Y,...Q}}else ee(`format:pattern:${O.pattern}`,`invalid number format pattern "${O.pattern}"; the value will use the default number format`)}const d=v.locale||B||void 0,u=v.style||"decimal",_=typeof v.scale=="number"?v.scale:1,w=v.nullDisplay??"",t=v.zeroDisplay,o=v.prefix||"",l=v.suffix||"",b=v.negative||"minus",p=v.signed===!0,m={style:u,notation:v.notation||"standard"};u==="currency"&&(m.currency=v.currency||"USD",v.currencyDisplay&&(m.currencyDisplay=v.currencyDisplay)),typeof v.decimals=="number"?(m.minimumFractionDigits=v.decimals,m.maximumFractionDigits=v.decimals):(typeof v.minDecimals=="number"&&(m.minimumFractionDigits=v.minDecimals),typeof v.maxDecimals=="number"&&(m.maximumFractionDigits=v.maxDecimals),m.minimumFractionDigits>(m.maximumFractionDigits??20)&&(m.maximumFractionDigits=m.minimumFractionDigits)),v.thousandsSeparator===!1&&(m.useGrouping=!1),m.notation==="compact"&&(m.compactDisplay=v.compactDisplay||"short");const f=new Intl.NumberFormat(d,m),N=typeof v.thousandsSeparator=="string"?v.thousandsSeparator:null,c=typeof v.decimalSeparator=="string"?v.decimalSeparator:null;let i=",",n=".";if(N||c)for(const Y of f.formatToParts(12345.6))Y.type==="group"?i=Y.value:Y.type==="decimal"&&(n=Y.value);const a=Y=>{let U=Y;return N&&(U=U.split(i).join("")),c&&(U=U.split(n).join("")),N&&(U=U.split("").join(N)),c&&(U=U.split("").join(c)),U},r=!!(N||c),s=o!==""&&u==="currency",M=Y=>{let U;if(s){const Q=f.formatToParts(Y);let oe=!1;U="";for(const F of Q)U+=F.value,!oe&&F.type==="currency"&&(U+=o,oe=!0);oe||(U=o+U)}else U=o+f.format(Y);return r&&(U=a(U)),U+l},D=Y=>{if(V(Y)||Y==="")return w;const U=typeof Y=="number"?Y:Number(Y);if(Number.isNaN(U))return w;const Q=_===1?U:U*_;return Q===0&&t!==void 0?t:Q<0?b==="parentheses"?`(${M(-Q)})`:b==="suffix"?`${M(-Q)}-`:M(Q):p&&Q>0?`+${M(Q)}`:M(Q)};return D.negativeClass=v.negativeClass||null,D.spec=v,D}}),Ne("packages/core/src/columns/types/unit.js",function(S,q){"use strict";Object.defineProperty(S,"defineUnit",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"registerUnitSystem",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"unitSystemNames",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"unitsOf",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"findUnit",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"localeSeparators",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"parseUnit",{enumerable:!0,get:function(){return D}}),Object.defineProperty(S,"formatUnit",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(S,"createUnitType",{enumerable:!0,get:function(){return x}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return L}});const V=q("packages/core/src/internal/predicates.js").isNil,ee=q("packages/core/src/internal/warn.js").warnOnce;function h(I,g,T,X){return Object.freeze({symbol:I,factor:g,aliases:Object.freeze(T||[]),binary:!!(X&&X.binary),prefix:X&&X.prefix||null,auto:!(X&&X.auto===!1)})}function P(I,g,T,X){return h(I,g,T,X)}const y=Object.freeze({data:Object.freeze([h("B",1,["byte","bytes"]),h("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),h("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),h("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),h("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),h("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),h("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),h("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),h("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),h("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([h("bps",1,["bit","bits","bit/s","b/s"]),h("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),h("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),h("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),h("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([h("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),h("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),h("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),h("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),h("in",.0254,["inch","inches"],{auto:!1}),h("ft",.3048,["foot","feet"],{auto:!1}),h("yd",.9144,["yard","yards"],{auto:!1}),h("m",1,["metre","metres","meter","meters"]),h("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),h("mi",1609.344,["mile","miles"],{auto:!1}),h("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([h("mg",.001,["milligram","milligrams"]),h("g",1,["gram","grams"]),h("oz",28.349523125,["ounce","ounces"],{auto:!1}),h("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),h("kg",1e3,["kilogram","kilograms"]),h("st",6350.29318,["stone"],{auto:!1}),h("t",1e6,["tonne","tonnes","ton"],{auto:!1}),h("ton (US)",907184.74,["ton","shortton"],{auto:!1}),h("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([h("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),h("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),h("ms",.001,["msec","msecs","millisecond","milliseconds"]),h("s",1,["sec","secs","second","seconds"]),h("m",60,["min","mins","minute","minutes"]),h("h",3600,["hr","hrs","hour","hours"]),h("d",86400,["day","days"])]),speed:Object.freeze([h("mm/s",.001,["millimetre/s","millimeter/s"]),h("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),h("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),h("mph",.44704,["mile/h","miles/h"],{auto:!1}),h("kn",1852/3600,["knot","knots"],{auto:!1}),h("m/s",1,["metre/s","meter/s","mps"]),h("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([h("mm/s²",.001,["mm/s2"]),h("ft/s²",.3048,["ft/s2"],{auto:!1}),h("m/s²",1,["m/s2","metre/s2","meter/s2"]),h("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([h("mm²",1e-6,["mm2"]),h("cm²",1e-4,["cm2"]),h("in²",64516e-8,["in2","sqin"],{auto:!1}),h("ft²",.09290304,["ft2","sqft"],{auto:!1}),h("yd²",.83612736,["yd2","sqyd"],{auto:!1}),h("m²",1,["m2","sqm"]),h("ha",1e4,["hectare","hectares"],{auto:!1}),h("ac",4046.8564224,["acre","acres"],{auto:!1}),h("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([h("µL",1e-6,["ul","microlitre","microliter"]),h("mL",.001,["millilitre","milliliter"]),h("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),h("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),h("L",1,["litre","litres","liter","liters"]),h("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),h("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),h("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),h("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([h("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),h("J",1,["joule","joules"]),h("cal",4.184,["calorie","calories"],{auto:!1}),h("kJ",1e3,["kilojoule","kilojoules"]),h("BTU",1055.05585262,["btu"],{auto:!1}),h("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),h("MJ",1e6,["megajoule","megajoules"]),h("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),h("GJ",1e9,["gigajoule","gigajoules"]),h("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([h("mW",.001,["milliwatt","milliwatts"]),h("W",1,["watt","watts"]),h("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),h("kW",1e3,["kilowatt","kilowatts"]),h("hp",745.6998715822702,["horsepower"],{auto:!1}),h("MW",1e6,["megawatt","megawatts"]),h("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([h("mN",.001,["millinewton","millinewtons"]),h("N",1,["newton","newtons"]),h("lbf",4.4482216152605,["poundforce"],{auto:!1}),h("kgf",9.80665,["kilogramforce"],{auto:!1}),h("kN",1e3,["kilonewton","kilonewtons"]),h("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([h("Pa",1,["pascal","pascals"]),h("mbar",100,["millibar"],{auto:!1}),h("inH₂O",249.0889,["inh2o"],{auto:!1}),h("mmHg",133.322387415,["torr"],{auto:!1}),h("kPa",1e3,["kilopascal","kilopascals"]),h("inHg",3386.388640341,["inhg"],{auto:!1}),h("psi",6894.757293168361,["lbf/in2"],{auto:!1}),h("bar",1e5,[],{auto:!1}),h("atm",101325,["atmosphere","atmospheres"],{auto:!1}),h("MPa",1e6,["megapascal","megapascals"]),h("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([h("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),h("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),h("kN·m",1e3,["knm","kn.m"],{auto:!1}),h("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([h("kg/m³",1,["kg/m3"]),h("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),h("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),h("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([h("L/min",1/6e4,["lpm","l/min"],{auto:!1}),h("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),h("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),h("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),h("cfm",.0004719474432,["ft3/min"],{auto:!1}),h("L/s",.001,["lps","l/s"],{auto:!1}),h("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([h("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),h("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),h("mrad",.001,["milliradian","milliradians"],{auto:!1}),h("mil",Math.PI/3200,["nato-mil"],{auto:!1}),h("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),h("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),h("rad",1,["radian","radians"]),h("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([h("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),h("rad/s",1,["radps","radians/s"]),h("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),h("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([h("ppt",1e-12,["partspertrillion"],{auto:!1}),h("ppb",1e-9,["partsperbillion"]),h("ppm",1e-6,["partspermillion"]),h("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),h("‰",.001,["permille","permil"],{auto:!1}),h("%",.01,["pct","percent"]),h("×",1,["x","ratio","times"])]),molarity:Object.freeze([h("pM",1e-12,["picomolar","picomolarity"]),h("nM",1e-9,["nanomolar","nanomolarity"]),h("µM",1e-6,["um-molar","micromolar","micromolarity"]),h("mM",.001,["millimolar","millimolarity"]),h("M",1,["molar","mol/l","mol/L","molarity"]),h("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([h("mg/s",1e-6,["milligrams/s"]),h("g/s",.001,["grams/s"]),h("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),h("kg/s",1,["kilograms/s","kgps"]),h("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),h("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),h("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([h("µPa·s",1e-6,["upas","micropascalsecond"]),h("cP",.001,["centipoise"],{auto:!1}),h("mPa·s",.001,["mpas","millipascalsecond"]),h("P",.1,["poise"],{auto:!1}),h("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([h("cSt",1e-6,["centistokes","centistoke"]),h("mm²/s",1e-6,["mm2/s"],{auto:!1}),h("St",1e-4,["stokes","stoke"],{auto:!1}),h("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([h("mW/(m·K)",.001,["mw/mk"]),h("W/(m·K)",1,["w/mk","wmk"]),h("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),h("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([h("J/(kg·K)",1,["j/kgk","jkgk"]),h("kJ/(kg·K)",1e3,["kj/kgk"]),h("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([h("nSv/h",1e-9,["nsvh"]),h("µSv/h",1e-6,["usv/h","usvh"]),h("mSv/h",.001,["msvh"]),h("Sv/h",1,["svh"]),h("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),A=Symbol("ambiguous"),B=new Map,O=new Map;function v(I,g){const T=String(I||"").trim();if(!T)throw new Error("[lattice] a unit system needs a name");if(y[T]||O.has(T))throw new Error(`[lattice] unit system "${T}" already exists`);const X=[...g||[]];if(!X.length)throw new Error(`[lattice] unit system "${T}" has no units`);if(!X.some(te=>te.factor===1))throw new Error(`[lattice] unit system "${T}" has no base unit (none with factor 1)`);const z=new Set;for(const te of X){if(z.has(te.symbol))throw new Error(`[lattice] unit system "${T}" declares "${te.symbol}" twice`);z.add(te.symbol)}return O.set(T,Object.freeze(X)),B.delete(T),T}function d(){return[...Object.keys(y),...O.keys()]}function u(I){const g=_(I);return g?g.units:[]}function _(I){const g=String(I||""),T=B.get(g);if(T!==void 0)return T;const X=y[g]||O.get(g);if(!X)return B.set(g,null),null;const z=Object.freeze([...X].sort((Z,H)=>Z.factor-H.factor)),te=new Map,re=new Map,j=(Z,H)=>{const E=te.get(Z);E===void 0?te.set(Z,H):E!==H&&te.set(Z,A)};for(const Z of z){j(Z.symbol.toLowerCase(),Z);for(const H of Z.aliases)j(H.toLowerCase(),Z);if(Z.prefix){const H=re.get(Z.prefix)||[];H.push(Z),re.set(Z.prefix,H)}}const k={units:z,byToken:te,byPrefix:re,decimal:z.filter(Z=>!Z.binary&&Z.auto),binary:z.some(Z=>Z.binary)?z.filter(Z=>(Z.binary||Z.factor===1)&&Z.auto):null};return B.set(g,k),k}function w(I,g){return g&&I.binary||I.decimal}function t(I,g){const T=_(I);if(!T||V(g))return null;const X=T.units.find(te=>te.symbol===String(g));if(X)return X;const z=T.byToken.get(String(g).trim().toLowerCase());return z&&z!==A?z:null}const o=new WeakMap;function l(I){const g=I||{};if(typeof g=="object"&&g!==null){const te=o.get(g);if(te!==void 0)return te}const T=g.system||"data",X=_(T);let z=null;if(!X)ee(`unit:system:${T}`,`unknown unit system "${T}"; known systems are ${d().join(", ")}`);else{let te=g.unit?t(T,g.unit):null;te||(g.unit&&ee(`unit:unit:${T}:${g.unit}`,`unknown unit "${g.unit}" in system "${T}"; falling back to ${X.units[0].symbol}`),te=X.units.find(re=>re.factor===1)||X.units[0]),z={index:X,base:te,binary:g.binary===!0}}return typeof g=="object"&&g!==null&&o.set(g,z),z}const b=new WeakMap;function p(I,g){if(!I||!g||!Array.isArray(I.compound)||I.compound.length===0)return null;const T=b.get(I);if(T!==void 0)return T;const X=new Set,z=[];for(const re of I.compound){const j=t(I.system||"data",re);if(!j){ee(`unit:compound:${I.system}:${re}`,`unknown compound unit "${re}" in system "${I.system||"data"}"; ignoring it`);continue}X.has(j.symbol)||(X.add(j.symbol),z.push(j))}z.sort((re,j)=>j.factor-re.factor);const te=z.length>=2?z:null;return b.set(I,te),te}function m(I,g,T){return g===T||g.factor===T.factor?I:I*g.factor/T.factor}const f=new Map;function N(I){const g=I||"",T=f.get(g);if(T)return T;const X={group:",",decimal:"."};try{for(const z of new Intl.NumberFormat(I||void 0).formatToParts(12345.6))z.type==="group"?X.group=z.value:z.type==="decimal"&&(X.decimal=z.value)}catch{}return f.set(g,X),X}const c=/[\s ]/g,i=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,n=/^[^\d+\-(.,\s]+\s*/,a=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function r(I,g){const{group:T,decimal:X}=N(g);let z=String(I).replace(c,"");if(z==="")return null;const te=X?z.indexOf(X):-1;if(T&&T!==X){if(te>=0&&z.indexOf(T,te+X.length)>=0)return null;z=z.split(T).join("")}if(X&&X!=="."&&(z=z.split(X).join(".")),!a.test(z))return null;const re=Number(z);return Number.isFinite(re)?re:null}function s(I,g,T){const X=String(I).trim().replace(/\.$/,"");if(X==="")return null;const z=g.units.find(H=>H.symbol===X);if(z)return z;const te=X.toLowerCase(),re=g.byToken.get(te);if(re===A)return null;if(re)return re;const j=g.byPrefix.get(te);if(!j||!j.length)return null;const k=w(g,T),Z=j.filter(H=>k.includes(H));return Z.length===1?Z[0]:null}function M(I,g,T,X){let z=I,te=0,re=!1,j=!1;for(;z!=="";){const k=i.exec(z)[0];if(k==="")return null;const Z=r(k,X&&X.locale);if(Z===null)return null;z=z.slice(k.length).trim();const H=z.search(/[+-]?[\d]/),E=(H>=0?z.slice(0,H):z).trim();if(z=H>=0?z.slice(H).trim():"",E===""){if(re)return null;j=!0,te+=m(Z,T[0],g.base)}else{const G=s(E,g.index,g.binary);if(!G)return null;te+=m(Z,G,g.base)}if(re=!0,j&&z!=="")return null}return re?te:null}function D(I,g){if(V(I))return null;if(typeof I=="number")return Number.isFinite(I)?I:null;const T=l(g);if(!T)return null;let X=String(I).trim();if(X==="")return null;let z=!1;X.startsWith("(")&&X.endsWith(")")&&(z=!0,X=X.slice(1,-1).trim());const te=p(g,T);if(te){X.startsWith("-")&&(z=!0,X=X.slice(1).trim());const R=M(X,T,te,g);return R===null?null:z?-R:R}let re=null;const j=n.exec(X);if(j&&j[0]){const R=s(j[0].trim(),T.index,T.binary);R&&(re=R,X=X.slice(j[0].length).trim())}const k=i.exec(X)[0],Z=r(k,g&&g.locale);if(Z===null)return null;const H=X.slice(k.length).trim();if(re&&H!=="")return null;const E=re||(H===""?T.base:s(H,T.index,T.binary));if(!E)return null;const G=m(Z,E,T.base);return z?-G:G}const Y=new Map;function U(I,g,T,X){const z=`${I||""}|${g}|${T}|${X?1:0}`;let te=Y.get(z);return te||(te=new Intl.NumberFormat(I||void 0,{minimumFractionDigits:g,maximumFractionDigits:T,useGrouping:X}),Y.set(z,te)),te}function Q(I,g){if(!Number.isFinite(I)||I===0)return Math.max(0,g-1);const T=Math.floor(Math.log10(Math.abs(I)));return Math.min(20,Math.max(0,g-1-T))}function oe(I,g){if(!Number.isFinite(I)||I===0)return I;const T=Math.ceil(Math.log10(Math.abs(I))),X=10**(g-T);return Math.round(I*X)/X}function F(I,g,T){if(!T||T===g.base.symbol)return g.base;if(T!=="auto")return K(g,T);if(I===0||!Number.isFinite(I))return g.base;const X=Math.abs(I)*g.base.factor,z=w(g.index,g.binary);let te=z[0];for(const k of z)X>=k.factor&&(te=k);if(X>=te.factor)return te;let re=te;for(const k of g.index.units)k.binary!==g.binary&&k.factor!==1||k.factor<=X&&k.factor>(re===te?0:re.factor)&&(re=k);if(re!==te)return re;let j=te;for(const k of g.index.units)k.binary!==g.binary&&k.factor!==1||k.factor<j.factor&&(j=k);return j.factor<g.base.factor?j:g.base}function K(I,g){const T=I.index.units.find(z=>z.symbol===g);if(T)return T;const X=I.index.byToken.get(String(g).toLowerCase());return X&&X!==A?X:(ee(`unit:display:${g}`,`unknown display unit "${g}"; rendering in ${I.base.symbol}`),I.base)}function W(I,g,T,X){const z=I<0;let te=Math.abs(I)*g.base.factor;const re=typeof X.decimals=="number"?X.decimals:X.minDecimals??0,j=typeof X.decimals=="number"?X.decimals:X.maxDecimals??Math.max(re,2),k=X.space??" ",Z=[];for(let E=0;E<T.length;E++){const G=T[E],R=E===T.length-1;let ce=R?te/G.factor:Math.floor(te/G.factor);if(te-=ce*G.factor,R){const xe=10**j;ce=Math.round(ce*xe)/xe+0}const me=R?U(X.locale,re,j,X.group!==!1):U(X.locale,0,0,X.group!==!1);Z.push(`${me.format(ce)}${k}${G.symbol}`)}const H=Z.join(" ");return z?`-${H}`:H}function ge(I,g){const T=g||{},X=T.nullDisplay??"";if(V(I)||I==="")return X;const z=typeof I=="number"?I:Number(I);if(!Number.isFinite(z))return X;const te=l(T);if(!te)return String(z);const re=p(T,te);if(re)return W(z,te,re,T);const j=typeof T.significantFigures=="number"&&T.significantFigures>0?T.significantFigures:0,k=j?oe(z,j):z,Z=F(k,te,T.display),H=m(k,te.base,Z);let E=typeof T.decimals=="number"?T.decimals:T.minDecimals??0,G=typeof T.decimals=="number"?T.decimals:T.maxDecimals??Math.max(E,2);j&&(E=Q(H,j),G=E);const R=U(T.locale,E,G,T.group!==!1).format(H),ce=T.space??" ";return T.placement==="prefix"?`${Z.symbol}${T.space??""}${R}`:`${R}${ce}${Z.symbol}`}function ve(I,g){const T=V(I)||Number.isNaN(I)?null:Number(I),X=V(g)||Number.isNaN(g)?null:Number(g);return T===null||Number.isNaN(T)?X===null||Number.isNaN(X)?0:1:X===null||Number.isNaN(X)||T<X?-1:T>X?1:0}function le(I){const g=typeof I.decimals=="number"&&I.decimals>0?`.${"0".repeat(I.decimals)}`:"";return`${typeof I.decimals=="number"?`#,##0${g}`:"#,##0.##"}" ${I.symbol}"`}function x(I){const g={system:"data",...I||{}},T=l(g),X=T?T.base.symbol:String(g.unit||""),z=Object.freeze({...g,unit:X}),te=Object.freeze({...z,display:X,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),re=new Map([[z.locale||"",z]]),j=k=>{const Z=k||"";let H=re.get(Z);return H||(H=Object.freeze({...z,locale:k||void 0}),re.set(Z,H)),H};return{base:"number",extends:"number",storage:"float64",unitConfig:z,format:k=>ge(k.value,k.locale?j(k.locale):z),parse:k=>D(k.text,k.locale?j(k.locale):z),compare:ve,defaults:{filter:"number",editor:"unit",align:"end",total:g.total||"sum"},...g.totals?{totals:g.totals}:{},excel:g.excel||le({decimals:g.decimals,symbol:X}),toStorage:k=>typeof k=="number"?Number.isFinite(k)?k:null:typeof k=="string"?D(k,z):V(k)?null:D(String(k),z),toClipboard:k=>ge(k,te),fromClipboard:k=>D(k,z)}}const L=x}),Ne("packages/core/src/columns/types/temperature.js",function(S,q){"use strict";Object.defineProperty(S,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"findScale",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"convertTemperature",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"formatTemperature",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"parseTemperature",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"createTemperatureType",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return _}});const V=q("packages/core/src/internal/predicates.js").isNil,$=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:w=>w+273.15,fromKelvin:w=>w-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:w=>(w+459.67)*(5/9),fromKelvin:w=>w*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:w=>w,fromKelvin:w=>w}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:w=>w*(5/9),fromKelvin:w=>w*(9/5)})});function ee(w){if(V(w))return null;const t=String(w).trim();if(t==="")return null;for(const[l,b]of Object.entries($))if(t===l||t===b.symbol)return{key:l,scale:b};const o=t.toLowerCase();for(const[l,b]of Object.entries($))if(b.aliases.includes(o))return{key:l,scale:b};return null}function h(w,t,o){const l=ee(t),b=ee(o);return!l||!b||!Number.isFinite(Number(w))?null:l.key===b.key?Number(w):b.scale.fromKelvin(l.scale.toKelvin(Number(w)))}const P=new Map;function y(w,t,o){const l=`${w||""}|${t}|${o}`;let b=P.get(l);return b||(b=new Intl.NumberFormat(w||void 0,{minimumFractionDigits:t,maximumFractionDigits:o}),P.set(l,b)),b}function A(w,t){const o=t||{},l=o.nullDisplay??"";if(V(w)||w==="")return l;const b=Number(w);if(!Number.isFinite(b))return l;const p=ee(o.scale||"C");if(!p)return String(b);const m=ee(o.display||o.scale||"C")||p,f=m.key===p.key?b:m.scale.fromKelvin(p.scale.toKelvin(b)),N=typeof o.decimals=="number"?o.decimals:null,c=N??o.minDecimals??0,i=N??o.maxDecimals??1;return`${y(o.locale,c,i).format(f)}${o.space??" "}${m.scale.symbol}`}const B=/^[+-]?[\d\s., ]*\d/;function O(w,t){const o=String(w).trim();if(o==="")return null;const l=new Intl.NumberFormat(t||void 0).formatToParts(1.1).find(f=>f.type==="decimal")?.value||".",b=l===","?".":",",p=o.split(b).join("").split(/[\s ]/).join("").replace(l,"."),m=Number(p);return Number.isFinite(m)?m:null}function v(w,t){if(V(w))return null;const o=t||{},l=ee(o.scale||"C");if(!l)return null;if(typeof w=="number")return Number.isFinite(w)?w:null;let b=String(w).trim();if(b==="")return null;let p=!1;b.startsWith("(")&&b.endsWith(")")&&(p=!0,b=b.slice(1,-1).trim());const m=B.exec(b);if(!m)return null;const f=O(m[0],o.locale);if(f===null)return null;const N=b.slice(m[0].length).trim();if(N==="")return p?-f:f;const c=ee(N);if(!c)return null;const i=c.key===l.key?f:l.scale.fromKelvin(c.scale.toKelvin(f));return p?-i:i}function d(w){const t=Object.freeze({scale:"C",...w||{}}),l=(ee(t.scale)||ee("C")).scale.symbol,b=Object.freeze({...t,display:t.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),p=new Map([[t.locale||"",t]]),m=f=>{const N=f||"";let c=p.get(N);return c||(c=Object.freeze({...t,locale:f||void 0}),p.set(N,c)),c};return{base:"number",extends:"number",storage:"float64",temperatureConfig:t,format:f=>A(f.value,f.locale?m(f.locale):t),parse:f=>v(f.text,f.locale?m(f.locale):t),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:t.excel||`#,##0${typeof t.decimals=="number"&&t.decimals>0?`.${"0".repeat(t.decimals)}`:".#"}" ${l}"`,toStorage:f=>typeof f=="number"?Number.isFinite(f)?f:null:typeof f=="string"?v(f,t):V(f)?null:v(String(f),t),toClipboard:f=>A(f,b),fromClipboard:f=>v(f,t)}}const u=Object.freeze({celsius:d({scale:"C"}),fahrenheit:d({scale:"F"}),kelvin:d({scale:"K"})}),_=d}),Ne("packages/modules/form/controls/number.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,P=q("packages/core/src/format/number.js").compileNumber,y=q("packages/core/src/columns/types/unit.js"),A=y.parseUnit,B=y.formatUnit,O=y.findUnit,v=y.unitsOf,d=q("packages/core/src/columns/types/temperature.js"),u=d.parseTemperature,_=d.formatTemperature,w=d.findScale,t="data-lattice-form-number-styles";function o(){return`
|
|
1271
1296
|
.lat-form__control .lat-form__number{
|
|
1272
1297
|
text-align:right; font-variant-numeric:tabular-nums;
|
|
1273
1298
|
}
|
|
@@ -1308,7 +1333,7 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1308
1333
|
font:inherit; line-height:inherit; cursor:pointer;
|
|
1309
1334
|
}
|
|
1310
1335
|
.lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
|
|
1311
|
-
`.trim()}function a(d){const l=d&&d.documentElement;if(!l||l.getAttribute(t))return;l.setAttribute(t,"1");const s=d.createElement("style");s.textContent=n(),(d.head||d.body||l).appendChild(s)}function m(d){let l="",s=".";try{for(const r of new Intl.NumberFormat(d||void 0).formatToParts(12345.6))r.type==="group"?l=r.value:r.type==="decimal"&&(s=r.value)}catch{}return{group:l,decimal:s}}function E(d,l){if(d==null)return null;let s=String(d).trim();if(s==="")return null;const{group:r,decimal:i}=m(l);let B=!1;if(/^\(.*\)$/.test(s)&&(B=!0,s=s.slice(1,-1)),s=s.replace(/[\s ]/g,""),r&&r!=="."&&(s=s.split(r).join("")),s=s.replace(/[^0-9eE+\-.,]/g,""),i===","?(s=s.split(".").join(""),s=s.replace(",",".")):s=s.split(",").join(""),s===""||s==="-"||s==="+")return NaN;s.startsWith("-")&&(B=!B,s=s.slice(1));const z=Number(s);return Number.isFinite(z)?B?-z:z:NaN}function _(d){if(d==null||d==="")return"";const l=typeof d=="number"?d:Number(d);return Number.isFinite(l)?String(l):""}function c(d){return d&&d.__latNumber?d.__latNumber.input:d}function S(d){if(typeof d=="number")return Number.isFinite(d)?d:null;if(d==null||d==="")return null;const l=Number(d);return Number.isFinite(l)?l:null}function o(d){const l=d&&d.props||{};return typeof l.system=="string"&&l.system!==""?{kind:"unit",opts:{system:l.system,unit:l.unit,binary:l.binary===!0,decimals:l.decimals,minDecimals:l.minDecimals,maxDecimals:l.maxDecimals,display:l.display,locale:d.locale||l.locale,group:l.group,space:l.space,placement:l.placement,compound:l.compound,significantFigures:l.significantFigures,nullDisplay:l.nullDisplay}}:typeof l.scale=="string"&&l.scale!==""?{kind:"temperature",opts:{scale:l.scale,display:l.display,decimals:l.decimals,minDecimals:l.minDecimals,maxDecimals:l.maxDecimals,space:l.space,locale:d.locale||l.locale,nullDisplay:l.nullDisplay}}:null}U("number",{kind:"field",build(d,l){const s=l.doc;a(s);const r=d.props&&d.props.format&&(typeof d.props.format=="object"||typeof d.props.format=="string")?d.props.format:null,i=d.locale||void 0,B=r?L(r,i):null,z=typeof l.t=="function"?l.t:re,W=o(d),b=S(d.step),J=S(d.min),Q=S(d.max);let ne="";if(W&&W.kind==="unit"){const ee=T(W.opts.system,W.opts.unit);ne=ee?ee.symbol:String(W.opts.unit||"")}else if(W&&W.kind==="temperature"){const ee=x(W.opts.scale);ne=ee?ee.scale.symbol:""}const Z=s.createElement("input");Z.type="text",Z.inputMode="decimal",Z.className="lat-form__number",d.name&&(Z.name=d.name),d.placeholder!=null&&(Z.placeholder=String(d.placeholder));const Y={input:Z,format:B,t:z,locale:i,step:b,min:J,max:Q,unit:W,unitSymbol:ne,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},Ne=()=>Y.displayUnit!=null?{...W.opts,display:Y.displayUnit}:W.opts,ve=ee=>Y.unit&&Y.unit.kind==="unit"?H(ee,Ne()):Y.unit&&Y.unit.kind==="temperature"?h(ee,Y.unit.opts):Y.format&&Number.isFinite(ee)?Y.format(ee):_(ee),se=ee=>{if(!Y.unit)return E(ee,Y.locale);const P=ee==null?"":String(ee);if(P.trim()==="")return null;const N=Y.unit.kind==="temperature"?u(P,Y.unit.opts):A(P,Y.unit.opts);return N===null?Number.NaN:N},k=()=>Y.unit&&typeof Y.unit.opts.nullDisplay=="string"?Y.unit.opts.nullDisplay:"",I=ee=>{if(ee==null||ee===""){Y.value=null,Y.invalid=!1,Z.value=k();return}const P=typeof ee=="number"?ee:Number(ee);if(!Number.isFinite(P)){Y.value=null,Y.invalid=!1,Z.value=k();return}Y.value=P,Y.invalid=!1,Z.value=Y.focused?_(P):ve(P)},F=()=>{const ee=Z.value;ee===""?Z.removeAttribute("aria-valuetext"):Z.setAttribute("aria-valuetext",ee)},p=ee=>{const P=se(Z.value);let y=(P==null||Number.isNaN(P)?0:P)+ee;typeof J=="number"&&y<J&&(y=J),typeof Q=="number"&&y>Q&&(y=Q),Z.value=Y.unit&&!Y.focused?ve(y):_(y)},D=()=>{Y.focused=!0,Y.value!=null&&(Z.value=_(Y.value)),F()},G=()=>{Y.focused=!1;const ee=se(Z.value);ee==null?(Y.value=null,Y.invalid=!1,Z.value=k()):Number.isNaN(ee)?(Y.invalid=!0,Y.value!=null?Z.value=ve(Y.value):Z.value=""):(Y.invalid=!1,Y.value=ee,Z.value=ve(ee)),F()},R=ee=>{if(ee.key!=="ArrowUp"&&ee.key!=="ArrowDown")return;typeof ee.preventDefault=="function"&&ee.preventDefault();const P=typeof b=="number"&&b>0?b:1;p(ee.key==="ArrowUp"?P:-P)};if(Z.addEventListener("focus",D),Z.addEventListener("blur",G),Z.addEventListener("keydown",R),Y.disposers.push(()=>Z.removeEventListener("focus",D),()=>Z.removeEventListener("blur",G),()=>Z.removeEventListener("keydown",R)),I(d.value),typeof J=="number"&&Z.setAttribute("aria-valuemin",String(J)),typeof Q=="number"&&Z.setAttribute("aria-valuemax",String(Q)),F(),Z.__latNumber=Y,W&&W.kind==="unit"&&d.props&&d.props.unitPicker===!0){const ee=s.createElement("div");ee.className="lat-form__number-unit";const P=s.createElement("select");P.className="lat-form__number-unitpick",P.setAttribute("aria-label",z("form.number.unitPicker"));const N=v(W.opts.system);for(const V of N){const oe=s.createElement("option");oe.value=V.symbol,oe.textContent=V.symbol,P.appendChild(oe)}const y=W.opts.display&&W.opts.display!=="auto"?W.opts.display:ne,$=N.some(V=>V.symbol===y)?y:ne;P.value=$,Y.displayUnit=$;const w=()=>{Y.displayUnit=P.value,!Y.focused&&Y.value!=null&&(Z.value=ve(Y.value)),F()};return P.addEventListener("change",w),Y.disposers.push(()=>P.removeEventListener("change",w)),Y.picker=P,ee.appendChild(Z),ee.appendChild(P),ee.__latNumber=Y,ee}if(d.props&&d.props.spinner===!0){const ee=s.createElement("div");ee.className="lat-form__number-spinner";const P=($,w)=>{const V=s.createElement("button");return V.type="button",V.tabIndex=-1,V.className="lat-form__number-step",V.textContent=$,V.addEventListener("mousedown",oe=>{typeof oe.preventDefault=="function"&&oe.preventDefault();const ie=typeof b=="number"&&b>0?b:1;p(w*ie)}),V},N=P("−",-1),y=P("+",1);return Y.buttons=[N,y],ee.appendChild(N),ee.appendChild(Z),ee.appendChild(y),ee.__latNumber=Y,ee}return Z},read(d){const l=d&&d.__latNumber,s=l?l.input:d;if(l&&!l.focused)return l.unit&&l.invalid?Number.NaN:l.value;if(l&&l.unit){const r=s.value;if(String(r).trim()==="")return null;const i=l.unit.kind==="temperature"?u(r,l.unit.opts):A(r,l.unit.opts);return i===null?Number.NaN:i}return E(s.value,l?l.locale:void 0)},write(d,l){const s=d&&d.__latNumber,r=s?s.input:d,i=s&&s.unit&&typeof s.unit.opts.nullDisplay=="string"?s.unit.opts.nullDisplay:"";if(l==null||l===""){s&&(s.value=null,s.invalid=!1),r.value=i;return}const B=typeof l=="number"?l:Number(l);if(!Number.isFinite(B)){s&&(s.value=null,s.invalid=!1),r.value=i;return}s&&(s.value=B,s.invalid=!1),s&&s.focused?r.value=_(B):s&&s.unit?r.value=s.unit.kind==="unit"?H(B,s.displayUnit!=null?{...s.unit.opts,display:s.displayUnit}:s.unit.opts):h(B,s.unit.opts):s&&s.format?r.value=s.format(B):r.value=_(B),r.value===""?r.removeAttribute("aria-valuetext"):r.setAttribute("aria-valuetext",r.value)},state(d,l){const s=d&&d.__latNumber,r=s?s.input:d;r.disabled=l.disabled===!0,r.readOnly=l.readOnly===!0;const i=l.disabled===!0||l.readOnly===!0;for(const B of s?s.buttons:[])B.disabled=i;s&&s.picker&&(s.picker.disabled=i)},validate(d,l,s){const r=d&&d.__latNumber,i=r&&r.t?r.t:re;if(s==null||s==="")return null;if(typeof s!="number"||Number.isNaN(s))return r&&r.unit?i("form.validation.unit",{unit:r.unitSymbol}):i("form.validation.number");const B=z=>r&&r.unit&&r.unit.kind==="unit"?H(z,{...r.unit.opts,display:r.unit.opts.unit,group:!0}):r&&r.unit&&r.unit.kind==="temperature"?h(z,r.unit.opts):String(z);if(r&&typeof r.min=="number"&&s<r.min)return i("form.validation.min",{min:B(r.min)});if(r&&typeof r.max=="number"&&s>r.max)return i("form.validation.max",{max:B(r.max)});if(r&&typeof r.step=="number"&&r.step>0){const z=typeof r.min=="number"?r.min:0,W=(s-z)/r.step;if(Math.abs(W-Math.round(W))>1e-9)return i("form.validation.step",{step:String(r.step)})}return null},focus(d){const l=c(d);typeof l.focus=="function"&&l.focus()},blur(d){const l=c(d);typeof l.blur=="function"&&l.blur()},destroy(d){const l=d&&d.__latNumber;if(l)for(const s of l.disposers.splice(0))s()}})}),je("packages/modules/form/controls/textarea.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl;U("textarea",{kind:"field",build(O,re){const g=re.doc.createElement("textarea");return O.name&&(g.name=O.name),O.placeholder!=null&&(g.placeholder=String(O.placeholder)),O.rows!=null&&(g.rows=Number(O.rows)||2),g.value=O.value==null?"":String(O.value),g},read(O){return O.value},write(O,re){O.value=re==null?"":String(re)},state(O,re){O.disabled=re.disabled===!0,O.readOnly=re.readOnly===!0}})}),je("packages/modules/form/controls/checkbox.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/state.js"),re=O.applyBooleanInputState,g=O.guardBooleanInput;U("checkbox",{kind:"toggle",build(L,C){const A=C.doc.createElement("input");return A.type="checkbox",L.name&&(A.name=L.name),A.checked=L.value===!0,g(A),A},read(L){return L.checked},write(L,C){L.checked=C===!0},state(L,C){re(L,C.disabled===!0,C.readOnly===!0)}})}),je("packages/modules/form/controls/button.js",function(M,X){"use strict";Object.defineProperty(M,"injectButtonStyles",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"buttonItemFrom",{enumerable:!0,get:function(){return o}}),Object.defineProperty(M,"buildButton",{enumerable:!0,get:function(){return d}});const U=X("packages/modules/form/controls/registry.js").registerControl,O="lat-button",re="data-lattice-button-styles",g="http://www.w3.org/2000/svg",L=Object.freeze({chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"}}),C=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),A=Object.freeze(["sm","md","lg"]),H=Object.freeze(["button","submit","reset"]);function T(){const l=`
|
|
1336
|
+
`.trim()}function l(i){const n=i&&i.documentElement;if(!n||n.getAttribute(t))return;n.setAttribute(t,"1");const a=i.createElement("style");a.textContent=o(),(i.head||i.body||n).appendChild(a)}function b(i){let n="",a=".";try{for(const r of new Intl.NumberFormat(i||void 0).formatToParts(12345.6))r.type==="group"?n=r.value:r.type==="decimal"&&(a=r.value)}catch{}return{group:n,decimal:a}}function p(i,n){if(i==null)return null;let a=String(i).trim();if(a==="")return null;const{group:r,decimal:s}=b(n);let M=!1;if(/^\(.*\)$/.test(a)&&(M=!0,a=a.slice(1,-1)),a=a.replace(/[\s ]/g,""),r&&r!=="."&&(a=a.split(r).join("")),a=a.replace(/[^0-9eE+\-.,]/g,""),s===","?(a=a.split(".").join(""),a=a.replace(",",".")):a=a.split(",").join(""),a===""||a==="-"||a==="+")return NaN;a.startsWith("-")&&(M=!M,a=a.slice(1));const D=Number(a);return Number.isFinite(D)?M?-D:D:NaN}function m(i){if(i==null||i==="")return"";const n=typeof i=="number"?i:Number(i);return Number.isFinite(n)?String(n):""}function f(i){return i&&i.__latNumber?i.__latNumber.input:i}function N(i){if(typeof i=="number")return Number.isFinite(i)?i:null;if(i==null||i==="")return null;const n=Number(i);return Number.isFinite(n)?n:null}function c(i){const n=i&&i.props||{};return typeof n.system=="string"&&n.system!==""?{kind:"unit",opts:{system:n.system,unit:n.unit,binary:n.binary===!0,decimals:n.decimals,minDecimals:n.minDecimals,maxDecimals:n.maxDecimals,display:n.display,locale:i.locale||n.locale,group:n.group,space:n.space,placement:n.placement,compound:n.compound,significantFigures:n.significantFigures,nullDisplay:n.nullDisplay}}:typeof n.scale=="string"&&n.scale!==""?{kind:"temperature",opts:{scale:n.scale,display:n.display,decimals:n.decimals,minDecimals:n.minDecimals,maxDecimals:n.maxDecimals,space:n.space,locale:i.locale||n.locale,nullDisplay:n.nullDisplay}}:null}V("number",{kind:"field",build(i,n){const a=n.doc;l(a);const r=i.props&&i.props.format&&(typeof i.props.format=="object"||typeof i.props.format=="string")?i.props.format:null,s=i.locale||void 0,M=r?P(r,s):null,D=typeof n.t=="function"?n.t:ee,Y=c(i),U=N(i.step),Q=N(i.min),oe=N(i.max);let F="";if(Y&&Y.kind==="unit"){const te=O(Y.opts.system,Y.opts.unit);F=te?te.symbol:String(Y.opts.unit||"")}else if(Y&&Y.kind==="temperature"){const te=w(Y.opts.scale);F=te?te.scale.symbol:""}const K=a.createElement("input");K.type="text",K.inputMode="decimal",K.className="lat-form__number",i.name&&(K.name=i.name),i.placeholder!=null&&(K.placeholder=String(i.placeholder));const W={input:K,format:M,t:D,locale:s,step:U,min:Q,max:oe,unit:Y,unitSymbol:F,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},ge=()=>W.displayUnit!=null?{...Y.opts,display:W.displayUnit}:Y.opts,ve=te=>W.unit&&W.unit.kind==="unit"?B(te,ge()):W.unit&&W.unit.kind==="temperature"?_(te,W.unit.opts):W.format&&Number.isFinite(te)?W.format(te):m(te),le=te=>{if(!W.unit)return p(te,W.locale);const re=te==null?"":String(te);if(re.trim()==="")return null;const j=W.unit.kind==="temperature"?u(re,W.unit.opts):A(re,W.unit.opts);return j===null?Number.NaN:j},x=()=>W.unit&&typeof W.unit.opts.nullDisplay=="string"?W.unit.opts.nullDisplay:"",L=te=>{if(te==null||te===""){W.value=null,W.invalid=!1,K.value=x();return}const re=typeof te=="number"?te:Number(te);if(!Number.isFinite(re)){W.value=null,W.invalid=!1,K.value=x();return}W.value=re,W.invalid=!1,K.value=W.focused?m(re):ve(re)},I=()=>{const te=K.value;te===""?K.removeAttribute("aria-valuetext"):K.setAttribute("aria-valuetext",te)},g=te=>{const re=le(K.value);let k=(re==null||Number.isNaN(re)?0:re)+te;typeof Q=="number"&&k<Q&&(k=Q),typeof oe=="number"&&k>oe&&(k=oe),K.value=W.unit&&!W.focused?ve(k):m(k)},T=()=>{W.focused=!0,W.value!=null&&(K.value=m(W.value)),I()},X=()=>{W.focused=!1;const te=le(K.value);te==null?(W.value=null,W.invalid=!1,K.value=x()):Number.isNaN(te)?(W.invalid=!0,W.value!=null?K.value=ve(W.value):K.value=""):(W.invalid=!1,W.value=te,K.value=ve(te)),I()},z=te=>{if(te.key!=="ArrowUp"&&te.key!=="ArrowDown")return;typeof te.preventDefault=="function"&&te.preventDefault();const re=typeof U=="number"&&U>0?U:1;g(te.key==="ArrowUp"?re:-re)};if(K.addEventListener("focus",T),K.addEventListener("blur",X),K.addEventListener("keydown",z),W.disposers.push(()=>K.removeEventListener("focus",T),()=>K.removeEventListener("blur",X),()=>K.removeEventListener("keydown",z)),L(i.value),typeof Q=="number"&&K.setAttribute("aria-valuemin",String(Q)),typeof oe=="number"&&K.setAttribute("aria-valuemax",String(oe)),I(),K.__latNumber=W,Y&&Y.kind==="unit"&&i.props&&i.props.unitPicker===!0){const te=a.createElement("div");te.className="lat-form__number-unit";const re=a.createElement("select");re.className="lat-form__number-unitpick",re.setAttribute("aria-label",D("form.number.unitPicker"));const j=v(Y.opts.system);for(const E of j){const G=a.createElement("option");G.value=E.symbol,G.textContent=E.symbol,re.appendChild(G)}const k=Y.opts.display&&Y.opts.display!=="auto"?Y.opts.display:F,Z=j.some(E=>E.symbol===k)?k:F;re.value=Z,W.displayUnit=Z;const H=()=>{W.displayUnit=re.value,!W.focused&&W.value!=null&&(K.value=ve(W.value)),I()};return re.addEventListener("change",H),W.disposers.push(()=>re.removeEventListener("change",H)),W.picker=re,te.appendChild(K),te.appendChild(re),te.__latNumber=W,te}if(i.props&&i.props.spinner===!0){const te=a.createElement("div");te.className="lat-form__number-spinner";const re=(Z,H)=>{const E=a.createElement("button");return E.type="button",E.tabIndex=-1,E.className="lat-form__number-step",E.textContent=Z,E.addEventListener("mousedown",G=>{typeof G.preventDefault=="function"&&G.preventDefault();const R=typeof U=="number"&&U>0?U:1;g(H*R)}),E},j=re("−",-1),k=re("+",1);return W.buttons=[j,k],te.appendChild(j),te.appendChild(K),te.appendChild(k),te.__latNumber=W,te}return K},read(i){const n=i&&i.__latNumber,a=n?n.input:i;if(n&&!n.focused)return n.unit&&n.invalid?Number.NaN:n.value;if(n&&n.unit){const r=a.value;if(String(r).trim()==="")return null;const s=n.unit.kind==="temperature"?u(r,n.unit.opts):A(r,n.unit.opts);return s===null?Number.NaN:s}return p(a.value,n?n.locale:void 0)},write(i,n){const a=i&&i.__latNumber,r=a?a.input:i,s=a&&a.unit&&typeof a.unit.opts.nullDisplay=="string"?a.unit.opts.nullDisplay:"";if(n==null||n===""){a&&(a.value=null,a.invalid=!1),r.value=s;return}const M=typeof n=="number"?n:Number(n);if(!Number.isFinite(M)){a&&(a.value=null,a.invalid=!1),r.value=s;return}a&&(a.value=M,a.invalid=!1),a&&a.focused?r.value=m(M):a&&a.unit?r.value=a.unit.kind==="unit"?B(M,a.displayUnit!=null?{...a.unit.opts,display:a.displayUnit}:a.unit.opts):_(M,a.unit.opts):a&&a.format?r.value=a.format(M):r.value=m(M),r.value===""?r.removeAttribute("aria-valuetext"):r.setAttribute("aria-valuetext",r.value)},state(i,n){const a=i&&i.__latNumber,r=a?a.input:i;r.disabled=n.disabled===!0,r.readOnly=n.readOnly===!0;const s=n.disabled===!0||n.readOnly===!0;for(const M of a?a.buttons:[])M.disabled=s;a&&a.picker&&(a.picker.disabled=s)},validate(i,n,a){const r=i&&i.__latNumber,s=r&&r.t?r.t:ee;if(a==null||a==="")return null;if(typeof a!="number"||Number.isNaN(a))return r&&r.unit?s("form.validation.unit",{unit:r.unitSymbol}):s("form.validation.number");const M=D=>r&&r.unit&&r.unit.kind==="unit"?B(D,{...r.unit.opts,display:r.unit.opts.unit,group:!0}):r&&r.unit&&r.unit.kind==="temperature"?_(D,r.unit.opts):String(D);if(r&&typeof r.min=="number"&&a<r.min)return s("form.validation.min",{min:M(r.min)});if(r&&typeof r.max=="number"&&a>r.max)return s("form.validation.max",{max:M(r.max)});if(r&&typeof r.step=="number"&&r.step>0){const D=typeof r.min=="number"?r.min:0,Y=(a-D)/r.step;if(Math.abs(Y-Math.round(Y))>1e-9)return s("form.validation.step",{step:String(r.step)})}return null},focus(i){const n=f(i);typeof n.focus=="function"&&n.focus()},blur(i){const n=f(i);typeof n.blur=="function"&&n.blur()},destroy(i){const n=i&&i.__latNumber;if(n)for(const a of n.disposers.splice(0))a()}})}),Ne("packages/modules/form/controls/textarea.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl;V("textarea",{kind:"field",build($,ee){const h=ee.doc.createElement("textarea");return $.name&&(h.name=$.name),$.placeholder!=null&&(h.placeholder=String($.placeholder)),$.rows!=null&&(h.rows=Number($.rows)||2),h.value=$.value==null?"":String($.value),h},read($){return $.value},write($,ee){$.value=ee==null?"":String(ee)},state($,ee){$.disabled=ee.disabled===!0,$.readOnly=ee.readOnly===!0}})}),Ne("packages/modules/form/controls/checkbox.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/state.js"),ee=$.applyBooleanInputState,h=$.guardBooleanInput;V("checkbox",{kind:"toggle",build(P,y){const A=y.doc.createElement("input");return A.type="checkbox",P.name&&(A.name=P.name),A.checked=P.value===!0,h(A),A},read(P){return P.checked},write(P,y){P.checked=y===!0},state(P,y){ee(P,y.disabled===!0,y.readOnly===!0)}})}),Ne("packages/modules/form/controls/button.js",function(S,q){"use strict";Object.defineProperty(S,"injectButtonStyles",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"buttonItemFrom",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"buildButton",{enumerable:!0,get:function(){return i}});const V=q("packages/modules/form/controls/registry.js").registerControl,$="lat-button",ee="data-lattice-button-styles",h="http://www.w3.org/2000/svg",P=Object.freeze({chevronDown:{viewBox:"0 0 16 16",paths:["M3.5 6 8 10.5 12.5 6"],paint:"stroke"},chevronUp:{viewBox:"0 0 16 16",paths:["M3.5 10 8 5.5 12.5 10"],paint:"stroke"},chevronLeft:{viewBox:"0 0 16 16",paths:["M10 3.5 5.5 8 10 12.5"],paint:"stroke"},chevronRight:{viewBox:"0 0 16 16",paths:["M6 3.5 10.5 8 6 12.5"],paint:"stroke"},check:{viewBox:"0 0 16 16",paths:["M3.5 8.5 6.5 11.5 12.5 4.5"],paint:"stroke"},close:{viewBox:"0 0 16 16",paths:["M4 4l8 8M12 4l-8 8"],paint:"stroke"},plus:{viewBox:"0 0 16 16",paths:["M8 3.5v9M3.5 8h9"],paint:"stroke"},search:{viewBox:"0 0 16 16",paths:["M7 2.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9M10.4 10.4 13.5 13.5"],paint:"stroke"},info:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm.75 4a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM7.25 7h1.5v4.5h-1.5Z"]},warning:{viewBox:"0 0 16 16",paths:["M8 1.5 15 14H1Zm-.75 4v4h1.5v-4Zm0 5v1.5h1.5V10.5Z"]},danger:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v5h-1.5Zm0 6h1.5V12h-1.5Z"]},success:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm3.2 4.4-4 4.6-2.4-2.3 1-1.1 1.3 1.2 3-3.4Z"]},clock:{viewBox:"0 0 16 16",paths:["M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Zm-.75 3h1.5v3.7l2.5 1.5-.75 1.3-3.25-2Z"]},lock:{viewBox:"0 0 16 16",paths:["M4.5 7V5a3.5 3.5 0 1 1 7 0v2H13v7H3V7Zm1.5 0h4V5a2 2 0 1 0-4 0Z"]},link:{viewBox:"0 0 16 16",paths:["M6.5 9.5a3 3 0 0 1 0-4l2-2a3 3 0 0 1 4 4l-1 1M9.5 6.5a3 3 0 0 1 0 4l-2 2a3 3 0 0 1-4-4l1-1"],paint:"stroke"},external:{viewBox:"0 0 16 16",paths:["M6.5 3.5h-3v9h9v-3M9.5 3.5h3v3M12.5 3.5 7 9"],paint:"stroke"},download:{viewBox:"0 0 16 16",paths:["M8 2.5v7.5M8 10 5 7M8 10l3-3M2.5 12.5h11"],paint:"stroke"},trash:{viewBox:"0 0 16 16",paths:["M3 4.5h10M6.5 4.5V3h3v1.5M4.5 4.5l.7 8.5h5.6l.7-8.5M6.8 7v3.7M9.2 7v3.7"],paint:"stroke"},pencil:{viewBox:"0 0 16 16",paths:["M2.5 11.2 11 2.7l2.3 2.3-8.5 8.5-3 .7z"],paint:"stroke"},eye:{viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"]},eyeOff:{viewBox:"0 0 16 16",paths:["M2.2 2.9 13.1 13.8M8 3.2c3.3 0 6 3 6.6 4.5a9.4 9.4 0 0 1-1.9 2.4M5 4.2A9 9 0 0 0 1.4 7.7C2 9.3 4.7 12.3 8 12.3c.9 0 1.7-.2 2.5-.5M6.3 6a2.5 2.5 0 0 0 3.4 3.5"],paint:"stroke"},star:{viewBox:"0 0 16 16",paths:["M8 1.6l1.96 3.97 4.38.64-3.17 3.09.75 4.36L8 11.6l-3.92 2.06.75-4.36L1.66 6.21l4.38-.64Z"]},heart:{viewBox:"0 0 16 16",paths:["M8 14.2 2.4 8.6a3.3 3.3 0 0 1 4.67-4.67L8 4.86l.93-.93A3.3 3.3 0 0 1 13.6 8.6Z"]},arrow:{viewBox:"0 0 16 16",paths:["M3 13 12.5 3.5","M7.5 3.5H12.5V8.5"],paint:"stroke"},menu:{viewBox:"0 0 16 16",paths:["M2.5 4.5h11M2.5 8h11M2.5 11.5h11"],paint:"stroke"}}),y=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),A=Object.freeze(["sm","md","lg"]),B=Object.freeze(["button","submit","reset"]);function O(){const n=`
|
|
1312
1337
|
.lat-form{
|
|
1313
1338
|
--lattice-button-primary-bg:var(--lattice-accent);
|
|
1314
1339
|
--lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
|
|
@@ -1369,18 +1394,18 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1369
1394
|
--lattice-button-danger-border-disabled:var(--lattice-button-danger-bg-disabled);
|
|
1370
1395
|
--lattice-button-danger-text:var(--lattice-background);
|
|
1371
1396
|
--lattice-button-danger-text-disabled:var(--lattice-foreground-muted);
|
|
1372
|
-
}`,
|
|
1373
|
-
.lat-form__control .${
|
|
1374
|
-
.lat-form__control .${
|
|
1375
|
-
.lat-form__control .${
|
|
1376
|
-
.lat-form__control .${
|
|
1377
|
-
.lat-form__control .${
|
|
1378
|
-
.lat-form__control .${
|
|
1397
|
+
}`,a=y.map(r=>`
|
|
1398
|
+
.lat-form__control .${$}[data-variant='${r}']{ background:var(--lattice-button-${r}-bg); border-color:var(--lattice-button-${r}-border); color:var(--lattice-button-${r}-text); }
|
|
1399
|
+
.lat-form__control .${$}[data-variant='${r}']:hover:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${r}-bg-hover); }
|
|
1400
|
+
.lat-form__control .${$}[data-variant='${r}']:active:not(:disabled):not([aria-disabled='true']):not([aria-busy='true']){ background:var(--lattice-button-${r}-bg-active); }
|
|
1401
|
+
.lat-form__control .${$}[data-variant='${r}'][aria-pressed='true']{ background:var(--lattice-button-${r}-bg-toggled); }
|
|
1402
|
+
.lat-form__control .${$}[data-variant='${r}']:disabled:not([aria-busy='true']),
|
|
1403
|
+
.lat-form__control .${$}[data-variant='${r}'][aria-disabled='true']:not([aria-busy='true']){
|
|
1379
1404
|
background:var(--lattice-button-${r}-bg-disabled); border-color:var(--lattice-button-${r}-border-disabled); color:var(--lattice-button-${r}-text-disabled); cursor:not-allowed; opacity:1;
|
|
1380
1405
|
}`).join(`
|
|
1381
1406
|
`);return`
|
|
1382
|
-
.lat-form__control .${
|
|
1383
|
-
.lat-form__control a.${
|
|
1407
|
+
.lat-form__control .${$},
|
|
1408
|
+
.lat-form__control a.${$}{
|
|
1384
1409
|
box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
|
|
1385
1410
|
/* The icon-text gap: about 0.5em at standard density (about 6.5px), and it
|
|
1386
1411
|
follows the density-scaled font size up and down. An icon-only button has a
|
|
@@ -1394,34 +1419,34 @@ var Vt=Object.create(null),Ut=Object.create(null);function je(M,X){Vt[M]=X}funct
|
|
|
1394
1419
|
background:transparent;color:var(--lattice-foreground);
|
|
1395
1420
|
font:inherit;line-height:1.2;text-decoration:none;cursor:pointer;
|
|
1396
1421
|
}
|
|
1397
|
-
.lat-form__control .${
|
|
1398
|
-
.lat-form__control .${
|
|
1399
|
-
.lat-form__control .${
|
|
1400
|
-
.lat-form__control .${
|
|
1401
|
-
.lat-form__control .${
|
|
1402
|
-
.lat-form__control .${
|
|
1403
|
-
.lat-form__control .${
|
|
1422
|
+
.lat-form__control .${$}[data-size='sm']{ --lat-btn-h:calc(var(--lattice-row-height) * 0.8); font-size:calc(var(--lattice-font-size) - 1px); }
|
|
1423
|
+
.lat-form__control .${$}[data-size='lg']{ --lat-btn-h:calc(var(--lattice-row-height) * 1.3); }
|
|
1424
|
+
.lat-form__control .${$}[data-full='true']{ width:100%; }
|
|
1425
|
+
.lat-form__control .${$}[data-icon-only='true']{ width:var(--lat-btn-h); padding:0; }
|
|
1426
|
+
.lat-form__control .${$}[data-text-transform='uppercase']{ text-transform:uppercase; }
|
|
1427
|
+
.lat-form__control .${$} svg,
|
|
1428
|
+
.lat-form__control .${$} img{
|
|
1404
1429
|
width:var(--lattice-control-size);height:var(--lattice-control-size);flex:0 0 auto;display:block;
|
|
1405
1430
|
}
|
|
1406
|
-
.lat-form__control .${
|
|
1407
|
-
.lat-form__control .${
|
|
1408
|
-
@keyframes ${
|
|
1409
|
-
@media (prefers-reduced-motion: reduce){ .lat-form__control .${
|
|
1431
|
+
.lat-form__control .${$} img{ object-fit:contain; }
|
|
1432
|
+
.lat-form__control .${$} .${$}__spinner{ animation:${$}-spin .8s linear infinite; }
|
|
1433
|
+
@keyframes ${$}-spin{ to{ transform:rotate(360deg); } }
|
|
1434
|
+
@media (prefers-reduced-motion: reduce){ .lat-form__control .${$} .${$}__spinner{ animation:none; } }
|
|
1410
1435
|
|
|
1411
|
-
${
|
|
1412
|
-
${
|
|
1436
|
+
${n}
|
|
1437
|
+
${a}
|
|
1413
1438
|
|
|
1414
|
-
.lat-form__control .${
|
|
1415
|
-
.lat-form__control .${
|
|
1416
|
-
`.trim()}function v(
|
|
1417
|
-
.lat-form__control .${
|
|
1418
|
-
.lat-form__control .${
|
|
1419
|
-
.lat-form__control .${
|
|
1420
|
-
.lat-form__control .${
|
|
1421
|
-
.lat-form__control .${
|
|
1422
|
-
.lat-form__control .${
|
|
1423
|
-
.lat-form__control .${
|
|
1424
|
-
`.trim()}function v(u){const h=u&&u.documentElement;if(!h||h.getAttribute(A))return;h.setAttribute(A,"1");const x=u.createElement("style");x.textContent=T(),(u.head||u.body||h).appendChild(x)}function f(u){return H.includes(u)?u:"start"}U("buttons",{kind:"display",action:!0,build(u,h){L(h.doc),v(h.doc);const x=u.props||{},t=Array.isArray(x.buttons)?x.buttons:Array.isArray(x.items)?x.items:[],n=h.doc.createElement("div");n.className=C,n.setAttribute("data-align",f(x.align));const a=[];return t.forEach((m,E)=>{if(m==null||typeof m!="object")return;const _=g(m),c=re(_,h),S=()=>{c.disabled||c.getAttribute("aria-disabled")==="true"||h.emitter.emit("click",{name:_.name,item:_,value:null})};c.addEventListener("click",S),a.push(()=>c.removeEventListener("click",S)),n.appendChild(c)}),h.disposers.push(()=>{for(const m of a)m()}),n},read(){return null},write(){},state(){}})}),je("packages/modules/form/controls/text.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl;U("text",{kind:"display",build(O,re){const g=re.doc.createElement("span");return g.className="lat-form__text",g.textContent=O.value==null?"":String(O.value),g},read(O){return O.textContent},write(O,re){O.textContent=re==null?"":String(re)},state(){}})}),je("packages/modules/form/controls/select.js",function(M,X){"use strict";Object.defineProperty(M,"createSelect",{enumerable:!0,get:function(){return E}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,g=X("packages/modules/form/controls/combo.js"),L=g.renderAdornment,C=g.renderTemplateContent,A=g.injectAdornmentStyles,H=X("packages/modules/form/controls/field-icon.js"),T=H.makeFieldIcon,v=H.injectFieldIconStyles,f=700;function u(c,S){const o=c&&c.defaultView;return o&&o.Event?new o.Event(S,{bubbles:!0}):{type:S,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function h(c){return c!=null&&typeof c=="object"?c.value==null?"":String(c.value):c==null?"":String(c)}function x(c){return c==null?"":typeof c!="object"?String(c):c.label!=null?String(c.label):c.text!=null?String(c.text):c.value==null?"":String(c.value)}function t(c){return c!=null&&typeof c=="object"&&Array.isArray(c.options)}function n(c){const S=[];if(!Array.isArray(c))return S;for(const o of c)if(t(o)){const d=x(o);S.push({group:!0,label:d});for(const l of o.options)if(t(l)){S.push({group:!0,label:x(l)});for(const s of l.options)S.push(a(s))}else S.push(a(l))}else S.push(a(o));return S}function a(c){const S=c!=null&&typeof c=="object"?c:{},o=S.description!=null?String(S.description):S.subtitle!=null?String(S.subtitle):null;return{group:!1,value:h(c),label:x(c),icon:S.icon,avatar:S.avatar,color:S.color,dot:S.dot,description:o,disabled:S.disabled===!0}}function m(c,S){return c===S?!0:c!=null&&S!=null&&String(c)===String(S)}function E(c,S={}){const o=S.doc||c&&c.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;o&&(A(o),v(o));const d=typeof S.t=="function"?S.t:re,l=S.multiple===!0,s=n(S.options),r=s.filter(q=>!q.group);let i=[];const B=o.createElement("div");B.className="lat-combo lat-select",l&&B.setAttribute("data-multiple","true");const z=o.createElement("button");z.type="button",z.className="lat-select__trigger",z.setAttribute("role","combobox"),z.setAttribute("aria-haspopup","listbox"),z.setAttribute("aria-expanded","false"),l&&z.setAttribute("aria-multiselectable","true"),z.setAttribute("aria-label",S.ariaLabel||d("form.select.toggle"));const W=o.createElement("span");W.className="lat-select__value";const b=o.createElement("span");b.className="lat-select__arrow",b.setAttribute("aria-hidden","true");const J=T(o,"chevronDown");J&&b.appendChild(J),z.appendChild(W),z.appendChild(b);const Q=o.createElement("div");Q.className="lat-combo__popup lat-select__popup",Q.hidden=!0;const ne=o.createElement("div");ne.className="lat-combo__list lat-select__list",ne.setAttribute("role","listbox"),Q.appendChild(ne),B.appendChild(z),B.appendChild(Q);const Z=`lat-select-lb-${p()}`;ne.id=Z,z.setAttribute("aria-controls",Z);const Y=[];let Ne=-1,ve=!1,se="",k=null;const I=[];let F=!1;function p(){return p.n=(p.n||0)+1,p.n}function D(q,$e,he){q.addEventListener($e,he),I.push(()=>q.removeEventListener($e,he))}function G(q){return r.find($e=>m($e.value,q))||null}function R(){c.dispatchEvent(u(o,"change"))}function ee(){return l?i.slice():i.length?i[0]:""}function P(){if(!l){for(;W.firstChild;)W.removeChild(W.firstChild);if(i.length){const q=G(i[0]),$e=C(o,q,S.selectedTemplate);if($e)W.appendChild($e);else{const he=L(o,q);he&&W.appendChild(he);const Me=o.createElement("span");Me.className="lat-select__label",Me.textContent=q?q.label:i[0],W.appendChild(Me)}W.removeAttribute("data-placeholder")}else W.textContent=S.placeholder!=null?String(S.placeholder):"",W.setAttribute("data-placeholder","true");return}i.length===0?(W.textContent=S.placeholder!=null?String(S.placeholder):"",W.setAttribute("data-placeholder","true")):(W.textContent=i.map(q=>{const $e=G(q);return $e?$e.label:q}).join(", "),W.removeAttribute("data-placeholder"))}function N(q){let $e;if(l)$e=Array.isArray(q)?q.map(String):q==null||q===""?[]:[String(q)];else{const he=Array.isArray(q)?q.length?q[0]:null:q;$e=he==null||he===""?[]:[String(he)]}i=$e.filter(he=>r.some(Me=>Me.value===he)),P(),y()}function y(){for(const q of Y){const $e=q.dataset.value||"",he=i.some(Fe=>Fe===$e);q.setAttribute("aria-selected",he?"true":"false");const Me=q.querySelector(".lat-select__check");Me&&(Me.textContent=he?"✓":"")}}function $(q){for(let $e=Math.max(0,q);$e<r.length;$e++)if(!r[$e].disabled)return $e;return-1}function w(q){for(let $e=Math.min(r.length-1,q);$e>=0;$e--)if(!r[$e].disabled)return $e;return-1}function V(q){Ne=q;for(const $e of Y)$e.classList.remove("lat-select__option--active");q>=0&&q<Y.length?(Y[q].classList.add("lat-select__option--active"),z.setAttribute("aria-activedescendant",Y[q].id)):z.removeAttribute("aria-activedescendant")}function oe(){if(Ne<0||Ne>=Y.length)return;const q=Y[Ne];q.offsetTop<ne.scrollTop?ne.scrollTop=q.offsetTop:q.offsetTop+q.offsetHeight>ne.scrollTop+ne.clientHeight&&(ne.scrollTop=q.offsetTop+q.offsetHeight-ne.clientHeight)}function ie(q){const $e=Ne<0?q>0?-1:r.length:Ne,he=q>0?$($e+1):w($e-1);he!==-1&&V(he),oe()}function _e(){if(ve||F||S.disabled)return;ve=!0,Q.hidden=!1,z.setAttribute("aria-expanded","true");const q=o&&o.defaultView,$e=z.getBoundingClientRect(),he=q?q.innerHeight:0,Me=Q.offsetHeight||ne.offsetHeight||0;if(he-$e.bottom<Me+4&&$e.top>Me+4?Q.classList.add("lat-select__popup--above"):Q.classList.remove("lat-select__popup--above"),Ne<0&&r.length){const fe=l?-1:i.length?r.findIndex(xe=>m(xe.value,i[0])):-1;V($(fe>=0?fe:0))}}function Oe(){ve&&(ve=!1,Q.hidden=!0,Q.classList.remove("lat-select__popup--above"),z.setAttribute("aria-expanded","false"),V(-1),se="")}function Se(){ve?Oe():_e()}function j(q){if(S.readOnly)return;if(!l){const he=i.length===0||i[0]!==q;i=[q],P(),y(),Oe(),he&&R();return}i=i.some(he=>he===q)?i.filter(he=>he!==q):[...i,q],P(),y(),z.focus(),R()}function te(){Ne<0||Ne>=r.length||r[Ne].disabled||j(r[Ne].value)}function ce(q){k&&clearTimeout(k),se+=q.toLowerCase(),k=setTimeout(()=>{se="",k=null},f),ve||_e();const $e=Ne>-1?Ne+1:0;let he=-1;for(let Me=$e;Me<r.length;Me++)if(!r[Me].disabled&&r[Me].label.toLowerCase().startsWith(se)){he=Me;break}if(he===-1){for(let Me=0;Me<$e;Me++)if(!r[Me].disabled&&r[Me].label.toLowerCase().startsWith(se)){he=Me;break}}he!==-1&&(V(he),oe())}function K(q){const $e=q.altKey===!0;if(q.key==="ArrowDown"||$e&&q.key==="ArrowDown")q.preventDefault(),ve?ie(1):(_e(),Ne===-1&&r.length&&V($(0)));else if(q.key==="ArrowUp")q.preventDefault(),ve?ie(-1):(_e(),r.length&&V(w(r.length-1)));else if(q.key==="Home"){if(!ve)return;q.preventDefault();const he=$(0);he!==-1&&V(he),oe()}else if(q.key==="End"){if(!ve)return;q.preventDefault();const he=w(r.length-1);he!==-1&&V(he),oe()}else q.key==="Enter"||q.key===" "?(q.preventDefault(),ve?te():_e()):q.key==="Escape"?ve&&(q.preventDefault(),Oe()):q.key==="Tab"?ve&&te():q.key.length===1&&!q.ctrlKey&&!q.metaKey&&!$e&&(q.preventDefault(),ce(q.key))}function de(q){q<0||q>=r.length||r[q].disabled||j(r[q].value)}function ue(q,$e){const he=o.createElement("div");if(he.className="lat-combo__option",he.setAttribute("role","option"),he.id=`${Z}-opt-${$e}`,he.setAttribute("data-value",q.value),he.setAttribute("aria-selected","false"),q.disabled&&(he.setAttribute("aria-disabled","true"),he.classList.add("lat-select__option--disabled")),l){const fe=o.createElement("span");fe.className="lat-select__check",fe.setAttribute("aria-hidden","true"),he.appendChild(fe)}const Me=C(o,q,S.optionTemplate);if(Me)he.appendChild(Me);else{const fe=L(o,q);fe&&he.appendChild(fe);const xe=o.createElement("span");xe.className="lat-combo__text";const Te=o.createElement("span");if(Te.className="lat-combo__title",Te.textContent=q.label,xe.appendChild(Te),q.description!=null){const Ue=o.createElement("span");Ue.className="lat-combo__subtitle",Ue.textContent=q.description,xe.appendChild(Ue)}he.appendChild(xe)}return D(he,"click",fe=>{fe.stopPropagation(),de($e)}),Y.push(he),he}function be(){let q=0,$e=0,he=null,Me=null;for(const Fe of s)if(Fe.group)he=o.createElement("div"),he.setAttribute("role","group"),Me=o.createElement("div"),Me.id=`${Z}-grp-${$e}`,Me.className="lat-select__group",Me.textContent=Fe.label||"",he.setAttribute("aria-labelledby",Me.id),he.appendChild(Me),ne.appendChild(he),$e+=1;else{const fe=ue(Fe,q);q+=1,he?he.appendChild(fe):ne.appendChild(fe)}}const Ce=()=>{S.disabled||Se()},Ae=()=>{c.dispatchEvent(u(o,"focus"))},ye=()=>{c.dispatchEvent(u(o,"blur")),Oe()},me=q=>{B.contains(q.target)||Oe()};D(z,"click",Ce),D(z,"keydown",K),D(z,"focus",Ae),D(z,"blur",ye),D(ne,"mousedown",q=>q.preventDefault()),o&&D(o,"mousedown",me),be(),N(S.value);const we={el:c,root:B,trigger:z,getValue:ee,setValue(q){return N(q),we},open(){return _e(),we},close(){return Oe(),we},focus(){return z.focus(),we},blur(){return z.blur(),we},setDisabled(q){S.disabled=q,z.disabled=q,q&&Oe()},setReadOnly(q){S.readOnly=q,q?z.setAttribute("aria-readonly","true"):z.removeAttribute("aria-readonly")},destroy(){F=!0,k&&clearTimeout(k);for(const q of I.splice(0))q();for(;B.firstChild;)B.removeChild(B.firstChild)}};return c.appendChild(B),c.__select=we,we}function _(c,S){const o=S.doc.createElement("select");c.name&&(o.name=c.name);const d=c.props&&c.props.multiple===!0;d&&(o.multiple=!0),o.__multiple=d;const l=n(c.options),s=l.filter(z=>!z.group),r=S.doc.createElement("option");r.value="",r.textContent=c.placeholder!=null?String(c.placeholder):"",d||o.appendChild(r);let i=null;for(const z of l)if(z.group)i=S.doc.createElement("optgroup"),i.label=z.label||"",o.appendChild(i);else{const W=S.doc.createElement("option");W.value=z.value,W.textContent=z.label,z.disabled&&(W.disabled=!0),(i||o).appendChild(W)}const B=c.value==null?"":String(c.value);if(!d)o.value=s.some(z=>z.value===B)?B:"";else{const z=Array.isArray(c.value)?c.value.map(String):[];for(const W of o.options)W.selected=z.includes(W.value)}return o.__select={getValue(){return d?[...o.selectedOptions].map(z=>z.value):o.value},setValue(z){if(!d){const b=z==null?"":String(z);o.value=s.some(J=>J.value===b)?b:"";return}const W=Array.isArray(z)?z.map(String):[];for(const b of o.options)b.selected=W.includes(b.value)},setDisabled(z){o.disabled=z},setReadOnly(z){z&&(o.disabled=!0)},focus(){o.focus()},blur(){o.blur()},destroy(){}},o}U("select",{kind:"field",build(c,S){const o=c.props||{};if(o.native===!0)return _(c,S);const d=S.doc.createElement("div");return E(d,{options:c.options,multiple:o.multiple===!0,value:c.value,placeholder:c.placeholder,ariaLabel:c.label,optionTemplate:o.optionTemplate,selectedTemplate:o.selectedTemplate,t:S.t,doc:S.doc}),S.disposers.push(()=>{d.__select&&d.__select.destroy()}),d},read(c){return c.__select?c.__select.getValue():""},write(c,S){c.__select&&c.__select.setValue(S)},state(c,S){c.__select&&(c.__select.setDisabled(S.disabled===!0),c.__select.setReadOnly(S.readOnly===!0))},focus(c){c.__select&&c.__select.focus()},blur(c){c.__select&&c.__select.blur()}})}),je("packages/modules/form/controls/listbox.js",function(M,X){"use strict";Object.defineProperty(M,"createListBox",{enumerable:!0,get:function(){return l}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,g=X("packages/modules/form/controls/combo.js"),L=g.renderAdornment,C=g.renderTemplateContent,A=g.injectAdornmentStyles,H="data-lattice-form-listbox-styles",T=30,v=46,f=48,u=250,h=700;function x(){return`
|
|
1439
|
+
.lat-form__control .${$}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
|
|
1440
|
+
.lat-form__control .${$}[aria-busy='true']{ cursor:default; pointer-events:none; }
|
|
1441
|
+
`.trim()}function v(n){const a=n&&n.documentElement;if(!a||a.getAttribute(ee))return;a.setAttribute(ee,"1");const r=n.createElement("style");r.textContent=O(),(n.head||n.body||a).appendChild(r)}function d(n){return y.includes(n)?n:"secondary"}function u(n){return A.includes(n)?n:"md"}function _(n){return B.includes(n)?n:"button"}function w(n){return n==="end"?"end":"start"}function t(n){return n==="uppercase"?"uppercase":"none"}function o(n){const a=n.props&&n.props.href;return typeof a=="string"&&a!==""}function l(n,a){const r=n.createElementNS(h,"svg");r.setAttribute("viewBox",a.viewBox),r.setAttribute("focusable","false"),r.setAttribute("aria-hidden","true"),a.paint==="stroke"?(r.setAttribute("fill","none"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-width","1.5"),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round")):r.setAttribute("fill","currentColor");for(const s of a.paths){const M=n.createElementNS(h,"path");M.setAttribute("d",s),r.appendChild(M)}return r}function b(n,a){if(n==null)return null;if(typeof n=="object"&&n.nodeType)return n;if(typeof n!="string"||n==="")return null;const r=n;if(/^(https?:)?\/\//i.test(r)||/^data:/i.test(r)){const M=a.createElement("img");return M.src=r,M.alt="",M}const s=P[r];return s?l(a,s):null}function p(n){const a=n.createElementNS(h,"svg");a.setAttribute("viewBox","0 0 16 16"),a.setAttribute("focusable","false"),a.setAttribute("aria-hidden","true"),a.setAttribute("class",`${$}__spinner`);const r=n.createElementNS(h,"circle");return r.setAttribute("cx","8"),r.setAttribute("cy","8"),r.setAttribute("r","6"),r.setAttribute("fill","none"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-width","2"),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-dasharray","28"),r.setAttribute("stroke-dashoffset","10"),a.appendChild(r),a}function m(n,a,r){const s=a&&a.defaultView,M=s&&s.CustomEvent,D=M?new M("submit",{bubbles:!0,detail:{values:r}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:r},preventDefault(){this.defaultPrevented=!0}};n.dispatchEvent(D)}function f(n){const a=n.loading===!0,r=n.disabled===!0&&n.focusableWhenDisabled!==!0||a;n.el.disabled=r,n.el.setAttribute("aria-disabled",n.disabled===!0||a?"true":"false")}function N(n,a){n.loading=a===!0,n.el.setAttribute("aria-busy",n.loading?"true":"false"),f(n);const r=n.iconSlot;if(!r)return;for(;r.firstChild;)r.removeChild(r.firstChild);const s=n.loading?p(n.doc):n.iconEl;s?(r.appendChild(s),r.parentNode||(n.position==="end"?n.el.appendChild(r):n.el.insertBefore(r,n.el.firstChild))):r.parentNode&&r.parentNode.removeChild(r)}function c(n){return{kind:"item",type:"button",name:n.name!=null&&n.name!==""?String(n.name):null,label:n.label,disabled:n.disabled===!0,props:{icon:n.icon,iconPosition:n.iconPosition,variant:n.variant,fullWidth:n.fullWidth,size:n.size,textTransform:n.textTransform,buttonType:n.buttonType,loading:n.loading,href:n.href,ariaLabel:n.ariaLabel,toggle:n.toggle,focusableWhenDisabled:n.focusableWhenDisabled}}}function i(n,a){const r=a.doc,s=n.props||{},M=n.label!=null?String(n.label):"",D=b(s.icon,r),Y=D!=null&&M==="",U=o(n)?r.createElement("a"):r.createElement("button");U.className=$,U.setAttribute("data-variant",d(s.variant)),U.setAttribute("data-size",u(s.size)),U.setAttribute("data-text-transform",t(s.textTransform)),s.fullWidth===!0&&U.setAttribute("data-full","true"),Y&&U.setAttribute("data-icon-only","true"),n.name&&!o(n)&&(U.name=n.name),o(n)?U.setAttribute("href",s.href):U.type="button";const Q=s.ariaLabel!=null?String(s.ariaLabel):Y?String(n.name||""):"";Q&&U.setAttribute("aria-label",Q);const oe=r.createElement("span");oe.className=`${$}__icon`,oe.setAttribute("aria-hidden","true"),D&&oe.appendChild(D);let F=null;Y||(F=r.createElement("span"),F.className=`${$}__label`,F.textContent=M!==""?M:String(n.name||""));const K=w(s.iconPosition);K==="end"?(F&&U.appendChild(F),oe.firstChild&&U.appendChild(oe)):(oe.firstChild&&U.appendChild(oe),F&&U.appendChild(F));const W={el:U,doc:r,iconSlot:oe,iconEl:D,label:F,position:K,loading:!1,disabled:n.disabled===!0,toggle:s.toggle===!0,pressed:s.toggle===!0&&n.value===!0,focusableWhenDisabled:s.focusableWhenDisabled===!0};U.__latButton=W,W.toggle&&U.setAttribute("aria-pressed",W.pressed?"true":"false");const ge=()=>{if(W.loading||W.disabled)return;if(W.toggle){const le=W.pressed;W.pressed=!W.pressed,U.setAttribute("aria-pressed",W.pressed?"true":"false"),a.emitter.emit("change",{name:n.name,value:W.pressed,previousValue:le,item:n})}const ve=_(s.buttonType);ve==="submit"?(typeof a.form.validate!="function"||a.form.validate())&&m(a.el,r,typeof a.form.getValue=="function"?a.form.getValue():{}):ve==="reset"&&typeof a.form.clear=="function"&&a.form.clear()};return U.addEventListener("click",ge),a.disposers.push(()=>U.removeEventListener("click",ge)),N(W,s.loading===!0),U}V("button",{kind:"button",action:!0,build(n,a){return v(a.doc),i(n,a)},read(n){const a=n&&n.__latButton;return a&&a.toggle?a.pressed:null},write(){},state(n,a){const r=n.__latButton;r&&(r.disabled=a.disabled===!0,f(r))},setLoading(n,a){const r=n.__latButton;r&&N(r,a)}})}),Ne("packages/modules/form/controls/buttons.js",function(S,q){"use strict";Object.defineProperty(S,"injectButtonsStyles",{enumerable:!0,get:function(){return v}});const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/button.js"),ee=$.buildButton,h=$.buttonItemFrom,P=$.injectButtonStyles,y="lat-button-row",A="data-lattice-button-row-styles",B=Object.freeze(["start","end","center","stretch","space-between"]);function O(){return`
|
|
1442
|
+
.lat-form__control .${y}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
|
|
1443
|
+
.lat-form__control .${y}[data-align='start']{ justify-content:flex-start; }
|
|
1444
|
+
.lat-form__control .${y}[data-align='end']{ justify-content:flex-end; }
|
|
1445
|
+
.lat-form__control .${y}[data-align='center']{ justify-content:center; }
|
|
1446
|
+
.lat-form__control .${y}[data-align='space-between']{ justify-content:space-between; }
|
|
1447
|
+
.lat-form__control .${y}[data-align='stretch']{ justify-content:flex-start; }
|
|
1448
|
+
.lat-form__control .${y}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
|
|
1449
|
+
`.trim()}function v(u){const _=u&&u.documentElement;if(!_||_.getAttribute(A))return;_.setAttribute(A,"1");const w=u.createElement("style");w.textContent=O(),(u.head||u.body||_).appendChild(w)}function d(u){return B.includes(u)?u:"start"}V("buttons",{kind:"display",action:!0,build(u,_){P(_.doc),v(_.doc);const w=u.props||{},t=Array.isArray(w.buttons)?w.buttons:Array.isArray(w.items)?w.items:[],o=_.doc.createElement("div");o.className=y,o.setAttribute("data-align",d(w.align));const l=[];return t.forEach((b,p)=>{if(b==null||typeof b!="object")return;const m=h(b),f=ee(m,_),N=()=>{f.disabled||f.getAttribute("aria-disabled")==="true"||_.emitter.emit("click",{name:m.name,item:m,value:null})};f.addEventListener("click",N),l.push(()=>f.removeEventListener("click",N)),o.appendChild(f)}),_.disposers.push(()=>{for(const b of l)b()}),o},read(){return null},write(){},state(){}})}),Ne("packages/modules/form/controls/text.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl;V("text",{kind:"display",build($,ee){const h=ee.doc.createElement("span");return h.className="lat-form__text",h.textContent=$.value==null?"":String($.value),h},read($){return $.textContent},write($,ee){$.textContent=ee==null?"":String(ee)},state(){}})}),Ne("packages/modules/form/controls/select.js",function(S,q){"use strict";Object.defineProperty(S,"createSelect",{enumerable:!0,get:function(){return N}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,h=q("packages/modules/form/controls/combo.js"),P=h.renderAdornment,y=h.renderTemplateContent,A=h.injectAdornmentStyles,B=q("packages/modules/form/controls/field-icon.js"),O=B.makeFieldIcon,v=B.injectFieldIconStyles,u=q("packages/modules/form/controls/popup-layer.js").openInLayer,_="lat-select__popup--above",w=700;function t(i,n){const a=i&&i.defaultView;return a&&a.Event?new a.Event(n,{bubbles:!0}):{type:n,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function o(i){return i!=null&&typeof i=="object"?"value"in i?i.value:"":i??""}function l(i){return i==null?"":typeof i!="object"?String(i):i.label!=null?String(i.label):i.text!=null?String(i.text):i.value==null?"":String(i.value)}function b(i){return i!=null&&typeof i=="object"&&Array.isArray(i.options)}function p(i){const n=[];if(!Array.isArray(i))return n;for(const a of i)if(b(a)){const r=l(a);n.push({group:!0,label:r});for(const s of a.options)if(b(s)){n.push({group:!0,label:l(s)});for(const M of s.options)n.push(m(M))}else n.push(m(s))}else n.push(m(a));return n}function m(i){const n=i!=null&&typeof i=="object"?i:{},a=n.description!=null?String(n.description):n.subtitle!=null?String(n.subtitle):null;return{group:!1,value:o(i),label:l(i),icon:n.icon,avatar:n.avatar,color:n.color,dot:n.dot,description:a,disabled:n.disabled===!0}}function f(i,n){return i===n?!0:i!=null&&n!=null&&String(i)===String(n)}function N(i,n={}){const a=n.doc||i&&i.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;a&&(A(a),v(a));const r=typeof n.t=="function"?n.t:ee,s=n.multiple===!0,M=p(n.options),D=M.filter(de=>!de.group);let Y=[];const U=a.createElement("div");U.className="lat-combo lat-select",s&&U.setAttribute("data-multiple","true");const Q=a.createElement("button");Q.type="button",Q.className="lat-select__trigger",Q.setAttribute("role","combobox"),Q.setAttribute("aria-haspopup","listbox"),Q.setAttribute("aria-expanded","false"),s&&Q.setAttribute("aria-multiselectable","true"),Q.setAttribute("aria-label",n.ariaLabel||r("form.select.toggle"));const oe=a.createElement("span");oe.className="lat-select__value";const F=a.createElement("span");F.className="lat-select__arrow",F.setAttribute("aria-hidden","true");const K=O(a,"chevronDown");K&&F.appendChild(K),Q.appendChild(oe),Q.appendChild(F);const W=a.createElement("div");W.className="lat-combo__popup lat-select__popup",W.hidden=!0;const ge=a.createElement("div");ge.className="lat-combo__list lat-select__list",ge.setAttribute("role","listbox"),W.appendChild(ge),U.appendChild(Q),U.appendChild(W);const ve=`lat-select-lb-${te()}`;ge.id=ve,Q.setAttribute("aria-controls",ve);const le=[];let x=-1,L=!1,I="",g=null;const T=[];let X=!1,z=null;function te(){return te.n=(te.n||0)+1,te.n}function re(de,fe,we){de.addEventListener(fe,we),T.push(()=>de.removeEventListener(fe,we))}function j(de){return D.find(fe=>f(fe.value,de))||null}function k(){i.dispatchEvent(t(a,"change"))}function Z(){return s?Y.slice():Y.length?Y[0]:""}function H(){if(!s){for(;oe.firstChild;)oe.removeChild(oe.firstChild);if(Y.length){const de=j(Y[0]),fe=y(a,de,n.selectedTemplate);if(fe)oe.appendChild(fe);else{const we=P(a,de);we&&oe.appendChild(we);const Se=a.createElement("span");Se.className="lat-select__label",Se.textContent=de?de.label:Y[0],oe.appendChild(Se)}oe.removeAttribute("data-placeholder")}else oe.textContent=n.placeholder!=null?String(n.placeholder):"",oe.setAttribute("data-placeholder","true");return}Y.length===0?(oe.textContent=n.placeholder!=null?String(n.placeholder):"",oe.setAttribute("data-placeholder","true")):(oe.textContent=Y.map(de=>{const fe=j(de);return fe?fe.label:de}).join(", "),oe.removeAttribute("data-placeholder"))}function E(de){let fe;const we=D.some(Se=>Se.value==="");if(s)fe=Array.isArray(de)?de:de==null||de===""&&!we?[]:[de];else{const Se=Array.isArray(de)?de.length?de[0]:null:de;fe=Se==null||Se===""&&!we?[]:[Se]}Y=[];for(const Se of fe){const Te=D.find(Pe=>f(Pe.value,Se));Te&&Y.push(Te.value)}H(),G()}function G(){for(let de=0;de<le.length;de++){const fe=le[de],we=D[de],Se=!!we&&Y.some(Pe=>f(Pe,we.value));fe.setAttribute("aria-selected",Se?"true":"false");const Te=fe.querySelector(".lat-select__check");Te&&(Te.textContent=Se?"✓":"")}}function R(de){for(let fe=Math.max(0,de);fe<D.length;fe++)if(!D[fe].disabled)return fe;return-1}function ce(de){for(let fe=Math.min(D.length-1,de);fe>=0;fe--)if(!D[fe].disabled)return fe;return-1}function me(de){x=de;for(const fe of le)fe.classList.remove("lat-select__option--active");de>=0&&de<le.length?(le[de].classList.add("lat-select__option--active"),Q.setAttribute("aria-activedescendant",le[de].id)):Q.removeAttribute("aria-activedescendant")}function xe(){if(x<0||x>=le.length)return;const de=le[x];de.offsetTop<ge.scrollTop?ge.scrollTop=de.offsetTop:de.offsetTop+de.offsetHeight>ge.scrollTop+ge.clientHeight&&(ge.scrollTop=de.offsetTop+de.offsetHeight-ge.clientHeight)}function C(de){const fe=x<0?de>0?-1:D.length:x,we=de>0?R(fe+1):ce(fe-1);we!==-1&&me(we),xe()}function ne(){if(!(L||X||n.disabled)&&(L=!0,W.hidden=!1,Q.setAttribute("aria-expanded","true"),z=u(W,Q,{aboveClass:_,onOffscreen:se}),x<0&&D.length)){const de=s?-1:Y.length?D.findIndex(fe=>f(fe.value,Y[0])):-1;me(R(de>=0?de:0))}}function se(){L&&(L=!1,W.hidden=!0,W.classList.remove(_),z&&(z.close(),z=null),Q.setAttribute("aria-expanded","false"),me(-1),I="")}function J(){L?se():ne()}function ue(de){if(n.readOnly)return;if(!s){const we=Y.length===0||Y[0]!==de;Y=[de],H(),G(),se(),we&&k();return}Y=Y.some(we=>we===de)?Y.filter(we=>we!==de):[...Y,de],H(),G(),Q.focus(),k()}function he(){x<0||x>=D.length||D[x].disabled||ue(D[x].value)}function be(de){g&&clearTimeout(g),I+=de.toLowerCase(),g=setTimeout(()=>{I="",g=null},w),L||ne();const fe=x>-1?x+1:0;let we=-1;for(let Se=fe;Se<D.length;Se++)if(!D[Se].disabled&&D[Se].label.toLowerCase().startsWith(I)){we=Se;break}if(we===-1){for(let Se=0;Se<fe;Se++)if(!D[Se].disabled&&D[Se].label.toLowerCase().startsWith(I)){we=Se;break}}we!==-1&&(me(we),xe())}function Ee(de){const fe=de.altKey===!0;if(de.key==="ArrowDown"||fe&&de.key==="ArrowDown")de.preventDefault(),L?C(1):(ne(),x===-1&&D.length&&me(R(0)));else if(de.key==="ArrowUp")de.preventDefault(),L?C(-1):(ne(),D.length&&me(ce(D.length-1)));else if(de.key==="Home"){if(!L)return;de.preventDefault();const we=R(0);we!==-1&&me(we),xe()}else if(de.key==="End"){if(!L)return;de.preventDefault();const we=ce(D.length-1);we!==-1&&me(we),xe()}else de.key==="Enter"||de.key===" "?(de.preventDefault(),L?he():ne()):de.key==="Escape"?L&&(de.preventDefault(),se()):de.key==="Tab"?L&&he():de.key.length===1&&!de.ctrlKey&&!de.metaKey&&!fe&&(de.preventDefault(),be(de.key))}function Oe(de){de<0||de>=D.length||D[de].disabled||ue(D[de].value)}function Ae(de,fe){const we=a.createElement("div");if(we.className="lat-combo__option",we.setAttribute("role","option"),we.id=`${ve}-opt-${fe}`,we.setAttribute("data-value",de.value),we.setAttribute("aria-selected","false"),de.disabled&&(we.setAttribute("aria-disabled","true"),we.classList.add("lat-select__option--disabled")),s){const Pe=a.createElement("span");Pe.className="lat-select__check",Pe.setAttribute("aria-hidden","true"),we.appendChild(Pe)}const Se=y(a,de,n.optionTemplate);if(Se)we.appendChild(Se);else{const Pe=P(a,de);Pe&&we.appendChild(Pe);const tt=a.createElement("span");tt.className="lat-combo__text";const Ze=a.createElement("span");if(Ze.className="lat-combo__title",Ze.textContent=de.label,tt.appendChild(Ze),de.description!=null){const Je=a.createElement("span");Je.className="lat-combo__subtitle",Je.textContent=de.description,tt.appendChild(Je)}we.appendChild(tt)}return re(we,"click",Pe=>{Pe.stopPropagation(),Oe(fe)}),le.push(we),we}function Ce(){let de=0,fe=0,we=null,Se=null;for(const Te of M)if(Te.group)we=a.createElement("div"),we.setAttribute("role","group"),Se=a.createElement("div"),Se.id=`${ve}-grp-${fe}`,Se.className="lat-select__group",Se.textContent=Te.label||"",we.setAttribute("aria-labelledby",Se.id),we.appendChild(Se),ge.appendChild(we),fe+=1;else{const Pe=Ae(Te,de);de+=1,we?we.appendChild(Pe):ge.appendChild(Pe)}}const ye=()=>{n.disabled||J()},ke=()=>{i.dispatchEvent(t(a,"focus"))},Le=()=>{i.dispatchEvent(t(a,"blur")),se()},De=de=>{U.contains(de.target)||W.contains(de.target)||se()};re(Q,"click",ye),re(Q,"keydown",Ee),re(Q,"focus",ke),re(Q,"blur",Le),re(ge,"mousedown",de=>de.preventDefault()),a&&re(a,"mousedown",De),Ce(),E(n.value);const He={el:i,root:U,trigger:Q,getValue:Z,setValue(de){return E(de),He},open(){return ne(),He},close(){return se(),He},focus(){return Q.focus(),He},blur(){return Q.blur(),He},setDisabled(de){n.disabled=de,Q.disabled=de,de&&se()},setReadOnly(de){n.readOnly=de,de?Q.setAttribute("aria-readonly","true"):Q.removeAttribute("aria-readonly")},destroy(){se(),X=!0,g&&clearTimeout(g);for(const de of T.splice(0))de();for(;U.firstChild;)U.removeChild(U.firstChild)}};return i.appendChild(U),i.__select=He,He}function c(i,n){const a=n.doc.createElement("select");i.name&&(a.name=i.name);const r=i.props&&i.props.multiple===!0;r&&(a.multiple=!0),a.__multiple=r;const s=p(i.options),M=s.filter(Q=>!Q.group),D=M.some(Q=>Q.value===""),Y=n.doc.createElement("option");Y.value="",Y.textContent=i.placeholder!=null?String(i.placeholder):"",!r&&!D&&a.appendChild(Y);let U=null;for(const Q of s)if(Q.group)U=n.doc.createElement("optgroup"),U.label=Q.label||"",a.appendChild(U);else{const oe=n.doc.createElement("option");oe.value=String(Q.value),oe.textContent=Q.label,Q.disabled&&(oe.disabled=!0),oe.__value=Q.value,oe.__typed=!0,(U||a).appendChild(oe)}if(r){const Q=(Array.isArray(i.value)?i.value:[]).filter(oe=>oe!=null&&oe!=="");for(const oe of a.options)oe.__typed&&(oe.selected=Q.some(F=>f(F,oe.__value)))}else{const Q=i.value==null||i.value===""&&!D?null:i.value,oe=Q==null?null:M.find(F=>f(F.value,Q));a.value=oe?String(oe.value):""}return a.__select={getValue(){if(!r){if(a.selectedOptions&&a.selectedOptions.length){const oe=a.selectedOptions[0];if(oe&&oe.__typed)return oe.__value}const Q=M.find(oe=>f(oe.value,a.value));return Q?Q.value:a.value}return[...a.selectedOptions].map(Q=>Q.__typed?Q.__value:Q.value)},setValue(Q){if(!r){const F=Q==null||Q===""&&!D?null:Q,K=F==null?null:M.find(W=>f(W.value,F));a.value=K?String(K.value):"";return}const oe=(Array.isArray(Q)?Q:[]).filter(F=>F!=null&&F!=="");for(const F of a.options)F.__typed&&(F.selected=oe.some(K=>f(K,F.__value)))},setDisabled(Q){a.disabled=Q},setReadOnly(Q){Q&&(a.disabled=!0)},focus(){a.focus()},blur(){a.blur()},destroy(){}},a}V("select",{kind:"field",build(i,n){const a=i.props||{};if(a.native===!0)return c(i,n);const r=n.doc.createElement("div");return N(r,{options:i.options,multiple:a.multiple===!0,value:i.value,placeholder:i.placeholder,ariaLabel:i.label,optionTemplate:a.optionTemplate,selectedTemplate:a.selectedTemplate,t:n.t,doc:n.doc}),n.disposers.push(()=>{r.__select&&r.__select.destroy()}),r},read(i){return i.__select?i.__select.getValue():""},write(i,n){i.__select&&i.__select.setValue(n)},state(i,n){i.__select&&(i.__select.setDisabled(n.disabled===!0),i.__select.setReadOnly(n.readOnly===!0))},focus(i){i.__select&&i.__select.focus()},blur(i){i.__select&&i.__select.blur()}})}),Ne("packages/modules/form/controls/listbox.js",function(S,q){"use strict";Object.defineProperty(S,"createListBox",{enumerable:!0,get:function(){return n}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,h=q("packages/modules/form/controls/combo.js"),P=h.renderAdornment,y=h.renderTemplateContent,A=h.injectAdornmentStyles,B="data-lattice-form-listbox-styles",O=30,v=46,d=48,u=250,_=700;function w(){return`
|
|
1425
1450
|
.lat-listbox{
|
|
1426
1451
|
display:flex; flex-direction:column; gap:calc(var(--lattice-space) / 2); min-width:0; box-sizing:border-box;
|
|
1427
1452
|
font-size:var(--lattice-font-size); color:var(--lattice-foreground);
|
|
@@ -1494,34 +1519,34 @@ ${s}
|
|
|
1494
1519
|
}
|
|
1495
1520
|
.lat-listbox__status{ padding:calc(var(--lattice-space) / 2) var(--lattice-space); color:var(--lattice-foreground-muted); }
|
|
1496
1521
|
.lat-listbox__status[hidden]{ display:none; }
|
|
1497
|
-
`.trim()}function t(s){const r=s&&s.documentElement;if(!r||r.getAttribute(H))return;r.setAttribute(H,"1");const i=s.createElement("style");i.textContent=x(),(s.head||s.body||r).appendChild(i)}function n(s){return s==null||typeof s!="object"?{value:s,label:s==null?"":String(s),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:s.value,label:s.label!=null?String(s.label):s.title!=null?String(s.title):s.value==null?"":String(s.value),description:s.description!=null?String(s.description):s.subtitle!=null?String(s.subtitle):null,icon:s.icon,avatar:s.avatar,color:s.color,dot:s.dot,disabled:s.disabled===!0,group:s.group!=null?String(s.group):null}}function a(s){if(Array.isArray(s))return{items:s,total:s.length,hasMore:!1};if(s&&typeof s=="object"){const r=Array.isArray(s.items)?s.items:[];return{items:r,total:typeof s.total=="number"?s.total:r.length,hasMore:s.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function m(s,r){return s===r?!0:s!=null&&r!=null&&String(s)===String(r)}function E(s){return String(s)}function _(s,r){const i=s&&s.defaultView;return i&&i.Event?new i.Event(r,{bubbles:!0}):{type:r,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}let c=0;function S(){return c+=1,c}function o(s){return s.__latListboxRegistry||(s.__latListboxRegistry=new Map),s.__latListboxRegistry}let d=null;function l(s,r={}){const i=r.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;i&&(t(i),A(i));const B=typeof r.t=="function"?r.t:re,z=["single","multiple","checkbox"].includes(r.selection)?r.selection:"single",W=z!=="single",b=r.reorder===!0,J=typeof r.connect=="string"&&r.connect!==""?r.connect:null,Q=typeof r.name=="string"&&r.name!==""?r.name:null,ne=r.sort==="asc"||r.sort==="desc"?r.sort:!1,Z=r.groupBy===!0,Y=r.filter===!0,ve=`lat-listbox-${S()}`,se=i.createElement("div");se.className="lat-listbox",r.inForm||(se.setAttribute("data-lattice-standalone","true"),se.setAttribute("data-density",["compact","standard","comfortable"].includes(r.density)?r.density:"standard"));let k=null;Y&&(k=i.createElement("input"),k.type="text",k.className="lat-listbox__filter",k.placeholder=B("form.listbox.filterPlaceholder"),k.setAttribute("aria-label",B("form.listbox.filterPlaceholder")),se.appendChild(k));let I=null,F=null,p=null,D=null,G=null;(b||J)&&(I=i.createElement("div"),I.className="lat-listbox__toolbar",I.setAttribute("role","group"),I.setAttribute("aria-label",B("form.listbox.toolbar")),b&&(F=i.createElement("button"),F.type="button",F.className="lat-listbox__toolbar-btn",F.textContent=B("form.listbox.moveUp"),p=i.createElement("button"),p.type="button",p.className="lat-listbox__toolbar-btn",p.textContent=B("form.listbox.moveDown"),I.appendChild(F),I.appendChild(p)),J&&(D=i.createElement("button"),D.type="button",D.className="lat-listbox__toolbar-btn",D.textContent=B("form.listbox.moveSelected"),G=i.createElement("button"),G.type="button",G.className="lat-listbox__toolbar-btn",G.textContent=B("form.listbox.moveAll"),I.appendChild(D),I.appendChild(G)),se.appendChild(I));const R=i.createElement("div");R.className="lat-listbox__viewport",R.id=`${ve}-lb`,R.setAttribute("role","listbox"),R.setAttribute("tabindex","0"),W&&R.setAttribute("aria-multiselectable","true"),R.setAttribute("aria-label",r.ariaLabel!=null?String(r.ariaLabel):"");const ee=typeof r.rows=="number"&&r.rows>0?r.rows:8;typeof r.height=="number"&&r.height>0?R.style.height=`${r.height}px`:R.style.height=`calc(var(--lattice-row-height) * ${ee})`;let P=null;if(z==="checkbox"){const ae=i.createElement("div");ae.className="lat-listbox__option lat-listbox__select-all",P=i.createElement("input"),P.type="checkbox",P.className="lat-listbox__checkbox",P.id=`${ve}-select-all`,ae.appendChild(P);const pe=i.createElement("label");pe.className="lat-listbox__title",pe.textContent=B("form.listbox.selectAll"),pe.setAttribute("for",P.id),ae.appendChild(pe),R.appendChild(ae)}const N=i.createElement("div");N.className="lat-listbox__spacer",R.appendChild(N);const y=i.createElement("div");y.className="lat-listbox__status",y.setAttribute("role","status"),y.setAttribute("aria-live","polite"),y.hidden=!0,R.appendChild(y),se.appendChild(R);let $=[];const w=new Set;let V=[],oe=-1,ie=null,_e="";const Oe=[],Se=[];let j=0,te="",ce=null,K=null,de=null,ue=0,be=!1,Ce=0,Ae=!1;const ye=[];let me=!1;function we(ae,pe,ge){ae.addEventListener(pe,ge),ye.push(()=>ae.removeEventListener(pe,ge))}function q(){return r.readOnly===!0||r.disabled===!0}function $e(){s.dispatchEvent(_(i,"change"))}function he(){if(z==="single"){const ae=$.find(pe=>w.has(E(pe.value)));return ae?ae.value:null}return b||J?$.map(ae=>ae.value):$.filter(ae=>w.has(E(ae.value))).map(ae=>ae.value)}function Me(){const ae=V.filter(pe=>!pe.disabled);return ae.length>0&&ae.every(pe=>w.has(E(pe.value)))}function Fe(){const ae=_e.trim().toLowerCase();let pe=ae===""?$.slice():$.filter(ge=>ge.label.toLowerCase().includes(ae)||(ge.description||"").toLowerCase().includes(ae));ne&&(pe=pe.slice().sort((ge,Ee)=>ge.label.localeCompare(Ee.label)*(ne==="desc"?-1:1))),V=pe,Oe.length=0,Se.length=0,oe>=V.length&&(oe=V.length-1)}function fe(ae){const pe=[],ge=new Map;for(const Ee of ae){const Be=Ee.group||"";let De=ge.get(Be);De||(De={group:Ee.group||null,items:[]},ge.set(Be,De),pe.push(De)),De.items.push(Ee)}return pe}function xe(ae){return`${ve}-opt-${ae}`}function Te(ae){return ae.description!=null||ae.icon!=null||ae.avatar!=null?v:T}function Ue(ae){const pe=V[ae];return!!pe&&w.has(E(pe.value))}function qe(ae,pe){const ge=i.createElement("div");if(ge.className="lat-listbox__option",ge.setAttribute("role","option"),ge.id=xe(pe),ge.setAttribute("aria-selected",Ue(pe)?"true":"false"),ae.disabled&&ge.setAttribute("aria-disabled","true"),z==="checkbox"){const De=i.createElement("input");De.type="checkbox",De.className="lat-listbox__checkbox",De.tabIndex=-1,De.checked=Ue(pe),De.disabled=ae.disabled||q(),ge.appendChild(De)}const Ee=C(i,ae,r.render);if(Ee)ge.appendChild(Ee);else{const De=L(i,ae);De&&ge.appendChild(De);const Re=i.createElement("span");Re.className="lat-listbox__text";const Xe=i.createElement("span");if(Xe.className="lat-listbox__title",Xe.textContent=ae.label,Re.appendChild(Xe),ae.description!=null){const dt=i.createElement("span");dt.className="lat-listbox__subtitle",dt.textContent=ae.description,Re.appendChild(dt)}ge.appendChild(Re)}return(b||J)&&!ae.disabled&&!q()&&(ge.draggable=!0,we(ge,"dragstart",()=>Qe(ae)),we(ge,"dragover",De=>{De.preventDefault()}),we(ge,"drop",De=>{De.preventDefault(),Ge(ae)})),we(ge,"click",De=>{ae.disabled||q()||(R.focus(),it(pe,{shift:De.shiftKey,ctrl:De.ctrlKey||De.metaKey,touch:De.pointerType==="touch"}))}),ge}function Qe(ae){const pe=w.has(E(ae.value))?$.filter(ge=>w.has(E(ge.value))).map(ge=>ge.value):[ae.value];d={source:lt,values:pe}}function Ge(ae){if(!d||q())return;const{source:pe,values:ge}=d;d=null;const Ee=$.findIndex(Be=>m(Be.value,ae.value));if(Ee!==-1){if(pe===lt){if(!b)return;Je(ge,Ee),nt(),$e();return}if(J){const Be=pe.__removeValues(ge);if(Be.length===0)return;$.splice(Ee,0,...Be);for(const De of Be)w.add(E(De.value));Fe(),nt(),$e()}}}function Je(ae,pe){const ge=new Set(ae.map(E)),Ee=$.filter(Xe=>ge.has(E(Xe.value)));if(Ee.length===0)return;const Be=$[pe]?E($[pe].value):null,De=$.filter(Xe=>!ge.has(E(Xe.value)));let Re=Be==null?De.length:De.findIndex(Xe=>E(Xe.value)===Be);Re===-1&&(Re=De.length),De.splice(Re,0,...Ee),$=De}function Le(ae){const pe=new Set(ae.map(E)),ge=$.filter(Ee=>pe.has(E(Ee.value)));if(ge.length===0)return ge;$=$.filter(Ee=>!pe.has(E(Ee.value)));for(const Ee of ge)w.delete(E(Ee.value));return Fe(),nt(),$e(),ge}function We(ae){ae.length!==0&&($=$.concat(ae),Fe(),nt(),$e())}function Ze(){return!J||!i?null:o(i).get(J)||null}function at(){const ae=Ze();if(!ae||q())return;const pe=$.filter(Ee=>w.has(E(Ee.value))).map(Ee=>Ee.value);if(pe.length===0)return;const ge=Le(pe);ae.__receiveItems(ge)}function st(){const ae=Ze();if(!ae||q()||$.length===0)return;const pe=Le($.map(ge=>ge.value));ae.__receiveItems(pe)}function rt(ae){if(q())return;const pe=[];for(let ge=0;ge<$.length;ge++)w.has(E($[ge].value))&&pe.push(ge);if(pe.length!==0){if(ae<0)for(const ge of pe)ge===0||w.has(E($[ge-1].value))||([$[ge-1],$[ge]]=[$[ge],$[ge-1]]);else for(let ge=pe.length-1;ge>=0;ge--){const Ee=pe[ge];Ee===$.length-1||w.has(E($[Ee+1].value))||([$[Ee+1],$[Ee]]=[$[Ee],$[Ee+1]])}Fe(),nt(),$e()}}function nt(){for(;N.firstChild;)N.removeChild(N.firstChild);N.style.height="",N.style.position="",Z?Et():et(),ct(),St(),I&&_t()}function Et(){let ae=0;for(const pe of fe(V))if(pe.group!=null){const ge=i.createElement("div");ge.setAttribute("role","group");const Ee=i.createElement("div");Ee.className="lat-listbox__group-header",Ee.id=`${ve}-grp-${ae}`,Ee.textContent=pe.group,ge.setAttribute("aria-labelledby",Ee.id),ge.appendChild(Ee);for(const Be of pe.items)ge.appendChild(qe(Be,ae)),ae+=1;N.appendChild(ge)}else for(const ge of pe.items)N.appendChild(qe(ge,ae)),ae+=1}function et(){if(N.style.position="relative",j=R.clientHeight||j||240,V.length===0){N.style.height="0px";return}for(let Re=0;Re<V.length;Re++)Oe[Re]==null&&(Oe[Re]=Te(V[Re]));Se.length=0,Se[0]=0;for(let Re=1;Re<=V.length;Re++)Se[Re]=Se[Re-1]+Oe[Re-1];N.style.height=`${Se[V.length]}px`;const ae=R.scrollTop,pe=ae,ge=ae+j;let Ee=0;for(;Ee<V.length-1&&Se[Ee+1]<pe;)Ee+=1;let Be=Ee;for(;Be<V.length&&Se[Be]<ge;)Be+=1;for(Be=Math.min(V.length,Be+2);N.firstChild;)N.removeChild(N.firstChild);for(let Re=Ee;Re<Be;Re++){const Xe=qe(V[Re],Re);Xe.style.position="absolute",Xe.style.insetInlineStart="0",Xe.style.insetInlineEnd="0",Xe.style.top="0",Xe.style.transform=`translateY(${Se[Re]}px)`,N.appendChild(Xe)}let De=!1;for(let Re=Ee;Re<Be;Re++){const Xe=i.getElementById(xe(Re));if(!Xe)continue;const dt=Xe.getBoundingClientRect().height;dt>0&&Math.abs(dt-Oe[Re])>.5&&(Oe[Re]=dt,De=!0)}De&&et()}function Ye(){if(oe<0||Z)return;const ae=Se[oe]||0,pe=ae+(Oe[oe]||Te(V[oe]));ae<R.scrollTop?R.scrollTop=ae:pe>R.scrollTop+j&&(R.scrollTop=pe-j),nt()}function ct(){V.length===0?(y.hidden=!1,y.textContent=B("form.listbox.empty")):(y.hidden=!0,y.textContent="")}function ft(){for(const ae of N.querySelectorAll('.lat-listbox__option[role="option"]')){const pe=ae.id||"",ge=Number(pe.slice(`${ve}-opt-`.length));if(Number.isNaN(ge))continue;const Ee=V[ge];if(!Ee)continue;const Be=w.has(E(Ee.value));ae.setAttribute("aria-selected",Be?"true":"false");const De=ae.querySelector(".lat-listbox__checkbox");De&&(De.checked=Be)}St(),I&&_t()}function St(){if(!P)return;const ae=V.filter(ge=>!ge.disabled),pe=ae.filter(ge=>w.has(E(ge.value))).length;P.checked=ae.length>0&&pe===ae.length,P.indeterminate=pe>0&&pe<ae.length,P.disabled=q()||ae.length===0}function _t(){const ae=w.size>0,pe=q();F&&(F.disabled=pe||!ae),p&&(p.disabled=pe||!ae),D&&(D.disabled=pe||!ae),G&&(G.disabled=pe||$.length===0)}function ot(ae){oe=ae,ae>=0&&ae<V.length?R.setAttribute("aria-activedescendant",xe(ae)):R.removeAttribute("aria-activedescendant")}function gt(ae){for(let pe=Math.max(0,ae);pe<V.length;pe++)if(!V[pe].disabled)return pe;return-1}function tt(ae){for(let pe=Math.min(V.length-1,ae);pe>=0;pe--)if(!V[pe].disabled)return pe;return-1}function it(ae,pe={}){const ge=V[ae];if(!ge||ge.disabled||q())return;ot(ae);const Ee=new Set(w);if(z==="single")w.clear(),w.add(E(ge.value)),ie=ae;else if(z==="checkbox")w.has(E(ge.value))?w.delete(E(ge.value)):w.add(E(ge.value)),ie=ae;else if(pe.shift&&ie!=null){const Be=Math.min(ie,ae),De=Math.max(ie,ae);w.clear();for(let Re=Be;Re<=De;Re++)V[Re].disabled||w.add(E(V[Re].value))}else pe.ctrl||pe.touch?(w.has(E(ge.value))?w.delete(E(ge.value)):w.add(E(ge.value)),ie=ae):(w.clear(),w.add(E(ge.value)),ie=ae);Ye(),ft(),Ot(Ee,w)||$e()}function Ot(ae,pe){if(ae.size!==pe.size)return!1;for(const ge of ae)if(!pe.has(ge))return!1;return!0}function pt(){if(q())return;const ae=!Me();for(const pe of V)pe.disabled||(ae?w.add(E(pe.value)):w.delete(E(pe.value)));ft(),$e()}function Nt(ae,pe){if(V.length===0)return;const ge=oe<0?ae>0?-1:V.length:oe,Ee=ae>0?gt(ge+1):tt(ge-1);if(Ee!==-1){if(ot(Ee),Ye(),z==="single"){it(Ee,{});return}pe&&W&&(ie==null&&(ie=Ee),it(Ee,{shift:!0}))}}function vt(ae){ce&&clearTimeout(ce),te+=ae.toLowerCase(),ce=setTimeout(()=>{te="",ce=null},h);const pe=oe>-1?oe+1:0;let ge=-1;for(let Ee=pe;Ee<V.length;Ee++)if(!V[Ee].disabled&&V[Ee].label.toLowerCase().startsWith(te)){ge=Ee;break}if(ge===-1){for(let Ee=0;Ee<pe;Ee++)if(!V[Ee].disabled&&V[Ee].label.toLowerCase().startsWith(te)){ge=Ee;break}}ge!==-1&&(ot(ge),Ye())}function Lt(ae){if(ae.altKey&&ae.key==="ArrowUp"&&b)ae.preventDefault(),rt(-1);else if(ae.altKey&&ae.key==="ArrowDown"&&b)ae.preventDefault(),rt(1);else if(ae.key==="ArrowDown")ae.preventDefault(),Nt(1,ae.shiftKey);else if(ae.key==="ArrowUp")ae.preventDefault(),Nt(-1,ae.shiftKey);else if(ae.key==="Home"){ae.preventDefault();const pe=gt(0);pe!==-1&&(ot(pe),Ye(),z==="single"&&it(pe,{}))}else if(ae.key==="End"){ae.preventDefault();const pe=tt(V.length-1);pe!==-1&&(ot(pe),Ye(),z==="single"&&it(pe,{}))}else if(ae.key===" ")ae.preventDefault(),oe>=0&&it(oe,{ctrl:W});else if((ae.ctrlKey||ae.metaKey)&&(ae.key==="a"||ae.key==="A")&&W){if(ae.preventDefault(),q())return;for(const pe of V)pe.disabled||w.add(E(pe.value));ft(),$e()}else ae.key.length===1&&!ae.ctrlKey&&!ae.metaKey&&!ae.altKey&&vt(ae.key)}function Pt(){if(_e=k.value||"",typeof r.load!="function"){Fe(),nt();return}K&&clearTimeout(K),K=setTimeout(()=>ut(),u)}function ut(){if(me||typeof r.load!="function")return;be=!0,ue+=1;const ae=ue;de&&de.abort(),de=typeof AbortController<"u"?new AbortController:null;let pe;try{pe=r.load({search:_e,page:0,signal:de?de.signal:void 0})}catch{be=!1;return}const ge=Ee=>{if(me||ae!==ue)return;be=!1;const Be=a(Ee);$=Be.items.map(n),Ae=Be.hasMore,Ce=1,Fe(),nt()};pe&&typeof pe.then=="function"?pe.then(ge,()=>{be=!1}):ge(pe)}we(R,"keydown",Lt),we(R,"scroll",()=>{Z||et()}),k&&we(k,"input",Pt),F&&we(F,"click",()=>rt(-1)),p&&we(p,"click",()=>rt(1)),D&&we(D,"click",()=>at()),G&&we(G,"click",()=>st()),P&&we(P,"change",()=>pt()),we(R,"dragover",ae=>{d&&ae.preventDefault()}),we(R,"drop",ae=>{if(ae.preventDefault(),!d||d.source===lt||!J)return;const pe=d.source.__removeValues(d.values);d=null,We(pe)});function Mt(ae){if(w.clear(),z==="single")ae!=null&&w.add(E(ae));else if((b||J)&&Array.isArray(ae)){const pe=new Map($.map(ge=>[E(ge.value),ge]));$=ae.map(ge=>pe.get(E(ge))||n(ge));for(const ge of $)w.add(E(ge.value))}else{const pe=Array.isArray(ae)?ae:ae==null?[]:[ae];for(const ge of pe)w.add(E(ge))}Fe(),nt()}typeof r.load!="function"&&($=(Array.isArray(r.options)?r.options:[]).map(n)),Fe(),Mt(r.value),typeof r.load=="function"&&ut();const lt={el:s,root:se,viewport:R,getValue:he,setValue(ae){return Mt(ae),lt},focus(){return R.focus(),lt},blur(){return R.blur(),lt},setDisabled(ae){r.disabled=ae,R.setAttribute("aria-disabled",ae?"true":"false"),k&&(k.disabled=ae),St(),_t()},setReadOnly(ae){r.readOnly=ae,ae?R.setAttribute("aria-readonly","true"):R.removeAttribute("aria-readonly"),St(),_t()},__removeValues:Le,__receiveItems:We,destroy(){me=!0,ce&&clearTimeout(ce),K&&clearTimeout(K),de&&de.abort();for(const ae of ye.splice(0))ae();if(i&&Q){const ae=o(i);ae.get(Q)===lt&&ae.delete(Q)}for(;se.firstChild;)se.removeChild(se.firstChild)}};return i&&Q&&o(i).set(Q,lt),nt(),s.appendChild(se),s.__listbox=lt,lt}U("listbox",{kind:"field",build(s,r){const i=s.props||{},B=r.doc.createElement("div");return l(B,{options:s.options,load:i.load,selection:i.selection,value:s.value,filter:i.filter===!0,groupBy:i.groupBy===!0,sort:i.sort,render:i.render,reorder:i.reorder===!0,connect:i.connect,name:s.name,min:s.min,max:s.max,height:i.height,rows:s.rows,disabled:s.disabled===!0,readOnly:s.readOnly===!0,ariaLabel:s.label,t:r.t,doc:r.doc,inForm:!0}),B.__listboxT=r.t,r.disposers.push(()=>{B.__listbox&&B.__listbox.destroy()}),B},read(s){return s.__listbox?s.__listbox.getValue():null},write(s,r){s.__listbox&&s.__listbox.setValue(r)},validate(s,r,i){if(!s.__listbox)return null;const z=s.__listboxT||re,W=Array.isArray(i)?i.length:i==null?0:1,b=r.min!=null&&Number.isFinite(Number(r.min))?Number(r.min):null,J=r.max!=null&&Number.isFinite(Number(r.max))?Number(r.max):null;return b!=null&&W<b?{code:"min",message:z("form.listbox.min",{min:String(b)})}:J!=null&&W>J?{code:"max",message:z("form.listbox.max",{max:String(J)})}:null},state(s,r){s.__listbox&&(s.__listbox.setDisabled(r.disabled===!0),s.__listbox.setReadOnly(r.readOnly===!0))},focus(s){s.__listbox&&s.__listbox.focus()},blur(s){s.__listbox&&s.__listbox.blur()}})}),je("packages/modules/form/controls/options.js",function(M,X){"use strict";Object.defineProperty(M,"normalizeOptions",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"resolveChoiceLayout",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"choiceLayoutCss",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return C}});const U=X("packages/modules/form/styles.js").NS;function O(A){return Array.isArray(A)?A.map(H=>{if(typeof H=="string")return{value:H,label:H};if(H&&typeof H=="object"){const T=H.value==null?"":String(H.value),v=H.label!=null?String(H.label):H.text!=null?String(H.text):T;return{value:T,label:v}}return{value:"",label:""}}):[]}function re(A){const H=A&&A.props?A.props:{},T=A&&A.orientation!=null?A.orientation:H.orientation;let v=A&&A.columns!=null?A.columns:H.columns;return v=typeof v=="number"&&Number.isFinite(v)&&v>=1?Math.floor(v):0,v>0?{orientation:"vertical",columns:v}:{orientation:T==="horizontal"?"horizontal":"vertical",columns:0}}function g(){return`
|
|
1498
|
-
.${
|
|
1499
|
-
.${
|
|
1522
|
+
`.trim()}function t(a){const r=a&&a.documentElement;if(!r||r.getAttribute(B))return;r.setAttribute(B,"1");const s=a.createElement("style");s.textContent=w(),(a.head||a.body||r).appendChild(s)}function o(a){return a==null||typeof a!="object"?{value:a,label:a==null?"":String(a),description:null,icon:null,avatar:null,color:null,dot:null,disabled:!1,group:null}:{value:a.value,label:a.label!=null?String(a.label):a.title!=null?String(a.title):a.value==null?"":String(a.value),description:a.description!=null?String(a.description):a.subtitle!=null?String(a.subtitle):null,icon:a.icon,avatar:a.avatar,color:a.color,dot:a.dot,disabled:a.disabled===!0,group:a.group!=null?String(a.group):null}}function l(a){if(Array.isArray(a))return{items:a,total:a.length,hasMore:!1};if(a&&typeof a=="object"){const r=Array.isArray(a.items)?a.items:[];return{items:r,total:typeof a.total=="number"?a.total:r.length,hasMore:a.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function b(a,r){return a===r?!0:a!=null&&r!=null&&String(a)===String(r)}function p(a){return String(a)}function m(a,r){const s=a&&a.defaultView;return s&&s.Event?new s.Event(r,{bubbles:!0}):{type:r,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}let f=0;function N(){return f+=1,f}function c(a){return a.__latListboxRegistry||(a.__latListboxRegistry=new Map),a.__latListboxRegistry}let i=null;function n(a,r={}){const s=r.doc||a&&a.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;s&&(t(s),A(s));const M=typeof r.t=="function"?r.t:ee,D=["single","multiple","checkbox"].includes(r.selection)?r.selection:"single",Y=D!=="single",U=r.reorder===!0,Q=typeof r.connect=="string"&&r.connect!==""?r.connect:null,oe=typeof r.name=="string"&&r.name!==""?r.name:null,F=r.sort==="asc"||r.sort==="desc"?r.sort:!1,K=r.groupBy===!0,W=r.filter===!0,ve=`lat-listbox-${N()}`,le=s.createElement("div");le.className="lat-listbox",r.inForm||(le.setAttribute("data-lattice-standalone","true"),le.setAttribute("data-density",["compact","standard","comfortable"].includes(r.density)?r.density:"standard"));let x=null;W&&(x=s.createElement("input"),x.type="text",x.className="lat-listbox__filter",x.placeholder=M("form.listbox.filterPlaceholder"),x.setAttribute("aria-label",M("form.listbox.filterPlaceholder")),le.appendChild(x));let L=null,I=null,g=null,T=null,X=null;(U||Q)&&(L=s.createElement("div"),L.className="lat-listbox__toolbar",L.setAttribute("role","group"),L.setAttribute("aria-label",M("form.listbox.toolbar")),U&&(I=s.createElement("button"),I.type="button",I.className="lat-listbox__toolbar-btn",I.textContent=M("form.listbox.moveUp"),g=s.createElement("button"),g.type="button",g.className="lat-listbox__toolbar-btn",g.textContent=M("form.listbox.moveDown"),L.appendChild(I),L.appendChild(g)),Q&&(T=s.createElement("button"),T.type="button",T.className="lat-listbox__toolbar-btn",T.textContent=M("form.listbox.moveSelected"),X=s.createElement("button"),X.type="button",X.className="lat-listbox__toolbar-btn",X.textContent=M("form.listbox.moveAll"),L.appendChild(T),L.appendChild(X)),le.appendChild(L));const z=s.createElement("div");z.className="lat-listbox__viewport",z.id=`${ve}-lb`,z.setAttribute("role","listbox"),z.setAttribute("tabindex","0"),Y&&z.setAttribute("aria-multiselectable","true"),z.setAttribute("aria-label",r.ariaLabel!=null?String(r.ariaLabel):"");const te=typeof r.rows=="number"&&r.rows>0?r.rows:8;typeof r.height=="number"&&r.height>0?z.style.height=`${r.height}px`:z.style.height=`calc(var(--lattice-row-height) * ${te})`;let re=null;if(D==="checkbox"){const ae=s.createElement("div");ae.className="lat-listbox__option lat-listbox__select-all",re=s.createElement("input"),re.type="checkbox",re.className="lat-listbox__checkbox",re.id=`${ve}-select-all`,ae.appendChild(re);const pe=s.createElement("label");pe.className="lat-listbox__title",pe.textContent=M("form.listbox.selectAll"),pe.setAttribute("for",re.id),ae.appendChild(pe),z.appendChild(ae)}const j=s.createElement("div");j.className="lat-listbox__spacer",z.appendChild(j);const k=s.createElement("div");k.className="lat-listbox__status",k.setAttribute("role","status"),k.setAttribute("aria-live","polite"),k.hidden=!0,z.appendChild(k),le.appendChild(z);let Z=[];const H=new Set;let E=[],G=-1,R=null,ce="";const me=[],xe=[];let C=0,ne="",se=null,J=null,ue=null,he=0,be=!1,Ee=0,Oe=!1;const Ae=[];let Ce=!1;function ye(ae,pe,_e){ae.addEventListener(pe,_e),Ae.push(()=>ae.removeEventListener(pe,_e))}function ke(){return r.readOnly===!0||r.disabled===!0}function Le(){a.dispatchEvent(m(s,"change"))}function De(){if(D==="single"){const ae=Z.find(pe=>H.has(p(pe.value)));return ae?ae.value:null}return U||Q?Z.map(ae=>ae.value):Z.filter(ae=>H.has(p(ae.value))).map(ae=>ae.value)}function He(){const ae=E.filter(pe=>!pe.disabled);return ae.length>0&&ae.every(pe=>H.has(p(pe.value)))}function de(){const ae=ce.trim().toLowerCase();let pe=ae===""?Z.slice():Z.filter(_e=>_e.label.toLowerCase().includes(ae)||(_e.description||"").toLowerCase().includes(ae));F&&(pe=pe.slice().sort((_e,je)=>_e.label.localeCompare(je.label)*(F==="desc"?-1:1))),E=pe,me.length=0,xe.length=0,G>=E.length&&(G=E.length-1)}function fe(ae){const pe=[],_e=new Map;for(const je of ae){const Ve=je.group||"";let Ie=_e.get(Ve);Ie||(Ie={group:je.group||null,items:[]},_e.set(Ve,Ie),pe.push(Ie)),Ie.items.push(je)}return pe}function we(ae){return`${ve}-opt-${ae}`}function Se(ae){return ae.description!=null||ae.icon!=null||ae.avatar!=null?v:O}function Te(ae){const pe=E[ae];return!!pe&&H.has(p(pe.value))}function Pe(ae,pe){const _e=s.createElement("div");if(_e.className="lat-listbox__option",_e.setAttribute("role","option"),_e.id=we(pe),_e.setAttribute("aria-selected",Te(pe)?"true":"false"),ae.disabled&&_e.setAttribute("aria-disabled","true"),D==="checkbox"){const Ie=s.createElement("input");Ie.type="checkbox",Ie.className="lat-listbox__checkbox",Ie.tabIndex=-1,Ie.checked=Te(pe),Ie.disabled=ae.disabled||ke(),_e.appendChild(Ie)}const je=y(s,ae,r.render);if(je)_e.appendChild(je);else{const Ie=P(s,ae);Ie&&_e.appendChild(Ie);const Fe=s.createElement("span");Fe.className="lat-listbox__text";const Ue=s.createElement("span");if(Ue.className="lat-listbox__title",Ue.textContent=ae.label,Fe.appendChild(Ue),ae.description!=null){const bt=s.createElement("span");bt.className="lat-listbox__subtitle",bt.textContent=ae.description,Fe.appendChild(bt)}_e.appendChild(Fe)}return(U||Q)&&!ae.disabled&&!ke()&&(_e.draggable=!0,ye(_e,"dragstart",()=>tt(ae)),ye(_e,"dragover",Ie=>{Ie.preventDefault()}),ye(_e,"drop",Ie=>{Ie.preventDefault(),Ze(ae)})),ye(_e,"click",Ie=>{ae.disabled||ke()||(z.focus(),at(pe,{shift:Ie.shiftKey,ctrl:Ie.ctrlKey||Ie.metaKey,touch:Ie.pointerType==="touch"}))}),_e}function tt(ae){const pe=H.has(p(ae.value))?Z.filter(_e=>H.has(p(_e.value))).map(_e=>_e.value):[ae.value];i={source:ct,values:pe}}function Ze(ae){if(!i||ke())return;const{source:pe,values:_e}=i;i=null;const je=Z.findIndex(Ve=>b(Ve.value,ae.value));if(je!==-1){if(pe===ct){if(!U)return;Je(_e,je),qe(),Le();return}if(Q){const Ve=pe.__removeValues(_e);if(Ve.length===0)return;Z.splice(je,0,...Ve);for(const Ie of Ve)H.add(p(Ie.value));de(),qe(),Le()}}}function Je(ae,pe){const _e=new Set(ae.map(p)),je=Z.filter(Ue=>_e.has(p(Ue.value)));if(je.length===0)return;const Ve=Z[pe]?p(Z[pe].value):null,Ie=Z.filter(Ue=>!_e.has(p(Ue.value)));let Fe=Ve==null?Ie.length:Ie.findIndex(Ue=>p(Ue.value)===Ve);Fe===-1&&(Fe=Ie.length),Ie.splice(Fe,0,...je),Z=Ie}function Be(ae){const pe=new Set(ae.map(p)),_e=Z.filter(je=>pe.has(p(je.value)));if(_e.length===0)return _e;Z=Z.filter(je=>!pe.has(p(je.value)));for(const je of _e)H.delete(p(je.value));return de(),qe(),Le(),_e}function Qe(ae){ae.length!==0&&(Z=Z.concat(ae),de(),qe(),Le())}function lt(){return!Q||!s?null:c(s).get(Q)||null}function ot(){const ae=lt();if(!ae||ke())return;const pe=Z.filter(je=>H.has(p(je.value))).map(je=>je.value);if(pe.length===0)return;const _e=Be(pe);ae.__receiveItems(_e)}function Ye(){const ae=lt();if(!ae||ke()||Z.length===0)return;const pe=Be(Z.map(_e=>_e.value));ae.__receiveItems(pe)}function Xe(ae){if(ke())return;const pe=[];for(let _e=0;_e<Z.length;_e++)H.has(p(Z[_e].value))&&pe.push(_e);if(pe.length!==0){if(ae<0)for(const _e of pe)_e===0||H.has(p(Z[_e-1].value))||([Z[_e-1],Z[_e]]=[Z[_e],Z[_e-1]]);else for(let _e=pe.length-1;_e>=0;_e--){const je=pe[_e];je===Z.length-1||H.has(p(Z[je+1].value))||([Z[je+1],Z[je]]=[Z[je],Z[je+1]])}de(),qe(),Le()}}function qe(){for(;j.firstChild;)j.removeChild(j.firstChild);j.style.height="",j.style.position="",K?_t():st(),Ot(),et(),L&&it()}function _t(){let ae=0;for(const pe of fe(E))if(pe.group!=null){const _e=s.createElement("div");_e.setAttribute("role","group");const je=s.createElement("div");je.className="lat-listbox__group-header",je.id=`${ve}-grp-${ae}`,je.textContent=pe.group,_e.setAttribute("aria-labelledby",je.id),_e.appendChild(je);for(const Ve of pe.items)_e.appendChild(Pe(Ve,ae)),ae+=1;j.appendChild(_e)}else for(const _e of pe.items)j.appendChild(Pe(_e,ae)),ae+=1}function st(){if(j.style.position="relative",C=z.clientHeight||C||240,E.length===0){j.style.height="0px";return}for(let Fe=0;Fe<E.length;Fe++)me[Fe]==null&&(me[Fe]=Se(E[Fe]));xe.length=0,xe[0]=0;for(let Fe=1;Fe<=E.length;Fe++)xe[Fe]=xe[Fe-1]+me[Fe-1];j.style.height=`${xe[E.length]}px`;const ae=z.scrollTop,pe=ae,_e=ae+C;let je=0;for(;je<E.length-1&&xe[je+1]<pe;)je+=1;let Ve=je;for(;Ve<E.length&&xe[Ve]<_e;)Ve+=1;for(Ve=Math.min(E.length,Ve+2);j.firstChild;)j.removeChild(j.firstChild);for(let Fe=je;Fe<Ve;Fe++){const Ue=Pe(E[Fe],Fe);Ue.style.position="absolute",Ue.style.insetInlineStart="0",Ue.style.insetInlineEnd="0",Ue.style.top="0",Ue.style.transform=`translateY(${xe[Fe]}px)`,j.appendChild(Ue)}let Ie=!1;for(let Fe=je;Fe<Ve;Fe++){const Ue=s.getElementById(we(Fe));if(!Ue)continue;const bt=Ue.getBoundingClientRect().height;bt>0&&Math.abs(bt-me[Fe])>.5&&(me[Fe]=bt,Ie=!0)}Ie&&st()}function pt(){if(G<0||K)return;const ae=xe[G]||0,pe=ae+(me[G]||Se(E[G]));ae<z.scrollTop?z.scrollTop=ae:pe>z.scrollTop+C&&(z.scrollTop=pe-C),qe()}function Ot(){E.length===0?(k.hidden=!1,k.textContent=M("form.listbox.empty")):(k.hidden=!0,k.textContent="")}function rt(){for(const ae of j.querySelectorAll('.lat-listbox__option[role="option"]')){const pe=ae.id||"",_e=Number(pe.slice(`${ve}-opt-`.length));if(Number.isNaN(_e))continue;const je=E[_e];if(!je)continue;const Ve=H.has(p(je.value));ae.setAttribute("aria-selected",Ve?"true":"false");const Ie=ae.querySelector(".lat-listbox__checkbox");Ie&&(Ie.checked=Ve)}et(),L&&it()}function et(){if(!re)return;const ae=E.filter(_e=>!_e.disabled),pe=ae.filter(_e=>H.has(p(_e.value))).length;re.checked=ae.length>0&&pe===ae.length,re.indeterminate=pe>0&&pe<ae.length,re.disabled=ke()||ae.length===0}function it(){const ae=H.size>0,pe=ke();I&&(I.disabled=pe||!ae),g&&(g.disabled=pe||!ae),T&&(T.disabled=pe||!ae),X&&(X.disabled=pe||Z.length===0)}function ut(ae){G=ae,ae>=0&&ae<E.length?z.setAttribute("aria-activedescendant",we(ae)):z.removeAttribute("aria-activedescendant")}function Lt(ae){for(let pe=Math.max(0,ae);pe<E.length;pe++)if(!E[pe].disabled)return pe;return-1}function jt(ae){for(let pe=Math.min(E.length-1,ae);pe>=0;pe--)if(!E[pe].disabled)return pe;return-1}function at(ae,pe={}){const _e=E[ae];if(!_e||_e.disabled||ke())return;ut(ae);const je=new Set(H);if(D==="single")H.clear(),H.add(p(_e.value)),R=ae;else if(D==="checkbox")H.has(p(_e.value))?H.delete(p(_e.value)):H.add(p(_e.value)),R=ae;else if(pe.shift&&R!=null){const Ve=Math.min(R,ae),Ie=Math.max(R,ae);H.clear();for(let Fe=Ve;Fe<=Ie;Fe++)E[Fe].disabled||H.add(p(E[Fe].value))}else pe.ctrl||pe.touch?(H.has(p(_e.value))?H.delete(p(_e.value)):H.add(p(_e.value)),R=ae):(H.clear(),H.add(p(_e.value)),R=ae);pt(),rt(),dt(je,H)||Le()}function dt(ae,pe){if(ae.size!==pe.size)return!1;for(const _e of ae)if(!pe.has(_e))return!1;return!0}function wt(){if(ke())return;const ae=!He();for(const pe of E)pe.disabled||(ae?H.add(p(pe.value)):H.delete(p(pe.value)));rt(),Le()}function nt(ae,pe){if(E.length===0)return;const _e=G<0?ae>0?-1:E.length:G,je=ae>0?Lt(_e+1):jt(_e-1);if(je!==-1){if(ut(je),pt(),D==="single"){at(je,{});return}pe&&Y&&(R==null&&(R=je),at(je,{shift:!0}))}}function vt(ae){se&&clearTimeout(se),ne+=ae.toLowerCase(),se=setTimeout(()=>{ne="",se=null},_);const pe=G>-1?G+1:0;let _e=-1;for(let je=pe;je<E.length;je++)if(!E[je].disabled&&E[je].label.toLowerCase().startsWith(ne)){_e=je;break}if(_e===-1){for(let je=0;je<pe;je++)if(!E[je].disabled&&E[je].label.toLowerCase().startsWith(ne)){_e=je;break}}_e!==-1&&(ut(_e),pt())}function Nt(ae){if(ae.altKey&&ae.key==="ArrowUp"&&U)ae.preventDefault(),Xe(-1);else if(ae.altKey&&ae.key==="ArrowDown"&&U)ae.preventDefault(),Xe(1);else if(ae.key==="ArrowDown")ae.preventDefault(),nt(1,ae.shiftKey);else if(ae.key==="ArrowUp")ae.preventDefault(),nt(-1,ae.shiftKey);else if(ae.key==="Home"){ae.preventDefault();const pe=Lt(0);pe!==-1&&(ut(pe),pt(),D==="single"&&at(pe,{}))}else if(ae.key==="End"){ae.preventDefault();const pe=jt(E.length-1);pe!==-1&&(ut(pe),pt(),D==="single"&&at(pe,{}))}else if(ae.key===" ")ae.preventDefault(),G>=0&&at(G,{ctrl:Y});else if((ae.ctrlKey||ae.metaKey)&&(ae.key==="a"||ae.key==="A")&&Y){if(ae.preventDefault(),ke())return;for(const pe of E)pe.disabled||H.add(p(pe.value));rt(),Le()}else ae.key.length===1&&!ae.ctrlKey&&!ae.metaKey&&!ae.altKey&&vt(ae.key)}function mt(){if(ce=x.value||"",typeof r.load!="function"){de(),qe();return}J&&clearTimeout(J),J=setTimeout(()=>Tt(),u)}function Tt(){if(Ce||typeof r.load!="function")return;be=!0,he+=1;const ae=he;ue&&ue.abort(),ue=typeof AbortController<"u"?new AbortController:null;let pe;try{pe=r.load({search:ce,page:0,signal:ue?ue.signal:void 0})}catch{be=!1;return}const _e=je=>{if(Ce||ae!==he)return;be=!1;const Ve=l(je);Z=Ve.items.map(o),Oe=Ve.hasMore,Ee=1,de(),qe()};pe&&typeof pe.then=="function"?pe.then(_e,()=>{be=!1}):_e(pe)}ye(z,"keydown",Nt),ye(z,"scroll",()=>{K||st()}),x&&ye(x,"input",mt),I&&ye(I,"click",()=>Xe(-1)),g&&ye(g,"click",()=>Xe(1)),T&&ye(T,"click",()=>ot()),X&&ye(X,"click",()=>Ye()),re&&ye(re,"change",()=>wt()),ye(z,"dragover",ae=>{i&&ae.preventDefault()}),ye(z,"drop",ae=>{if(ae.preventDefault(),!i||i.source===ct||!Q)return;const pe=i.source.__removeValues(i.values);i=null,Qe(pe)});function yt(ae){if(H.clear(),D==="single")ae!=null&&H.add(p(ae));else if((U||Q)&&Array.isArray(ae)){const pe=new Map(Z.map(_e=>[p(_e.value),_e]));Z=ae.map(_e=>pe.get(p(_e))||o(_e));for(const _e of Z)H.add(p(_e.value))}else{const pe=Array.isArray(ae)?ae:ae==null?[]:[ae];for(const _e of pe)H.add(p(_e))}de(),qe()}typeof r.load!="function"&&(Z=(Array.isArray(r.options)?r.options:[]).map(o)),de(),yt(r.value),typeof r.load=="function"&&Tt();const ct={el:a,root:le,viewport:z,getValue:De,setValue(ae){return yt(ae),ct},focus(){return z.focus(),ct},blur(){return z.blur(),ct},setDisabled(ae){r.disabled=ae,z.setAttribute("aria-disabled",ae?"true":"false"),x&&(x.disabled=ae),et(),it()},setReadOnly(ae){r.readOnly=ae,ae?z.setAttribute("aria-readonly","true"):z.removeAttribute("aria-readonly"),et(),it()},__removeValues:Be,__receiveItems:Qe,destroy(){Ce=!0,se&&clearTimeout(se),J&&clearTimeout(J),ue&&ue.abort();for(const ae of Ae.splice(0))ae();if(s&&oe){const ae=c(s);ae.get(oe)===ct&&ae.delete(oe)}for(;le.firstChild;)le.removeChild(le.firstChild)}};return s&&oe&&c(s).set(oe,ct),qe(),a.appendChild(le),a.__listbox=ct,ct}V("listbox",{kind:"field",build(a,r){const s=a.props||{},M=r.doc.createElement("div");return n(M,{options:a.options,load:s.load,selection:s.selection,value:a.value,filter:s.filter===!0,groupBy:s.groupBy===!0,sort:s.sort,render:s.render,reorder:s.reorder===!0,connect:s.connect,name:a.name,min:a.min,max:a.max,height:s.height,rows:a.rows,disabled:a.disabled===!0,readOnly:a.readOnly===!0,ariaLabel:a.label,t:r.t,doc:r.doc,inForm:!0}),M.__listboxT=r.t,r.disposers.push(()=>{M.__listbox&&M.__listbox.destroy()}),M},read(a){return a.__listbox?a.__listbox.getValue():null},write(a,r){a.__listbox&&a.__listbox.setValue(r)},validate(a,r,s){if(!a.__listbox)return null;const D=a.__listboxT||ee,Y=Array.isArray(s)?s.length:s==null?0:1,U=r.min!=null&&Number.isFinite(Number(r.min))?Number(r.min):null,Q=r.max!=null&&Number.isFinite(Number(r.max))?Number(r.max):null;return U!=null&&Y<U?{code:"min",message:D("form.listbox.min",{min:String(U)})}:Q!=null&&Y>Q?{code:"max",message:D("form.listbox.max",{max:String(Q)})}:null},state(a,r){a.__listbox&&(a.__listbox.setDisabled(r.disabled===!0),a.__listbox.setReadOnly(r.readOnly===!0))},focus(a){a.__listbox&&a.__listbox.focus()},blur(a){a.__listbox&&a.__listbox.blur()}})}),Ne("packages/modules/form/controls/options.js",function(S,q){"use strict";Object.defineProperty(S,"normalizeOptions",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"resolveChoiceLayout",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"choiceLayoutCss",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return y}});const V=q("packages/modules/form/styles.js").NS;function $(A){return Array.isArray(A)?A.map(B=>{if(typeof B=="string")return{value:B,label:B};if(B&&typeof B=="object"){const O=B.value==null?"":String(B.value),v=B.label!=null?String(B.label):B.text!=null?String(B.text):O;return{value:O,label:v}}return{value:"",label:""}}):[]}function ee(A){const B=A&&A.props?A.props:{},O=A&&A.orientation!=null?A.orientation:B.orientation;let v=A&&A.columns!=null?A.columns:B.columns;return v=typeof v=="number"&&Number.isFinite(v)&&v>=1?Math.floor(v):0,v>0?{orientation:"vertical",columns:v}:{orientation:O==="horizontal"?"horizontal":"vertical",columns:0}}function h(){return`
|
|
1523
|
+
.${V}__radiogroup--horizontal,
|
|
1524
|
+
.${V}__checkboxgroup--horizontal{
|
|
1500
1525
|
flex-direction:row; flex-wrap:wrap; align-items:center;
|
|
1501
1526
|
gap:calc(var(--lattice-space) * 1.5);
|
|
1502
1527
|
}
|
|
1503
|
-
.${
|
|
1504
|
-
.${
|
|
1528
|
+
.${V}__radiogroup--columns,
|
|
1529
|
+
.${V}__checkboxgroup--columns{
|
|
1505
1530
|
display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
|
|
1506
1531
|
gap:var(--lattice-space);
|
|
1507
1532
|
}
|
|
1508
|
-
`.trim()}const L="data-lattice-form-choice-styles";function C(A){const H=A&&A.documentElement;if(!H||H.getAttribute(L))return;H.setAttribute(L,"1");const T=A.createElement("style");T.textContent=g(),(A.head||A.body||H).appendChild(T)}}),je("packages/modules/form/controls/radiogroup.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/options.js"),re=O.normalizeOptions,g=O.resolveChoiceLayout,L=O.injectChoiceLayoutStyles,C=X("packages/modules/form/state.js"),A=C.applyBooleanInputState,H=C.guardBooleanInput;U("radiogroup",{kind:"field",build(T,v){const f=v.doc.createElement("div");f.className="lat-form__radiogroup",f.setAttribute("role","radiogroup"),T.label!=null&&T.label!==""&&f.setAttribute("aria-label",String(T.label));const u=g(T);u.columns>0?(L(v.doc),f.classList.add("lat-form__radiogroup--columns"),f.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(L(v.doc),f.classList.add("lat-form__radiogroup--horizontal")),f.setAttribute("aria-orientation",u.orientation);const h=[];for(const x of re(T.options)){const t=v.doc.createElement("label");t.className="lat-form__choice";const n=v.doc.createElement("input");n.type="radio",T.name&&(n.name=T.name),n.value=x.value,n.checked=T.value!=null&&String(T.value)===x.value,H(n),t.appendChild(n);const a=v.doc.createElement("span");a.textContent=x.label,t.appendChild(a),f.appendChild(t),h.push(n)}return f.__radios=h,f},read(T){const v=T.__radios.find(f=>f.checked);return v?v.value:null},write(T,v){const f=v==null?null:String(v);for(const u of T.__radios)u.checked=f!==null&&u.value===f},state(T,v){const f=v.readOnly===!0;for(const u of T.__radios)A(u,v.disabled===!0,f);f?T.setAttribute("aria-readonly","true"):T.removeAttribute("aria-readonly")},focus(T){const v=T.__radios.find(f=>!f.disabled);v&&v.focus()}})}),je("packages/modules/form/controls/checkboxgroup.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/options.js"),re=O.normalizeOptions,g=O.resolveChoiceLayout,L=O.injectChoiceLayoutStyles,C=X("packages/modules/form/state.js"),A=C.applyBooleanInputState,H=C.guardBooleanInput;U("checkboxgroup",{kind:"field",build(T,v){const f=v.doc.createElement("div");f.className="lat-form__checkboxgroup",f.setAttribute("role","group"),T.label!=null&&T.label!==""&&f.setAttribute("aria-label",String(T.label));const u=g(T);u.columns>0?(L(v.doc),f.classList.add("lat-form__checkboxgroup--columns"),f.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(L(v.doc),f.classList.add("lat-form__checkboxgroup--horizontal"));const h=[],x=Array.isArray(T.value)?T.value.map(String):[];for(const t of re(T.options)){const n=v.doc.createElement("label");n.className="lat-form__choice";const a=v.doc.createElement("input");a.type="checkbox",T.name&&(a.name=T.name),a.value=t.value,a.checked=x.includes(t.value),H(a),n.appendChild(a);const m=v.doc.createElement("span");m.textContent=t.label,n.appendChild(m),f.appendChild(n),h.push(a)}return f.__boxes=h,f},read(T){return T.__boxes.filter(v=>v.checked).map(v=>v.value)},write(T,v){const f=Array.isArray(v)?v.map(String):[];for(const u of T.__boxes)u.checked=f.includes(u.value)},state(T,v){const f=v.readOnly===!0;for(const u of T.__boxes)A(u,v.disabled===!0,f);f?T.setAttribute("aria-readonly","true"):T.removeAttribute("aria-readonly")},focus(T){const v=T.__boxes.find(f=>!f.disabled);v&&v.focus()}})}),je("packages/modules/form/controls/toggle.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/state.js"),re=O.applyBooleanInputState,g=O.guardBooleanInput,L=Object.freeze(["small","default","large"]),C=Object.freeze(["round","square","slim"]),A=Object.freeze(["inside","before","after"]);function H(t){return L.includes(t)?t:"default"}function T(t){return C.includes(t)?t:"round"}function v(t){return A.includes(t)?t:"inside"}function f(t){return t==null?"":String(t)}function u(t){return t.__latToggle?t.__latToggle.input:t}function h(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function x(t,n,a){const m=n&&n.defaultView,E=m&&m.Event,_=E?new E(a,{bubbles:!0}):{type:a,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(_)}U("toggle",{kind:"toggle",build(t,n){const a=t.props||{},m=n.doc.createElement("input");m.type="checkbox",m.className="lat-form__toggle",m.setAttribute("role","switch"),t.name&&(m.name=t.name),m.checked=t.value===!0,g(m),a.size!=null&&m.setAttribute("data-size",H(a.size)),a.variant!=null&&m.setAttribute("data-variant",T(a.variant));const E=f(a.onLabel),_=f(a.offLabel);if(E===""&&_==="")return m;const c=n.doc.createElement("span");c.className="lat-form__toggle-field",c.setAttribute("data-label-position",v(a.labelPosition)),c.appendChild(m);const S=n.doc.createElement("span");S.className="lat-form__toggle-label",c.appendChild(S);const o={input:m,label:S,onLabel:E,offLabel:_};c.__latToggle=o,h(o),m.addEventListener("change",()=>h(o));let d=!1;return c.addEventListener("focusin",()=>{d||(d=!0,x(c,n.doc,"focus"))}),c.addEventListener("focusout",l=>{c.contains(l.relatedTarget)||(d=!1,x(c,n.doc,"blur"))}),c},read(t){return u(t).checked},write(t,n){const a=u(t);a.checked=n===!0,h(t.__latToggle)},state(t,n){re(u(t),n.disabled===!0,n.readOnly===!0)},focus(t){const n=u(t);typeof n.focus=="function"&&n.focus()},blur(t){const n=u(t);typeof n.blur=="function"&&n.blur()}})}),je("packages/modules/form/controls/date-shared.js",function(M,X){"use strict";Object.defineProperty(M,"pad",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"echoKey",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"modeOf",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"daysInMonth",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"fieldsOfDate",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"parseValue",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"isoOf",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"displayOf",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"withinRange",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"weekdayName",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"monthTitle",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"yearTitle",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"dispatchChange",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"is12Hour",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"dayPeriods",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"to24Hour",{enumerable:!0,get:function(){return n}}),Object.defineProperty(M,"parseDay",{enumerable:!0,get:function(){return a}}),Object.defineProperty(M,"dayISO",{enumerable:!0,get:function(){return m}}),Object.defineProperty(M,"dayNumber",{enumerable:!0,get:function(){return E}}),Object.defineProperty(M,"dayNumberOf",{enumerable:!0,get:function(){return _}}),Object.defineProperty(M,"dayOfNumber",{enumerable:!0,get:function(){return c}}),Object.defineProperty(M,"parseMonth",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"monthISO",{enumerable:!0,get:function(){return o}}),Object.defineProperty(M,"monthIndex",{enumerable:!0,get:function(){return d}}),Object.defineProperty(M,"monthOfIndex",{enumerable:!0,get:function(){return l}}),Object.defineProperty(M,"isoWeek",{enumerable:!0,get:function(){return s}});function e(r){return String(r).padStart(2,"0")}function U(r){return r}function O(r){return r.mode==="date-time"||r.mode==="time"?r.mode:"date"}function re(r,i){return new Date(r,i,0).getDate()}function g(r,i){if(!(i instanceof Date)||Number.isNaN(i.getTime()))return null;const B={y:i.getFullYear(),mo:i.getMonth()+1,d:i.getDate(),h:i.getHours(),mi:i.getMinutes()},z=r.timeZone;if(!z)return B;try{const W=new Intl.DateTimeFormat("en-US",{timeZone:z,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(i),b={y:0,mo:1,d:1,h:0,mi:0};for(const J of W)J.type==="year"?b.y=Number(J.value):J.type==="month"?b.mo=Number(J.value):J.type==="day"?b.d=Number(J.value):J.type==="hour"?b.h=Number(J.value)%24:J.type==="minute"&&(b.mi=Number(J.value));return b}catch{return B}}function L(r,i){if(i==null||i==="")return null;if(typeof i=="number")return g(r,new Date(i));if(i instanceof Date)return g(r,i);if(typeof i=="string"){const B=i.trim();if(O(r)==="time"){const W=/^(\d{1,2}):(\d{2})/.exec(B);return W?{y:null,mo:null,d:null,h:Number(W[1]),mi:Number(W[2])}:null}const z=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(B);return z?{y:Number(z[1]),mo:Number(z[2]),d:Number(z[3]),h:z[4]!=null?Number(z[4]):0,mi:z[5]!=null?Number(z[5]):0}:null}return null}function C(r,i){if(!i)return null;if(O(r)==="time")return`${e(i.h)}:${e(i.mi)}`;const B=`${e(i.y)}-${e(i.mo)}-${e(i.d)}`;return O(r)==="date"?B:`${B}T${e(i.h)}:${e(i.mi)}`}function A(r,i){if(!i)return"";const B=O(r);if(B==="time")return`${e(i.h)}:${e(i.mi)}`;const z=r.locale||void 0,W={dateStyle:"medium"};return B==="date-time"&&(W.timeStyle="short"),new Intl.DateTimeFormat(z,W).format(new Date(i.y,i.mo-1,i.d,i.h,i.mi))}function H(r,i){return i==null?!0:!(r.min!=null&&i<String(r.min)||r.max!=null&&i>String(r.max))}function T(r,i){return new Intl.DateTimeFormat(r.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+i))}function v(r,i){return new Intl.DateTimeFormat(r.locale||void 0,{month:"long",year:"numeric"}).format(new Date(i.y,i.mo-1,1))}function f(r){return String(r.y)}function u(r){const i=r.ownerDocument&&r.ownerDocument.defaultView,B=i&&typeof i.Event=="function"?i.Event:null;r.dispatchEvent(B?new B("change",{bubbles:!0}):{type:"change",bubbles:!0})}function h(r){try{const i=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return i==="h11"||i==="h12"}catch{return!1}}function x(r){try{const i=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric",hour12:!0}),B=i.formatToParts(new Date(2021,0,1,9)).find(W=>W.type==="dayPeriod"),z=i.formatToParts(new Date(2021,0,1,15)).find(W=>W.type==="dayPeriod");if(B&&z)return{am:B.value,pm:z.value}}catch{}return null}function t(r){const i=r%12;return i===0?12:i}function n(r,i){return i?r===12?12:r+12:r===12?0:r}function a(r){if(typeof r!="string")return null;const i=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r.trim());if(!i)return null;const B={y:Number(i[1]),mo:Number(i[2]),d:Number(i[3])};return B.mo<1||B.mo>12||B.d<1||B.d>re(B.y,B.mo)?null:B}function m(r,i,B){return`${e(r)}-${e(i)}-${e(B)}`}function E(r,i,B){return Date.UTC(r,i-1,B)/864e5}function _(r){const i=a(r);return i?E(i.y,i.mo,i.d):NaN}function c(r){const i=new Date(r*864e5);return{y:i.getUTCFullYear(),mo:i.getUTCMonth()+1,d:i.getUTCDate()}}function S(r){if(typeof r!="string")return null;const i=/^(\d{4})-(\d{2})$/.exec(r.trim());if(!i)return null;const B={y:Number(i[1]),mo:Number(i[2])};return B.mo<1||B.mo>12?null:B}function o(r,i){return`${e(r)}-${e(i)}`}function d(r,i){return r*12+(i-1)}function l(r){return{y:Math.floor(r/12),mo:r%12+1}}function s(r,i,B){const z=new Date(Date.UTC(r,i-1,B)),W=z.getUTCDay()||7;z.setUTCDate(z.getUTCDate()+4-W);const b=new Date(Date.UTC(z.getUTCFullYear(),0,1));return Math.ceil(((z-b)/864e5+1)/7)}}),je("packages/modules/form/controls/datepicker.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/date-shared.js"),C=L.pad,A=L.echoKey,H=L.modeOf,T=L.daysInMonth,v=L.parseValue,f=L.isoOf,u=L.displayOf,h=L.withinRange,x=L.weekdayName,t=L.monthTitle,n=L.dispatchChange,a=L.is12Hour,m=L.dayPeriods,E=L.to12Hour,_=L.to24Hour,c=Object.freeze(["date","date-time","time"]);function S(b,J){b.__fields=J,b.__input.value=u(b.__item,J),n(b)}function o(b,J){let{y:Q,mo:ne}=b.__view,Z=b.__cursor+J;for(;Z<1;)ne-=1,ne<1&&(ne=12,Q-=1),Z+=T(Q,ne);let Y=T(Q,ne);for(;Z>Y;)Z-=Y,ne+=1,ne>12&&(ne=1,Q+=1),Y=T(Q,ne);b.__view={y:Q,mo:ne},b.__cursor=Z,d(b)}function d(b){const J=b.__item,Q=b.ownerDocument,ne=b.__popup,Z=b.__view,Y=H(J),Ne=b.__fields;for(;ne.firstChild;)ne.removeChild(ne.firstChild);if(Y!=="time"){const ve=Q.createElement("div");ve.className="lat-form__datepicker-head";const se=Q.createElement("button");se.type="button",se.className="lat-form__datepicker-nav",se.setAttribute("aria-label",b.__t("form.datepicker.prev")),se.textContent="‹",se.addEventListener("click",()=>{l(b,-1)});const k=Q.createElement("span");k.className="lat-form__datepicker-title",k.textContent=t(J,Z);const I=Q.createElement("button");I.type="button",I.className="lat-form__datepicker-nav",I.setAttribute("aria-label",b.__t("form.datepicker.next")),I.textContent="›",I.addEventListener("click",()=>{l(b,1)}),ve.appendChild(se),ve.appendChild(k),ve.appendChild(I),ne.appendChild(ve);const F=Q.createElement("div");F.className="lat-form__datepicker-weekdays";for(let R=0;R<7;R+=1){const ee=Q.createElement("span");ee.textContent=x(J,R),F.appendChild(ee)}ne.appendChild(F);const p=Q.createElement("div");p.className="lat-form__datepicker-grid",p.setAttribute("role","grid"),p.tabIndex=0,b.__grid=p;const D=new Date(Z.y,Z.mo-1,1).getDay();for(let R=0;R<D;R+=1){const ee=Q.createElement("span");ee.className="lat-form__datepicker-blank",p.appendChild(ee)}const G=T(Z.y,Z.mo);for(let R=1;R<=G;R+=1){const ee=Q.createElement("button");ee.type="button",ee.className="lat-form__datepicker-day",ee.setAttribute("role","gridcell"),ee.textContent=String(R);const P=f(J,{y:Z.y,mo:Z.mo,d:R,h:0,mi:0});h(J,P)||(ee.disabled=!0),Ne&&Ne.y===Z.y&&Ne.mo===Z.mo&&Ne.d===R&&ee.classList.add("is-selected"),b.__cursor===R&&ee.classList.add("is-focus"),ee.addEventListener("click",()=>{const N={y:Z.y,mo:Z.mo,d:R,h:Ne?Ne.h:0,mi:Ne?Ne.mi:0};Y==="date"?(b.__cursor=R,S(b,N),W(b)):(b.__cursor=R,b.__fields=N,d(b))}),p.appendChild(ee)}ne.appendChild(p),p.addEventListener("keydown",R=>{R.key==="ArrowLeft"?(R.preventDefault(),o(b,-1)):R.key==="ArrowRight"?(R.preventDefault(),o(b,1)):R.key==="ArrowUp"?(R.preventDefault(),o(b,-7)):R.key==="ArrowDown"?(R.preventDefault(),o(b,7)):R.key==="Home"?(R.preventDefault(),b.__cursor=1,d(b)):R.key==="End"?(R.preventDefault(),b.__cursor=T(Z.y,Z.mo),d(b)):(R.key==="Enter"||R.key===" ")&&(R.preventDefault(),B(b))})}if(Y!=="date"){const ve=a(J)?m(J):null,se=!!ve,k=Q.createElement("div");k.className="lat-form__datepicker-time";const I=Q.createElement("input");I.type="number",I.className="lat-form__datepicker-hour",I.min=se?"1":"0",I.max=se?"12":"23",I.step="1",I.setAttribute("aria-label",b.__t("form.datepicker.hour"));const F=Q.createElement("span");F.textContent=":";const p=Q.createElement("input");if(p.type="number",p.className="lat-form__datepicker-minute",p.min="0",p.max="59",p.step="1",p.setAttribute("aria-label",b.__t("form.datepicker.minute")),k.appendChild(I),k.appendChild(F),k.appendChild(p),ne.appendChild(k),b.__hour=I,b.__minute=p,I.addEventListener("change",()=>{s(b)}),p.addEventListener("change",()=>{s(b)}),b.__periods=ve,b.__ampm=null,se){const G=Q.createElement("button");G.type="button",G.className="lat-form__datepicker-ampm",b.__ampm=G;const R=()=>{b.__pm=!b.__pm,G.textContent=b.__pm?b.__periods.pm:b.__periods.am,s(b)};G.addEventListener("click",R),k.appendChild(G)}const D=Q.createElement("button");D.type="button",D.className="lat-form__datepicker-done",D.textContent=b.__t("form.datepicker.done"),D.addEventListener("click",()=>{r(b)}),k.appendChild(D)}i(b)}function l(b,J){let{y:Q,mo:ne}=b.__view;ne+=J,ne<1&&(ne=12,Q-=1),ne>12&&(ne=1,Q+=1),b.__view={y:Q,mo:ne},b.__cursor=Math.min(b.__cursor,T(Q,ne)),d(b)}function s(b){const J=b.__fields;let Q=b.__hour&&Number(b.__hour.value)||0;const ne=b.__minute&&Number(b.__minute.value)||0;b.__ampm&&(Q=_(Q,b.__pm===!0));const Z=H(b.__item)==="time"?{y:null,mo:null,d:null,h:Q,mi:ne}:{y:J?J.y:b.__view.y,mo:J?J.mo:b.__view.mo,d:J?J.d:b.__cursor,h:Q,mi:ne};b.__cursor=J?J.d:b.__cursor,S(b,Z)}function r(b){b.__popup.hidden||(H(b.__item)!=="date"&&s(b),W(b))}function i(b){const J=b.__fields,Q=b.__ampm&&b.__periods;if(b.__hour){const ne=J?J.h:0;b.__hour.value=String(Q?E(ne):ne)}b.__minute&&(b.__minute.value=J?String(J.mi):"0"),b.__ampm&&b.__periods&&(b.__pm=J?J.h>=12:!1,b.__ampm.textContent=b.__pm?b.__periods.pm:b.__periods.am)}function B(b){const J=b.__view,Q=b.__fields,ne={y:J.y,mo:J.mo,d:b.__cursor,h:Q?Q.h:0,mi:Q?Q.mi:0};S(b,ne),W(b)}function z(b){if(b.__popup.hidden===!1||b.__item.disabled===!0||b.__item.readOnly===!0)return;const J=b.__fields,Q=new Date;b.__view=J&&J.y!=null?{y:J.y,mo:J.mo}:{y:Q.getFullYear(),mo:Q.getMonth()+1},b.__cursor=J&&J.d!=null?J.d:Q.getDate(),b.__popup.hidden=!1,d(b)}function W(b){b.__popup.hidden=!0}U("datepicker",{kind:"field",build(b,J){const Q=J.doc;g(Q);const ne=Q.createElement("div");ne.className="lat-form__datepicker",ne.__item=b,ne.__t=J.t||A,ne.__mode=H(b),ne.__fields=v(b,b.value),ne.__cursor=ne.__fields&&ne.__fields.d!=null?ne.__fields.d:new Date().getDate(),ne.__view=ne.__fields&&ne.__fields.y!=null?{y:ne.__fields.y,mo:ne.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const Z=Q.createElement("input");Z.type="text",Z.className="lat-form__datepicker-input",b.name&&(Z.name=b.name),b.placeholder!=null&&(Z.placeholder=String(b.placeholder)),b.label!=null&&b.label!==""&&Z.setAttribute("aria-label",String(b.label)),Z.setAttribute("autocomplete","off"),Z.value=u(b,ne.__fields),ne.__input=Z;const Y=Q.createElement("button");Y.type="button",Y.className="lat-form__datepicker-toggle";const Ne=H(b)==="date";Y.setAttribute("aria-label",ne.__t(Ne?"form.datepicker.open":"form.datepicker.openTime"));const ve=re(Q,Ne?"calendar":"clock");ve&&Y.appendChild(ve),ne.__toggle=Y;const se=Q.createElement("div");se.className="lat-form__datepicker-popup",se.hidden=!0,ne.__popup=se,ne.appendChild(Z),ne.appendChild(Y),ne.appendChild(se),Z.addEventListener("focus",()=>{z(ne)}),Y.addEventListener("click",()=>{z(ne)}),Z.addEventListener("change",()=>{const p=v(b,Z.value);p?ne.__fields=p:Z.value=u(b,ne.__fields)}),Z.addEventListener("keydown",p=>{p.key==="Escape"&&W(ne)}),ne.__ampm=null,ne.__periods=null,ne.__pm=!1;const k=p=>{ne.contains(p.target)||r(ne)},I=p=>{p.relatedTarget&&ne.contains(p.relatedTarget)||r(ne)},F=p=>{p.key==="Escape"&&(p.preventDefault(),r(ne),ne.__toggle.focus())};return Q.addEventListener("pointerdown",k),ne.addEventListener("focusout",I),se.addEventListener("keydown",F),Array.isArray(J.disposers)&&J.disposers.push(()=>{Q.removeEventListener("pointerdown",k),ne.removeEventListener("focusout",I),se.removeEventListener("keydown",F)}),ne},read(b){return f(b.__item,b.__fields)},write(b,J){b.__fields=v(b.__item,J),b.__input.value=u(b.__item,b.__fields),b.__fields&&b.__fields.y!=null&&(b.__view={y:b.__fields.y,mo:b.__fields.mo},b.__cursor=b.__fields.d)},state(b,J){b.__input.disabled=J.disabled===!0,b.__input.readOnly=J.readOnly===!0,b.__toggle.disabled=J.disabled===!0||J.readOnly===!0},validate(b,J,Q){return h(J,Q)?!0:typeof J.errorMessage=="string"&&J.errorMessage!==""?J.errorMessage:!1},focus(b){b.__input.focus()}})}),je("packages/modules/form/controls/daterange.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/date-shared.js"),C=L.echoKey,A=L.daysInMonth,H=L.weekdayName,T=L.monthTitle,v=L.yearTitle,f=L.dispatchChange,u=L.parseDay,h=L.dayISO,x=L.dayNumber,t=L.dayNumberOf,n=L.dayOfNumber,a=L.parseMonth,m=L.monthISO,E=L.monthIndex,_=L.monthOfIndex,c=L.isoWeek,S=" – ";function o(j){return j.props&&j.props.granularity==="month"?"month":"day"}function d(j){return j.props&&typeof j.props=="object"?j.props:{}}function l(j){return d(j).applyButton!==!1}function s(j){return d(j).weekNumbers===!0}function r(j){return d(j).clearable===!0}function i(j){const te=d(j).firstDay;if(te!=null){const ce=Number(te);if(Number.isFinite(ce))return(ce%7+7)%7}try{const ce=new Intl.Locale(j.locale||void 0).weekInfo;if(ce&&ce.firstDay)return ce.firstDay%7}catch{}return 0}function B(j){const te=d(j).disabledDates;if(Array.isArray(te)){const ce=new Set(te.map(String));return K=>ce.has(K)}return typeof te=="function"?ce=>te(ce)===!0:null}function z(j,te){return j.min!=null&&te<String(j.min)||j.max!=null&&te>String(j.max)}function W(j,te,ce){return!!(z(j,te)||ce&&ce(te))}function b(j,te,ce){if(j==null||te==null)return null;if(ce==="month"){const ue=a(j),be=a(te);return!ue||!be?null:E(be.y,be.mo)-E(ue.y,ue.mo)}const K=t(j),de=t(te);return Number.isNaN(K)||Number.isNaN(de)?null:de-K}function J(j,te){return o(j)==="month"?te("form.daterange.months"):te("form.daterange.days")}function Q(j,te){if(o(j)==="month")return[{label:te("form.daterange.monthThisMonth"),range:K=>[m(K.getFullYear(),K.getMonth()+1),m(K.getFullYear(),K.getMonth()+1)]},{label:te("form.daterange.monthLastMonth"),range:K=>{const de=_(E(K.getFullYear(),K.getMonth()+1)-1);return[m(de.y,de.mo),m(de.y,de.mo)]}},{label:te("form.daterange.monthLast3"),range:K=>{const de=E(K.getFullYear(),K.getMonth()+1),ue=_(de-2),be=_(de);return[m(ue.y,ue.mo),m(be.y,be.mo)]}},{label:te("form.daterange.monthLast6"),range:K=>{const de=E(K.getFullYear(),K.getMonth()+1),ue=_(de-5),be=_(de);return[m(ue.y,ue.mo),m(be.y,be.mo)]}},{label:te("form.daterange.monthLast12"),range:K=>{const de=E(K.getFullYear(),K.getMonth()+1),ue=_(de-11),be=_(de);return[m(ue.y,ue.mo),m(be.y,be.mo)]}},{label:te("form.daterange.monthThisYear"),range:K=>[m(K.getFullYear(),1),m(K.getFullYear(),12)]},{label:te("form.daterange.monthLastYear"),range:K=>[m(K.getFullYear()-1,1),m(K.getFullYear()-1,12)]}];const ce=K=>h(K.getFullYear(),K.getMonth()+1,K.getDate());return[{label:te("form.daterange.today"),range:K=>[ce(K),ce(K)]},{label:te("form.daterange.yesterday"),range:K=>{const de=n(x(K.getFullYear(),K.getMonth()+1,K.getDate())-1);return[h(de.y,de.mo,de.d),h(de.y,de.mo,de.d)]}},{label:te("form.daterange.last7"),range:K=>{const de=x(K.getFullYear(),K.getMonth()+1,K.getDate()),ue=n(de-6);return[h(ue.y,ue.mo,ue.d),ce(K)]}},{label:te("form.daterange.last30"),range:K=>{const de=x(K.getFullYear(),K.getMonth()+1,K.getDate()),ue=n(de-29);return[h(ue.y,ue.mo,ue.d),ce(K)]}},{label:te("form.daterange.thisMonth"),range:K=>[h(K.getFullYear(),K.getMonth()+1,1),h(K.getFullYear(),K.getMonth()+1,A(K.getFullYear(),K.getMonth()+1))]},{label:te("form.daterange.lastMonth"),range:K=>{const de=_(E(K.getFullYear(),K.getMonth()+1)-1);return[h(de.y,de.mo,1),h(de.y,de.mo,A(de.y,de.mo))]}}]}function ne(j,te){const ce=d(j).presets;return ce===!1?null:Array.isArray(ce)&&ce.length?ce.map(K=>({label:K&&K.label!=null?String(K.label):"",range:K&&K.range!=null?K.range:["",""]})):Q(j,te)}function Z(j,te){return j==null&&te==null?"":te==null?`${j}${S}`:`${j}${S}${te}`}function Y(j,te){const ce=String(te??"").trim();if(!ce)return{start:null,end:null};const K=o(j)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,de=[];let ue;for(;(ue=K.exec(ce))!==null;)de.push(ue[1]);if(de.length===0)return null;const be=de[0],Ce=de.length>1?de[de.length-1]:null;if(o(j)==="month"){if(!a(be)||Ce&&!a(Ce))return null}else if(!u(be)||Ce&&!u(Ce))return null;return Ce&&be>Ce?{start:Ce,end:be}:{start:be,end:Ce}}function Ne(j,te){return new Intl.DateTimeFormat(j.locale||void 0,{month:"short"}).format(new Date(2021,te-1,1))}function ve(j){const te=j.__draftStart,ce=j.__draftEnd;return te!=null&&ce!=null?[te,ce]:te!=null&&j.__hover!=null&&j.__granularity==="day"?[te,j.__hover]:te!=null&&j.__hover!=null&&j.__granularity==="month"?[te,j.__hover]:null}function se(j,te){return j>=te[0]&&j<=te[1]}function k(j,te){if(j.__granularity==="month"){const de=E(j.__cursor.y,j.__cursor.mo)+te,ue=_(de);j.__cursor=ue,I(j),ie(j);return}const ce=x(j.__cursor.y,j.__cursor.mo,j.__cursor.d)+te,K=n(ce);j.__cursor=K,I(j),ie(j)}function I(j){if(j.__granularity==="month"){j.__cursor.y<j.__view.y?j.__view={y:j.__cursor.y}:j.__cursor.y>j.__view.y+1&&(j.__view={y:j.__cursor.y-1});return}const ce=E(j.__cursor.y,j.__cursor.mo),K=E(j.__view.y,j.__view.mo);ce<K?j.__view={y:j.__cursor.y,mo:j.__cursor.mo}:ce>K+1&&(j.__view=_(ce-1))}function F(j,te){if(j.__granularity==="month"){j.__view={y:j.__view.y+te},ie(j);return}const ce=E(j.__view.y,j.__view.mo)+te,K=_(ce);j.__view=K,ie(j)}function p(j,te){return j&&te&&j.y===te.y&&j.mo===te.mo&&(j.d==null||j.d===te.d)}function D(j,te){return j.__granularity==="month"?m(te.y,te.mo):h(te.y,te.mo,te.d)}function G(j,te){const ce=D(j,te);j.__phase!=="started"?(j.__draftStart=ce,j.__draftEnd=null,j.__phase="started"):ce<j.__draftStart?(j.__draftStart=ce,j.__draftEnd=null):(j.__draftEnd=ce,j.__phase="idle",l(j.__item)||R(j,!0)),j.__cursor=te,j.__hover=null,ie(j)}function R(j,te){j.__start=j.__draftStart,j.__end=j.__draftEnd,j.__phase="idle",j.__input.value=Z(j.__start,j.__end),f(j),te&&Se(j)}function ee(j){j.__draftStart=j.__start,j.__draftEnd=j.__end,j.__phase="idle",j.__hover=null,Se(j)}function P(j){j.__start=null,j.__end=null,j.__draftStart=null,j.__draftEnd=null,j.__phase="idle",j.__input.value="",f(j)}function N(j,te,ce){for(;ce.firstChild;)ce.removeChild(ce.firstChild);const K=B(j.__item);if(j.__granularity==="month")V(j,te,ce,j.__view.y,K),V(j,te,ce,j.__view.y+1,K);else{y(j,te,ce,j.__view.y,j.__view.mo,K);const de=_(E(j.__view.y,j.__view.mo)+1);y(j,te,ce,de.y,de.mo,K)}}function y(j,te,ce,K,de,ue){const be=j.__item,Ce=te.createElement("div");Ce.className="lat-form__daterange-panel";const Ae=te.createElement("div");Ae.className="lat-form__daterange-title",Ae.textContent=T(be,{y:K,mo:de}),Ce.appendChild(Ae);const ye=i(be),me=s(be),we=te.createElement("div");if(we.className=me?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",me){const xe=te.createElement("span");xe.className="lat-form__daterange-weeknum-head",we.appendChild(xe)}for(let xe=0;xe<7;xe+=1){const Te=te.createElement("span");Te.textContent=H(be,(ye+xe)%7),we.appendChild(Te)}Ce.appendChild(we);const q=te.createElement("div");q.className=me?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",q.setAttribute("role","grid"),q.setAttribute("aria-label",T(be,{y:K,mo:de})),q.tabIndex=0,Ce.appendChild(q);const he=(new Date(K,de-1,1).getDay()-ye+7)%7,Me=A(K,de),Fe=x(K,de,1)-he,fe=[];for(let xe=0;xe<he;xe+=1){me&&xe%7===0&&q.appendChild($(j,te,Fe));const Te=te.createElement("span");Te.className="lat-form__daterange-blank",q.appendChild(Te)}for(let xe=1;xe<=Me;xe+=1){me&&(he+xe-1)%7===0&&q.appendChild($(j,te,Fe+(he+xe-1)));const Te=w(j,te,K,de,xe,ue);fe.push(Te),q.appendChild(Te)}oe(j,q,fe),ce.appendChild(Ce)}function $(j,te,ce){const K=te.createElement("span");K.className="lat-form__daterange-weeknum";const de=new Date(ce*864e5),ue=ce-(de.getUTCDay()+6)%7,be=new Date(ue*864e5);return K.textContent=String(c(be.getUTCFullYear(),be.getUTCMonth()+1,be.getUTCDate())),K}function w(j,te,ce,K,de,ue){const be=h(ce,K,de),Ce=te.createElement("button");Ce.type="button",Ce.className="lat-form__daterange-day",Ce.setAttribute("role","gridcell"),Ce.textContent=String(de);const Ae=ve(j),ye=Ae?se(be,Ae):!1,me=W(j.__item,be,ue);return me&&(Ce.disabled=!0),ye&&Ce.classList.add("is-in-range"),j.__draftStart===be&&Ce.classList.add("is-start"),j.__draftEnd===be&&Ce.classList.add("is-end"),Ce.setAttribute("aria-selected",ye&&!me?"true":"false"),j.__cursor&&j.__cursor.y===ce&&j.__cursor.mo===K&&j.__cursor.d===de&&Ce.classList.add("is-focus"),Ce.addEventListener("click",()=>{G(j,{y:ce,mo:K,d:de})}),Ce.addEventListener("mouseover",()=>{j.__draftStart!=null&&j.__draftEnd==null&&!me&&j.__hover!==be&&(j.__hover=be,ie(j))}),Ce}function V(j,te,ce,K,de){const ue=j.__item,be=te.createElement("div");be.className="lat-form__daterange-panel";const Ce=te.createElement("div");Ce.className="lat-form__daterange-title",Ce.textContent=v({y:K}),be.appendChild(Ce);const Ae=te.createElement("div");Ae.className="lat-form__daterange-grid lat-form__daterange-grid--months",Ae.setAttribute("role","grid"),Ae.setAttribute("aria-label",v({y:K})),be.appendChild(Ae);const ye=[];for(let me=1;me<=12;me+=1){const we=m(K,me),q=te.createElement("button");q.type="button",q.className="lat-form__daterange-month",q.setAttribute("role","gridcell"),q.textContent=Ne(ue,me);const $e=ve(j),he=$e?se(we,$e):!1,Me=W(ue,we,de);Me&&(q.disabled=!0),he&&q.classList.add("is-in-range"),j.__draftStart===we&&q.classList.add("is-start"),j.__draftEnd===we&&q.classList.add("is-end"),q.setAttribute("aria-selected",he&&!Me?"true":"false"),j.__cursor&&j.__cursor.y===K&&j.__cursor.mo===me&&j.__cursor.d==null&&q.classList.add("is-focus"),q.addEventListener("click",()=>{G(j,{y:K,mo:me})}),ye.push(q),Ae.appendChild(q)}Ae.addEventListener("keydown",me=>{if(me.key==="ArrowLeft")me.preventDefault(),k(j,-1);else if(me.key==="ArrowRight")me.preventDefault(),k(j,1);else if(me.key==="ArrowUp")me.preventDefault(),k(j,-3);else if(me.key==="ArrowDown")me.preventDefault(),k(j,3);else if(me.key==="PageUp")me.preventDefault(),F(j,-1);else if(me.key==="PageDown")me.preventDefault(),F(j,1);else if(me.key==="Enter"||me.key===" "){me.preventDefault();const we=D(j,j.__cursor);W(j.__item,we,de)||G(j,j.__cursor)}}),ce.appendChild(be)}function oe(j,te,ce){te.addEventListener("keydown",K=>{const de=j.__cursor;if(K.key==="ArrowLeft")K.preventDefault(),k(j,-1);else if(K.key==="ArrowRight")K.preventDefault(),k(j,1);else if(K.key==="ArrowUp")K.preventDefault(),k(j,-7);else if(K.key==="ArrowDown")K.preventDefault(),k(j,7);else if(K.key==="PageUp")K.shiftKey?(K.preventDefault(),F(j,-12)):(K.preventDefault(),F(j,-1));else if(K.key==="PageDown")K.shiftKey?(K.preventDefault(),F(j,12)):(K.preventDefault(),F(j,1));else if((K.key==="Enter"||K.key===" ")&&(K.preventDefault(),de&&de.d!=null)){const ue=h(de.y,de.mo,de.d);W(j.__item,ue,B(j.__item))||G(j,de)}})}function ie(j){const te=j.ownerDocument,ce=j.__popup,K=j.__item;for(;ce.firstChild;)ce.removeChild(ce.firstChild);const de=te.createElement("div");de.className="lat-form__daterange-head";const ue=te.createElement("button");ue.type="button",ue.className="lat-form__daterange-nav",ue.setAttribute("aria-label",j.__t("form.daterange.prev")),ue.textContent="‹",ue.addEventListener("click",()=>{F(j,-1)});const be=te.createElement("button");be.type="button",be.className="lat-form__daterange-nav",be.setAttribute("aria-label",j.__t("form.daterange.next")),be.textContent="›",be.addEventListener("click",()=>{F(j,1)}),de.appendChild(ue);const Ce=te.createElement("div");Ce.className="lat-form__daterange-body";const Ae=ne(K,j.__t);if(Ae){const me=te.createElement("div");me.className="lat-form__daterange-presets";const we=te.createElement("div");we.className="lat-form__daterange-presets-title",we.textContent=j.__t("form.daterange.presets"),me.appendChild(we);for(const q of Ae){const $e=te.createElement("button");$e.type="button",$e.className="lat-form__daterange-preset",$e.textContent=q.label,$e.addEventListener("click",()=>{_e(j,q.range)}),me.appendChild($e)}Ce.appendChild(me)}const ye=te.createElement("div");if(ye.className="lat-form__daterange-panels",N(j,te,ye),Ce.appendChild(ye),de.appendChild(Ce),de.appendChild(be),ce.appendChild(de),l(K)){const me=te.createElement("div");me.className="lat-form__daterange-footer";const we=te.createElement("button");we.type="button",we.className="lat-form__daterange-cancel",we.textContent=j.__t("form.daterange.cancel"),we.addEventListener("click",()=>{ee(j)});const q=te.createElement("button");q.type="button",q.className="lat-form__daterange-apply",q.textContent=j.__t("form.daterange.apply"),q.addEventListener("click",()=>{R(j,!0)}),me.appendChild(we),me.appendChild(q),ce.appendChild(me)}}function _e(j,te){const ce=typeof te=="function"?te(new Date):te;if(!(!Array.isArray(ce)||ce.length<2)){if(j.__draftStart=ce[0],j.__draftEnd=ce[1],j.__phase="idle",j.__hover=null,j.__granularity==="day"){const K=u(ce[0]);K&&(j.__view={y:K.y,mo:K.mo}),j.__cursor=K||j.__cursor}else{const K=a(ce[0]);K&&(j.__view={y:K.y}),j.__cursor=K||j.__cursor}ie(j)}}function Oe(j){if(j.__popup.hidden===!1||j.__item.disabled===!0||j.__item.readOnly===!0)return;j.__draftStart=j.__start,j.__draftEnd=j.__end,j.__phase="idle",j.__hover=null;const te=new Date;if(j.__granularity==="month"){const ce=a(j.__start)||{y:te.getFullYear(),mo:te.getMonth()+1};j.__view={y:ce.y},j.__cursor=ce}else{const ce=u(j.__start)||{y:te.getFullYear(),mo:te.getMonth()+1,d:te.getDate()};j.__view={y:ce.y,mo:ce.mo},j.__cursor=ce}j.__popup.hidden=!1,ie(j)}function Se(j){j.__popup.hidden=!0}U("daterange",{kind:"field",build(j,te){const ce=te.doc;g(ce);const K=ce.createElement("div");K.className="lat-form__daterange",K.__item=j,K.__t=te.t||C,K.__granularity=o(j),K.__start=null,K.__end=null,K.__draftStart=null,K.__draftEnd=null,K.__hover=null,K.__phase="idle";const de=typeof j.value=="object"&&j.value!=null?j.value:{};de&&de.start!=null&&(K.__start=String(de.start)),de&&de.end!=null&&(K.__end=String(de.end));const ue=ce.createElement("input");ue.type="text",ue.className="lat-form__daterange-input",j.name&&(ue.name=j.name),j.placeholder!=null&&(ue.placeholder=String(j.placeholder)),j.label!=null&&j.label!==""&&ue.setAttribute("aria-label",String(j.label)),ue.setAttribute("autocomplete","off"),ue.value=Z(K.__start,K.__end),K.__input=ue;const be=ce.createElement("button");be.type="button",be.className="lat-form__daterange-toggle",be.setAttribute("aria-label",K.__t("form.daterange.open"));const Ce=re(ce,"calendar");Ce&&be.appendChild(Ce),K.__toggle=be;const Ae=ce.createElement("button");Ae.type="button",Ae.className="lat-form__daterange-clear",Ae.setAttribute("aria-label",K.__t("form.daterange.clear"));const ye=re(ce,"close");ye&&Ae.appendChild(ye),Ae.hidden=!r(j)||K.__start==null&&K.__end==null,K.__clear=Ae;const me=ce.createElement("div");me.className="lat-form__daterange-popup",me.hidden=!0,K.__popup=me,K.appendChild(ue),K.appendChild(Ae),K.appendChild(be),K.appendChild(me),ue.addEventListener("focus",()=>{Oe(K)}),be.addEventListener("click",()=>{Oe(K)}),Ae.addEventListener("click",()=>{P(K)}),ue.addEventListener("change",()=>{const he=Y(j,ue.value);he?(K.__start=he.start,K.__end=he.end,ue.value=Z(he.start,he.end)):ue.value=Z(K.__start,K.__end)}),ue.addEventListener("keydown",he=>{he.key==="Escape"&&(ee(K),K.__toggle.focus())});const we=he=>{K.contains(he.target)||ee(K)},q=he=>{he.relatedTarget&&K.contains(he.relatedTarget)||ee(K)},$e=he=>{he.key==="Escape"&&(he.preventDefault(),ee(K),K.__toggle.focus())};return ce.addEventListener("pointerdown",we),K.addEventListener("focusout",q),me.addEventListener("keydown",$e),Array.isArray(te.disposers)&&te.disposers.push(()=>{ce.removeEventListener("pointerdown",we),K.removeEventListener("focusout",q),me.removeEventListener("keydown",$e)}),K},read(j){return{start:j.__start,end:j.__end}},write(j,te){const ce=te&&typeof te=="object"?te:{};j.__start=ce.start!=null?String(ce.start):null,j.__end=ce.end!=null?String(ce.end):null,j.__input.value=Z(j.__start,j.__end),j.__clear&&(j.__clear.hidden=!r(j.__item)||j.__start==null&&j.__end==null)},state(j,te){j.__input.disabled=te.disabled===!0,j.__input.readOnly=te.readOnly===!0,j.__toggle.disabled=te.disabled===!0||te.readOnly===!0},validate(j,te,ce){const K=ce&&typeof ce=="object"?ce:{start:null,end:null},de=K.start!=null?String(K.start):null,ue=K.end!=null?String(K.end):null,be=j.__t;if(te.required===!0&&de==null&&ue==null)return be("form.validation.required");if(de==null&&ue==null)return!0;if(de==null||ue==null)return be("form.daterange.invalid");if(z(te,de)||z(te,ue))return be("form.daterange.bounds");const Ce=b(de,ue,j.__granularity);if(Ce==null)return be("form.daterange.invalid");const Ae=d(te).minSpan,ye=d(te).maxSpan;return Ae!=null&&Ce<Number(Ae)?be("form.daterange.minSpan",{min:String(Ae),unit:J(te,be)}):ye!=null&&Ce>Number(ye)?be("form.daterange.maxSpan",{max:String(ye),unit:J(te,be)}):!0},focus(j){j.__input.focus()}})}),je("packages/modules/form/controls/file.js",function(M,X){"use strict";Object.defineProperty(M,"formatSize",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"accepts",{enumerable:!0,get:function(){return v}});const U=X("packages/modules/form/controls/registry.js").registerControl,O="lat-uploader",re="http://www.w3.org/2000/svg",g="data-lattice-uploader-styles";function L(){return`
|
|
1509
|
-
.${
|
|
1533
|
+
`.trim()}const P="data-lattice-form-choice-styles";function y(A){const B=A&&A.documentElement;if(!B||B.getAttribute(P))return;B.setAttribute(P,"1");const O=A.createElement("style");O.textContent=h(),(A.head||A.body||B).appendChild(O)}}),Ne("packages/modules/form/controls/radiogroup.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/options.js"),ee=$.normalizeOptions,h=$.resolveChoiceLayout,P=$.injectChoiceLayoutStyles,y=q("packages/modules/form/state.js"),A=y.applyBooleanInputState,B=y.guardBooleanInput;V("radiogroup",{kind:"field",build(O,v){const d=v.doc.createElement("div");d.className="lat-form__radiogroup",d.setAttribute("role","radiogroup"),O.label!=null&&O.label!==""&&d.setAttribute("aria-label",String(O.label));const u=h(O);u.columns>0?(P(v.doc),d.classList.add("lat-form__radiogroup--columns"),d.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(P(v.doc),d.classList.add("lat-form__radiogroup--horizontal")),d.setAttribute("aria-orientation",u.orientation);const _=[];for(const w of ee(O.options)){const t=v.doc.createElement("label");t.className="lat-form__choice";const o=v.doc.createElement("input");o.type="radio",O.name&&(o.name=O.name),o.value=w.value,o.checked=O.value!=null&&String(O.value)===w.value,B(o),t.appendChild(o);const l=v.doc.createElement("span");l.textContent=w.label,t.appendChild(l),d.appendChild(t),_.push(o)}return d.__radios=_,d},read(O){const v=O.__radios.find(d=>d.checked);return v?v.value:null},write(O,v){const d=v==null?null:String(v);for(const u of O.__radios)u.checked=d!==null&&u.value===d},state(O,v){const d=v.readOnly===!0;for(const u of O.__radios)A(u,v.disabled===!0,d);d?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly")},focus(O){const v=O.__radios.find(d=>!d.disabled);v&&v.focus()}})}),Ne("packages/modules/form/controls/checkboxgroup.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/options.js"),ee=$.normalizeOptions,h=$.resolveChoiceLayout,P=$.injectChoiceLayoutStyles,y=q("packages/modules/form/state.js"),A=y.applyBooleanInputState,B=y.guardBooleanInput;V("checkboxgroup",{kind:"field",build(O,v){const d=v.doc.createElement("div");d.className="lat-form__checkboxgroup",d.setAttribute("role","group"),O.label!=null&&O.label!==""&&d.setAttribute("aria-label",String(O.label));const u=h(O);u.columns>0?(P(v.doc),d.classList.add("lat-form__checkboxgroup--columns"),d.style.setProperty("--lat-form-columns",String(u.columns))):u.orientation==="horizontal"&&(P(v.doc),d.classList.add("lat-form__checkboxgroup--horizontal"));const _=[],w=Array.isArray(O.value)?O.value.map(String):[];for(const t of ee(O.options)){const o=v.doc.createElement("label");o.className="lat-form__choice";const l=v.doc.createElement("input");l.type="checkbox",O.name&&(l.name=O.name),l.value=t.value,l.checked=w.includes(t.value),B(l),o.appendChild(l);const b=v.doc.createElement("span");b.textContent=t.label,o.appendChild(b),d.appendChild(o),_.push(l)}return d.__boxes=_,d},read(O){return O.__boxes.filter(v=>v.checked).map(v=>v.value)},write(O,v){const d=Array.isArray(v)?v.map(String):[];for(const u of O.__boxes)u.checked=d.includes(u.value)},state(O,v){const d=v.readOnly===!0;for(const u of O.__boxes)A(u,v.disabled===!0,d);d?O.setAttribute("aria-readonly","true"):O.removeAttribute("aria-readonly")},focus(O){const v=O.__boxes.find(d=>!d.disabled);v&&v.focus()}})}),Ne("packages/modules/form/controls/toggle.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/state.js"),ee=$.applyBooleanInputState,h=$.guardBooleanInput,P=Object.freeze(["small","default","large"]),y=Object.freeze(["round","square","slim"]),A=Object.freeze(["inside","before","after"]);function B(t){return P.includes(t)?t:"default"}function O(t){return y.includes(t)?t:"round"}function v(t){return A.includes(t)?t:"inside"}function d(t){return t==null?"":String(t)}function u(t){return t.__latToggle?t.__latToggle.input:t}function _(t){!t||!t.label||(t.label.textContent=t.input.checked?t.onLabel:t.offLabel)}function w(t,o,l){const b=o&&o.defaultView,p=b&&b.Event,m=p?new p(l,{bubbles:!0}):{type:l,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};t.dispatchEvent(m)}V("toggle",{kind:"toggle",build(t,o){const l=t.props||{},b=o.doc.createElement("input");b.type="checkbox",b.className="lat-form__toggle",b.setAttribute("role","switch"),t.name&&(b.name=t.name),b.checked=t.value===!0,h(b),l.size!=null&&b.setAttribute("data-size",B(l.size)),l.variant!=null&&b.setAttribute("data-variant",O(l.variant));const p=d(l.onLabel),m=d(l.offLabel);if(p===""&&m==="")return b;const f=o.doc.createElement("span");f.className="lat-form__toggle-field",f.setAttribute("data-label-position",v(l.labelPosition)),f.appendChild(b);const N=o.doc.createElement("span");N.className="lat-form__toggle-label",f.appendChild(N);const c={input:b,label:N,onLabel:p,offLabel:m};f.__latToggle=c,_(c),b.addEventListener("change",()=>_(c));let i=!1;return f.addEventListener("focusin",()=>{i||(i=!0,w(f,o.doc,"focus"))}),f.addEventListener("focusout",n=>{f.contains(n.relatedTarget)||(i=!1,w(f,o.doc,"blur"))}),f},read(t){return u(t).checked},write(t,o){const l=u(t);l.checked=o===!0,_(t.__latToggle)},state(t,o){ee(u(t),o.disabled===!0,o.readOnly===!0)},focus(t){const o=u(t);typeof o.focus=="function"&&o.focus()},blur(t){const o=u(t);typeof o.blur=="function"&&o.blur()}})}),Ne("packages/modules/form/controls/date-shared.js",function(S,q){"use strict";Object.defineProperty(S,"pad",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"echoKey",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"modeOf",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"daysInMonth",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"fieldsOfDate",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"parseValue",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"isoOf",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"displayOf",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"withinRange",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"weekdayName",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"monthTitle",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"yearTitle",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"dispatchChange",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"is12Hour",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"dayPeriods",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"to12Hour",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"to24Hour",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"parseDay",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"dayISO",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"dayNumber",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"dayNumberOf",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"dayOfNumber",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"parseMonth",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"monthISO",{enumerable:!0,get:function(){return c}}),Object.defineProperty(S,"monthIndex",{enumerable:!0,get:function(){return i}}),Object.defineProperty(S,"monthOfIndex",{enumerable:!0,get:function(){return n}}),Object.defineProperty(S,"isoWeek",{enumerable:!0,get:function(){return a}});function e(r){return String(r).padStart(2,"0")}function V(r){return r}function $(r){return r.mode==="date-time"||r.mode==="time"?r.mode:"date"}function ee(r,s){return new Date(r,s,0).getDate()}function h(r,s){if(!(s instanceof Date)||Number.isNaN(s.getTime()))return null;const M={y:s.getFullYear(),mo:s.getMonth()+1,d:s.getDate(),h:s.getHours(),mi:s.getMinutes()},D=r.timeZone;if(!D)return M;try{const Y=new Intl.DateTimeFormat("en-US",{timeZone:D,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(s),U={y:0,mo:1,d:1,h:0,mi:0};for(const Q of Y)Q.type==="year"?U.y=Number(Q.value):Q.type==="month"?U.mo=Number(Q.value):Q.type==="day"?U.d=Number(Q.value):Q.type==="hour"?U.h=Number(Q.value)%24:Q.type==="minute"&&(U.mi=Number(Q.value));return U}catch{return M}}function P(r,s){if(s==null||s==="")return null;if(typeof s=="number")return h(r,new Date(s));if(s instanceof Date)return h(r,s);if(typeof s=="string"){const M=s.trim();if($(r)==="time"){const Y=/^(\d{1,2}):(\d{2})/.exec(M);return Y?{y:null,mo:null,d:null,h:Number(Y[1]),mi:Number(Y[2])}:null}const D=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(M);return D?{y:Number(D[1]),mo:Number(D[2]),d:Number(D[3]),h:D[4]!=null?Number(D[4]):0,mi:D[5]!=null?Number(D[5]):0}:null}return null}function y(r,s){if(!s)return null;if($(r)==="time")return`${e(s.h)}:${e(s.mi)}`;const M=`${e(s.y)}-${e(s.mo)}-${e(s.d)}`;return $(r)==="date"?M:`${M}T${e(s.h)}:${e(s.mi)}`}function A(r,s){if(!s)return"";const M=$(r);if(M==="time")return`${e(s.h)}:${e(s.mi)}`;const D=r.locale||void 0,Y={dateStyle:"medium"};return M==="date-time"&&(Y.timeStyle="short"),new Intl.DateTimeFormat(D,Y).format(new Date(s.y,s.mo-1,s.d,s.h,s.mi))}function B(r,s){return s==null?!0:!(r.min!=null&&s<String(r.min)||r.max!=null&&s>String(r.max))}function O(r,s){return new Intl.DateTimeFormat(r.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+s))}function v(r,s){return new Intl.DateTimeFormat(r.locale||void 0,{month:"long",year:"numeric"}).format(new Date(s.y,s.mo-1,1))}function d(r){return String(r.y)}function u(r){const s=r.ownerDocument&&r.ownerDocument.defaultView,M=s&&typeof s.Event=="function"?s.Event:null;r.dispatchEvent(M?new M("change",{bubbles:!0}):{type:"change",bubbles:!0})}function _(r){try{const s=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return s==="h11"||s==="h12"}catch{return!1}}function w(r){try{const s=new Intl.DateTimeFormat(r.locale||void 0,{hour:"numeric",hour12:!0}),M=s.formatToParts(new Date(2021,0,1,9)).find(Y=>Y.type==="dayPeriod"),D=s.formatToParts(new Date(2021,0,1,15)).find(Y=>Y.type==="dayPeriod");if(M&&D)return{am:M.value,pm:D.value}}catch{}return null}function t(r){const s=r%12;return s===0?12:s}function o(r,s){return s?r===12?12:r+12:r===12?0:r}function l(r){if(typeof r!="string")return null;const s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(r.trim());if(!s)return null;const M={y:Number(s[1]),mo:Number(s[2]),d:Number(s[3])};return M.mo<1||M.mo>12||M.d<1||M.d>ee(M.y,M.mo)?null:M}function b(r,s,M){return`${e(r)}-${e(s)}-${e(M)}`}function p(r,s,M){return Date.UTC(r,s-1,M)/864e5}function m(r){const s=l(r);return s?p(s.y,s.mo,s.d):NaN}function f(r){const s=new Date(r*864e5);return{y:s.getUTCFullYear(),mo:s.getUTCMonth()+1,d:s.getUTCDate()}}function N(r){if(typeof r!="string")return null;const s=/^(\d{4})-(\d{2})$/.exec(r.trim());if(!s)return null;const M={y:Number(s[1]),mo:Number(s[2])};return M.mo<1||M.mo>12?null:M}function c(r,s){return`${e(r)}-${e(s)}`}function i(r,s){return r*12+(s-1)}function n(r){return{y:Math.floor(r/12),mo:r%12+1}}function a(r,s,M){const D=new Date(Date.UTC(r,s-1,M)),Y=D.getUTCDay()||7;D.setUTCDate(D.getUTCDate()+4-Y);const U=new Date(Date.UTC(D.getUTCFullYear(),0,1));return Math.ceil(((D-U)/864e5+1)/7)}}),Ne("packages/modules/form/controls/datepicker.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/date-shared.js"),y=P.pad,A=P.echoKey,B=P.modeOf,O=P.daysInMonth,v=P.parseValue,d=P.isoOf,u=P.displayOf,_=P.withinRange,w=P.weekdayName,t=P.monthTitle,o=P.dispatchChange,l=P.is12Hour,b=P.dayPeriods,p=P.to12Hour,m=P.to24Hour,N=q("packages/modules/form/controls/popup-layer.js").openInLayer,c=Object.freeze(["date","date-time","time"]),i="lat-form__datepicker-popup--above";function n(F,K){F.__fields=K,F.__input.value=u(F.__item,K),o(F)}function a(F,K){let{y:W,mo:ge}=F.__view,ve=F.__cursor+K;for(;ve<1;)ge-=1,ge<1&&(ge=12,W-=1),ve+=O(W,ge);let le=O(W,ge);for(;ve>le;)ve-=le,ge+=1,ge>12&&(ge=1,W+=1),le=O(W,ge);F.__view={y:W,mo:ge},F.__cursor=ve,r(F)}function r(F){const K=F.__item,W=F.ownerDocument,ge=F.__popup,ve=F.__view,le=B(K),x=F.__fields;for(;ge.firstChild;)ge.removeChild(ge.firstChild);if(le!=="time"){const L=W.createElement("div");L.className="lat-form__datepicker-head";const I=W.createElement("button");I.type="button",I.className="lat-form__datepicker-nav",I.setAttribute("aria-label",F.__t("form.datepicker.prev")),I.textContent="‹",I.addEventListener("click",()=>{s(F,-1)});const g=W.createElement("span");g.className="lat-form__datepicker-title",g.textContent=t(K,ve);const T=W.createElement("button");T.type="button",T.className="lat-form__datepicker-nav",T.setAttribute("aria-label",F.__t("form.datepicker.next")),T.textContent="›",T.addEventListener("click",()=>{s(F,1)}),L.appendChild(I),L.appendChild(g),L.appendChild(T),ge.appendChild(L);const X=W.createElement("div");X.className="lat-form__datepicker-weekdays";for(let j=0;j<7;j+=1){const k=W.createElement("span");k.textContent=w(K,j),X.appendChild(k)}ge.appendChild(X);const z=W.createElement("div");z.className="lat-form__datepicker-grid",z.setAttribute("role","grid"),z.tabIndex=0,F.__grid=z;const te=new Date(ve.y,ve.mo-1,1).getDay();for(let j=0;j<te;j+=1){const k=W.createElement("span");k.className="lat-form__datepicker-blank",z.appendChild(k)}const re=O(ve.y,ve.mo);for(let j=1;j<=re;j+=1){const k=W.createElement("button");k.type="button",k.className="lat-form__datepicker-day",k.setAttribute("role","gridcell"),k.textContent=String(j);const Z=d(K,{y:ve.y,mo:ve.mo,d:j,h:0,mi:0});_(K,Z)||(k.disabled=!0),x&&x.y===ve.y&&x.mo===ve.mo&&x.d===j&&k.classList.add("is-selected"),F.__cursor===j&&k.classList.add("is-focus"),k.addEventListener("click",()=>{const H={y:ve.y,mo:ve.mo,d:j,h:x?x.h:0,mi:x?x.mi:0};le==="date"?(F.__cursor=j,n(F,H),oe(F)):(F.__cursor=j,F.__fields=H,r(F))}),z.appendChild(k)}ge.appendChild(z),z.addEventListener("keydown",j=>{j.key==="ArrowLeft"?(j.preventDefault(),a(F,-1)):j.key==="ArrowRight"?(j.preventDefault(),a(F,1)):j.key==="ArrowUp"?(j.preventDefault(),a(F,-7)):j.key==="ArrowDown"?(j.preventDefault(),a(F,7)):j.key==="Home"?(j.preventDefault(),F.__cursor=1,r(F)):j.key==="End"?(j.preventDefault(),F.__cursor=O(ve.y,ve.mo),r(F)):(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),U(F))})}if(le!=="date"){const L=l(K)?b(K):null,I=!!L,g=W.createElement("div");g.className="lat-form__datepicker-time";const T=W.createElement("input");T.type="number",T.className="lat-form__datepicker-hour",T.min=I?"1":"0",T.max=I?"12":"23",T.step="1",T.setAttribute("aria-label",F.__t("form.datepicker.hour"));const X=W.createElement("span");X.textContent=":";const z=W.createElement("input");if(z.type="number",z.className="lat-form__datepicker-minute",z.min="0",z.max="59",z.step="1",z.setAttribute("aria-label",F.__t("form.datepicker.minute")),g.appendChild(T),g.appendChild(X),g.appendChild(z),ge.appendChild(g),F.__hour=T,F.__minute=z,T.addEventListener("change",()=>{M(F)}),z.addEventListener("change",()=>{M(F)}),F.__periods=L,F.__ampm=null,I){const re=W.createElement("button");re.type="button",re.className="lat-form__datepicker-ampm",F.__ampm=re;const j=()=>{F.__pm=!F.__pm,re.textContent=F.__pm?F.__periods.pm:F.__periods.am,M(F)};re.addEventListener("click",j),g.appendChild(re)}const te=W.createElement("button");te.type="button",te.className="lat-form__datepicker-done",te.textContent=F.__t("form.datepicker.done"),te.addEventListener("click",()=>{D(F)}),g.appendChild(te)}Y(F)}function s(F,K){let{y:W,mo:ge}=F.__view;ge+=K,ge<1&&(ge=12,W-=1),ge>12&&(ge=1,W+=1),F.__view={y:W,mo:ge},F.__cursor=Math.min(F.__cursor,O(W,ge)),r(F)}function M(F){const K=F.__fields;let W=F.__hour&&Number(F.__hour.value)||0;const ge=F.__minute&&Number(F.__minute.value)||0;F.__ampm&&(W=m(W,F.__pm===!0));const ve=B(F.__item)==="time"?{y:null,mo:null,d:null,h:W,mi:ge}:{y:K?K.y:F.__view.y,mo:K?K.mo:F.__view.mo,d:K?K.d:F.__cursor,h:W,mi:ge};F.__cursor=K?K.d:F.__cursor,n(F,ve),Y(F)}function D(F){F.__popup.hidden||(B(F.__item)!=="date"&&M(F),oe(F))}function Y(F){const K=F.__fields,W=F.__ampm&&F.__periods;if(F.__hour){const ge=K?K.h:0;F.__hour.value=y(W?p(ge):ge)}F.__minute&&(F.__minute.value=y(K?K.mi:0)),F.__ampm&&F.__periods&&(F.__pm=K?K.h>=12:!1,F.__ampm.textContent=F.__pm?F.__periods.pm:F.__periods.am)}function U(F){const K=F.__view,W=F.__fields,ge={y:K.y,mo:K.mo,d:F.__cursor,h:W?W.h:0,mi:W?W.mi:0};n(F,ge),oe(F)}function Q(F){if(F.__popup.hidden===!1||F.__item.disabled===!0||F.__item.readOnly===!0)return;const K=F.__fields,W=new Date;F.__view=K&&K.y!=null?{y:K.y,mo:K.mo}:{y:W.getFullYear(),mo:W.getMonth()+1},F.__cursor=K&&K.d!=null?K.d:W.getDate(),F.__popup.hidden=!1,r(F),F.__layer=N(F.__popup,F,{aboveClass:i,matchWidth:!1,onOffscreen:()=>oe(F)})}function oe(F){F.__popup.hidden=!0,F.__popup.classList.remove(i),F.__layer&&(F.__layer.close(),F.__layer=null)}V("datepicker",{kind:"field",build(F,K){const W=K.doc;h(W);const ge=W.createElement("div");ge.className="lat-form__datepicker",ge.__item=F,ge.__t=K.t||A,ge.__mode=B(F),ge.__fields=v(F,F.value),ge.__cursor=ge.__fields&&ge.__fields.d!=null?ge.__fields.d:new Date().getDate(),ge.__view=ge.__fields&&ge.__fields.y!=null?{y:ge.__fields.y,mo:ge.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const ve=W.createElement("input");ve.type="text",ve.className="lat-form__datepicker-input",F.name&&(ve.name=F.name),F.placeholder!=null&&(ve.placeholder=String(F.placeholder)),F.label!=null&&F.label!==""&&ve.setAttribute("aria-label",String(F.label)),ve.setAttribute("autocomplete","off"),ve.value=u(F,ge.__fields),ge.__input=ve;const le=W.createElement("button");le.type="button",le.className="lat-form__datepicker-toggle";const x=B(F)==="date";le.setAttribute("aria-label",ge.__t(x?"form.datepicker.open":"form.datepicker.openTime"));const L=ee(W,x?"calendar":"clock");L&&le.appendChild(L),ge.__toggle=le;const I=W.createElement("div");I.className="lat-form__datepicker-popup lat-form__datepicker",I.hidden=!0,ge.__popup=I,ge.appendChild(ve),ge.appendChild(le),ge.appendChild(I),ve.addEventListener("focus",()=>{Q(ge)}),le.addEventListener("click",()=>{Q(ge)}),ve.addEventListener("change",()=>{const z=v(F,ve.value);z?ge.__fields=z:ve.value=u(F,ge.__fields)}),ve.addEventListener("keydown",z=>{z.key==="Escape"&&oe(ge)}),ge.__ampm=null,ge.__periods=null,ge.__pm=!1;const g=z=>{ge.contains(z.target)||I.contains(z.target)||D(ge)},T=z=>{(ge.contains(z.target)||I.contains(z.target))&&(z.relatedTarget&&(ge.contains(z.relatedTarget)||I.contains(z.relatedTarget))||D(ge))},X=z=>{z.key==="Escape"&&(z.preventDefault(),D(ge),ge.__toggle.focus())};return W.addEventListener("pointerdown",g),W.addEventListener("focusout",T),I.addEventListener("keydown",X),Array.isArray(K.disposers)&&K.disposers.push(()=>{oe(ge),W.removeEventListener("pointerdown",g),W.removeEventListener("focusout",T),I.removeEventListener("keydown",X)}),ge},read(F){return d(F.__item,F.__fields)},write(F,K){F.__fields=v(F.__item,K),F.__input.value=u(F.__item,F.__fields),F.__fields&&F.__fields.y!=null&&(F.__view={y:F.__fields.y,mo:F.__fields.mo},F.__cursor=F.__fields.d)},state(F,K){F.__input.disabled=K.disabled===!0,F.__input.readOnly=K.readOnly===!0,F.__toggle.disabled=K.disabled===!0||K.readOnly===!0},validate(F,K,W){return _(K,W)?!0:typeof K.errorMessage=="string"&&K.errorMessage!==""?K.errorMessage:!1},focus(F){F.__input.focus()}})}),Ne("packages/modules/form/controls/daterange.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/date-shared.js"),y=P.echoKey,A=P.daysInMonth,B=P.weekdayName,O=P.monthTitle,v=P.yearTitle,d=P.dispatchChange,u=P.parseDay,_=P.dayISO,w=P.dayNumber,t=P.dayNumberOf,o=P.dayOfNumber,l=P.parseMonth,b=P.monthISO,p=P.monthIndex,m=P.monthOfIndex,f=P.isoWeek,N=" – ";function c(C){return C.props&&C.props.granularity==="month"?"month":"day"}function i(C){return C.props&&typeof C.props=="object"?C.props:{}}function n(C){return i(C).applyButton!==!1}function a(C){return i(C).weekNumbers===!0}function r(C){return i(C).clearable===!0}function s(C){const ne=i(C).firstDay;if(ne!=null){const se=Number(ne);if(Number.isFinite(se))return(se%7+7)%7}try{const se=new Intl.Locale(C.locale||void 0).weekInfo;if(se&&se.firstDay)return se.firstDay%7}catch{}return 0}function M(C){const ne=i(C).disabledDates;if(Array.isArray(ne)){const se=new Set(ne.map(String));return J=>se.has(J)}return typeof ne=="function"?se=>ne(se)===!0:null}function D(C,ne){return C.min!=null&&ne<String(C.min)||C.max!=null&&ne>String(C.max)}function Y(C,ne,se){return!!(D(C,ne)||se&&se(ne))}function U(C,ne,se){if(C==null||ne==null)return null;if(se==="month"){const he=l(C),be=l(ne);return!he||!be?null:p(be.y,be.mo)-p(he.y,he.mo)}const J=t(C),ue=t(ne);return Number.isNaN(J)||Number.isNaN(ue)?null:ue-J}function Q(C,ne){return c(C)==="month"?ne("form.daterange.months"):ne("form.daterange.days")}function oe(C,ne){if(c(C)==="month")return[{label:ne("form.daterange.monthThisMonth"),range:J=>[b(J.getFullYear(),J.getMonth()+1),b(J.getFullYear(),J.getMonth()+1)]},{label:ne("form.daterange.monthLastMonth"),range:J=>{const ue=m(p(J.getFullYear(),J.getMonth()+1)-1);return[b(ue.y,ue.mo),b(ue.y,ue.mo)]}},{label:ne("form.daterange.monthLast3"),range:J=>{const ue=p(J.getFullYear(),J.getMonth()+1),he=m(ue-2),be=m(ue);return[b(he.y,he.mo),b(be.y,be.mo)]}},{label:ne("form.daterange.monthLast6"),range:J=>{const ue=p(J.getFullYear(),J.getMonth()+1),he=m(ue-5),be=m(ue);return[b(he.y,he.mo),b(be.y,be.mo)]}},{label:ne("form.daterange.monthLast12"),range:J=>{const ue=p(J.getFullYear(),J.getMonth()+1),he=m(ue-11),be=m(ue);return[b(he.y,he.mo),b(be.y,be.mo)]}},{label:ne("form.daterange.monthThisYear"),range:J=>[b(J.getFullYear(),1),b(J.getFullYear(),12)]},{label:ne("form.daterange.monthLastYear"),range:J=>[b(J.getFullYear()-1,1),b(J.getFullYear()-1,12)]}];const se=J=>_(J.getFullYear(),J.getMonth()+1,J.getDate());return[{label:ne("form.daterange.today"),range:J=>[se(J),se(J)]},{label:ne("form.daterange.yesterday"),range:J=>{const ue=o(w(J.getFullYear(),J.getMonth()+1,J.getDate())-1);return[_(ue.y,ue.mo,ue.d),_(ue.y,ue.mo,ue.d)]}},{label:ne("form.daterange.last7"),range:J=>{const ue=w(J.getFullYear(),J.getMonth()+1,J.getDate()),he=o(ue-6);return[_(he.y,he.mo,he.d),se(J)]}},{label:ne("form.daterange.last30"),range:J=>{const ue=w(J.getFullYear(),J.getMonth()+1,J.getDate()),he=o(ue-29);return[_(he.y,he.mo,he.d),se(J)]}},{label:ne("form.daterange.thisMonth"),range:J=>[_(J.getFullYear(),J.getMonth()+1,1),_(J.getFullYear(),J.getMonth()+1,A(J.getFullYear(),J.getMonth()+1))]},{label:ne("form.daterange.lastMonth"),range:J=>{const ue=m(p(J.getFullYear(),J.getMonth()+1)-1);return[_(ue.y,ue.mo,1),_(ue.y,ue.mo,A(ue.y,ue.mo))]}}]}function F(C,ne){const se=i(C).presets;return se===!1?null:Array.isArray(se)&&se.length?se.map(J=>({label:J&&J.label!=null?String(J.label):"",range:J&&J.range!=null?J.range:["",""]})):oe(C,ne)}function K(C,ne){return C==null&&ne==null?"":ne==null?`${C}${N}`:`${C}${N}${ne}`}function W(C,ne){const se=String(ne??"").trim();if(!se)return{start:null,end:null};const J=c(C)==="month"?/(\d{4}-\d{2})/g:/(\d{4}-\d{2}-\d{2})/g,ue=[];let he;for(;(he=J.exec(se))!==null;)ue.push(he[1]);if(ue.length===0)return null;const be=ue[0],Ee=ue.length>1?ue[ue.length-1]:null;if(c(C)==="month"){if(!l(be)||Ee&&!l(Ee))return null}else if(!u(be)||Ee&&!u(Ee))return null;return Ee&&be>Ee?{start:Ee,end:be}:{start:be,end:Ee}}function ge(C,ne){return new Intl.DateTimeFormat(C.locale||void 0,{month:"short"}).format(new Date(2021,ne-1,1))}function ve(C){const ne=C.__draftStart,se=C.__draftEnd;return ne!=null&&se!=null?[ne,se]:ne!=null&&C.__hover!=null&&C.__granularity==="day"?[ne,C.__hover]:ne!=null&&C.__hover!=null&&C.__granularity==="month"?[ne,C.__hover]:null}function le(C,ne){return C>=ne[0]&&C<=ne[1]}function x(C,ne){if(C.__granularity==="month"){const ue=p(C.__cursor.y,C.__cursor.mo)+ne,he=m(ue);C.__cursor=he,L(C),R(C);return}const se=w(C.__cursor.y,C.__cursor.mo,C.__cursor.d)+ne,J=o(se);C.__cursor=J,L(C),R(C)}function L(C){if(C.__granularity==="month"){C.__cursor.y<C.__view.y?C.__view={y:C.__cursor.y}:C.__cursor.y>C.__view.y+1&&(C.__view={y:C.__cursor.y-1});return}const se=p(C.__cursor.y,C.__cursor.mo),J=p(C.__view.y,C.__view.mo);se<J?C.__view={y:C.__cursor.y,mo:C.__cursor.mo}:se>J+1&&(C.__view=m(se-1))}function I(C,ne){if(C.__granularity==="month"){C.__view={y:C.__view.y+ne},R(C);return}const se=p(C.__view.y,C.__view.mo)+ne,J=m(se);C.__view=J,R(C)}function g(C,ne){return C&&ne&&C.y===ne.y&&C.mo===ne.mo&&(C.d==null||C.d===ne.d)}function T(C,ne){return C.__granularity==="month"?b(ne.y,ne.mo):_(ne.y,ne.mo,ne.d)}function X(C,ne){const se=T(C,ne);C.__phase!=="started"?(C.__draftStart=se,C.__draftEnd=null,C.__phase="started"):se<C.__draftStart?(C.__draftStart=se,C.__draftEnd=null):(C.__draftEnd=se,C.__phase="idle",n(C.__item)||z(C,!0)),C.__cursor=ne,C.__hover=null,R(C)}function z(C,ne){C.__start=C.__draftStart,C.__end=C.__draftEnd,C.__phase="idle",C.__input.value=K(C.__start,C.__end),d(C),ne&&xe(C)}function te(C){C.__draftStart=C.__start,C.__draftEnd=C.__end,C.__phase="idle",C.__hover=null,xe(C)}function re(C){C.__start=null,C.__end=null,C.__draftStart=null,C.__draftEnd=null,C.__phase="idle",C.__input.value="",d(C)}function j(C,ne,se){for(;se.firstChild;)se.removeChild(se.firstChild);const J=M(C.__item);if(C.__granularity==="month")E(C,ne,se,C.__view.y,J),E(C,ne,se,C.__view.y+1,J);else{k(C,ne,se,C.__view.y,C.__view.mo,J);const ue=m(p(C.__view.y,C.__view.mo)+1);k(C,ne,se,ue.y,ue.mo,J)}}function k(C,ne,se,J,ue,he){const be=C.__item,Ee=ne.createElement("div");Ee.className="lat-form__daterange-panel";const Oe=ne.createElement("div");Oe.className="lat-form__daterange-title",Oe.textContent=O(be,{y:J,mo:ue}),Ee.appendChild(Oe);const Ae=s(be),Ce=a(be),ye=ne.createElement("div");if(ye.className=Ce?"lat-form__daterange-weekdays lat-form__daterange-weekdays--weeks":"lat-form__daterange-weekdays",Ce){const we=ne.createElement("span");we.className="lat-form__daterange-weeknum-head",ye.appendChild(we)}for(let we=0;we<7;we+=1){const Se=ne.createElement("span");Se.textContent=B(be,(Ae+we)%7),ye.appendChild(Se)}Ee.appendChild(ye);const ke=ne.createElement("div");ke.className=Ce?"lat-form__daterange-grid lat-form__daterange-grid--weeks":"lat-form__daterange-grid",ke.setAttribute("role","grid"),ke.setAttribute("aria-label",O(be,{y:J,mo:ue})),ke.tabIndex=0,Ee.appendChild(ke);const De=(new Date(J,ue-1,1).getDay()-Ae+7)%7,He=A(J,ue),de=w(J,ue,1)-De,fe=[];for(let we=0;we<De;we+=1){Ce&&we%7===0&&ke.appendChild(Z(C,ne,de));const Se=ne.createElement("span");Se.className="lat-form__daterange-blank",ke.appendChild(Se)}for(let we=1;we<=He;we+=1){Ce&&(De+we-1)%7===0&&ke.appendChild(Z(C,ne,de+(De+we-1)));const Se=H(C,ne,J,ue,we,he);fe.push(Se),ke.appendChild(Se)}G(C,ke,fe),se.appendChild(Ee)}function Z(C,ne,se){const J=ne.createElement("span");J.className="lat-form__daterange-weeknum";const ue=new Date(se*864e5),he=se-(ue.getUTCDay()+6)%7,be=new Date(he*864e5);return J.textContent=String(f(be.getUTCFullYear(),be.getUTCMonth()+1,be.getUTCDate())),J}function H(C,ne,se,J,ue,he){const be=_(se,J,ue),Ee=ne.createElement("button");Ee.type="button",Ee.className="lat-form__daterange-day",Ee.setAttribute("role","gridcell"),Ee.textContent=String(ue);const Oe=ve(C),Ae=Oe?le(be,Oe):!1,Ce=Y(C.__item,be,he);return Ce&&(Ee.disabled=!0),Ae&&Ee.classList.add("is-in-range"),C.__draftStart===be&&Ee.classList.add("is-start"),C.__draftEnd===be&&Ee.classList.add("is-end"),Ee.setAttribute("aria-selected",Ae&&!Ce?"true":"false"),C.__cursor&&C.__cursor.y===se&&C.__cursor.mo===J&&C.__cursor.d===ue&&Ee.classList.add("is-focus"),Ee.addEventListener("click",()=>{X(C,{y:se,mo:J,d:ue})}),Ee.addEventListener("mouseover",()=>{C.__draftStart!=null&&C.__draftEnd==null&&!Ce&&C.__hover!==be&&(C.__hover=be,R(C))}),Ee}function E(C,ne,se,J,ue){const he=C.__item,be=ne.createElement("div");be.className="lat-form__daterange-panel";const Ee=ne.createElement("div");Ee.className="lat-form__daterange-title",Ee.textContent=v({y:J}),be.appendChild(Ee);const Oe=ne.createElement("div");Oe.className="lat-form__daterange-grid lat-form__daterange-grid--months",Oe.setAttribute("role","grid"),Oe.setAttribute("aria-label",v({y:J})),be.appendChild(Oe);const Ae=[];for(let Ce=1;Ce<=12;Ce+=1){const ye=b(J,Ce),ke=ne.createElement("button");ke.type="button",ke.className="lat-form__daterange-month",ke.setAttribute("role","gridcell"),ke.textContent=ge(he,Ce);const Le=ve(C),De=Le?le(ye,Le):!1,He=Y(he,ye,ue);He&&(ke.disabled=!0),De&&ke.classList.add("is-in-range"),C.__draftStart===ye&&ke.classList.add("is-start"),C.__draftEnd===ye&&ke.classList.add("is-end"),ke.setAttribute("aria-selected",De&&!He?"true":"false"),C.__cursor&&C.__cursor.y===J&&C.__cursor.mo===Ce&&C.__cursor.d==null&&ke.classList.add("is-focus"),ke.addEventListener("click",()=>{X(C,{y:J,mo:Ce})}),Ae.push(ke),Oe.appendChild(ke)}Oe.addEventListener("keydown",Ce=>{if(Ce.key==="ArrowLeft")Ce.preventDefault(),x(C,-1);else if(Ce.key==="ArrowRight")Ce.preventDefault(),x(C,1);else if(Ce.key==="ArrowUp")Ce.preventDefault(),x(C,-3);else if(Ce.key==="ArrowDown")Ce.preventDefault(),x(C,3);else if(Ce.key==="PageUp")Ce.preventDefault(),I(C,-1);else if(Ce.key==="PageDown")Ce.preventDefault(),I(C,1);else if(Ce.key==="Enter"||Ce.key===" "){Ce.preventDefault();const ye=T(C,C.__cursor);Y(C.__item,ye,ue)||X(C,C.__cursor)}}),se.appendChild(be)}function G(C,ne,se){ne.addEventListener("keydown",J=>{const ue=C.__cursor;if(J.key==="ArrowLeft")J.preventDefault(),x(C,-1);else if(J.key==="ArrowRight")J.preventDefault(),x(C,1);else if(J.key==="ArrowUp")J.preventDefault(),x(C,-7);else if(J.key==="ArrowDown")J.preventDefault(),x(C,7);else if(J.key==="PageUp")J.shiftKey?(J.preventDefault(),I(C,-12)):(J.preventDefault(),I(C,-1));else if(J.key==="PageDown")J.shiftKey?(J.preventDefault(),I(C,12)):(J.preventDefault(),I(C,1));else if((J.key==="Enter"||J.key===" ")&&(J.preventDefault(),ue&&ue.d!=null)){const he=_(ue.y,ue.mo,ue.d);Y(C.__item,he,M(C.__item))||X(C,ue)}})}function R(C){const ne=C.ownerDocument,se=C.__popup,J=C.__item;for(;se.firstChild;)se.removeChild(se.firstChild);const ue=ne.createElement("div");ue.className="lat-form__daterange-head";const he=ne.createElement("button");he.type="button",he.className="lat-form__daterange-nav",he.setAttribute("aria-label",C.__t("form.daterange.prev")),he.textContent="‹",he.addEventListener("click",()=>{I(C,-1)});const be=ne.createElement("button");be.type="button",be.className="lat-form__daterange-nav",be.setAttribute("aria-label",C.__t("form.daterange.next")),be.textContent="›",be.addEventListener("click",()=>{I(C,1)}),ue.appendChild(he);const Ee=ne.createElement("div");Ee.className="lat-form__daterange-body";const Oe=F(J,C.__t);if(Oe){const Ce=ne.createElement("div");Ce.className="lat-form__daterange-presets";const ye=ne.createElement("div");ye.className="lat-form__daterange-presets-title",ye.textContent=C.__t("form.daterange.presets"),Ce.appendChild(ye);for(const ke of Oe){const Le=ne.createElement("button");Le.type="button",Le.className="lat-form__daterange-preset",Le.textContent=ke.label,Le.addEventListener("click",()=>{ce(C,ke.range)}),Ce.appendChild(Le)}Ee.appendChild(Ce)}const Ae=ne.createElement("div");if(Ae.className="lat-form__daterange-panels",j(C,ne,Ae),Ee.appendChild(Ae),ue.appendChild(Ee),ue.appendChild(be),se.appendChild(ue),n(J)){const Ce=ne.createElement("div");Ce.className="lat-form__daterange-footer";const ye=ne.createElement("button");ye.type="button",ye.className="lat-form__daterange-cancel",ye.textContent=C.__t("form.daterange.cancel"),ye.addEventListener("click",()=>{te(C)});const ke=ne.createElement("button");ke.type="button",ke.className="lat-form__daterange-apply",ke.textContent=C.__t("form.daterange.apply"),ke.addEventListener("click",()=>{z(C,!0)}),Ce.appendChild(ye),Ce.appendChild(ke),se.appendChild(Ce)}}function ce(C,ne){const se=typeof ne=="function"?ne(new Date):ne;if(!(!Array.isArray(se)||se.length<2)){if(C.__draftStart=se[0],C.__draftEnd=se[1],C.__phase="idle",C.__hover=null,C.__granularity==="day"){const J=u(se[0]);J&&(C.__view={y:J.y,mo:J.mo}),C.__cursor=J||C.__cursor}else{const J=l(se[0]);J&&(C.__view={y:J.y}),C.__cursor=J||C.__cursor}R(C)}}function me(C){if(C.__popup.hidden===!1||C.__item.disabled===!0||C.__item.readOnly===!0)return;C.__draftStart=C.__start,C.__draftEnd=C.__end,C.__phase="idle",C.__hover=null;const ne=new Date;if(C.__granularity==="month"){const se=l(C.__start)||{y:ne.getFullYear(),mo:ne.getMonth()+1};C.__view={y:se.y},C.__cursor=se}else{const se=u(C.__start)||{y:ne.getFullYear(),mo:ne.getMonth()+1,d:ne.getDate()};C.__view={y:se.y,mo:se.mo},C.__cursor=se}C.__popup.hidden=!1,R(C)}function xe(C){C.__popup.hidden=!0}V("daterange",{kind:"field",build(C,ne){const se=ne.doc;h(se);const J=se.createElement("div");J.className="lat-form__daterange",J.__item=C,J.__t=ne.t||y,J.__granularity=c(C),J.__start=null,J.__end=null,J.__draftStart=null,J.__draftEnd=null,J.__hover=null,J.__phase="idle";const ue=typeof C.value=="object"&&C.value!=null?C.value:{};ue&&ue.start!=null&&(J.__start=String(ue.start)),ue&&ue.end!=null&&(J.__end=String(ue.end));const he=se.createElement("input");he.type="text",he.className="lat-form__daterange-input",C.name&&(he.name=C.name),C.placeholder!=null&&(he.placeholder=String(C.placeholder)),C.label!=null&&C.label!==""&&he.setAttribute("aria-label",String(C.label)),he.setAttribute("autocomplete","off"),he.value=K(J.__start,J.__end),J.__input=he;const be=se.createElement("button");be.type="button",be.className="lat-form__daterange-toggle",be.setAttribute("aria-label",J.__t("form.daterange.open"));const Ee=ee(se,"calendar");Ee&&be.appendChild(Ee),J.__toggle=be;const Oe=se.createElement("button");Oe.type="button",Oe.className="lat-form__daterange-clear",Oe.setAttribute("aria-label",J.__t("form.daterange.clear"));const Ae=ee(se,"close");Ae&&Oe.appendChild(Ae),Oe.hidden=!r(C)||J.__start==null&&J.__end==null,J.__clear=Oe;const Ce=se.createElement("div");Ce.className="lat-form__daterange-popup",Ce.hidden=!0,J.__popup=Ce,J.appendChild(he),J.appendChild(Oe),J.appendChild(be),J.appendChild(Ce),he.addEventListener("focus",()=>{me(J)}),be.addEventListener("click",()=>{me(J)}),Oe.addEventListener("click",()=>{re(J)}),he.addEventListener("change",()=>{const De=W(C,he.value);De?(J.__start=De.start,J.__end=De.end,he.value=K(De.start,De.end)):he.value=K(J.__start,J.__end)}),he.addEventListener("keydown",De=>{De.key==="Escape"&&(te(J),J.__toggle.focus())});const ye=De=>{J.contains(De.target)||te(J)},ke=De=>{De.relatedTarget&&J.contains(De.relatedTarget)||te(J)},Le=De=>{De.key==="Escape"&&(De.preventDefault(),te(J),J.__toggle.focus())};return se.addEventListener("pointerdown",ye),J.addEventListener("focusout",ke),Ce.addEventListener("keydown",Le),Array.isArray(ne.disposers)&&ne.disposers.push(()=>{se.removeEventListener("pointerdown",ye),J.removeEventListener("focusout",ke),Ce.removeEventListener("keydown",Le)}),J},read(C){return{start:C.__start,end:C.__end}},write(C,ne){const se=ne&&typeof ne=="object"?ne:{};C.__start=se.start!=null?String(se.start):null,C.__end=se.end!=null?String(se.end):null,C.__input.value=K(C.__start,C.__end),C.__clear&&(C.__clear.hidden=!r(C.__item)||C.__start==null&&C.__end==null)},state(C,ne){C.__input.disabled=ne.disabled===!0,C.__input.readOnly=ne.readOnly===!0,C.__toggle.disabled=ne.disabled===!0||ne.readOnly===!0},validate(C,ne,se){const J=se&&typeof se=="object"?se:{start:null,end:null},ue=J.start!=null?String(J.start):null,he=J.end!=null?String(J.end):null,be=C.__t;if(ne.required===!0&&ue==null&&he==null)return be("form.validation.required");if(ue==null&&he==null)return!0;if(ue==null||he==null)return be("form.daterange.invalid");if(D(ne,ue)||D(ne,he))return be("form.daterange.bounds");const Ee=U(ue,he,C.__granularity);if(Ee==null)return be("form.daterange.invalid");const Oe=i(ne).minSpan,Ae=i(ne).maxSpan;return Oe!=null&&Ee<Number(Oe)?be("form.daterange.minSpan",{min:String(Oe),unit:Q(ne,be)}):Ae!=null&&Ee>Number(Ae)?be("form.daterange.maxSpan",{max:String(Ae),unit:Q(ne,be)}):!0},focus(C){C.__input.focus()}})}),Ne("packages/modules/form/controls/file.js",function(S,q){"use strict";Object.defineProperty(S,"formatSize",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"accepts",{enumerable:!0,get:function(){return v}});const V=q("packages/modules/form/controls/registry.js").registerControl,$="lat-uploader",ee="http://www.w3.org/2000/svg",h="data-lattice-uploader-styles";function P(){return`
|
|
1534
|
+
.${$}{
|
|
1510
1535
|
--lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
|
|
1511
1536
|
--lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
|
|
1512
1537
|
--lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #b45309));
|
|
1513
1538
|
--lat-up-warning-soft:color-mix(in srgb, var(--lat-up-warning) 12%, var(--lattice-background));
|
|
1514
1539
|
display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2);min-width:0;
|
|
1515
1540
|
}
|
|
1516
|
-
@scope ([data-theme="dark"]){ .${
|
|
1517
|
-
@media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${
|
|
1541
|
+
@scope ([data-theme="dark"]){ .${$}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } }
|
|
1542
|
+
@media (prefers-color-scheme:dark){ @scope ([data-theme="auto"]){ .${$}{ --lat-up-warning:var(--lattice-variant-warning-solid, var(--lattice-warning, #d08b1e)); } } }
|
|
1518
1543
|
|
|
1519
|
-
.${
|
|
1544
|
+
.${$} input.${$}__input{
|
|
1520
1545
|
position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;
|
|
1521
1546
|
margin:0;padding:0;border:0;clip:rect(0 0 0 0);
|
|
1522
1547
|
}
|
|
1523
1548
|
|
|
1524
|
-
.${
|
|
1549
|
+
.${$}__zone{
|
|
1525
1550
|
display:flex;flex-direction:column;align-items:center;justify-content:center;
|
|
1526
1551
|
gap:calc(var(--lattice-space)/2);box-sizing:border-box;min-width:0;
|
|
1527
1552
|
min-height:calc(140px * var(--lattice-scale));
|
|
@@ -1534,106 +1559,106 @@ ${s}
|
|
|
1534
1559
|
background-color var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease),
|
|
1535
1560
|
box-shadow var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease);
|
|
1536
1561
|
}
|
|
1537
|
-
.${
|
|
1538
|
-
.${
|
|
1562
|
+
.${$}__zone:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-2px; }
|
|
1563
|
+
.${$}__zone[hidden]{ display:none; }
|
|
1539
1564
|
|
|
1540
|
-
.${
|
|
1541
|
-
.${
|
|
1542
|
-
.${
|
|
1565
|
+
.${$}__icon{ width:calc(28px * var(--lattice-scale)); height:calc(28px * var(--lattice-scale)); flex:0 0 auto; color:var(--lattice-accent); }
|
|
1566
|
+
.${$}__title{ display:flex; align-items:baseline; justify-content:center; gap:0.2em; flex-wrap:wrap; color:var(--lattice-foreground); font-weight:600; }
|
|
1567
|
+
.${$} button.${$}__browse{
|
|
1543
1568
|
box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;
|
|
1544
1569
|
border:0;border-radius:0;background:transparent;color:var(--lattice-accent);
|
|
1545
1570
|
font:inherit;line-height:inherit;font-weight:600;cursor:pointer;
|
|
1546
1571
|
text-decoration:underline;text-underline-offset:2px;
|
|
1547
1572
|
}
|
|
1548
|
-
.${
|
|
1549
|
-
.${
|
|
1550
|
-
.${
|
|
1551
|
-
.${
|
|
1552
|
-
.${
|
|
1553
|
-
.${
|
|
1573
|
+
.${$} button.${$}__browse:hover{ color:var(--lattice-focus-ring, var(--lattice-accent)); }
|
|
1574
|
+
.${$} button.${$}__browse:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
1575
|
+
.${$}__drop{ display:none; color:var(--lattice-foreground); font-weight:600; }
|
|
1576
|
+
.${$}__hint{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); }
|
|
1577
|
+
.${$}__compact{ display:none; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-foreground); }
|
|
1578
|
+
.${$}__compact svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-accent); }
|
|
1554
1579
|
|
|
1555
|
-
.${
|
|
1580
|
+
.${$}__zone.is-compact{
|
|
1556
1581
|
flex-direction:row;justify-content:flex-start;text-align:left;min-height:0;
|
|
1557
1582
|
padding:calc(var(--lattice-space) * 1.25);gap:calc(var(--lattice-space)/2);
|
|
1558
1583
|
}
|
|
1559
|
-
.${
|
|
1560
|
-
.${
|
|
1561
|
-
.${
|
|
1562
|
-
.${
|
|
1584
|
+
.${$}__zone.is-compact .${$}__icon,
|
|
1585
|
+
.${$}__zone.is-compact .${$}__title,
|
|
1586
|
+
.${$}__zone.is-compact .${$}__hint{ display:none; }
|
|
1587
|
+
.${$}__zone.is-compact .${$}__compact{ display:inline-flex; }
|
|
1563
1588
|
|
|
1564
|
-
.${
|
|
1589
|
+
.${$}__zone.is-dragover{
|
|
1565
1590
|
border-color:var(--lattice-accent);border-style:solid;
|
|
1566
1591
|
background:var(--lat-up-accent-soft);
|
|
1567
1592
|
box-shadow:0 0 0 3px color-mix(in srgb, var(--lattice-accent) 18%, transparent);
|
|
1568
1593
|
}
|
|
1569
|
-
.${
|
|
1570
|
-
.${
|
|
1571
|
-
.${
|
|
1572
|
-
.${
|
|
1594
|
+
.${$}__zone.is-dragover .${$}__title{ display:none; }
|
|
1595
|
+
.${$}__zone.is-dragover .${$}__drop{ display:block; }
|
|
1596
|
+
.${$}__zone.is-dragover .${$}__compact{ display:none; }
|
|
1597
|
+
.${$}__zone.is-invalid{
|
|
1573
1598
|
border-color:var(--lat-up-warning);border-style:solid;
|
|
1574
1599
|
background:var(--lat-up-warning-soft);
|
|
1575
1600
|
box-shadow:0 0 0 3px color-mix(in srgb, var(--lat-up-warning) 18%, transparent);
|
|
1576
1601
|
}
|
|
1577
|
-
.${
|
|
1578
|
-
.${
|
|
1579
|
-
.${
|
|
1580
|
-
.${
|
|
1602
|
+
.${$}__zone.is-invalid .${$}__icon,
|
|
1603
|
+
.${$}__zone.is-invalid .${$}__title,
|
|
1604
|
+
.${$}__zone.is-invalid .${$}__drop,
|
|
1605
|
+
.${$}__zone.is-invalid .${$}__compact{ color:var(--lat-up-warning); }
|
|
1581
1606
|
|
|
1582
|
-
.${
|
|
1583
|
-
.${
|
|
1607
|
+
.${$}__list{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(var(--lattice-space)/2); }
|
|
1608
|
+
.${$}__list[hidden]{ display:none; }
|
|
1584
1609
|
|
|
1585
|
-
.${
|
|
1610
|
+
.${$}__item{
|
|
1586
1611
|
display:flex;align-items:center;gap:calc(var(--lattice-space)/2);box-sizing:border-box;
|
|
1587
1612
|
min-height:var(--lattice-row-height);padding:calc(var(--lattice-space)/2) calc(var(--lattice-space));
|
|
1588
1613
|
border:var(--lattice-border-width) solid var(--lattice-border-color);
|
|
1589
1614
|
border-radius:var(--lattice-radius);background:var(--lattice-background);
|
|
1590
1615
|
}
|
|
1591
|
-
.${
|
|
1592
|
-
.${
|
|
1593
|
-
.${
|
|
1594
|
-
.${
|
|
1595
|
-
.${
|
|
1596
|
-
.${
|
|
1597
|
-
.${
|
|
1598
|
-
.${
|
|
1599
|
-
.${
|
|
1600
|
-
.${
|
|
1601
|
-
.${
|
|
1602
|
-
.${
|
|
1603
|
-
.${
|
|
1604
|
-
.${
|
|
1605
|
-
.${
|
|
1606
|
-
.${
|
|
1616
|
+
.${$}__item-icon{ width:var(--lattice-control-size); height:var(--lattice-control-size); flex:0 0 auto; color:var(--lattice-foreground-muted); }
|
|
1617
|
+
.${$}__item-thumb{ width:calc(var(--lattice-control-size) + 8px); height:calc(var(--lattice-control-size) + 8px); flex:0 0 auto; object-fit:cover; border-radius:calc(var(--lattice-radius)/2); }
|
|
1618
|
+
.${$}__item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(var(--lattice-space)/4); }
|
|
1619
|
+
.${$}__item-row{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); min-width:0; }
|
|
1620
|
+
.${$}__item-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
1621
|
+
.${$}__item-size{ color:var(--lattice-foreground-muted); font-size:calc(var(--lattice-font-size) - 2px); flex:0 0 auto; }
|
|
1622
|
+
.${$}__item-state{ display:inline-flex; align-items:center; gap:calc(var(--lattice-space)/4); flex:0 0 auto; color:var(--lattice-foreground-muted); }
|
|
1623
|
+
.${$}__item-state svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
|
|
1624
|
+
.${$}__item.is-done .${$}__item-state{ color:var(--lattice-success); }
|
|
1625
|
+
.${$}__item.is-error .${$}__item-state,
|
|
1626
|
+
.${$}__item.is-rejected .${$}__item-state{ color:var(--lattice-danger); }
|
|
1627
|
+
.${$}__item-pct{ font-variant-numeric:tabular-nums; }
|
|
1628
|
+
.${$}__item-bar{ display:block; height:3px; border-radius:2px; background:color-mix(in srgb, var(--lattice-border-color) 60%, transparent); overflow:hidden; }
|
|
1629
|
+
.${$}__item-fill{ display:block; height:100%; background:var(--lattice-accent); transition:width var(--lattice-motion-duration, 120ms) var(--lattice-motion-easing, ease); }
|
|
1630
|
+
.${$}__item-message{ display:flex; align-items:center; gap:calc(var(--lattice-space)/2); color:var(--lattice-danger); font-size:calc(var(--lattice-font-size) - 2px); }
|
|
1631
|
+
.${$} button.${$}__retry{
|
|
1607
1632
|
box-sizing:border-box;width:auto;height:auto;min-height:0;margin:0;padding:0;border:0;border-radius:0;
|
|
1608
1633
|
background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:pointer;
|
|
1609
1634
|
text-decoration:underline;text-underline-offset:2px;
|
|
1610
1635
|
}
|
|
1611
|
-
.${
|
|
1612
|
-
.${
|
|
1636
|
+
.${$} button.${$}__retry:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
1637
|
+
.${$} button.${$}__remove{
|
|
1613
1638
|
display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
|
|
1614
1639
|
width:calc(var(--lattice-row-height) - 8px);height:calc(var(--lattice-row-height) - 8px);
|
|
1615
1640
|
min-height:0;margin:0;padding:0;border:0;border-radius:var(--lattice-radius);
|
|
1616
1641
|
background:none;color:var(--lattice-foreground-muted);cursor:pointer;flex:0 0 auto;
|
|
1617
1642
|
}
|
|
1618
|
-
.${
|
|
1619
|
-
.${
|
|
1620
|
-
.${
|
|
1643
|
+
.${$} button.${$}__remove svg{ width:var(--lattice-control-size); height:var(--lattice-control-size); }
|
|
1644
|
+
.${$} button.${$}__remove:hover{ background:color-mix(in srgb, var(--lattice-foreground) 8%, transparent); color:var(--lattice-foreground); }
|
|
1645
|
+
.${$} button.${$}__remove:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:-1px; }
|
|
1621
1646
|
|
|
1622
|
-
.${
|
|
1623
|
-
.${
|
|
1647
|
+
.${$}[aria-disabled='true']{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
|
|
1648
|
+
.${$}[aria-disabled='true'] .${$}__item{
|
|
1624
1649
|
background:var(--lattice-disabled-background); border-color:var(--lattice-disabled-border);
|
|
1625
1650
|
}
|
|
1626
|
-
.${
|
|
1627
|
-
.${
|
|
1628
|
-
.${
|
|
1651
|
+
.${$}[aria-readonly='true']{ cursor:default; }
|
|
1652
|
+
.${$} button:disabled{ color:var(--lattice-disabled-foreground); cursor:not-allowed; }
|
|
1653
|
+
.${$}__live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
|
|
1629
1654
|
|
|
1630
1655
|
@media (prefers-reduced-motion: reduce){
|
|
1631
|
-
.${
|
|
1632
|
-
.${
|
|
1633
|
-
.${
|
|
1656
|
+
.${$}__zone{ transition:none; }
|
|
1657
|
+
.${$}__zone.is-dragover, .${$}__zone.is-invalid{ box-shadow:none; }
|
|
1658
|
+
.${$}__item-fill{ transition:none; }
|
|
1634
1659
|
}
|
|
1635
|
-
`.trim()}function C(o){const d=o&&o.documentElement;if(!d||d.getAttribute(g))return;d.setAttribute(g,"1");const l=o.createElement("style");l.textContent=L(),(o.head||o.body||d).appendChild(l)}function A(o,d){const l=d&&d.defaultView,s=l&&l.Event,r=s?new s("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};o.dispatchEvent(r)}function H(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function T(o){const d=Number(o)||0;return d<1024?`${d} B`:d<1048576?`${(d/1024).toFixed(d<10240?1:0)} KB`:d<1073741824?`${(d/1048576).toFixed(1)} MB`:`${(d/1073741824).toFixed(2)} GB`}function v(o,d){if(!d||!d.length)return!0;const l=(o.name||"").toLowerCase(),s=(o.type||"").toLowerCase();return d.some(r=>{const i=String(r).trim().toLowerCase();return i.startsWith(".")?l.endsWith(i):i.endsWith("/*")?s.startsWith(i.slice(0,-1)):s===i})}function f(o){return o.length?o.length===1?o[0]:o.length===2?`${o[0]} or ${o[1]}`:`${o.slice(0,-1).join(", ")} or ${o[o.length-1]}`:""}function u(o){const d={".pdf":"PDF",".doc":"DOC",".docx":"DOCX",".xls":"XLS",".xlsx":"XLSX",".csv":"CSV",".txt":"TXT",".png":"PNG",".jpg":"JPG",".jpeg":"JPEG",".gif":"GIF",".svg":"SVG",".webp":"WEBP",".zip":"ZIP","image/*":"images","video/*":"videos","audio/*":"audio","text/*":"text","application/pdf":"PDF"},l=String(o).trim(),s=d[l.toLowerCase()];if(s)return s;if(l.startsWith("."))return l.slice(1).toUpperCase();if(l.endsWith("/*"))return`${l.slice(0,-2)}s`;const r=l.split("/")[1];return r?r.toUpperCase():l}function h(o,d,l,s){const r=[];return d&&d.length&&r.push(f(d.map(u))),l&&r.push(o("form.file.hint.size",{size:T(l)})),s&&r.push(o(s===1?"form.file.hint.file":"form.file.hint.files",{max:String(s)})),r.join(" · ")}function x(o){return{id:o.id,name:o.name,size:o.size,type:o.type,status:o.status,progress:o.progress,message:o.message||""}}function t(o,d){const l=o.createElementNS(re,"svg");l.setAttribute("viewBox","0 0 16 16"),l.setAttribute("focusable","false"),l.setAttribute("aria-hidden","true"),l.setAttribute("fill","none"),l.setAttribute("stroke","currentColor"),l.setAttribute("stroke-width","1.5"),l.setAttribute("stroke-linecap","round"),l.setAttribute("stroke-linejoin","round");const s=o.createElementNS("http://www.w3.org/2000/svg","path");return s.setAttribute("d",d),l.appendChild(s),l}const n=Object.freeze({upload:"M8 11V3m0 0L4.5 6.5M8 3l3.5 3.5M3 13h10",file:"M4 2h5l3 3v9H4zM9 2v3h3",image:"M2 3h12v10H2zM5 11l3-3 2 2 1.5-1.5L14 11M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",document:"M4 2h5l3 3v9H4zM9 2v3h3M6 9h4M6 12h4",check:"M3 8.5l3 3 7-7",xmark:"M4 4l8 8M12 4l-8 8",warn:"M8 3l6 11H2zM8 7v3M8 12.2v.1",retry:"M13.5 8A5.5 5.5 0 1 1 8 2.5M8 2.5V5m0-2.5L5.5 2.5"});function a(o,d){const l=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let s;for(;s=l.exec(d);)o.setAttribute(s[1],s[3]===void 0?s[4]:s[3])}function m(o,d){const l=/<svg\b([^>]*)>/i.exec(d);if(!l)return null;const s=o.createElementNS(re,"svg");a(s,l[1]);const r=d.lastIndexOf("</svg"),i=r===-1?"":d.slice(l.index+l[0].length,r),B=/<(\w+)\b([^>]*?)(\/?)>/g;let z;for(;z=B.exec(i);){const W=o.createElementNS(re,z[1]);a(W,z[2]),s.appendChild(W)}return s.setAttribute("aria-hidden","true"),s.setAttribute("focusable","false"),s}function E(o,d){if(o===!1)return null;if(o!=null&&typeof o=="object"&&o.nodeType){const s=o;return s.classList.add(`${O}__icon`),s.setAttribute("aria-hidden","true"),s}if(typeof o!="string"||o==="")return null;const l=n[o]?t(d,n[o]):m(d,o);return l?(l.setAttribute("class",`${O}__icon`),l):null}function _(o){const d=o.type||"";return d.startsWith("image/")?"image":d==="application/pdf"||/\.pdf$/i.test(o.name)?"document":"file"}function c(o){if(o.thumb)return o.thumb;if(!o.file||!/^image\//.test(o.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{o.thumb=URL.createObjectURL(o.file)}catch{o.thumb=null}return o.thumb}function S(o){if(o.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(o.thumb)}catch{}o.thumb=null}U("file",{kind:"field",build(o,d){const l=d.doc,s=d.t,r=o.props||{},i=Array.isArray(r.accept)?r.accept.map(w=>String(w)):[],B=Number(r.maxSize)||0,z=Number(r.maxFiles)||0,W=r.multiple!==!1,b=typeof r.upload=="function"?r.upload:null,J=r.dropzone!==!1,Q=r.dropText!=null?String(r.dropText):s("form.file.dropText"),ne=r.browseText!=null?String(r.browseText):s("form.file.browse"),Z=s("form.file.dropToUpload"),Y=s("form.file.addMore"),Ne=s("form.file.typeNotAccepted"),ve=r.hint!=null&&r.hint!==""?String(r.hint):h(s,i,B,z);C(l);const se=l.createElement("div");se.className=O;const k={accept:i,maxSize:B,maxFiles:z,multiple:W,upload:b,dropText:Q,browse:ne,dropToUpload:Z,addMore:Y,typeNotAccepted:Ne,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:J,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};se.__latFile=k;const I=l.createElement("input");I.type="file",I.className=`${O}__input`,I.tabIndex=-1,I.setAttribute("aria-hidden","true"),W&&(I.multiple=!0),i.length&&(I.accept=i.join(",")),se.appendChild(I),k.input=I;const F=l.createElement("div");F.className=`${O}__zone`,F.setAttribute("role","button"),F.tabIndex=0,F.setAttribute("aria-label",`${Q} ${ne}`);const p=r.icon==null?t(l,n.upload):E(r.icon,l);p&&(r.icon==null&&p.setAttribute("class",`${O}__icon`),F.appendChild(p));const D=l.createElement("span");D.className=`${O}__title`;const G=l.createElement("span");G.className=`${O}__title-rest`,G.textContent=Q,D.appendChild(G);const R=l.createElement("button");R.type="button",R.className=`${O}__browse`,R.tabIndex=-1,R.textContent=ne,D.appendChild(R),F.appendChild(D),k.titleRest=G,k.browseEl=R;const ee=l.createElement("span");if(ee.className=`${O}__drop`,ee.textContent=Z,F.appendChild(ee),ve){const w=l.createElement("span");w.className=`${O}__hint`,w.textContent=ve,F.appendChild(w)}const P=l.createElement("span");P.className=`${O}__compact`,P.appendChild(t(l,n.upload));const N=l.createElement("span");N.className=`${O}__compact-text`,N.textContent=Y,P.appendChild(N),F.appendChild(P),k.compactText=N,se.appendChild(F),k.zone=F;const y=l.createElement("ul");y.className=`${O}__list`,y.setAttribute("role","list"),y.hidden=!0,se.appendChild(y),k.list=y;const $=l.createElement("div");return $.className=`${O}__live`,$.setAttribute("role","status"),$.setAttribute("aria-live","polite"),se.appendChild($),k.live=$,se.__latAnnounce=w=>{k.live&&(k.live.textContent="",k.live.textContent=w)},se.__latDragState=w=>{k.zone.classList.toggle("is-dragover",w==="over"),k.zone.classList.toggle("is-invalid",w==="invalid"),w==="none"?(k.titleRest.textContent=k.dropText,k.browseEl.hidden=!1,k.compactText.textContent=k.addMore):w==="over"?(k.titleRest.textContent=k.dropToUpload,k.browseEl.hidden=!0,k.compactText.textContent=k.dropToUpload):(k.titleRest.textContent=k.typeNotAccepted,k.browseEl.hidden=!0,k.compactText.textContent=k.typeNotAccepted)},se.__latPaint=()=>{const w=k.disabled||k.readOnly||!k.dropzone;k.zone.hidden=w,k.zone.tabIndex=w?-1:0,w?k.zone.setAttribute("aria-disabled","true"):k.zone.removeAttribute("aria-disabled"),k.input.disabled=w;const V=k.entries.length>0;k.zone.classList.toggle("is-compact",V),k.zone.setAttribute("aria-label",V?k.addMore:`${k.dropText} ${k.browse}`),y.hidden=!k.entries.length,y.tabIndex=k.readOnly&&!k.disabled?0:-1,k.entries.some(ie=>ie.status==="rejected")?se.setAttribute("aria-invalid","true"):se.removeAttribute("aria-invalid"),y.textContent="";for(const ie of k.entries){const _e=l.createElement("li");_e.className=`${O}__item is-${ie.status}`,_e.setAttribute("data-id",ie.id),_e.setAttribute("role","listitem");const Oe=c(ie);if(Oe){const ue=l.createElement("img");ue.className=`${O}__item-thumb`,ue.src=Oe,ue.alt="",_e.appendChild(ue)}else{const ue=t(l,n[_(ie)]);ue.setAttribute("class",`${O}__item-icon`),_e.appendChild(ue)}const Se=l.createElement("div");Se.className=`${O}__item-main`,_e.appendChild(Se);const j=l.createElement("div");j.className=`${O}__item-row`,Se.appendChild(j);const te=l.createElement("span");te.className=`${O}__item-name`,te.textContent=ie.name,te.title=ie.name,j.appendChild(te);const ce=l.createElement("span");ce.className=`${O}__item-size`,ce.textContent=T(ie.size),j.appendChild(ce);const K=l.createElement("span");if(K.className=`${O}__item-state`,ie.status==="uploading"){const ue=l.createElement("span");ue.className=`${O}__item-pct`,ue.textContent=`${ie.progress}%`,K.appendChild(ue)}else ie.status==="done"?K.appendChild(t(l,n.check)):(ie.status==="error"||ie.status==="rejected")&&K.appendChild(t(l,n.warn));j.appendChild(K);const de=l.createElement("button");if(de.type="button",de.className=`${O}__remove`,de.setAttribute("aria-label",`${s("form.file.remove")} ${ie.name}`),de.title=s("form.file.remove"),de.appendChild(t(l,n.xmark)),de.setAttribute("data-remove",ie.id),de.disabled=k.disabled||k.readOnly,j.appendChild(de),ie.status==="uploading"){const ue=l.createElement("span");ue.className=`${O}__item-bar`,ue.setAttribute("role","progressbar"),ue.setAttribute("aria-valuemin","0"),ue.setAttribute("aria-valuemax","100"),ue.setAttribute("aria-valuenow",String(ie.progress));const be=l.createElement("span");be.className=`${O}__item-fill`,be.style.width=`${ie.progress}%`,ue.appendChild(be),Se.appendChild(ue)}if(ie.message){const ue=l.createElement("span");if(ue.className=`${O}__item-message`,ue.appendChild(l.createTextNode(ie.message)),ie.status==="error"){ue.appendChild(l.createTextNode(" "));const be=l.createElement("button");be.type="button",be.className=`${O}__retry`,be.textContent=s("form.file.retry"),be.setAttribute("data-retry",ie.id),be.disabled=k.disabled||k.readOnly,ue.appendChild(be)}Se.appendChild(ue)}y.appendChild(_e)}},se.__latUpload=w=>{if(!k.upload){w.status="done",w.progress=100,se.__latPaint();return}w.status="uploading",w.progress=0,w.message="";let V=null;typeof AbortController<"u"&&(V=new AbortController,k.controllers.set(w.id,V));const oe=V?V.signal:void 0,ie=Oe=>{w.progress=Math.max(0,Math.min(100,Number(Oe)||0)),w.status="uploading",se.__latPaint()};let _e;try{_e=k.upload(w.file,{onProgress:ie,signal:oe})}catch(Oe){_e=Promise.reject(Oe)}_e&&typeof _e.then=="function"&&_e.then(()=>{k.controllers.delete(w.id),w.status="done",w.progress=100,se.__latPaint(),se.__latAnnounce(s("form.file.uploaded",{name:w.name})),A(se,d.doc)},Oe=>{k.controllers.delete(w.id),w.status="error",w.message=Oe&&Oe.message?String(Oe.message):s("form.file.uploadFailed"),se.__latPaint(),se.__latAnnounce(s("form.file.failed",{name:w.name})),A(se,d.doc)})},se.__latTake=w=>{const V=[...w||[]];if(!V.length||k.disabled||k.readOnly)return;const oe=k.multiple?V:V.slice(0,1),ie=[],_e=[];let Oe=k.maxFiles?Math.max(0,k.maxFiles-k.entries.length):1/0;for(const Se of oe){if(Oe<=0){_e.push({file:Se,reason:"count"});continue}if(k.maxSize&&Se.size>k.maxSize){_e.push({file:Se,reason:"size"});continue}if(!v(Se,k.accept)){_e.push({file:Se,reason:"type"});continue}ie.push({id:H(),file:Se,name:Se.name,size:Se.size,type:Se.type,status:"selected",progress:0,message:""}),Oe-=1}if(ie.length){k.multiple||(k.entries=[]),k.entries.push(...ie),se.__latPaint(),A(se,d.doc),se.__latAnnounce(ie.length===1?s("form.file.addedOne"):s("form.file.added",{count:String(ie.length)}));for(const Se of ie)se.__latUpload(Se)}for(const Se of _e){const j=Se.reason==="size"?s("form.file.rejected.size",{size:T(k.maxSize)}):Se.reason==="type"?s("form.file.rejected.type"):s("form.file.rejected.count",{max:String(k.maxFiles)});k.entries.push({id:H(),file:Se.file,name:Se.file.name,size:Se.file.size,type:Se.file.type,status:"rejected",progress:0,message:j}),se.__latAnnounce(j)}se.__latPaint()},se.__latRemove=w=>{const V=k.controllers.get(w);V&&(V.abort(),k.controllers.delete(w));const oe=k.entries.find(ie=>ie.id===w);oe&&S(oe),k.entries=k.entries.filter(ie=>ie.id!==w),se.__latPaint(),A(se,d.doc)},se.__latRetry=w=>{if(k.disabled||k.readOnly)return;const V=k.entries.find(oe=>oe.id===w);!V||!V.file||V.status==="rejected"||(se.__latUpload(V),A(se,d.doc))},se.__latClick=w=>{if(k.disabled||k.readOnly)return;const V=w.target&&w.target.closest?w.target:null,oe=V&&V.closest?V.closest("[data-remove]"):null;if(oe&&se.contains(oe)){se.__latRemove(oe.getAttribute("data-remove"));return}const ie=V&&V.closest?V.closest("[data-retry]"):null;if(ie&&se.contains(ie)){se.__latRetry(ie.getAttribute("data-retry"));return}V&&V.closest&&V.closest(`.${O}__zone`)&&k.input.click()},se.__latKeydown=w=>{k.disabled||k.readOnly||(w.key==="Enter"||w.key===" "||w.key==="Spacebar")&&w.target===k.zone&&(w.preventDefault(),k.input.click())},se.__latChange=()=>{se.__latTake(k.input.files),k.input.value=""},se.__latDragKind=w=>{if(!k.accept.length)return"over";const V=w.dataTransfer;if(!V||!V.types||!V.types.length)return"over";const oe=Array.from(V.types);return oe.includes("Files")?"over":oe.every(ie=>!v({name:"",type:ie},k.accept))?"invalid":"over"},se.__latDrag=w=>{if(!(k.disabled||k.readOnly)){if(w.type==="dragenter"||w.type==="dragover"){w.preventDefault(),se.__latDragState(se.__latDragKind(w));return}if(w.type==="dragleave"){if(w.relatedTarget&&k.zone.contains(w.relatedTarget))return;se.__latDragState("none");return}w.type==="drop"&&(w.preventDefault(),se.__latDragState("none"),se.__latTake(w.dataTransfer&&w.dataTransfer.files))}},se.__latPaste=w=>{if(k.disabled||k.readOnly||!w.clipboardData)return;const V=[...w.clipboardData.files||[]];V.length&&(w.preventDefault(),se.__latTake(V))},I.addEventListener("change",se.__latChange),se.addEventListener("click",se.__latClick),se.addEventListener("keydown",se.__latKeydown),se.addEventListener("paste",se.__latPaste),J&&["dragenter","dragover","dragleave","drop"].forEach(w=>se.addEventListener(w,se.__latDrag)),se.__latPaint(),se},read(o){const d=o.__latFile;return d?d.entries.filter(l=>l.status!=="rejected").map(x):[]},write(o,d){const l=o.__latFile;if(!l)return;const s=Array.isArray(d)?d:[],r=l.entries.filter(i=>i.status==="rejected");for(const i of l.entries)r.includes(i)||S(i);l.entries=r;for(const i of s)l.entries.push({id:i&&i.id?String(i.id):H(),file:i&&i.file?i.file:null,name:i&&i.name!=null?String(i.name):"",size:i&&i.size!=null?Number(i.size):0,type:i&&i.type!=null?String(i.type):"",status:i&&i.status?String(i.status):"done",progress:i&&i.progress!=null?Number(i.progress):100,message:i&&i.message?String(i.message):""});o.__latPaint&&o.__latPaint()},state(o,d){const l=o.__latFile;l&&(l.disabled=d.disabled===!0,l.readOnly=d.readOnly===!0,l.disabled?o.setAttribute("aria-disabled","true"):o.removeAttribute("aria-disabled"),l.readOnly?o.setAttribute("aria-readonly","true"):o.removeAttribute("aria-readonly"),o.__latPaint&&o.__latPaint())},validate(o,d,l){const s=o.__latFile;if(!s)return null;const r=s.entries.find(i=>i.status==="rejected");return r&&r.message&&(!Array.isArray(l)||l.length===0)?r.message:s.maxFiles&&Array.isArray(l)&&l.length>s.maxFiles?`Too many files (max ${s.maxFiles})`:null}})}),je("packages/dom/src/editors/richtext-icons.js",function(M,X){"use strict";Object.defineProperty(M,"TOOL_GLYPHS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"letterGlyph",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"toolGlyph",{enumerable:!0,get:function(){return g}});const e="http://www.w3.org/2000/svg",U=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),O=Object.freeze({color:"M8 2.5l4 5.5a4 4 0 0 1-8 0zM4.5 12.5h7",alignLeft:"M3 4h10M3 8h6M3 12h10",alignCenter:"M3 4h10M5 8h6M3 12h10",alignRight:"M3 4h10M7 8h6M3 12h10",ul:"M3 5.5h.01M3 9.5h.01M3 13.5h.01M6 5.5h7M6 9.5h7M6 13.5h7",ol:"M2.5 4.5h.01M2.5 8.5h.01M2.5 12.5h.01M5 4.5h8M5 8.5h8M5 12.5h8",outdent:"M3 4h8M3 8h5M3 12h8M8 3v2M8 11v2",indent:"M5 4h8M5 8h5M5 12h8M10 3v2M10 11v2",link:"M6.5 9.5a3 3 0 0 0 3 3l2-2a3 3 0 0 0-3-3M9.5 6.5a3 3 0 0 0-3-3l-2 2a3 3 0 0 0 3 3",image:"M2 3h12v10H2zM5.5 11l2.5-3 2 2 1.5-1.5 2 2.5M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",clear:"M5 4h9M6 4l-.5 8a2 2 0 0 1-2 1.8A2 2 0 0 1 1.5 12L1 4M4 4V2.5h8V4M6 7v3M9.5 7v3",source:"M6 4L2.5 8 6 12M10 4l3.5 4L10 12",undo:"M3 7h6a3.5 3.5 0 0 1 0 7H5M3 7l2-2M3 7l2 2",redo:"M13 7H7a3.5 3.5 0 0 0 0 7h4M13 7l-2-2M13 7l-2 2"});function re(L,C){const A=U[C],H=L.createElementNS(e,"svg");H.setAttribute("viewBox","0 0 16 16"),H.setAttribute("width","16"),H.setAttribute("height","16"),H.setAttribute("focusable","false"),H.setAttribute("aria-hidden","true");const T=L.createElementNS(e,"text");return T.setAttribute("x","8"),T.setAttribute("y","12"),T.setAttribute("text-anchor","middle"),T.style.fontSize="12px",T.style.fill="currentColor",T.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',A.weight&&(T.style.fontWeight=A.weight),A.style&&(T.style.fontStyle=A.style),A.decoration&&(T.style.textDecoration=A.decoration),T.textContent=A.char,H.appendChild(T),H}function g(L,C){const A=L.createElementNS(e,"svg");A.setAttribute("viewBox","0 0 16 16"),A.setAttribute("focusable","false"),A.setAttribute("aria-hidden","true"),A.setAttribute("fill","none"),A.setAttribute("stroke","currentColor"),A.setAttribute("stroke-width","1.5"),A.setAttribute("stroke-linecap","round"),A.setAttribute("stroke-linejoin","round");const H=L.createElementNS(e,"path");return H.setAttribute("d",O[C]),A.appendChild(H),A}}),je("packages/modules/form/controls/swatches.js",function(M,X){"use strict";Object.defineProperty(M,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"hslToHex",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"buildSwatchButton",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"buildSwatchGrid",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),U=Object.freeze([0,24,48,84,140,168,196,224,268,320]),O=Object.freeze([.82,.66,.5,.36,.22]),re=.62,g=Object.freeze([.92,.76,.56,.36,.18]);function L(f,u,h){let x=h;return x<0&&(x+=1),x>1&&(x-=1),x<1/6?f+(u-f)*6*x:x<1/2?u:x<2/3?f+(u-f)*(2/3-x)*6:f}function C(f,u,h){const x=(f%360+360)%360/360;let t,n,a;if(u===0)t=h,n=h,a=h;else{const E=h<.5?h*(1+u):h+u-h*u,_=2*h-E;t=L(_,E,x+1/3),n=L(_,E,x),a=L(_,E,x-1/3)}const m=E=>Math.round(E*255).toString(16).padStart(2,"0");return`#${m(t)}${m(n)}${m(a)}`}const A=Object.freeze(U.map(f=>Object.freeze(O.map(u=>C(f,re,u))))),H=Object.freeze(g.map(f=>C(0,0,f)));function T(f,u,h={}){const x=f.createElement("button");return x.type="button",x.className="lat-form__swatch",x.style.background=u,x.setAttribute("role","option"),x.setAttribute("data-color",u),x.setAttribute("aria-selected",h.selected?"true":"false"),h.selected&&x.classList.add("is-selected"),x.title=h.title!=null?h.title:u,x.tabIndex=-1,x}function v(f,u,h={}){const x=f.createElement("div");x.className="lat-form__swatch-grid",x.setAttribute("role","listbox");const t=[];for(const n of u){const a=f.createElement("div");a.className=h.rowClass?`lat-form__swatch-row ${h.rowClass}`:"lat-form__swatch-row";const m=[];for(const E of n){const _=T(f,E,{selected:typeof h.isSelected=="function"&&h.isSelected(E),title:typeof h.title=="function"?h.title(E):void 0});a.appendChild(_),m.push(_)}x.appendChild(a),t.push(m)}return typeof h.onPick=="function"&&x.addEventListener("click",n=>{const a=n.target&&n.target.closest?n.target.closest(".lat-form__swatch"):null;a&&x.contains(a)&&h.onPick(a.getAttribute("data-color"),a)}),{el:x,rows:t}}}),je("packages/modules/form/controls/richtext.js",function(M,X){"use strict";Object.defineProperty(M,"sanitize",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"escapeHtml",{enumerable:!0,get:function(){return g}});const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/dom/src/editors/sanitize-richtext.js"),re=O.sanitizeRichText,g=O.escapeHtml,L=X("packages/dom/src/editors/richtext-icons.js"),C=L.letterGlyph,A=L.toolGlyph,H=L.TOOL_GLYPHS,T=X("packages/modules/form/controls/swatches.js"),v=T.DEFAULT_COLORS,f=T.buildSwatchGrid,u=re,h=Object.freeze({basic:["bold","italic","underline","color","lowercase","uppercase","|","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","undo","redo"],html:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","clear","source","|","undo","redo"],rich:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","image","clear","source","|","undo","redo"]}),x=Object.freeze(["bold","italic","underline","strike"]),t=Object.freeze({bold:"form.richtext.bold",italic:"form.richtext.italic",underline:"form.richtext.underline",strike:"form.richtext.strike",color:"form.richtext.color",heading:"form.richtext.heading",alignLeft:"form.richtext.alignLeft",alignCenter:"form.richtext.alignCenter",alignRight:"form.richtext.alignRight",ul:"form.richtext.ul",ol:"form.richtext.ol",outdent:"form.richtext.outdent",indent:"form.richtext.indent",link:"form.richtext.link",image:"form.richtext.image",clear:"form.richtext.clear",source:"form.richtext.source",undo:"form.richtext.undo",redo:"form.richtext.redo",lowercase:"form.richtext.lowercase",uppercase:"form.richtext.uppercase"});function n(c){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[c]||null}const a=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function m(c){return Array.isArray(c)?c.map(S=>String(S)):h[c]||h.basic}function E(c){return new Promise((S,o)=>{const d=new FileReader;d.onload=()=>S(d.result),d.onerror=()=>o(d.error||new Error("read failed")),d.readAsDataURL(c)})}U("richtext",{kind:"field",build(c,S){const o=S.doc,d=c.props||{},l=m(d.toolbar),s=Array.isArray(d.headings)?d.headings:a,r=Array.isArray(d.colors)?d.colors:v,i=d.linkTarget!=null?String(d.linkTarget):"_blank",B=Number(d.minHeight)||160,z=Number(d.maxHeight)||0,W=Number(d.maxImageSize)||0,b=typeof d.onImage=="function"?d.onImage:null,J=d.sanitizePaste!==!1,Q=d.allowedTags,ne=d.placeholder!=null?String(d.placeholder):S.t("form.richtext.placeholder"),Z=o.createElement("div");Z.className="lat-form__richtext";const Y={toolbar:l,headings:s,colors:r,linkTarget:i,minHeight:B,maxHeight:z,maxImageSize:W,onImage:b,sanitizePaste:J,allowedTags:Q,placeholder:ne,disabled:!1,readOnly:!1,toolbarEl:null,buttons:{},editor:null,source:null,popover:null,fileInput:null,range:null,sourceMode:!1,sourceDirty:!1,history:{stack:[],index:0},lastValue:null};Z.__latRt=Y;const Ne=u(o,c.value==null?"":String(c.value),Q,{});Y.history={stack:[Ne],index:0},Y.lastValue=Ne;const ve=o.createElement("div");ve.className="lat-form__richtext-toolbar",ve.setAttribute("role","toolbar"),ve.setAttribute("aria-label",S.t("form.richtext.formatting")),Y.toolbarEl=ve;for(const p of l){if(p==="|"){const G=o.createElement("span");G.className="lat-form__richtext-sep",G.setAttribute("role","separator"),ve.appendChild(G);continue}if(p==="heading"){const G=o.createElement("select");G.className="lat-form__richtext-select",G.title=S.t(t.heading),G.setAttribute("aria-label",S.t(t.heading)),G.setAttribute("data-item","heading");for(const[R,ee]of s){const P=o.createElement("option");P.value=R,P.textContent=String(ee),G.appendChild(P)}Y.buttons.heading=G,ve.appendChild(G);continue}const D=o.createElement("button");D.type="button",D.className="lat-form__richtext-btn",D.setAttribute("data-item",p),D.title=S.t(t[p]||p),D.setAttribute("aria-label",S.t(t[p]||p)),p==="lowercase"||p==="uppercase"?(D.className+=" lat-form__richtext-btntext",D.textContent=S.t(p==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):x.includes(p)?D.appendChild(C(o,p)):H[p]?D.appendChild(A(o,p)):D.textContent=p,Y.buttons[p]=D,ve.appendChild(D)}Z.appendChild(ve);const se=o.createElement("div");se.className="lat-form__richtext-popover",se.hidden=!0,Z.appendChild(se),Y.popover=se;const k=o.createElement("div");k.className="lat-form__richtext-editor",k.contentEditable=c.readOnly||c.disabled?"false":"true",k.setAttribute("role","textbox"),k.setAttribute("aria-multiline","true"),k.setAttribute("aria-label",c.label!=null?String(c.label):S.t("form.richtext.richText")),k.setAttribute("data-placeholder",ne),k.style.minHeight=`${B}px`,z&&(k.style.maxHeight=`${z}px`),k.innerHTML=Ne,Z.appendChild(k),Y.editor=k;const I=o.createElement("textarea");I.className="lat-form__richtext-source",I.setAttribute("aria-label",S.t("form.richtext.source")),I.spellcheck=!1,I.hidden=!0,Z.appendChild(I),Y.source=I;const F=o.createElement("input");return F.type="file",F.accept="image/*",F.className="lat-form__richtext-file",F.tabIndex=-1,F.setAttribute("aria-hidden","true"),Z.appendChild(F),Y.fileInput=F,Z.__latSave=()=>{const p=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;p&&p.rangeCount&&k.contains(p.anchorNode)&&(Y.range=p.getRangeAt(0).cloneRange())},Z.__latRestore=()=>{if(!Y.range)return;const p=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if(p)try{p.removeAllRanges(),p.addRange(Y.range)}catch{}},Z.__latRefresh=()=>{Object.entries(Y.buttons).forEach(([p,D])=>{const G=n(p);if(G&&G.state&&D.tagName==="BUTTON"){let R=!1;try{R=o.queryCommandState(G.state)}catch{R=!1}D.setAttribute("aria-pressed",R?"true":"false"),D.classList.toggle("is-active",R)}if(p==="heading"&&D.tagName==="SELECT"){let R="";try{R=String(o.queryCommandValue("formatBlock")||"").toLowerCase()}catch{R=""}const ee=[...D.options].some(P=>P.value===R);D.value=ee?R:"p"}})},Z.__latExec=(p,D)=>{k.focus(),Z.__latRestore();try{o.execCommand("styleWithCSS",!1,p==="foreColor")}catch{}try{o.execCommand(p,!1,D===void 0?null:D)}catch{}Z.__latAfterEdit()},Z.__latAfterEdit=()=>{const p=k.innerHTML,D=Y.history;D.stack[D.index]!==p&&(D.stack=D.stack.slice(0,D.index+1),D.stack.push(p),D.stack.length>200&&D.stack.shift(),D.index=D.stack.length-1),Z.__latRefresh();const G=u(o,p,Q,{}),R=Y.lastValue==null?u(o,D.stack[0]||"",Q,{}):Y.lastValue;Y.lastValue=G,_(Z,o,R,G)},Z.__latCaretEnd=()=>{const p=o.createRange();p.selectNodeContents(k),p.collapse(!1);const D=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;D&&(D.removeAllRanges(),D.addRange(p)),Y.range=p.cloneRange()},Z.__latUndo=()=>{const p=Y.history;if(p.index<=0)return;p.index-=1,k.innerHTML=p.stack[p.index],Z.__latCaretEnd(),Z.__latRefresh();const D=u(o,k.innerHTML,Q,{});Y.lastValue=D,_(Z,o,Y.lastValue,D)},Z.__latRedo=()=>{const p=Y.history;if(p.index>=p.stack.length-1)return;p.index+=1,k.innerHTML=p.stack[p.index],Z.__latCaretEnd(),Z.__latRefresh();const D=u(o,k.innerHTML,Q,{});Y.lastValue=D,_(Z,o,Y.lastValue,D)},Z.__latClosePopover=()=>{se.hidden=!0,se.textContent=""},Z.__latOpenPopover=(p,D)=>{if(se.textContent="",se.hidden=!1,se.style.left=`${Math.max(0,D.offsetLeft)}px`,p==="color"){const{el:G}=f(o,[r],{onPick:N=>{Z.__latRestore(),Z.__latExec("foreColor",N),Z.__latClosePopover()}});se.appendChild(G);const R=o.createElement("div");R.className="lat-form__richtext-poprow";const ee=o.createElement("input");ee.type="color",ee.className="lat-form__richtext-colorinput",ee.setAttribute("aria-label",S.t("form.richtext.colorCustom")),ee.addEventListener("input",()=>{Z.__latRestore(),Z.__latExec("foreColor",ee.value)});const P=o.createElement("button");P.type="button",P.className="lat-form__richtext-popbtn",P.textContent=S.t("form.richtext.colorRemove"),P.addEventListener("click",()=>{Z.__latRestore(),Z.__latExec("foreColor","inherit"),Z.__latClosePopover()}),R.appendChild(ee),R.appendChild(P),se.appendChild(R)}else{const G=Z.__latClosestLink(),R=o.createElement("input");R.type="url",R.className="lat-form__richtext-linkinput",R.placeholder=S.t("form.richtext.linkPlaceholder"),R.value=G&&G.getAttribute("href")||"",R.setAttribute("aria-label",S.t("form.richtext.linkLabel"));const ee=()=>{const y=R.value.trim();if(Z.__latRestore(),!y){Z.__latExec("unlink"),Z.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(y)){R.classList.add("is-invalid");return}if(G)G.setAttribute("href",y),Z.__latAfterEdit();else{const $=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if($&&$.isCollapsed){const w=i?` target="${g(i)}" rel="noopener noreferrer"`:"";Z.__latExec("insertHTML",u(o,`<a href="${g(y)}"${w}>${g(y)}</a>`,Q,{}))}else{Z.__latExec("createLink",y);const w=Z.__latClosestLink();w&&i&&(w.setAttribute("target",i),w.setAttribute("rel","noopener noreferrer"))}}Z.__latClosePopover()};R.addEventListener("keydown",y=>{y.key==="Enter"&&(y.preventDefault(),ee()),y.key==="Escape"&&Z.__latClosePopover()});const P=o.createElement("div");P.className="lat-form__richtext-poprow",P.appendChild(R);const N=o.createElement("button");if(N.type="button",N.className="lat-form__richtext-popbtn",N.textContent=G?S.t("form.richtext.linkUpdate"):S.t("form.richtext.linkAdd"),N.addEventListener("click",ee),P.appendChild(N),G){const y=o.createElement("button");y.type="button",y.className="lat-form__richtext-popbtn",y.textContent=S.t("form.richtext.linkRemove"),y.addEventListener("click",()=>{Z.__latRestore(),Z.__latExec("unlink"),Z.__latClosePopover()}),P.appendChild(y)}se.appendChild(P),setTimeout(()=>R.focus(),0)}},Z.__latClosestLink=()=>{const p=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if(!p||p.rangeCount===0)return null;let D=p.getRangeAt(0).commonAncestorContainer;D.nodeType===3&&(D=D.parentNode);const G=D.closest?D.closest("a"):null;return G&&k.contains(G)?G:null},Z.__latRun=p=>{if(Y.disabled||Y.readOnly)return;p!=="source"&&Y.sourceMode&&Z.__latToggleSource(!1),Z.__latRestore();const D=n(p);if(p==="color"||p==="link"){Z.__latOpenPopover(p,Y.buttons[p]);return}if(p==="undo"){Z.__latUndo();return}if(p==="redo"){Z.__latRedo();return}if(p==="source"){Z.__latToggleSource();return}if(p==="image"){Y.fileInput.click();return}if(p==="lowercase"||p==="uppercase"){Z.__latCase(p==="uppercase");return}if(D){Z.__latExec(D.cmd);return}},Z.__latCase=p=>{const D=o.defaultView&&o.defaultView.getSelection?o.defaultView.getSelection():null;if(!D||D.rangeCount===0||D.isCollapsed)return;const G=D.toString();Z.__latExec("insertText",p?G.toUpperCase():G.toLowerCase())},Z.__latToggleSource=p=>{const D=p===void 0?!Y.sourceMode:!!p;if(D===Y.sourceMode)return;D?(Y.source.value=u(o,k.innerHTML,Q,{}).replace(/></g,`>
|
|
1636
|
-
<`),k.hidden=!0,I.hidden=!1,I.focus()):(Y.sourceDirty&&(k.innerHTML=u(o,I.value,Q,{}),Y.sourceDirty=!1),I.hidden=!0,k.hidden=!1,k.focus()),Y.sourceMode=D;const G=Y.buttons.source;G&&(G.classList.toggle("is-active",D),G.setAttribute("aria-pressed",D?"true":"false")),Object.entries(Y.buttons).forEach(([R,ee])=>{R!=="source"&&(ee.disabled=D)}),D||Z.__latAfterEdit()},Z.__latInsertImage=async p=>{if(!/^image\//.test(p.type)||W&&p.size>W)return;let D;try{D=b?await b(p):await E(p)}catch{return}D&&Z.__latExec("insertHTML",u(o,`<img src="${g(D)}" alt="${g(p.name)}" style="max-width:100%">`,Q,{}))},Z.__latToolbarClick=p=>{const D=p.target&&p.target.closest?p.target.closest("[data-item]"):null;!D||!ve.contains(D)||D.tagName==="SELECT"||(p.preventDefault(),Z.__latRun(D.getAttribute("data-item")))},Z.__latToolbarDown=p=>{p.target&&p.target.closest&&p.target.closest(".lat-form__richtext-btn")&&p.preventDefault()},Z.__latSelect=p=>{p.target&&p.target.getAttribute&&p.target.getAttribute("data-item")==="heading"&&(Z.__latRestore(),Z.__latExec("formatBlock",p.target.value))},Z.__latInput=()=>{Z.__latAfterEdit()},Z.__latKey=p=>{if(!(p.ctrlKey||p.metaKey))return;const D=p.key.toLowerCase();D==="z"&&!p.shiftKey?(p.preventDefault(),Z.__latUndo()):D==="y"||D==="z"&&p.shiftKey?(p.preventDefault(),Z.__latRedo()):D==="k"&&Y.buttons.link&&(p.preventDefault(),Z.__latRun("link"))},Z.__latPaste=p=>{if(!J||!p.clipboardData)return;const D=p.clipboardData.getData("text/html"),G=p.clipboardData.getData("text/plain");if(!D&&!G)return;p.preventDefault();const R=D?u(o,D,Q,{stripStyles:!0}):g(G).replace(/\r?\n/g,"<br>");Z.__latExec("insertHTML",R)},Z.__latDrop=p=>{if(!J||!p.dataTransfer)return;const D=p.dataTransfer.files;if(D&&D.length){p.preventDefault();const P=D[0];P&&Z.__latInsertImage(P);return}const G=p.dataTransfer.getData("text/html"),R=p.dataTransfer.getData("text/plain");if(!G&&!R)return;p.preventDefault();const ee=G?u(o,G,Q,{stripStyles:!0}):g(R).replace(/\r?\n/g,"<br>");Z.__latExec("insertHTML",ee)},Z.__latBeforeInput=p=>{J&&(p.inputType==="insertFromDrop"||p.inputType==="insertFromPaste")&&p.preventDefault()},Z.__latSelChange=()=>{o.activeElement===k&&(Z.__latSave(),Z.__latRefresh())},Z.__latFile=()=>{const p=F.files&&F.files[0];F.value="",p&&Z.__latInsertImage(p)},Z.__latSourceInput=()=>{Y.sourceDirty=!0},Z.__latDocClick=p=>{se&&!se.hidden&&!se.contains(p.target)&&!ve.contains(p.target)&&Z.__latClosePopover()},ve.addEventListener("click",Z.__latToolbarClick),ve.addEventListener("mousedown",Z.__latToolbarDown),ve.addEventListener("change",Z.__latSelect),k.addEventListener("input",Z.__latInput),k.addEventListener("keydown",Z.__latKey),k.addEventListener("paste",Z.__latPaste),k.addEventListener("drop",Z.__latDrop),k.addEventListener("beforeinput",Z.__latBeforeInput),F.addEventListener("change",Z.__latFile),I.addEventListener("input",Z.__latSourceInput),o.addEventListener&&(o.addEventListener("selectionchange",Z.__latSelChange),o.addEventListener("mousedown",Z.__latDocClick,!0)),Z},read(c){const S=c.__latRt;return S?S.sourceMode?u(c.ownerDocument,S.source.value,S.allowedTags,{}):u(c.ownerDocument,S.editor.innerHTML,S.allowedTags,{}):""},write(c,S){const o=c.__latRt;if(!o)return;const d=c.ownerDocument,l=u(d,S==null?"":String(S),o.allowedTags,{});o.sourceMode&&(o.source.value=l),o.editor.innerHTML=l,o.history={stack:[l],index:0},o.lastValue=l},state(c,S){const o=c.__latRt;o&&(o.disabled=S.disabled===!0,o.readOnly=S.readOnly===!0,o.editor.contentEditable=o.disabled||o.readOnly?"false":"true",o.editor.tabIndex=o.readOnly?0:-1,o.readOnly?o.editor.setAttribute("aria-readonly","true"):o.editor.removeAttribute("aria-readonly"),o.disabled?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled"),o.readOnly?c.setAttribute("aria-readonly","true"):c.removeAttribute("aria-readonly"),Object.values(o.buttons).forEach(d=>{d.disabled=o.disabled||o.readOnly}))}});function _(c,S,o,d){const l=S&&S.defaultView,s=l&&l.Event,r=s?new s("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};c.dispatchEvent(r)}}),je("packages/modules/form/controls/rating.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=5,re=Object.freeze({star:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.2l-3.8 2 .7-4.3-3.1-3 4.3-.6z",heart:"M8 14s-5-3.2-5-6.3A2.9 2.9 0 0 1 8 5.7 2.9 2.9 0 0 1 13 7.7C13 10.8 8 14 8 14z"});function g(u){const h=String(u??"");return Object.hasOwn(re,h)?h:"star"}function L(u,h,x){return Math.min(Math.max(u,h),x)}function C(u,h){const x=h&&h.defaultView,t=x&&x.Event,n=t?new t("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(n)}function A(u,h,x){const t=u.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("focusable","false"),t.setAttribute("aria-hidden","true"),x?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const n=u.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",re[h]),t.appendChild(n),t}function H(u,h,x){const t=Number(u),n=Number.isFinite(t)?t:0,a=x?Math.round(n*2)/2:Math.round(n);return L(a,0,h)}function T(u,h){return Math.min(1,Math.max(0,u-(h-1)))}U("rating",{kind:"field",build(u,h){const x=h.doc,t=u.props||{},n=Math.max(1,Math.floor(Number(u.max!=null?u.max:t.max)||O)),a=t.allowHalf===!0,m=t.allowClear!==!1,E=t.showValue===!0,_=Array.isArray(t.labels)?t.labels:null,c=g(t.icons&&t.icons.filled?t.icons.filled:t.icon),S=g(t.icons&&t.icons.empty?t.icons.empty:`${c}-outline`),o=t.size==="lg"||t.size==="sm"?t.size:"md",d=x.createElement("div");d.className=`lat-form__rating lat-form__rating--${o}`,d.setAttribute("role","slider"),d.setAttribute("aria-valuemin","0"),d.setAttribute("aria-valuemax",String(n)),d.setAttribute("aria-label",u.label!=null?String(u.label):h.t("form.rating"));const l={value:H(u.value,n,a),max:n,allowHalf:a,allowClear:m,labels:_,showValue:E,filledName:c,emptyName:S,items:[],fills:[],valueEl:null};d.__latRating=l;const s=x.createElement("span");s.className="lat-form__rating-track",s.setAttribute("aria-hidden","true");for(let r=0;r<n;r++){const i=x.createElement("span");i.className="lat-form__rating-item",i.setAttribute("data-index",String(r)),_&&_[r]!=null&&_[r]!==""&&(i.title=String(_[r])),i.appendChild(A(x,S,!1));const B=x.createElement("span");B.className="lat-form__rating-fill",B.setAttribute("aria-hidden","true"),B.appendChild(A(x,c,!0)),i.appendChild(B),s.appendChild(i),l.items.push(i),l.fills.push(B)}if(d.appendChild(s),E){const r=x.createElement("span");r.className="lat-form__rating-value",r.setAttribute("aria-hidden","true"),d.appendChild(r),l.valueEl=r}return d.__latPaint=()=>{for(let r=0;r<l.items.length;r++){const i=T(l.value,r+1);l.items[r].setAttribute("data-fill",i>=1?"full":i>0?"half":"empty"),l.fills[r].style.width=`${(i*100).toFixed(2)}%`}d.setAttribute("aria-valuenow",String(l.value)),d.setAttribute("aria-valuetext",v(l)),l.valueEl&&(l.valueEl.textContent=f(l))},d.__latSet=r=>{l.value=H(r,n,a),d.__latPaint()},d.__latClear=()=>{l.value=0,d.__latPaint()},d.__latPick=(r,i)=>{let B=r+1;if(a&&i&&Number.isFinite(i.clientX)){const z=l.items[r].getBoundingClientRect();z&&z.width>0&&(B=i.clientX-z.left<z.width/2?r+.5:r+1)}m&&B===l.value&&(B=0),d.__latSet(B),C(d,h.doc)},d.addEventListener("click",r=>{if(l.disabled||l.readOnly)return;const i=r.target&&r.target.closest?r.target.closest(".lat-form__rating-item"):null;!i||!d.contains(i)||d.__latPick(Number(i.getAttribute("data-index")),r)}),d.__latKey=r=>{if(l.disabled||l.readOnly)return;const i=a?.5:1;let B=l.value;if(r.key==="ArrowRight"||r.key==="ArrowUp")B+=i;else if(r.key==="ArrowLeft"||r.key==="ArrowDown")B-=i;else if(r.key==="Home")B=0;else if(r.key==="End")B=n;else if(r.key==="Backspace"||r.key==="Delete")B=0;else return;r.preventDefault(),d.__latSet(B),C(d,h.doc)},d.addEventListener("keydown",d.__latKey),d.__latPaint(),d},read(u){return u.__latRating?u.__latRating.value:0},write(u,h){u.__latRating&&(u.__latRating.value=H(h,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,h){const x=u.__latRating;x&&(x.disabled=h.disabled===!0,x.readOnly=h.readOnly===!0,u.tabIndex=x.disabled?-1:0,x.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),x.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function v(u){const h=Math.round(u.value);return u.labels&&u.labels[h-1]&&u.value===h?u.labels[h-1]:`${u.value} of ${u.max}`}function f(u){return String(u.value)}}),je("packages/modules/form/controls/stage.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl;function O(L,C){const A=C&&C.defaultView,H=A&&A.Event,T=H?new H("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};L.dispatchEvent(T)}function re(L,C){return typeof C=="number"&&Number.isFinite(C)?Math.min(Math.max(Math.round(C),0),L.length-1):typeof C=="string"?L.indexOf(C):-1}function g(L,C,A){return`${L}, ${C+1} of ${A}`}U("stage",{kind:"field",build(L,C){const A=C.doc,H=L.props||{},T=Array.isArray(H.stages)?H.stages.map(a=>String(a)):[],v=H.clickable!==!1,f=H.showIcons!==!1,u=re(T,L.value!=null?L.value:H.current),h=re(T,H.completed),x=A.createElement("div");x.className="lat-form__stage",x.setAttribute("role","radiogroup"),x.setAttribute("aria-label",L.label!=null?String(L.label):C.t("form.stage"));const t=[],n={stages:T,value:u>=0?T[u]:null,index:u,completed:h,clickable:v,showIcons:f,disabled:!1,readOnly:!1,focus:u>=0?u:0};x.__latStage=n;for(let a=0;a<T.length;a++){const m=A.createElement(v?"button":"span");if(m.type=v?"button":void 0,m.className="lat-form__stage-step",m.setAttribute("data-index",String(a)),v&&(m.setAttribute("role","radio"),m.setAttribute("aria-label",g(T[a],a,T.length))),f){const _=A.createElementNS("http://www.w3.org/2000/svg","svg");_.setAttribute("viewBox","0 0 16 16"),_.setAttribute("aria-hidden","true"),_.setAttribute("class","lat-form__stage-check");const c=A.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d","M3 8.5l3 3 7-7"),c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","2"),c.setAttribute("stroke-linecap","round"),c.setAttribute("stroke-linejoin","round"),_.appendChild(c),m.appendChild(_)}const E=A.createElement("span");E.className="lat-form__stage-label",E.textContent=T[a],m.appendChild(E),x.appendChild(m),t.push(m)}return x.__latPaint=()=>{for(let a=0;a<t.length;a++){const m=a===n.index,E=!m&&n.completed>=0&&a<=n.completed;t[a].setAttribute("data-state",m?"current":E?"done":"todo"),n.clickable&&(t[a].setAttribute("aria-checked",m?"true":"false"),t[a].tabIndex=n.disabled?-1:a===n.focus?0:-1)}},x.__latSelect=a=>{const m=a>=0&&a<T.length?T[a]:null;m!==n.value&&(n.index=a>=0&&a<T.length?a:-1,n.value=m,n.focus=n.index>=0?n.index:0,x.__latPaint(),O(x,C.doc))},x.__latKey=a=>{if(n.disabled||n.readOnly||!n.clickable||!T.length)return;let m=n.focus;if(a.key==="ArrowRight"||a.key==="ArrowDown")m+=1;else if(a.key==="ArrowLeft"||a.key==="ArrowUp")m-=1;else if(a.key==="Home")m=0;else if(a.key==="End")m=T.length-1;else return;a.preventDefault();const E=Math.min(Math.max(m,0),T.length-1);n.focus=E,t[E].focus(),x.__latSelect(E)},v&&(x.addEventListener("click",a=>{if(n.disabled||n.readOnly)return;const m=a.target&&a.target.closest?a.target.closest(".lat-form__stage-step"):null;if(!m||!x.contains(m))return;const E=Number(m.getAttribute("data-index"));n.focus=E,x.__latSelect(E)}),x.addEventListener("keydown",x.__latKey)),x.__latPaint(),x},read(L){return L.__latStage?L.__latStage.value:null},write(L,C){const A=L.__latStage;if(!A)return;const H=C==null?-1:re(A.stages,C);A.index=H,A.value=H>=0?A.stages[H]:null,A.focus=H>=0?H:0,L.__latPaint()},state(L,C){const A=L.__latStage;A&&(A.disabled=C.disabled===!0,A.readOnly=C.readOnly===!0,A.readOnly?L.setAttribute("aria-readonly","true"):L.removeAttribute("aria-readonly"),A.disabled?L.setAttribute("aria-disabled","true"):L.removeAttribute("aria-disabled"),L.__latPaint())}})}),je("packages/modules/form/controls/chips.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O="M3 8.5l3 3 7-7";function re(C,A){const H=A&&A.defaultView,T=H&&H.Event,v=T?new T("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};C.dispatchEvent(v)}function g(C){if(typeof C=="string")return{value:C,label:C,icon:null,disabled:!1};if(C!==null&&typeof C=="object"){const A=C.value===void 0?String(C.label):C.value;return{value:A,label:C.label==null?String(A):String(C.label),icon:typeof C.icon=="string"&&C.icon!==""?C.icon:null,disabled:C.disabled===!0}}return{value:C,label:String(C),icon:null,disabled:!1}}function L(C,A,H){const T=C.createElementNS("http://www.w3.org/2000/svg","svg");T.setAttribute("viewBox","0 0 16 16"),T.setAttribute("focusable","false"),T.setAttribute("aria-hidden","true");const v=C.createElementNS("http://www.w3.org/2000/svg","path");return v.setAttribute("d",A),H?v.setAttribute("fill","currentColor"):(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","2"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")),T.appendChild(v),T}U("chips",{kind:"field",build(C,A){const H=A.doc,T=C.props||{},v=(Array.isArray(C.options)?C.options:[]).map(g),f=T.multiple===!0,u=T.allowEmpty===!0,h=T.wrap!==!1,x=C.max!=null&&Number.isFinite(Number(C.max))?Number(C.max):null,t=H.createElement("div");t.className=`lat-form__chips${h?"":" lat-form__chips--scroll"}`,t.setAttribute("role",f?"group":"radiogroup"),t.setAttribute("aria-label",C.label!=null?String(C.label):A.t("form.chips"));const n=[],a=new Set,m={options:v,multiple:f,allowEmpty:u,wrap:h,max:x,selected:a,disabled:!1,readOnly:!1,t:A.t};t.__latChips=m;for(let _=0;_<v.length;_++){const c=v[_],S=H.createElement("button");if(S.type="button",S.className="lat-form__chip",S.setAttribute("data-index",String(_)),S.disabled=c.disabled,f||S.setAttribute("role","radio"),c.icon){const d=L(H,c.icon,!0);d.setAttribute("class","lat-form__chip-icon"),S.appendChild(d)}const o=H.createElement("span");if(o.className="lat-form__chip-label",o.textContent=c.label,S.appendChild(o),f){const d=L(H,O,!1);d.setAttribute("class","lat-form__chip-check"),S.appendChild(d)}t.appendChild(S),n.push(S)}m.buttons=n,t.__latPaint=()=>{for(let _=0;_<n.length;_++){const c=v[_],S=a.has(c.value),o=n[_];o.disabled=c.disabled||m.disabled,f?(o.setAttribute("aria-pressed",S?"true":"false"),o.tabIndex=m.disabled?-1:0):(o.setAttribute("aria-checked",S?"true":"false"),o.tabIndex=m.disabled?-1:S?0:-1)}},t.__latValue=()=>{if(f)return v.filter(_=>a.has(_.value)).map(_=>_.value);for(const _ of v)if(a.has(_.value))return _.value;return null},t.__latToggle=_=>{const c=v[_];if(!(!c||c.disabled||m.disabled||m.readOnly)){if(f)if(a.has(c.value))a.delete(c.value);else{if(x!=null&&a.size>=x)return;a.add(c.value)}else if(a.has(c.value))if(m.allowEmpty)a.clear();else return;else a.clear(),a.add(c.value);t.__latPaint(),re(t,A.doc)}},t.addEventListener("click",_=>{const c=_.target&&_.target.closest?_.target.closest(".lat-form__chip"):null;!c||!t.contains(c)||t.__latToggle(Number(c.getAttribute("data-index")))}),t.__latKey=_=>{if(m.multiple||m.disabled||m.readOnly||!n.length)return;let c=-1;for(let l=0;l<n.length;l++)if(a.has(v[l].value)){c=l;break}let S=c;if(_.key==="ArrowRight"||_.key==="ArrowDown")S=c+1;else if(_.key==="ArrowLeft"||_.key==="ArrowUp")S=c-1;else if(_.key==="Home")S=0;else if(_.key==="End")S=v.length-1;else return;_.preventDefault();const o=_.key==="ArrowLeft"||_.key==="ArrowUp"?-1:1;let d=S;for(;d>=0&&d<v.length&&v[d].disabled;)d+=o;d<0||d>=v.length||(a.clear(),a.add(v[d].value),t.__latPaint(),n[d].focus(),re(t,A.doc))},t.addEventListener("keydown",t.__latKey);const E=C.value;if(f){const _=Array.isArray(E)?E:[];for(const c of _)v.some(S=>S.value===c)&&a.add(c)}else if(E!=null&&v.some(_=>_.value===E))a.add(E);else if(!u){const _=v.find(c=>!c.disabled)||v[0];_&&a.add(_.value)}return t.__latPaint(),t},read(C){return C.__latChips?C.__latValue():null},write(C,A){const H=C.__latChips;if(H){if(H.selected.clear(),H.multiple){const T=Array.isArray(A)?A:[];for(const v of T)H.options.some(f=>f.value===v)&&H.selected.add(v)}else if(A!=null&&H.options.some(T=>T.value===A))H.selected.add(A);else if(!H.allowEmpty){const T=H.options.find(v=>!v.disabled)||H.options[0];T&&H.selected.add(T.value)}C.__latPaint()}},validate(C,A,H){const T=C.__latChips;if(!T||!T.multiple)return null;const v=Array.isArray(H)?H.length:0,f=A.min!=null&&Number.isFinite(Number(A.min))?Number(A.min):null,u=A.max!=null&&Number.isFinite(Number(A.max))?Number(A.max):null;return f!=null&&v<f?{code:"min",message:T.t("form.chips.min",{min:String(f)})}:u!=null&&v>u?{code:"max",message:T.t("form.chips.max",{max:String(u)})}:null},state(C,A){const H=C.__latChips;H&&(H.disabled=A.disabled===!0,H.readOnly=A.readOnly===!0,H.readOnly?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly"),H.disabled?C.setAttribute("aria-disabled","true"):C.removeAttribute("aria-disabled"),C.__latPaint())}})}),je("packages/modules/form/controls/otp.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=6;function re(u){const h=Math.floor(Number(u));return Number.isFinite(h)&&h>=1?h:O}function g(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function L(u,h){return h==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function C(u,h){for(let x=u.length-1;x>=0;x-=1)if(L(u[x],h))return u[x];return""}function A(u,h,x){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(n=>L(n,h)).slice(0,x)}function H(u,h,x){const t=h&&h.defaultView,n=t&&t.Event,a=n?new n(x,{bubbles:!0}):{type:x,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(a)}function T(u,h){const x=A(h,u.mode,u.length);for(let t=0;t<u.length;t+=1)u.boxes[t].value=x[t]||""}function v(u){u.complete=u.boxes.every(h=>h.value!=="")}function f(u){return u.boxes.map(h=>h.value).join("")}U("otp",{kind:"field",domEvents:["complete"],build(u,h){const x=h.doc,t=u.props||{},n=re(t.length),a=g(u.mode!=null?u.mode:t.mode),m=t.mask===!0,E=x.createElement("div");E.className="lat-form__otp",E.setAttribute("role","group"),E.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):h.t("form.otp.label"));const _=[],c={length:n,mode:a,mask:m,boxes:_,complete:!1,disabled:!1,readOnly:!1};E.__latOtp=c;for(let o=0;o<n;o+=1){const d=x.createElement("input");d.type="text",d.className=`lat-form__otp-input${m?" lat-form__otp-input--masked":""}`,d.setAttribute("inputmode",a==="numeric"?"numeric":"text"),d.setAttribute("pattern",a==="numeric"?"[0-9]":"[A-Za-z0-9]"),d.setAttribute("maxlength","1"),d.setAttribute("aria-label",h.t("form.otp.digit",{n:o+1,total:n})),d.autocomplete=o===0?"one-time-code":"off",_.push(d),E.appendChild(d)}const S=()=>{if(E.__latPublishing)return;E.__latPublishing=!0;try{H(E,x,"input"),H(E,x,"change")}finally{E.__latPublishing=!1}const o=_.every(d=>d.value!=="");o&&!c.complete?(c.complete=!0,H(E,x,"complete")):!o&&c.complete&&(c.complete=!1)};return E.addEventListener("input",o=>{if(E.__latPublishing)return;o.stopImmediatePropagation();const d=o.target;if(!_.includes(d))return;d.value=C(d.value,a);const l=_.indexOf(d);d.value!==""&&l<n-1&&_[l+1].focus(),S()}),E.addEventListener("change",o=>{E.__latPublishing||o.stopImmediatePropagation()}),E.addEventListener("keydown",o=>{if(c.disabled||c.readOnly)return;const d=o.target;if(!_.includes(d))return;const l=_.indexOf(d);o.key==="Backspace"?(o.preventDefault(),d.value!==""?d.value="":l>0&&(_[l-1].value="",_[l-1].focus()),S()):o.key==="ArrowLeft"&&l>0?(o.preventDefault(),_[l-1].focus()):o.key==="ArrowRight"&&l<n-1?(o.preventDefault(),_[l+1].focus()):o.key.length===1&&!L(o.key,a)&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&o.preventDefault()}),E.addEventListener("paste",o=>{if(c.disabled||c.readOnly)return;o.preventDefault();const d=o.clipboardData&&typeof o.clipboardData.getData=="function"?o.clipboardData.getData("text"):"";T(c,d),(_.find(s=>s.value==="")||_[n-1]).focus(),S()}),E.focus=()=>{const o=_.find(d=>!d.disabled&&!d.readOnly&&d.value==="")||_[0];o&&o.focus()},E.blur=()=>{for(const o of _)o.blur()},T(c,u.value),v(c),E},read(u){return u.__latOtp?f(u.__latOtp):""},write(u,h){u.__latOtp&&(T(u.__latOtp,h),v(u.__latOtp))},state(u,h){const x=u.__latOtp;if(x){x.disabled=h.disabled===!0,x.readOnly=h.readOnly===!0;for(const t of x.boxes)t.disabled=x.disabled,t.readOnly=x.readOnly;x.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),x.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),je("packages/modules/form/controls/color.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,O=X("packages/modules/form/controls/field-icon.js"),re=O.makeFieldIcon,g=O.injectFieldIconStyles,L=X("packages/modules/form/controls/swatches.js"),C=L.DEFAULT_PALETTE,A=L.DEFAULT_GRAY_SHADES,H=L.buildSwatchGrid,T=L.hslToHex,v=10,f=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,u=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function h(k){return k}const x=new Set;function t(k,I){x.has(k)||(x.add(k),console.warn("[lattice]",I))}function n(k){if(typeof k!="string")return null;const I=k.trim();if(!f.test(I))return null;const F=I.replace(/^#/,"").toLowerCase();return`#${F.length===3?F.split("").map(D=>D+D).join(""):F}`}function a(k){if(typeof k!="string")return null;const I=n(k);if(I)return I;const F=u.exec(k.trim());if(!F)return null;const p=G=>Math.max(0,Math.min(255,Number(G))),D=G=>p(G).toString(16).padStart(2,"0");return`#${D(F[1])}${D(F[2])}${D(F[3])}`}function m(k){const I=n(k);return I?{r:parseInt(I.slice(1,3),16),g:parseInt(I.slice(3,5),16),b:parseInt(I.slice(5,7),16)}:null}function E(k,I,F){const p=D=>Math.max(0,Math.min(255,Math.round(D))).toString(16).padStart(2,"0");return`#${p(k)}${p(I)}${p(F)}`}function _(k,I,F){const p=k/255,D=I/255,G=F/255,R=Math.max(p,D,G),ee=Math.min(p,D,G),P=(R+ee)/2,N=R-ee;if(N===0)return{h:0,s:0,l:P};const y=P>.5?N/(2-R-ee):N/(R+ee);let $;return R===p?$=(D-G)/N%6:R===D?$=(G-p)/N+2:$=(p-D)/N+4,$*=60,$<0&&($+=360),{h:$,s:y,l:P}}function c(k){return T(k.h,k.s,k.l)}function S(k,I,F){const p=k.ownerDocument,D=p&&p.defaultView,G=D&&typeof D.CustomEvent=="function"?D.CustomEvent:null,R=G?new G(I,{bubbles:!0,detail:F}):{type:I,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:F,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};k.dispatchEvent(R)}function o(k){const I=k.props&&k.props.palette;return Array.isArray(I)&&I.length?I:C}function d(k){return!(k.props&&k.props.editable===!1)}function l(k){return!!(k.props&&k.props.clearable===!0)}function s(k){return!!(k.props&&k.props.pickerOnly===!0)}function r(k){return!(k.props&&k.props.grayShades===!1)}function i(k){const I=k.props&&k.props.icon;return typeof I=="string"&&I!==""?I:null}function B(k){const I=k.props&&k.props.customColors;return Array.isArray(I)?[...new Set(I.map(a).filter(Boolean))].slice(0,v):[]}function z(k){const I=n(k.__input.value);k.__swatchBtn.style.background=I||"transparent",k.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!I),k.__clearBtn&&(k.__clearBtn.hidden=k.__input.value.trim()==="")}function W(k,I){k.__value=I||null,k.__input.value=I||"",k.__lastCommittedText=I||"",z(k)}function b(k){if(d(k.__item)===!1)return;const I=k.__input.value.trim();if(I===k.__lastCommittedText)return;const F=n(I);(F||I==="")&&(k.__value=F,k.__lastCommittedText=I),S(k,"change")}function J(k,I){W(k,I),S(k,"change")}function Q(k,I){const F=k.__customColors,p=F.filter(G=>G!==I),D=[I,...p].slice(0,v);D.length===F.length&&D.every((G,R)=>G===F[R])||(k.__customColors=D,S(k,"customColorsChange",{colors:D}))}function ne(k){const I=k.__popover,F=k.ownerDocument,p=F&&F.defaultView,D=k.__field.getBoundingClientRect(),G=p?p.innerHeight:0,R=I.offsetHeight||0;G-D.bottom<R+4&&D.top>R+4?I.classList.add("lat-form__color-popover--above"):I.classList.remove("lat-form__color-popover--above")}function Z(k,I,F,p){let D=Math.max(0,Math.min(k.length-1,I.row+F)),G=I.col+p;if(p!==0){const R=k[D].length;G=Math.max(0,Math.min(R-1,G))}else G=Math.max(0,Math.min(k[D].length-1,G));return{row:D,col:G}}function Y(k){const I=k.__item,F=k.ownerDocument,p=k.__popover;for(;p.firstChild;)p.removeChild(p.firstChild);const D=[...o(I)];r(I)&&D.push([...A]),k.__customColors.length&&D.push([...k.__customColors]);const G=k.__value,{el:R,rows:ee}=H(F,D,{isSelected:N=>N===G,onPick:N=>{J(k,N),se(k,{restoreFocus:!0})}});R.classList.add("lat-form__color-grid"),p.appendChild(R);for(const N of ee)for(const y of N){if(y.getAttribute("aria-selected")!=="true")continue;const $=F.createElementNS("http://www.w3.org/2000/svg","svg");$.setAttribute("viewBox","0 0 16 16"),$.setAttribute("class","lat-form__color-check"),$.setAttribute("aria-hidden","true");const w=F.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),w.setAttribute("fill","none"),w.setAttribute("stroke","#fff"),w.setAttribute("stroke-width","2.6"),w.setAttribute("stroke-linecap","round"),w.setAttribute("stroke-linejoin","round"),w.setAttribute("paint-order","stroke"),$.appendChild(w);const V=F.createElementNS("http://www.w3.org/2000/svg","path");V.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),V.setAttribute("fill","none"),V.setAttribute("stroke","#000"),V.setAttribute("stroke-width","4.2"),V.setAttribute("stroke-linecap","round"),V.setAttribute("stroke-linejoin","round"),V.setAttribute("opacity","0.35"),$.insertBefore(V,w),y.appendChild($)}let P={row:0,col:0};e:for(let N=0;N<ee.length;N++)for(let y=0;y<ee[N].length;y++)if(ee[N][y].getAttribute("aria-selected")==="true"){P={row:N,col:y};break e}for(const N of ee)for(const y of N)y.tabIndex=-1;if(ee[P.row]&&ee[P.row][P.col]&&(ee[P.row][P.col].tabIndex=0),R.addEventListener("keydown",N=>{if(N.key==="Enter"||N.key===" "){N.preventDefault(),N.stopPropagation(),ee[P.row][P.col].click();return}const $={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[N.key];if(!$)return;N.preventDefault();for(const V of ee)for(const oe of V)oe.tabIndex=-1;P=Z(ee,P,$[0],$[1]);const w=ee[P.row][P.col];w.tabIndex=0,w.focus()}),!s(I)){const N=F.createElement("button");N.type="button",N.className="lat-form__color-custombtn",N.textContent=k.__t("form.color.customColor"),N.addEventListener("click",()=>{Ne(k,G)}),p.appendChild(N)}ne(k)}function Ne(k,I){const F=k.__item,p=k.ownerDocument,D=k.__popover;for(;D.firstChild;)D.removeChild(D.firstChild);const G=m(I)||{r:0,g:0,b:0},R=_(G.r,G.g,G.b),ee=p.createElement("div");ee.className="lat-form__color-picker",D.appendChild(ee);const P=p.createElement("div");P.className="lat-form__color-plane",P.setAttribute("role","slider"),P.setAttribute("aria-label",k.__t("form.color.saturationLightness")),P.tabIndex=0;const N=p.createElement("div");N.className="lat-form__color-plane-thumb",P.appendChild(N),ee.appendChild(P);const y=p.createElement("div");y.className="lat-form__color-hue",y.setAttribute("role","slider"),y.setAttribute("aria-label",k.__t("form.color.hue")),y.tabIndex=0;const $=p.createElement("div");$.className="lat-form__color-hue-thumb",y.appendChild($),ee.appendChild(y);const w=p.createElement("div");w.className="lat-form__color-fields";const V=p.createElement("input");V.type="text",V.className="lat-form__color-hexfield",V.setAttribute("aria-label",k.__t("form.color.hexLabel"));const oe=p.createElement("input");oe.type="number",oe.min="0",oe.max="255",oe.className="lat-form__color-rgbfield",oe.setAttribute("aria-label",k.__t("form.color.redLabel"));const ie=p.createElement("input");ie.type="number",ie.min="0",ie.max="255",ie.className="lat-form__color-rgbfield",ie.setAttribute("aria-label",k.__t("form.color.greenLabel"));const _e=p.createElement("input");_e.type="number",_e.min="0",_e.max="255",_e.className="lat-form__color-rgbfield",_e.setAttribute("aria-label",k.__t("form.color.blueLabel")),w.appendChild(V),w.appendChild(oe),w.appendChild(ie),w.appendChild(_e),ee.appendChild(w);const Oe=p.createElement("div");Oe.className="lat-form__color-previewrow";const Se=p.createElement("span");Se.className="lat-form__color-preview",Oe.appendChild(Se),ee.appendChild(Oe);const j=p.createElement("div");if(j.className="lat-form__color-actions",!s(F)){const ye=p.createElement("button");ye.type="button",ye.className="lat-form__color-back",ye.textContent=k.__t("form.back"),ye.addEventListener("click",()=>{Y(k)}),j.appendChild(ye)}const te=p.createElement("button");te.type="button",te.className="lat-form__color-select",te.textContent=k.__t("form.color.select"),j.appendChild(te),ee.appendChild(j);const ce=()=>{const ye=c(R),me=m(ye);P.style.setProperty("--lat-color-hue",String(R.h)),N.style.left=`${R.s*100}%`,N.style.top=`${(1-R.l)*100}%`,$.style.left=`${R.h/360*100}%`,V.value=ye,oe.value=String(me.r),ie.value=String(me.g),_e.value=String(me.b),Se.style.background=ye,P.setAttribute("aria-valuetext",ye),y.setAttribute("aria-valuenow",String(Math.round(R.h)))};ce();const K=(ye,me,we)=>{const q=ye.getBoundingClientRect();if(!q.width||!q.height)return;const $e=Math.max(0,Math.min(1,(me.clientX-q.left)/q.width)),he=Math.max(0,Math.min(1,(me.clientY-q.top)/q.height));we($e,he)},de=(ye,me)=>{let we=!1;ye.addEventListener("pointerdown",q=>{we=!0,K(ye,q,me)}),p.addEventListener("pointermove",q=>{we&&K(ye,q,me)}),p.addEventListener("pointerup",()=>{we=!1})};de(P,(ye,me)=>{R.s=ye,R.l=1-me,ce()}),de(y,ye=>{R.h=ye*360,ce()}),P.addEventListener("keydown",ye=>{if(ye.key==="Enter"){ye.preventDefault(),ye.stopPropagation(),Ce();return}const me=ye.shiftKey?.1:.02;if(ye.key==="ArrowLeft")R.s=Math.max(0,R.s-me);else if(ye.key==="ArrowRight")R.s=Math.min(1,R.s+me);else if(ye.key==="ArrowUp")R.l=Math.min(1,R.l+me);else if(ye.key==="ArrowDown")R.l=Math.max(0,R.l-me);else return;ye.preventDefault(),ce()}),y.addEventListener("keydown",ye=>{if(ye.key==="Enter"){ye.preventDefault(),ye.stopPropagation(),Ce();return}const me=ye.shiftKey?10:2;if(ye.key==="ArrowLeft"||ye.key==="ArrowDown")R.h=(R.h-me+360)%360;else if(ye.key==="ArrowRight"||ye.key==="ArrowUp")R.h=(R.h+me)%360;else return;ye.preventDefault(),ce()});const ue=()=>{const ye=n(V.value);if(!ye){V.value=c(R);return}const me=m(ye);Object.assign(R,_(me.r,me.g,me.b)),ce()};V.addEventListener("change",ue);const be=()=>{const ye=me=>Math.max(0,Math.min(255,Number(me)||0));Object.assign(R,_(ye(oe.value),ye(ie.value),ye(_e.value))),ce()};oe.addEventListener("change",be),ie.addEventListener("change",be),_e.addEventListener("change",be);const Ce=()=>{const ye=c(R);J(k,ye),Q(k,ye),se(k,{restoreFocus:!0})};te.addEventListener("click",Ce);const Ae=ye=>me=>{me.key==="Enter"&&(me.preventDefault(),me.stopPropagation(),ye(),Ce())};V.addEventListener("keydown",Ae(ue)),oe.addEventListener("keydown",Ae(be)),ie.addEventListener("keydown",Ae(be)),_e.addEventListener("keydown",Ae(be)),ne(k)}function ve(k){k.__open||k.__item.disabled===!0||k.__item.readOnly===!0||(k.__open=!0,k.__popover.hidden=!1,s(k.__item)||k.__item.mode==="picker"?Ne(k,k.__value):Y(k))}function se(k,I={}){if(k.__open){for(k.__open=!1,k.__popover.hidden=!0,k.__popover.classList.remove("lat-form__color-popover--above");k.__popover.firstChild;)k.__popover.removeChild(k.__popover.firstChild);I.restoreFocus&&k.__input.focus()}}U("color",{kind:"field",domEvents:["customColorsChange"],build(k,I){const F=I.doc;g(F);const p=F.createElement("div");p.className="lat-form__color",p.__item=k,p.__t=I.t||h,p.__open=!1,p.__value=a(k.value),p.__customColors=B(k);const D=F.createElement("div");D.className="lat-form__color-field",p.__field=D;const G=F.createElement("button");G.type="button",G.className="lat-form__color-swatch",G.setAttribute("aria-label",p.__t("form.color.open")),p.__swatchBtn=G;const R=F.createElement("input");R.type="text",R.className="lat-form__color-input",k.name&&(R.name=k.name),k.placeholder!=null&&(R.placeholder=String(k.placeholder)),k.label!=null&&k.label!==""&&R.setAttribute("aria-label",String(k.label)),R.setAttribute("autocomplete","off"),R.readOnly=!d(k),p.__input=R,D.appendChild(G),D.appendChild(R);let ee=null;if(l(k)){ee=F.createElement("button"),ee.type="button",ee.className="lat-form__color-clear",ee.setAttribute("aria-label",p.__t("form.color.clear"));const ie=re(F,"close");ie&&ee.appendChild(ie),ee.addEventListener("click",()=>{J(p,null),R.focus()}),D.appendChild(ee)}p.__clearBtn=ee;const P=F.createElement("button");P.type="button",P.className="lat-form__color-toggle",P.setAttribute("aria-label",p.__t("form.color.open"));const N=i(k),y=N?re(F,N):re(F,"chevronDown");y&&P.appendChild(y),p.__toggleBtn=P,D.appendChild(P),p.appendChild(D);const $=F.createElement("div");$.className="lat-form__color-popover",$.hidden=!0,p.__popover=$,p.appendChild($),W(p,p.__value);const w=()=>{p.__open?se(p):ve(p)};G.addEventListener("click",w),P.addEventListener("click",w),R.addEventListener("input",()=>{z(p)}),R.addEventListener("change",ie=>{ie.stopPropagation(),b(p)}),R.addEventListener("keydown",ie=>{ie.key==="Enter"?(ie.preventDefault(),b(p)):ie.key==="Escape"&&p.__open?se(p):ie.altKey&&ie.key==="ArrowDown"&&(ie.preventDefault(),ve(p))}),p.addEventListener("keydown",ie=>{ie.target!==R&&(ie.key==="Enter"&&!p.__open||ie.altKey&&ie.key==="ArrowDown"?(ie.preventDefault(),ve(p)):ie.key==="Escape"&&p.__open&&(ie.preventDefault(),se(p,{restoreFocus:!0})))});const V=ie=>{!p.__open||p.contains(ie.target)||se(p)},oe=ie=>{p.__open&&(ie.relatedTarget&&p.contains(ie.relatedTarget)||se(p))};return F.addEventListener("pointerdown",V),p.addEventListener("focusout",oe),Array.isArray(I.disposers)&&I.disposers.push(()=>{F.removeEventListener("pointerdown",V),p.removeEventListener("focusout",oe)}),p},read(k){const I=k.__input.value.trim();return I===""?null:n(I)||I},write(k,I){if(I==null||I===""){k.__value=null,W(k,null);return}const F=a(I);if(!F){t("form.color.setValue",`form.color: "${String(I)}" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.`);return}k.__value=F,W(k,F)},state(k,I){const F=I.disabled===!0||I.readOnly===!0;k.__input.disabled=I.disabled===!0,k.__input.readOnly=I.readOnly===!0||!d(I),k.__swatchBtn.disabled=F,k.__toggleBtn.disabled=F,k.__clearBtn&&(k.__clearBtn.disabled=F),F&&se(k)},validate(k,I,F){return F==null||typeof F=="string"&&/^#[0-9a-f]{6}$/.test(F)?!0:typeof I.errorMessage=="string"&&I.errorMessage!==""?I.errorMessage:k.__t("form.color.invalidHex")},focus(k){k.__input.focus()}})}),je("packages/dom/src/cell/renderers/barcode/support.js",function(M,X){"use strict";Object.defineProperty(M,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"joinCharacters",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"buildPattern",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"mod10Weighted",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"MOD43_ORDER",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"mod43Check",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"weightedModulo",{enumerable:!0,get:function(){return C}});function e(A){const H=[];for(let T=0;T<A.length;T++){const v=T%2===0?1:0;for(let f=0;f<A[T];f++)H.push(v)}return H}function U(A,H){const T=[];return A.forEach((v,f)=>{if(f>0&&H>0)for(let u=0;u<H;u++)T.push(0);T.push(...v)}),T}function O(A,H){return U(A.map(e),H)}function re(A,H=3){let T=0,v=H;for(let f=A.length-1;f>=0;f--)T+=Number(A[f])*v,v=v===3?1:3;return(10-T%10)%10}const g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function L(A){let H=0;for(const T of A){const v=g.indexOf(T);if(v<0)return null;H+=v}return g[H%43]}function C(A,H,T=11){let v=0,f=1;for(let u=A.length-1;u>=0;u--)v+=A[u]*f,f=f===H?1:f+1;return v%T}}),je("packages/dom/src/cell/renderers/barcode/code39.js",function(M,X){"use strict";Object.defineProperty(M,"toExtendedSymbols",{enumerable:!0,get:function(){return u}}),Object.defineProperty(M,"decodeExtendedSymbols",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"encodeCode39",{enumerable:!0,get:function(){return x}});const e=X("packages/dom/src/cell/renderers/barcode/support.js"),U=e.buildPattern,O=e.mod43Check,re=e.MOD43_ORDER,g=2,L=["000110100","100100001","001100001","101100000","000110001","100110000","001110000","000100101","100100100","001100100","100001001","001001001","101001000","000011001","100011000","001011000","000001101","100001100","001001100","000011100","100000011","001000011","101000010","000010011","100010010","001010010","000000111","100000110","001000110","000010110","110000001","011000001","111000000","010010001","110010000","011010000","010000101","110000100","011000100","010101000","010100010","010001010","000101010"],C="010010100";function A(t){return t.split("").map(n=>n==="1"?g:1)}function H(t){const n=re.indexOf(t);return n<0?null:A(L[n])}function T(){const t=new Map,n=a=>String.fromCharCode(65+a);for(let a=1;a<=26;a++)t.set(a,`$${n(a-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((a,m)=>t.set(27+m,a));for(let a=33;a<=44;a++)t.set(a,`/${n(a-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let a=59;a<=63;a++)t.set(a,`%${n(a-59+5)}`);t.set(64,"%V");for(let a=91;a<=95;a++)t.set(a,`%${n(a-91+10)}`);t.set(96,"%W");for(let a=97;a<=122;a++)t.set(a,`+${n(a-97)}`);for(let a=123;a<=127;a++)t.set(a,`%${n(a-123+15)}`);return t}const v=T(),f=new Map([...v].map(([t,n])=>[n,t]));function u(t){const n=[];for(const a of t){const m=a.codePointAt(0);if(m>127)return null;if(re.includes(a)){n.push(a);continue}const E=v.get(m);if(!E)return null;n.push(E[0],E[1])}return n}function h(t){let n="";for(let a=0;a<t.length;a++){const m=t[a]+(t[a+1]??"");if(f.has(m)){n+=String.fromCharCode(f.get(m)),a++;continue}n+=t[a]}return n}function x(t,n={}){const a=t==null?"":String(t);if(a==="")return{ok:!1,reason:"empty"};const m=n.extended?u(a):a.split("");if(!m)return{ok:!1,reason:"charset"};const E=[A(C)];for(const _ of m){const c=H(_);if(!c)return{ok:!1,reason:"charset"};E.push(c)}if(n.checkDigit){const _=O(m.join(""));return _==null?{ok:!1,reason:"charset"}:(E.push(H(_)),E.push(A(C)),{ok:!0,modules:U(E,1),text:`${a}${_}`})}return E.push(A(C)),{ok:!0,modules:U(E,1),text:a}}}),je("packages/dom/src/cell/renderers/barcode/ean.js",function(M,X){"use strict";Object.defineProperty(M,"L_PATTERNS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"G_PATTERNS",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"R_PATTERNS",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"EAN13_PARITY",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"encodeEan13",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"encodeEan8",{enumerable:!0,get:function(){return T}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,O=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],re=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],g=O.map(v=>v.split("").map(f=>f==="1"?"0":"1").join("")),L=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function C(v){return v.split("").map(Number)}function A(v,f){const u=v==null?"":String(v);if(!/^\d+$/.test(u))return null;if(u.length===f)return{digits:u,check:U(u)};if(u.length===f+1){const h=u.slice(0,f),x=Number(u[f]),t=U(h);return x!==t?null:{digits:h,check:t}}return null}function H(v){const f=A(v,12);if(!f)return{ok:!1,reason:"checkDigit"};const u=f.digits+f.check,h=L[Number(u[0])],x=u.slice(1,7).split("").map((a,m)=>(h[m]==="L"?O:re)[Number(a)]),t=u.slice(7).split("").map(a=>g[Number(a)]);return{ok:!0,modules:[...C("101"),...x.flatMap(C),...C("01010"),...t.flatMap(C),...C("101")],text:u}}function T(v){const f=A(v,7);if(!f)return{ok:!1,reason:"checkDigit"};const u=f.digits+f.check,h=u.slice(0,4).split("").map(n=>O[Number(n)]),x=u.slice(4).split("").map(n=>g[Number(n)]);return{ok:!0,modules:[...C("101"),...h.flatMap(C),...C("01010"),...x.flatMap(C),...C("101")],text:u}}}),je("packages/dom/src/cell/renderers/barcode/upc.js",function(M,X){"use strict";Object.defineProperty(M,"encodeUpcA",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"encodeUpcE",{enumerable:!0,get:function(){return v}});const e=X("packages/dom/src/cell/renderers/barcode/ean.js"),U=e.L_PATTERNS,O=e.G_PATTERNS,re=e.encodeEan13,L=X("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function C(f){return f.split("").map(Number)}function A(f){const u=f==null?"":String(f);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const h=re(`0${u}`);return h.ok?{ok:!0,modules:h.modules,text:h.text.slice(1)}:h}function H(f,u){const h=f.split(""),x=h[5];return x<="2"?`${h[0]}${h[1]}${x}0000${h[2]}${h[3]}${h[4]}`:x==="3"?`${h[0]}${h[1]}${h[2]}00000${h[3]}${h[4]}`:x==="4"?`${h[0]}${h[1]}${h[2]}${h[3]}00000${h[4]}`:`${h[0]}${h[1]}${h[2]}${h[3]}${h[4]}0000${x}`}const T={0:["EEEOOO","OOOEEE"],1:["EEOEOO","OOEOEE"],2:["EEOOEO","OOEEOE"],3:["EEOOOE","OOEEEO"],4:["EOEEOO","OEOOEE"],5:["EOOEEO","OEEOOE"],6:["EOOOEE","OEEEOO"],7:["EOEOEO","OEOEOE"],8:["EOEOOE","OEOEEO"],9:["EOOEOE","OEEOEO"]};function v(f){const u=f==null?"":String(f);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let h,x,t=null;if(u.length===6?(h="0",x=u):u.length===7?(h=u[0],x=u.slice(1)):(h=u[0],x=u.slice(1,7),t=u[7]),h!=="0"&&h!=="1")return{ok:!1,reason:"checkDigit"};const n=H(x,h),a=L(h+n);if(t!=null&&Number(t)!==a)return{ok:!1,reason:"checkDigit"};const E=T[a][Number(h)].split("").map((c,S)=>(c==="O"?U:O)[Number(x[S])]);return{ok:!0,modules:[...C("101"),...E.flatMap(C),...C("010101")],text:`${h}${x}${a}`}}}),je("packages/dom/src/cell/renderers/barcode/code93.js",function(M,X){"use strict";Object.defineProperty(M,"toExtendedSymbols",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"decodeExtendedSymbols",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"encodeCode93",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"PATTERNS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(M,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty(M,"SHIFT_ORDER",{enumerable:!0,get:function(){return U}}),Object.defineProperty(M,"START_STOP",{enumerable:!0,get:function(){return re}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",U=["($)","(%)","(/)","(+)"],O=[[1,3,1,1,1,2],[1,1,1,2,1,3],[1,1,1,3,1,2],[1,1,1,4,1,1],[1,2,1,1,1,3],[1,2,1,2,1,2],[1,2,1,3,1,1],[1,1,1,1,1,4],[1,3,1,2,1,1],[1,4,1,1,1,1],[2,1,1,1,1,3],[2,1,1,2,1,2],[2,1,1,3,1,1],[2,2,1,1,1,2],[2,2,1,2,1,1],[2,3,1,1,1,1],[1,1,2,1,1,3],[1,1,2,2,1,2],[1,1,2,3,1,1],[1,2,2,1,1,2],[1,3,2,1,1,1],[1,1,1,1,2,3],[1,1,1,2,2,2],[1,1,1,3,2,1],[1,2,1,1,2,2],[1,3,1,1,2,1],[2,1,2,1,1,2],[2,1,2,2,1,1],[2,1,1,1,2,2],[2,1,1,2,2,1],[2,2,1,1,2,1],[2,2,2,1,1,1],[1,1,2,1,2,2],[1,1,2,2,2,1],[1,2,2,1,2,1],[1,2,3,1,1,1],[1,2,1,1,3,1],[3,1,1,1,1,2],[3,1,1,2,1,1],[3,2,1,1,1,1],[1,1,2,1,3,1],[1,1,3,1,2,1],[2,1,1,1,3,1],[1,2,1,2,2,1],[3,1,2,1,1,1],[3,1,1,1,2,1],[1,2,2,2,1,1]],re=[1,1,1,1,4,1];function g(t){const n=[];for(let a=0;a<t.length;a++){const m=a%2===0?1:0;for(let E=0;E<t[a];E++)n.push(m)}return n}function L(t){return O[t]}function C(t){return e.indexOf(t)}function A(){const t=new Map,n=43,a=44,m=45,E=46,_=c=>10+c;for(let c=1;c<=26;c++)t.set(c,[n,_(c-1)]);t.set(0,[a,_(20)]);for(let c=27;c<=31;c++)t.set(c,[a,_(c-27)]);for(let c=33;c<=44;c++)t.set(c,[m,_(c-33)]);t.set(47,[m,_(14)]),t.set(58,[m,_(25)]);for(let c=59;c<=63;c++)t.set(c,[a,_(c-59+5)]);t.set(64,[a,_(21)]);for(let c=91;c<=95;c++)t.set(c,[a,_(c-91+10)]);t.set(96,[a,_(22)]);for(let c=97;c<=122;c++)t.set(c,[E,_(c-97)]);for(let c=123;c<=127;c++)t.set(c,[a,_(c-123+15)]);return t}const H=A(),T=new Map([...H].map(([t,n])=>[n.join(","),t]));function v(t){const n=[];for(const a of t){const m=a.codePointAt(0);if(m>127)return null;const E=C(a);if(E>=0){n.push(E);continue}const _=H.get(m);if(!_)return null;n.push(_[0],_[1])}return n}function f(t){let n="";for(let a=0;a<t.length;a++){const m=`${t[a]},${t[a+1]??""}`;if(T.has(m)){n+=String.fromCharCode(T.get(m)),a++;continue}n+=e[t[a]]}return n}function u(t){let n=0,a=1;for(let m=t.length-1;m>=0;m--)n+=t[m]*a,a=a===20?1:a+1;return n%47}function h(t){const n=u(t),a=u([...t,n]);return{c:n,k:a}}function x(t,n={}){const a=t==null?"":String(t);if(a==="")return{ok:!1,reason:"empty"};const m=n.extended?v(a):(()=>{const o=[];for(const d of a){const l=C(d);if(l<0)return null;o.push(l)}return o})();if(!m)return{ok:!1,reason:"charset"};const{c:E,k:_}=h(m),c=[re];for(const o of m)c.push(L(o));return c.push(L(E)),c.push(L(_)),c.push(re),{ok:!0,modules:c.flatMap(g),text:a}}}),je("packages/dom/src/cell/renderers/barcode/code128.js",function(M,X){"use strict";Object.defineProperty(M,"encodeCode128",{enumerable:!0,get:function(){return t}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,O=["212222","222122","222221","121223","121322","131222","122213","122312","132212","221213","221312","231212","112232","122132","122231","113222","123122","123221","223211","221132","221231","213212","223112","312131","311222","321122","321221","312212","322112","322211","212123","212321","232121","111323","131123","131321","112313","132113","132311","211313","231113","231311","112133","112331","132131","113123","113321","133121","313121","211331","231131","213113","213311","213131","311123","311321","331121","312113","312311","332111","314111","221411","431111","111224","111422","121124","121421","141122","141221","112214","112412","122114","122411","142112","142211","241211","221114","413111","241112","134111","111242","121142","121241","114212","124112","124211","411212","421112","421211","212141","214121","412121","111143","111341","131141","114113","114311","411113","411311","113141","114131","311141","411131","211412","211214","211232","2331112"],re=103,g=104,L=105,C=106,A={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},H={A:re,B:g,C:L};function T(n){return n>=32&&n<=95?n-32:n>=0&&n<=31?n+64:null}function v(n){return n>=32&&n<=127?n-32:null}function f(n,a){const m=n.charCodeAt(a),E=n.charCodeAt(a+1);return m>=48&&m<=57&&E>=48&&E<=57}function u(n,a,m){const E=[],_=n.charCodeAt(a),c=T(_);if(c!=null){const o=m==="A"||m===null?[c]:[A[m].A,c];E.push({to:"A",symbols:o,advance:1})}const S=v(_);if(S!=null){const o=m==="B"||m===null?[S]:[A[m].B,S];E.push({to:"B",symbols:o,advance:1})}if(f(n,a)){const o=Number(n.slice(a,a+2)),d=m==="C"||m===null?[o]:[A[m].C,o];E.push({to:"C",symbols:d,advance:2})}return E}function h(n){const a=n.length,m=Array.from({length:a+1},()=>({}));m[0].start={cost:0,prev:null,symbols:[]};for(let l=0;l<=a;l++)for(const s of Object.keys(m[l])){const r=m[l][s];if(l===a)continue;const i=s==="start"?null:s;for(const B of u(n,l,i)){const z=l+B.advance,W=r.cost+B.symbols.length,b=m[z][B.to];(!b||W<b.cost)&&(m[z][B.to]={cost:W,prev:s,symbols:B.symbols,backI:l})}}const E=Object.entries(m[a]);if(E.length===0)return null;E.sort((l,s)=>l[1].cost-s[1].cost);const[,_]=E[0],c=[];let S=a,o=E[0][0],d=o;for(;S>0;){const l=m[S][o];c.push(l.symbols),d=o,S=l.backI,o=l.prev}return c.reverse(),{symbols:c.flat(),startSubset:d}}function x(n,a){let m=n;for(let E=0;E<a.length;E++)m+=a[E]*(E+1);return m%103}function t(n,a={}){const m=n==null?"":String(n);if(m==="")return{ok:!1,reason:"empty"};for(let l=0;l<m.length;l++)if(m.charCodeAt(l)>127)return{ok:!1,reason:"charset"};const E=h(m);if(!E)return{ok:!1,reason:"charset"};const _=H[E.startSubset],c=x(_,E.symbols);return{ok:!0,modules:[_,...E.symbols,c,C].map(l=>O[l].split("").map(Number)).flatMap(l=>U(l)),text:m}}}),je("packages/dom/src/cell/renderers/barcode/code11.js",function(M,X){"use strict";Object.defineProperty(M,"encodeCode11",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"ALPHABET",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"PATTERNS",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"START_STOP",{enumerable:!0,get:function(){return L}});const e=X("packages/dom/src/cell/renderers/barcode/support.js"),U=e.buildPattern,O=e.weightedModulo,re="0123456789-",g=[[1,1,1,1,1],[1,1,1,1,2],[1,1,1,2,1],[1,1,2,1,1],[1,2,1,1,1],[2,1,1,1,1],[1,1,1,2,2],[1,1,2,1,2],[1,1,2,2,1],[1,2,1,1,2],[1,2,1,2,1]],L=[2,1,1,1,2,1],C=f=>re.indexOf(f);function A(f){const u=C(f);return u<0?null:g[u]}function H(f){return re[O(f,10)]}function T(f){return re[O(f,9)]}function v(f,u={}){const h=f==null?"":String(f);if(h==="")return{ok:!1,reason:"empty"};const x=[];for(const _ of h){const c=C(_);if(c<0)return{ok:!1,reason:"charset"};x.push(c)}const t=H(x),n=C(t),m=h.length>=10?`${t}${T([...x,n])}`:t,E=[L];for(const _ of h)E.push(A(_));for(const _ of m)E.push(A(_));return E.push(L),{ok:!0,modules:U(E,1),text:`${h}${m}`}}}),je("packages/dom/src/cell/renderers/barcode/codabar.js",function(M,X){"use strict";Object.defineProperty(M,"MOD16_ORDER",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"encodeCodabar",{enumerable:!0,get:function(){return v}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,O=2,re={0:"nnnnnww",1:"nnnnwnw",2:"nnwnnnw",3:"wwnnnnn",4:"nnnwnwn",5:"wnnnnwn",6:"nwnnnnw",7:"nwnnwnn",8:"nwwnnnn",9:"wnnwnnn","-":"nnnwwnn",$:"nnwwnnn",":":"wnnnwnw","/":"wnwnwnn",".":"wnwwnnn","+":"nnwnwnw",A:"nnwwnwn",B:"nwnwnnw",C:"nnnwnww",D:"nnnwwwn"},g="0123456789-$:/.+",L="ABCD",C="0123456789-$:/.+ABCD";function A(f){return f.split("").map(u=>u==="w"?O:1)}function H(f){const u=re[f];return u?A(u):null}function T(f){let u=0;for(const x of f){const t=C.indexOf(x);if(t<0)return null;u+=t}const h=u%16;return h<10?String(h):null}function v(f,u={}){const h=f==null?"":String(f);if(h==="")return{ok:!1,reason:"empty"};const x=h.toUpperCase();if(x.length<2)return{ok:!1,reason:"charset"};const t=x[0],n=x[x.length-1];if(!L.includes(t)||!L.includes(n))return{ok:!1,reason:"charset"};const a=x.slice(1,-1);for(const _ of a)if(!g.includes(_))return{ok:!1,reason:"charset"};const m=[t,...a.split(""),n];if(u.checkDigit){const _=T(m);if(_==null)return{ok:!1,reason:"checkDigit"};m.splice(m.length-1,0,_);const c=m.map(H),S=`${x.slice(0,-1)}${_}${n}`;return{ok:!0,modules:U(c,1),text:S}}const E=m.map(H);return{ok:!0,modules:U(E,1),text:x}}}),je("packages/dom/src/cell/renderers/barcode/code32.js",function(M,X){"use strict";Object.defineProperty(M,"ALPHABET",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"decodeCode32Modules",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"encodeCode32",{enumerable:!0,get:function(){return u}});const U=X("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,O=2,re="010010100",g={0:"000110100",1:"100100001",2:"001100001",3:"101100000",4:"000110001",5:"100110000",6:"001110000",7:"000100101",8:"100100100",9:"001100100",A:"100001001",B:"001001001",C:"101001000",D:"000011001",F:"001011000",G:"000001101",H:"100001100",J:"000011100",K:"100000011",L:"001000011",M:"101000010",N:"000010011",P:"001010010",Q:"000000111",R:"100000110",S:"001000110",T:"000010110",U:"110000001",V:"011000001",W:"111000000",X:"010010001",Y:"110010000",Z:"011010000"},L="0123456789BCDFGHJKLMNPQRSTUVWXYZ",C=h=>h.split("").map(x=>x==="1"?O:1),A=h=>g[h]?C(g[h]):null,H=()=>C(re);function T(h){let x=0;for(let t=0;t<8;t++){const n=t+1;let a=Number(h[t]);n%2===0&&(a*=2,a>=10&&(a-=9)),x+=a}return x%10}function v(h,x){let t="",n=h;for(let a=0;a<x;a++)t=L[n%32]+t,n=Math.floor(n/32);return t}function f(h){const x=[];for(let E=0;E<h.length;E++)E===0||h[E]!==h[E-1]?x.push(1):x[x.length-1]++;const t=1,n=E=>E>t?"1":"0",a=[];let m=9;for(;m<x.length;){m+=1;const E=x.slice(m,m+9);if(E.length<9)break;const _=E.map(n).join(""),c=Object.keys(g).find(S=>g[S]===_);a.push(c??"?"),m+=9}return a.pop(),a}function u(h,x={}){const t=h==null?"":String(h);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const n=t.slice(0,8),a=T(n);let m;if(t.length===9){const d=Number(t[8]);if(d!==a)return{ok:!1,reason:"checkDigit"};m=d}else m=a;const E=`${n}${m}`,_=Number(E),S=`A${v(_,6)}`.split(""),o=[H()];for(const d of S){const l=A(d);if(!l)return{ok:!1,reason:"charset"};o.push(l)}return o.push(H()),{ok:!0,modules:U(o,1),text:E}}}),je("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(M,X){"use strict";Object.defineProperty(M,"gfMul",{enumerable:!0,get:function(){return re}}),Object.defineProperty(M,"gfExp",{enumerable:!0,get:function(){return g}}),Object.defineProperty(M,"generatorPoly",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"reedSolomon",{enumerable:!0,get:function(){return C}}),Object.defineProperty(M,"SIZES",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"dataCodewords",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"errorCodewords",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"dataRegionSize",{enumerable:!0,get:function(){return f}}),Object.defineProperty(M,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"base256Mask",{enumerable:!0,get:function(){return n}}),Object.defineProperty(M,"encodeBase256",{enumerable:!0,get:function(){return a}}),Object.defineProperty(M,"padCodewords",{enumerable:!0,get:function(){return m}}),Object.defineProperty(M,"utahPlacementOrder",{enumerable:!0,get:function(){return E}}),Object.defineProperty(M,"diagonalWalkCoverage",{enumerable:!0,get:function(){return _}}),Object.defineProperty(M,"placeCodewords",{enumerable:!0,get:function(){return c}}),Object.defineProperty(M,"buildSymbol",{enumerable:!0,get:function(){return S}}),Object.defineProperty(M,"encodeDataMatrix",{enumerable:!0,get:function(){return s}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return r}});const e=301,U=new Uint8Array(512),O=new Uint8Array(256);{let i=1;for(let B=0;B<255;B++)U[B]=i,O[i]=B,i<<=1,i&256&&(i^=e);for(let B=255;B<512;B++)U[B]=U[B-255]}function re(i,B){return i===0||B===0?0:U[O[i]+O[B]]}function g(i){return U[(i%255+255)%255]}function L(i){let B=new Uint8Array([1]);for(let z=0;z<i;z++){const W=new Uint8Array(B.length+1);for(let b=0;b<B.length;b++)W[b]^=B[b],W[b+1]^=re(B[b],g(z));B=W}return B.subarray(1)}function C(i,B){const z=L(B),W=new Uint8Array(B);for(let b=0;b<i.length;b++){const J=i[b]^W[0];if(W.copyWithin(0,1),W[B-1]=0,J!==0)for(let Q=0;Q<B;Q++)W[Q]^=re(z[Q],J)}return W}const A={10:[3,5],12:[5,7],14:[8,10],16:[12,12],18:[18,14],20:[22,18],22:[30,20],24:[36,24],26:[44,28]},H=Object.keys(A).map(Number).sort((i,B)=>i-B);function T(i){const B=A[i];if(!B)throw new RangeError(`unsupported Data Matrix size ${i}`);return B[0]}function v(i){const B=A[i];if(!B)throw new RangeError(`unsupported Data Matrix size ${i}`);return B[1]}function f(i){return i-2}const u=129,h=231,x=i=>i>=48&&i<=57;function t(i){const B=[];let z=0;for(;z<i.length;){const W=i[z],b=z+1<i.length?i[z+1]:-1;if(x(W)&&x(b)){const J=W-48,Q=b-48;B.push(J*10+Q+130),z+=2}else B.push(W+1),z+=1}return B}function n(i,B){const z=149*B%255+1;return(i+z)%256}function a(i,B){if(i.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const z=[h,i.length];for(let W=0;W<i.length;W++)z.push(n(i[W],B+2+W));return z}function m(i,B){if(i.length>B)throw new RangeError(`encoded stream (${i.length} codewords) exceeds capacity (${B})`);const z=i.slice();for(;z.length<B;)z.push(u);return z}function E(i){const B=new Array(i*i).fill(null),z=[],W=(ve,se)=>ve>=0&&ve<i&&se>=0&&se<i,b=(ve,se)=>{if(!W(ve,se))return;const k=ve*i+se;if(B[k]===null){const I={row:ve,col:se};B[k]=I,z.push(I)}},J=(ve,se)=>{const k=F=>(F%i+i)%i,I=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[F,p]of I)b(k(ve+F),k(se+p))};let Q=4,ne=0,Z=0;const Y=i*i+64;do{for(;Q>=0&&ne<i;)J(Q,ne),Q-=2,ne+=2;for(Q+=1,ne+=3;Q<i&&ne>=0;)J(Q,ne),Q+=2,ne-=2;Q+=3,ne+=1}while((Q<i||ne<i)&&Z++<Y);const Ne=z.length;for(let ve=0;ve<i;ve++)for(let se=0;se<i;se++)b(ve,se);return Object.defineProperty(z,"sweptCount",{value:z.length-Ne,enumerable:!1}),z}function _(i){return E(i).sweptCount}function c(i,B){const z=E(B),W=new Uint8Array(B*B);for(let b=0;b<z.length;b++){const J=Math.floor(b/8);if(J>=i.length)break;const Q=7-b%8,ne=i[J]>>>Q&1,{row:Z,col:Y}=z[b];W[Z*B+Y]=ne}return W}function S(i,B){const z=B+2,W=new Uint8Array(z*z),b=(Q,ne,Z)=>{W[Q*z+ne]=Z},J=z-1;for(let Q=0;Q<z;Q++)b(J,Q,1);for(let Q=0;Q<z;Q++)b(Q,0,1);for(let Q=0;Q<z;Q++)b(0,Q,Q%2===0?1:0);for(let Q=0;Q<z;Q++)b(Q,z-1,Q%2===0?1:0);for(let Q=0;Q<B;Q++)for(let ne=0;ne<B;ne++)W[(Q+1)*z+(ne+1)]=i[Q*B+ne];return{size:z,modules:W}}function o(i){const B=new Uint8Array(i.length);for(let z=0;z<i.length;z++)B[z]=i.charCodeAt(z)&255;return B}function d(i){for(let B=0;B<i.length;B++)if(i[B]>127)return!1;return!0}function l(i){for(const B of H)if(T(B)>=i)return B;return 0}function s(i,B={}){if(i==null||i==="")return{ok:!1,reason:"empty"};const z=String(i),W=o(z),b=B&&B.encodation==="base256";if(!b&&!d(W))return{ok:!1,reason:"charset"};let J;if(b){if(W.length>249)return{ok:!1,reason:"capacity"};J=a(W,1)}else J=t(W);const Q=B&&B.size;let ne;if(Q!=null){if(!A[Q])return{ok:!1,reason:"capacity"};if(J.length>T(Q))return{ok:!1,reason:"capacity"};ne=Q}else if(ne=l(J.length),ne===0)return{ok:!1,reason:"capacity"};const Z=T(ne),Y=m(J,Z),Ne=C(Y,v(ne)),ve=new Uint8Array(Z+Ne.length);ve.set(Y,0),ve.set(Ne,Z);const se=f(ne),k=c(ve,se),{modules:I}=S(k,se);return{ok:!0,matrix:{size:ne,modules:I},text:z}}const r=s}),je("packages/dom/src/cell/renderers/barcode/index.js",function(M,X){"use strict";Object.defineProperty(M,"BARCODE_TYPES",{enumerable:!0,get:function(){return _}}),Object.defineProperty(M,"encodeBarcode",{enumerable:!0,get:function(){return c}});const e=X("packages/dom/src/cell/renderers/barcode/code39.js"),U=e.encodeCode39,O=X("packages/dom/src/cell/renderers/barcode/ean.js"),re=O.encodeEan13,g=O.encodeEan8,L=X("packages/dom/src/cell/renderers/barcode/upc.js"),C=L.encodeUpcA,A=L.encodeUpcE,H=X("packages/dom/src/cell/renderers/barcode/code93.js"),T=H.encodeCode93,v=X("packages/dom/src/cell/renderers/barcode/code128.js"),f=v.encodeCode128,u=X("packages/dom/src/cell/renderers/barcode/code11.js"),h=u.encodeCode11,x=X("packages/dom/src/cell/renderers/barcode/codabar.js"),t=x.encodeCodabar,n=X("packages/dom/src/cell/renderers/barcode/code32.js"),a=n.encodeCode32,m=X("packages/dom/src/cell/renderers/barcode/datamatrix.js"),E=m.encodeDataMatrix;Object.defineProperty(M,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty(M,"encodeEan13",{enumerable:!0,get:function(){return O.encodeEan13}}),Object.defineProperty(M,"encodeEan8",{enumerable:!0,get:function(){return O.encodeEan8}}),Object.defineProperty(M,"encodeUpcA",{enumerable:!0,get:function(){return L.encodeUpcA}}),Object.defineProperty(M,"encodeUpcE",{enumerable:!0,get:function(){return L.encodeUpcE}}),Object.defineProperty(M,"encodeCode93",{enumerable:!0,get:function(){return H.encodeCode93}}),Object.defineProperty(M,"encodeCode128",{enumerable:!0,get:function(){return v.encodeCode128}}),Object.defineProperty(M,"encodeCode11",{enumerable:!0,get:function(){return u.encodeCode11}}),Object.defineProperty(M,"encodeCodabar",{enumerable:!0,get:function(){return x.encodeCodabar}}),Object.defineProperty(M,"encodeCode32",{enumerable:!0,get:function(){return n.encodeCode32}}),Object.defineProperty(M,"encodeDataMatrix",{enumerable:!0,get:function(){return m.encodeDataMatrix}});const _=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function c(S,o,d={}){switch(S){case"code39":return U(o,{checkDigit:d.checkDigit});case"code39ext":return U(o,{extended:!0,checkDigit:d.checkDigit});case"ean13":return re(o);case"ean8":return g(o);case"upca":return C(o);case"upce":return A(o);case"code93":return T(o);case"code93ext":return T(o,{extended:!0});case"code128":return f(o);case"code11":return h(o);case"codabar":return t(o,{checkDigit:d.checkDigit});case"code32":return a(o);case"datamatrix":return E(o,{size:d.size,encodation:d.encodation});default:return{ok:!1,reason:"type"}}}}),je("packages/dom/src/cell/renderers/barcode/render.js",function(M,X){"use strict";Object.defineProperty(M,"warnOnce",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"barsPathData",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"matrixPathData",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"paint",{enumerable:!0,get:function(){return h}}),Object.defineProperty(M,"buildSvg",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"renderBarcode",{enumerable:!0,get:function(){return t}});const U=X("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,O="http://www.w3.org/2000/svg",re=60,g=16,L=4;function C(n,a,m){m==null||m===!1?n.removeAttribute(a):n.setAttribute(a,String(m))}const A=new Set;function H(n,a){A.has(n)||(A.add(n),console.warn("[lattice]",a))}function T(n,a,m){const E=[];let _=0;for(;_<n.length;){if(!n[_]){_++;continue}let c=1;for(;_+c<n.length&&n[_+c];)c++;E.push(`M${_+a} 0h${c}v${m}h-${c}z`),_+=c}return E.join("")}function v(n,a){const{size:m,modules:E}=n,_=[];for(let c=0;c<m;c++){let S=0;for(;S<m;){if(!E[c*m+S]){S++;continue}let o=1;for(;S+o<m&&E[c*m+S+o];)o++;_.push(`M${S+a} ${c+a}h${o}v1h-${o}z`),S+=o}}return _.join("")}function f(n){const a=n&&typeof n=="object"?n:{};return{show:a.show!==!1,position:a.position==="top"?"top":"bottom",align:a.align==="left"||a.align==="right"?a.align:"center",margin:Number.isFinite(Number(a.margin))?Number(a.margin):2,font:typeof a.font=="string"&&a.font?a.font:"10px sans-serif"}}function u(n){const a=Math.floor(Number(n));return!Number.isFinite(a)||a<0?10:Math.min(40,a)}function h(n,a,m){const E=u(m.quietZone),_=f(m.text),c=_.show,S=!!a.matrix,o=S?a.matrix.size:a.modules.length,d=S?o+E*2:re,l=c&&_.position==="top"?g+L:0,s=d+(c?g+L:0),r=o+E*2,i=Number(m.moduleWidth)||0,B=i>0?r*i:Number(m.width)||200,z=Number(m.height)||Math.round(B/r*s)||60;C(n.svg,"viewBox",`0 0 ${r} ${s}`),C(n.svg,"width",B),C(n.svg,"height",z);const W=m.print?"#000000":m.foreground||"currentColor",b=m.print?"#ffffff":m.background;if(b?(C(n.background,"x",0),C(n.background,"y",0),C(n.background,"width",r),C(n.background,"height",s),n.background.setAttribute("fill",b),n.background.style.display=""):n.background.style.display="none",n.path.setAttribute("fill",W),n.path.setAttribute("transform",`translate(0 ${l})`),n.path.setAttribute("d",S?v(a.matrix,E):T(a.modules,E,re)),!c){n.text.style.display="none";return}n.text.style.display="",n.text.style.font=_.font,n.text.setAttribute("fill",W),n.text.setAttribute("text-anchor",_.align==="left"?"start":_.align==="right"?"end":"middle");const J=_.align==="left"?E:_.align==="right"?r-E:r/2,Q=_.position==="top"?g-_.margin:s-_.margin;C(n.text,"x",J),C(n.text,"y",Q),n.text.textContent=a.text}function x(n){const a=n.createElementNS(O,"svg");a.setAttribute("class","lat-barcode__svg"),a.setAttribute("focusable","false"),a.setAttribute("preserveAspectRatio","none");const m=n.createElementNS(O,"rect");m.style.display="none";const E=n.createElementNS(O,"path"),_=n.createElementNS(O,"text");return a.appendChild(m),a.appendChild(E),a.appendChild(_),{svg:a,background:m,path:E,text:_}}function t(n,a){const m=n.ownerDocument,E=x(m);n.textContent="",n.appendChild(E.svg);const _=S=>{const o=S||{},d=String(o.type||"code39"),l=U(d,o.value,{checkDigit:o.checkDigit,size:o.size,encodation:o.encodation});if(!l.ok){H(`barcode:invalid:${d}`,`column "standalone" has a value that is not valid for the "${d}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),E.path.setAttribute("d","");return}h(E,l,o)};return _(a),{update:_,destroy:()=>{n.textContent=""}}}}),je("packages/modules/form/controls/barcode.js",function(M,X){"use strict";const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function g(L,C){const A=L.props&&L.props.source;if(!A)return L.value;const H=typeof C.form.getItem=="function"?C.form.getItem(A):null;return H&&typeof H.getValue=="function"?H.getValue():void 0}U("barcode",{kind:"display",build(L,C){const A=C.doc.createElement("span");A.className="lat-form__barcode";const H=re(A,{...L.props,value:g(L,C)}),T=L.props&&L.props.source;if(T){const v=C.emitter.on("change",f=>{f&&f.name===T&&H.update({...L.props,value:f.value})});C.disposers.push(v)}return C.disposers.push(()=>H.destroy()),A._barcodeHandle=H,A},read(L,C,A){return g(C,A)},write(L,C,A){L._barcodeHandle&&L._barcodeHandle.update({...C.props,value:A})},state(){}})}),je("packages/modules/form/controls/speeddial.js",function(M,X){"use strict";Object.defineProperty(M,"injectSpeedDialStyles",{enumerable:!0,get:function(){return x}}),Object.defineProperty(M,"createSpeedDial",{enumerable:!0,get:function(){return l}});const U=X("packages/modules/form/controls/registry.js").registerControl,re=X("packages/modules/form/messages.js").t,L=X("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,C="lat-speeddial",A="data-lattice-speeddial-styles",H="http://www.w3.org/2000/svg",T=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),v=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),f=Object.freeze(["up","down","left","right"]);let u=0;function h(){const s=`
|
|
1660
|
+
`.trim()}function y(c){const i=c&&c.documentElement;if(!i||i.getAttribute(h))return;i.setAttribute(h,"1");const n=c.createElement("style");n.textContent=P(),(c.head||c.body||i).appendChild(n)}function A(c,i){const n=i&&i.defaultView,a=n&&n.Event,r=a?new a("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};c.dispatchEvent(r)}function B(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function O(c){const i=Number(c)||0;return i<1024?`${i} B`:i<1048576?`${(i/1024).toFixed(i<10240?1:0)} KB`:i<1073741824?`${(i/1048576).toFixed(1)} MB`:`${(i/1073741824).toFixed(2)} GB`}function v(c,i){if(!i||!i.length)return!0;const n=(c.name||"").toLowerCase(),a=(c.type||"").toLowerCase();return i.some(r=>{const s=String(r).trim().toLowerCase();return s.startsWith(".")?n.endsWith(s):s.endsWith("/*")?a.startsWith(s.slice(0,-1)):a===s})}function d(c){return c.length?c.length===1?c[0]:c.length===2?`${c[0]} or ${c[1]}`:`${c.slice(0,-1).join(", ")} or ${c[c.length-1]}`:""}function u(c){const i={".pdf":"PDF",".doc":"DOC",".docx":"DOCX",".xls":"XLS",".xlsx":"XLSX",".csv":"CSV",".txt":"TXT",".png":"PNG",".jpg":"JPG",".jpeg":"JPEG",".gif":"GIF",".svg":"SVG",".webp":"WEBP",".zip":"ZIP","image/*":"images","video/*":"videos","audio/*":"audio","text/*":"text","application/pdf":"PDF"},n=String(c).trim(),a=i[n.toLowerCase()];if(a)return a;if(n.startsWith("."))return n.slice(1).toUpperCase();if(n.endsWith("/*"))return`${n.slice(0,-2)}s`;const r=n.split("/")[1];return r?r.toUpperCase():n}function _(c,i,n,a){const r=[];return i&&i.length&&r.push(d(i.map(u))),n&&r.push(c("form.file.hint.size",{size:O(n)})),a&&r.push(c(a===1?"form.file.hint.file":"form.file.hint.files",{max:String(a)})),r.join(" · ")}function w(c){return{id:c.id,name:c.name,size:c.size,type:c.type,status:c.status,progress:c.progress,message:c.message||""}}function t(c,i){const n=c.createElementNS(ee,"svg");n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("focusable","false"),n.setAttribute("aria-hidden","true"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","1.5"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round");const a=c.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d",i),n.appendChild(a),n}const o=Object.freeze({upload:"M8 11V3m0 0L4.5 6.5M8 3l3.5 3.5M3 13h10",file:"M4 2h5l3 3v9H4zM9 2v3h3",image:"M2 3h12v10H2zM5 11l3-3 2 2 1.5-1.5L14 11M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",document:"M4 2h5l3 3v9H4zM9 2v3h3M6 9h4M6 12h4",check:"M3 8.5l3 3 7-7",xmark:"M4 4l8 8M12 4l-8 8",warn:"M8 3l6 11H2zM8 7v3M8 12.2v.1",retry:"M13.5 8A5.5 5.5 0 1 1 8 2.5M8 2.5V5m0-2.5L5.5 2.5"});function l(c,i){const n=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let a;for(;a=n.exec(i);)c.setAttribute(a[1],a[3]===void 0?a[4]:a[3])}function b(c,i){const n=/<svg\b([^>]*)>/i.exec(i);if(!n)return null;const a=c.createElementNS(ee,"svg");l(a,n[1]);const r=i.lastIndexOf("</svg"),s=r===-1?"":i.slice(n.index+n[0].length,r),M=/<(\w+)\b([^>]*?)(\/?)>/g;let D;for(;D=M.exec(s);){const Y=c.createElementNS(ee,D[1]);l(Y,D[2]),a.appendChild(Y)}return a.setAttribute("aria-hidden","true"),a.setAttribute("focusable","false"),a}function p(c,i){if(c===!1)return null;if(c!=null&&typeof c=="object"&&c.nodeType){const a=c;return a.classList.add(`${$}__icon`),a.setAttribute("aria-hidden","true"),a}if(typeof c!="string"||c==="")return null;const n=o[c]?t(i,o[c]):b(i,c);return n?(n.setAttribute("class",`${$}__icon`),n):null}function m(c){const i=c.type||"";return i.startsWith("image/")?"image":i==="application/pdf"||/\.pdf$/i.test(c.name)?"document":"file"}function f(c){if(c.thumb)return c.thumb;if(!c.file||!/^image\//.test(c.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{c.thumb=URL.createObjectURL(c.file)}catch{c.thumb=null}return c.thumb}function N(c){if(c.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(c.thumb)}catch{}c.thumb=null}V("file",{kind:"field",build(c,i){const n=i.doc,a=i.t,r=c.props||{},s=Array.isArray(r.accept)?r.accept.map(H=>String(H)):[],M=Number(r.maxSize)||0,D=Number(r.maxFiles)||0,Y=r.multiple!==!1,U=typeof r.upload=="function"?r.upload:null,Q=r.dropzone!==!1,oe=r.dropText!=null?String(r.dropText):a("form.file.dropText"),F=r.browseText!=null?String(r.browseText):a("form.file.browse"),K=a("form.file.dropToUpload"),W=a("form.file.addMore"),ge=a("form.file.typeNotAccepted"),ve=r.hint!=null&&r.hint!==""?String(r.hint):_(a,s,M,D);y(n);const le=n.createElement("div");le.className=$;const x={accept:s,maxSize:M,maxFiles:D,multiple:Y,upload:U,dropText:oe,browse:F,dropToUpload:K,addMore:W,typeNotAccepted:ge,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:Q,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};le.__latFile=x;const L=n.createElement("input");L.type="file",L.className=`${$}__input`,L.tabIndex=-1,L.setAttribute("aria-hidden","true"),Y&&(L.multiple=!0),s.length&&(L.accept=s.join(",")),le.appendChild(L),x.input=L;const I=n.createElement("div");I.className=`${$}__zone`,I.setAttribute("role","button"),I.tabIndex=0,I.setAttribute("aria-label",`${oe} ${F}`);const g=r.icon==null?t(n,o.upload):p(r.icon,n);g&&(r.icon==null&&g.setAttribute("class",`${$}__icon`),I.appendChild(g));const T=n.createElement("span");T.className=`${$}__title`;const X=n.createElement("span");X.className=`${$}__title-rest`,X.textContent=oe,T.appendChild(X);const z=n.createElement("button");z.type="button",z.className=`${$}__browse`,z.tabIndex=-1,z.textContent=F,T.appendChild(z),I.appendChild(T),x.titleRest=X,x.browseEl=z;const te=n.createElement("span");if(te.className=`${$}__drop`,te.textContent=K,I.appendChild(te),ve){const H=n.createElement("span");H.className=`${$}__hint`,H.textContent=ve,I.appendChild(H)}const re=n.createElement("span");re.className=`${$}__compact`,re.appendChild(t(n,o.upload));const j=n.createElement("span");j.className=`${$}__compact-text`,j.textContent=W,re.appendChild(j),I.appendChild(re),x.compactText=j,le.appendChild(I),x.zone=I;const k=n.createElement("ul");k.className=`${$}__list`,k.setAttribute("role","list"),k.hidden=!0,le.appendChild(k),x.list=k;const Z=n.createElement("div");return Z.className=`${$}__live`,Z.setAttribute("role","status"),Z.setAttribute("aria-live","polite"),le.appendChild(Z),x.live=Z,le.__latAnnounce=H=>{x.live&&(x.live.textContent="",x.live.textContent=H)},le.__latDragState=H=>{x.zone.classList.toggle("is-dragover",H==="over"),x.zone.classList.toggle("is-invalid",H==="invalid"),H==="none"?(x.titleRest.textContent=x.dropText,x.browseEl.hidden=!1,x.compactText.textContent=x.addMore):H==="over"?(x.titleRest.textContent=x.dropToUpload,x.browseEl.hidden=!0,x.compactText.textContent=x.dropToUpload):(x.titleRest.textContent=x.typeNotAccepted,x.browseEl.hidden=!0,x.compactText.textContent=x.typeNotAccepted)},le.__latPaint=()=>{const H=x.disabled||x.readOnly||!x.dropzone;x.zone.hidden=H,x.zone.tabIndex=H?-1:0,H?x.zone.setAttribute("aria-disabled","true"):x.zone.removeAttribute("aria-disabled"),x.input.disabled=H;const E=x.entries.length>0;x.zone.classList.toggle("is-compact",E),x.zone.setAttribute("aria-label",E?x.addMore:`${x.dropText} ${x.browse}`),k.hidden=!x.entries.length,k.tabIndex=x.readOnly&&!x.disabled?0:-1,x.entries.some(R=>R.status==="rejected")?le.setAttribute("aria-invalid","true"):le.removeAttribute("aria-invalid"),k.textContent="";for(const R of x.entries){const ce=n.createElement("li");ce.className=`${$}__item is-${R.status}`,ce.setAttribute("data-id",R.id),ce.setAttribute("role","listitem");const me=f(R);if(me){const he=n.createElement("img");he.className=`${$}__item-thumb`,he.src=me,he.alt="",ce.appendChild(he)}else{const he=t(n,o[m(R)]);he.setAttribute("class",`${$}__item-icon`),ce.appendChild(he)}const xe=n.createElement("div");xe.className=`${$}__item-main`,ce.appendChild(xe);const C=n.createElement("div");C.className=`${$}__item-row`,xe.appendChild(C);const ne=n.createElement("span");ne.className=`${$}__item-name`,ne.textContent=R.name,ne.title=R.name,C.appendChild(ne);const se=n.createElement("span");se.className=`${$}__item-size`,se.textContent=O(R.size),C.appendChild(se);const J=n.createElement("span");if(J.className=`${$}__item-state`,R.status==="uploading"){const he=n.createElement("span");he.className=`${$}__item-pct`,he.textContent=`${R.progress}%`,J.appendChild(he)}else R.status==="done"?J.appendChild(t(n,o.check)):(R.status==="error"||R.status==="rejected")&&J.appendChild(t(n,o.warn));C.appendChild(J);const ue=n.createElement("button");if(ue.type="button",ue.className=`${$}__remove`,ue.setAttribute("aria-label",`${a("form.file.remove")} ${R.name}`),ue.title=a("form.file.remove"),ue.appendChild(t(n,o.xmark)),ue.setAttribute("data-remove",R.id),ue.disabled=x.disabled||x.readOnly,C.appendChild(ue),R.status==="uploading"){const he=n.createElement("span");he.className=`${$}__item-bar`,he.setAttribute("role","progressbar"),he.setAttribute("aria-valuemin","0"),he.setAttribute("aria-valuemax","100"),he.setAttribute("aria-valuenow",String(R.progress));const be=n.createElement("span");be.className=`${$}__item-fill`,be.style.width=`${R.progress}%`,he.appendChild(be),xe.appendChild(he)}if(R.message){const he=n.createElement("span");if(he.className=`${$}__item-message`,he.appendChild(n.createTextNode(R.message)),R.status==="error"){he.appendChild(n.createTextNode(" "));const be=n.createElement("button");be.type="button",be.className=`${$}__retry`,be.textContent=a("form.file.retry"),be.setAttribute("data-retry",R.id),be.disabled=x.disabled||x.readOnly,he.appendChild(be)}xe.appendChild(he)}k.appendChild(ce)}},le.__latUpload=H=>{if(!x.upload){H.status="done",H.progress=100,le.__latPaint();return}H.status="uploading",H.progress=0,H.message="";let E=null;typeof AbortController<"u"&&(E=new AbortController,x.controllers.set(H.id,E));const G=E?E.signal:void 0,R=me=>{H.progress=Math.max(0,Math.min(100,Number(me)||0)),H.status="uploading",le.__latPaint()};let ce;try{ce=x.upload(H.file,{onProgress:R,signal:G})}catch(me){ce=Promise.reject(me)}ce&&typeof ce.then=="function"&&ce.then(()=>{x.controllers.delete(H.id),H.status="done",H.progress=100,le.__latPaint(),le.__latAnnounce(a("form.file.uploaded",{name:H.name})),A(le,i.doc)},me=>{x.controllers.delete(H.id),H.status="error",H.message=me&&me.message?String(me.message):a("form.file.uploadFailed"),le.__latPaint(),le.__latAnnounce(a("form.file.failed",{name:H.name})),A(le,i.doc)})},le.__latTake=H=>{const E=[...H||[]];if(!E.length||x.disabled||x.readOnly)return;const G=x.multiple?E:E.slice(0,1),R=[],ce=[];let me=x.maxFiles?Math.max(0,x.maxFiles-x.entries.length):1/0;for(const xe of G){if(me<=0){ce.push({file:xe,reason:"count"});continue}if(x.maxSize&&xe.size>x.maxSize){ce.push({file:xe,reason:"size"});continue}if(!v(xe,x.accept)){ce.push({file:xe,reason:"type"});continue}R.push({id:B(),file:xe,name:xe.name,size:xe.size,type:xe.type,status:"selected",progress:0,message:""}),me-=1}if(R.length){x.multiple||(x.entries=[]),x.entries.push(...R),le.__latPaint(),A(le,i.doc),le.__latAnnounce(R.length===1?a("form.file.addedOne"):a("form.file.added",{count:String(R.length)}));for(const xe of R)le.__latUpload(xe)}for(const xe of ce){const C=xe.reason==="size"?a("form.file.rejected.size",{size:O(x.maxSize)}):xe.reason==="type"?a("form.file.rejected.type"):a("form.file.rejected.count",{max:String(x.maxFiles)});x.entries.push({id:B(),file:xe.file,name:xe.file.name,size:xe.file.size,type:xe.file.type,status:"rejected",progress:0,message:C}),le.__latAnnounce(C)}le.__latPaint()},le.__latRemove=H=>{const E=x.controllers.get(H);E&&(E.abort(),x.controllers.delete(H));const G=x.entries.find(R=>R.id===H);G&&N(G),x.entries=x.entries.filter(R=>R.id!==H),le.__latPaint(),A(le,i.doc)},le.__latRetry=H=>{if(x.disabled||x.readOnly)return;const E=x.entries.find(G=>G.id===H);!E||!E.file||E.status==="rejected"||(le.__latUpload(E),A(le,i.doc))},le.__latClick=H=>{if(x.disabled||x.readOnly)return;const E=H.target&&H.target.closest?H.target:null,G=E&&E.closest?E.closest("[data-remove]"):null;if(G&&le.contains(G)){le.__latRemove(G.getAttribute("data-remove"));return}const R=E&&E.closest?E.closest("[data-retry]"):null;if(R&&le.contains(R)){le.__latRetry(R.getAttribute("data-retry"));return}E&&E.closest&&E.closest(`.${$}__zone`)&&x.input.click()},le.__latKeydown=H=>{x.disabled||x.readOnly||(H.key==="Enter"||H.key===" "||H.key==="Spacebar")&&H.target===x.zone&&(H.preventDefault(),x.input.click())},le.__latChange=()=>{le.__latTake(x.input.files),x.input.value=""},le.__latDragKind=H=>{if(!x.accept.length)return"over";const E=H.dataTransfer;if(!E||!E.types||!E.types.length)return"over";const G=Array.from(E.types);return G.includes("Files")?"over":G.every(R=>!v({name:"",type:R},x.accept))?"invalid":"over"},le.__latDrag=H=>{if(!(x.disabled||x.readOnly)){if(H.type==="dragenter"||H.type==="dragover"){H.preventDefault(),le.__latDragState(le.__latDragKind(H));return}if(H.type==="dragleave"){if(H.relatedTarget&&x.zone.contains(H.relatedTarget))return;le.__latDragState("none");return}H.type==="drop"&&(H.preventDefault(),le.__latDragState("none"),le.__latTake(H.dataTransfer&&H.dataTransfer.files))}},le.__latPaste=H=>{if(x.disabled||x.readOnly||!H.clipboardData)return;const E=[...H.clipboardData.files||[]];E.length&&(H.preventDefault(),le.__latTake(E))},L.addEventListener("change",le.__latChange),le.addEventListener("click",le.__latClick),le.addEventListener("keydown",le.__latKeydown),le.addEventListener("paste",le.__latPaste),Q&&["dragenter","dragover","dragleave","drop"].forEach(H=>le.addEventListener(H,le.__latDrag)),le.__latPaint(),le},read(c){const i=c.__latFile;return i?i.entries.filter(n=>n.status!=="rejected").map(w):[]},write(c,i){const n=c.__latFile;if(!n)return;const a=Array.isArray(i)?i:[],r=n.entries.filter(s=>s.status==="rejected");for(const s of n.entries)r.includes(s)||N(s);n.entries=r;for(const s of a)n.entries.push({id:s&&s.id?String(s.id):B(),file:s&&s.file?s.file:null,name:s&&s.name!=null?String(s.name):"",size:s&&s.size!=null?Number(s.size):0,type:s&&s.type!=null?String(s.type):"",status:s&&s.status?String(s.status):"done",progress:s&&s.progress!=null?Number(s.progress):100,message:s&&s.message?String(s.message):""});c.__latPaint&&c.__latPaint()},state(c,i){const n=c.__latFile;n&&(n.disabled=i.disabled===!0,n.readOnly=i.readOnly===!0,n.disabled?c.setAttribute("aria-disabled","true"):c.removeAttribute("aria-disabled"),n.readOnly?c.setAttribute("aria-readonly","true"):c.removeAttribute("aria-readonly"),c.__latPaint&&c.__latPaint())},validate(c,i,n){const a=c.__latFile;if(!a)return null;const r=a.entries.find(s=>s.status==="rejected");return r&&r.message&&(!Array.isArray(n)||n.length===0)?r.message:a.maxFiles&&Array.isArray(n)&&n.length>a.maxFiles?`Too many files (max ${a.maxFiles})`:null}})}),Ne("packages/dom/src/editors/richtext-icons.js",function(S,q){"use strict";Object.defineProperty(S,"TOOL_GLYPHS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"letterGlyph",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"toolGlyph",{enumerable:!0,get:function(){return h}});const e="http://www.w3.org/2000/svg",V=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),$=Object.freeze({color:"M8 2.5l4 5.5a4 4 0 0 1-8 0zM4.5 12.5h7",alignLeft:"M3 4h10M3 8h6M3 12h10",alignCenter:"M3 4h10M5 8h6M3 12h10",alignRight:"M3 4h10M7 8h6M3 12h10",ul:"M3 5.5h.01M3 9.5h.01M3 13.5h.01M6 5.5h7M6 9.5h7M6 13.5h7",ol:"M2.5 4.5h.01M2.5 8.5h.01M2.5 12.5h.01M5 4.5h8M5 8.5h8M5 12.5h8",outdent:"M3 4h8M3 8h5M3 12h8M8 3v2M8 11v2",indent:"M5 4h8M5 8h5M5 12h8M10 3v2M10 11v2",link:"M6.5 9.5a3 3 0 0 0 3 3l2-2a3 3 0 0 0-3-3M9.5 6.5a3 3 0 0 0-3-3l-2 2a3 3 0 0 0 3 3",image:"M2 3h12v10H2zM5.5 11l2.5-3 2 2 1.5-1.5 2 2.5M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",clear:"M5 4h9M6 4l-.5 8a2 2 0 0 1-2 1.8A2 2 0 0 1 1.5 12L1 4M4 4V2.5h8V4M6 7v3M9.5 7v3",source:"M6 4L2.5 8 6 12M10 4l3.5 4L10 12",undo:"M3 7h6a3.5 3.5 0 0 1 0 7H5M3 7l2-2M3 7l2 2",redo:"M13 7H7a3.5 3.5 0 0 0 0 7h4M13 7l-2-2M13 7l-2 2"});function ee(P,y){const A=V[y],B=P.createElementNS(e,"svg");B.setAttribute("viewBox","0 0 16 16"),B.setAttribute("width","16"),B.setAttribute("height","16"),B.setAttribute("focusable","false"),B.setAttribute("aria-hidden","true");const O=P.createElementNS(e,"text");return O.setAttribute("x","8"),O.setAttribute("y","12"),O.setAttribute("text-anchor","middle"),O.style.fontSize="12px",O.style.fill="currentColor",O.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',A.weight&&(O.style.fontWeight=A.weight),A.style&&(O.style.fontStyle=A.style),A.decoration&&(O.style.textDecoration=A.decoration),O.textContent=A.char,B.appendChild(O),B}function h(P,y){const A=P.createElementNS(e,"svg");A.setAttribute("viewBox","0 0 16 16"),A.setAttribute("focusable","false"),A.setAttribute("aria-hidden","true"),A.setAttribute("fill","none"),A.setAttribute("stroke","currentColor"),A.setAttribute("stroke-width","1.5"),A.setAttribute("stroke-linecap","round"),A.setAttribute("stroke-linejoin","round");const B=P.createElementNS(e,"path");return B.setAttribute("d",$[y]),A.appendChild(B),A}}),Ne("packages/modules/form/controls/swatches.js",function(S,q){"use strict";Object.defineProperty(S,"DEFAULT_COLORS",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"hslToHex",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"DEFAULT_PALETTE",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"DEFAULT_GRAY_SHADES",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"buildSwatchButton",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"buildSwatchGrid",{enumerable:!0,get:function(){return v}});const e=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),V=Object.freeze([0,24,48,84,140,168,196,224,268,320]),$=Object.freeze([.82,.66,.5,.36,.22]),ee=.62,h=Object.freeze([.92,.76,.56,.36,.18]);function P(d,u,_){let w=_;return w<0&&(w+=1),w>1&&(w-=1),w<1/6?d+(u-d)*6*w:w<1/2?u:w<2/3?d+(u-d)*(2/3-w)*6:d}function y(d,u,_){const w=(d%360+360)%360/360;let t,o,l;if(u===0)t=_,o=_,l=_;else{const p=_<.5?_*(1+u):_+u-_*u,m=2*_-p;t=P(m,p,w+1/3),o=P(m,p,w),l=P(m,p,w-1/3)}const b=p=>Math.round(p*255).toString(16).padStart(2,"0");return`#${b(t)}${b(o)}${b(l)}`}const A=Object.freeze(V.map(d=>Object.freeze($.map(u=>y(d,ee,u))))),B=Object.freeze(h.map(d=>y(0,0,d)));function O(d,u,_={}){const w=d.createElement("button");return w.type="button",w.className="lat-form__swatch",w.style.background=u,w.setAttribute("role","option"),w.setAttribute("data-color",u),w.setAttribute("aria-selected",_.selected?"true":"false"),_.selected&&w.classList.add("is-selected"),w.title=_.title!=null?_.title:u,w.tabIndex=-1,w}function v(d,u,_={}){const w=d.createElement("div");w.className="lat-form__swatch-grid",w.setAttribute("role","listbox");const t=[];for(const o of u){const l=d.createElement("div");l.className=_.rowClass?`lat-form__swatch-row ${_.rowClass}`:"lat-form__swatch-row";const b=[];for(const p of o){const m=O(d,p,{selected:typeof _.isSelected=="function"&&_.isSelected(p),title:typeof _.title=="function"?_.title(p):void 0});l.appendChild(m),b.push(m)}w.appendChild(l),t.push(b)}return typeof _.onPick=="function"&&w.addEventListener("click",o=>{const l=o.target&&o.target.closest?o.target.closest(".lat-form__swatch"):null;l&&w.contains(l)&&_.onPick(l.getAttribute("data-color"),l)}),{el:w,rows:t}}}),Ne("packages/modules/form/controls/richtext.js",function(S,q){"use strict";Object.defineProperty(S,"sanitize",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"escapeHtml",{enumerable:!0,get:function(){return h}});const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/dom/src/editors/sanitize-richtext.js"),ee=$.sanitizeRichText,h=$.escapeHtml,P=q("packages/dom/src/editors/richtext-icons.js"),y=P.letterGlyph,A=P.toolGlyph,B=P.TOOL_GLYPHS,O=q("packages/modules/form/controls/swatches.js"),v=O.DEFAULT_COLORS,d=O.buildSwatchGrid,u=ee,_=Object.freeze({basic:["bold","italic","underline","color","lowercase","uppercase","|","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","undo","redo"],html:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","clear","source","|","undo","redo"],rich:["bold","italic","underline","strike","color","lowercase","uppercase","|","heading","alignLeft","alignCenter","alignRight","ul","ol","outdent","indent","|","link","image","clear","source","|","undo","redo"]}),w=Object.freeze(["bold","italic","underline","strike"]),t=Object.freeze({bold:"form.richtext.bold",italic:"form.richtext.italic",underline:"form.richtext.underline",strike:"form.richtext.strike",color:"form.richtext.color",heading:"form.richtext.heading",alignLeft:"form.richtext.alignLeft",alignCenter:"form.richtext.alignCenter",alignRight:"form.richtext.alignRight",ul:"form.richtext.ul",ol:"form.richtext.ol",outdent:"form.richtext.outdent",indent:"form.richtext.indent",link:"form.richtext.link",image:"form.richtext.image",clear:"form.richtext.clear",source:"form.richtext.source",undo:"form.richtext.undo",redo:"form.richtext.redo",lowercase:"form.richtext.lowercase",uppercase:"form.richtext.uppercase"});function o(f){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[f]||null}const l=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function b(f){return Array.isArray(f)?f.map(N=>String(N)):_[f]||_.basic}function p(f){return new Promise((N,c)=>{const i=new FileReader;i.onload=()=>N(i.result),i.onerror=()=>c(i.error||new Error("read failed")),i.readAsDataURL(f)})}V("richtext",{kind:"field",build(f,N){const c=N.doc,i=f.props||{},n=b(i.toolbar),a=Array.isArray(i.headings)?i.headings:l,r=Array.isArray(i.colors)?i.colors:v,s=i.linkTarget!=null?String(i.linkTarget):"_blank",M=Number(i.minHeight)||160,D=Number(i.maxHeight)||0,Y=Number(i.maxImageSize)||0,U=typeof i.onImage=="function"?i.onImage:null,Q=i.sanitizePaste!==!1,oe=i.allowedTags,F=i.placeholder!=null?String(i.placeholder):N.t("form.richtext.placeholder"),K=c.createElement("div");K.className="lat-form__richtext";const W={toolbar:n,headings:a,colors:r,linkTarget:s,minHeight:M,maxHeight:D,maxImageSize:Y,onImage:U,sanitizePaste:Q,allowedTags:oe,placeholder:F,disabled:!1,readOnly:!1,toolbarEl:null,buttons:{},editor:null,source:null,popover:null,fileInput:null,range:null,sourceMode:!1,sourceDirty:!1,history:{stack:[],index:0},lastValue:null};K.__latRt=W;const ge=u(c,f.value==null?"":String(f.value),oe,{});W.history={stack:[ge],index:0},W.lastValue=ge;const ve=c.createElement("div");ve.className="lat-form__richtext-toolbar",ve.setAttribute("role","toolbar"),ve.setAttribute("aria-label",N.t("form.richtext.formatting")),W.toolbarEl=ve;for(const g of n){if(g==="|"){const X=c.createElement("span");X.className="lat-form__richtext-sep",X.setAttribute("role","separator"),ve.appendChild(X);continue}if(g==="heading"){const X=c.createElement("select");X.className="lat-form__richtext-select",X.title=N.t(t.heading),X.setAttribute("aria-label",N.t(t.heading)),X.setAttribute("data-item","heading");for(const[z,te]of a){const re=c.createElement("option");re.value=z,re.textContent=String(te),X.appendChild(re)}W.buttons.heading=X,ve.appendChild(X);continue}const T=c.createElement("button");T.type="button",T.className="lat-form__richtext-btn",T.setAttribute("data-item",g),T.title=N.t(t[g]||g),T.setAttribute("aria-label",N.t(t[g]||g)),g==="lowercase"||g==="uppercase"?(T.className+=" lat-form__richtext-btntext",T.textContent=N.t(g==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):w.includes(g)?T.appendChild(y(c,g)):B[g]?T.appendChild(A(c,g)):T.textContent=g,W.buttons[g]=T,ve.appendChild(T)}K.appendChild(ve);const le=c.createElement("div");le.className="lat-form__richtext-popover",le.hidden=!0,K.appendChild(le),W.popover=le;const x=c.createElement("div");x.className="lat-form__richtext-editor",x.contentEditable=f.readOnly||f.disabled?"false":"true",x.setAttribute("role","textbox"),x.setAttribute("aria-multiline","true"),x.setAttribute("aria-label",f.label!=null?String(f.label):N.t("form.richtext.richText")),x.setAttribute("data-placeholder",F),x.style.minHeight=`${M}px`,D&&(x.style.maxHeight=`${D}px`),x.innerHTML=ge,K.appendChild(x),W.editor=x;const L=c.createElement("textarea");L.className="lat-form__richtext-source",L.setAttribute("aria-label",N.t("form.richtext.source")),L.spellcheck=!1,L.hidden=!0,K.appendChild(L),W.source=L;const I=c.createElement("input");return I.type="file",I.accept="image/*",I.className="lat-form__richtext-file",I.tabIndex=-1,I.setAttribute("aria-hidden","true"),K.appendChild(I),W.fileInput=I,K.__latSave=()=>{const g=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;g&&g.rangeCount&&x.contains(g.anchorNode)&&(W.range=g.getRangeAt(0).cloneRange())},K.__latRestore=()=>{if(!W.range)return;const g=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(g)try{g.removeAllRanges(),g.addRange(W.range)}catch{}},K.__latRefresh=()=>{Object.entries(W.buttons).forEach(([g,T])=>{const X=o(g);if(X&&X.state&&T.tagName==="BUTTON"){let z=!1;try{z=c.queryCommandState(X.state)}catch{z=!1}T.setAttribute("aria-pressed",z?"true":"false"),T.classList.toggle("is-active",z)}if(g==="heading"&&T.tagName==="SELECT"){let z="";try{z=String(c.queryCommandValue("formatBlock")||"").toLowerCase()}catch{z=""}const te=[...T.options].some(re=>re.value===z);T.value=te?z:"p"}})},K.__latExec=(g,T)=>{x.focus(),K.__latRestore();try{c.execCommand("styleWithCSS",!1,g==="foreColor")}catch{}try{c.execCommand(g,!1,T===void 0?null:T)}catch{}K.__latAfterEdit()},K.__latAfterEdit=()=>{const g=x.innerHTML,T=W.history;T.stack[T.index]!==g&&(T.stack=T.stack.slice(0,T.index+1),T.stack.push(g),T.stack.length>200&&T.stack.shift(),T.index=T.stack.length-1),K.__latRefresh();const X=u(c,g,oe,{}),z=W.lastValue==null?u(c,T.stack[0]||"",oe,{}):W.lastValue;W.lastValue=X,m(K,c,z,X)},K.__latCaretEnd=()=>{const g=c.createRange();g.selectNodeContents(x),g.collapse(!1);const T=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;T&&(T.removeAllRanges(),T.addRange(g)),W.range=g.cloneRange()},K.__latUndo=()=>{const g=W.history;if(g.index<=0)return;g.index-=1,x.innerHTML=g.stack[g.index],K.__latCaretEnd(),K.__latRefresh();const T=u(c,x.innerHTML,oe,{});W.lastValue=T,m(K,c,W.lastValue,T)},K.__latRedo=()=>{const g=W.history;if(g.index>=g.stack.length-1)return;g.index+=1,x.innerHTML=g.stack[g.index],K.__latCaretEnd(),K.__latRefresh();const T=u(c,x.innerHTML,oe,{});W.lastValue=T,m(K,c,W.lastValue,T)},K.__latClosePopover=()=>{le.hidden=!0,le.textContent=""},K.__latOpenPopover=(g,T)=>{if(le.textContent="",le.hidden=!1,le.style.left=`${Math.max(0,T.offsetLeft)}px`,g==="color"){const{el:X}=d(c,[r],{onPick:j=>{K.__latRestore(),K.__latExec("foreColor",j),K.__latClosePopover()}});le.appendChild(X);const z=c.createElement("div");z.className="lat-form__richtext-poprow";const te=c.createElement("input");te.type="color",te.className="lat-form__richtext-colorinput",te.setAttribute("aria-label",N.t("form.richtext.colorCustom")),te.addEventListener("input",()=>{K.__latRestore(),K.__latExec("foreColor",te.value)});const re=c.createElement("button");re.type="button",re.className="lat-form__richtext-popbtn",re.textContent=N.t("form.richtext.colorRemove"),re.addEventListener("click",()=>{K.__latRestore(),K.__latExec("foreColor","inherit"),K.__latClosePopover()}),z.appendChild(te),z.appendChild(re),le.appendChild(z)}else{const X=K.__latClosestLink(),z=c.createElement("input");z.type="url",z.className="lat-form__richtext-linkinput",z.placeholder=N.t("form.richtext.linkPlaceholder"),z.value=X&&X.getAttribute("href")||"",z.setAttribute("aria-label",N.t("form.richtext.linkLabel"));const te=()=>{const k=z.value.trim();if(K.__latRestore(),!k){K.__latExec("unlink"),K.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test(k)){z.classList.add("is-invalid");return}if(X)X.setAttribute("href",k),K.__latAfterEdit();else{const Z=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(Z&&Z.isCollapsed){const H=s?` target="${h(s)}" rel="noopener noreferrer"`:"";K.__latExec("insertHTML",u(c,`<a href="${h(k)}"${H}>${h(k)}</a>`,oe,{}))}else{K.__latExec("createLink",k);const H=K.__latClosestLink();H&&s&&(H.setAttribute("target",s),H.setAttribute("rel","noopener noreferrer"))}}K.__latClosePopover()};z.addEventListener("keydown",k=>{k.key==="Enter"&&(k.preventDefault(),te()),k.key==="Escape"&&K.__latClosePopover()});const re=c.createElement("div");re.className="lat-form__richtext-poprow",re.appendChild(z);const j=c.createElement("button");if(j.type="button",j.className="lat-form__richtext-popbtn",j.textContent=X?N.t("form.richtext.linkUpdate"):N.t("form.richtext.linkAdd"),j.addEventListener("click",te),re.appendChild(j),X){const k=c.createElement("button");k.type="button",k.className="lat-form__richtext-popbtn",k.textContent=N.t("form.richtext.linkRemove"),k.addEventListener("click",()=>{K.__latRestore(),K.__latExec("unlink"),K.__latClosePopover()}),re.appendChild(k)}le.appendChild(re),setTimeout(()=>z.focus(),0)}},K.__latClosestLink=()=>{const g=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(!g||g.rangeCount===0)return null;let T=g.getRangeAt(0).commonAncestorContainer;T.nodeType===3&&(T=T.parentNode);const X=T.closest?T.closest("a"):null;return X&&x.contains(X)?X:null},K.__latRun=g=>{if(W.disabled||W.readOnly)return;g!=="source"&&W.sourceMode&&K.__latToggleSource(!1),K.__latRestore();const T=o(g);if(g==="color"||g==="link"){K.__latOpenPopover(g,W.buttons[g]);return}if(g==="undo"){K.__latUndo();return}if(g==="redo"){K.__latRedo();return}if(g==="source"){K.__latToggleSource();return}if(g==="image"){W.fileInput.click();return}if(g==="lowercase"||g==="uppercase"){K.__latCase(g==="uppercase");return}if(T){K.__latExec(T.cmd);return}},K.__latCase=g=>{const T=c.defaultView&&c.defaultView.getSelection?c.defaultView.getSelection():null;if(!T||T.rangeCount===0||T.isCollapsed)return;const X=T.toString();K.__latExec("insertText",g?X.toUpperCase():X.toLowerCase())},K.__latToggleSource=g=>{const T=g===void 0?!W.sourceMode:!!g;if(T===W.sourceMode)return;T?(W.source.value=u(c,x.innerHTML,oe,{}).replace(/></g,`>
|
|
1661
|
+
<`),x.hidden=!0,L.hidden=!1,L.focus()):(W.sourceDirty&&(x.innerHTML=u(c,L.value,oe,{}),W.sourceDirty=!1),L.hidden=!0,x.hidden=!1,x.focus()),W.sourceMode=T;const X=W.buttons.source;X&&(X.classList.toggle("is-active",T),X.setAttribute("aria-pressed",T?"true":"false")),Object.entries(W.buttons).forEach(([z,te])=>{z!=="source"&&(te.disabled=T)}),T||K.__latAfterEdit()},K.__latInsertImage=async g=>{if(!/^image\//.test(g.type)||Y&&g.size>Y)return;let T;try{T=U?await U(g):await p(g)}catch{return}T&&K.__latExec("insertHTML",u(c,`<img src="${h(T)}" alt="${h(g.name)}" style="max-width:100%">`,oe,{}))},K.__latToolbarClick=g=>{const T=g.target&&g.target.closest?g.target.closest("[data-item]"):null;!T||!ve.contains(T)||T.tagName==="SELECT"||(g.preventDefault(),K.__latRun(T.getAttribute("data-item")))},K.__latToolbarDown=g=>{g.target&&g.target.closest&&g.target.closest(".lat-form__richtext-btn")&&g.preventDefault()},K.__latSelect=g=>{g.target&&g.target.getAttribute&&g.target.getAttribute("data-item")==="heading"&&(K.__latRestore(),K.__latExec("formatBlock",g.target.value))},K.__latInput=()=>{K.__latAfterEdit()},K.__latKey=g=>{if(!(g.ctrlKey||g.metaKey))return;const T=g.key.toLowerCase();T==="z"&&!g.shiftKey?(g.preventDefault(),K.__latUndo()):T==="y"||T==="z"&&g.shiftKey?(g.preventDefault(),K.__latRedo()):T==="k"&&W.buttons.link&&(g.preventDefault(),K.__latRun("link"))},K.__latPaste=g=>{if(!Q||!g.clipboardData)return;const T=g.clipboardData.getData("text/html"),X=g.clipboardData.getData("text/plain");if(!T&&!X)return;g.preventDefault();const z=T?u(c,T,oe,{stripStyles:!0}):h(X).replace(/\r?\n/g,"<br>");K.__latExec("insertHTML",z)},K.__latDrop=g=>{if(!Q||!g.dataTransfer)return;const T=g.dataTransfer.files;if(T&&T.length){g.preventDefault();const re=T[0];re&&K.__latInsertImage(re);return}const X=g.dataTransfer.getData("text/html"),z=g.dataTransfer.getData("text/plain");if(!X&&!z)return;g.preventDefault();const te=X?u(c,X,oe,{stripStyles:!0}):h(z).replace(/\r?\n/g,"<br>");K.__latExec("insertHTML",te)},K.__latBeforeInput=g=>{Q&&(g.inputType==="insertFromDrop"||g.inputType==="insertFromPaste")&&g.preventDefault()},K.__latSelChange=()=>{c.activeElement===x&&(K.__latSave(),K.__latRefresh())},K.__latFile=()=>{const g=I.files&&I.files[0];I.value="",g&&K.__latInsertImage(g)},K.__latSourceInput=()=>{W.sourceDirty=!0},K.__latDocClick=g=>{le&&!le.hidden&&!le.contains(g.target)&&!ve.contains(g.target)&&K.__latClosePopover()},ve.addEventListener("click",K.__latToolbarClick),ve.addEventListener("mousedown",K.__latToolbarDown),ve.addEventListener("change",K.__latSelect),x.addEventListener("input",K.__latInput),x.addEventListener("keydown",K.__latKey),x.addEventListener("paste",K.__latPaste),x.addEventListener("drop",K.__latDrop),x.addEventListener("beforeinput",K.__latBeforeInput),I.addEventListener("change",K.__latFile),L.addEventListener("input",K.__latSourceInput),c.addEventListener&&(c.addEventListener("selectionchange",K.__latSelChange),c.addEventListener("mousedown",K.__latDocClick,!0)),K},read(f){const N=f.__latRt;return N?N.sourceMode?u(f.ownerDocument,N.source.value,N.allowedTags,{}):u(f.ownerDocument,N.editor.innerHTML,N.allowedTags,{}):""},write(f,N){const c=f.__latRt;if(!c)return;const i=f.ownerDocument,n=u(i,N==null?"":String(N),c.allowedTags,{});c.sourceMode&&(c.source.value=n),c.editor.innerHTML=n,c.history={stack:[n],index:0},c.lastValue=n},state(f,N){const c=f.__latRt;c&&(c.disabled=N.disabled===!0,c.readOnly=N.readOnly===!0,c.editor.contentEditable=c.disabled||c.readOnly?"false":"true",c.editor.tabIndex=c.readOnly?0:-1,c.readOnly?c.editor.setAttribute("aria-readonly","true"):c.editor.removeAttribute("aria-readonly"),c.disabled?f.setAttribute("aria-disabled","true"):f.removeAttribute("aria-disabled"),c.readOnly?f.setAttribute("aria-readonly","true"):f.removeAttribute("aria-readonly"),Object.values(c.buttons).forEach(i=>{i.disabled=c.disabled||c.readOnly}))}});function m(f,N,c,i){const n=N&&N.defaultView,a=n&&n.Event,r=a?new a("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};f.dispatchEvent(r)}}),Ne("packages/modules/form/controls/rating.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=5,ee=Object.freeze({star:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.2l-3.8 2 .7-4.3-3.1-3 4.3-.6z",heart:"M8 14s-5-3.2-5-6.3A2.9 2.9 0 0 1 8 5.7 2.9 2.9 0 0 1 13 7.7C13 10.8 8 14 8 14z"});function h(u){const _=String(u??"");return Object.hasOwn(ee,_)?_:"star"}function P(u,_,w){return Math.min(Math.max(u,_),w)}function y(u,_){const w=_&&_.defaultView,t=w&&w.Event,o=t?new t("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(o)}function A(u,_,w){const t=u.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("focusable","false"),t.setAttribute("aria-hidden","true"),w?t.setAttribute("fill","currentColor"):(t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linejoin","round"));const o=u.createElementNS("http://www.w3.org/2000/svg","path");return o.setAttribute("d",ee[_]),t.appendChild(o),t}function B(u,_,w){const t=Number(u),o=Number.isFinite(t)?t:0,l=w?Math.round(o*2)/2:Math.round(o);return P(l,0,_)}function O(u,_){return Math.min(1,Math.max(0,u-(_-1)))}V("rating",{kind:"field",build(u,_){const w=_.doc,t=u.props||{},o=Math.max(1,Math.floor(Number(u.max!=null?u.max:t.max)||$)),l=t.allowHalf===!0,b=t.allowClear!==!1,p=t.showValue===!0,m=Array.isArray(t.labels)?t.labels:null,f=h(t.icons&&t.icons.filled?t.icons.filled:t.icon),N=h(t.icons&&t.icons.empty?t.icons.empty:`${f}-outline`),c=t.size==="lg"||t.size==="sm"?t.size:"md",i=w.createElement("div");i.className=`lat-form__rating lat-form__rating--${c}`,i.setAttribute("role","slider"),i.setAttribute("aria-valuemin","0"),i.setAttribute("aria-valuemax",String(o)),i.setAttribute("aria-label",u.label!=null?String(u.label):_.t("form.rating"));const n={value:B(u.value,o,l),max:o,allowHalf:l,allowClear:b,labels:m,showValue:p,filledName:f,emptyName:N,items:[],fills:[],valueEl:null};i.__latRating=n;const a=w.createElement("span");a.className="lat-form__rating-track",a.setAttribute("aria-hidden","true");for(let r=0;r<o;r++){const s=w.createElement("span");s.className="lat-form__rating-item",s.setAttribute("data-index",String(r)),m&&m[r]!=null&&m[r]!==""&&(s.title=String(m[r])),s.appendChild(A(w,N,!1));const M=w.createElement("span");M.className="lat-form__rating-fill",M.setAttribute("aria-hidden","true"),M.appendChild(A(w,f,!0)),s.appendChild(M),a.appendChild(s),n.items.push(s),n.fills.push(M)}if(i.appendChild(a),p){const r=w.createElement("span");r.className="lat-form__rating-value",r.setAttribute("aria-hidden","true"),i.appendChild(r),n.valueEl=r}return i.__latPaint=()=>{for(let r=0;r<n.items.length;r++){const s=O(n.value,r+1);n.items[r].setAttribute("data-fill",s>=1?"full":s>0?"half":"empty"),n.fills[r].style.width=`${(s*100).toFixed(2)}%`}i.setAttribute("aria-valuenow",String(n.value)),i.setAttribute("aria-valuetext",v(n)),n.valueEl&&(n.valueEl.textContent=d(n))},i.__latSet=r=>{n.value=B(r,o,l),i.__latPaint()},i.__latClear=()=>{n.value=0,i.__latPaint()},i.__latPick=(r,s)=>{let M=r+1;if(l&&s&&Number.isFinite(s.clientX)){const D=n.items[r].getBoundingClientRect();D&&D.width>0&&(M=s.clientX-D.left<D.width/2?r+.5:r+1)}b&&M===n.value&&(M=0),i.__latSet(M),y(i,_.doc)},i.addEventListener("click",r=>{if(n.disabled||n.readOnly)return;const s=r.target&&r.target.closest?r.target.closest(".lat-form__rating-item"):null;!s||!i.contains(s)||i.__latPick(Number(s.getAttribute("data-index")),r)}),i.__latKey=r=>{if(n.disabled||n.readOnly)return;const s=l?.5:1;let M=n.value;if(r.key==="ArrowRight"||r.key==="ArrowUp")M+=s;else if(r.key==="ArrowLeft"||r.key==="ArrowDown")M-=s;else if(r.key==="Home")M=0;else if(r.key==="End")M=o;else if(r.key==="Backspace"||r.key==="Delete")M=0;else return;r.preventDefault(),i.__latSet(M),y(i,_.doc)},i.addEventListener("keydown",i.__latKey),i.__latPaint(),i},read(u){return u.__latRating?u.__latRating.value:0},write(u,_){u.__latRating&&(u.__latRating.value=B(_,u.__latRating.max,u.__latRating.allowHalf),u.__latPaint())},state(u,_){const w=u.__latRating;w&&(w.disabled=_.disabled===!0,w.readOnly=_.readOnly===!0,u.tabIndex=w.disabled?-1:0,w.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly"),w.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"))}});function v(u){const _=Math.round(u.value);return u.labels&&u.labels[_-1]&&u.value===_?u.labels[_-1]:`${u.value} of ${u.max}`}function d(u){return String(u.value)}}),Ne("packages/modules/form/controls/stage.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl;function $(P,y){const A=y&&y.defaultView,B=A&&A.Event,O=B?new B("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};P.dispatchEvent(O)}function ee(P,y){return typeof y=="number"&&Number.isFinite(y)?Math.min(Math.max(Math.round(y),0),P.length-1):typeof y=="string"?P.indexOf(y):-1}function h(P,y,A){return`${P}, ${y+1} of ${A}`}V("stage",{kind:"field",build(P,y){const A=y.doc,B=P.props||{},O=Array.isArray(B.stages)?B.stages.map(l=>String(l)):[],v=B.clickable!==!1,d=B.showIcons!==!1,u=ee(O,P.value!=null?P.value:B.current),_=ee(O,B.completed),w=A.createElement("div");w.className="lat-form__stage",w.setAttribute("role","radiogroup"),w.setAttribute("aria-label",P.label!=null?String(P.label):y.t("form.stage"));const t=[],o={stages:O,value:u>=0?O[u]:null,index:u,completed:_,clickable:v,showIcons:d,disabled:!1,readOnly:!1,focus:u>=0?u:0};w.__latStage=o;for(let l=0;l<O.length;l++){const b=A.createElement(v?"button":"span");if(b.type=v?"button":void 0,b.className="lat-form__stage-step",b.setAttribute("data-index",String(l)),v&&(b.setAttribute("role","radio"),b.setAttribute("aria-label",h(O[l],l,O.length))),d){const m=A.createElementNS("http://www.w3.org/2000/svg","svg");m.setAttribute("viewBox","0 0 16 16"),m.setAttribute("aria-hidden","true"),m.setAttribute("class","lat-form__stage-check");const f=A.createElementNS("http://www.w3.org/2000/svg","path");f.setAttribute("d","M3 8.5l3 3 7-7"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","2"),f.setAttribute("stroke-linecap","round"),f.setAttribute("stroke-linejoin","round"),m.appendChild(f),b.appendChild(m)}const p=A.createElement("span");p.className="lat-form__stage-label",p.textContent=O[l],b.appendChild(p),w.appendChild(b),t.push(b)}return w.__latPaint=()=>{for(let l=0;l<t.length;l++){const b=l===o.index,p=!b&&o.completed>=0&&l<=o.completed;t[l].setAttribute("data-state",b?"current":p?"done":"todo"),o.clickable&&(t[l].setAttribute("aria-checked",b?"true":"false"),t[l].tabIndex=o.disabled?-1:l===o.focus?0:-1)}},w.__latSelect=l=>{const b=l>=0&&l<O.length?O[l]:null;b!==o.value&&(o.index=l>=0&&l<O.length?l:-1,o.value=b,o.focus=o.index>=0?o.index:0,w.__latPaint(),$(w,y.doc))},w.__latKey=l=>{if(o.disabled||o.readOnly||!o.clickable||!O.length)return;let b=o.focus;if(l.key==="ArrowRight"||l.key==="ArrowDown")b+=1;else if(l.key==="ArrowLeft"||l.key==="ArrowUp")b-=1;else if(l.key==="Home")b=0;else if(l.key==="End")b=O.length-1;else return;l.preventDefault();const p=Math.min(Math.max(b,0),O.length-1);o.focus=p,t[p].focus(),w.__latSelect(p)},v&&(w.addEventListener("click",l=>{if(o.disabled||o.readOnly)return;const b=l.target&&l.target.closest?l.target.closest(".lat-form__stage-step"):null;if(!b||!w.contains(b))return;const p=Number(b.getAttribute("data-index"));o.focus=p,w.__latSelect(p)}),w.addEventListener("keydown",w.__latKey)),w.__latPaint(),w},read(P){return P.__latStage?P.__latStage.value:null},write(P,y){const A=P.__latStage;if(!A)return;const B=y==null?-1:ee(A.stages,y);A.index=B,A.value=B>=0?A.stages[B]:null,A.focus=B>=0?B:0,P.__latPaint()},state(P,y){const A=P.__latStage;A&&(A.disabled=y.disabled===!0,A.readOnly=y.readOnly===!0,A.readOnly?P.setAttribute("aria-readonly","true"):P.removeAttribute("aria-readonly"),A.disabled?P.setAttribute("aria-disabled","true"):P.removeAttribute("aria-disabled"),P.__latPaint())}})}),Ne("packages/modules/form/controls/chips.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$="M3 8.5l3 3 7-7";function ee(y,A){const B=A&&A.defaultView,O=B&&B.Event,v=O?new O("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};y.dispatchEvent(v)}function h(y){if(typeof y=="string")return{value:y,label:y,icon:null,disabled:!1};if(y!==null&&typeof y=="object"){const A=y.value===void 0?String(y.label):y.value;return{value:A,label:y.label==null?String(A):String(y.label),icon:typeof y.icon=="string"&&y.icon!==""?y.icon:null,disabled:y.disabled===!0}}return{value:y,label:String(y),icon:null,disabled:!1}}function P(y,A,B){const O=y.createElementNS("http://www.w3.org/2000/svg","svg");O.setAttribute("viewBox","0 0 16 16"),O.setAttribute("focusable","false"),O.setAttribute("aria-hidden","true");const v=y.createElementNS("http://www.w3.org/2000/svg","path");return v.setAttribute("d",A),B?v.setAttribute("fill","currentColor"):(v.setAttribute("fill","none"),v.setAttribute("stroke","currentColor"),v.setAttribute("stroke-width","2"),v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round")),O.appendChild(v),O}V("chips",{kind:"field",build(y,A){const B=A.doc,O=y.props||{},v=(Array.isArray(y.options)?y.options:[]).map(h),d=O.multiple===!0,u=O.allowEmpty===!0,_=O.wrap!==!1,w=y.max!=null&&Number.isFinite(Number(y.max))?Number(y.max):null,t=B.createElement("div");t.className=`lat-form__chips${_?"":" lat-form__chips--scroll"}`,t.setAttribute("role",d?"group":"radiogroup"),t.setAttribute("aria-label",y.label!=null?String(y.label):A.t("form.chips"));const o=[],l=new Set,b={options:v,multiple:d,allowEmpty:u,wrap:_,max:w,selected:l,disabled:!1,readOnly:!1,t:A.t};t.__latChips=b;for(let m=0;m<v.length;m++){const f=v[m],N=B.createElement("button");if(N.type="button",N.className="lat-form__chip",N.setAttribute("data-index",String(m)),N.disabled=f.disabled,d||N.setAttribute("role","radio"),f.icon){const i=P(B,f.icon,!0);i.setAttribute("class","lat-form__chip-icon"),N.appendChild(i)}const c=B.createElement("span");if(c.className="lat-form__chip-label",c.textContent=f.label,N.appendChild(c),d){const i=P(B,$,!1);i.setAttribute("class","lat-form__chip-check"),N.appendChild(i)}t.appendChild(N),o.push(N)}b.buttons=o,t.__latPaint=()=>{for(let m=0;m<o.length;m++){const f=v[m],N=l.has(f.value),c=o[m];c.disabled=f.disabled||b.disabled,d?(c.setAttribute("aria-pressed",N?"true":"false"),c.tabIndex=b.disabled?-1:0):(c.setAttribute("aria-checked",N?"true":"false"),c.tabIndex=b.disabled?-1:N?0:-1)}},t.__latValue=()=>{if(d)return v.filter(m=>l.has(m.value)).map(m=>m.value);for(const m of v)if(l.has(m.value))return m.value;return null},t.__latToggle=m=>{const f=v[m];if(!(!f||f.disabled||b.disabled||b.readOnly)){if(d)if(l.has(f.value))l.delete(f.value);else{if(w!=null&&l.size>=w)return;l.add(f.value)}else if(l.has(f.value))if(b.allowEmpty)l.clear();else return;else l.clear(),l.add(f.value);t.__latPaint(),ee(t,A.doc)}},t.addEventListener("click",m=>{const f=m.target&&m.target.closest?m.target.closest(".lat-form__chip"):null;!f||!t.contains(f)||t.__latToggle(Number(f.getAttribute("data-index")))}),t.__latKey=m=>{if(b.multiple||b.disabled||b.readOnly||!o.length)return;let f=-1;for(let n=0;n<o.length;n++)if(l.has(v[n].value)){f=n;break}let N=f;if(m.key==="ArrowRight"||m.key==="ArrowDown")N=f+1;else if(m.key==="ArrowLeft"||m.key==="ArrowUp")N=f-1;else if(m.key==="Home")N=0;else if(m.key==="End")N=v.length-1;else return;m.preventDefault();const c=m.key==="ArrowLeft"||m.key==="ArrowUp"?-1:1;let i=N;for(;i>=0&&i<v.length&&v[i].disabled;)i+=c;i<0||i>=v.length||(l.clear(),l.add(v[i].value),t.__latPaint(),o[i].focus(),ee(t,A.doc))},t.addEventListener("keydown",t.__latKey);const p=y.value;if(d){const m=Array.isArray(p)?p:[];for(const f of m)v.some(N=>N.value===f)&&l.add(f)}else if(p!=null&&v.some(m=>m.value===p))l.add(p);else if(!u){const m=v.find(f=>!f.disabled)||v[0];m&&l.add(m.value)}return t.__latPaint(),t},read(y){return y.__latChips?y.__latValue():null},write(y,A){const B=y.__latChips;if(B){if(B.selected.clear(),B.multiple){const O=Array.isArray(A)?A:[];for(const v of O)B.options.some(d=>d.value===v)&&B.selected.add(v)}else if(A!=null&&B.options.some(O=>O.value===A))B.selected.add(A);else if(!B.allowEmpty){const O=B.options.find(v=>!v.disabled)||B.options[0];O&&B.selected.add(O.value)}y.__latPaint()}},validate(y,A,B){const O=y.__latChips;if(!O||!O.multiple)return null;const v=Array.isArray(B)?B.length:0,d=A.min!=null&&Number.isFinite(Number(A.min))?Number(A.min):null,u=A.max!=null&&Number.isFinite(Number(A.max))?Number(A.max):null;return d!=null&&v<d?{code:"min",message:O.t("form.chips.min",{min:String(d)})}:u!=null&&v>u?{code:"max",message:O.t("form.chips.max",{max:String(u)})}:null},state(y,A){const B=y.__latChips;B&&(B.disabled=A.disabled===!0,B.readOnly=A.readOnly===!0,B.readOnly?y.setAttribute("aria-readonly","true"):y.removeAttribute("aria-readonly"),B.disabled?y.setAttribute("aria-disabled","true"):y.removeAttribute("aria-disabled"),y.__latPaint())}})}),Ne("packages/modules/form/controls/otp.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=6;function ee(u){const _=Math.floor(Number(u));return Number.isFinite(_)&&_>=1?_:$}function h(u){return u==="alphanumeric"?"alphanumeric":"numeric"}function P(u,_){return _==="numeric"?/^[0-9]$/.test(u):/^[A-Za-z0-9]$/.test(u)}function y(u,_){for(let w=u.length-1;w>=0;w-=1)if(P(u[w],_))return u[w];return""}function A(u,_,w){return(u==null?"":String(u)).replace(/[\s-]/g,"").split("").filter(o=>P(o,_)).slice(0,w)}function B(u,_,w){const t=_&&_.defaultView,o=t&&t.Event,l=o?new o(w,{bubbles:!0}):{type:w,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};u.dispatchEvent(l)}function O(u,_){const w=A(_,u.mode,u.length);for(let t=0;t<u.length;t+=1)u.boxes[t].value=w[t]||""}function v(u){u.complete=u.boxes.every(_=>_.value!=="")}function d(u){return u.boxes.map(_=>_.value).join("")}V("otp",{kind:"field",domEvents:["complete"],build(u,_){const w=_.doc,t=u.props||{},o=ee(t.length),l=h(u.mode!=null?u.mode:t.mode),b=t.mask===!0,p=w.createElement("div");p.className="lat-form__otp",p.setAttribute("role","group"),p.setAttribute("aria-label",u.label!=null&&u.label!==""?String(u.label):_.t("form.otp.label"));const m=[],f={length:o,mode:l,mask:b,boxes:m,complete:!1,disabled:!1,readOnly:!1};p.__latOtp=f;for(let c=0;c<o;c+=1){const i=w.createElement("input");i.type="text",i.className=`lat-form__otp-input${b?" lat-form__otp-input--masked":""}`,i.setAttribute("inputmode",l==="numeric"?"numeric":"text"),i.setAttribute("pattern",l==="numeric"?"[0-9]":"[A-Za-z0-9]"),i.setAttribute("maxlength","1"),i.setAttribute("aria-label",_.t("form.otp.digit",{n:c+1,total:o})),i.autocomplete=c===0?"one-time-code":"off",m.push(i),p.appendChild(i)}const N=()=>{if(p.__latPublishing)return;p.__latPublishing=!0;try{B(p,w,"input"),B(p,w,"change")}finally{p.__latPublishing=!1}const c=m.every(i=>i.value!=="");c&&!f.complete?(f.complete=!0,B(p,w,"complete")):!c&&f.complete&&(f.complete=!1)};return p.addEventListener("input",c=>{if(p.__latPublishing)return;c.stopImmediatePropagation();const i=c.target;if(!m.includes(i))return;i.value=y(i.value,l);const n=m.indexOf(i);i.value!==""&&n<o-1&&m[n+1].focus(),N()}),p.addEventListener("change",c=>{p.__latPublishing||c.stopImmediatePropagation()}),p.addEventListener("keydown",c=>{if(f.disabled||f.readOnly)return;const i=c.target;if(!m.includes(i))return;const n=m.indexOf(i);c.key==="Backspace"?(c.preventDefault(),i.value!==""?i.value="":n>0&&(m[n-1].value="",m[n-1].focus()),N()):c.key==="ArrowLeft"&&n>0?(c.preventDefault(),m[n-1].focus()):c.key==="ArrowRight"&&n<o-1?(c.preventDefault(),m[n+1].focus()):c.key.length===1&&!P(c.key,l)&&!c.ctrlKey&&!c.metaKey&&!c.altKey&&c.preventDefault()}),p.addEventListener("paste",c=>{if(f.disabled||f.readOnly)return;c.preventDefault();const i=c.clipboardData&&typeof c.clipboardData.getData=="function"?c.clipboardData.getData("text"):"";O(f,i),(m.find(a=>a.value==="")||m[o-1]).focus(),N()}),p.focus=()=>{const c=m.find(i=>!i.disabled&&!i.readOnly&&i.value==="")||m[0];c&&c.focus()},p.blur=()=>{for(const c of m)c.blur()},O(f,u.value),v(f),p},read(u){return u.__latOtp?d(u.__latOtp):""},write(u,_){u.__latOtp&&(O(u.__latOtp,_),v(u.__latOtp))},state(u,_){const w=u.__latOtp;if(w){w.disabled=_.disabled===!0,w.readOnly=_.readOnly===!0;for(const t of w.boxes)t.disabled=w.disabled,t.readOnly=w.readOnly;w.disabled?u.setAttribute("aria-disabled","true"):u.removeAttribute("aria-disabled"),w.readOnly?u.setAttribute("aria-readonly","true"):u.removeAttribute("aria-readonly")}}})}),Ne("packages/modules/form/controls/color.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,$=q("packages/modules/form/controls/field-icon.js"),ee=$.makeFieldIcon,h=$.injectFieldIconStyles,P=q("packages/modules/form/controls/swatches.js"),y=P.DEFAULT_PALETTE,A=P.DEFAULT_GRAY_SHADES,B=P.buildSwatchGrid,O=P.hslToHex,v=10,d=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i,u=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i;function _(x){return x}const w=new Set;function t(x,L){w.has(x)||(w.add(x),console.warn("[lattice]",L))}function o(x){if(typeof x!="string")return null;const L=x.trim();if(!d.test(L))return null;const I=L.replace(/^#/,"").toLowerCase();return`#${I.length===3?I.split("").map(T=>T+T).join(""):I}`}function l(x){if(typeof x!="string")return null;const L=o(x);if(L)return L;const I=u.exec(x.trim());if(!I)return null;const g=X=>Math.max(0,Math.min(255,Number(X))),T=X=>g(X).toString(16).padStart(2,"0");return`#${T(I[1])}${T(I[2])}${T(I[3])}`}function b(x){const L=o(x);return L?{r:parseInt(L.slice(1,3),16),g:parseInt(L.slice(3,5),16),b:parseInt(L.slice(5,7),16)}:null}function p(x,L,I){const g=T=>Math.max(0,Math.min(255,Math.round(T))).toString(16).padStart(2,"0");return`#${g(x)}${g(L)}${g(I)}`}function m(x,L,I){const g=x/255,T=L/255,X=I/255,z=Math.max(g,T,X),te=Math.min(g,T,X),re=(z+te)/2,j=z-te;if(j===0)return{h:0,s:0,l:re};const k=re>.5?j/(2-z-te):j/(z+te);let Z;return z===g?Z=(T-X)/j%6:z===T?Z=(X-g)/j+2:Z=(g-T)/j+4,Z*=60,Z<0&&(Z+=360),{h:Z,s:k,l:re}}function f(x){return O(x.h,x.s,x.l)}function N(x,L,I){const g=x.ownerDocument,T=g&&g.defaultView,X=T&&typeof T.CustomEvent=="function"?T.CustomEvent:null,z=X?new X(L,{bubbles:!0,detail:I}):{type:L,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,detail:I,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};x.dispatchEvent(z)}function c(x){const L=x.props&&x.props.palette;return Array.isArray(L)&&L.length?L:y}function i(x){return!(x.props&&x.props.editable===!1)}function n(x){return!!(x.props&&x.props.clearable===!0)}function a(x){return!!(x.props&&x.props.pickerOnly===!0)}function r(x){return!(x.props&&x.props.grayShades===!1)}function s(x){const L=x.props&&x.props.icon;return typeof L=="string"&&L!==""?L:null}function M(x){const L=x.props&&x.props.customColors;return Array.isArray(L)?[...new Set(L.map(l).filter(Boolean))].slice(0,v):[]}function D(x){const L=o(x.__input.value);x.__swatchBtn.style.background=L||"transparent",x.__swatchBtn.classList.toggle("lat-form__color-swatch--empty",!L),x.__clearBtn&&(x.__clearBtn.hidden=x.__input.value.trim()==="")}function Y(x,L){x.__value=L||null,x.__input.value=L||"",x.__lastCommittedText=L||"",D(x)}function U(x){if(i(x.__item)===!1)return;const L=x.__input.value.trim();if(L===x.__lastCommittedText)return;const I=o(L);(I||L==="")&&(x.__value=I,x.__lastCommittedText=L),N(x,"change")}function Q(x,L){Y(x,L),N(x,"change")}function oe(x,L){const I=x.__customColors,g=I.filter(X=>X!==L),T=[L,...g].slice(0,v);T.length===I.length&&T.every((X,z)=>X===I[z])||(x.__customColors=T,N(x,"customColorsChange",{colors:T}))}function F(x){const L=x.__popover,I=x.ownerDocument,g=I&&I.defaultView,T=x.__field.getBoundingClientRect(),X=g?g.innerHeight:0,z=L.offsetHeight||0;X-T.bottom<z+4&&T.top>z+4?L.classList.add("lat-form__color-popover--above"):L.classList.remove("lat-form__color-popover--above")}function K(x,L,I,g){let T=Math.max(0,Math.min(x.length-1,L.row+I)),X=L.col+g;if(g!==0){const z=x[T].length;X=Math.max(0,Math.min(z-1,X))}else X=Math.max(0,Math.min(x[T].length-1,X));return{row:T,col:X}}function W(x){const L=x.__item,I=x.ownerDocument,g=x.__popover;for(;g.firstChild;)g.removeChild(g.firstChild);const T=[...c(L)];r(L)&&T.push([...A]),x.__customColors.length&&T.push([...x.__customColors]);const X=x.__value,{el:z,rows:te}=B(I,T,{isSelected:j=>j===X,onPick:j=>{Q(x,j),le(x,{restoreFocus:!0})}});z.classList.add("lat-form__color-grid"),g.appendChild(z);for(const j of te)for(const k of j){if(k.getAttribute("aria-selected")!=="true")continue;const Z=I.createElementNS("http://www.w3.org/2000/svg","svg");Z.setAttribute("viewBox","0 0 16 16"),Z.setAttribute("class","lat-form__color-check"),Z.setAttribute("aria-hidden","true");const H=I.createElementNS("http://www.w3.org/2000/svg","path");H.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),H.setAttribute("fill","none"),H.setAttribute("stroke","#fff"),H.setAttribute("stroke-width","2.6"),H.setAttribute("stroke-linecap","round"),H.setAttribute("stroke-linejoin","round"),H.setAttribute("paint-order","stroke"),Z.appendChild(H);const E=I.createElementNS("http://www.w3.org/2000/svg","path");E.setAttribute("d","M3.5 8.5 6.5 11.5 12.5 4.5"),E.setAttribute("fill","none"),E.setAttribute("stroke","#000"),E.setAttribute("stroke-width","4.2"),E.setAttribute("stroke-linecap","round"),E.setAttribute("stroke-linejoin","round"),E.setAttribute("opacity","0.35"),Z.insertBefore(E,H),k.appendChild(Z)}let re={row:0,col:0};e:for(let j=0;j<te.length;j++)for(let k=0;k<te[j].length;k++)if(te[j][k].getAttribute("aria-selected")==="true"){re={row:j,col:k};break e}for(const j of te)for(const k of j)k.tabIndex=-1;if(te[re.row]&&te[re.row][re.col]&&(te[re.row][re.col].tabIndex=0),z.addEventListener("keydown",j=>{if(j.key==="Enter"||j.key===" "){j.preventDefault(),j.stopPropagation(),te[re.row][re.col].click();return}const Z={ArrowLeft:[0,-1],ArrowRight:[0,1],ArrowUp:[-1,0],ArrowDown:[1,0]}[j.key];if(!Z)return;j.preventDefault();for(const E of te)for(const G of E)G.tabIndex=-1;re=K(te,re,Z[0],Z[1]);const H=te[re.row][re.col];H.tabIndex=0,H.focus()}),!a(L)){const j=I.createElement("button");j.type="button",j.className="lat-form__color-custombtn",j.textContent=x.__t("form.color.customColor"),j.addEventListener("click",()=>{ge(x,X)}),g.appendChild(j)}F(x)}function ge(x,L){const I=x.__item,g=x.ownerDocument,T=x.__popover;for(;T.firstChild;)T.removeChild(T.firstChild);const X=b(L)||{r:0,g:0,b:0},z=m(X.r,X.g,X.b),te=g.createElement("div");te.className="lat-form__color-picker",T.appendChild(te);const re=g.createElement("div");re.className="lat-form__color-plane",re.setAttribute("role","slider"),re.setAttribute("aria-label",x.__t("form.color.saturationLightness")),re.tabIndex=0;const j=g.createElement("div");j.className="lat-form__color-plane-thumb",re.appendChild(j),te.appendChild(re);const k=g.createElement("div");k.className="lat-form__color-hue",k.setAttribute("role","slider"),k.setAttribute("aria-label",x.__t("form.color.hue")),k.tabIndex=0;const Z=g.createElement("div");Z.className="lat-form__color-hue-thumb",k.appendChild(Z),te.appendChild(k);const H=g.createElement("div");H.className="lat-form__color-fields";const E=g.createElement("input");E.type="text",E.className="lat-form__color-hexfield",E.setAttribute("aria-label",x.__t("form.color.hexLabel"));const G=g.createElement("input");G.type="number",G.min="0",G.max="255",G.className="lat-form__color-rgbfield",G.setAttribute("aria-label",x.__t("form.color.redLabel"));const R=g.createElement("input");R.type="number",R.min="0",R.max="255",R.className="lat-form__color-rgbfield",R.setAttribute("aria-label",x.__t("form.color.greenLabel"));const ce=g.createElement("input");ce.type="number",ce.min="0",ce.max="255",ce.className="lat-form__color-rgbfield",ce.setAttribute("aria-label",x.__t("form.color.blueLabel")),H.appendChild(E),H.appendChild(G),H.appendChild(R),H.appendChild(ce),te.appendChild(H);const me=g.createElement("div");me.className="lat-form__color-previewrow";const xe=g.createElement("span");xe.className="lat-form__color-preview",me.appendChild(xe),te.appendChild(me);const C=g.createElement("div");if(C.className="lat-form__color-actions",!a(I)){const Ae=g.createElement("button");Ae.type="button",Ae.className="lat-form__color-back",Ae.textContent=x.__t("form.back"),Ae.addEventListener("click",()=>{W(x)}),C.appendChild(Ae)}const ne=g.createElement("button");ne.type="button",ne.className="lat-form__color-select",ne.textContent=x.__t("form.color.select"),C.appendChild(ne),te.appendChild(C);const se=()=>{const Ae=f(z),Ce=b(Ae);re.style.setProperty("--lat-color-hue",String(z.h)),j.style.left=`${z.s*100}%`,j.style.top=`${(1-z.l)*100}%`,Z.style.left=`${z.h/360*100}%`,E.value=Ae,G.value=String(Ce.r),R.value=String(Ce.g),ce.value=String(Ce.b),xe.style.background=Ae,re.setAttribute("aria-valuetext",Ae),k.setAttribute("aria-valuenow",String(Math.round(z.h)))};se();const J=(Ae,Ce,ye)=>{const ke=Ae.getBoundingClientRect();if(!ke.width||!ke.height)return;const Le=Math.max(0,Math.min(1,(Ce.clientX-ke.left)/ke.width)),De=Math.max(0,Math.min(1,(Ce.clientY-ke.top)/ke.height));ye(Le,De)},ue=(Ae,Ce)=>{let ye=!1;Ae.addEventListener("pointerdown",ke=>{ye=!0,J(Ae,ke,Ce)}),g.addEventListener("pointermove",ke=>{ye&&J(Ae,ke,Ce)}),g.addEventListener("pointerup",()=>{ye=!1})};ue(re,(Ae,Ce)=>{z.s=Ae,z.l=1-Ce,se()}),ue(k,Ae=>{z.h=Ae*360,se()}),re.addEventListener("keydown",Ae=>{if(Ae.key==="Enter"){Ae.preventDefault(),Ae.stopPropagation(),Ee();return}const Ce=Ae.shiftKey?.1:.02;if(Ae.key==="ArrowLeft")z.s=Math.max(0,z.s-Ce);else if(Ae.key==="ArrowRight")z.s=Math.min(1,z.s+Ce);else if(Ae.key==="ArrowUp")z.l=Math.min(1,z.l+Ce);else if(Ae.key==="ArrowDown")z.l=Math.max(0,z.l-Ce);else return;Ae.preventDefault(),se()}),k.addEventListener("keydown",Ae=>{if(Ae.key==="Enter"){Ae.preventDefault(),Ae.stopPropagation(),Ee();return}const Ce=Ae.shiftKey?10:2;if(Ae.key==="ArrowLeft"||Ae.key==="ArrowDown")z.h=(z.h-Ce+360)%360;else if(Ae.key==="ArrowRight"||Ae.key==="ArrowUp")z.h=(z.h+Ce)%360;else return;Ae.preventDefault(),se()});const he=()=>{const Ae=o(E.value);if(!Ae){E.value=f(z);return}const Ce=b(Ae);Object.assign(z,m(Ce.r,Ce.g,Ce.b)),se()};E.addEventListener("change",he);const be=()=>{const Ae=Ce=>Math.max(0,Math.min(255,Number(Ce)||0));Object.assign(z,m(Ae(G.value),Ae(R.value),Ae(ce.value))),se()};G.addEventListener("change",be),R.addEventListener("change",be),ce.addEventListener("change",be);const Ee=()=>{const Ae=f(z);Q(x,Ae),oe(x,Ae),le(x,{restoreFocus:!0})};ne.addEventListener("click",Ee);const Oe=Ae=>Ce=>{Ce.key==="Enter"&&(Ce.preventDefault(),Ce.stopPropagation(),Ae(),Ee())};E.addEventListener("keydown",Oe(he)),G.addEventListener("keydown",Oe(be)),R.addEventListener("keydown",Oe(be)),ce.addEventListener("keydown",Oe(be)),F(x)}function ve(x){x.__open||x.__item.disabled===!0||x.__item.readOnly===!0||(x.__open=!0,x.__popover.hidden=!1,a(x.__item)||x.__item.mode==="picker"?ge(x,x.__value):W(x))}function le(x,L={}){if(x.__open){for(x.__open=!1,x.__popover.hidden=!0,x.__popover.classList.remove("lat-form__color-popover--above");x.__popover.firstChild;)x.__popover.removeChild(x.__popover.firstChild);L.restoreFocus&&x.__input.focus()}}V("color",{kind:"field",domEvents:["customColorsChange"],build(x,L){const I=L.doc;h(I);const g=I.createElement("div");g.className="lat-form__color",g.__item=x,g.__t=L.t||_,g.__open=!1,g.__value=l(x.value),g.__customColors=M(x);const T=I.createElement("div");T.className="lat-form__color-field",g.__field=T;const X=I.createElement("button");X.type="button",X.className="lat-form__color-swatch",X.setAttribute("aria-label",g.__t("form.color.open")),g.__swatchBtn=X;const z=I.createElement("input");z.type="text",z.className="lat-form__color-input",x.name&&(z.name=x.name),x.placeholder!=null&&(z.placeholder=String(x.placeholder)),x.label!=null&&x.label!==""&&z.setAttribute("aria-label",String(x.label)),z.setAttribute("autocomplete","off"),z.readOnly=!i(x),g.__input=z,T.appendChild(X),T.appendChild(z);let te=null;if(n(x)){te=I.createElement("button"),te.type="button",te.className="lat-form__color-clear",te.setAttribute("aria-label",g.__t("form.color.clear"));const R=ee(I,"close");R&&te.appendChild(R),te.addEventListener("click",()=>{Q(g,null),z.focus()}),T.appendChild(te)}g.__clearBtn=te;const re=I.createElement("button");re.type="button",re.className="lat-form__color-toggle",re.setAttribute("aria-label",g.__t("form.color.open"));const j=s(x),k=j?ee(I,j):ee(I,"chevronDown");k&&re.appendChild(k),g.__toggleBtn=re,T.appendChild(re),g.appendChild(T);const Z=I.createElement("div");Z.className="lat-form__color-popover",Z.hidden=!0,g.__popover=Z,g.appendChild(Z),Y(g,g.__value);const H=()=>{g.__open?le(g):ve(g)};X.addEventListener("click",H),re.addEventListener("click",H),z.addEventListener("input",()=>{D(g)}),z.addEventListener("change",R=>{R.stopPropagation(),U(g)}),z.addEventListener("keydown",R=>{R.key==="Enter"?(R.preventDefault(),U(g)):R.key==="Escape"&&g.__open?le(g):R.altKey&&R.key==="ArrowDown"&&(R.preventDefault(),ve(g))}),g.addEventListener("keydown",R=>{R.target!==z&&(R.key==="Enter"&&!g.__open||R.altKey&&R.key==="ArrowDown"?(R.preventDefault(),ve(g)):R.key==="Escape"&&g.__open&&(R.preventDefault(),le(g,{restoreFocus:!0})))});const E=R=>{!g.__open||g.contains(R.target)||le(g)},G=R=>{g.__open&&(R.relatedTarget&&g.contains(R.relatedTarget)||le(g))};return I.addEventListener("pointerdown",E),g.addEventListener("focusout",G),Array.isArray(L.disposers)&&L.disposers.push(()=>{I.removeEventListener("pointerdown",E),g.removeEventListener("focusout",G)}),g},read(x){const L=x.__input.value.trim();return L===""?null:o(L)||L},write(x,L){if(L==null||L===""){x.__value=null,Y(x,null);return}const I=l(L);if(!I){t("form.color.setValue",`form.color: "${String(L)}" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.`);return}x.__value=I,Y(x,I)},state(x,L){const I=L.disabled===!0||L.readOnly===!0;x.__input.disabled=L.disabled===!0,x.__input.readOnly=L.readOnly===!0||!i(L),x.__swatchBtn.disabled=I,x.__toggleBtn.disabled=I,x.__clearBtn&&(x.__clearBtn.disabled=I),I&&le(x)},validate(x,L,I){return I==null||typeof I=="string"&&/^#[0-9a-f]{6}$/.test(I)?!0:typeof L.errorMessage=="string"&&L.errorMessage!==""?L.errorMessage:x.__t("form.color.invalidHex")},focus(x){x.__input.focus()}})}),Ne("packages/dom/src/cell/renderers/barcode/support.js",function(S,q){"use strict";Object.defineProperty(S,"expandWidths",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"joinCharacters",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"buildPattern",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"mod10Weighted",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"MOD43_ORDER",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"mod43Check",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"weightedModulo",{enumerable:!0,get:function(){return y}});function e(A){const B=[];for(let O=0;O<A.length;O++){const v=O%2===0?1:0;for(let d=0;d<A[O];d++)B.push(v)}return B}function V(A,B){const O=[];return A.forEach((v,d)=>{if(d>0&&B>0)for(let u=0;u<B;u++)O.push(0);O.push(...v)}),O}function $(A,B){return V(A.map(e),B)}function ee(A,B=3){let O=0,v=B;for(let d=A.length-1;d>=0;d--)O+=Number(A[d])*v,v=v===3?1:3;return(10-O%10)%10}const h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";function P(A){let B=0;for(const O of A){const v=h.indexOf(O);if(v<0)return null;B+=v}return h[B%43]}function y(A,B,O=11){let v=0,d=1;for(let u=A.length-1;u>=0;u--)v+=A[u]*d,d=d===B?1:d+1;return v%O}}),Ne("packages/dom/src/cell/renderers/barcode/code39.js",function(S,q){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return u}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return w}});const e=q("packages/dom/src/cell/renderers/barcode/support.js"),V=e.buildPattern,$=e.mod43Check,ee=e.MOD43_ORDER,h=2,P=["000110100","100100001","001100001","101100000","000110001","100110000","001110000","000100101","100100100","001100100","100001001","001001001","101001000","000011001","100011000","001011000","000001101","100001100","001001100","000011100","100000011","001000011","101000010","000010011","100010010","001010010","000000111","100000110","001000110","000010110","110000001","011000001","111000000","010010001","110010000","011010000","010000101","110000100","011000100","010101000","010100010","010001010","000101010"],y="010010100";function A(t){return t.split("").map(o=>o==="1"?h:1)}function B(t){const o=ee.indexOf(t);return o<0?null:A(P[o])}function O(){const t=new Map,o=l=>String.fromCharCode(65+l);for(let l=1;l<=26;l++)t.set(l,`$${o(l-1)}`);t.set(0,"%U"),"%A%B%C%D%E".match(/../g).forEach((l,b)=>t.set(27+b,l));for(let l=33;l<=44;l++)t.set(l,`/${o(l-33)}`);t.set(47,"/O"),t.set(58,"/Z");for(let l=59;l<=63;l++)t.set(l,`%${o(l-59+5)}`);t.set(64,"%V");for(let l=91;l<=95;l++)t.set(l,`%${o(l-91+10)}`);t.set(96,"%W");for(let l=97;l<=122;l++)t.set(l,`+${o(l-97)}`);for(let l=123;l<=127;l++)t.set(l,`%${o(l-123+15)}`);return t}const v=O(),d=new Map([...v].map(([t,o])=>[o,t]));function u(t){const o=[];for(const l of t){const b=l.codePointAt(0);if(b>127)return null;if(ee.includes(l)){o.push(l);continue}const p=v.get(b);if(!p)return null;o.push(p[0],p[1])}return o}function _(t){let o="";for(let l=0;l<t.length;l++){const b=t[l]+(t[l+1]??"");if(d.has(b)){o+=String.fromCharCode(d.get(b)),l++;continue}o+=t[l]}return o}function w(t,o={}){const l=t==null?"":String(t);if(l==="")return{ok:!1,reason:"empty"};const b=o.extended?u(l):l.split("");if(!b)return{ok:!1,reason:"charset"};const p=[A(y)];for(const m of b){const f=B(m);if(!f)return{ok:!1,reason:"charset"};p.push(f)}if(o.checkDigit){const m=$(b.join(""));return m==null?{ok:!1,reason:"charset"}:(p.push(B(m)),p.push(A(y)),{ok:!0,modules:V(p,1),text:`${l}${m}`})}return p.push(A(y)),{ok:!0,modules:V(p,1),text:l}}}),Ne("packages/dom/src/cell/renderers/barcode/ean.js",function(S,q){"use strict";Object.defineProperty(S,"L_PATTERNS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"G_PATTERNS",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"R_PATTERNS",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"EAN13_PARITY",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return O}});const V=q("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted,$=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],ee=["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],h=$.map(v=>v.split("").map(d=>d==="1"?"0":"1").join("")),P=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"];function y(v){return v.split("").map(Number)}function A(v,d){const u=v==null?"":String(v);if(!/^\d+$/.test(u))return null;if(u.length===d)return{digits:u,check:V(u)};if(u.length===d+1){const _=u.slice(0,d),w=Number(u[d]),t=V(_);return w!==t?null:{digits:_,check:t}}return null}function B(v){const d=A(v,12);if(!d)return{ok:!1,reason:"checkDigit"};const u=d.digits+d.check,_=P[Number(u[0])],w=u.slice(1,7).split("").map((l,b)=>(_[b]==="L"?$:ee)[Number(l)]),t=u.slice(7).split("").map(l=>h[Number(l)]);return{ok:!0,modules:[...y("101"),...w.flatMap(y),...y("01010"),...t.flatMap(y),...y("101")],text:u}}function O(v){const d=A(v,7);if(!d)return{ok:!1,reason:"checkDigit"};const u=d.digits+d.check,_=u.slice(0,4).split("").map(o=>$[Number(o)]),w=u.slice(4).split("").map(o=>h[Number(o)]);return{ok:!0,modules:[...y("101"),..._.flatMap(y),...y("01010"),...w.flatMap(y),...y("101")],text:u}}}),Ne("packages/dom/src/cell/renderers/barcode/upc.js",function(S,q){"use strict";Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return v}});const e=q("packages/dom/src/cell/renderers/barcode/ean.js"),V=e.L_PATTERNS,$=e.G_PATTERNS,ee=e.encodeEan13,P=q("packages/dom/src/cell/renderers/barcode/support.js").mod10Weighted;function y(d){return d.split("").map(Number)}function A(d){const u=d==null?"":String(d);if(!/^\d{11,12}$/.test(u))return{ok:!1,reason:"checkDigit"};const _=ee(`0${u}`);return _.ok?{ok:!0,modules:_.modules,text:_.text.slice(1)}:_}function B(d,u){const _=d.split(""),w=_[5];return w<="2"?`${_[0]}${_[1]}${w}0000${_[2]}${_[3]}${_[4]}`:w==="3"?`${_[0]}${_[1]}${_[2]}00000${_[3]}${_[4]}`:w==="4"?`${_[0]}${_[1]}${_[2]}${_[3]}00000${_[4]}`:`${_[0]}${_[1]}${_[2]}${_[3]}${_[4]}0000${w}`}const O={0:["EEEOOO","OOOEEE"],1:["EEOEOO","OOEOEE"],2:["EEOOEO","OOEEOE"],3:["EEOOOE","OOEEEO"],4:["EOEEOO","OEOOEE"],5:["EOOEEO","OEEOOE"],6:["EOOOEE","OEEEOO"],7:["EOEOEO","OEOEOE"],8:["EOEOOE","OEOEEO"],9:["EOOEOE","OEEOEO"]};function v(d){const u=d==null?"":String(d);if(!/^\d{6,8}$/.test(u))return{ok:!1,reason:"checkDigit"};let _,w,t=null;if(u.length===6?(_="0",w=u):u.length===7?(_=u[0],w=u.slice(1)):(_=u[0],w=u.slice(1,7),t=u[7]),_!=="0"&&_!=="1")return{ok:!1,reason:"checkDigit"};const o=B(w,_),l=P(_+o);if(t!=null&&Number(t)!==l)return{ok:!1,reason:"checkDigit"};const p=O[l][Number(_)].split("").map((f,N)=>(f==="O"?V:$)[Number(w[N])]);return{ok:!0,modules:[...y("101"),...p.flatMap(y),...y("010101")],text:`${_}${w}${l}`}}}),Ne("packages/dom/src/cell/renderers/barcode/code93.js",function(S,q){"use strict";Object.defineProperty(S,"toExtendedSymbols",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"decodeExtendedSymbols",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return $}}),Object.defineProperty(S,"BASE_ORDER",{enumerable:!0,get:function(){return e}}),Object.defineProperty(S,"SHIFT_ORDER",{enumerable:!0,get:function(){return V}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return ee}});const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%",V=["($)","(%)","(/)","(+)"],$=[[1,3,1,1,1,2],[1,1,1,2,1,3],[1,1,1,3,1,2],[1,1,1,4,1,1],[1,2,1,1,1,3],[1,2,1,2,1,2],[1,2,1,3,1,1],[1,1,1,1,1,4],[1,3,1,2,1,1],[1,4,1,1,1,1],[2,1,1,1,1,3],[2,1,1,2,1,2],[2,1,1,3,1,1],[2,2,1,1,1,2],[2,2,1,2,1,1],[2,3,1,1,1,1],[1,1,2,1,1,3],[1,1,2,2,1,2],[1,1,2,3,1,1],[1,2,2,1,1,2],[1,3,2,1,1,1],[1,1,1,1,2,3],[1,1,1,2,2,2],[1,1,1,3,2,1],[1,2,1,1,2,2],[1,3,1,1,2,1],[2,1,2,1,1,2],[2,1,2,2,1,1],[2,1,1,1,2,2],[2,1,1,2,2,1],[2,2,1,1,2,1],[2,2,2,1,1,1],[1,1,2,1,2,2],[1,1,2,2,2,1],[1,2,2,1,2,1],[1,2,3,1,1,1],[1,2,1,1,3,1],[3,1,1,1,1,2],[3,1,1,2,1,1],[3,2,1,1,1,1],[1,1,2,1,3,1],[1,1,3,1,2,1],[2,1,1,1,3,1],[1,2,1,2,2,1],[3,1,2,1,1,1],[3,1,1,1,2,1],[1,2,2,2,1,1]],ee=[1,1,1,1,4,1];function h(t){const o=[];for(let l=0;l<t.length;l++){const b=l%2===0?1:0;for(let p=0;p<t[l];p++)o.push(b)}return o}function P(t){return $[t]}function y(t){return e.indexOf(t)}function A(){const t=new Map,o=43,l=44,b=45,p=46,m=f=>10+f;for(let f=1;f<=26;f++)t.set(f,[o,m(f-1)]);t.set(0,[l,m(20)]);for(let f=27;f<=31;f++)t.set(f,[l,m(f-27)]);for(let f=33;f<=44;f++)t.set(f,[b,m(f-33)]);t.set(47,[b,m(14)]),t.set(58,[b,m(25)]);for(let f=59;f<=63;f++)t.set(f,[l,m(f-59+5)]);t.set(64,[l,m(21)]);for(let f=91;f<=95;f++)t.set(f,[l,m(f-91+10)]);t.set(96,[l,m(22)]);for(let f=97;f<=122;f++)t.set(f,[p,m(f-97)]);for(let f=123;f<=127;f++)t.set(f,[l,m(f-123+15)]);return t}const B=A(),O=new Map([...B].map(([t,o])=>[o.join(","),t]));function v(t){const o=[];for(const l of t){const b=l.codePointAt(0);if(b>127)return null;const p=y(l);if(p>=0){o.push(p);continue}const m=B.get(b);if(!m)return null;o.push(m[0],m[1])}return o}function d(t){let o="";for(let l=0;l<t.length;l++){const b=`${t[l]},${t[l+1]??""}`;if(O.has(b)){o+=String.fromCharCode(O.get(b)),l++;continue}o+=e[t[l]]}return o}function u(t){let o=0,l=1;for(let b=t.length-1;b>=0;b--)o+=t[b]*l,l=l===20?1:l+1;return o%47}function _(t){const o=u(t),l=u([...t,o]);return{c:o,k:l}}function w(t,o={}){const l=t==null?"":String(t);if(l==="")return{ok:!1,reason:"empty"};const b=o.extended?v(l):(()=>{const c=[];for(const i of l){const n=y(i);if(n<0)return null;c.push(n)}return c})();if(!b)return{ok:!1,reason:"charset"};const{c:p,k:m}=_(b),f=[ee];for(const c of b)f.push(P(c));return f.push(P(p)),f.push(P(m)),f.push(ee),{ok:!0,modules:f.flatMap(h),text:l}}}),Ne("packages/dom/src/cell/renderers/barcode/code128.js",function(S,q){"use strict";Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return t}});const V=q("packages/dom/src/cell/renderers/barcode/support.js").expandWidths,$=["212222","222122","222221","121223","121322","131222","122213","122312","132212","221213","221312","231212","112232","122132","122231","113222","123122","123221","223211","221132","221231","213212","223112","312131","311222","321122","321221","312212","322112","322211","212123","212321","232121","111323","131123","131321","112313","132113","132311","211313","231113","231311","112133","112331","132131","113123","113321","133121","313121","211331","231131","213113","213311","213131","311123","311321","331121","312113","312311","332111","314111","221411","431111","111224","111422","121124","121421","141122","141221","112214","112412","122114","122411","142112","142211","241211","221114","413111","241112","134111","111242","121142","121241","114212","124112","124211","411212","421112","421211","212141","214121","412121","111143","111341","131141","114113","114311","411113","411311","113141","114131","311141","411131","211412","211214","211232","2331112"],ee=103,h=104,P=105,y=106,A={A:{B:100,C:99},B:{A:101,C:99},C:{A:101,B:100}},B={A:ee,B:h,C:P};function O(o){return o>=32&&o<=95?o-32:o>=0&&o<=31?o+64:null}function v(o){return o>=32&&o<=127?o-32:null}function d(o,l){const b=o.charCodeAt(l),p=o.charCodeAt(l+1);return b>=48&&b<=57&&p>=48&&p<=57}function u(o,l,b){const p=[],m=o.charCodeAt(l),f=O(m);if(f!=null){const c=b==="A"||b===null?[f]:[A[b].A,f];p.push({to:"A",symbols:c,advance:1})}const N=v(m);if(N!=null){const c=b==="B"||b===null?[N]:[A[b].B,N];p.push({to:"B",symbols:c,advance:1})}if(d(o,l)){const c=Number(o.slice(l,l+2)),i=b==="C"||b===null?[c]:[A[b].C,c];p.push({to:"C",symbols:i,advance:2})}return p}function _(o){const l=o.length,b=Array.from({length:l+1},()=>({}));b[0].start={cost:0,prev:null,symbols:[]};for(let n=0;n<=l;n++)for(const a of Object.keys(b[n])){const r=b[n][a];if(n===l)continue;const s=a==="start"?null:a;for(const M of u(o,n,s)){const D=n+M.advance,Y=r.cost+M.symbols.length,U=b[D][M.to];(!U||Y<U.cost)&&(b[D][M.to]={cost:Y,prev:a,symbols:M.symbols,backI:n})}}const p=Object.entries(b[l]);if(p.length===0)return null;p.sort((n,a)=>n[1].cost-a[1].cost);const[,m]=p[0],f=[];let N=l,c=p[0][0],i=c;for(;N>0;){const n=b[N][c];f.push(n.symbols),i=c,N=n.backI,c=n.prev}return f.reverse(),{symbols:f.flat(),startSubset:i}}function w(o,l){let b=o;for(let p=0;p<l.length;p++)b+=l[p]*(p+1);return b%103}function t(o,l={}){const b=o==null?"":String(o);if(b==="")return{ok:!1,reason:"empty"};for(let n=0;n<b.length;n++)if(b.charCodeAt(n)>127)return{ok:!1,reason:"charset"};const p=_(b);if(!p)return{ok:!1,reason:"charset"};const m=B[p.startSubset],f=w(m,p.symbols);return{ok:!0,modules:[m,...p.symbols,f,y].map(n=>$[n].split("").map(Number)).flatMap(n=>V(n)),text:b}}}),Ne("packages/dom/src/cell/renderers/barcode/code11.js",function(S,q){"use strict";Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"PATTERNS",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"START_STOP",{enumerable:!0,get:function(){return P}});const e=q("packages/dom/src/cell/renderers/barcode/support.js"),V=e.buildPattern,$=e.weightedModulo,ee="0123456789-",h=[[1,1,1,1,1],[1,1,1,1,2],[1,1,1,2,1],[1,1,2,1,1],[1,2,1,1,1],[2,1,1,1,1],[1,1,1,2,2],[1,1,2,1,2],[1,1,2,2,1],[1,2,1,1,2],[1,2,1,2,1]],P=[2,1,1,1,2,1],y=d=>ee.indexOf(d);function A(d){const u=y(d);return u<0?null:h[u]}function B(d){return ee[$(d,10)]}function O(d){return ee[$(d,9)]}function v(d,u={}){const _=d==null?"":String(d);if(_==="")return{ok:!1,reason:"empty"};const w=[];for(const m of _){const f=y(m);if(f<0)return{ok:!1,reason:"charset"};w.push(f)}const t=B(w),o=y(t),b=_.length>=10?`${t}${O([...w,o])}`:t,p=[P];for(const m of _)p.push(A(m));for(const m of b)p.push(A(m));return p.push(P),{ok:!0,modules:V(p,1),text:`${_}${b}`}}}),Ne("packages/dom/src/cell/renderers/barcode/codabar.js",function(S,q){"use strict";Object.defineProperty(S,"MOD16_ORDER",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return v}});const V=q("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,$=2,ee={0:"nnnnnww",1:"nnnnwnw",2:"nnwnnnw",3:"wwnnnnn",4:"nnnwnwn",5:"wnnnnwn",6:"nwnnnnw",7:"nwnnwnn",8:"nwwnnnn",9:"wnnwnnn","-":"nnnwwnn",$:"nnwwnnn",":":"wnnnwnw","/":"wnwnwnn",".":"wnwwnnn","+":"nnwnwnw",A:"nnwwnwn",B:"nwnwnnw",C:"nnnwnww",D:"nnnwwwn"},h="0123456789-$:/.+",P="ABCD",y="0123456789-$:/.+ABCD";function A(d){return d.split("").map(u=>u==="w"?$:1)}function B(d){const u=ee[d];return u?A(u):null}function O(d){let u=0;for(const w of d){const t=y.indexOf(w);if(t<0)return null;u+=t}const _=u%16;return _<10?String(_):null}function v(d,u={}){const _=d==null?"":String(d);if(_==="")return{ok:!1,reason:"empty"};const w=_.toUpperCase();if(w.length<2)return{ok:!1,reason:"charset"};const t=w[0],o=w[w.length-1];if(!P.includes(t)||!P.includes(o))return{ok:!1,reason:"charset"};const l=w.slice(1,-1);for(const m of l)if(!h.includes(m))return{ok:!1,reason:"charset"};const b=[t,...l.split(""),o];if(u.checkDigit){const m=O(b);if(m==null)return{ok:!1,reason:"checkDigit"};b.splice(b.length-1,0,m);const f=b.map(B),N=`${w.slice(0,-1)}${m}${o}`;return{ok:!0,modules:V(f,1),text:N}}const p=b.map(B);return{ok:!0,modules:V(p,1),text:w}}}),Ne("packages/dom/src/cell/renderers/barcode/code32.js",function(S,q){"use strict";Object.defineProperty(S,"ALPHABET",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"decodeCode32Modules",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return u}});const V=q("packages/dom/src/cell/renderers/barcode/support.js").buildPattern,$=2,ee="010010100",h={0:"000110100",1:"100100001",2:"001100001",3:"101100000",4:"000110001",5:"100110000",6:"001110000",7:"000100101",8:"100100100",9:"001100100",A:"100001001",B:"001001001",C:"101001000",D:"000011001",F:"001011000",G:"000001101",H:"100001100",J:"000011100",K:"100000011",L:"001000011",M:"101000010",N:"000010011",P:"001010010",Q:"000000111",R:"100000110",S:"001000110",T:"000010110",U:"110000001",V:"011000001",W:"111000000",X:"010010001",Y:"110010000",Z:"011010000"},P="0123456789BCDFGHJKLMNPQRSTUVWXYZ",y=_=>_.split("").map(w=>w==="1"?$:1),A=_=>h[_]?y(h[_]):null,B=()=>y(ee);function O(_){let w=0;for(let t=0;t<8;t++){const o=t+1;let l=Number(_[t]);o%2===0&&(l*=2,l>=10&&(l-=9)),w+=l}return w%10}function v(_,w){let t="",o=_;for(let l=0;l<w;l++)t=P[o%32]+t,o=Math.floor(o/32);return t}function d(_){const w=[];for(let p=0;p<_.length;p++)p===0||_[p]!==_[p-1]?w.push(1):w[w.length-1]++;const t=1,o=p=>p>t?"1":"0",l=[];let b=9;for(;b<w.length;){b+=1;const p=w.slice(b,b+9);if(p.length<9)break;const m=p.map(o).join(""),f=Object.keys(h).find(N=>h[N]===m);l.push(f??"?"),b+=9}return l.pop(),l}function u(_,w={}){const t=_==null?"":String(_);if(t==="")return{ok:!1,reason:"empty"};if(!/^\d{8,9}$/.test(t))return{ok:!1,reason:"charset"};const o=t.slice(0,8),l=O(o);let b;if(t.length===9){const i=Number(t[8]);if(i!==l)return{ok:!1,reason:"checkDigit"};b=i}else b=l;const p=`${o}${b}`,m=Number(p),N=`A${v(m,6)}`.split(""),c=[B()];for(const i of N){const n=A(i);if(!n)return{ok:!1,reason:"charset"};c.push(n)}return c.push(B()),{ok:!0,modules:V(c,1),text:p}}}),Ne("packages/dom/src/cell/renderers/barcode/datamatrix.js",function(S,q){"use strict";Object.defineProperty(S,"gfMul",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(S,"gfExp",{enumerable:!0,get:function(){return h}}),Object.defineProperty(S,"generatorPoly",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"reedSolomon",{enumerable:!0,get:function(){return y}}),Object.defineProperty(S,"SIZES",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"dataCodewords",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"errorCodewords",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"dataRegionSize",{enumerable:!0,get:function(){return d}}),Object.defineProperty(S,"encodeAscii",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"base256Mask",{enumerable:!0,get:function(){return o}}),Object.defineProperty(S,"encodeBase256",{enumerable:!0,get:function(){return l}}),Object.defineProperty(S,"padCodewords",{enumerable:!0,get:function(){return b}}),Object.defineProperty(S,"utahPlacementOrder",{enumerable:!0,get:function(){return p}}),Object.defineProperty(S,"diagonalWalkCoverage",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"placeCodewords",{enumerable:!0,get:function(){return f}}),Object.defineProperty(S,"buildSymbol",{enumerable:!0,get:function(){return N}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return a}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return r}});const e=301,V=new Uint8Array(512),$=new Uint8Array(256);{let s=1;for(let M=0;M<255;M++)V[M]=s,$[s]=M,s<<=1,s&256&&(s^=e);for(let M=255;M<512;M++)V[M]=V[M-255]}function ee(s,M){return s===0||M===0?0:V[$[s]+$[M]]}function h(s){return V[(s%255+255)%255]}function P(s){let M=new Uint8Array([1]);for(let D=0;D<s;D++){const Y=new Uint8Array(M.length+1);for(let U=0;U<M.length;U++)Y[U]^=M[U],Y[U+1]^=ee(M[U],h(D));M=Y}return M.subarray(1)}function y(s,M){const D=P(M),Y=new Uint8Array(M);for(let U=0;U<s.length;U++){const Q=s[U]^Y[0];if(Y.copyWithin(0,1),Y[M-1]=0,Q!==0)for(let oe=0;oe<M;oe++)Y[oe]^=ee(D[oe],Q)}return Y}const A={10:[3,5],12:[5,7],14:[8,10],16:[12,12],18:[18,14],20:[22,18],22:[30,20],24:[36,24],26:[44,28]},B=Object.keys(A).map(Number).sort((s,M)=>s-M);function O(s){const M=A[s];if(!M)throw new RangeError(`unsupported Data Matrix size ${s}`);return M[0]}function v(s){const M=A[s];if(!M)throw new RangeError(`unsupported Data Matrix size ${s}`);return M[1]}function d(s){return s-2}const u=129,_=231,w=s=>s>=48&&s<=57;function t(s){const M=[];let D=0;for(;D<s.length;){const Y=s[D],U=D+1<s.length?s[D+1]:-1;if(w(Y)&&w(U)){const Q=Y-48,oe=U-48;M.push(Q*10+oe+130),D+=2}else M.push(Y+1),D+=1}return M}function o(s,M){const D=149*M%255+1;return(s+D)%256}function l(s,M){if(s.length>249)throw new RangeError("base-256 segment exceeds the 249-byte short-form length supported by this module");const D=[_,s.length];for(let Y=0;Y<s.length;Y++)D.push(o(s[Y],M+2+Y));return D}function b(s,M){if(s.length>M)throw new RangeError(`encoded stream (${s.length} codewords) exceeds capacity (${M})`);const D=s.slice();for(;D.length<M;)D.push(u);return D}function p(s){const M=new Array(s*s).fill(null),D=[],Y=(ve,le)=>ve>=0&&ve<s&&le>=0&&le<s,U=(ve,le)=>{if(!Y(ve,le))return;const x=ve*s+le;if(M[x]===null){const L={row:ve,col:le};M[x]=L,D.push(L)}},Q=(ve,le)=>{const x=I=>(I%s+s)%s,L=[[-2,-2],[-2,-1],[-1,-2],[-1,-1],[-1,0],[0,-2],[0,-1],[0,0]];for(const[I,g]of L)U(x(ve+I),x(le+g))};let oe=4,F=0,K=0;const W=s*s+64;do{for(;oe>=0&&F<s;)Q(oe,F),oe-=2,F+=2;for(oe+=1,F+=3;oe<s&&F>=0;)Q(oe,F),oe+=2,F-=2;oe+=3,F+=1}while((oe<s||F<s)&&K++<W);const ge=D.length;for(let ve=0;ve<s;ve++)for(let le=0;le<s;le++)U(ve,le);return Object.defineProperty(D,"sweptCount",{value:D.length-ge,enumerable:!1}),D}function m(s){return p(s).sweptCount}function f(s,M){const D=p(M),Y=new Uint8Array(M*M);for(let U=0;U<D.length;U++){const Q=Math.floor(U/8);if(Q>=s.length)break;const oe=7-U%8,F=s[Q]>>>oe&1,{row:K,col:W}=D[U];Y[K*M+W]=F}return Y}function N(s,M){const D=M+2,Y=new Uint8Array(D*D),U=(oe,F,K)=>{Y[oe*D+F]=K},Q=D-1;for(let oe=0;oe<D;oe++)U(Q,oe,1);for(let oe=0;oe<D;oe++)U(oe,0,1);for(let oe=0;oe<D;oe++)U(0,oe,oe%2===0?1:0);for(let oe=0;oe<D;oe++)U(oe,D-1,oe%2===0?1:0);for(let oe=0;oe<M;oe++)for(let F=0;F<M;F++)Y[(oe+1)*D+(F+1)]=s[oe*M+F];return{size:D,modules:Y}}function c(s){const M=new Uint8Array(s.length);for(let D=0;D<s.length;D++)M[D]=s.charCodeAt(D)&255;return M}function i(s){for(let M=0;M<s.length;M++)if(s[M]>127)return!1;return!0}function n(s){for(const M of B)if(O(M)>=s)return M;return 0}function a(s,M={}){if(s==null||s==="")return{ok:!1,reason:"empty"};const D=String(s),Y=c(D),U=M&&M.encodation==="base256";if(!U&&!i(Y))return{ok:!1,reason:"charset"};let Q;if(U){if(Y.length>249)return{ok:!1,reason:"capacity"};Q=l(Y,1)}else Q=t(Y);const oe=M&&M.size;let F;if(oe!=null){if(!A[oe])return{ok:!1,reason:"capacity"};if(Q.length>O(oe))return{ok:!1,reason:"capacity"};F=oe}else if(F=n(Q.length),F===0)return{ok:!1,reason:"capacity"};const K=O(F),W=b(Q,K),ge=y(W,v(F)),ve=new Uint8Array(K+ge.length);ve.set(W,0),ve.set(ge,K);const le=d(F),x=f(ve,le),{modules:L}=N(x,le);return{ok:!0,matrix:{size:F,modules:L},text:D}}const r=a}),Ne("packages/dom/src/cell/renderers/barcode/index.js",function(S,q){"use strict";Object.defineProperty(S,"BARCODE_TYPES",{enumerable:!0,get:function(){return m}}),Object.defineProperty(S,"encodeBarcode",{enumerable:!0,get:function(){return f}});const e=q("packages/dom/src/cell/renderers/barcode/code39.js"),V=e.encodeCode39,$=q("packages/dom/src/cell/renderers/barcode/ean.js"),ee=$.encodeEan13,h=$.encodeEan8,P=q("packages/dom/src/cell/renderers/barcode/upc.js"),y=P.encodeUpcA,A=P.encodeUpcE,B=q("packages/dom/src/cell/renderers/barcode/code93.js"),O=B.encodeCode93,v=q("packages/dom/src/cell/renderers/barcode/code128.js"),d=v.encodeCode128,u=q("packages/dom/src/cell/renderers/barcode/code11.js"),_=u.encodeCode11,w=q("packages/dom/src/cell/renderers/barcode/codabar.js"),t=w.encodeCodabar,o=q("packages/dom/src/cell/renderers/barcode/code32.js"),l=o.encodeCode32,b=q("packages/dom/src/cell/renderers/barcode/datamatrix.js"),p=b.encodeDataMatrix;Object.defineProperty(S,"encodeCode39",{enumerable:!0,get:function(){return e.encodeCode39}}),Object.defineProperty(S,"encodeEan13",{enumerable:!0,get:function(){return $.encodeEan13}}),Object.defineProperty(S,"encodeEan8",{enumerable:!0,get:function(){return $.encodeEan8}}),Object.defineProperty(S,"encodeUpcA",{enumerable:!0,get:function(){return P.encodeUpcA}}),Object.defineProperty(S,"encodeUpcE",{enumerable:!0,get:function(){return P.encodeUpcE}}),Object.defineProperty(S,"encodeCode93",{enumerable:!0,get:function(){return B.encodeCode93}}),Object.defineProperty(S,"encodeCode128",{enumerable:!0,get:function(){return v.encodeCode128}}),Object.defineProperty(S,"encodeCode11",{enumerable:!0,get:function(){return u.encodeCode11}}),Object.defineProperty(S,"encodeCodabar",{enumerable:!0,get:function(){return w.encodeCodabar}}),Object.defineProperty(S,"encodeCode32",{enumerable:!0,get:function(){return o.encodeCode32}}),Object.defineProperty(S,"encodeDataMatrix",{enumerable:!0,get:function(){return b.encodeDataMatrix}});const m=["code39","code39ext","ean13","ean8","upca","upce","code93","code93ext","code128","code11","codabar","code32","datamatrix"];function f(N,c,i={}){switch(N){case"code39":return V(c,{checkDigit:i.checkDigit});case"code39ext":return V(c,{extended:!0,checkDigit:i.checkDigit});case"ean13":return ee(c);case"ean8":return h(c);case"upca":return y(c);case"upce":return A(c);case"code93":return O(c);case"code93ext":return O(c,{extended:!0});case"code128":return d(c);case"code11":return _(c);case"codabar":return t(c,{checkDigit:i.checkDigit});case"code32":return l(c);case"datamatrix":return p(c,{size:i.size,encodation:i.encodation});default:return{ok:!1,reason:"type"}}}}),Ne("packages/dom/src/cell/renderers/barcode/render.js",function(S,q){"use strict";Object.defineProperty(S,"warnOnce",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"barsPathData",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"matrixPathData",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"paint",{enumerable:!0,get:function(){return _}}),Object.defineProperty(S,"buildSvg",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"renderBarcode",{enumerable:!0,get:function(){return t}});const V=q("packages/dom/src/cell/renderers/barcode/index.js").encodeBarcode,$="http://www.w3.org/2000/svg",ee=60,h=16,P=4;function y(o,l,b){b==null||b===!1?o.removeAttribute(l):o.setAttribute(l,String(b))}const A=new Set;function B(o,l){A.has(o)||(A.add(o),console.warn("[lattice]",l))}function O(o,l,b){const p=[];let m=0;for(;m<o.length;){if(!o[m]){m++;continue}let f=1;for(;m+f<o.length&&o[m+f];)f++;p.push(`M${m+l} 0h${f}v${b}h-${f}z`),m+=f}return p.join("")}function v(o,l){const{size:b,modules:p}=o,m=[];for(let f=0;f<b;f++){let N=0;for(;N<b;){if(!p[f*b+N]){N++;continue}let c=1;for(;N+c<b&&p[f*b+N+c];)c++;m.push(`M${N+l} ${f+l}h${c}v1h-${c}z`),N+=c}}return m.join("")}function d(o){const l=o&&typeof o=="object"?o:{};return{show:l.show!==!1,position:l.position==="top"?"top":"bottom",align:l.align==="left"||l.align==="right"?l.align:"center",margin:Number.isFinite(Number(l.margin))?Number(l.margin):2,font:typeof l.font=="string"&&l.font?l.font:"10px sans-serif"}}function u(o){const l=Math.floor(Number(o));return!Number.isFinite(l)||l<0?10:Math.min(40,l)}function _(o,l,b){const p=u(b.quietZone),m=d(b.text),f=m.show,N=!!l.matrix,c=N?l.matrix.size:l.modules.length,i=N?c+p*2:ee,n=f&&m.position==="top"?h+P:0,a=i+(f?h+P:0),r=c+p*2,s=Number(b.moduleWidth)||0,M=s>0?r*s:Number(b.width)||200,D=Number(b.height)||Math.round(M/r*a)||60;y(o.svg,"viewBox",`0 0 ${r} ${a}`),y(o.svg,"width",M),y(o.svg,"height",D);const Y=b.print?"#000000":b.foreground||"currentColor",U=b.print?"#ffffff":b.background;if(U?(y(o.background,"x",0),y(o.background,"y",0),y(o.background,"width",r),y(o.background,"height",a),o.background.setAttribute("fill",U),o.background.style.display=""):o.background.style.display="none",o.path.setAttribute("fill",Y),o.path.setAttribute("transform",`translate(0 ${n})`),o.path.setAttribute("d",N?v(l.matrix,p):O(l.modules,p,ee)),!f){o.text.style.display="none";return}o.text.style.display="",o.text.style.font=m.font,o.text.setAttribute("fill",Y),o.text.setAttribute("text-anchor",m.align==="left"?"start":m.align==="right"?"end":"middle");const Q=m.align==="left"?p:m.align==="right"?r-p:r/2,oe=m.position==="top"?h-m.margin:a-m.margin;y(o.text,"x",Q),y(o.text,"y",oe),o.text.textContent=l.text}function w(o){const l=o.createElementNS($,"svg");l.setAttribute("class","lat-barcode__svg"),l.setAttribute("focusable","false"),l.setAttribute("preserveAspectRatio","none");const b=o.createElementNS($,"rect");b.style.display="none";const p=o.createElementNS($,"path"),m=o.createElementNS($,"text");return l.appendChild(b),l.appendChild(p),l.appendChild(m),{svg:l,background:b,path:p,text:m}}function t(o,l){const b=o.ownerDocument,p=w(b);o.textContent="",o.appendChild(p.svg);const m=N=>{const c=N||{},i=String(c.type||"code39"),n=V(i,c.value,{checkDigit:c.checkDigit,size:c.size,encodation:c.encodation});if(!n.ok){B(`barcode:invalid:${i}`,`column "standalone" has a value that is not valid for the "${i}" barcode symbology (bad characters, wrong length or a failed check digit); showing a placeholder instead.`),p.path.setAttribute("d","");return}_(p,n,c)};return m(l),{update:m,destroy:()=>{o.textContent=""}}}}),Ne("packages/modules/form/controls/barcode.js",function(S,q){"use strict";const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/dom/src/cell/renderers/barcode/render.js").renderBarcode;function h(P,y){const A=P.props&&P.props.source;if(!A)return P.value;const B=typeof y.form.getItem=="function"?y.form.getItem(A):null;return B&&typeof B.getValue=="function"?B.getValue():void 0}V("barcode",{kind:"display",build(P,y){const A=y.doc.createElement("span");A.className="lat-form__barcode";const B=ee(A,{...P.props,value:h(P,y)}),O=P.props&&P.props.source;if(O){const v=y.emitter.on("change",d=>{d&&d.name===O&&B.update({...P.props,value:d.value})});y.disposers.push(v)}return y.disposers.push(()=>B.destroy()),A._barcodeHandle=B,A},read(P,y,A){return h(y,A)},write(P,y,A){P._barcodeHandle&&P._barcodeHandle.update({...y.props,value:A})},state(){}})}),Ne("packages/modules/form/controls/speeddial.js",function(S,q){"use strict";Object.defineProperty(S,"injectSpeedDialStyles",{enumerable:!0,get:function(){return w}}),Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return n}});const V=q("packages/modules/form/controls/registry.js").registerControl,ee=q("packages/modules/form/messages.js").t,P=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,y="lat-speeddial",A="data-lattice-speeddial-styles",B="http://www.w3.org/2000/svg",O=Object.freeze(["top-left","top-center","top-right","middle-left","middle-right","bottom-left","bottom-center","bottom-right"]),v=Object.freeze(["primary","secondary","outline","info","success","warning","danger"]),d=Object.freeze(["up","down","left","right"]);let u=0;function _(){const a=`
|
|
1637
1662
|
.lat-form,
|
|
1638
1663
|
.lat-speeddial[data-lattice-standalone]{
|
|
1639
1664
|
--lattice-speeddial-primary-bg:#5a46d6;
|
|
@@ -1705,8 +1730,8 @@ ${s}
|
|
|
1705
1730
|
--lattice-speeddial-danger-bg:#e05b5b;
|
|
1706
1731
|
--lattice-speeddial-danger-fg:#1c0606;
|
|
1707
1732
|
--lattice-speeddial-danger-border:#e05b5b;
|
|
1708
|
-
}}}`,
|
|
1709
|
-
.${
|
|
1733
|
+
}}}`,s=v.map(M=>`
|
|
1734
|
+
.${y}[data-variant='${M}'] .${y}__fab{ background:var(--lattice-speeddial-${M}-bg); border-color:var(--lattice-speeddial-${M}-border); color:var(--lattice-speeddial-${M}-fg); }`).join(`
|
|
1710
1735
|
`);return`
|
|
1711
1736
|
.lat-speeddial{
|
|
1712
1737
|
position:relative; box-sizing:border-box; min-width:0;
|
|
@@ -1758,7 +1783,7 @@ ${s}
|
|
|
1758
1783
|
/* Inside a form the control cell gives the FAB its room. */
|
|
1759
1784
|
.lat-form__control .lat-speeddial{ min-height:calc(var(--lat-sd-size) + var(--lat-sd-pad) * 2); }
|
|
1760
1785
|
|
|
1761
|
-
.${
|
|
1786
|
+
.${y}__fab{
|
|
1762
1787
|
position:absolute; z-index:2; pointer-events:auto;
|
|
1763
1788
|
box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
|
|
1764
1789
|
gap:calc(var(--lat-sd-pad) / 2);
|
|
@@ -1768,42 +1793,42 @@ ${s}
|
|
|
1768
1793
|
padding:0; font:inherit; line-height:1; cursor:pointer; user-select:none;
|
|
1769
1794
|
box-shadow:0 2px 8px color-mix(in srgb, var(--lattice-foreground) 25%, transparent);
|
|
1770
1795
|
}
|
|
1771
|
-
.${
|
|
1772
|
-
.${
|
|
1773
|
-
.${
|
|
1774
|
-
.${
|
|
1775
|
-
.${
|
|
1776
|
-
.${
|
|
1777
|
-
.${
|
|
1796
|
+
.${y}__fab[data-text='true']{ width:auto; padding:0 var(--lat-sd-pad); }
|
|
1797
|
+
.${y}__fab:disabled{ cursor:not-allowed; opacity:.55; }
|
|
1798
|
+
.${y}__fab-icon{ display:inline-flex; align-items:center; justify-content:center; }
|
|
1799
|
+
.${y}__fab-icon svg,
|
|
1800
|
+
.${y}__fab-icon img{ width:calc(var(--lattice-control-size) * 1.5); height:calc(var(--lattice-control-size) * 1.5); display:block; }
|
|
1801
|
+
.${y}__fab-icon img{ object-fit:contain; }
|
|
1802
|
+
.${y}__fab-text{ font-weight:600; }
|
|
1778
1803
|
|
|
1779
1804
|
/* The eight anchor positions, in logical properties so RTL mirrors them. */
|
|
1780
|
-
.${
|
|
1781
|
-
.${
|
|
1782
|
-
.${
|
|
1783
|
-
.${
|
|
1784
|
-
.${
|
|
1785
|
-
.${
|
|
1786
|
-
.${
|
|
1787
|
-
.${
|
|
1805
|
+
.${y}__fab[data-position='top-left']{ inset-block-start:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
|
|
1806
|
+
.${y}__fab[data-position='top-center']{ inset-block-start:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
|
|
1807
|
+
.${y}__fab[data-position='top-right']{ inset-block-start:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
|
|
1808
|
+
.${y}__fab[data-position='middle-left']{ inset-block-start:50%; inset-inline-start:var(--lat-sd-pad); transform:translateY(-50%); }
|
|
1809
|
+
.${y}__fab[data-position='middle-right']{ inset-block-start:50%; inset-inline-end:var(--lat-sd-pad); transform:translateY(-50%); }
|
|
1810
|
+
.${y}__fab[data-position='bottom-left']{ inset-block-end:var(--lat-sd-pad); inset-inline-start:var(--lat-sd-pad); }
|
|
1811
|
+
.${y}__fab[data-position='bottom-center']{ inset-block-end:var(--lat-sd-pad); left:50%; transform:translateX(-50%); }
|
|
1812
|
+
.${y}__fab[data-position='bottom-right']{ inset-block-end:var(--lat-sd-pad); inset-inline-end:var(--lat-sd-pad); }
|
|
1788
1813
|
|
|
1789
|
-
.${
|
|
1790
|
-
.${
|
|
1791
|
-
.${
|
|
1814
|
+
.${y}[data-fixed='true'] .${y}__fab,
|
|
1815
|
+
.${y}[data-fixed='true'] .${y}__menu,
|
|
1816
|
+
.${y}[data-fixed='true'] .${y}__backdrop{ position:fixed; }
|
|
1792
1817
|
|
|
1793
|
-
.${
|
|
1818
|
+
.${y}__backdrop{
|
|
1794
1819
|
position:absolute; inset:0; z-index:1; pointer-events:auto; border:0; padding:0;
|
|
1795
1820
|
background:color-mix(in srgb, var(--lattice-foreground) 12%, transparent);
|
|
1796
1821
|
}
|
|
1797
|
-
.${
|
|
1822
|
+
.${y}__backdrop[hidden]{ display:none; }
|
|
1798
1823
|
|
|
1799
|
-
.${
|
|
1824
|
+
.${y}__menu{
|
|
1800
1825
|
position:absolute; z-index:3; display:flex; gap:var(--lat-sd-gap);
|
|
1801
1826
|
pointer-events:none; box-sizing:border-box; padding:0; margin:0; list-style:none;
|
|
1802
1827
|
}
|
|
1803
|
-
.${
|
|
1804
|
-
.${
|
|
1828
|
+
.${y}__menu[hidden]{ display:none; }
|
|
1829
|
+
.${y}__menu[data-mode='radial']{ left:0; top:0; width:0; height:0; overflow:visible; }
|
|
1805
1830
|
|
|
1806
|
-
.${
|
|
1831
|
+
.${y}__item{
|
|
1807
1832
|
position:relative; pointer-events:auto; box-sizing:border-box;
|
|
1808
1833
|
display:inline-flex; align-items:center; justify-content:center; gap:calc(var(--lattice-space) / 2);
|
|
1809
1834
|
height:var(--lat-sd-item-h); min-height:0; padding:calc(var(--lattice-space) / 2) calc(var(--lattice-space) * 1.25);
|
|
@@ -1812,20 +1837,20 @@ ${s}
|
|
|
1812
1837
|
font:inherit; line-height:1.2; cursor:pointer; user-select:none; white-space:nowrap;
|
|
1813
1838
|
box-shadow:0 1px 4px color-mix(in srgb, var(--lattice-foreground) 18%, transparent);
|
|
1814
1839
|
}
|
|
1815
|
-
.${
|
|
1816
|
-
.${
|
|
1817
|
-
.${
|
|
1818
|
-
.${
|
|
1819
|
-
.${
|
|
1820
|
-
.${
|
|
1821
|
-
.${
|
|
1840
|
+
.${y}__item[data-icon-only='true']{ width:var(--lat-sd-item-h); padding:0; }
|
|
1841
|
+
.${y}__item[aria-disabled='true']{ opacity:.5; cursor:not-allowed; }
|
|
1842
|
+
.${y}__item-icon{ display:inline-flex; align-items:center; justify-content:center; }
|
|
1843
|
+
.${y}__item-icon svg,
|
|
1844
|
+
.${y}__item-icon img{ width:var(--lattice-control-size); height:var(--lattice-control-size); display:block; }
|
|
1845
|
+
.${y}__item-icon img{ object-fit:contain; }
|
|
1846
|
+
.${y}__menu[data-mode='radial'] .${y}__item{ position:absolute; left:0; top:0; transform:translate(-50%,-50%); }
|
|
1822
1847
|
|
|
1823
|
-
.${
|
|
1824
|
-
.${
|
|
1848
|
+
.${y}__fab:focus-visible,
|
|
1849
|
+
.${y}__item:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
|
|
1825
1850
|
|
|
1851
|
+
${a}
|
|
1826
1852
|
${s}
|
|
1827
|
-
${i}
|
|
1828
1853
|
${r}
|
|
1829
|
-
`.trim()}function x(s){const r=s&&s.documentElement;if(!r||r.getAttribute(A))return;r.setAttribute(A,"1");const i=s.createElement("style");i.textContent=h(),(s.head||s.body||r).appendChild(i)}function t(s){return T.includes(s)?s:"bottom-right"}function n(s){return v.includes(s)?s:"primary"}function a(s,r){return f.includes(r)?r:s.startsWith("top-")?"down":s.startsWith("bottom-")?"up":s==="middle-left"?"right":"left"}function m(s){switch(s){case"top-left":return{startAngle:0,endAngle:-90};case"top-center":return{startAngle:225,endAngle:315};case"top-right":return{startAngle:180,endAngle:270};case"middle-left":return{startAngle:90,endAngle:-90};case"middle-right":return{startAngle:270,endAngle:90};case"bottom-left":return{startAngle:0,endAngle:90};case"bottom-center":return{startAngle:135,endAngle:45};case"bottom-right":return{startAngle:180,endAngle:90};default:return{startAngle:180,endAngle:90}}}function E(s,r){const i=r&&typeof r=="object"?r:{},B=m(s),z=typeof i.startAngle=="number"?i.startAngle:B.startAngle,W=typeof i.endAngle=="number"?i.endAngle:B.endAngle,b=typeof i.offset=="number"&&i.offset>0?i.offset:0;return{startAngle:z,endAngle:W,offset:b,defaulted:i.startAngle==null&&i.endAngle==null}}function _(s,r){const i=L[r];if(!i)return null;const B=s.createElementNS(H,"svg");B.setAttribute("viewBox",i.viewBox||"0 0 16 16"),B.setAttribute("aria-hidden","true"),B.setAttribute("focusable","false");const z=i.paint==="stroke";for(const W of i.paths||[]){const b=s.createElementNS(H,"path");b.setAttribute("d",W),z?(b.setAttribute("fill","none"),b.setAttribute("stroke","currentColor"),b.setAttribute("stroke-width","1.5"),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")):b.setAttribute("fill","currentColor"),B.appendChild(b)}return B}function c(s,r){if(s==null)return null;if(typeof s=="object"&&s.nodeType)return s;if(typeof s!="string"||s==="")return null;const i=s;if(/^(https?:)?\/\//i.test(i)||/^data:/i.test(i)){const B=r.createElement("img");return B.src=i,B.alt="",B}return _(r,i)}function S(s,r,i){const B=s&&s.defaultView;return B&&B.CustomEvent?new B.CustomEvent(r,{bubbles:!0,detail:i}):{type:r,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:i,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function o(s){return Array.isArray(s)?s.map(r=>{const i=r&&typeof r=="object"?r:{};return{id:i.id,icon:i.icon,text:i.text,disabled:i.disabled===!0,render:typeof i.render=="function"?i.render:null}}):[]}function d(s,r){const i="var(--lat-sd-size)",B="var(--lat-sd-gap)",z="var(--lat-sd-pad)";if(r==="up"||r==="down"){const J={flexDirection:"column"};return s.endsWith("-left")?(J.insetInlineStart=z,J.alignItems="flex-start"):s.endsWith("-right")?(J.insetInlineEnd=z,J.alignItems="flex-end"):(J.left="50%",J.transform="translateX(-50%)",J.alignItems="center"),r==="down"?J.top=`calc(${z} + ${i} + ${B})`:J.bottom=`calc(${z} + ${i} + ${B})`,J}const b={flexDirection:"row"};return s.startsWith("top-")?(b.top=z,b.alignItems="flex-start"):s.startsWith("bottom-")?(b.bottom=z,b.alignItems="flex-end"):(b.top="50%",b.transform="translateY(-50%)",b.alignItems="center"),r==="right"?b.insetInlineStart=`calc(${z} + ${i} + ${B})`:b.insetInlineEnd=`calc(${z} + ${i} + ${B})`,b}function l(s,r={}){const i=r.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;i&&x(i);const B=typeof r.t=="function"?r.t:re,z=r.inForm===!0,W=r.emitter||null,b=r.itemName!=null?String(r.itemName):"",J=r.formItem||null,Q=t(r.position),ne=r.fixed===!0,Z=r.openOnHover===!0,Y=r.mode==="radial"?"radial":"linear",Ne=n(r.variant),ve=a(Q,r.direction),se=r.modal===!0,k=r.text!=null?String(r.text):"",I=r.openIcon!=null?r.openIcon:"plus",F=r.closeIcon!=null?r.closeIcon:"close",p=Y==="radial"?E(Q,r.radial):null;let D=r.disabled===!0,G=o(r.items);const R=i.createElement("div");R.className=C,R.setAttribute("data-variant",Ne),R.setAttribute("data-fixed",ne?"true":"false"),z||R.setAttribute("data-lattice-standalone","true");const ee=`lat-speeddial-menu-${u+=1}`,P=i.createElement("button");P.type="button",P.className=`${C}__fab`,P.setAttribute("data-position",Q),P.setAttribute("aria-haspopup","menu"),P.setAttribute("aria-expanded","false"),P.setAttribute("aria-controls",ee),k&&P.setAttribute("data-text","true");const N=i.createElement("span");if(N.className=`${C}__fab-icon`,N.setAttribute("aria-hidden","true"),P.appendChild(N),k){const fe=i.createElement("span");fe.className=`${C}__fab-text`,fe.textContent=k,P.appendChild(fe)}const y=i.createElement("div");y.className=`${C}__backdrop`,y.hidden=!0;const $=i.createElement("div");$.className=`${C}__menu`,$.setAttribute("role","menu"),$.setAttribute("aria-label",B("form.speeddial.menu")),$.id=ee,$.setAttribute("data-mode",Y),Y==="linear"&&$.setAttribute("data-direction",ve),$.hidden=!0,R.appendChild(y),R.appendChild($),R.appendChild(P);let w=!1;const V=[];let oe=!1;const ie=(fe,xe)=>{W?W.emit(fe,{name:b,item:J,...xe}):s.dispatchEvent(S(i,fe,xe))},_e=()=>k||B(w?"form.speeddial.close":"form.speeddial.open"),Oe=()=>{for(;N.firstChild;)N.removeChild(N.firstChild);const fe=c(w?F:I,i);fe&&N.appendChild(fe)},Se=(fe,xe)=>{const Te=i.createElement("button");Te.type="button",Te.className=`${C}__item`,Te.setAttribute("role","menuitem"),Te.setAttribute("tabindex","-1"),Te.dataset.index=String(xe);const Ue=fe.text!=null&&String(fe.text)!==""?String(fe.text):fe.id!=null?String(fe.id):"";Ue&&Te.setAttribute("aria-label",Ue),fe.disabled&&Te.setAttribute("aria-disabled","true");const qe=c(fe.icon,i),Qe=fe.text!=null?String(fe.text):"";if(typeof fe.render=="function"){const Le=fe.render(fe,xe);Le&&typeof Le=="object"&&Le.nodeType?Te.appendChild(Le):Te.textContent=Le!=null?String(Le):""}else{if(qe){const Le=i.createElement("span");Le.className=`${C}__item-icon`,Le.setAttribute("aria-hidden","true"),Le.appendChild(qe),Te.appendChild(Le)}if(Qe!==""){const Le=i.createElement("span");Le.className=`${C}__item-text`,Le.textContent=Qe,Te.appendChild(Le)}}Te.setAttribute("data-icon-only",qe!=null&&Qe===""?"true":"false"),Te.setAttribute("data-text-only",qe==null&&Qe!==""?"true":"false");const Ge=Le=>{Le.stopPropagation(),!(fe.disabled||D)&&(ie("itemClick",{item:fe,index:xe}),K(!1),P.focus())};Te.addEventListener("click",Ge),V.push(()=>Te.removeEventListener("click",Ge));const Je=Le=>{Le.key==="Escape"?(Le.preventDefault(),Le.stopPropagation(),K(!1),P.focus()):Le.key==="ArrowDown"||Le.key==="ArrowRight"?(Le.preventDefault(),de(xe,1)):(Le.key==="ArrowUp"||Le.key==="ArrowLeft")&&(Le.preventDefault(),de(xe,-1))};return Te.addEventListener("keydown",Je),V.push(()=>Te.removeEventListener("keydown",Je)),Te};let j=[];const te=()=>{for(;$.firstChild;)$.removeChild($.firstChild);j=G.map((fe,xe)=>Se(fe,xe));for(const fe of j)$.appendChild(fe);Oe()},ce=()=>{if(Y!=="radial"||!p)return;const fe=P.getBoundingClientRect(),xe=ne?0:R.getBoundingClientRect().left,Te=ne?0:R.getBoundingClientRect().top,Ue=fe.left+fe.width/2-xe,qe=fe.top+fe.height/2-Te,Qe=p.offset||Math.round(fe.width/2+28);let Ge=p.startAngle,Je=p.endAngle;if(p.defaulted&&getComputedStyle(R).direction==="rtl"){const We=180-Je;Je=180-Ge,Ge=We}const Le=j.length;j.forEach((We,Ze)=>{const st=(Le<=1?(Ge+Je)/2:Ge+(Je-Ge)*(Ze/(Le-1)))*Math.PI/180;We.style.left=`${Math.round(Ue+Qe*Math.cos(st))}px`,We.style.top=`${Math.round(qe-Qe*Math.sin(st))}px`})},K=(fe,xe={})=>{oe||D||w===fe||(w=fe,P.setAttribute("aria-expanded",w?"true":"false"),P.setAttribute("aria-label",_e()),$.hidden=!w,se&&(y.hidden=!w),Oe(),w?(ie("open",{}),ce(),xe.focusItems!==!1&&de(-1,1)):ie("close",{}))},de=(fe,xe)=>{const Te=j.length;if(Te===0)return;let Ue=fe===-1?xe>0?0:Te-1:(fe+xe+Te)%Te;for(let qe=0;qe<Te;qe+=1){if(!G[Ue].disabled){j[Ue].focus();return}Ue=(Ue+xe+Te)%Te}},ue=()=>{K(!0,{focusItems:!1})},be=()=>{w&&(K(!1),P.focus())},Ce=()=>{K(!w,{focusItems:!1})};if(Y==="linear"){const fe=d(Q,ve);for(const xe of Object.keys(fe))$.style[xe]=fe[xe]}const Ae=()=>{D||Ce()};P.addEventListener("click",Ae),V.push(()=>P.removeEventListener("click",Ae));const ye=()=>{Z&&!D&&K(!0,{focusItems:!1})};P.addEventListener("pointerenter",ye),V.push(()=>P.removeEventListener("pointerenter",ye));const me=()=>{Z&&w&&K(!1)};R.addEventListener("pointerleave",me),V.push(()=>R.removeEventListener("pointerleave",me));const we=fe=>{fe.stopPropagation(),be()};y.addEventListener("click",we),V.push(()=>y.removeEventListener("click",we));const q=fe=>{if(!w)return;const xe=fe.target;xe&&R.contains(xe)||be()};i.addEventListener("pointerdown",q,!0),V.push(()=>i.removeEventListener("pointerdown",q,!0));const $e=fe=>{!w||fe.key!=="Escape"||(fe.preventDefault(),be())};i.addEventListener("keydown",$e,!0),V.push(()=>i.removeEventListener("keydown",$e,!0));const he=fe=>{fe.key==="Escape"?w&&(fe.preventDefault(),fe.stopPropagation(),be()):fe.key==="ArrowDown"||fe.key==="ArrowRight"?(fe.preventDefault(),K(!0),de(-1,1)):(fe.key==="ArrowUp"||fe.key==="ArrowLeft")&&(fe.preventDefault(),K(!0),de(-1,-1))};P.addEventListener("keydown",he),V.push(()=>P.removeEventListener("keydown",he));const Me=fe=>{D=fe===!0,P.disabled=D,P.setAttribute("aria-disabled",D?"true":"false"),D&&w&&K(!1)},Fe={el:R,fab:P,menu:$,open:ue,close:be,toggle:Ce,setItems(fe){G=o(fe),te()},setDisabled:Me,destroy(){oe=!0;for(const fe of V.splice(0))fe();for(;R.firstChild;)R.removeChild(R.firstChild);R.parentNode&&R.parentNode.removeChild(R)}};return Me(D),te(),s.appendChild(R),s.__latSpeedDial=Fe,Fe}U("speeddial",{kind:"button",action:!0,build(s,r){const i=s.props||{},B=r.doc.createElement("div"),z=l(B,{items:i.speedDialItems||i.items,position:i.position,fixed:i.fixed,openOnHover:i.openOnHover,direction:i.direction,mode:s.mode,radial:i.radial,modal:i.modal,openIcon:i.openIcon,closeIcon:i.closeIcon,text:i.text!=null?i.text:s.label,variant:i.variant,disabled:s.disabled,t:r.t,doc:r.doc,inForm:!0,emitter:r.emitter,itemName:s.name,formItem:s});return r.disposers.push(()=>z.destroy()),B},read(){return null},write(){},state(s,r){const i=s&&s.__latSpeedDial;i&&i.setDisabled(r.disabled===!0)}})}),je("packages/modules/form/controls/index.js",function(M,X){"use strict";const e=X("packages/modules/form/controls/input.js"),U=X("packages/modules/form/controls/number.js"),O=X("packages/modules/form/controls/textarea.js"),re=X("packages/modules/form/controls/checkbox.js"),g=X("packages/modules/form/controls/button.js"),L=X("packages/modules/form/controls/buttons.js"),C=X("packages/modules/form/controls/text.js"),A=X("packages/modules/form/controls/combo.js"),H=X("packages/modules/form/controls/select.js"),T=X("packages/modules/form/controls/listbox.js"),v=X("packages/modules/form/controls/radiogroup.js"),f=X("packages/modules/form/controls/checkboxgroup.js"),u=X("packages/modules/form/controls/toggle.js"),h=X("packages/modules/form/controls/datepicker.js"),x=X("packages/modules/form/controls/daterange.js"),t=X("packages/modules/form/controls/file.js"),n=X("packages/modules/form/controls/richtext.js"),a=X("packages/modules/form/controls/rating.js"),m=X("packages/modules/form/controls/stage.js"),E=X("packages/modules/form/controls/chips.js"),_=X("packages/modules/form/controls/otp.js"),c=X("packages/modules/form/controls/color.js"),S=X("packages/modules/form/controls/barcode.js"),o=X("packages/modules/form/controls/speeddial.js")}),je("packages/modules/form/create.js",function(M,X){"use strict";Object.defineProperty(M,"createForm",{enumerable:!0,get:function(){return B}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return z}});const e=X("packages/modules/form/styles.js"),U=e.NS,O=e.injectStyles,re=X("packages/modules/form/model.js"),g=re.resolveConfig,L=re.DENSITIES,C=re.cssSize,A=X("packages/modules/form/view.js"),H=A.markValidation,T=A.mount,v=A.runValidation,f=A.validateItem,u=A.wizardBack,h=A.wizardGoTo,x=A.wizardNext,t=X("packages/modules/form/emitter.js"),n=t.Emitter,a=t.FORM_EVENTS,E=X("packages/modules/form/messages.js").createTranslator,_=X("packages/modules/form/bind.js"),c=_.resolveBind,S=_.applyBinding,d=X("packages/modules/form/rules.js").applyRules,s=X("packages/modules/form/state.js").syncRecordState,r=X("packages/modules/form/controls/index.js");function i(W){if(Array.isArray(W))return W.map(i);if(W==null||typeof W!="object"||typeof W.nodeType=="number"||Object.getPrototypeOf(W)!==Object.prototype)return W;const b=W.type==="buttons"?"buttons":W.type==="speeddial"?"speedDialItems":null,J=b!=null&&Array.isArray(W.items),Q={};for(const ne of Object.keys(W))J&&ne==="items"||(Q[ne]=i(W[ne]));return J&&(Q[b]=W.items.map(i)),Q}function B(W,b={}){const J=W&&W.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,Q=c(b);let ne=b;if(Q){if(ne={...b},ne.density===void 0){const F=Q.density();F!=null&&(ne.density=F)}if(!(Array.isArray(ne.rows)&&ne.rows.length||Array.isArray(ne.cols)&&ne.cols.length)){const F=Q.items();F.length&&(ne.rows=[{items:F}])}}const Z=g(i(ne)),Y={el:W||null,doc:J,model:Z,config:Z,items:new Map,order:[],emitter:new n,t:E(Z.messages).t,uidSeq:0,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},Ne=I=>(I.facade||(I.facade={el:I.el,item:I.item,name:I.item.name,getValue(){return I.value},setValue(F){return I.def.write(I.control,F),I.value=I.def.read(I.control),I.item.value=I.value,d(Y),I.facade},show(){return I.hidden=!1,I.el.hidden=!1,I.facade},hide(){return I.hidden=!0,I.el.hidden=!0,I.facade},isVisible(){return!(I.hidden||I.ruleHidden)},disable(){return I.item.disabled=!0,s(I),I.facade},enable(){return I.item.disabled=!1,s(I),I.facade},focus(){return typeof I.def.focus=="function"?I.def.focus(I.control):typeof I.control.focus=="function"&&I.control.focus(),I.facade},blur(){return typeof I.def.blur=="function"?I.def.blur(I.control):typeof I.control.blur=="function"&&I.control.blur(),I.facade},validate(){return f(Y,I)},setLoading(F){return typeof I.def.setLoading=="function"&&I.def.setLoading(I.control,F===!0),I.facade}}),I.facade);W&&J&&O(J);const ve=W&&typeof W.style.cssText=="string"?W.style.cssText:"",se=new Set(["field","toggle","display"]),k={el:W||null,config:Z,getItem(I){const F=Y.items.get(String(I));return F?Ne(F):void 0},getValue(){const I={};for(const F of Y.order)F.item.name!=null&&se.has(F.def.kind)&&(I[F.item.name]=F.value);return I},setValue(I){if(I==null||typeof I!="object")return k;for(const F of Object.keys(I)){const p=Y.items.get(F);p&&Ne(p).setValue(I[F])}return k},clear(){for(const I of Y.order)if(I.item.name!=null)if(I.def.kind==="field"){const F=I.item.props&&I.item.props.multiple===!0,p=I.item.type==="chips"?F?[]:null:I.item.type==="number"||I.item.type==="radiogroup"||I.item.type==="datepicker"||I.item.type==="stage"||I.item.type==="combo"&&!F?null:I.item.type==="rating"?0:I.item.type==="file"||I.item.type==="checkboxgroup"||(I.item.type==="select"||I.item.type==="combo")&&F?[]:"";I.value=p,I.item.value=p,I.def.write(I.control,p)}else I.def.kind==="toggle"&&(I.value=!1,I.item.value=!1,I.def.write(I.control,!1));return d(Y),k},validate(){const I=[];let F=!0;for(const p of Y.order){if(p.item.name==null||p.def.kind!=="field"&&p.def.kind!=="toggle"||p.item.disabled===!0||p.ruleHidden===!0||p.hidden===!0||(typeof p.def.reset=="function"&&p.def.reset(p.control,p.item),p.item.required!==!0&&p.item.validation==null&&typeof p.def.validate!="function"&&p.ruleRequired!==!0))continue;const D=v(Y,p);H(Y,p,D),D&&(F=!1,I.push({name:p.item.name,rule:D.code,message:D.message}))}return Y.emitter.emit("validated",{name:null,item:null,value:void 0,valid:F,failures:I}),F},forEach(I){for(const F of Y.order)I(Ne(F))},on(I,F){return I!=="*"&&!a.includes(I)?(console.warn(`lattice-form: "${I}" is not a form event and will never fire.`),()=>{}):Y.emitter.on(I,F)},off(I,F){Y.emitter.off(I,F)},setDensity(I){return L.includes(I)&&(Z.density=I,W&&W.setAttribute("data-density",I)),k},setReadOnly(I){for(const F of Y.order)F.item.readOnly=I===!0,s(F);return k},setDisabled(I){for(const F of Y.order)F.item.disabled=I===!0,s(F);return k},setSpacing(I){const F=I==null?null:C(I);return Z.spacing=F,W&&(F==null?W.style.removeProperty("--lattice-form-item-gap"):W.style.setProperty("--lattice-form-item-gap",F)),k},isDirty(I){return I==null?Y.dirty.size>0:Y.dirty.has(String(I))},isConflicted(I){return I==null?Y.conflicts.size>0:Y.conflicts.has(String(I))},save(){const I=Y.bound;if(!I)return!1;if(Y.dirty.size===0)return!0;const F={};for(const G of Y.dirty){const R=k.getItem(G);R&&(F[G]=R.getValue())}const p=I.save(F),D=G=>{if(!G)return!1;for(const R of Object.keys(F))Y.baseline[R]=F[R],Y.dirty.delete(R),Y.conflicts.delete(R);return!0};return p&&typeof p.then=="function"?p.then(D):D(p)},revert(){for(const I of Y.dirty){if(!Object.hasOwn(Y.baseline,I))continue;const F=Y.items.get(I);F&&Ne(F).setValue(Y.baseline[I])}return Y.dirty.clear(),Y.conflicts.clear(),k},_bind(I){return S(Y,k,I),k},_commit(I){for(const F of Object.keys(I||{}))Y.baseline[F]=I[F],Y.dirty.delete(F),Y.conflicts.delete(F)},get steps(){return Y.model.steps||[]},get activeStep(){return Y.wizard?Y.wizard.active:0},next(){return x(Y)},back(){return u(Y)},goToStep(I){return h(Y,I)},__reapplyRules(){return d(Y),k},destroy(){for(const F of Y.disposers.splice(0))F();Y.emitter.clear();const I=Y.el;if(I){for(;I.firstChild;)I.removeChild(I.firstChild);I.classList.remove(U),I.removeAttribute("data-density"),I.style.cssText=ve,I.__latticeForm===k&&(I.__latticeForm=null)}Y.items.clear(),Y.order.length=0,Y.dirty.clear(),Y.conflicts.clear(),Y.baseline={},Y.bound=null}};return W&&(W.__latticeForm=k),Y.form=k,W&&J&&T(Y),Q&&S(Y,k,Q),k}const z=B}),je("packages/modules/form/group.js",function(M,X){"use strict";Object.defineProperty(M,"GROUP_EVENTS",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return n}});const U=X("packages/modules/form/emitter.js").Emitter,re=X("packages/modules/form/bind-router.js").routerBinding,g=X("packages/modules/form/group-rules.js"),L=g.attachRuleResolver,C=g.detachRuleResolver,A=g.makeRuleResolver,H=g.reapplyMembers,T=Object.freeze(["change","validated"]),v=new Set;function f(a){const m={},E=a.getValue();for(const _ of Object.keys(E))a.isDirty(_)===!0&&(m[_]=E[_]);return m}function u(a,m){v.has(a)||(v.add(a),console.warn("[lattice]",m))}const h=new WeakMap;function x(a,m){let E=h.get(a);if(!E){const _=a.destroy;E={original:_,watchers:new Set},h.set(a,E),a.destroy=function(){const S=h.get(a)||E;for(const o of[...S.watchers])o.detach(a);return _.call(a)}}E.watchers.add(m)}function t(a,m={}){const E=[],_=new Map,c=new Map,S=new U,o=m&&typeof m.bind=="object"&&m.bind.router!=null?m.bind:null,d=o?re(o):null,l=()=>{_.clear(),c.clear();for(const z of E){const W=Object.keys(z.form.getValue());for(const b of W)_.has(b)?u(`form.group.duplicate-field:${b}`,`form group: the field "${b}" is owned by more than one form; the first one added wins.`):_.set(b,z);z.id!=null&&!c.has(z.id)&&c.set(z.id,z)}},s=A({owners:_,byId:c,warnOnce:u}),r=z=>{const W=E.findIndex(Q=>Q.form===z);if(W===-1)return!1;const[b]=E.splice(W,1);for(const Q of b.unsubs)Q();l();const J=h.get(z);return J&&(J.watchers.delete(i),J.watchers.size===0&&(h.delete(z),z.destroy=J.original)),C(z),typeof z.__reapplyRules=="function"&&z.__reapplyRules(),H(E),!0},i={detach:r},B={get forms(){return E.map(z=>z.form)},add(z,W){if(!z||typeof z!="object"||typeof z.getValue!="function"||E.some(ne=>ne.form===z))return B;const b={form:z,id:W&&W.id,unsubs:[],lastFailures:[]};E.push(b),d&&typeof z._bind=="function"&&z._bind(d);const J=ne=>{S.emit("change",{form:z,name:ne.name,value:ne.value}),H(E)},Q=ne=>{b.lastFailures=ne.failures||[],S.emit("validated",{form:z,valid:ne.valid})};return b.unsubs.push(z.on("change",J)),b.unsubs.push(z.on("validated",Q)),x(z,i),l(),L(z,s),H(E),B},remove(z){return r(z),B},getValue(){const z={};for(const W of E)Object.assign(z,W.form.getValue());return m.transform&&typeof m.transform.get=="function"?m.transform.get(z):z},setValue(z){if(m.transform&&typeof m.transform.set=="function")m.transform.set(z);else if(z!=null&&typeof z=="object")for(const W of Object.keys(z)){const b=_.get(W);b&&b.form.setValue({[W]:z[W]})}return H(E),B},getItem(z){const W=_.get(String(z));return W?W.form.getItem(z):void 0},validate(){let z=!0;const W=[];for(const b of E){b.form.validate()===!1&&(z=!1);for(const Q of b.lastFailures||[])W.push({form:b.form,name:Q.name})}if(!z){const b=W.find(J=>J.name!=null);if(b){const J=b.form.getItem(b.name);J&&(J.focus(),J.el&&typeof J.el.scrollIntoView=="function"&&J.el.scrollIntoView({block:"nearest"}))}}return z},setReadOnly(z){for(const W of E)W.form.setReadOnly(z===!0);return B},setDisabled(z){for(const W of E)W.form.setDisabled(z===!0);return B},clear(){for(const z of E)z.form.clear();return B},reset(){for(const z of E)typeof z.form.revert=="function"&&z.form.revert();return B},save(){if(!d)return!1;const z=E.map(Q=>({member:Q,changes:f(Q.form)})),W={};for(const Q of z)Object.assign(W,Q.changes);if(!Object.keys(W).length)return!0;const b=d.save(W),J=Q=>{if(!Q)return!1;for(const ne of z)ne.member.form&&typeof ne.member.form._commit=="function"&&ne.member.form._commit(ne.changes);return!0};return b&&typeof b.then=="function"?b.then(J):J(b)},isDirty(){return E.some(z=>z.form.isDirty()===!0)},on(z,W){return z!=="*"&&!T.includes(z)?(console.warn(`lattice-form: "${z}" is not a form group event and will never fire.`),()=>{}):S.on(z,W)},off(z,W){S.off(z,W)},destroy(){for(;E.length;){const z=E[E.length-1].form;r(z)}S.clear()}};if(Array.isArray(a))for(const z of a)B.add(z);else a&&typeof a=="object"&&typeof a.getValue=="function"&&B.add(a);return B}const n=t}),je("packages/modules/form/enhance.js",function(M,X){"use strict";Object.defineProperty(M,"itemForField",{enumerable:!0,get:function(){return A}}),Object.defineProperty(M,"configForForm",{enumerable:!0,get:function(){return H}}),Object.defineProperty(M,"enhanceForm",{enumerable:!0,get:function(){return T}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return v}});const U=X("packages/modules/form/create.js").createForm,O=Object.freeze(["text","email","password","url"]);function re(f){const u=f&&f.type?String(f.type).toLowerCase():"";return u==="submit"||u==="image"||f&&f.tagName==="BUTTON"&&u!=="button"}function g(f){if(!f||!f.name)return!1;const u=f&&f.type?String(f.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||f.tagName==="BUTTON")}function L(f,u){if(typeof f.getAttribute=="function"){const h=f.getAttribute("data-label");if(h!=null&&h!=="")return h;const x=f.getAttribute("aria-label");if(x!=null&&x!=="")return x}if(f.id&&typeof u.querySelector=="function"){const h=u.querySelector(`label[for="${f.id}"]`);if(h&&h.textContent!=null){const x=String(h.textContent).trim();if(x)return x}}return String(f.name||"")}function C(f){return f.type==="checkbox"?f.checked===!0:f.value==null?"":f.value}function A(f,u){if(re(f)||!g(f))return null;const h=f.type?String(f.type).toLowerCase():"text",x={type:"input",name:f.name,label:L(f,u),value:C(f)};if(h==="number")x.type="number",f.min!=null&&f.min!==""&&(x.min=Number(f.min)),f.max!=null&&f.max!==""&&(x.max=Number(f.max)),f.step!=null&&f.step!==""&&(x.step=Number(f.step));else if(h==="checkbox")x.type="checkbox";else if(f.tagName==="TEXTAREA")x.type="textarea";else if(O.includes(h))x.subtype=h,(h==="email"||h==="url")&&(x.validation=h);else return null;if(f.placeholder!=null&&f.placeholder!==""&&(x.placeholder=f.placeholder),f.required===!0&&(x.required=!0),f.disabled===!0&&(x.disabled=!0),f.readOnly===!0&&(x.readOnly=!0),typeof f.getAttribute=="function"){const t=f.getAttribute("data-validation")||f.getAttribute("data-rule");t&&(x.validation=t);const n=f.getAttribute("data-error-message");n&&(x.errorMessage=n);const a=f.getAttribute("data-help");a&&(x.helpMessage=a)}return x}function H(f,u){const h=f&&f.ownerDocument||(typeof document<"u"?document:null),x=[],t=f&&f.elements?f.elements:[];for(const n of t){const a=A(n,h);a&&x.push(a)}return{...u||{},rows:x}}function T(f,u){if(!f)return null;if(f.__latticeForm)return f.__latticeForm;const h=f.ownerDocument||(typeof document<"u"?document:null),x=[],t=f.elements?f.elements:[];for(const a of t)re(a)&&x.push(a);const n=U(f,H(f,u));f.__latticeForm=n;for(const a of x)a.parentNode!==f&&f.appendChild(a);return typeof f.addEventListener=="function"&&h&&f.addEventListener("submit",a=>{n.validate()||(a.preventDefault(),a.stopImmediatePropagation())},!0),n}const v=T}),je("packages/modules/form/index.js",function(M,X){"use strict";Object.defineProperty(M,"registerControl",{enumerable:!0,get:function(){return v}}),Object.defineProperty(M,"createForm",{enumerable:!0,get:function(){return L}}),Object.defineProperty(M,"default",{enumerable:!0,get:function(){return f}});const U=X("packages/modules/form/styles.js").NS,re=X("packages/modules/form/controls/registry.js").registerControl,L=X("packages/modules/form/create.js").createForm,C=X("packages/modules/form/controls/combo.js");Object.defineProperty(M,"createCombo",{enumerable:!0,get:function(){return C.createCombo}});const A=X("packages/modules/form/controls/speeddial.js");Object.defineProperty(M,"createSpeedDial",{enumerable:!0,get:function(){return A.createSpeedDial}});const H=X("packages/modules/form/group.js");Object.defineProperty(M,"createFormGroup",{enumerable:!0,get:function(){return H.createFormGroup}});const T=X("packages/modules/form/enhance.js");Object.defineProperty(M,"enhanceForm",{enumerable:!0,get:function(){return T.enhanceForm}});function v(u,h){if(h===null||typeof h!="object"||typeof h.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const x=typeof h.getValue=="function"?h.getValue:()=>null,t=typeof h.setValue=="function"?h.setValue:()=>{};re(String(u),{kind:"field",custom:!0,validate:typeof h.validate=="function"?(n,a,m)=>h.validate(m,a,n):void 0,destroy:typeof h.destroy=="function"?n=>h.destroy(n):void 0,build(n,a){const m=a.doc.createElement("div");m.className=`${U}__custom`;const E={name:n.name,item:n,getValue(){return E._read?E._read():void 0},setValue(_){E._write&&E._write(_)},onChange(_){E._commit&&E._commit(_===void 0?x():_)},onInput(_){E._input&&E._input(_===void 0?x():_)}};return m.__latticeFormApi=E,h.create(m,n,E),t(m,n.value),m},read(n){return x(n)},write(n,a){t(n,a)},state(n,a){n.setAttribute("data-disabled",a.disabled===!0?"true":"false"),n.setAttribute("data-readonly",a.readOnly===!0?"true":"false")}})}const f=L});const xt=Wt("packages/modules/form/index.js"),cr=xt.createCombo,ur=xt.createSpeedDial,dr=xt.registerControl,fr=xt.createForm,pr=xt.createFormGroup,mr=xt.enhanceForm;var br=xt.default;export{cr as createCombo,fr as createForm,pr as createFormGroup,ur as createSpeedDial,br as default,mr as enhanceForm,dr as registerControl};
|
|
1854
|
+
`.trim()}function w(a){const r=a&&a.documentElement;if(!r||r.getAttribute(A))return;r.setAttribute(A,"1");const s=a.createElement("style");s.textContent=_(),(a.head||a.body||r).appendChild(s)}function t(a){return O.includes(a)?a:"bottom-right"}function o(a){return v.includes(a)?a:"primary"}function l(a,r){return d.includes(r)?r:a.startsWith("top-")?"down":a.startsWith("bottom-")?"up":a==="middle-left"?"right":"left"}function b(a){switch(a){case"top-left":return{startAngle:0,endAngle:-90};case"top-center":return{startAngle:225,endAngle:315};case"top-right":return{startAngle:180,endAngle:270};case"middle-left":return{startAngle:90,endAngle:-90};case"middle-right":return{startAngle:270,endAngle:90};case"bottom-left":return{startAngle:0,endAngle:90};case"bottom-center":return{startAngle:135,endAngle:45};case"bottom-right":return{startAngle:180,endAngle:90};default:return{startAngle:180,endAngle:90}}}function p(a,r){const s=r&&typeof r=="object"?r:{},M=b(a),D=typeof s.startAngle=="number"?s.startAngle:M.startAngle,Y=typeof s.endAngle=="number"?s.endAngle:M.endAngle,U=typeof s.offset=="number"&&s.offset>0?s.offset:0;return{startAngle:D,endAngle:Y,offset:U,defaulted:s.startAngle==null&&s.endAngle==null}}function m(a,r){const s=P[r];if(!s)return null;const M=a.createElementNS(B,"svg");M.setAttribute("viewBox",s.viewBox||"0 0 16 16"),M.setAttribute("aria-hidden","true"),M.setAttribute("focusable","false");const D=s.paint==="stroke";for(const Y of s.paths||[]){const U=a.createElementNS(B,"path");U.setAttribute("d",Y),D?(U.setAttribute("fill","none"),U.setAttribute("stroke","currentColor"),U.setAttribute("stroke-width","1.5"),U.setAttribute("stroke-linecap","round"),U.setAttribute("stroke-linejoin","round")):U.setAttribute("fill","currentColor"),M.appendChild(U)}return M}function f(a,r){if(a==null)return null;if(typeof a=="object"&&a.nodeType)return a;if(typeof a!="string"||a==="")return null;const s=a;if(/^(https?:)?\/\//i.test(s)||/^data:/i.test(s)){const M=r.createElement("img");return M.src=s,M.alt="",M}return m(r,s)}function N(a,r,s){const M=a&&a.defaultView;return M&&M.CustomEvent?new M.CustomEvent(r,{bubbles:!0,detail:s}):{type:r,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,detail:s,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function c(a){return Array.isArray(a)?a.map(r=>{const s=r&&typeof r=="object"?r:{};return{id:s.id,icon:s.icon,text:s.text,disabled:s.disabled===!0,render:typeof s.render=="function"?s.render:null}}):[]}function i(a,r){const s="var(--lat-sd-size)",M="var(--lat-sd-gap)",D="var(--lat-sd-pad)";if(r==="up"||r==="down"){const Q={flexDirection:"column"};return a.endsWith("-left")?(Q.insetInlineStart=D,Q.alignItems="flex-start"):a.endsWith("-right")?(Q.insetInlineEnd=D,Q.alignItems="flex-end"):(Q.left="50%",Q.transform="translateX(-50%)",Q.alignItems="center"),r==="down"?Q.top=`calc(${D} + ${s} + ${M})`:Q.bottom=`calc(${D} + ${s} + ${M})`,Q}const U={flexDirection:"row"};return a.startsWith("top-")?(U.top=D,U.alignItems="flex-start"):a.startsWith("bottom-")?(U.bottom=D,U.alignItems="flex-end"):(U.top="50%",U.transform="translateY(-50%)",U.alignItems="center"),r==="right"?U.insetInlineStart=`calc(${D} + ${s} + ${M})`:U.insetInlineEnd=`calc(${D} + ${s} + ${M})`,U}function n(a,r={}){const s=r.doc||a&&a.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;s&&w(s);const M=typeof r.t=="function"?r.t:ee,D=r.inForm===!0,Y=r.emitter||null,U=r.itemName!=null?String(r.itemName):"",Q=r.formItem||null,oe=t(r.position),F=r.fixed===!0,K=r.openOnHover===!0,W=r.mode==="radial"?"radial":"linear",ge=o(r.variant),ve=l(oe,r.direction),le=r.modal===!0,x=r.text!=null?String(r.text):"",L=r.openIcon!=null?r.openIcon:"plus",I=r.closeIcon!=null?r.closeIcon:"close",g=W==="radial"?p(oe,r.radial):null;let T=r.disabled===!0,X=c(r.items);const z=s.createElement("div");z.className=y,z.setAttribute("data-variant",ge),z.setAttribute("data-fixed",F?"true":"false"),D||z.setAttribute("data-lattice-standalone","true");const te=`lat-speeddial-menu-${u+=1}`,re=s.createElement("button");re.type="button",re.className=`${y}__fab`,re.setAttribute("data-position",oe),re.setAttribute("aria-haspopup","menu"),re.setAttribute("aria-expanded","false"),re.setAttribute("aria-controls",te),x&&re.setAttribute("data-text","true");const j=s.createElement("span");if(j.className=`${y}__fab-icon`,j.setAttribute("aria-hidden","true"),re.appendChild(j),x){const fe=s.createElement("span");fe.className=`${y}__fab-text`,fe.textContent=x,re.appendChild(fe)}const k=s.createElement("div");k.className=`${y}__backdrop`,k.hidden=!0;const Z=s.createElement("div");Z.className=`${y}__menu`,Z.setAttribute("role","menu"),Z.setAttribute("aria-label",M("form.speeddial.menu")),Z.id=te,Z.setAttribute("data-mode",W),W==="linear"&&Z.setAttribute("data-direction",ve),Z.hidden=!0,z.appendChild(k),z.appendChild(Z),z.appendChild(re);let H=!1;const E=[];let G=!1;const R=(fe,we)=>{Y?Y.emit(fe,{name:U,item:Q,...we}):a.dispatchEvent(N(s,fe,we))},ce=()=>x||M(H?"form.speeddial.close":"form.speeddial.open"),me=()=>{for(;j.firstChild;)j.removeChild(j.firstChild);const fe=f(H?I:L,s);fe&&j.appendChild(fe)},xe=(fe,we)=>{const Se=s.createElement("button");Se.type="button",Se.className=`${y}__item`,Se.setAttribute("role","menuitem"),Se.setAttribute("tabindex","-1"),Se.dataset.index=String(we);const Te=fe.text!=null&&String(fe.text)!==""?String(fe.text):fe.id!=null?String(fe.id):"";Te&&Se.setAttribute("aria-label",Te),fe.disabled&&Se.setAttribute("aria-disabled","true");const Pe=f(fe.icon,s),tt=fe.text!=null?String(fe.text):"";if(typeof fe.render=="function"){const Be=fe.render(fe,we);Be&&typeof Be=="object"&&Be.nodeType?Se.appendChild(Be):Se.textContent=Be!=null?String(Be):""}else{if(Pe){const Be=s.createElement("span");Be.className=`${y}__item-icon`,Be.setAttribute("aria-hidden","true"),Be.appendChild(Pe),Se.appendChild(Be)}if(tt!==""){const Be=s.createElement("span");Be.className=`${y}__item-text`,Be.textContent=tt,Se.appendChild(Be)}}Se.setAttribute("data-icon-only",Pe!=null&&tt===""?"true":"false"),Se.setAttribute("data-text-only",Pe==null&&tt!==""?"true":"false");const Ze=Be=>{Be.stopPropagation(),!(fe.disabled||T)&&(R("itemClick",{item:fe,index:we}),J(!1),re.focus())};Se.addEventListener("click",Ze),E.push(()=>Se.removeEventListener("click",Ze));const Je=Be=>{Be.key==="Escape"?(Be.preventDefault(),Be.stopPropagation(),J(!1),re.focus()):Be.key==="ArrowDown"||Be.key==="ArrowRight"?(Be.preventDefault(),ue(we,1)):(Be.key==="ArrowUp"||Be.key==="ArrowLeft")&&(Be.preventDefault(),ue(we,-1))};return Se.addEventListener("keydown",Je),E.push(()=>Se.removeEventListener("keydown",Je)),Se};let C=[];const ne=()=>{for(;Z.firstChild;)Z.removeChild(Z.firstChild);C=X.map((fe,we)=>xe(fe,we));for(const fe of C)Z.appendChild(fe);me()},se=()=>{if(W!=="radial"||!g)return;const fe=re.getBoundingClientRect(),we=F?0:z.getBoundingClientRect().left,Se=F?0:z.getBoundingClientRect().top,Te=fe.left+fe.width/2-we,Pe=fe.top+fe.height/2-Se,tt=g.offset||Math.round(fe.width/2+28);let Ze=g.startAngle,Je=g.endAngle;if(g.defaulted&&getComputedStyle(z).direction==="rtl"){const Qe=180-Je;Je=180-Ze,Ze=Qe}const Be=C.length;C.forEach((Qe,lt)=>{const Ye=(Be<=1?(Ze+Je)/2:Ze+(Je-Ze)*(lt/(Be-1)))*Math.PI/180;Qe.style.left=`${Math.round(Te+tt*Math.cos(Ye))}px`,Qe.style.top=`${Math.round(Pe-tt*Math.sin(Ye))}px`})},J=(fe,we={})=>{G||T||H===fe||(H=fe,re.setAttribute("aria-expanded",H?"true":"false"),re.setAttribute("aria-label",ce()),Z.hidden=!H,le&&(k.hidden=!H),me(),H?(R("open",{}),se(),we.focusItems!==!1&&ue(-1,1)):R("close",{}))},ue=(fe,we)=>{const Se=C.length;if(Se===0)return;let Te=fe===-1?we>0?0:Se-1:(fe+we+Se)%Se;for(let Pe=0;Pe<Se;Pe+=1){if(!X[Te].disabled){C[Te].focus();return}Te=(Te+we+Se)%Se}},he=()=>{J(!0,{focusItems:!1})},be=()=>{H&&(J(!1),re.focus())},Ee=()=>{J(!H,{focusItems:!1})};if(W==="linear"){const fe=i(oe,ve);for(const we of Object.keys(fe))Z.style[we]=fe[we]}const Oe=()=>{T||Ee()};re.addEventListener("click",Oe),E.push(()=>re.removeEventListener("click",Oe));const Ae=()=>{K&&!T&&J(!0,{focusItems:!1})};re.addEventListener("pointerenter",Ae),E.push(()=>re.removeEventListener("pointerenter",Ae));const Ce=()=>{K&&H&&J(!1)};z.addEventListener("pointerleave",Ce),E.push(()=>z.removeEventListener("pointerleave",Ce));const ye=fe=>{fe.stopPropagation(),be()};k.addEventListener("click",ye),E.push(()=>k.removeEventListener("click",ye));const ke=fe=>{if(!H)return;const we=fe.target;we&&z.contains(we)||be()};s.addEventListener("pointerdown",ke,!0),E.push(()=>s.removeEventListener("pointerdown",ke,!0));const Le=fe=>{!H||fe.key!=="Escape"||(fe.preventDefault(),be())};s.addEventListener("keydown",Le,!0),E.push(()=>s.removeEventListener("keydown",Le,!0));const De=fe=>{fe.key==="Escape"?H&&(fe.preventDefault(),fe.stopPropagation(),be()):fe.key==="ArrowDown"||fe.key==="ArrowRight"?(fe.preventDefault(),J(!0),ue(-1,1)):(fe.key==="ArrowUp"||fe.key==="ArrowLeft")&&(fe.preventDefault(),J(!0),ue(-1,-1))};re.addEventListener("keydown",De),E.push(()=>re.removeEventListener("keydown",De));const He=fe=>{T=fe===!0,re.disabled=T,re.setAttribute("aria-disabled",T?"true":"false"),T&&H&&J(!1)},de={el:z,fab:re,menu:Z,open:he,close:be,toggle:Ee,setItems(fe){X=c(fe),ne()},setDisabled:He,destroy(){G=!0;for(const fe of E.splice(0))fe();for(;z.firstChild;)z.removeChild(z.firstChild);z.parentNode&&z.parentNode.removeChild(z)}};return He(T),ne(),a.appendChild(z),a.__latSpeedDial=de,de}V("speeddial",{kind:"button",action:!0,build(a,r){const s=a.props||{},M=r.doc.createElement("div"),D=n(M,{items:s.speedDialItems||s.items,position:s.position,fixed:s.fixed,openOnHover:s.openOnHover,direction:s.direction,mode:a.mode,radial:s.radial,modal:s.modal,openIcon:s.openIcon,closeIcon:s.closeIcon,text:s.text!=null?s.text:a.label,variant:s.variant,disabled:a.disabled,t:r.t,doc:r.doc,inForm:!0,emitter:r.emitter,itemName:a.name,formItem:a});return r.disposers.push(()=>D.destroy()),M},read(){return null},write(){},state(a,r){const s=a&&a.__latSpeedDial;s&&s.setDisabled(r.disabled===!0)}})}),Ne("packages/modules/form/controls/index.js",function(S,q){"use strict";const e=q("packages/modules/form/controls/input.js"),V=q("packages/modules/form/controls/number.js"),$=q("packages/modules/form/controls/textarea.js"),ee=q("packages/modules/form/controls/checkbox.js"),h=q("packages/modules/form/controls/button.js"),P=q("packages/modules/form/controls/buttons.js"),y=q("packages/modules/form/controls/text.js"),A=q("packages/modules/form/controls/combo.js"),B=q("packages/modules/form/controls/select.js"),O=q("packages/modules/form/controls/listbox.js"),v=q("packages/modules/form/controls/radiogroup.js"),d=q("packages/modules/form/controls/checkboxgroup.js"),u=q("packages/modules/form/controls/toggle.js"),_=q("packages/modules/form/controls/datepicker.js"),w=q("packages/modules/form/controls/daterange.js"),t=q("packages/modules/form/controls/file.js"),o=q("packages/modules/form/controls/richtext.js"),l=q("packages/modules/form/controls/rating.js"),b=q("packages/modules/form/controls/stage.js"),p=q("packages/modules/form/controls/chips.js"),m=q("packages/modules/form/controls/otp.js"),f=q("packages/modules/form/controls/color.js"),N=q("packages/modules/form/controls/barcode.js"),c=q("packages/modules/form/controls/speeddial.js")}),Ne("packages/modules/form/create.js",function(S,q){"use strict";Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return M}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return D}});const e=q("packages/modules/form/styles.js"),V=e.NS,$=e.injectStyles,ee=q("packages/modules/form/model.js"),h=ee.resolveConfig,P=ee.DENSITIES,y=ee.cssSize,A=q("packages/modules/form/view.js"),B=A.markValidation,O=A.mount,v=A.runValidation,d=A.validateItem,u=A.wizardBack,_=A.wizardGoTo,w=A.wizardNext,t=q("packages/modules/form/emitter.js"),o=t.Emitter,l=t.FORM_EVENTS,p=q("packages/modules/form/messages.js").createTranslator,m=q("packages/modules/form/bind.js"),f=m.resolveBind,N=m.applyBinding,i=q("packages/modules/form/rules.js").applyRules,a=q("packages/modules/form/state.js").syncRecordState,r=q("packages/modules/form/controls/index.js");function s(Y){if(Array.isArray(Y))return Y.map(s);if(Y==null||typeof Y!="object"||typeof Y.nodeType=="number"||Object.getPrototypeOf(Y)!==Object.prototype)return Y;const U=Y.type==="buttons"?"buttons":Y.type==="speeddial"?"speedDialItems":null,Q=U!=null&&Array.isArray(Y.items),oe={};for(const F of Object.keys(Y))Q&&F==="items"||(oe[F]=s(Y[F]));return Q&&(oe[U]=Y.items.map(s)),oe}function M(Y,U={}){const Q=Y&&Y.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,oe=f(U);let F=U;if(oe){if(F={...U},F.density===void 0){const I=oe.density();I!=null&&(F.density=I)}if(!(Array.isArray(F.rows)&&F.rows.length||Array.isArray(F.cols)&&F.cols.length)){const I=oe.items();I.length&&(F.rows=[{items:I}])}}const K=h(s(F)),W={el:Y||null,doc:Q,model:K,config:K,items:new Map,order:[],emitter:new o,t:p(K.messages).t,uidSeq:0,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ge=L=>(L.facade||(L.facade={el:L.el,item:L.item,name:L.item.name,getValue(){return L.value},setValue(I){return L.def.write(L.control,I),L.value=L.def.read(L.control),L.item.value=L.value,i(W),L.facade},show(){return L.hidden=!1,L.el.hidden=!1,L.facade},hide(){return L.hidden=!0,L.el.hidden=!0,L.facade},isVisible(){return!(L.hidden||L.ruleHidden)},disable(){return L.item.disabled=!0,a(L),L.facade},enable(){return L.item.disabled=!1,a(L),L.facade},focus(){return typeof L.def.focus=="function"?L.def.focus(L.control):typeof L.control.focus=="function"&&L.control.focus(),L.facade},blur(){return typeof L.def.blur=="function"?L.def.blur(L.control):typeof L.control.blur=="function"&&L.control.blur(),L.facade},validate(){return d(W,L)},setLoading(I){return typeof L.def.setLoading=="function"&&L.def.setLoading(L.control,I===!0),L.facade}}),L.facade);Y&&Q&&$(Q);const ve=Y&&typeof Y.style.cssText=="string"?Y.style.cssText:"",le=new Set(["field","toggle","display"]),x={el:Y||null,config:K,getItem(L){const I=W.items.get(String(L));return I?ge(I):void 0},getValue(){const L={};for(const I of W.order)I.item.name!=null&&le.has(I.def.kind)&&(L[I.item.name]=I.value);return L},setValue(L){if(L==null||typeof L!="object")return x;for(const I of Object.keys(L)){const g=W.items.get(I);g&&ge(g).setValue(L[I])}return x},clear(){for(const L of W.order)if(L.item.name!=null)if(L.def.kind==="field"){const I=L.item.props&&L.item.props.multiple===!0,g=L.item.type==="chips"?I?[]:null:L.item.type==="number"||L.item.type==="radiogroup"||L.item.type==="datepicker"||L.item.type==="stage"||L.item.type==="combo"&&!I?null:L.item.type==="rating"?0:L.item.type==="file"||L.item.type==="checkboxgroup"||(L.item.type==="select"||L.item.type==="combo")&&I?[]:"";L.value=g,L.item.value=g,L.def.write(L.control,g)}else L.def.kind==="toggle"&&(L.value=!1,L.item.value=!1,L.def.write(L.control,!1));return i(W),x},validate(){const L=[];let I=!0;for(const g of W.order){if(g.item.name==null||g.def.kind!=="field"&&g.def.kind!=="toggle"||g.item.disabled===!0||g.ruleHidden===!0||g.hidden===!0||(typeof g.def.reset=="function"&&g.def.reset(g.control,g.item),g.item.required!==!0&&g.item.validation==null&&typeof g.def.validate!="function"&&g.ruleRequired!==!0))continue;const T=v(W,g);B(W,g,T),T&&(I=!1,L.push({name:g.item.name,rule:T.code,message:T.message}))}return W.emitter.emit("validated",{name:null,item:null,value:void 0,valid:I,failures:L}),I},forEach(L){for(const I of W.order)L(ge(I))},on(L,I){return L!=="*"&&!l.includes(L)?(console.warn(`lattice-form: "${L}" is not a form event and will never fire.`),()=>{}):W.emitter.on(L,I)},off(L,I){W.emitter.off(L,I)},setDensity(L){return P.includes(L)&&(K.density=L,Y&&Y.setAttribute("data-density",L)),x},setReadOnly(L){for(const I of W.order)I.item.readOnly=L===!0,a(I);return x},setDisabled(L){for(const I of W.order)I.item.disabled=L===!0,a(I);return x},setSpacing(L){const I=L==null?null:y(L);return K.spacing=I,Y&&(I==null?Y.style.removeProperty("--lattice-form-item-gap"):Y.style.setProperty("--lattice-form-item-gap",I)),x},isDirty(L){return L==null?W.dirty.size>0:W.dirty.has(String(L))},isConflicted(L){return L==null?W.conflicts.size>0:W.conflicts.has(String(L))},save(){const L=W.bound;if(!L)return!1;if(W.dirty.size===0)return!0;const I={};for(const X of W.dirty){const z=x.getItem(X);z&&(I[X]=z.getValue())}const g=L.save(I),T=X=>{if(!X)return!1;for(const z of Object.keys(I))W.baseline[z]=I[z],W.dirty.delete(z),W.conflicts.delete(z);return!0};return g&&typeof g.then=="function"?g.then(T):T(g)},revert(){for(const L of W.dirty){if(!Object.hasOwn(W.baseline,L))continue;const I=W.items.get(L);I&&ge(I).setValue(W.baseline[L])}return W.dirty.clear(),W.conflicts.clear(),x},_bind(L){return N(W,x,L),x},_commit(L){for(const I of Object.keys(L||{}))W.baseline[I]=L[I],W.dirty.delete(I),W.conflicts.delete(I)},get steps(){return W.model.steps||[]},get activeStep(){return W.wizard?W.wizard.active:0},next(){return w(W)},back(){return u(W)},goToStep(L){return _(W,L)},__reapplyRules(){return i(W),x},destroy(){for(const I of W.disposers.splice(0))I();W.emitter.clear();const L=W.el;if(L){for(;L.firstChild;)L.removeChild(L.firstChild);L.classList.remove(V),L.removeAttribute("data-density"),L.style.cssText=ve,L.__latticeForm===x&&(L.__latticeForm=null)}W.items.clear(),W.order.length=0,W.dirty.clear(),W.conflicts.clear(),W.baseline={},W.bound=null}};return Y&&(Y.__latticeForm=x),W.form=x,Y&&Q&&O(W),oe&&N(W,x,oe),x}const D=M}),Ne("packages/modules/form/group.js",function(S,q){"use strict";Object.defineProperty(S,"GROUP_EVENTS",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return t}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return o}});const V=q("packages/modules/form/emitter.js").Emitter,ee=q("packages/modules/form/bind-router.js").routerBinding,h=q("packages/modules/form/group-rules.js"),P=h.attachRuleResolver,y=h.detachRuleResolver,A=h.makeRuleResolver,B=h.reapplyMembers,O=Object.freeze(["change","validated"]),v=new Set;function d(l){const b={},p=l.getValue();for(const m of Object.keys(p))l.isDirty(m)===!0&&(b[m]=p[m]);return b}function u(l,b){v.has(l)||(v.add(l),console.warn("[lattice]",b))}const _=new WeakMap;function w(l,b){let p=_.get(l);if(!p){const m=l.destroy;p={original:m,watchers:new Set},_.set(l,p),l.destroy=function(){const N=_.get(l)||p;for(const c of[...N.watchers])c.detach(l);return m.call(l)}}p.watchers.add(b)}function t(l,b={}){const p=[],m=new Map,f=new Map,N=new V,c=b&&typeof b.bind=="object"&&b.bind.router!=null?b.bind:null,i=c?ee(c):null,n=()=>{m.clear(),f.clear();for(const D of p){const Y=Object.keys(D.form.getValue());for(const U of Y)m.has(U)?u(`form.group.duplicate-field:${U}`,`form group: the field "${U}" is owned by more than one form; the first one added wins.`):m.set(U,D);D.id!=null&&!f.has(D.id)&&f.set(D.id,D)}},a=A({owners:m,byId:f,warnOnce:u}),r=D=>{const Y=p.findIndex(oe=>oe.form===D);if(Y===-1)return!1;const[U]=p.splice(Y,1);for(const oe of U.unsubs)oe();n();const Q=_.get(D);return Q&&(Q.watchers.delete(s),Q.watchers.size===0&&(_.delete(D),D.destroy=Q.original)),y(D),typeof D.__reapplyRules=="function"&&D.__reapplyRules(),B(p),!0},s={detach:r},M={get forms(){return p.map(D=>D.form)},add(D,Y){if(!D||typeof D!="object"||typeof D.getValue!="function"||p.some(F=>F.form===D))return M;const U={form:D,id:Y&&Y.id,unsubs:[],lastFailures:[]};p.push(U),i&&typeof D._bind=="function"&&D._bind(i);const Q=F=>{N.emit("change",{form:D,name:F.name,value:F.value}),B(p)},oe=F=>{U.lastFailures=F.failures||[],N.emit("validated",{form:D,valid:F.valid})};return U.unsubs.push(D.on("change",Q)),U.unsubs.push(D.on("validated",oe)),w(D,s),n(),P(D,a),B(p),M},remove(D){return r(D),M},getValue(){const D={};for(const Y of p)Object.assign(D,Y.form.getValue());return b.transform&&typeof b.transform.get=="function"?b.transform.get(D):D},setValue(D){if(b.transform&&typeof b.transform.set=="function")b.transform.set(D);else if(D!=null&&typeof D=="object")for(const Y of Object.keys(D)){const U=m.get(Y);U&&U.form.setValue({[Y]:D[Y]})}return B(p),M},getItem(D){const Y=m.get(String(D));return Y?Y.form.getItem(D):void 0},validate(){let D=!0;const Y=[];for(const U of p){U.form.validate()===!1&&(D=!1);for(const oe of U.lastFailures||[])Y.push({form:U.form,name:oe.name})}if(!D){const U=Y.find(Q=>Q.name!=null);if(U){const Q=U.form.getItem(U.name);Q&&(Q.focus(),Q.el&&typeof Q.el.scrollIntoView=="function"&&Q.el.scrollIntoView({block:"nearest"}))}}return D},setReadOnly(D){for(const Y of p)Y.form.setReadOnly(D===!0);return M},setDisabled(D){for(const Y of p)Y.form.setDisabled(D===!0);return M},clear(){for(const D of p)D.form.clear();return M},reset(){for(const D of p)typeof D.form.revert=="function"&&D.form.revert();return M},save(){if(!i)return!1;const D=p.map(oe=>({member:oe,changes:d(oe.form)})),Y={};for(const oe of D)Object.assign(Y,oe.changes);if(!Object.keys(Y).length)return!0;const U=i.save(Y),Q=oe=>{if(!oe)return!1;for(const F of D)F.member.form&&typeof F.member.form._commit=="function"&&F.member.form._commit(F.changes);return!0};return U&&typeof U.then=="function"?U.then(Q):Q(U)},isDirty(){return p.some(D=>D.form.isDirty()===!0)},on(D,Y){return D!=="*"&&!O.includes(D)?(console.warn(`lattice-form: "${D}" is not a form group event and will never fire.`),()=>{}):N.on(D,Y)},off(D,Y){N.off(D,Y)},destroy(){for(;p.length;){const D=p[p.length-1].form;r(D)}N.clear()}};if(Array.isArray(l))for(const D of l)M.add(D);else l&&typeof l=="object"&&typeof l.getValue=="function"&&M.add(l);return M}const o=t}),Ne("packages/modules/form/enhance.js",function(S,q){"use strict";Object.defineProperty(S,"itemForField",{enumerable:!0,get:function(){return A}}),Object.defineProperty(S,"configForForm",{enumerable:!0,get:function(){return B}}),Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return O}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return v}});const V=q("packages/modules/form/create.js").createForm,$=Object.freeze(["text","email","password","url"]);function ee(d){const u=d&&d.type?String(d.type).toLowerCase():"";return u==="submit"||u==="image"||d&&d.tagName==="BUTTON"&&u!=="button"}function h(d){if(!d||!d.name)return!1;const u=d&&d.type?String(d.type).toLowerCase():"";return!(u==="submit"||u==="button"||u==="reset"||u==="image"||u==="hidden"||u==="file"||d.tagName==="BUTTON")}function P(d,u){if(typeof d.getAttribute=="function"){const _=d.getAttribute("data-label");if(_!=null&&_!=="")return _;const w=d.getAttribute("aria-label");if(w!=null&&w!=="")return w}if(d.id&&typeof u.querySelector=="function"){const _=u.querySelector(`label[for="${d.id}"]`);if(_&&_.textContent!=null){const w=String(_.textContent).trim();if(w)return w}}return String(d.name||"")}function y(d){return d.type==="checkbox"?d.checked===!0:d.value==null?"":d.value}function A(d,u){if(ee(d)||!h(d))return null;const _=d.type?String(d.type).toLowerCase():"text",w={type:"input",name:d.name,label:P(d,u),value:y(d)};if(_==="number")w.type="number",d.min!=null&&d.min!==""&&(w.min=Number(d.min)),d.max!=null&&d.max!==""&&(w.max=Number(d.max)),d.step!=null&&d.step!==""&&(w.step=Number(d.step));else if(_==="checkbox")w.type="checkbox";else if(d.tagName==="TEXTAREA")w.type="textarea";else if($.includes(_))w.subtype=_,(_==="email"||_==="url")&&(w.validation=_);else return null;if(d.placeholder!=null&&d.placeholder!==""&&(w.placeholder=d.placeholder),d.required===!0&&(w.required=!0),d.disabled===!0&&(w.disabled=!0),d.readOnly===!0&&(w.readOnly=!0),typeof d.getAttribute=="function"){const t=d.getAttribute("data-validation")||d.getAttribute("data-rule");t&&(w.validation=t);const o=d.getAttribute("data-error-message");o&&(w.errorMessage=o);const l=d.getAttribute("data-help");l&&(w.helpMessage=l)}return w}function B(d,u){const _=d&&d.ownerDocument||(typeof document<"u"?document:null),w=[],t=d&&d.elements?d.elements:[];for(const o of t){const l=A(o,_);l&&w.push(l)}return{...u||{},rows:w}}function O(d,u){if(!d)return null;if(d.__latticeForm)return d.__latticeForm;const _=d.ownerDocument||(typeof document<"u"?document:null),w=[],t=d.elements?d.elements:[];for(const l of t)ee(l)&&w.push(l);const o=V(d,B(d,u));d.__latticeForm=o;for(const l of w)l.parentNode!==d&&d.appendChild(l);return typeof d.addEventListener=="function"&&_&&d.addEventListener("submit",l=>{o.validate()||(l.preventDefault(),l.stopImmediatePropagation())},!0),o}const v=O}),Ne("packages/modules/form/index.js",function(S,q){"use strict";Object.defineProperty(S,"registerControl",{enumerable:!0,get:function(){return v}}),Object.defineProperty(S,"createForm",{enumerable:!0,get:function(){return P}}),Object.defineProperty(S,"default",{enumerable:!0,get:function(){return d}});const V=q("packages/modules/form/styles.js").NS,ee=q("packages/modules/form/controls/registry.js").registerControl,P=q("packages/modules/form/create.js").createForm,y=q("packages/modules/form/controls/combo.js");Object.defineProperty(S,"createCombo",{enumerable:!0,get:function(){return y.createCombo}});const A=q("packages/modules/form/controls/speeddial.js");Object.defineProperty(S,"createSpeedDial",{enumerable:!0,get:function(){return A.createSpeedDial}});const B=q("packages/modules/form/group.js");Object.defineProperty(S,"createFormGroup",{enumerable:!0,get:function(){return B.createFormGroup}});const O=q("packages/modules/form/enhance.js");Object.defineProperty(S,"enhanceForm",{enumerable:!0,get:function(){return O.enhanceForm}});function v(u,_){if(_===null||typeof _!="object"||typeof _.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const w=typeof _.getValue=="function"?_.getValue:()=>null,t=typeof _.setValue=="function"?_.setValue:()=>{};ee(String(u),{kind:"field",custom:!0,validate:typeof _.validate=="function"?(o,l,b)=>_.validate(b,l,o):void 0,destroy:typeof _.destroy=="function"?o=>_.destroy(o):void 0,build(o,l){const b=l.doc.createElement("div");b.className=`${V}__custom`;const p={name:o.name,item:o,getValue(){return p._read?p._read():void 0},setValue(m){p._write&&p._write(m)},onChange(m){p._commit&&p._commit(m===void 0?w():m)},onInput(m){p._input&&p._input(m===void 0?w():m)}};return b.__latticeFormApi=p,_.create(b,o,p),t(b,o.value),b},read(o){return w(o)},write(o,l){t(o,l)},state(o,l){o.setAttribute("data-disabled",l.disabled===!0?"true":"false"),o.setAttribute("data-readonly",l.readOnly===!0?"true":"false")}})}const d=P});const Ct=Zt("packages/modules/form/index.js"),pr=Ct.createCombo,mr=Ct.createSpeedDial,br=Ct.registerControl,gr=Ct.createForm,hr=Ct.createFormGroup,_r=Ct.enhanceForm;var vr=Ct.default;export{pr as createCombo,gr as createForm,hr as createFormGroup,mr as createSpeedDial,vr as default,_r as enhanceForm,br as registerControl};
|
|
1830
1855
|
|
|
1831
1856
|
//# sourceMappingURL=form.esm.min.js.map
|