@toclocoinc/lattice-grid 1.99.0 → 1.99.1
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 +12 -0
- package/README.md +83 -14
- package/angular/package.json +1 -1
- package/docs/API.html +4 -4
- package/docs/api/adapters.html +1 -1
- package/docs/api/ai.html +1 -1
- package/docs/api/alarms.html +1 -1
- package/docs/api/calendar.html +1 -1
- package/docs/api/charts.html +1 -1
- package/docs/api/dashboard.html +1 -1
- package/docs/api/data-router.html +1 -1
- package/docs/api/deckgl.html +1 -1
- package/docs/api/designer.html +1 -1
- package/docs/api/form.html +1 -1
- package/docs/api/gantt.html +1 -1
- package/docs/api/geometry.html +1 -1
- package/docs/api/grid.html +2 -2
- package/docs/api/index.html +1 -1
- package/docs/api/kanban.html +1 -1
- package/docs/api/kpi.html +1 -1
- package/docs/api/layout.html +1 -1
- package/docs/api/leaflet.html +1 -1
- package/docs/api/list.html +1 -1
- package/docs/api/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 +4 -4
- package/docs/warnings.json +1 -1
- package/lattice-grid.d.ts +1 -1
- package/lattice-grid.esm.min.js +2 -2
- package/lattice-grid.min.cjs +2 -2
- package/lattice-grid.min.js +2 -2
- package/locales/all.d.ts +1 -1
- package/locales/all.esm.min.js +1 -1
- package/locales/all.min.cjs +1 -1
- package/locales/all.min.js +1 -1
- package/locales/ar.d.ts +1 -1
- package/locales/ar.esm.min.js +1 -1
- package/locales/ar.min.cjs +1 -1
- package/locales/ar.min.js +1 -1
- package/locales/cs-CZ.d.ts +1 -1
- package/locales/cs-CZ.esm.min.js +1 -1
- package/locales/cs-CZ.min.cjs +1 -1
- package/locales/cs-CZ.min.js +1 -1
- package/locales/da-DK.d.ts +1 -1
- package/locales/da-DK.esm.min.js +1 -1
- package/locales/da-DK.min.cjs +1 -1
- package/locales/da-DK.min.js +1 -1
- package/locales/de-DE.d.ts +1 -1
- package/locales/de-DE.esm.min.js +1 -1
- package/locales/de-DE.min.cjs +1 -1
- package/locales/de-DE.min.js +1 -1
- package/locales/el-GR.d.ts +1 -1
- package/locales/el-GR.esm.min.js +1 -1
- package/locales/el-GR.min.cjs +1 -1
- package/locales/el-GR.min.js +1 -1
- package/locales/en-US.d.ts +1 -1
- package/locales/en-US.esm.min.js +1 -1
- package/locales/en-US.min.cjs +1 -1
- package/locales/en-US.min.js +1 -1
- package/locales/es-ES.d.ts +1 -1
- package/locales/es-ES.esm.min.js +1 -1
- package/locales/es-ES.min.cjs +1 -1
- package/locales/es-ES.min.js +1 -1
- package/locales/fi-FI.d.ts +1 -1
- package/locales/fi-FI.esm.min.js +1 -1
- package/locales/fi-FI.min.cjs +1 -1
- package/locales/fi-FI.min.js +1 -1
- package/locales/fr-CA.d.ts +1 -1
- package/locales/fr-CA.esm.min.js +1 -1
- package/locales/fr-CA.min.cjs +1 -1
- package/locales/fr-CA.min.js +1 -1
- package/locales/fr-FR.d.ts +1 -1
- package/locales/fr-FR.esm.min.js +1 -1
- package/locales/fr-FR.min.cjs +1 -1
- package/locales/fr-FR.min.js +1 -1
- package/locales/hu-HU.d.ts +1 -1
- package/locales/hu-HU.esm.min.js +1 -1
- package/locales/hu-HU.min.cjs +1 -1
- package/locales/hu-HU.min.js +1 -1
- package/locales/it-IT.d.ts +1 -1
- package/locales/it-IT.esm.min.js +1 -1
- package/locales/it-IT.min.cjs +1 -1
- package/locales/it-IT.min.js +1 -1
- package/locales/ja-JP.d.ts +1 -1
- package/locales/ja-JP.esm.min.js +1 -1
- package/locales/ja-JP.min.cjs +1 -1
- package/locales/ja-JP.min.js +1 -1
- package/locales/nb-NO.d.ts +1 -1
- package/locales/nb-NO.esm.min.js +1 -1
- package/locales/nb-NO.min.cjs +1 -1
- package/locales/nb-NO.min.js +1 -1
- package/locales/nl-NL.d.ts +1 -1
- package/locales/nl-NL.esm.min.js +1 -1
- package/locales/nl-NL.min.cjs +1 -1
- package/locales/nl-NL.min.js +1 -1
- package/locales/pl-PL.d.ts +1 -1
- package/locales/pl-PL.esm.min.js +1 -1
- package/locales/pl-PL.min.cjs +1 -1
- package/locales/pl-PL.min.js +1 -1
- package/locales/pt-BR.d.ts +1 -1
- package/locales/pt-BR.esm.min.js +1 -1
- package/locales/pt-BR.min.cjs +1 -1
- package/locales/pt-BR.min.js +1 -1
- package/locales/ro-RO.d.ts +1 -1
- package/locales/ro-RO.esm.min.js +1 -1
- package/locales/ro-RO.min.cjs +1 -1
- package/locales/ro-RO.min.js +1 -1
- package/locales/sv-SE.d.ts +1 -1
- package/locales/sv-SE.esm.min.js +1 -1
- package/locales/sv-SE.min.cjs +1 -1
- package/locales/sv-SE.min.js +1 -1
- package/locales/uk-UA.d.ts +1 -1
- package/locales/uk-UA.esm.min.js +1 -1
- package/locales/uk-UA.min.cjs +1 -1
- package/locales/uk-UA.min.js +1 -1
- package/modules/ai.d.ts +1 -1
- package/modules/ai.esm.min.js +1 -1
- package/modules/ai.min.cjs +1 -1
- package/modules/ai.min.js +1 -1
- package/modules/alarms.d.ts +1 -1
- package/modules/alarms.esm.min.js +1 -1
- package/modules/alarms.min.cjs +1 -1
- package/modules/alarms.min.js +1 -1
- package/modules/angular.d.ts +1 -1
- package/modules/angular.esm.min.js +1 -1
- package/modules/angular.min.cjs +1 -1
- package/modules/angular.min.js +1 -1
- package/modules/calendar.d.ts +1 -1
- package/modules/calendar.esm.min.js +1 -1
- package/modules/calendar.min.cjs +1 -1
- package/modules/calendar.min.js +1 -1
- package/modules/chart-alluvial.d.ts +1 -1
- package/modules/chart-alluvial.esm.min.js +1 -1
- package/modules/chart-alluvial.min.cjs +1 -1
- package/modules/chart-alluvial.min.js +1 -1
- package/modules/chart-arc.d.ts +1 -1
- package/modules/chart-arc.esm.min.js +1 -1
- package/modules/chart-arc.min.cjs +1 -1
- package/modules/chart-arc.min.js +1 -1
- package/modules/chart-barrace.d.ts +1 -1
- package/modules/chart-barrace.esm.min.js +1 -1
- package/modules/chart-barrace.min.cjs +1 -1
- package/modules/chart-barrace.min.js +1 -1
- package/modules/chart-bubblemap.d.ts +1 -1
- package/modules/chart-bubblemap.esm.min.js +1 -1
- package/modules/chart-bubblemap.min.cjs +1 -1
- package/modules/chart-bubblemap.min.js +1 -1
- package/modules/chart-bump.d.ts +1 -1
- package/modules/chart-bump.esm.min.js +1 -1
- package/modules/chart-bump.min.cjs +1 -1
- package/modules/chart-bump.min.js +1 -1
- package/modules/chart-calendar.d.ts +1 -1
- package/modules/chart-calendar.esm.min.js +1 -1
- package/modules/chart-calendar.min.cjs +1 -1
- package/modules/chart-calendar.min.js +1 -1
- package/modules/chart-choropleth.d.ts +1 -1
- package/modules/chart-choropleth.esm.min.js +1 -1
- package/modules/chart-choropleth.min.cjs +1 -1
- package/modules/chart-choropleth.min.js +1 -1
- package/modules/chart-decomposition.d.ts +1 -1
- package/modules/chart-decomposition.esm.min.js +1 -1
- package/modules/chart-decomposition.min.cjs +1 -1
- package/modules/chart-decomposition.min.js +1 -1
- package/modules/chart-diverging.d.ts +1 -1
- package/modules/chart-diverging.esm.min.js +1 -1
- package/modules/chart-diverging.min.cjs +1 -1
- package/modules/chart-diverging.min.js +1 -1
- package/modules/chart-dumbbell.d.ts +1 -1
- package/modules/chart-dumbbell.esm.min.js +1 -1
- package/modules/chart-dumbbell.min.cjs +1 -1
- package/modules/chart-dumbbell.min.js +1 -1
- package/modules/chart-fan.d.ts +1 -1
- package/modules/chart-fan.esm.min.js +1 -1
- package/modules/chart-fan.min.cjs +1 -1
- package/modules/chart-fan.min.js +1 -1
- package/modules/chart-forcetree.d.ts +1 -1
- package/modules/chart-forcetree.esm.min.js +1 -1
- package/modules/chart-forcetree.min.cjs +1 -1
- package/modules/chart-forcetree.min.js +1 -1
- package/modules/chart-hexbin.d.ts +1 -1
- package/modules/chart-hexbin.esm.min.js +1 -1
- package/modules/chart-hexbin.min.cjs +1 -1
- package/modules/chart-hexbin.min.js +1 -1
- package/modules/chart-hexmap.d.ts +1 -1
- package/modules/chart-hexmap.esm.min.js +1 -1
- package/modules/chart-hexmap.min.cjs +1 -1
- package/modules/chart-hexmap.min.js +1 -1
- package/modules/chart-icicle.d.ts +1 -1
- package/modules/chart-icicle.esm.min.js +1 -1
- package/modules/chart-icicle.min.cjs +1 -1
- package/modules/chart-icicle.min.js +1 -1
- package/modules/chart-markermap.d.ts +1 -1
- package/modules/chart-markermap.esm.min.js +1 -1
- package/modules/chart-markermap.min.cjs +1 -1
- package/modules/chart-markermap.min.js +1 -1
- package/modules/chart-motion.d.ts +1 -1
- package/modules/chart-motion.esm.min.js +1 -1
- package/modules/chart-motion.min.cjs +1 -1
- package/modules/chart-motion.min.js +1 -1
- package/modules/chart-pack.d.ts +1 -1
- package/modules/chart-pack.esm.min.js +1 -1
- package/modules/chart-pack.min.cjs +1 -1
- package/modules/chart-pack.min.js +1 -1
- package/modules/chart-parallel.d.ts +1 -1
- package/modules/chart-parallel.esm.min.js +1 -1
- package/modules/chart-parallel.min.cjs +1 -1
- package/modules/chart-parallel.min.js +1 -1
- package/modules/chart-pictorial.d.ts +1 -1
- package/modules/chart-pictorial.esm.min.js +1 -1
- package/modules/chart-pictorial.min.cjs +1 -1
- package/modules/chart-pictorial.min.js +1 -1
- package/modules/chart-polararea.d.ts +1 -1
- package/modules/chart-polararea.esm.min.js +1 -1
- package/modules/chart-polararea.min.cjs +1 -1
- package/modules/chart-polararea.min.js +1 -1
- package/modules/chart-polarscatter.d.ts +1 -1
- package/modules/chart-polarscatter.esm.min.js +1 -1
- package/modules/chart-polarscatter.min.cjs +1 -1
- package/modules/chart-polarscatter.min.js +1 -1
- package/modules/chart-pyramid.d.ts +1 -1
- package/modules/chart-pyramid.esm.min.js +1 -1
- package/modules/chart-pyramid.min.cjs +1 -1
- package/modules/chart-pyramid.min.js +1 -1
- package/modules/chart-radialbar.d.ts +1 -1
- package/modules/chart-radialbar.esm.min.js +1 -1
- package/modules/chart-radialbar.min.cjs +1 -1
- package/modules/chart-radialbar.min.js +1 -1
- package/modules/chart-ridgeline.d.ts +1 -1
- package/modules/chart-ridgeline.esm.min.js +1 -1
- package/modules/chart-ridgeline.min.cjs +1 -1
- package/modules/chart-ridgeline.min.js +1 -1
- package/modules/chart-roc.d.ts +1 -1
- package/modules/chart-roc.esm.min.js +1 -1
- package/modules/chart-roc.min.cjs +1 -1
- package/modules/chart-roc.min.js +1 -1
- package/modules/chart-scatter3d.d.ts +1 -1
- package/modules/chart-scatter3d.esm.min.js +1 -1
- package/modules/chart-scatter3d.min.cjs +1 -1
- package/modules/chart-scatter3d.min.js +1 -1
- package/modules/chart-serpentine.d.ts +1 -1
- package/modules/chart-serpentine.esm.min.js +1 -1
- package/modules/chart-serpentine.min.cjs +1 -1
- package/modules/chart-serpentine.min.js +1 -1
- package/modules/chart-slope.d.ts +1 -1
- package/modules/chart-slope.esm.min.js +1 -1
- package/modules/chart-slope.min.cjs +1 -1
- package/modules/chart-slope.min.js +1 -1
- package/modules/chart-spiral.d.ts +1 -1
- package/modules/chart-spiral.esm.min.js +1 -1
- package/modules/chart-spiral.min.cjs +1 -1
- package/modules/chart-spiral.min.js +1 -1
- package/modules/chart-splom.d.ts +1 -1
- package/modules/chart-splom.esm.min.js +1 -1
- package/modules/chart-splom.min.cjs +1 -1
- package/modules/chart-splom.min.js +1 -1
- package/modules/chart-tree.d.ts +1 -1
- package/modules/chart-tree.esm.min.js +1 -1
- package/modules/chart-tree.min.cjs +1 -1
- package/modules/chart-tree.min.js +1 -1
- package/modules/chart-venn.d.ts +1 -1
- package/modules/chart-venn.esm.min.js +1 -1
- package/modules/chart-venn.min.cjs +1 -1
- package/modules/chart-venn.min.js +1 -1
- package/modules/chart-voronoi.d.ts +1 -1
- package/modules/chart-voronoi.esm.min.js +1 -1
- package/modules/chart-voronoi.min.cjs +1 -1
- package/modules/chart-voronoi.min.js +1 -1
- package/modules/chart-waffle.d.ts +1 -1
- package/modules/chart-waffle.esm.min.js +1 -1
- package/modules/chart-waffle.min.cjs +1 -1
- package/modules/chart-waffle.min.js +1 -1
- package/modules/chart-wordcloud.d.ts +1 -1
- package/modules/chart-wordcloud.esm.min.js +1 -1
- package/modules/chart-wordcloud.min.cjs +1 -1
- package/modules/chart-wordcloud.min.js +1 -1
- package/modules/charts.d.ts +1 -1
- package/modules/charts.esm.min.js +1 -1
- package/modules/charts.min.cjs +1 -1
- package/modules/charts.min.js +1 -1
- package/modules/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 +1 -1
- package/modules/form.esm.min.js +17 -14
- package/modules/form.esm.min.js.map +2 -2
- package/modules/form.min.cjs +17 -14
- package/modules/form.min.js +17 -14
- 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 +9 -2
package/modules/form.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Lattice Grid 1.99.
|
|
2
|
+
* Lattice Grid 1.99.1, form module
|
|
3
3
|
* Copyright (c) 2026 TOCLOCO Inc. All rights reserved.
|
|
4
4
|
* https://latticegrid.dev
|
|
5
5
|
*/
|
|
6
|
-
(function(Tt){"use strict";var cr=!0,At=Object.create(null),$t=Object.create(null);function ge(
|
|
6
|
+
(function(Tt){"use strict";var cr=!0,At=Object.create(null),$t=Object.create(null);function ge(B,q){At[B]=q}function St(B){var q=$t[B];if(q)return q;var n=Object.create(null);$t[B]=n;var z=At[B];if(!z)throw new Error("[lattice] missing module: "+B);return z(n,St),n}ge("packages/modules/form/styles.js",function(B,q){"use strict";Object.defineProperty(B,"NS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(B,"css",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"injectStyles",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"injectColsBreakpoint",{enumerable:!0,get:function(){return l}});const n="lat-form",z="data-lattice-form-styles";function h(){return`
|
|
7
7
|
.${n}{
|
|
8
8
|
--lattice-density-scale:1;
|
|
9
9
|
--lattice-presentation-scale:1;
|
|
@@ -117,10 +117,12 @@
|
|
|
117
117
|
display:block; box-sizing:border-box; color:var(--lattice-foreground-muted);
|
|
118
118
|
font-size:calc(var(--lattice-font-size) - 2px); margin-top:calc(var(--lattice-space) / 2);
|
|
119
119
|
}
|
|
120
|
+
.${n}__pre[hidden]{ display:none; }
|
|
120
121
|
.${n}__validation{
|
|
121
122
|
display:block; box-sizing:border-box; font-size:calc(var(--lattice-font-size) - 2px);
|
|
122
123
|
margin-top:calc(var(--lattice-space) / 2);
|
|
123
124
|
}
|
|
125
|
+
.${n}__validation[hidden]{ display:none; }
|
|
124
126
|
.${n}__validation--error{ color:var(--lattice-danger); }
|
|
125
127
|
.${n}__validation--success{ color:var(--lattice-success); }
|
|
126
128
|
.${n}__control input[aria-invalid='true'],
|
|
@@ -492,6 +494,7 @@
|
|
|
492
494
|
.${n}__error{
|
|
493
495
|
display:block; box-sizing:border-box; color:var(--lattice-danger);
|
|
494
496
|
font-size:calc(var(--lattice-font-size) - 2px); margin-top:calc(var(--lattice-space) / 2);
|
|
497
|
+
min-width:0; max-width:100%;
|
|
495
498
|
}
|
|
496
499
|
.${n}__item[data-required='true'] .${n}__label::after{
|
|
497
500
|
content:' *'; color:var(--lattice-danger);
|
|
@@ -808,13 +811,13 @@
|
|
|
808
811
|
background:var(--lattice-readonly-background); border-color:var(--lattice-readonly-border);
|
|
809
812
|
}
|
|
810
813
|
.${n}__otp[aria-invalid='true'] .${n}__otp-input{ border-color:var(--lattice-danger); }
|
|
811
|
-
`.trim()}function Q(L){const E=L&&L.documentElement;if(!E||E.getAttribute(z))return;E.setAttribute(z,"1");const f=L.createElement("style");f.textContent=h(),(L.head||L.body||E).appendChild(f)}function l(L,E){const f=`lat-cols-bp-${String(E).replace(/[^0-9]/g,"")}`,P=`data-lattice-cols-breakpoint-${f}`,C=L&&L.documentElement;if(C&&!C.querySelector(`style[${P}]`)){const c=L.createElement("style");c.setAttribute(P,"1"),c.textContent=`@container ${f} (max-width:${E}px){.${n}__cols > *{flex:1 1 100%}}`,(L.head||L.body||C).appendChild(c)}return f}}),ge("packages/modules/form/controls/registry.js",function(D,q){"use strict";Object.defineProperty(D,"registerControl",{enumerable:!0,get:function(){return z}}),Object.defineProperty(D,"resolveControl",{enumerable:!0,get:function(){return h}}),Object.defineProperty(D,"controlTypes",{enumerable:!0,get:function(){return Q}});const n=new Map;function z(l,L){n.set(l,L)}function h(l){return n.get(l)||null}function Q(){return[...n.keys()]}}),ge("packages/modules/form/validation.js",function(D,q){"use strict";Object.defineProperty(D,"VALIDATION_MODES",{enumerable:!0,get:function(){return n}}),Object.defineProperty(D,"BUILTIN_RULES",{enumerable:!0,get:function(){return z}}),Object.defineProperty(D,"isEmpty",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(D,"resolveValidationMode",{enumerable:!0,get:function(){return l}}),Object.defineProperty(D,"validateValue",{enumerable:!0,get:function(){return C}}),Object.defineProperty(D,"normalizeHookResult",{enumerable:!0,get:function(){return c}});const n=Object.freeze(["change","blur","submit"]),z=Object.freeze(["email","number","integer","url"]),h=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Q(d){return d==null||d===""||d===!1||Array.isArray(d)&&d.length===0}function l(d){return n.includes(d)?d:"submit"}function L(d){return Object.prototype.toString.call(d)==="[object RegExp]"}function E(d,p){if(d==="email")return typeof p=="string"&&h.test(p);if(d==="number")return Number.isFinite(Number(p));if(d==="integer")return typeof p=="number"?Number.isInteger(p):typeof p=="string"&&/^-?\d+$/.test(p);if(d==="url"){if(typeof p!="string")return!1;try{const M=new URL(p);return M.protocol==="http:"||M.protocol==="https:"}catch{return!1}}return!0}function f(d,p){return typeof d.errorMessage=="string"&&d.errorMessage!==""?d.errorMessage:p}function P(d,p,M,w){let e;try{e=d(p,M)}catch{return{code:"custom",message:f(M,w("form.validation.custom"))}}return e===!0||e===void 0||e===null?null:e===!1?{code:"custom",message:f(M,w("form.validation.custom"))}:{code:"custom",message:String(e)}}function C(d,p,M){if(d.required===!0&&Q(p))return{code:"required",message:f(d,M("form.validation.required"))};const w=d.validation;return w==null?null:typeof w=="function"?P(w,p,d,M):L(w)?Q(p)||w.test(String(p))?null:{code:"pattern",message:f(d,M("form.validation.pattern"))}:typeof w=="string"&&z.includes(w)?Q(p)||E(w,p)?null:{code:w,message:f(d,M(`form.validation.${w}`))}:null}function c(d,p,M){return d==null||d===!0?null:d===!1?{code:"custom",message:f(p,M("form.validation.custom"))}:typeof d=="string"?{code:"custom",message:d}:typeof d=="object"?{code:d.code||"custom",message:d.message!=null?String(d.message):f(p,M("form.validation.custom"))}:null}}),ge("packages/modules/form/model.js",function(D,q){"use strict";Object.defineProperty(D,"isEmpty",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(D,"DENSITIES",{enumerable:!0,get:function(){return l}}),Object.defineProperty(D,"CONTROL_TYPES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(D,"cssSize",{enumerable:!0,get:function(){return E}}),Object.defineProperty(D,"resolveLabelPosition",{enumerable:!0,get:function(){return f}}),Object.defineProperty(D,"resolveDensity",{enumerable:!0,get:function(){return P}}),Object.defineProperty(D,"resolveColsBreakpoint",{enumerable:!0,get:function(){return C}}),Object.defineProperty(D,"axisOf",{enumerable:!0,get:function(){return c}}),Object.defineProperty(D,"normalizeItem",{enumerable:!0,get:function(){return d}}),Object.defineProperty(D,"normalizeBlock",{enumerable:!0,get:function(){return p}}),Object.defineProperty(D,"resolveConfig",{enumerable:!0,get:function(){return M}});const z=q("packages/modules/form/validation.js").resolveValidationMode;function h(e){return e!==null&&typeof e=="object"}function Q(e){return!!(e==null||e===""||e===!1||Array.isArray(e)&&e.length===0)}const l=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"]);function E(e){return typeof e=="number"?`${e}px`:String(e)}function f(e){return e==="left"||e==="hidden"?e:"top"}function P(e){return l.includes(e)?e:"standard"}function C(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:480}function c(e){return Array.isArray(e.items)&&e.items.length?"items":Array.isArray(e.rows)&&e.rows.length?"rows":Array.isArray(e.cols)&&e.cols.length?"cols":null}function d(e,m){const S=e.text!=null&&e.type===void 0,O=S?"text":e.type!=null&&e.type!==""?String(e.type):"input",H=S?e.text:e.value,v={kind:"item",name:e.name!=null&&e.name!==""?String(e.name):null,type:O,label:e.label,labelPosition:e.labelPosition==null?null:f(e.labelPosition),labelWidth:e.labelWidth,requiredHint:e.requiredHint,width:e.width,placeholder:e.placeholder,helpMessage:e.helpMessage,hidden:e.hidden===!0,disabled:e.disabled===!0,readOnly:e.readOnly===!0,tooltip:e.tooltip,lockIcon:e.lockIcon,addons:e.addons,value:H,subtype:e.subtype,step:e.step,min:e.min,max:e.max,rows:e.rows,options:e.options,mode:e.mode,locale:e.locale,timeZone:e.timeZone,css:e.css,visibleWhen:e.visibleWhen,readOnlyWhen:e.readOnlyWhen,requiredWhen:e.requiredWhen,required:e.required===!0,validation:e.validation,errorMessage:e.errorMessage,successMessage:e.successMessage,preMessage:e.preMessage,validationMode:z(e.validationMode),props:{},path:m};for(const t of Object.keys(e))!(t in v)&&t!=="text"&&t!=="value"&&t!=="type"&&(v.props[t]=e[t]);return v}function p(e,m){if(!h(e))return null;if(e.fieldset!=null){const O=h(e.fieldset)?e.fieldset:e,H=h(e.fieldset)?e.fieldset.legend:e.fieldset,v=c(O),t=v==="items"?O.items:v==="rows"?O.rows:v==="cols"?O.cols:[];return{kind:"fieldset",legend:H==null?null:String(H),axis:v,spacing:O.spacing==null?null:E(O.spacing),labelPosition:O.labelPosition==null?null:f(O.labelPosition),labelWidth:O.labelWidth,blocks:t.filter(h).map((y,a)=>p(y,`${m}/${a}`)).filter(Boolean),css:O.css,hidden:O.hidden===!0}}if(e.container!=null){const O=h(e.container)?e.container:e,H=c(O),v=H==="items"?O.items:H==="rows"?O.rows:H==="cols"?O.cols:[];return{kind:"container",axis:H,spacing:O.spacing==null?null:E(O.spacing),labelPosition:O.labelPosition==null?null:f(O.labelPosition),labelWidth:O.labelWidth,blocks:v.filter(h).map((t,y)=>p(t,`${m}/${y}`)).filter(Boolean),css:O.css,hidden:O.hidden===!0}}if(e.panel!=null){const O=h(e.panel)?e.panel:{},H=h(e.panel)&&c(e.panel)?e.panel:e,v=c(H),t=v==="items"?H.items:v==="rows"?H.rows:v==="cols"?H.cols:[],y=Array.isArray(O.actions)?O.actions.filter(h).map(a=>({icon:a.icon,ariaLabel:a.ariaLabel!=null&&a.ariaLabel!==""?String(a.ariaLabel):null,onClick:typeof a.onClick=="function"?a.onClick:null})):[];return{kind:"panel",title:O.title!=null&&O.title!==""?String(O.title):null,subtitle:O.subtitle!=null&&O.subtitle!==""?String(O.subtitle):null,actions:y,collapsible:O.collapsible===!0,axis:v,spacing:H.spacing==null?null:E(H.spacing),labelPosition:H.labelPosition==null?null:f(H.labelPosition),labelWidth:H.labelWidth,blocks:t.filter(h).map((a,i)=>p(a,`${m}/${i}`)).filter(Boolean),css:H.css,hidden:H.hidden===!0}}const S=c(e);if(S){const O=S==="items"?e.items:S==="rows"?e.rows:e.cols;return{kind:"container",axis:S,spacing:e.spacing==null?null:E(e.spacing),labelPosition:e.labelPosition==null?null:f(e.labelPosition),labelWidth:e.labelWidth,blocks:O.filter(h).map((H,v)=>p(H,`${m}/${v}`)).filter(Boolean),css:e.css,hidden:e.hidden===!0}}return e.spacer===!0||e.type==="spacer"?{kind:"spacer",css:e.css,hidden:e.hidden===!0}:e.separator===!0||e.type==="separator"?{kind:"separator",label:e.label!=null&&e.label!==""?String(e.label):null,css:e.css,hidden:e.hidden===!0}:d(e,m)}function M(e={}){const m=h(e)?e:{},S=Array.isArray(m.steps)?m.steps.filter(h).map((a,i)=>w(a,i)).filter(Boolean):[],O=S.length>0,H=!O&&Array.isArray(m.rows)&&m.rows.length,v=!O&&!H&&Array.isArray(m.cols)&&m.cols.length,t=H||O?"rows":"cols",y=O?[]:H?m.rows:v?m.cols:[];return{axis:t,density:P(m.density),css:m.css,messages:m.messages,colsBreakpoint:C(m.colsBreakpoint),spacing:m.spacing==null?null:E(m.spacing),labelGap:m.labelGap==null?null:E(m.labelGap),labelPosition:m.labelPosition==null?null:f(m.labelPosition),labelWidth:m.labelWidth,requiredHint:m.requiredHint,blocks:y.filter(h).map((a,i)=>p(a,String(i))).filter(Boolean),steps:S,stepOrientation:m.stepOrientation==="vertical"?"vertical":"horizontal"}}function w(e,m){const O=(Array.isArray(e.rows)?e.rows:[]).filter(h).map((H,v)=>p(H,`step${m}/${v}`)).filter(Boolean);return O.length===0?null:{id:e.id!=null&&e.id!==""?String(e.id):`step-${m}`,label:e.label!=null?String(e.label):null,axis:"rows",blocks:O,css:e.css}}}),ge("packages/modules/form/state.js",function(D,q){"use strict";Object.defineProperty(D,"applyBooleanInputState",{enumerable:!0,get:function(){return n}}),Object.defineProperty(D,"guardBooleanInput",{enumerable:!0,get:function(){return z}}),Object.defineProperty(D,"syncRootAria",{enumerable:!0,get:function(){return h}}),Object.defineProperty(D,"syncRecordState",{enumerable:!0,get:function(){return Q}});function n(l,L,E){l.disabled=L===!0,l.__latReadOnly=E===!0,E===!0?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly")}function z(l){const L=()=>l.__latReadOnly===!0,E=c=>{L()&&c.preventDefault()},f=c=>{L()&&(c.preventDefault(),c.stopPropagation())},P=c=>{L()&&(c.key===" "||c.key==="Enter")&&c.preventDefault()},C=c=>{L()&&c.key===" "&&c.preventDefault()};l.addEventListener("pointerdown",E),l.addEventListener("click",f),l.addEventListener("keydown",P),l.addEventListener("keyup",C)}function h(l,L,E){L?l.setAttribute("aria-disabled","true"):l.removeAttribute("aria-disabled"),E?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly")}function Q(l){const L=l.item,E=L.disabled===!0,f=L.readOnly===!0||l.ruleReadOnly===!0;l.controlWrap&&(l.controlWrap.setAttribute("data-disabled",E?"true":"false"),l.controlWrap.setAttribute("data-readonly",f?"true":"false")),l.def.state(l.control,{...L,readOnly:f}),typeof l.syncLock=="function"&&l.syncLock(),typeof l.syncAddons=="function"&&l.syncAddons()}}),ge("packages/modules/form/rules.js",function(D,q){"use strict";Object.defineProperty(D,"evalRule",{enumerable:!0,get:function(){return l}}),Object.defineProperty(D,"applyRules",{enumerable:!0,get:function(){return L}});const z=q("packages/modules/form/model.js").isEmpty,Q=q("packages/modules/form/state.js").syncRecordState;function l(f,P){if(f==null)return null;if(typeof f=="function")return!!f(P);if(typeof f=="boolean")return f;if(typeof f=="object"){const C=f.name!=null?P[f.name]:void 0;if(typeof f.fn=="function")return!!f.fn(C,P);let c=!0,d=!1;return Object.prototype.hasOwnProperty.call(f,"equals")&&(d=!0,c=c&&C===f.equals),Object.prototype.hasOwnProperty.call(f,"in")&&(d=!0,c=c&&Array.isArray(f.in)&&f.in.includes(C)),Object.prototype.hasOwnProperty.call(f,"empty")&&(d=!0,c=c&&z(C)===!!f.empty),d?c:!1}return!1}function L(f){const P={};for(const C of f.order)C.item.name!=null&&(P[C.item.name]=C.value);for(const C of f.order){const c=C.item;C.ruleHidden=l(c.visibleWhen,P)===!1,C.ruleReadOnly=l(c.readOnlyWhen,P)===!0,C.ruleRequired=l(c.requiredWhen,P)===!0,C.el.hidden=C.hidden||C.ruleHidden,Q(C);const d=c.required===!0||C.ruleRequired,p=C.labelEl!=null&&C.labelPosition!=="hidden",M=C.placeholderEl||C.control;d?M.setAttribute("aria-required","true"):M.removeAttribute("aria-required"),d&&p?C.el.setAttribute("data-required","true"):C.el.removeAttribute("data-required"),E(C,d,p,w=>f.t(w))}}function E(f,P,C,c){const d=f.placeholderEl;if(!d)return;const p=f.placeholderBase;if(P&&!C&&p!==""){const M=f.requiredHint,w=M===!1?"":typeof M=="string"?c(M):" *";d.placeholder=p+w}else d.placeholder=p}}),ge("packages/modules/form/stepper.js",function(D,q){"use strict";Object.defineProperty(D,"createStepper",{enumerable:!0,get:function(){return Q}});const z=q("packages/modules/form/styles.js").NS;function h(l,L,E){return Math.min(E,Math.max(L,l))}function Q(l,L){const E=L.doc,f=L.steps||[],P=L.t||(v=>v),C=L.orientation==="vertical"?"vertical":"horizontal";let c=h(Number(L.active)||0,0,Math.max(0,f.length-1));const d=[];l.className=`${z}__stepper ${z}__stepper--${C}`,l.setAttribute("data-orientation",C),l.setAttribute("role","navigation"),l.setAttribute("aria-label",P("form.steps"));const p=E.createElement("ol");p.className=`${z}__stepper-list`,p.setAttribute("role","tablist"),p.setAttribute("aria-orientation",C),l.appendChild(p);let M=[];const w=v=>d[v]?d[v]:v<c?"complete":v===c?"active":"pending",e=v=>v<=c+1,m=()=>{p.textContent="",M=f.map((v,t)=>{const y=w(t),a=E.createElement("li");a.className=`${z}__stepper-item is-${y}`+(t===c?" is-active":"")+(e(t)?"":" is-locked");const i=E.createElement("button");i.type="button",i.className=`${z}__stepper-step`,i.setAttribute("role","tab"),i.setAttribute("aria-selected",t===c?"true":"false"),t===c&&i.setAttribute("aria-current","step"),i.tabIndex=t===c?0:-1,i.setAttribute("aria-disabled",e(t)?"false":"true");const r=E.createElement("span");r.className=`${z}__stepper-marker`,r.setAttribute("aria-hidden","true"),r.textContent=y==="complete"?"✓":y==="error"?"!":String(t+1),i.appendChild(r);const _=E.createElement("span");return _.className=`${z}__stepper-label`,_.textContent=v.label!=null&&v.label!==""?v.label:`${P("form.step")} ${t+1}`,i.appendChild(_),a.appendChild(i),p.appendChild(a),i})},S=v=>{typeof L.onGoTo=="function"&&e(v)&&L.onGoTo(v)},O=v=>{const t=v.target&&v.target.closest?v.target.closest(`.${z}__stepper-step`):null;if(!t||!p.contains(t))return;const y=M.indexOf(t);y>=0&&S(y)},H=v=>{const t=v.target&&v.target.closest?v.target.closest(`.${z}__stepper-step`):null;if(!t||!p.contains(t))return;const y=f.length;let a=M.indexOf(t);if(a<0)return;if(v.key==="ArrowRight"||v.key==="ArrowDown")a=(a+1)%y;else if(v.key==="ArrowLeft"||v.key==="ArrowUp")a=(a-1+y)%y;else if(v.key==="Home")a=0;else if(v.key==="End")a=y-1;else if(v.key==="Enter"||v.key===" "){v.preventDefault(),S(a);return}else return;v.preventDefault();const i=M[a];i&&i.focus()};return p.addEventListener("click",O),p.addEventListener("keydown",H),m(),{el:l,setActive(v){c=h(Number(v)||0,0,Math.max(0,f.length-1)),m()},setStatus(v,t){d[v]=t,m()},statusOf:w}}}),ge("packages/core/src/internal/icon-builtins.js",function(D,q){"use strict";Object.defineProperty(D,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(D,"normaliseIcon",{enumerable:!0,get:function(){return z}});const n={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 z(h){return typeof h=="string"?{viewBox:"0 0 16 16",paths:[h],paint:"fill"}:Array.isArray(h)?{viewBox:"0 0 16 16",paths:h.slice(),paint:"fill"}:{viewBox:h&&h.viewBox||"0 0 16 16",paths:h&&Array.isArray(h.paths)?h.paths.slice():h&&h.path?[h.path]:[],paint:h&&h.paint==="stroke"?"stroke":"fill"}}}),ge("packages/modules/form/controls/field-icon.js",function(D,q){"use strict";Object.defineProperty(D,"fieldIconStylesheet",{enumerable:!0,get:function(){return l}}),Object.defineProperty(D,"injectFieldIconStyles",{enumerable:!0,get:function(){return L}}),Object.defineProperty(D,"makeFieldIcon",{enumerable:!0,get:function(){return E}});const z=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,h="http://www.w3.org/2000/svg",Q="data-lattice-form-field-icon-styles";function l(){return`
|
|
814
|
+
`.trim()}function Q(L){const E=L&&L.documentElement;if(!E||E.getAttribute(z))return;E.setAttribute(z,"1");const f=L.createElement("style");f.textContent=h(),(L.head||L.body||E).appendChild(f)}function l(L,E){const f=`lat-cols-bp-${String(E).replace(/[^0-9]/g,"")}`,P=`data-lattice-cols-breakpoint-${f}`,A=L&&L.documentElement;if(A&&!A.querySelector(`style[${P}]`)){const c=L.createElement("style");c.setAttribute(P,"1"),c.textContent=`@container ${f} (max-width:${E}px){.${n}__cols > *{flex:1 1 100%}}`,(L.head||L.body||A).appendChild(c)}return f}}),ge("packages/modules/form/controls/registry.js",function(B,q){"use strict";Object.defineProperty(B,"registerControl",{enumerable:!0,get:function(){return z}}),Object.defineProperty(B,"resolveControl",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"controlTypes",{enumerable:!0,get:function(){return Q}});const n=new Map;function z(l,L){n.set(l,L)}function h(l){return n.get(l)||null}function Q(){return[...n.keys()]}}),ge("packages/modules/form/validation.js",function(B,q){"use strict";Object.defineProperty(B,"VALIDATION_MODES",{enumerable:!0,get:function(){return n}}),Object.defineProperty(B,"BUILTIN_RULES",{enumerable:!0,get:function(){return z}}),Object.defineProperty(B,"isEmpty",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"resolveValidationMode",{enumerable:!0,get:function(){return l}}),Object.defineProperty(B,"validateValue",{enumerable:!0,get:function(){return A}}),Object.defineProperty(B,"normalizeHookResult",{enumerable:!0,get:function(){return c}});const n=Object.freeze(["change","blur","submit"]),z=Object.freeze(["email","number","integer","url"]),h=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Q(d){return d==null||d===""||d===!1||Array.isArray(d)&&d.length===0}function l(d){return n.includes(d)?d:"submit"}function L(d){return Object.prototype.toString.call(d)==="[object RegExp]"}function E(d,p){if(d==="email")return typeof p=="string"&&h.test(p);if(d==="number")return Number.isFinite(Number(p));if(d==="integer")return typeof p=="number"?Number.isInteger(p):typeof p=="string"&&/^-?\d+$/.test(p);if(d==="url"){if(typeof p!="string")return!1;try{const M=new URL(p);return M.protocol==="http:"||M.protocol==="https:"}catch{return!1}}return!0}function f(d,p){return typeof d.errorMessage=="string"&&d.errorMessage!==""?d.errorMessage:p}function P(d,p,M,C){let e;try{e=d(p,M)}catch{return{code:"custom",message:f(M,C("form.validation.custom"))}}return e===!0||e===void 0||e===null?null:e===!1?{code:"custom",message:f(M,C("form.validation.custom"))}:{code:"custom",message:String(e)}}function A(d,p,M){if(d.required===!0&&Q(p))return{code:"required",message:f(d,M("form.validation.required"))};const C=d.validation;return C==null?null:typeof C=="function"?P(C,p,d,M):L(C)?Q(p)||C.test(String(p))?null:{code:"pattern",message:f(d,M("form.validation.pattern"))}:typeof C=="string"&&z.includes(C)?Q(p)||E(C,p)?null:{code:C,message:f(d,M(`form.validation.${C}`))}:null}function c(d,p,M){return d==null||d===!0?null:d===!1?{code:"custom",message:f(p,M("form.validation.custom"))}:typeof d=="string"?{code:"custom",message:d}:typeof d=="object"?{code:d.code||"custom",message:d.message!=null?String(d.message):f(p,M("form.validation.custom"))}:null}}),ge("packages/modules/form/model.js",function(B,q){"use strict";Object.defineProperty(B,"isEmpty",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"DENSITIES",{enumerable:!0,get:function(){return l}}),Object.defineProperty(B,"CONTROL_TYPES",{enumerable:!0,get:function(){return L}}),Object.defineProperty(B,"cssSize",{enumerable:!0,get:function(){return E}}),Object.defineProperty(B,"resolveLabelPosition",{enumerable:!0,get:function(){return f}}),Object.defineProperty(B,"resolveDensity",{enumerable:!0,get:function(){return P}}),Object.defineProperty(B,"resolveColsBreakpoint",{enumerable:!0,get:function(){return A}}),Object.defineProperty(B,"axisOf",{enumerable:!0,get:function(){return c}}),Object.defineProperty(B,"normalizeItem",{enumerable:!0,get:function(){return d}}),Object.defineProperty(B,"normalizeBlock",{enumerable:!0,get:function(){return p}}),Object.defineProperty(B,"resolveConfig",{enumerable:!0,get:function(){return M}});const z=q("packages/modules/form/validation.js").resolveValidationMode;function h(e){return e!==null&&typeof e=="object"}function Q(e){return!!(e==null||e===""||e===!1||Array.isArray(e)&&e.length===0)}const l=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"]);function E(e){return typeof e=="number"?`${e}px`:String(e)}function f(e){return e==="left"||e==="hidden"?e:"top"}function P(e){return l.includes(e)?e:"standard"}function A(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:480}function c(e){return Array.isArray(e.items)&&e.items.length?"items":Array.isArray(e.rows)&&e.rows.length?"rows":Array.isArray(e.cols)&&e.cols.length?"cols":null}function d(e,m){const S=e.text!=null&&e.type===void 0,O=S?"text":e.type!=null&&e.type!==""?String(e.type):"input",H=S?e.text:e.value,v={kind:"item",name:e.name!=null&&e.name!==""?String(e.name):null,type:O,label:e.label,labelPosition:e.labelPosition==null?null:f(e.labelPosition),labelWidth:e.labelWidth,requiredHint:e.requiredHint,width:e.width,placeholder:e.placeholder,helpMessage:e.helpMessage,hidden:e.hidden===!0,disabled:e.disabled===!0,readOnly:e.readOnly===!0,tooltip:e.tooltip,lockIcon:e.lockIcon,addons:e.addons,value:H,subtype:e.subtype,step:e.step,min:e.min,max:e.max,rows:e.rows,options:e.options,mode:e.mode,locale:e.locale,timeZone:e.timeZone,css:e.css,visibleWhen:e.visibleWhen,readOnlyWhen:e.readOnlyWhen,requiredWhen:e.requiredWhen,required:e.required===!0,validation:e.validation,errorMessage:e.errorMessage,successMessage:e.successMessage,preMessage:e.preMessage,validationMode:z(e.validationMode),props:{},path:m};for(const t of Object.keys(e))!(t in v)&&t!=="text"&&t!=="value"&&t!=="type"&&(v.props[t]=e[t]);return v}function p(e,m){if(!h(e))return null;if(e.fieldset!=null){const O=h(e.fieldset)?e.fieldset:e,H=h(e.fieldset)?e.fieldset.legend:e.fieldset,v=c(O),t=v==="items"?O.items:v==="rows"?O.rows:v==="cols"?O.cols:[];return{kind:"fieldset",legend:H==null?null:String(H),axis:v,spacing:O.spacing==null?null:E(O.spacing),labelPosition:O.labelPosition==null?null:f(O.labelPosition),labelWidth:O.labelWidth,blocks:t.filter(h).map((y,a)=>p(y,`${m}/${a}`)).filter(Boolean),css:O.css,hidden:O.hidden===!0}}if(e.container!=null){const O=h(e.container)?e.container:e,H=c(O),v=H==="items"?O.items:H==="rows"?O.rows:H==="cols"?O.cols:[];return{kind:"container",axis:H,spacing:O.spacing==null?null:E(O.spacing),labelPosition:O.labelPosition==null?null:f(O.labelPosition),labelWidth:O.labelWidth,blocks:v.filter(h).map((t,y)=>p(t,`${m}/${y}`)).filter(Boolean),css:O.css,hidden:O.hidden===!0}}if(e.panel!=null){const O=h(e.panel)?e.panel:{},H=h(e.panel)&&c(e.panel)?e.panel:e,v=c(H),t=v==="items"?H.items:v==="rows"?H.rows:v==="cols"?H.cols:[],y=Array.isArray(O.actions)?O.actions.filter(h).map(a=>({icon:a.icon,ariaLabel:a.ariaLabel!=null&&a.ariaLabel!==""?String(a.ariaLabel):null,onClick:typeof a.onClick=="function"?a.onClick:null})):[];return{kind:"panel",title:O.title!=null&&O.title!==""?String(O.title):null,subtitle:O.subtitle!=null&&O.subtitle!==""?String(O.subtitle):null,actions:y,collapsible:O.collapsible===!0,axis:v,spacing:H.spacing==null?null:E(H.spacing),labelPosition:H.labelPosition==null?null:f(H.labelPosition),labelWidth:H.labelWidth,blocks:t.filter(h).map((a,i)=>p(a,`${m}/${i}`)).filter(Boolean),css:H.css,hidden:H.hidden===!0}}const S=c(e);if(S){const O=S==="items"?e.items:S==="rows"?e.rows:e.cols;return{kind:"container",axis:S,spacing:e.spacing==null?null:E(e.spacing),labelPosition:e.labelPosition==null?null:f(e.labelPosition),labelWidth:e.labelWidth,blocks:O.filter(h).map((H,v)=>p(H,`${m}/${v}`)).filter(Boolean),css:e.css,hidden:e.hidden===!0}}return e.spacer===!0||e.type==="spacer"?{kind:"spacer",css:e.css,hidden:e.hidden===!0}:e.separator===!0||e.type==="separator"?{kind:"separator",label:e.label!=null&&e.label!==""?String(e.label):null,css:e.css,hidden:e.hidden===!0}:d(e,m)}function M(e={}){const m=h(e)?e:{},S=Array.isArray(m.steps)?m.steps.filter(h).map((a,i)=>C(a,i)).filter(Boolean):[],O=S.length>0,H=!O&&Array.isArray(m.rows)&&m.rows.length,v=!O&&!H&&Array.isArray(m.cols)&&m.cols.length,t=H||O?"rows":"cols",y=O?[]:H?m.rows:v?m.cols:[];return{axis:t,density:P(m.density),css:m.css,messages:m.messages,colsBreakpoint:A(m.colsBreakpoint),spacing:m.spacing==null?null:E(m.spacing),labelGap:m.labelGap==null?null:E(m.labelGap),labelPosition:m.labelPosition==null?null:f(m.labelPosition),labelWidth:m.labelWidth,requiredHint:m.requiredHint,blocks:y.filter(h).map((a,i)=>p(a,String(i))).filter(Boolean),steps:S,stepOrientation:m.stepOrientation==="vertical"?"vertical":"horizontal"}}function C(e,m){const O=(Array.isArray(e.rows)?e.rows:[]).filter(h).map((H,v)=>p(H,`step${m}/${v}`)).filter(Boolean);return O.length===0?null:{id:e.id!=null&&e.id!==""?String(e.id):`step-${m}`,label:e.label!=null?String(e.label):null,axis:"rows",blocks:O,css:e.css}}}),ge("packages/modules/form/state.js",function(B,q){"use strict";Object.defineProperty(B,"applyBooleanInputState",{enumerable:!0,get:function(){return n}}),Object.defineProperty(B,"guardBooleanInput",{enumerable:!0,get:function(){return z}}),Object.defineProperty(B,"syncRootAria",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"syncRecordState",{enumerable:!0,get:function(){return Q}});function n(l,L,E){l.disabled=L===!0,l.__latReadOnly=E===!0,E===!0?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly")}function z(l){const L=()=>l.__latReadOnly===!0,E=c=>{L()&&c.preventDefault()},f=c=>{L()&&(c.preventDefault(),c.stopPropagation())},P=c=>{L()&&(c.key===" "||c.key==="Enter")&&c.preventDefault()},A=c=>{L()&&c.key===" "&&c.preventDefault()};l.addEventListener("pointerdown",E),l.addEventListener("click",f),l.addEventListener("keydown",P),l.addEventListener("keyup",A)}function h(l,L,E){L?l.setAttribute("aria-disabled","true"):l.removeAttribute("aria-disabled"),E?l.setAttribute("aria-readonly","true"):l.removeAttribute("aria-readonly")}function Q(l){const L=l.item,E=L.disabled===!0,f=L.readOnly===!0||l.ruleReadOnly===!0;l.controlWrap&&(l.controlWrap.setAttribute("data-disabled",E?"true":"false"),l.controlWrap.setAttribute("data-readonly",f?"true":"false")),l.def.state(l.control,{...L,readOnly:f}),typeof l.syncLock=="function"&&l.syncLock(),typeof l.syncAddons=="function"&&l.syncAddons()}}),ge("packages/modules/form/rules.js",function(B,q){"use strict";Object.defineProperty(B,"evalRule",{enumerable:!0,get:function(){return l}}),Object.defineProperty(B,"applyRules",{enumerable:!0,get:function(){return L}});const z=q("packages/modules/form/model.js").isEmpty,Q=q("packages/modules/form/state.js").syncRecordState;function l(f,P){if(f==null)return null;if(typeof f=="function")return!!f(P);if(typeof f=="boolean")return f;if(typeof f=="object"){const A=f.name!=null?P[f.name]:void 0;if(typeof f.fn=="function")return!!f.fn(A,P);let c=!0,d=!1;return Object.prototype.hasOwnProperty.call(f,"equals")&&(d=!0,c=c&&A===f.equals),Object.prototype.hasOwnProperty.call(f,"in")&&(d=!0,c=c&&Array.isArray(f.in)&&f.in.includes(A)),Object.prototype.hasOwnProperty.call(f,"empty")&&(d=!0,c=c&&z(A)===!!f.empty),d?c:!1}return!1}function L(f){const P={};for(const A of f.order)A.item.name!=null&&(P[A.item.name]=A.value);for(const A of f.order){const c=A.item;A.ruleHidden=l(c.visibleWhen,P)===!1,A.ruleReadOnly=l(c.readOnlyWhen,P)===!0,A.ruleRequired=l(c.requiredWhen,P)===!0,A.el.hidden=A.hidden||A.ruleHidden,Q(A);const d=c.required===!0||A.ruleRequired,p=A.labelEl!=null&&A.labelPosition!=="hidden",M=A.placeholderEl||A.control;d?M.setAttribute("aria-required","true"):M.removeAttribute("aria-required"),d&&p?A.el.setAttribute("data-required","true"):A.el.removeAttribute("data-required"),E(A,d,p,C=>f.t(C))}}function E(f,P,A,c){const d=f.placeholderEl;if(!d)return;const p=f.placeholderBase;if(P&&!A&&p!==""){const M=f.requiredHint,C=M===!1?"":typeof M=="string"?c(M):" *";d.placeholder=p+C}else d.placeholder=p}}),ge("packages/modules/form/stepper.js",function(B,q){"use strict";Object.defineProperty(B,"createStepper",{enumerable:!0,get:function(){return Q}});const z=q("packages/modules/form/styles.js").NS;function h(l,L,E){return Math.min(E,Math.max(L,l))}function Q(l,L){const E=L.doc,f=L.steps||[],P=L.t||(v=>v),A=L.orientation==="vertical"?"vertical":"horizontal";let c=h(Number(L.active)||0,0,Math.max(0,f.length-1));const d=[];l.className=`${z}__stepper ${z}__stepper--${A}`,l.setAttribute("data-orientation",A),l.setAttribute("role","navigation"),l.setAttribute("aria-label",P("form.steps"));const p=E.createElement("ol");p.className=`${z}__stepper-list`,p.setAttribute("role","tablist"),p.setAttribute("aria-orientation",A),l.appendChild(p);let M=[];const C=v=>d[v]?d[v]:v<c?"complete":v===c?"active":"pending",e=v=>v<=c+1,m=()=>{p.textContent="",M=f.map((v,t)=>{const y=C(t),a=E.createElement("li");a.className=`${z}__stepper-item is-${y}`+(t===c?" is-active":"")+(e(t)?"":" is-locked");const i=E.createElement("button");i.type="button",i.className=`${z}__stepper-step`,i.setAttribute("role","tab"),i.setAttribute("aria-selected",t===c?"true":"false"),t===c&&i.setAttribute("aria-current","step"),i.tabIndex=t===c?0:-1,i.setAttribute("aria-disabled",e(t)?"false":"true");const r=E.createElement("span");r.className=`${z}__stepper-marker`,r.setAttribute("aria-hidden","true"),r.textContent=y==="complete"?"✓":y==="error"?"!":String(t+1),i.appendChild(r);const _=E.createElement("span");return _.className=`${z}__stepper-label`,_.textContent=v.label!=null&&v.label!==""?v.label:`${P("form.step")} ${t+1}`,i.appendChild(_),a.appendChild(i),p.appendChild(a),i})},S=v=>{typeof L.onGoTo=="function"&&e(v)&&L.onGoTo(v)},O=v=>{const t=v.target&&v.target.closest?v.target.closest(`.${z}__stepper-step`):null;if(!t||!p.contains(t))return;const y=M.indexOf(t);y>=0&&S(y)},H=v=>{const t=v.target&&v.target.closest?v.target.closest(`.${z}__stepper-step`):null;if(!t||!p.contains(t))return;const y=f.length;let a=M.indexOf(t);if(a<0)return;if(v.key==="ArrowRight"||v.key==="ArrowDown")a=(a+1)%y;else if(v.key==="ArrowLeft"||v.key==="ArrowUp")a=(a-1+y)%y;else if(v.key==="Home")a=0;else if(v.key==="End")a=y-1;else if(v.key==="Enter"||v.key===" "){v.preventDefault(),S(a);return}else return;v.preventDefault();const i=M[a];i&&i.focus()};return p.addEventListener("click",O),p.addEventListener("keydown",H),m(),{el:l,setActive(v){c=h(Number(v)||0,0,Math.max(0,f.length-1)),m()},setStatus(v,t){d[v]=t,m()},statusOf:C}}}),ge("packages/core/src/internal/icon-builtins.js",function(B,q){"use strict";Object.defineProperty(B,"BUILT_IN_ICONS",{enumerable:!0,get:function(){return n}}),Object.defineProperty(B,"normaliseIcon",{enumerable:!0,get:function(){return z}});const n={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 z(h){return typeof h=="string"?{viewBox:"0 0 16 16",paths:[h],paint:"fill"}:Array.isArray(h)?{viewBox:"0 0 16 16",paths:h.slice(),paint:"fill"}:{viewBox:h&&h.viewBox||"0 0 16 16",paths:h&&Array.isArray(h.paths)?h.paths.slice():h&&h.path?[h.path]:[],paint:h&&h.paint==="stroke"?"stroke":"fill"}}}),ge("packages/modules/form/controls/field-icon.js",function(B,q){"use strict";Object.defineProperty(B,"fieldIconStylesheet",{enumerable:!0,get:function(){return l}}),Object.defineProperty(B,"injectFieldIconStyles",{enumerable:!0,get:function(){return L}}),Object.defineProperty(B,"makeFieldIcon",{enumerable:!0,get:function(){return E}});const z=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,h="http://www.w3.org/2000/svg",Q="data-lattice-form-field-icon-styles";function l(){return`
|
|
812
815
|
.lat-form__field-icon{
|
|
813
816
|
display:block; flex:0 0 auto;
|
|
814
817
|
width:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
815
818
|
height:calc(var(--lattice-control-size) * var(--lattice-scale));
|
|
816
819
|
}
|
|
817
|
-
`.trim()}function L(f){const P=f&&f.documentElement;if(!P||P.getAttribute(Q))return;P.setAttribute(Q,"1");const C=f.createElement("style");C.textContent=l(),(f.head||f.body||P).appendChild(C)}function E(f,P){const C=z[P];if(!C)return null;const c=f.createElementNS(h,"svg");c.setAttribute("class","lat-form__field-icon"),c.setAttribute("viewBox",C.viewBox||"0 0 16 16"),c.setAttribute("aria-hidden","true"),c.setAttribute("focusable","false");const d=C.paint==="stroke";for(const p of C.paths||[]){const M=f.createElementNS(h,"path");M.setAttribute("d",p),d?(M.setAttribute("fill","none"),M.setAttribute("stroke","currentColor"),M.setAttribute("stroke-width","1.5"),M.setAttribute("stroke-linecap","round"),M.setAttribute("stroke-linejoin","round")):M.setAttribute("fill","currentColor"),c.appendChild(M)}return c}}),ge("packages/modules/form/messages.js",function(D,q){"use strict";Object.defineProperty(D,"FALLBACK_EN",{enumerable:!0,get:function(){return z}}),Object.defineProperty(D,"t",{enumerable:!0,get:function(){return l}}),Object.defineProperty(D,"createTranslator",{enumerable:!0,get:function(){return L}});const n=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.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.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"}),z=Object.freeze({...n});function h(E,f={}){const P=n[E];return P===void 0?E:P.replace(/\{(\w+)\}/g,(C,c)=>f[c]===void 0?C:String(f[c]))}const Q={t(E,f={}){return h(E,f)}};function l(E,f={}){return Q.t(E,f)}function L(E){return{t(f,P={}){const C=E&&typeof E.t=="function"?E.t(f,P):f;return C===f?h(f,P):C}}}}),ge("packages/dom/src/editors/sanitize-richtext.js",function(D,q){"use strict";Object.defineProperty(D,"ALLOWED",{enumerable:!0,get:function(){return n}}),Object.defineProperty(D,"escapeHtml",{enumerable:!0,get:function(){return E}}),Object.defineProperty(D,"sanitizeRichText",{enumerable:!0,get:function(){return C}});const n={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"]},z={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$/},h=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),Q=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],l=/^(data:image\/|https?:\/\/|\/)/i,L={"&":"&","<":"<",">":">",'"':""","'":"'"};function E(c){const d=c==null?"":String(c);return/[&<>"']/.test(d)?d.replace(/[&<>"']/g,p=>L[p]):d}function f(c,d){const p=String(c).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return p.startsWith("javascript:")||p.startsWith("vbscript:")?!0:p.startsWith("data:")?!(d&&p.startsWith("data:image/")):!1}function P(c){if(c.__latRtCanParse!==void 0)return c.__latRtCanParse;try{const d=c.createElement("template");d.innerHTML="<p>x</p>";const p=!!(d.content&&d.content.childNodes&&d.content.childNodes.length);return c.__latRtCanParse=p,p}catch{return c.__latRtCanParse=!1,!1}}function C(c,d,p=n,M={}){const w=p||n,e=String(d??"");if(!P(c))return E(e.replace(/<[^>]*>/g,""));const m=M.imageSrcPattern||l,S=c.createElement("template");S.innerHTML=e;const O=H=>{[...H.childNodes].forEach(v=>{if(v.nodeType===8){v.remove();return}if(v.nodeType!==1)return;const t=v.tagName.toLowerCase();if(h.has(t)){v.remove();return}if(O(v),!w[t]){const y=Q.includes(t)?c.createElement("p"):null;if(y){for(;v.firstChild;)y.appendChild(v.firstChild);v.replaceWith(y)}else{for(;v.firstChild;)v.parentNode.insertBefore(v.firstChild,v);v.remove()}return}if([...v.attributes].forEach(y=>{const a=y.name.toLowerCase();if(/^on/i.test(a)||a==="srcdoc"||a==="id"||a==="name"){v.removeAttribute(y.name);return}if(!w[t].includes(a)){v.removeAttribute(y.name);return}if(a==="href"){const i=y.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(i)||f(i))&&v.removeAttribute("href")}else if(a==="src"){const i=y.value.trim();(!m.test(i)||f(i,!0))&&v.removeAttribute("src")}else if(a==="style"){if(M.stripStyles&&t!=="img"){v.removeAttribute("style");return}const i=y.value.split(";").map(r=>r.trim()).filter(Boolean).map(r=>{const _=r.indexOf(":");return[r.slice(0,_).trim().toLowerCase(),r.slice(_+1).trim()]}).filter(([r,_])=>z[r]&&z[r].test(_)).map(([r,_])=>`${r}: ${_}`).join("; ");i?v.setAttribute("style",i):v.removeAttribute("style")}else if(a==="target"&&y.value!=="_blank")v.removeAttribute("target");else if(a==="class"){const i=y.value.split(/\s+/).filter(r=>/^lat-/.test(r)||/^dfc-/.test(r)).join(" ");i?v.setAttribute("class",i):v.removeAttribute("class")}}),t==="div"){const y=c.createElement("p");for([...v.attributes].forEach(a=>y.setAttribute(a.name,a.value));v.firstChild;)y.appendChild(v.firstChild);v.replaceWith(y)}if(t==="img"&&!v.getAttribute("src")&&v.remove(),t==="a")if(v.getAttribute("href"))v.getAttribute("target")==="_blank"&&v.setAttribute("rel","noopener noreferrer");else{for(;v.firstChild;)v.parentNode.insertBefore(v.firstChild,v);v.remove()}})};return O(S.content),S.innerHTML}}),ge("packages/modules/form/controls/combo.js",function(D,q){"use strict";Object.defineProperty(D,"adornmentStylesheet",{enumerable:!0,get:function(){return t}}),Object.defineProperty(D,"injectAdornmentStyles",{enumerable:!0,get:function(){return y}}),Object.defineProperty(D,"isImageUrl",{enumerable:!0,get:function(){return a}}),Object.defineProperty(D,"initialsFor",{enumerable:!0,get:function(){return i}}),Object.defineProperty(D,"stableHash",{enumerable:!0,get:function(){return r}}),Object.defineProperty(D,"avatarColor",{enumerable:!0,get:function(){return _}}),Object.defineProperty(D,"applyAvatarTint",{enumerable:!0,get:function(){return u}}),Object.defineProperty(D,"makeIcon",{enumerable:!0,get:function(){return R}}),Object.defineProperty(D,"renderIcon",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(D,"renderAvatar",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(D,"renderDot",{enumerable:!0,get:function(){return le}}),Object.defineProperty(D,"renderAdornment",{enumerable:!0,get:function(){return re}}),Object.defineProperty(D,"renderTemplateContent",{enumerable:!0,get:function(){return K}}),Object.defineProperty(D,"createCombo",{enumerable:!0,get:function(){return A}});const z=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,L=q("packages/modules/form/styles.js").injectStyles,f=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,C=q("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,c=q("packages/modules/form/controls/field-icon.js"),d=c.makeFieldIcon,p=c.injectFieldIconStyles,M=250,w=20,e=48,m="data-lattice-combo-chip-row-styles";function S(){return`
|
|
820
|
+
`.trim()}function L(f){const P=f&&f.documentElement;if(!P||P.getAttribute(Q))return;P.setAttribute(Q,"1");const A=f.createElement("style");A.textContent=l(),(f.head||f.body||P).appendChild(A)}function E(f,P){const A=z[P];if(!A)return null;const c=f.createElementNS(h,"svg");c.setAttribute("class","lat-form__field-icon"),c.setAttribute("viewBox",A.viewBox||"0 0 16 16"),c.setAttribute("aria-hidden","true"),c.setAttribute("focusable","false");const d=A.paint==="stroke";for(const p of A.paths||[]){const M=f.createElementNS(h,"path");M.setAttribute("d",p),d?(M.setAttribute("fill","none"),M.setAttribute("stroke","currentColor"),M.setAttribute("stroke-width","1.5"),M.setAttribute("stroke-linecap","round"),M.setAttribute("stroke-linejoin","round")):M.setAttribute("fill","currentColor"),c.appendChild(M)}return c}}),ge("packages/modules/form/messages.js",function(B,q){"use strict";Object.defineProperty(B,"FALLBACK_EN",{enumerable:!0,get:function(){return z}}),Object.defineProperty(B,"t",{enumerable:!0,get:function(){return l}}),Object.defineProperty(B,"createTranslator",{enumerable:!0,get:function(){return L}});const n=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.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.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"}),z=Object.freeze({...n});function h(E,f={}){const P=n[E];return P===void 0?E:P.replace(/\{(\w+)\}/g,(A,c)=>f[c]===void 0?A:String(f[c]))}const Q={t(E,f={}){return h(E,f)}};function l(E,f={}){return Q.t(E,f)}function L(E){return{t(f,P={}){const A=E&&typeof E.t=="function"?E.t(f,P):f;return A===f?h(f,P):A}}}}),ge("packages/dom/src/editors/sanitize-richtext.js",function(B,q){"use strict";Object.defineProperty(B,"ALLOWED",{enumerable:!0,get:function(){return n}}),Object.defineProperty(B,"escapeHtml",{enumerable:!0,get:function(){return E}}),Object.defineProperty(B,"sanitizeRichText",{enumerable:!0,get:function(){return A}});const n={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"]},z={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$/},h=new Set(["script","style","iframe","object","embed","meta","link","title","head","svg","math","form","input","button","textarea","select","noscript","template"]),Q=["section","article","header","footer","main","aside","nav","center","figure","figcaption","dl","dt","dd","address","html","body"],l=/^(data:image\/|https?:\/\/|\/)/i,L={"&":"&","<":"<",">":">",'"':""","'":"'"};function E(c){const d=c==null?"":String(c);return/[&<>"']/.test(d)?d.replace(/[&<>"']/g,p=>L[p]):d}function f(c,d){const p=String(c).replace(/[\s\u0000-\u001f\u007f]/g,"").toLowerCase();return p.startsWith("javascript:")||p.startsWith("vbscript:")?!0:p.startsWith("data:")?!(d&&p.startsWith("data:image/")):!1}function P(c){if(c.__latRtCanParse!==void 0)return c.__latRtCanParse;try{const d=c.createElement("template");d.innerHTML="<p>x</p>";const p=!!(d.content&&d.content.childNodes&&d.content.childNodes.length);return c.__latRtCanParse=p,p}catch{return c.__latRtCanParse=!1,!1}}function A(c,d,p=n,M={}){const C=p||n,e=String(d??"");if(!P(c))return E(e.replace(/<[^>]*>/g,""));const m=M.imageSrcPattern||l,S=c.createElement("template");S.innerHTML=e;const O=H=>{[...H.childNodes].forEach(v=>{if(v.nodeType===8){v.remove();return}if(v.nodeType!==1)return;const t=v.tagName.toLowerCase();if(h.has(t)){v.remove();return}if(O(v),!C[t]){const y=Q.includes(t)?c.createElement("p"):null;if(y){for(;v.firstChild;)y.appendChild(v.firstChild);v.replaceWith(y)}else{for(;v.firstChild;)v.parentNode.insertBefore(v.firstChild,v);v.remove()}return}if([...v.attributes].forEach(y=>{const a=y.name.toLowerCase();if(/^on/i.test(a)||a==="srcdoc"||a==="id"||a==="name"){v.removeAttribute(y.name);return}if(!C[t].includes(a)){v.removeAttribute(y.name);return}if(a==="href"){const i=y.value.trim();(!/^(https?:\/\/|mailto:|tel:|\/|#)/i.test(i)||f(i))&&v.removeAttribute("href")}else if(a==="src"){const i=y.value.trim();(!m.test(i)||f(i,!0))&&v.removeAttribute("src")}else if(a==="style"){if(M.stripStyles&&t!=="img"){v.removeAttribute("style");return}const i=y.value.split(";").map(r=>r.trim()).filter(Boolean).map(r=>{const _=r.indexOf(":");return[r.slice(0,_).trim().toLowerCase(),r.slice(_+1).trim()]}).filter(([r,_])=>z[r]&&z[r].test(_)).map(([r,_])=>`${r}: ${_}`).join("; ");i?v.setAttribute("style",i):v.removeAttribute("style")}else if(a==="target"&&y.value!=="_blank")v.removeAttribute("target");else if(a==="class"){const i=y.value.split(/\s+/).filter(r=>/^lat-/.test(r)||/^dfc-/.test(r)).join(" ");i?v.setAttribute("class",i):v.removeAttribute("class")}}),t==="div"){const y=c.createElement("p");for([...v.attributes].forEach(a=>y.setAttribute(a.name,a.value));v.firstChild;)y.appendChild(v.firstChild);v.replaceWith(y)}if(t==="img"&&!v.getAttribute("src")&&v.remove(),t==="a")if(v.getAttribute("href"))v.getAttribute("target")==="_blank"&&v.setAttribute("rel","noopener noreferrer");else{for(;v.firstChild;)v.parentNode.insertBefore(v.firstChild,v);v.remove()}})};return O(S.content),S.innerHTML}}),ge("packages/modules/form/controls/combo.js",function(B,q){"use strict";Object.defineProperty(B,"adornmentStylesheet",{enumerable:!0,get:function(){return t}}),Object.defineProperty(B,"injectAdornmentStyles",{enumerable:!0,get:function(){return y}}),Object.defineProperty(B,"isImageUrl",{enumerable:!0,get:function(){return a}}),Object.defineProperty(B,"initialsFor",{enumerable:!0,get:function(){return i}}),Object.defineProperty(B,"stableHash",{enumerable:!0,get:function(){return r}}),Object.defineProperty(B,"avatarColor",{enumerable:!0,get:function(){return _}}),Object.defineProperty(B,"applyAvatarTint",{enumerable:!0,get:function(){return u}}),Object.defineProperty(B,"makeIcon",{enumerable:!0,get:function(){return R}}),Object.defineProperty(B,"renderIcon",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(B,"renderAvatar",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(B,"renderDot",{enumerable:!0,get:function(){return le}}),Object.defineProperty(B,"renderAdornment",{enumerable:!0,get:function(){return re}}),Object.defineProperty(B,"renderTemplateContent",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(B,"createCombo",{enumerable:!0,get:function(){return k}});const z=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,L=q("packages/modules/form/styles.js").injectStyles,f=q("packages/core/src/internal/icon-builtins.js").BUILT_IN_ICONS,A=q("packages/dom/src/editors/sanitize-richtext.js").sanitizeRichText,c=q("packages/modules/form/controls/field-icon.js"),d=c.makeFieldIcon,p=c.injectFieldIconStyles,M=250,C=20,e=48,m="data-lattice-combo-chip-row-styles";function S(){return`
|
|
818
821
|
.lat-combo__control{ position:relative; }
|
|
819
822
|
.lat-combo__chip-row{
|
|
820
823
|
display:flex;flex-wrap:wrap;align-items:flex-start;
|
|
@@ -829,7 +832,7 @@
|
|
|
829
832
|
.lat-combo[data-chip-placement] .lat-combo__summary{
|
|
830
833
|
flex:0 0 auto;margin-top:calc(var(--lattice-space)/4);
|
|
831
834
|
}
|
|
832
|
-
`.trim()}function O(s){const
|
|
835
|
+
`.trim()}function O(s){const w=s&&s.documentElement;if(!w||w.getAttribute(m))return;w.setAttribute(m,"1");const b=s.createElement("style");b.textContent=S(),(s.head||s.body||w).appendChild(b)}const H="data-lattice-form-adornment-styles",v="http://www.w3.org/2000/svg";function t(){return`
|
|
833
836
|
.lat-combo__value{
|
|
834
837
|
flex:0 0 auto; display:inline-flex; align-items:center; min-width:0;
|
|
835
838
|
gap:calc(var(--lattice-space) / 2);
|
|
@@ -868,7 +871,7 @@
|
|
|
868
871
|
.lat-select__value{ display:flex; align-items:center; gap:calc(var(--lattice-space) / 2); }
|
|
869
872
|
.lat-select__value[data-placeholder='true']{ display:block; }
|
|
870
873
|
.lat-select__label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
|
|
871
|
-
`.trim()}function y(s){const k=s&&s.documentElement;if(!k||k.getAttribute(H))return;k.setAttribute(H,"1");const b=s.createElement("style");b.textContent=t(),(s.head||s.body||k).appendChild(b)}function a(s){return/^(https?:|data:image\/|\/)/i.test(s)}function i(s){const k=String(s??"").trim();if(!k)return"";const b=k.split(/\s+/);return b.length>=2?(b[0][0]+b[1][0]).toUpperCase():k.slice(0,2).toUpperCase()}function r(s){let k=5381;const b=String(s??"");for(let B=0;B<b.length;B++)k=(k<<5)+k+b.charCodeAt(B)>>>0;return k}function _(s){if(s&&s.color!=null&&String(s.color)!=="")return String(s.color);const k=s&&s.label!=null?String(s.label):s&&s.value!=null?String(s.value):"";return`hsl(${r(k)%360}, 62%, 45%)`}function u(s,k){s.style.background=_(k),s.style.color="#fff"}function R(s,k){const b=f[k];if(!b)return null;const B=s.createElementNS(v,"svg");B.setAttribute("class","lat-combo__icon"),B.setAttribute("viewBox",b.viewBox||"0 0 16 16"),B.setAttribute("aria-hidden","true"),B.setAttribute("focusable","false");const Y=b.paint==="stroke";for(const ne of b.paths||[]){const oe=s.createElementNS(v,"path");oe.setAttribute("d",ne),Y?(oe.setAttribute("fill","none"),oe.setAttribute("stroke","currentColor"),oe.setAttribute("stroke-width","1.5"),oe.setAttribute("stroke-linecap","round"),oe.setAttribute("stroke-linejoin","round")):oe.setAttribute("fill","currentColor"),B.appendChild(oe)}return B}function ie(s,k,b){if(k==null||k==="")return null;let B;if(k.nodeType)B=k.cloneNode(!0),B.setAttribute&&B.setAttribute("aria-hidden","true");else{const Y=String(k),ne=R(s,Y);ne?B=ne:(B=s.createElement("span"),B.className="lat-combo__icon lat-combo__icon--glyph",B.setAttribute("aria-hidden","true"),B.textContent=Y.slice(0,2))}return b!=null&&String(b)!==""&&B&&B.style&&(B.style.color=String(b)),B}function ee(s,k){const b=s.createElement("span");b.className="lat-combo__avatar",b.setAttribute("aria-hidden","true");const B=String(k.avatar);if(a(B)){const Y=s.createElement("img");return Y.className="lat-combo__avatar-img",Y.alt="",Y.src=B,Y.addEventListener("error",()=>{for(;b.firstChild;)b.removeChild(b.firstChild);b.classList.add("lat-combo__avatar--initials"),b.textContent=i(k.label),u(b,k)}),b.appendChild(Y),b}return b.classList.add("lat-combo__avatar--initials"),b.textContent=B.slice(0,2),u(b,k),b}const J={r:255,g:255,b:255},o={r:20,g:24,b:28},I=3;function j(s){const k=s.split(/[,/\s]+/).filter(Boolean).map(Number);return k.length<3||k.some(b=>Number.isNaN(b))?null:{r:k[0],g:k[1],b:k[2]}}function T(s,k){const b=String(k).trim();if(!b)return null;if(s&&s.createElement)try{const Y=s.defaultView;if(Y&&Y.getComputedStyle){const ne=s.createElement("span");ne.style.color=b;const oe=/rgba?\(([^)]+)\)/.exec(Y.getComputedStyle(ne).color||"");if(oe)return j(oe[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(b)){let Y=b.slice(1);return(Y.length===3||Y.length===4)&&(Y=Y.split("").map(ne=>ne+ne).join("")),{r:parseInt(Y.slice(0,2),16),g:parseInt(Y.slice(2,4),16),b:parseInt(Y.slice(4,6),16)}}const B=/rgba?\(([^)]+)\)/.exec(b);return B?j(B[1]):null}function te(s){const k=b=>{const B=b/255;return B<=.03928?B/12.92:((B+.055)/1.055)**2.4};return .2126*k(s.r)+.7152*k(s.g)+.0722*k(s.b)}function V(s,k){const b=te(s),B=te(k),Y=Math.max(b,B),ne=Math.min(b,B);return(Y+.05)/(ne+.05)}function ce(s,k){const b=T(s,k);return b?V(b,J)<I||V(b,o)<I:!0}function le(s,k){const b=s.createElement("span");b.className="lat-combo__dot",b.setAttribute("aria-hidden","true");const B=String(k.dot);return b.style.background=B,ce(s,B)&&b.setAttribute("data-ring","true"),b}function re(s,k){const b=k&&k.dot;if(b!=null&&b!=="")return le(s,k);const B=k&&k.icon;if(B!=null&&B!=="")return ie(s,B,k.color);const Y=k&&k.avatar;return Y!=null&&Y!==""?ee(s,k):null}function K(s,k,b){if(typeof b!="function")return null;const B=b(k);if(B==null||B===!1)return null;if(B.nodeType)return B.cloneNode(!0);const Y=s.createElement("span");Y.className="lat-combo__template";const ne=String(B);return ne.includes("<")?Y.innerHTML=C(s,ne):Y.textContent=ne,Y}function g(s){return s!=null&&typeof s=="object"?s.value:s}function x(s){return s==null?"":typeof s!="object"?String(s):s.label!=null?String(s.label):s.title!=null?String(s.title):s.value==null?"":String(s.value)}function N(s){return s==null||typeof s!="object"?null:s.description!=null?String(s.description):s.subtitle!=null?String(s.subtitle):null}function F(s){return N(s)!=null||s!=null&&typeof s=="object"&&(s.avatar!=null||s.icon!=null)}function G(s){const k=s!=null&&typeof s=="object"?s:{};return{value:g(s),label:x(s),description:N(s),avatar:k.avatar,icon:k.icon,color:k.color,dot:k.dot,disabled:k.disabled===!0}}function U(s){if(Array.isArray(s))return{items:s,total:s.length,hasMore:!1};if(s&&typeof s=="object"){const k=Array.isArray(s.items)?s.items:[];return{items:k,total:typeof s.total=="number"?s.total:k.length,hasMore:s.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function Z(s,k){return s===k?!0:s!=null&&k!=null&&String(s)===String(k)}function $(s,k,b={}){const B=s&&s.defaultView;return B&&B.Event?new B.Event(k,b):{type:k,bubbles:b.bubbles!==!1,cancelable:b.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function A(s,k={}){const b=k.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;b&&(L(b),y(b),p(b));const B=typeof k.t=="function"?k.t:Q,Y=k.multiple===!0,ne=Y&&["above","below"].includes(k.chipPlacement)?k.chipPlacement:"inside";b&&ne!=="inside"&&O(b);const oe=typeof k.debounce=="number"&&k.debounce>=0?k.debounce:M,pe=typeof k.pageSize=="number"&&k.pageSize>0?k.pageSize:w,be=k.selectAll===!0,je=Y?Array.isArray(k.value)?k.value:k.value==null?[]:[k.value]:k.value==null?null:k.value,ke=b.createElement("div");ke.className="lat-combo",Y&&ke.setAttribute("data-multiple","true"),ne!=="inside"&&ke.setAttribute("data-chip-placement",ne),k.inForm||(ke.setAttribute("data-lattice-standalone","true"),ke.setAttribute("data-density",["compact","standard","comfortable"].includes(k.density)?k.density:"standard"));const $e=b.createElement("div");$e.className="lat-combo__control";const Ee=b.createElement("div");Ee.className="lat-combo__chips";const Oe=b.createElement("span");Oe.className="lat-combo__summary",Oe.hidden=!0;const de=b.createElement("div");de.className="lat-combo__chip-row",de.setAttribute("role","group"),de.hidden=!0;const Ce=ne==="inside"?Ee:de;typeof k.maxHeight=="number"&&(Ce.style.maxHeight=`${k.maxHeight}px`);const Se=b.createElement("span");Se.className="lat-combo__value",Se.setAttribute("aria-hidden","true"),Se.hidden=!0;const he=b.createElement("input");he.className="lat-combo__input",he.type="text",he.setAttribute("role","combobox"),he.setAttribute("aria-autocomplete","list"),he.setAttribute("aria-haspopup","listbox"),Y&&he.setAttribute("aria-multiselectable","true"),k.placeholder!=null&&(he.placeholder=String(k.placeholder)),k.inForm&&k.ariaLabel!=null&&he.setAttribute("aria-label",String(k.ariaLabel));const Pe=b.createElement("button");Pe.type="button",Pe.className="lat-combo__toggle",Pe.setAttribute("aria-label",B("form.combo.toggle")),Pe.setAttribute("aria-haspopup","listbox");const Ae=d(b,"chevronDown");Ae&&Pe.appendChild(Ae);const ye=b.createElement("div");ye.className="lat-combo__popup",ye.hidden=!0;const X=b.createElement("div");X.className="lat-combo__list",X.setAttribute("role","listbox");const fe=b.createElement("div");fe.className="lat-combo__spacer",X.appendChild(fe);const se=b.createElement("div");se.className="lat-combo__status",se.setAttribute("role","status"),se.setAttribute("aria-live","polite");const _e=b.createElement("div");_e.className="lat-combo__option lat-combo__option--create",_e.setAttribute("role","option"),_e.hidden=!0,X.insertBefore(_e,fe),ye.appendChild(X),ye.appendChild(se),$e.appendChild(ye),ne!=="inside"?($e.appendChild(he),$e.appendChild(Pe),de.appendChild(Ee),de.appendChild(Oe),ne==="above"&&ke.appendChild(de),ke.appendChild($e),ne==="below"&&ke.appendChild(de)):($e.appendChild(Ee),$e.appendChild(Oe),$e.appendChild(Se),$e.appendChild(he),$e.appendChild(Pe),ke.appendChild($e));const Be=`lat-combo-lb-${ft()}`;X.id=Be,he.setAttribute("aria-controls",Be);let me=[],we=[];const et=new Map;let He=0,at=0,tt=!1,Re=!1,Ye=!1,Fe="",Le=!1,Te=-1,Ue=null,ot=0,We=null;const _t=new Map,vt=Array.isArray(k.options)?k.options:[],Ve=[],De=[];let Ze=0,dt=0;const ur=ft(),Et=[];let qe=!1;function ft(){return ft.n=(ft.n||0)+1,ft.n}function Ie(W,ae,ue){W.addEventListener(ae,ue),Et.push(()=>W.removeEventListener(ae,ue))}function pt(W){const ae=et.get(String(W));if(ae)return ae;if(W!=null){for(const ue of et.values())if(Z(ue.value,W))return ue}return null}function yt(W){const ae=pt(W);return ae?ae.label:W==null?"":String(W)}function rt(W){W.value!=null&&et.set(String(W.value),W)}function Dt(W){if(typeof k.resolveLabels!="function")return;const ae=W.filter(Ne=>Ne!=null&&!pt(Ne));if(ae.length===0)return;const ue=k.resolveLabels(ae),ve=Ne=>{if(!(qe||!Array.isArray(Ne))){for(const Me of Ne){const xe=G(Me);xe.value!=null&&rt(xe)}Je()}};ue&&typeof ue.then=="function"?ue.then(ve):ve(ue)}function mt(){s.dispatchEvent($(b,"change",{bubbles:!0}))}function Bt(){return Y?we.map(W=>W.value):we.length?we[0].value:null}function jt(W){let ae;if(Y)ae=Array.isArray(W)?W:W==null?[]:[W];else{const ve=Array.isArray(W)?W.length?W[0]:null:W;ae=ve==null?[]:[ve]}const ue=ae.filter(ve=>ve!=null&&(ve!==""||pt(ve)!=null));we=ue.map(ve=>pt(ve)||{value:ve,label:ve==null?"":String(ve),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Dt(ue),Je(),lt(),ct()}function Xe(){return k.readOnly===!0}function It(){we.length!==0&&(we=[],Je(),lt(),ct(),mt())}function Rt(W){const ae=b.createElement("span");ae.className="lat-combo__chip",ae.dataset.value=String(W.value);const ue=K(b,W,k.selectedTemplate);if(ue){const ve=b.createElement("span");ve.className="lat-combo__chip-label",ve.appendChild(ue),ae.appendChild(ve)}else{const ve=re(b,W);ve&&ae.appendChild(ve);const Ne=b.createElement("span");Ne.className="lat-combo__chip-label",Ne.textContent=yt(W.value),ae.appendChild(Ne)}if(!W.disabled&&!Xe()){const ve=b.createElement("button");ve.type="button",ve.className="lat-combo__chip-remove",ve.setAttribute("aria-label",B("form.combo.remove",{label:yt(W.value)})),ve.textContent="×",Ie(ve,"click",Me=>{Me.stopPropagation(),xt(W.value)}),ae.appendChild(ve)}return ae}function Ft(){Y||(he.value=we.length?yt(we[0].value):"")}function Vt(){if(Y){Se.hidden=!0;return}for(;Se.firstChild;)Se.removeChild(Se.firstChild);if(we.length===0){Se.hidden=!0;return}const W=we[0],ue=K(b,W,k.selectedTemplate)||re(b,W);ue?(Se.appendChild(ue),Se.hidden=!1):Se.hidden=!0}function Ht(W){const ae=B("form.combo.selected",{count:W});return ae==="form.combo.selected"?`Selected: ${W}`:ae}function Je(){for(;Ee.firstChild;)Ee.removeChild(Ee.firstChild);if(Y){for(const W of we)Ee.appendChild(Rt(W));Ee.hidden=we.length===0}else Ee.hidden=!0;ne!=="inside"&&(de.hidden=!Y||we.length===0,de.setAttribute("aria-label",Ht(we.length))),Ft(),Vt(),Ut()}function Ut(){if(!Y||we.length===0){Oe.hidden=!0;return}const W=Ce.getBoundingClientRect().bottom;let ae=0;const ue=[...Ee.children];for(const ve of ue)ve.getBoundingClientRect().top>=W-1&&(ae+=1);ae>0?(Oe.hidden=!1,Oe.textContent=B("form.combo.more",{count:ae})):Oe.hidden=!0}function xt(W){if(Xe())return;const ae=we.length;we=we.filter(ue=>!Z(ue.value,W)),we.length!==ae&&(Je(),lt(),ct(),mt())}function wt(W){if(Xe())return;const ae=pt(W)||{value:W,label:W==null?"":String(W),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(rt(ae),Y){if(we.some(ue=>Z(ue.value,W)))return;we=[...we,ae]}else{if(we.length&&Z(we[0].value,W))return;we=[ae]}Je(),lt(),ct(),mt()}function Wt(){if(Xe())return;const W=me.filter(ae=>!ae.disabled).map(ae=>({...ae}));if(!(W.length===0&&we.length===0)){for(const ae of W)rt(ae);we=W,Je(),lt(),ct(),mt()}}function Nt(){return me.length>0&&me.every(W=>we.some(ae=>Z(ae.value,W.value)))}function lt(){const W=ke.querySelector(".lat-combo__select-all");if(!W)return;const ae=Nt();W.setAttribute("aria-selected",ae?"true":"false"),W.textContent=B("form.combo.selectAll")}function nt(){Le||qe||k.disabled||(Le=!0,ye.hidden=!1,he.setAttribute("aria-expanded","true"),Pe.setAttribute("aria-expanded","true"),qt(),me.length===0&&k.load&&!Re&&!Ye?ut(0):st())}function Qe(){Le&&(Le=!1,ye.hidden=!0,he.setAttribute("aria-expanded","false"),Pe.setAttribute("aria-expanded","false"),he.removeAttribute("aria-activedescendant"))}function Zt(){qe||(he.focus(),nt())}function Kt(){he.blur()}function it(W){if(Te=W,!Le)return;const ae=W===-1?`${_e.id}`:`${Be}-opt-${W}`;he.setAttribute("aria-activedescendant",ae)}function gt(W){const ae=_e.hidden===!1,ue=ae?-1:0,ve=Math.max(ue,me.length-1);if(me.length===0&&!ae){it(-1);return}it(Math.max(ue,Math.min(ve,Te+W))),kt()}function kt(){if(Te<0)return;const W=De[Te]||0,ae=W+(Ve[Te]||Ot(me[Te]));W<dt?X.scrollTop=W:ae>dt+Ze&&(X.scrollTop=ae-Ze)}function Ot(W){return F(W)?52:30}function Mt(W){return`${Be}-opt-${W}`}function Gt(W,ae){const ue=b.createElement("div");ue.className="lat-combo__option",ue.setAttribute("role","option"),ue.id=Mt(ae);const ve=we.some(xe=>Z(xe.value,W.value));ue.setAttribute("aria-selected",ve?"true":"false"),W.disabled&&ue.setAttribute("aria-disabled","true");const Ne=K(b,W,k.optionTemplate);if(Ne)ue.appendChild(Ne);else{const xe=re(b,W);xe&&ue.appendChild(xe);const ze=b.createElement("span");ze.className="lat-combo__text";const Ge=b.createElement("span");if(Ge.className="lat-combo__title",Ge.textContent=W.label,ze.appendChild(Ge),W.description!=null){const Ct=b.createElement("span");Ct.className="lat-combo__subtitle",Ct.textContent=W.description,ze.appendChild(Ct)}ue.appendChild(ze)}return Ie(ue,"click",xe=>{xe.stopPropagation(),Lt(ae)}),ue}function Yt(){const W=k.newOptions&&!Xe()&&Fe.trim()!=="",ae=me.some(ue=>Z(ue.value,Fe)||ue.label===Fe);if(!W||ae){_e.hidden=!0;return}_e.hidden=!1,_e.id=`${Be}-create`,_e.textContent=B("form.combo.create",{query:Fe}),Te===-1&&it(-1)}function st(){if(Yt(),Le&&(Ze=X.clientHeight||Ze),me.length===0){fe.style.height="0px",bt();return}let W=!1;for(let xe=0;xe<me.length;xe++)Ve[xe]==null&&(Ve[xe]=Ot(me[xe]));De.length=0,De[0]=0;for(let xe=1;xe<=me.length;xe++)De[xe]=De[xe-1]+Ve[xe-1];const ae=De[me.length];fe.style.height=`${ae}px`;const ue=dt,ve=dt+Ze;let Ne=0;for(;Ne<me.length-1&&De[Ne+1]<ue;)Ne+=1;let Me=Ne;for(;Me<me.length&&De[Me]<ve;)Me+=1;for(Me=Math.min(me.length,Me+2);fe.firstChild;)fe.removeChild(fe.firstChild);for(let xe=Ne;xe<Me;xe++){const ze=Gt(me[xe],xe);ze.style.position="absolute",ze.style.left="0",ze.style.right="0",ze.style.top="0",ze.style.transform=`translateY(${De[xe]}px)`,fe.appendChild(ze)}for(let xe=Ne;xe<Me;xe++){const ze=b.getElementById(Mt(xe));if(!ze)continue;const Ge=ze.getBoundingClientRect().height;Ge>0&&Math.abs(Ge-Ve[xe])>.5&&(Ve[xe]=Ge,W=!0)}W?st():bt()}function bt(){for(;se.firstChild;)se.removeChild(se.firstChild);if(Re)se.textContent=B("form.combo.loading"),se.dataset.state="loading";else if(Ye){se.textContent=B("form.combo.error"),se.dataset.state="error";const W=b.createElement("button");W.type="button",W.className="lat-combo__retry",W.textContent=B("form.combo.retry"),Ie(W,"click",ue=>{ue.stopPropagation(),Pt()}),se.appendChild(W)}else me.length===0&&!k.load&&vt.length===0?se.textContent="":me.length===0?(se.textContent=B("form.combo.empty"),se.dataset.state="empty"):(se.textContent=B("form.combo.results",{count:at}),se.dataset.state="results")}function ct(){const W=`${Be}-opt-`;for(const ae of X.querySelectorAll('.lat-combo__option[role="option"]')){const ue=ae.id||"";if(!ue.startsWith(W))continue;const ve=Number(ue.slice(W.length));if(Number.isNaN(ve))continue;const Ne=me[ve];Ne&&ae.setAttribute("aria-selected",we.some(Me=>Z(Me.value,Ne.value))?"true":"false")}lt()}function qt(){Ze=X.clientHeight||240}function Xt(){if(be&&Y){const W=b.createElement("div");W.className="lat-combo__select-all",W.setAttribute("role","option"),Ie(W,"click",ue=>{ue.stopPropagation(),!Xe()&&(Nt()?(we=[],Je(),ct(),mt()):Wt())}),ye.insertBefore(W,X)}}function ut(W){if(qe)return;if(typeof k.load!="function"){const Me=Fe.trim().toLowerCase(),xe=vt.map(G).filter(ze=>Me===""||ze.label.toLowerCase().includes(Me));me=xe,at=xe.length,tt=!1,He=1,Ve.length=0,De.length=0;for(const ze of me)rt(ze);st();return}if(Re)return;Re=!0,Ye=!1,ot+=1;const ae=ot;Ue&&Ue.abort(),Ue=new AbortController;const ue=Ue.signal;bt();let ve;try{ve=k.load({search:Fe,page:W,signal:ue,pageSize:pe})}catch{Re=!1,Ye=!0,bt();return}const Ne=Me=>{if(qe||ae!==ot)return;Re=!1;const xe=U(Me),ze=xe.items.map(G);W===0?(me=ze,Ve.length=0,De.length=0,_t.set(Fe,{items:ze,total:xe.total,hasMore:xe.hasMore,nextPage:1})):me=me.concat(ze),at=typeof xe.total=="number"?xe.total:me.length,tt=xe.hasMore,He=W+1;for(const Ge of ze)rt(Ge);Ve.length=me.length,st(),zt()};ve&&typeof ve.then=="function"?ve.then(Ne).catch(Me=>{qe||ae!==ot||Me&&Me.name==="AbortError"||(Re=!1,Ye=!0,bt())}):Ne(ve)}function zt(){if(!tt||Re||!Le)return;(De[me.length]||0)<Ze+e&&ut(He)}function Pt(){qe||(We&&(clearTimeout(We),We=null),Ue&&Ue.abort(),ot+=1,_t.delete(Fe),me=[],at=0,tt=!1,Re=!1,Ye=!1,He=0,Ve.length=0,De.length=0,Te=-1,ut(0))}function Jt(){Fe=he.value,Ue&&Ue.abort(),ot+=1;const W=_t.get(Fe);if(W&&typeof k.load=="function"){me=W.items.map(G),at=W.total,tt=W.hasMore,He=W.nextPage,Re=!1,Ye=!1,Ve.length=0,De.length=0,Te=-1;for(const ae of me)rt(ae);st(),zt();return}me=[],at=0,tt=!1,Re=!1,Ye=!1,He=0,Ve.length=0,De.length=0,Te=-1,ut(0)}function Qt(){We&&clearTimeout(We),We=setTimeout(()=>{We=null,Jt()},oe)}function er(W){const ae=_e.hidden===!1,ue=me.length+(ae?1:0);if(W.key==="ArrowDown"){if(W.preventDefault(),nt(),ue===0)return;Te===-1?it(me.length?0:-1):gt(1)}else if(W.key==="ArrowUp"){if(W.preventDefault(),!Le){nt();return}if(Te===-1){me.length&&it(0);return}gt(-1)}else if(W.key==="Home"){if(!Le)return;W.preventDefault(),it(ae?-1:0),kt()}else if(W.key==="End"){if(!Le)return;W.preventDefault(),it(me.length-1),kt()}else if(W.key==="PageDown"){if(!Le)return;W.preventDefault(),gt(Math.max(1,Math.floor(Math.max(Ze,60)/30)))}else if(W.key==="PageUp"){if(!Le)return;W.preventDefault(),gt(-Math.max(1,Math.floor(Math.max(Ze,60)/30)))}else if(W.key==="Enter"){if(!Le){nt();return}Te===-1&&ae?(W.preventDefault(),tr()):Te>=0&&me[Te]&&(W.preventDefault(),Lt(Te))}else W.key==="Escape"?Le&&(W.preventDefault(),Qe()):W.key==="Backspace"&&Y&&he.value===""&&we.length?(W.preventDefault(),xt(we[we.length-1].value)):W.key==="Tab"&&Qe()}function tr(){if(!k.newOptions||Xe())return;const W=Fe.trim();if(W==="")return;let ae;typeof k.newOptions=="object"&&typeof k.newOptions.create=="function"?ae=k.newOptions.create(W):ae={value:W,label:W};const ue=G(ae);rt(ue),wt(ue.value),Qe()}function Lt(W){if(Xe())return;const ae=me[W];!ae||ae.disabled||(Y?(we.some(ue=>Z(ue.value,ae.value))?xt(ae.value):wt(ae.value),he.focus()):(wt(ae.value),Qe(),he.value=ae.label))}const rr=()=>{Le||(he.focus(),nt())},nr=W=>{W.stopPropagation(),Le?Qe():(he.focus(),nt())},ir=()=>{Qt()},ar=W=>{W.stopPropagation()},or=()=>{dt=X.scrollTop,st(),tt&&!Re&&X.scrollTop+X.clientHeight>=X.scrollHeight-e&&ut(He)},lr=()=>{s.dispatchEvent($(b,"focus"))},sr=()=>{s.dispatchEvent($(b,"blur")),Qe()};Ie($e,"click",rr),Ie(Pe,"click",nr),Ie(he,"input",ir),Ie(he,"change",ar),Ie(he,"keydown",er),Ie(he,"focus",lr),Ie(he,"blur",sr),Ie(X,"scroll",or),Ie(X,"mousedown",W=>W.preventDefault()),Xt(),vt.length&&typeof k.load!="function"&&(Fe="",ut(0)),jt(je);const Ke={el:s,root:ke,input:he,getValue:Bt,setValue(W){return jt(W),Ke},reload(){return Pt(),Ke},clear(){return It(),Ke},open(){return nt(),Ke},close(){return Qe(),Ke},focus(){return Zt(),Ke},blur(){return Kt(),Ke},setDisabled(W){k.disabled=W,he.disabled=W,Pe.disabled=W,W&&Qe()},setReadOnly(W){k.readOnly=W,he.readOnly=W,W?he.setAttribute("aria-readonly","true"):he.removeAttribute("aria-readonly"),Je()},destroy(){qe=!0,We&&clearTimeout(We),Ue&&Ue.abort();for(const W of Et.splice(0))W();for(;ke.firstChild;)ke.removeChild(ke.firstChild)}};return s.appendChild(ke),s.__combo=Ke,Ke}z("combo",{kind:"field",build(s,k){const b=k.doc.createElement("div"),B=s.props||{},Y=A(b,{load:B.load,options:s.options,multiple:B.multiple,value:s.value,resolveLabels:B.resolveLabels,newOptions:B.newOptions,optionTemplate:B.optionTemplate,selectedTemplate:B.selectedTemplate,selectAll:B.selectAll,debounce:B.debounce,pageSize:B.pageSize,maxHeight:B.maxHeight,chipPlacement:B.chipPlacement,placeholder:s.placeholder,ariaLabel:s.label,t:k.t,doc:k.doc,inForm:!0});if(k.disposers.push(()=>Y.destroy()),Array.isArray(B.dependsOn))for(const ne of B.dependsOn){const oe=be=>{be.name===ne&&(Y.clear(),Y.reload())},pe=k.emitter.on("change",oe);k.disposers.push(pe)}return b.focus=()=>Y.focus(),b.blur=()=>Y.blur(),b},read(s){return s.__combo?s.__combo.getValue():null},write(s,k){s.__combo&&s.__combo.setValue(k)},state(s,k){s.__combo&&(s.__combo.setDisabled(k.disabled===!0),s.__combo.setReadOnly(k.readOnly===!0))}})}),ge("packages/modules/form/extras.js",function(D,q){"use strict";Object.defineProperty(D,"injectChromeStyles",{enumerable:!0,get:function(){return d}}),Object.defineProperty(D,"buildTooltip",{enumerable:!0,get:function(){return w}}),Object.defineProperty(D,"buildLock",{enumerable:!0,get:function(){return e}}),Object.defineProperty(D,"renderAvatarAddon",{enumerable:!0,get:function(){return O}}),Object.defineProperty(D,"buildAddons",{enumerable:!0,get:function(){return H}}),Object.defineProperty(D,"buildPanel",{enumerable:!0,get:function(){return v}});const z=q("packages/modules/form/styles.js").NS,h=q("packages/modules/form/controls/field-icon.js"),Q=h.makeFieldIcon,l=h.injectFieldIconStyles,L=q("packages/modules/form/controls/combo.js"),E=L.initialsFor,f=L.renderAvatar,P="data-lattice-form-chrome-styles";function C(t){return t==="cols"?`${z}__cols`:t==="items"?`${z}__items`:`${z}__rows`}function c(){return`
|
|
874
|
+
`.trim()}function y(s){const w=s&&s.documentElement;if(!w||w.getAttribute(H))return;w.setAttribute(H,"1");const b=s.createElement("style");b.textContent=t(),(s.head||s.body||w).appendChild(b)}function a(s){return/^(https?:|data:image\/|\/)/i.test(s)}function i(s){const w=String(s??"").trim();if(!w)return"";const b=w.split(/\s+/);return b.length>=2?(b[0][0]+b[1][0]).toUpperCase():w.slice(0,2).toUpperCase()}function r(s){let w=5381;const b=String(s??"");for(let T=0;T<b.length;T++)w=(w<<5)+w+b.charCodeAt(T)>>>0;return w}function _(s){if(s&&s.color!=null&&String(s.color)!=="")return String(s.color);const w=s&&s.label!=null?String(s.label):s&&s.value!=null?String(s.value):"";return`hsl(${r(w)%360}, 62%, 45%)`}function u(s,w){s.style.background=_(w),s.style.color="#fff"}function R(s,w){const b=f[w];if(!b)return null;const T=s.createElementNS(v,"svg");T.setAttribute("class","lat-combo__icon"),T.setAttribute("viewBox",b.viewBox||"0 0 16 16"),T.setAttribute("aria-hidden","true"),T.setAttribute("focusable","false");const Y=b.paint==="stroke";for(const ie of b.paths||[]){const oe=s.createElementNS(v,"path");oe.setAttribute("d",ie),Y?(oe.setAttribute("fill","none"),oe.setAttribute("stroke","currentColor"),oe.setAttribute("stroke-width","1.5"),oe.setAttribute("stroke-linecap","round"),oe.setAttribute("stroke-linejoin","round")):oe.setAttribute("fill","currentColor"),T.appendChild(oe)}return T}function ne(s,w,b){if(w==null||w==="")return null;let T;if(w.nodeType)T=w.cloneNode(!0),T.setAttribute&&T.setAttribute("aria-hidden","true");else{const Y=String(w),ie=R(s,Y);ie?T=ie:(T=s.createElement("span"),T.className="lat-combo__icon lat-combo__icon--glyph",T.setAttribute("aria-hidden","true"),T.textContent=Y.slice(0,2))}return b!=null&&String(b)!==""&&T&&T.style&&(T.style.color=String(b)),T}function ee(s,w){const b=s.createElement("span");b.className="lat-combo__avatar",b.setAttribute("aria-hidden","true");const T=String(w.avatar);if(a(T)){const Y=s.createElement("img");return Y.className="lat-combo__avatar-img",Y.alt="",Y.src=T,Y.addEventListener("error",()=>{for(;b.firstChild;)b.removeChild(b.firstChild);b.classList.add("lat-combo__avatar--initials"),b.textContent=i(w.label),u(b,w)}),b.appendChild(Y),b}return b.classList.add("lat-combo__avatar--initials"),b.textContent=T.slice(0,2),u(b,w),b}const J={r:255,g:255,b:255},o={r:20,g:24,b:28},I=3;function j(s){const w=s.split(/[,/\s]+/).filter(Boolean).map(Number);return w.length<3||w.some(b=>Number.isNaN(b))?null:{r:w[0],g:w[1],b:w[2]}}function D(s,w){const b=String(w).trim();if(!b)return null;if(s&&s.createElement)try{const Y=s.defaultView;if(Y&&Y.getComputedStyle){const ie=s.createElement("span");ie.style.color=b;const oe=/rgba?\(([^)]+)\)/.exec(Y.getComputedStyle(ie).color||"");if(oe)return j(oe[1])}}catch{}if(/^#([0-9a-f]{3,8})$/i.test(b)){let Y=b.slice(1);return(Y.length===3||Y.length===4)&&(Y=Y.split("").map(ie=>ie+ie).join("")),{r:parseInt(Y.slice(0,2),16),g:parseInt(Y.slice(2,4),16),b:parseInt(Y.slice(4,6),16)}}const T=/rgba?\(([^)]+)\)/.exec(b);return T?j(T[1]):null}function te(s){const w=b=>{const T=b/255;return T<=.03928?T/12.92:((T+.055)/1.055)**2.4};return .2126*w(s.r)+.7152*w(s.g)+.0722*w(s.b)}function V(s,w){const b=te(s),T=te(w),Y=Math.max(b,T),ie=Math.min(b,T);return(Y+.05)/(ie+.05)}function ce(s,w){const b=D(s,w);return b?V(b,J)<I||V(b,o)<I:!0}function le(s,w){const b=s.createElement("span");b.className="lat-combo__dot",b.setAttribute("aria-hidden","true");const T=String(w.dot);return b.style.background=T,ce(s,T)&&b.setAttribute("data-ring","true"),b}function re(s,w){const b=w&&w.dot;if(b!=null&&b!=="")return le(s,w);const T=w&&w.icon;if(T!=null&&T!=="")return ne(s,T,w.color);const Y=w&&w.avatar;return Y!=null&&Y!==""?ee(s,w):null}function Z(s,w,b){if(typeof b!="function")return null;const T=b(w);if(T==null||T===!1)return null;if(T.nodeType)return T.cloneNode(!0);const Y=s.createElement("span");Y.className="lat-combo__template";const ie=String(T);return ie.includes("<")?Y.innerHTML=A(s,ie):Y.textContent=ie,Y}function g(s){return s!=null&&typeof s=="object"?s.value:s}function x(s){return s==null?"":typeof s!="object"?String(s):s.label!=null?String(s.label):s.title!=null?String(s.title):s.value==null?"":String(s.value)}function N(s){return s==null||typeof s!="object"?null:s.description!=null?String(s.description):s.subtitle!=null?String(s.subtitle):null}function F(s){return N(s)!=null||s!=null&&typeof s=="object"&&(s.avatar!=null||s.icon!=null)}function G(s){const w=s!=null&&typeof s=="object"?s:{};return{value:g(s),label:x(s),description:N(s),avatar:w.avatar,icon:w.icon,color:w.color,dot:w.dot,disabled:w.disabled===!0}}function U(s){if(Array.isArray(s))return{items:s,total:s.length,hasMore:!1};if(s&&typeof s=="object"){const w=Array.isArray(s.items)?s.items:[];return{items:w,total:typeof s.total=="number"?s.total:w.length,hasMore:s.hasMore===!0}}return{items:[],total:0,hasMore:!1}}function K(s,w){return s===w?!0:s!=null&&w!=null&&String(s)===String(w)}function $(s,w,b={}){const T=s&&s.defaultView;return T&&T.Event?new T.Event(w,b):{type:w,bubbles:b.bubbles!==!1,cancelable:b.cancelable!==!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function k(s,w={}){const b=w.doc||s&&s.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;b&&(L(b),y(b),p(b));const T=typeof w.t=="function"?w.t:Q,Y=w.multiple===!0,ie=Y&&["above","below"].includes(w.chipPlacement)?w.chipPlacement:"inside";b&&ie!=="inside"&&O(b);const oe=typeof w.debounce=="number"&&w.debounce>=0?w.debounce:M,pe=typeof w.pageSize=="number"&&w.pageSize>0?w.pageSize:C,be=w.selectAll===!0,je=Y?Array.isArray(w.value)?w.value:w.value==null?[]:[w.value]:w.value==null?null:w.value,ke=b.createElement("div");ke.className="lat-combo",Y&&ke.setAttribute("data-multiple","true"),ie!=="inside"&&ke.setAttribute("data-chip-placement",ie),w.inForm||(ke.setAttribute("data-lattice-standalone","true"),ke.setAttribute("data-density",["compact","standard","comfortable"].includes(w.density)?w.density:"standard"));const Se=b.createElement("div");Se.className="lat-combo__control";const Ae=b.createElement("div");Ae.className="lat-combo__chips";const Oe=b.createElement("span");Oe.className="lat-combo__summary",Oe.hidden=!0;const de=b.createElement("div");de.className="lat-combo__chip-row",de.setAttribute("role","group"),de.hidden=!0;const Ce=ie==="inside"?Ae:de;typeof w.maxHeight=="number"&&(Ce.style.maxHeight=`${w.maxHeight}px`);const Ee=b.createElement("span");Ee.className="lat-combo__value",Ee.setAttribute("aria-hidden","true"),Ee.hidden=!0;const he=b.createElement("input");he.className="lat-combo__input",he.type="text",he.setAttribute("role","combobox"),he.setAttribute("aria-autocomplete","list"),he.setAttribute("aria-haspopup","listbox"),Y&&he.setAttribute("aria-multiselectable","true"),w.placeholder!=null&&(he.placeholder=String(w.placeholder)),w.inForm&&w.ariaLabel!=null&&he.setAttribute("aria-label",String(w.ariaLabel));const Pe=b.createElement("button");Pe.type="button",Pe.className="lat-combo__toggle",Pe.setAttribute("aria-label",T("form.combo.toggle")),Pe.setAttribute("aria-haspopup","listbox");const $e=d(b,"chevronDown");$e&&Pe.appendChild($e);const ye=b.createElement("div");ye.className="lat-combo__popup",ye.hidden=!0;const X=b.createElement("div");X.className="lat-combo__list",X.setAttribute("role","listbox");const fe=b.createElement("div");fe.className="lat-combo__spacer",X.appendChild(fe);const se=b.createElement("div");se.className="lat-combo__status",se.setAttribute("role","status"),se.setAttribute("aria-live","polite");const _e=b.createElement("div");_e.className="lat-combo__option lat-combo__option--create",_e.setAttribute("role","option"),_e.hidden=!0,X.insertBefore(_e,fe),ye.appendChild(X),ye.appendChild(se),Se.appendChild(ye),ie!=="inside"?(Se.appendChild(he),Se.appendChild(Pe),de.appendChild(Ae),de.appendChild(Oe),ie==="above"&&ke.appendChild(de),ke.appendChild(Se),ie==="below"&&ke.appendChild(de)):(Se.appendChild(Ae),Se.appendChild(Oe),Se.appendChild(Ee),Se.appendChild(he),Se.appendChild(Pe),ke.appendChild(Se));const Be=`lat-combo-lb-${ft()}`;X.id=Be,he.setAttribute("aria-controls",Be);let me=[],we=[];const et=new Map;let He=0,at=0,tt=!1,Re=!1,Ye=!1,Fe="",Le=!1,Te=-1,Ue=null,ot=0,We=null;const _t=new Map,vt=Array.isArray(w.options)?w.options:[],Ve=[],De=[];let Ze=0,dt=0;const ur=ft(),Et=[];let qe=!1;function ft(){return ft.n=(ft.n||0)+1,ft.n}function Ie(W,ae,ue){W.addEventListener(ae,ue),Et.push(()=>W.removeEventListener(ae,ue))}function pt(W){const ae=et.get(String(W));if(ae)return ae;if(W!=null){for(const ue of et.values())if(K(ue.value,W))return ue}return null}function yt(W){const ae=pt(W);return ae?ae.label:W==null?"":String(W)}function rt(W){W.value!=null&&et.set(String(W.value),W)}function Dt(W){if(typeof w.resolveLabels!="function")return;const ae=W.filter(Ne=>Ne!=null&&!pt(Ne));if(ae.length===0)return;const ue=w.resolveLabels(ae),ve=Ne=>{if(!(qe||!Array.isArray(Ne))){for(const Me of Ne){const xe=G(Me);xe.value!=null&&rt(xe)}Je()}};ue&&typeof ue.then=="function"?ue.then(ve):ve(ue)}function mt(){s.dispatchEvent($(b,"change",{bubbles:!0}))}function Bt(){return Y?we.map(W=>W.value):we.length?we[0].value:null}function jt(W){let ae;if(Y)ae=Array.isArray(W)?W:W==null?[]:[W];else{const ve=Array.isArray(W)?W.length?W[0]:null:W;ae=ve==null?[]:[ve]}const ue=ae.filter(ve=>ve!=null&&(ve!==""||pt(ve)!=null));we=ue.map(ve=>pt(ve)||{value:ve,label:ve==null?"":String(ve),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1}),Dt(ue),Je(),lt(),ct()}function Xe(){return w.readOnly===!0}function It(){we.length!==0&&(we=[],Je(),lt(),ct(),mt())}function Rt(W){const ae=b.createElement("span");ae.className="lat-combo__chip",ae.dataset.value=String(W.value);const ue=Z(b,W,w.selectedTemplate);if(ue){const ve=b.createElement("span");ve.className="lat-combo__chip-label",ve.appendChild(ue),ae.appendChild(ve)}else{const ve=re(b,W);ve&&ae.appendChild(ve);const Ne=b.createElement("span");Ne.className="lat-combo__chip-label",Ne.textContent=yt(W.value),ae.appendChild(Ne)}if(!W.disabled&&!Xe()){const ve=b.createElement("button");ve.type="button",ve.className="lat-combo__chip-remove",ve.setAttribute("aria-label",T("form.combo.remove",{label:yt(W.value)})),ve.textContent="×",Ie(ve,"click",Me=>{Me.stopPropagation(),xt(W.value)}),ae.appendChild(ve)}return ae}function Ft(){Y||(he.value=we.length?yt(we[0].value):"")}function Vt(){if(Y){Ee.hidden=!0;return}for(;Ee.firstChild;)Ee.removeChild(Ee.firstChild);if(we.length===0){Ee.hidden=!0;return}const W=we[0],ue=Z(b,W,w.selectedTemplate)||re(b,W);ue?(Ee.appendChild(ue),Ee.hidden=!1):Ee.hidden=!0}function Ht(W){const ae=T("form.combo.selected",{count:W});return ae==="form.combo.selected"?`Selected: ${W}`:ae}function Je(){for(;Ae.firstChild;)Ae.removeChild(Ae.firstChild);if(Y){for(const W of we)Ae.appendChild(Rt(W));Ae.hidden=we.length===0}else Ae.hidden=!0;ie!=="inside"&&(de.hidden=!Y||we.length===0,de.setAttribute("aria-label",Ht(we.length))),Ft(),Vt(),Ut()}function Ut(){if(!Y||we.length===0){Oe.hidden=!0;return}const W=Ce.getBoundingClientRect().bottom;let ae=0;const ue=[...Ae.children];for(const ve of ue)ve.getBoundingClientRect().top>=W-1&&(ae+=1);ae>0?(Oe.hidden=!1,Oe.textContent=T("form.combo.more",{count:ae})):Oe.hidden=!0}function xt(W){if(Xe())return;const ae=we.length;we=we.filter(ue=>!K(ue.value,W)),we.length!==ae&&(Je(),lt(),ct(),mt())}function wt(W){if(Xe())return;const ae=pt(W)||{value:W,label:W==null?"":String(W),description:null,avatar:null,icon:null,color:null,dot:null,disabled:!1};if(rt(ae),Y){if(we.some(ue=>K(ue.value,W)))return;we=[...we,ae]}else{if(we.length&&K(we[0].value,W))return;we=[ae]}Je(),lt(),ct(),mt()}function Wt(){if(Xe())return;const W=me.filter(ae=>!ae.disabled).map(ae=>({...ae}));if(!(W.length===0&&we.length===0)){for(const ae of W)rt(ae);we=W,Je(),lt(),ct(),mt()}}function Nt(){return me.length>0&&me.every(W=>we.some(ae=>K(ae.value,W.value)))}function lt(){const W=ke.querySelector(".lat-combo__select-all");if(!W)return;const ae=Nt();W.setAttribute("aria-selected",ae?"true":"false"),W.textContent=T("form.combo.selectAll")}function nt(){Le||qe||w.disabled||(Le=!0,ye.hidden=!1,he.setAttribute("aria-expanded","true"),Pe.setAttribute("aria-expanded","true"),qt(),me.length===0&&w.load&&!Re&&!Ye?ut(0):st())}function Qe(){Le&&(Le=!1,ye.hidden=!0,he.setAttribute("aria-expanded","false"),Pe.setAttribute("aria-expanded","false"),he.removeAttribute("aria-activedescendant"))}function Zt(){qe||(he.focus(),nt())}function Kt(){he.blur()}function it(W){if(Te=W,!Le)return;const ae=W===-1?`${_e.id}`:`${Be}-opt-${W}`;he.setAttribute("aria-activedescendant",ae)}function gt(W){const ae=_e.hidden===!1,ue=ae?-1:0,ve=Math.max(ue,me.length-1);if(me.length===0&&!ae){it(-1);return}it(Math.max(ue,Math.min(ve,Te+W))),kt()}function kt(){if(Te<0)return;const W=De[Te]||0,ae=W+(Ve[Te]||Ot(me[Te]));W<dt?X.scrollTop=W:ae>dt+Ze&&(X.scrollTop=ae-Ze)}function Ot(W){return F(W)?52:30}function Mt(W){return`${Be}-opt-${W}`}function Gt(W,ae){const ue=b.createElement("div");ue.className="lat-combo__option",ue.setAttribute("role","option"),ue.id=Mt(ae);const ve=we.some(xe=>K(xe.value,W.value));ue.setAttribute("aria-selected",ve?"true":"false"),W.disabled&&ue.setAttribute("aria-disabled","true");const Ne=Z(b,W,w.optionTemplate);if(Ne)ue.appendChild(Ne);else{const xe=re(b,W);xe&&ue.appendChild(xe);const ze=b.createElement("span");ze.className="lat-combo__text";const Ge=b.createElement("span");if(Ge.className="lat-combo__title",Ge.textContent=W.label,ze.appendChild(Ge),W.description!=null){const Ct=b.createElement("span");Ct.className="lat-combo__subtitle",Ct.textContent=W.description,ze.appendChild(Ct)}ue.appendChild(ze)}return Ie(ue,"click",xe=>{xe.stopPropagation(),Lt(ae)}),ue}function Yt(){const W=w.newOptions&&!Xe()&&Fe.trim()!=="",ae=me.some(ue=>K(ue.value,Fe)||ue.label===Fe);if(!W||ae){_e.hidden=!0;return}_e.hidden=!1,_e.id=`${Be}-create`,_e.textContent=T("form.combo.create",{query:Fe}),Te===-1&&it(-1)}function st(){if(Yt(),Le&&(Ze=X.clientHeight||Ze),me.length===0){fe.style.height="0px",bt();return}let W=!1;for(let xe=0;xe<me.length;xe++)Ve[xe]==null&&(Ve[xe]=Ot(me[xe]));De.length=0,De[0]=0;for(let xe=1;xe<=me.length;xe++)De[xe]=De[xe-1]+Ve[xe-1];const ae=De[me.length];fe.style.height=`${ae}px`;const ue=dt,ve=dt+Ze;let Ne=0;for(;Ne<me.length-1&&De[Ne+1]<ue;)Ne+=1;let Me=Ne;for(;Me<me.length&&De[Me]<ve;)Me+=1;for(Me=Math.min(me.length,Me+2);fe.firstChild;)fe.removeChild(fe.firstChild);for(let xe=Ne;xe<Me;xe++){const ze=Gt(me[xe],xe);ze.style.position="absolute",ze.style.left="0",ze.style.right="0",ze.style.top="0",ze.style.transform=`translateY(${De[xe]}px)`,fe.appendChild(ze)}for(let xe=Ne;xe<Me;xe++){const ze=b.getElementById(Mt(xe));if(!ze)continue;const Ge=ze.getBoundingClientRect().height;Ge>0&&Math.abs(Ge-Ve[xe])>.5&&(Ve[xe]=Ge,W=!0)}W?st():bt()}function bt(){for(;se.firstChild;)se.removeChild(se.firstChild);if(Re)se.textContent=T("form.combo.loading"),se.dataset.state="loading";else if(Ye){se.textContent=T("form.combo.error"),se.dataset.state="error";const W=b.createElement("button");W.type="button",W.className="lat-combo__retry",W.textContent=T("form.combo.retry"),Ie(W,"click",ue=>{ue.stopPropagation(),Pt()}),se.appendChild(W)}else me.length===0&&!w.load&&vt.length===0?se.textContent="":me.length===0?(se.textContent=T("form.combo.empty"),se.dataset.state="empty"):(se.textContent=T("form.combo.results",{count:at}),se.dataset.state="results")}function ct(){const W=`${Be}-opt-`;for(const ae of X.querySelectorAll('.lat-combo__option[role="option"]')){const ue=ae.id||"";if(!ue.startsWith(W))continue;const ve=Number(ue.slice(W.length));if(Number.isNaN(ve))continue;const Ne=me[ve];Ne&&ae.setAttribute("aria-selected",we.some(Me=>K(Me.value,Ne.value))?"true":"false")}lt()}function qt(){Ze=X.clientHeight||240}function Xt(){if(be&&Y){const W=b.createElement("div");W.className="lat-combo__select-all",W.setAttribute("role","option"),Ie(W,"click",ue=>{ue.stopPropagation(),!Xe()&&(Nt()?(we=[],Je(),ct(),mt()):Wt())}),ye.insertBefore(W,X)}}function ut(W){if(qe)return;if(typeof w.load!="function"){const Me=Fe.trim().toLowerCase(),xe=vt.map(G).filter(ze=>Me===""||ze.label.toLowerCase().includes(Me));me=xe,at=xe.length,tt=!1,He=1,Ve.length=0,De.length=0;for(const ze of me)rt(ze);st();return}if(Re)return;Re=!0,Ye=!1,ot+=1;const ae=ot;Ue&&Ue.abort(),Ue=new AbortController;const ue=Ue.signal;bt();let ve;try{ve=w.load({search:Fe,page:W,signal:ue,pageSize:pe})}catch{Re=!1,Ye=!0,bt();return}const Ne=Me=>{if(qe||ae!==ot)return;Re=!1;const xe=U(Me),ze=xe.items.map(G);W===0?(me=ze,Ve.length=0,De.length=0,_t.set(Fe,{items:ze,total:xe.total,hasMore:xe.hasMore,nextPage:1})):me=me.concat(ze),at=typeof xe.total=="number"?xe.total:me.length,tt=xe.hasMore,He=W+1;for(const Ge of ze)rt(Ge);Ve.length=me.length,st(),zt()};ve&&typeof ve.then=="function"?ve.then(Ne).catch(Me=>{qe||ae!==ot||Me&&Me.name==="AbortError"||(Re=!1,Ye=!0,bt())}):Ne(ve)}function zt(){if(!tt||Re||!Le)return;(De[me.length]||0)<Ze+e&&ut(He)}function Pt(){qe||(We&&(clearTimeout(We),We=null),Ue&&Ue.abort(),ot+=1,_t.delete(Fe),me=[],at=0,tt=!1,Re=!1,Ye=!1,He=0,Ve.length=0,De.length=0,Te=-1,ut(0))}function Jt(){Fe=he.value,Ue&&Ue.abort(),ot+=1;const W=_t.get(Fe);if(W&&typeof w.load=="function"){me=W.items.map(G),at=W.total,tt=W.hasMore,He=W.nextPage,Re=!1,Ye=!1,Ve.length=0,De.length=0,Te=-1;for(const ae of me)rt(ae);st(),zt();return}me=[],at=0,tt=!1,Re=!1,Ye=!1,He=0,Ve.length=0,De.length=0,Te=-1,ut(0)}function Qt(){We&&clearTimeout(We),We=setTimeout(()=>{We=null,Jt()},oe)}function er(W){const ae=_e.hidden===!1,ue=me.length+(ae?1:0);if(W.key==="ArrowDown"){if(W.preventDefault(),nt(),ue===0)return;Te===-1?it(me.length?0:-1):gt(1)}else if(W.key==="ArrowUp"){if(W.preventDefault(),!Le){nt();return}if(Te===-1){me.length&&it(0);return}gt(-1)}else if(W.key==="Home"){if(!Le)return;W.preventDefault(),it(ae?-1:0),kt()}else if(W.key==="End"){if(!Le)return;W.preventDefault(),it(me.length-1),kt()}else if(W.key==="PageDown"){if(!Le)return;W.preventDefault(),gt(Math.max(1,Math.floor(Math.max(Ze,60)/30)))}else if(W.key==="PageUp"){if(!Le)return;W.preventDefault(),gt(-Math.max(1,Math.floor(Math.max(Ze,60)/30)))}else if(W.key==="Enter"){if(!Le){nt();return}Te===-1&&ae?(W.preventDefault(),tr()):Te>=0&&me[Te]&&(W.preventDefault(),Lt(Te))}else W.key==="Escape"?Le&&(W.preventDefault(),Qe()):W.key==="Backspace"&&Y&&he.value===""&&we.length?(W.preventDefault(),xt(we[we.length-1].value)):W.key==="Tab"&&Qe()}function tr(){if(!w.newOptions||Xe())return;const W=Fe.trim();if(W==="")return;let ae;typeof w.newOptions=="object"&&typeof w.newOptions.create=="function"?ae=w.newOptions.create(W):ae={value:W,label:W};const ue=G(ae);rt(ue),wt(ue.value),Qe()}function Lt(W){if(Xe())return;const ae=me[W];!ae||ae.disabled||(Y?(we.some(ue=>K(ue.value,ae.value))?xt(ae.value):wt(ae.value),he.focus()):(wt(ae.value),Qe(),he.value=ae.label))}const rr=()=>{Le||(he.focus(),nt())},nr=W=>{W.stopPropagation(),Le?Qe():(he.focus(),nt())},ir=()=>{Qt()},ar=W=>{W.stopPropagation()},or=()=>{dt=X.scrollTop,st(),tt&&!Re&&X.scrollTop+X.clientHeight>=X.scrollHeight-e&&ut(He)},lr=()=>{s.dispatchEvent($(b,"focus"))},sr=()=>{s.dispatchEvent($(b,"blur")),Qe()};Ie(Se,"click",rr),Ie(Pe,"click",nr),Ie(he,"input",ir),Ie(he,"change",ar),Ie(he,"keydown",er),Ie(he,"focus",lr),Ie(he,"blur",sr),Ie(X,"scroll",or),Ie(X,"mousedown",W=>W.preventDefault()),Xt(),vt.length&&typeof w.load!="function"&&(Fe="",ut(0)),jt(je);const Ke={el:s,root:ke,input:he,getValue:Bt,setValue(W){return jt(W),Ke},reload(){return Pt(),Ke},clear(){return It(),Ke},open(){return nt(),Ke},close(){return Qe(),Ke},focus(){return Zt(),Ke},blur(){return Kt(),Ke},setDisabled(W){w.disabled=W,he.disabled=W,Pe.disabled=W,W&&Qe()},setReadOnly(W){w.readOnly=W,he.readOnly=W,W?he.setAttribute("aria-readonly","true"):he.removeAttribute("aria-readonly"),Je()},destroy(){qe=!0,We&&clearTimeout(We),Ue&&Ue.abort();for(const W of Et.splice(0))W();for(;ke.firstChild;)ke.removeChild(ke.firstChild)}};return s.appendChild(ke),s.__combo=Ke,Ke}z("combo",{kind:"field",build(s,w){const b=w.doc.createElement("div"),T=s.props||{},Y=k(b,{load:T.load,options:s.options,multiple:T.multiple,value:s.value,resolveLabels:T.resolveLabels,newOptions:T.newOptions,optionTemplate:T.optionTemplate,selectedTemplate:T.selectedTemplate,selectAll:T.selectAll,debounce:T.debounce,pageSize:T.pageSize,maxHeight:T.maxHeight,chipPlacement:T.chipPlacement,placeholder:s.placeholder,ariaLabel:s.label,t:w.t,doc:w.doc,inForm:!0});if(w.disposers.push(()=>Y.destroy()),Array.isArray(T.dependsOn))for(const ie of T.dependsOn){const oe=be=>{be.name===ie&&(Y.clear(),Y.reload())},pe=w.emitter.on("change",oe);w.disposers.push(pe)}return b.focus=()=>Y.focus(),b.blur=()=>Y.blur(),b},read(s){return s.__combo?s.__combo.getValue():null},write(s,w){s.__combo&&s.__combo.setValue(w)},state(s,w){s.__combo&&(s.__combo.setDisabled(w.disabled===!0),s.__combo.setReadOnly(w.readOnly===!0))}})}),ge("packages/modules/form/extras.js",function(B,q){"use strict";Object.defineProperty(B,"injectChromeStyles",{enumerable:!0,get:function(){return d}}),Object.defineProperty(B,"buildTooltip",{enumerable:!0,get:function(){return C}}),Object.defineProperty(B,"buildLock",{enumerable:!0,get:function(){return e}}),Object.defineProperty(B,"renderAvatarAddon",{enumerable:!0,get:function(){return O}}),Object.defineProperty(B,"buildAddons",{enumerable:!0,get:function(){return H}}),Object.defineProperty(B,"buildPanel",{enumerable:!0,get:function(){return v}});const z=q("packages/modules/form/styles.js").NS,h=q("packages/modules/form/controls/field-icon.js"),Q=h.makeFieldIcon,l=h.injectFieldIconStyles,L=q("packages/modules/form/controls/combo.js"),E=L.initialsFor,f=L.renderAvatar,P="data-lattice-form-chrome-styles";function A(t){return t==="cols"?`${z}__cols`:t==="items"?`${z}__items`:`${z}__rows`}function c(){return`
|
|
872
875
|
.${z}__label-group{
|
|
873
876
|
display:flex; align-items:center; gap:calc(var(--lattice-space) / 2);
|
|
874
877
|
min-width:0; box-sizing:border-box;
|
|
@@ -982,7 +985,7 @@
|
|
|
982
985
|
.${z}__panel-action:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:1px; }
|
|
983
986
|
.${z}__panel-body{ min-width:0; min-height:0; }
|
|
984
987
|
.${z}__panel-body[hidden]{ display:none; }
|
|
985
|
-
`.trim()}function d(t){const y=t&&t.documentElement;if(!y||(l(t),y.getAttribute(P)))return;y.setAttribute(P,"1");const a=t.createElement("style");a.textContent=c(),(t.head||t.body||y).appendChild(a)}function p(t,y,a,i){y.addEventListener(a,i),t.disposers.push(()=>y.removeEventListener(a,i))}function M(t,y){if(y==null||y==="")return null;if(y.nodeType){const r=y.cloneNode(!0);return r.setAttribute&&r.setAttribute("aria-hidden","true"),r}const a=Q(t,String(y));if(a)return a;const i=t.createElement("span");return i.className=`${z}__icon-glyph`,i.setAttribute("aria-hidden","true"),i.textContent=String(y).slice(0,2),i}function
|
|
988
|
+
`.trim()}function d(t){const y=t&&t.documentElement;if(!y||(l(t),y.getAttribute(P)))return;y.setAttribute(P,"1");const a=t.createElement("style");a.textContent=c(),(t.head||t.body||y).appendChild(a)}function p(t,y,a,i){y.addEventListener(a,i),t.disposers.push(()=>y.removeEventListener(a,i))}function M(t,y){if(y==null||y==="")return null;if(y.nodeType){const r=y.cloneNode(!0);return r.setAttribute&&r.setAttribute("aria-hidden","true"),r}const a=Q(t,String(y));if(a)return a;const i=t.createElement("span");return i.className=`${z}__icon-glyph`,i.setAttribute("aria-hidden","true"),i.textContent=String(y).slice(0,2),i}function C(t,y){const{labelEl:a,item:i,labelPosition:r,labelWidth:_}=y,u=i.tooltip;if(typeof u!="string"||u===""||r==="hidden")return null;d(t.doc);const R=t.doc,ne=R.createElement("div");ne.className=`${z}__label-group`,r==="left"&&_!=null&&(ne.style.flex=`0 0 ${typeof _=="number"?`${_}px`:String(_)}`),ne.appendChild(a);const ee=`lat-form-tip-${C.seq=(C.seq||0)+1}`,J=R.createElement("span");J.className=`${z}__tooltip-wrap`;const o=R.createElement("button");o.type="button",o.className=`${z}__tooltip-trigger`,o.setAttribute("aria-label",t.t("form.tooltip.help")),o.setAttribute("aria-expanded","false"),o.setAttribute("aria-controls",ee),o.textContent="?";const I=R.createElement("span");I.className=`${z}__tooltip`,I.setAttribute("id",ee),I.setAttribute("role","tooltip"),I.textContent=u,J.appendChild(o),J.appendChild(I),ne.appendChild(J);let j=!1;const D=()=>{o.setAttribute("aria-expanded","true"),I.classList.add(`${z}__tooltip--open`)},te=()=>{j||(o.setAttribute("aria-expanded","false"),I.classList.remove(`${z}__tooltip--open`))};return p(t,o,"mouseenter",D),p(t,o,"mouseleave",te),p(t,o,"focus",D),p(t,o,"blur",te),p(t,o,"click",V=>{V.stopPropagation(),j=!j,j?D():te()}),{group:ne,tooltipId:ee}}function e(t,y,a,i){const r=i&&i.tagName;if(!(a.lockIcon!==!1&&(r==="INPUT"||r==="TEXTAREA")&&(a.readOnly===!0||a.readOnlyWhen!=null)))return null;d(t.doc);const u=t.doc.createElement("span");u.className=`${z}__lock`,u.setAttribute("aria-hidden","true"),u.title=t.t("form.readonly");const R=Q(t.doc,"lock");return R&&u.appendChild(R),y.appendChild(u),{el:u}}function m(t,y){if(!Array.isArray(t))return null;const a=y==null?"":String(y);for(const i of t){if(i!=null&&typeof i=="object"&&Array.isArray(i.options)){const r=m(i.options,y);if(r)return r;continue}if(i!=null&&typeof i=="object"){const r=i.value==null?"":String(i.value);if(r===a)return{label:i.label!=null?String(i.label):r,avatar:i.avatar,color:i.color}}else{const r=String(i);if(r===a)return{label:r,avatar:void 0,color:void 0}}}return null}function S(t,y,a){let i=null,r=y==null?"":String(y),_;if(typeof t=="function")i=t(y,a);else if(t===!0){const u=m(a.options,y);u&&(r=u.label,_=u.color,u.avatar!=null&&u.avatar!==""&&(i=String(u.avatar)))}else i=String(t);if(i==null||i===""){if(r==null||r==="")return null;i=E(r)}return{avatar:i,label:r,color:_}}function O(t,y,a,i,r){for(;y.firstChild;)y.removeChild(y.firstChild);const _=S(a.avatar,i,r);_&&y.appendChild(f(t,_))}function H(t,y){const a=y.addons;if(!Array.isArray(a)||a.length===0)return null;d(t.doc);const i=t.doc,r=i.createElement("div");r.className=`${z}__addons`;const _=[];for(const u of a){if(u==null||typeof u!="object")continue;if(u.avatar!==void 0&&u.avatar!==null&&u.avatar!==!1){const o=i.createElement("span");o.className=`${z}__addon-avatar`,o.setAttribute("aria-hidden","true"),r.appendChild(o),_.push({el:o,spec:u,avatar:!0});continue}const ne=u.href,ee=i.createElement(ne!=null?"a":"button");ee.className=`${z}__addon`,ne==null?ee.type="button":ee.href=String(ne),u.ariaLabel!=null&&u.ariaLabel!==""&&(ee.setAttribute("aria-label",String(u.ariaLabel)),ee.title=u.tooltip!=null&&u.tooltip!==""?String(u.tooltip):String(u.ariaLabel));const J=M(i,u.icon);J&&ee.appendChild(J),r.appendChild(ee),_.push({el:ee,spec:u,avatar:!1})}return{bar:r,entries:_}}function v(t,y,a,i,r){d(t.doc);const _=t.doc,u=_.createElement("section");u.className=`${z}__panel`;const R=_.createElement("div");R.className=`${z}__panel-header`;const ne=_.createElement("div");if(ne.className=`${z}__panel-heading`,y.title!=null){const o=_.createElement("h3");o.className=`${z}__panel-title`,o.textContent=y.title,ne.appendChild(o)}if(y.subtitle!=null){const o=_.createElement("p");o.className=`${z}__panel-subtitle`,o.textContent=y.subtitle,ne.appendChild(o)}R.appendChild(ne);const ee=_.createElement("div");ee.className=`${z}__panel-actions`,R.appendChild(ee),u.appendChild(R);const J=_.createElement("div");J.className=`${z}__panel-body`,y.axis&&(J.classList.add(A(y.axis)),r.buildChildren(t,J,y.blocks,y.axis,i)),u.appendChild(J);for(const o of y.actions){const I=_.createElement("button");I.type="button",I.className=`${z}__panel-action`,o.ariaLabel!=null&&o.ariaLabel!==""&&(I.setAttribute("aria-label",String(o.ariaLabel)),I.title=String(o.ariaLabel));const j=M(_,o.icon);j&&I.appendChild(j),typeof o.onClick=="function"&&p(t,I,"click",()=>{o.onClick()}),ee.appendChild(I)}if(y.collapsible){const o=_.createElement("button");o.type="button",o.className=`${z}__panel-action ${z}__panel-collapse`,o.setAttribute("aria-expanded","true");const I=t.t("form.panel.collapse");o.setAttribute("aria-label",I),o.title=I;const j=Q(_,"chevronUp");j&&o.appendChild(j);let D=!1;p(t,o,"click",()=>{D=!D,J.hidden=D,o.setAttribute("aria-expanded",D?"false":"true");const te=t.t(D?"form.panel.expand":"form.panel.collapse");for(o.setAttribute("aria-label",te),o.title=te;o.firstChild;)o.removeChild(o.firstChild);const V=Q(_,D?"chevronDown":"chevronUp");V&&o.appendChild(V)}),ee.appendChild(o)}return r.applyCss(u,y.css),y.spacing!=null&&u.style.setProperty("--lattice-form-item-gap",y.spacing),y.hidden&&(u.hidden=!0),a.appendChild(u),u}}),ge("packages/modules/form/view.js",function(B,q){"use strict";Object.defineProperty(B,"injectSeparatorLabelStyles",{enumerable:!0,get:function(){return r}}),Object.defineProperty(B,"applyCss",{enumerable:!0,get:function(){return _}}),Object.defineProperty(B,"runValidation",{enumerable:!0,get:function(){return te}}),Object.defineProperty(B,"markValidation",{enumerable:!0,get:function(){return V}}),Object.defineProperty(B,"validateItem",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(B,"buildItem",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(B,"buildBlock",{enumerable:!0,get:function(){return g}}),Object.defineProperty(B,"buildChildren",{enumerable:!0,get:function(){return x}}),Object.defineProperty(B,"mount",{enumerable:!0,get:function(){return N}}),Object.defineProperty(B,"wizardGoTo",{enumerable:!0,get:function(){return G}}),Object.defineProperty(B,"wizardNext",{enumerable:!0,get:function(){return U}}),Object.defineProperty(B,"wizardBack",{enumerable:!0,get:function(){return K}});const n=q("packages/modules/form/styles.js"),z=n.NS,h=n.injectColsBreakpoint,Q=q("packages/modules/form/model.js"),l=Q.cssSize,L=Q.isEmpty,f=q("packages/modules/form/controls/registry.js").resolveControl,A=q("packages/modules/form/rules.js").applyRules,d=q("packages/modules/form/state.js").syncRecordState,M=q("packages/modules/form/stepper.js").createStepper,C=q("packages/modules/form/validation.js"),e=C.normalizeHookResult,m=C.validateValue,S=q("packages/modules/form/extras.js"),O=S.buildTooltip,H=S.buildLock,v=S.buildAddons,t=S.renderAvatarAddon,y=S.buildPanel,a="data-lattice-separator-label-styles";function i(){return`
|
|
986
989
|
.${z}__separator--labelled{
|
|
987
990
|
display:flex; align-items:center; gap:var(--lattice-space);
|
|
988
991
|
border-top:0; margin:var(--lattice-space) 0; width:100%;
|
|
@@ -995,7 +998,7 @@
|
|
|
995
998
|
color:var(--lattice-foreground-muted);
|
|
996
999
|
font-size:calc(var(--lattice-font-size) - 1px); line-height:1.2;
|
|
997
1000
|
}
|
|
998
|
-
`.trim()}function r($){const A=$&&$.documentElement;if(!A||A.getAttribute(a))return;A.setAttribute(a,"1");const s=$.createElement("style");s.textContent=i(),($.head||$.body||A).appendChild(s)}function _($,A){if(A!=null){if(typeof A=="string"){if(A.trim()){const s=typeof $.style.cssText=="string"?$.style.cssText:"";$.style.cssText=s?`${s};${A}`:A}return}for(const s of Object.keys(A))$.style[s]=A[s]}}function u($){return $==="cols"?`${z}__cols`:$==="items"?`${z}__items`:`${z}__rows`}function R($,A,s,k){A.addEventListener(s,k),$.disposers.push(()=>A.removeEventListener(s,k))}function ie($){return $.uidSeq+=1,`lat-form-${$.uidSeq}`}function ee($){if($==null)return null;const A=$.tagName;return A==="INPUT"||A==="TEXTAREA"||A==="SELECT"?$:typeof $.querySelector=="function"?$.querySelector("input, textarea, select"):null}function J($,A,s){const k={name:A.item.name,value:s,previousValue:A.value,item:A.item},b=$.emitter.emitBefore("beforeChange",k,"user"),B=()=>{A.value=s,A.item.value=s,T(A),$.emitter.emit("change",{name:A.item.name,value:s,previousValue:k.previousValue,item:A.item}),C($),A.item.validationMode==="change"&&ce($,A)},Y=oe=>{A.def.write(A.control,A.value),j($,A,oe)},ne=oe=>{if(!oe){A.def.write(A.control,A.value);return}const pe=o($,A,s);pe&&typeof pe.then=="function"?pe.then(be=>{be.ok?B():Y(be.message)}):pe.ok?B():Y(pe.message)};b&&typeof b.then=="function"?b.then(ne):ne(b)}function o($,A,s){if(A.ruleRequired&&L(s))return{ok:!1,message:$.t("form.required")};const k=A.def;if(typeof k.validate!="function")return{ok:!0,message:null};const b=k.validate(A.control,A.item,s);return b&&typeof b.then=="function"?b.then(B=>I($,B)):I($,b)}function I($,A){return A===!1?{ok:!1,message:$.t("form.invalid")}:typeof A=="string"?{ok:!1,message:A}:{ok:!0,message:null}}function j($,A,s){let k=A.errorEl;k||(k=$.doc.createElement("div"),k.className=`${z}__error`,A.el.appendChild(k),A.errorEl=k);const b=s==null||s===""?$.t("form.invalid"):String(s);k.textContent=b,A.el.setAttribute("data-invalid","true"),A.control.setAttribute("aria-invalid","true")}function T($){$.errorEl&&($.errorEl.remove(),$.errorEl=null),$.el.removeAttribute("data-invalid"),$.control.removeAttribute("aria-invalid")}function te($,A){const s=A.value,k=A.item;if(typeof A.def.validate=="function"){const b=e(A.def.validate(A.control,k,s),k,$.t);if(b)return b}return m(k,s,$.t)}function V($,A,s){const k=A.item,b=A.validationEl;if(A.validation.pristine=!1,A.preEl&&(A.preEl.hidden=!0),s){A.validation.valid=!1,A.validation.code=s.code,A.validation.message=s.message,A.control.setAttribute("aria-invalid","true");const B=A.tooltipId?`${A.tooltipId} ${b.id}`:b.id;A.control.setAttribute("aria-describedby",B),b.textContent=s.message,b.className=`${z}__validation ${z}__validation--error`,b.hidden=!1;return}A.validation.valid=!0,A.validation.code=null,A.validation.message=null,A.control.removeAttribute("aria-invalid"),A.tooltipId?A.control.setAttribute("aria-describedby",A.tooltipId):A.control.removeAttribute("aria-describedby"),typeof k.successMessage=="string"&&k.successMessage!==""?(b.textContent=k.successMessage,b.className=`${z}__validation ${z}__validation--success`,b.hidden=!1):(b.textContent="",b.className=`${z}__validation`,b.hidden=!0)}function ce($,A){typeof A.def.reset=="function"&&A.def.reset(A.control,A.item);const s=te($,A);V($,A,s);const k=s==null;return $.emitter.emit("validated",{name:A.item.name,item:A.item,value:A.value,valid:k,failures:s?[{name:A.item.name,rule:s.code,message:s.message}]:[]}),k}function le($,A){const s=A.control,k=A.item,b=A.def,B=Y=>()=>{$.emitter.emit(Y,{name:k.name,item:k}),Y==="blur"&&k.validationMode==="blur"&&ce($,A)};if(b.kind==="field"){const Y=()=>{$.emitter.emit("input",{name:k.name,value:b.read(s,k),item:k})},ne=()=>{J($,A,b.read(s,k))};R($,s,"input",Y),R($,s,"change",ne);for(const oe of b.domEvents||[])R($,s,oe,()=>{$.emitter.emit(oe,{name:k.name,value:b.read(s,k),item:k})})}else b.kind==="toggle"?R($,s,"change",()=>{J($,A,b.read(s,k))}):b.kind==="button"&&R($,s,"click",()=>{s.disabled||s.getAttribute("aria-disabled")==="true"||$.emitter.emit("click",{name:k.name,item:k,value:null})});b.kind!=="display"&&(R($,s,"focus",B("focus")),R($,s,"blur",B("blur")))}function re($,A){if(typeof $=="string"&&/%$/.test($.trim())){const s=parseFloat($);if(Number.isFinite(s)){const k=Math.round(s*A/100*1e6)/1e6;return`0 0 calc(${s}% - ${k} * var(--lattice-space))`}}return`0 0 ${l($)}`}function K($,A,s,k={}){const b=f(A.type)||f("text"),B=A.labelPosition!=null?A.labelPosition:k.labelPosition!=null?k.labelPosition:"top",Y=A.labelWidth!=null?A.labelWidth:k.labelWidth,ne=A.requiredHint!==void 0?A.requiredHint:k.requiredHint,oe=$.doc.createElement("div");oe.className=`${z}__item`,oe.setAttribute("data-label-position",B);const pe=b.build(A,$),be=b.action===!0,je=!be&&A.label!=null&&A.label!=="";let ke=null,$e=null;if(je){ke=$.doc.createElement("label"),ke.className=`${z}__label`,ke.textContent=String(A.label);const ye=ie($);ke.setAttribute("for",ye),(ee(pe)||pe).id=ye,B==="hidden"&&ke.classList.add(`${z}__label--hidden`);const X=O($,{labelEl:ke,item:A,labelPosition:B,labelWidth:Y});X?($e=X.tooltipId,oe.appendChild(X.group)):(B==="left"&&Y!=null&&(ke.style.flex=`0 0 ${l(Y)}`),oe.appendChild(ke))}else if(B==="hidden"&&!be){const ye=ee(pe);ye&&A.placeholder!=null&&A.placeholder!==""&&ye.setAttribute("aria-label",String(A.placeholder))}const Ee=$.doc.createElement("div");Ee.className=`${z}__control`,Ee.appendChild(pe);const Oe=H($,Ee,A,pe),de=v($,A);let Ce=Ee;if(de&&(Ce=$.doc.createElement("div"),Ce.className=`${z}__field`,Ce.appendChild(Ee),Ce.appendChild(de.bar)),oe.appendChild(Ce),!be&&A.helpMessage!=null&&A.helpMessage!==""){const ye=$.doc.createElement("div");ye.className=`${z}__help`,ye.textContent=String(A.helpMessage),oe.appendChild(ye)}let Se=null;!be&&A.preMessage!=null&&A.preMessage!==""&&(Se=$.doc.createElement("div"),Se.className=`${z}__pre`,Se.textContent=String(A.preMessage),oe.appendChild(Se));const he=$.doc.createElement("div");he.className=`${z}__validation`,he.id=ie($),he.hidden=!0,oe.appendChild(he),A.width!=null&&(k.colsGapCount!=null?oe.style.setProperty("--lattice-item-flex",re(A.width,k.colsGapCount)):oe.style.flex=`0 0 ${l(A.width)}`),B==="left"&&(Ce.style.flex="1 1 auto"),be&&B==="left"&&Y!=null&&!(A.props&&A.props.fullWidth===!0)&&(Ce.style.paddingLeft=`calc(${l(Y)} + var(--lattice-space))`),_(oe,A.css);const Pe=b.read(pe,A),Ae={item:A,el:oe,control:pe,controlWrap:Ee,def:b,value:Pe,hidden:A.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:he,preEl:Se,labelEl:ke,labelPosition:B,requiredHint:ne,placeholderEl:ee(pe),placeholderBase:A.placeholder!=null?String(A.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:$e,lockEl:Oe?Oe.el:null};if(A.value=Pe,$e&&Ae.control.setAttribute("aria-describedby",$e),de)for(const ye of de.entries){if(ye.avatar){t($.doc,ye.el,ye.spec,Ae.value,Ae.item);continue}typeof ye.spec.onClick=="function"&&R($,ye.el,"click",()=>{ye.spec.onClick(Ae.value,Ae.item)})}if(Ae.syncLock=()=>{if(!Ae.lockEl)return;const ye=Ae.item.readOnly===!0||Ae.ruleReadOnly;Ae.lockEl.hidden=!ye,Ae.lockEl.parentElement.classList.toggle(`${z}__control--lock`,ye)},Ae.syncAddons=()=>{if(!de)return;const ye=Ae.item.disabled===!0;for(const X of de.entries){if(X.avatar){t($.doc,X.el,X.spec,Ae.value,Ae.item);continue}X.el.tagName==="A"?X.el.setAttribute("aria-disabled",ye?"true":"false"):X.el.disabled=ye}},d(Ae),Ae.hidden&&(oe.hidden=!0),b.custom&&pe.__latticeFormApi){const ye=pe.__latticeFormApi;ye._read=()=>Ae.value,ye._write=X=>{Ae.value=X,Ae.item.value=X,b.write(pe,X),C($)},ye._commit=X=>{J($,Ae,X)},ye._input=X=>{$.emitter.emit("input",{name:Ae.item.name,value:X,item:Ae.item})}}return typeof b.destroy=="function"&&$.disposers.push(()=>b.destroy(pe)),le($,Ae),$.order.push(Ae),A.name!=null&&$.items.set(A.name,Ae),s.appendChild(oe),Ae}function g($,A,s,k={}){const b={labelPosition:A.labelPosition!=null?A.labelPosition:k.labelPosition,labelWidth:A.labelWidth!=null?A.labelWidth:k.labelWidth,requiredHint:k.requiredHint};if(A.kind==="panel")return y($,A,s,b,{buildChildren:x,applyCss:_});if(A.kind==="spacer"){const Y=$.doc.createElement("div");return Y.className=`${z}__spacer`,_(Y,A.css),A.hidden&&(Y.hidden=!0),s.appendChild(Y),Y}if(A.kind==="separator"){const Y=$.doc.createElement("div");Y.className=`${z}__separator`,Y.setAttribute("role","separator");const ne=A.label;if(ne!=null){r($.doc),Y.classList.add(`${z}__separator--labelled`);const oe=$.t(ne);Y.setAttribute("aria-label",oe);const pe=$.doc.createElement("span");pe.className=`${z}__separator-rule`,pe.setAttribute("aria-hidden","true");const be=$.doc.createElement("span");be.className=`${z}__separator-label`,be.textContent=oe;const je=$.doc.createElement("span");je.className=`${z}__separator-rule`,je.setAttribute("aria-hidden","true"),Y.appendChild(pe),Y.appendChild(be),Y.appendChild(je)}else Y.setAttribute("aria-label",$.t("form.separator"));return _(Y,A.css),A.hidden&&(Y.hidden=!0),s.appendChild(Y),Y}if(A.kind==="fieldset"){const Y=$.doc.createElement("fieldset");if(Y.className=`${z}__fieldset`,A.legend!=null){const oe=$.doc.createElement("legend");oe.className=`${z}__legend`,oe.textContent=A.legend,Y.appendChild(oe)}const ne=$.doc.createElement("div");return ne.className=`${z}__fieldset-body`,A.axis&&ne.classList.add(u(A.axis)),A.axis&&x($,ne,A.blocks,A.axis,b),Y.appendChild(ne),_(Y,A.css),A.spacing!=null&&Y.style.setProperty("--lattice-form-item-gap",A.spacing),A.hidden&&(Y.hidden=!0),s.appendChild(Y),Y}const B=$.doc.createElement("div");return B.className=u(A.axis),A.axis&&x($,B,A.blocks,A.axis,b),_(B,A.css),A.spacing!=null&&B.style.setProperty("--lattice-form-item-gap",A.spacing),A.hidden&&(B.hidden=!0),s.appendChild(B),B}function x($,A,s,k,b={}){const B=k==="cols"?{...b,colsGapCount:s.length-1}:b;for(const Y of s)Y.kind==="item"?K($,Y,A,B):g($,Y,A,b)}function N($){const A=$.el;for(;A.firstChild;)A.removeChild(A.firstChild);$.items.clear(),$.order.length=0;const s=$.model;A.classList.add(z,u(s.axis)),A.setAttribute("data-density",s.density),s.colsBreakpoint!==480&&A.style.setProperty("--lattice-cols-container",h($.doc,s.colsBreakpoint)),$.disposers.push(()=>{A.classList.remove(`${z}__rows`,`${z}__cols`,`${z}__items`)}),_(A,s.css),s.spacing!=null&&A.style.setProperty("--lattice-form-item-gap",s.spacing),s.labelGap!=null&&A.style.setProperty("--lattice-form-label-gap",s.labelGap);const k={labelPosition:s.labelPosition,labelWidth:s.labelWidth,requiredHint:s.requiredHint};s.steps&&s.steps.length?F($,k):x($,A,s.blocks,s.axis==="cols"?"cols":"rows",k),C($)}function F($,A={}){const s=$.model,k=s.steps,b=$.doc,B=$.el,Y=b.createElement("div");B.appendChild(Y);const ne=M(Y,{doc:b,t:$.t,steps:k.map(de=>({id:de.id,label:de.label})),active:0,orientation:s.stepOrientation,onGoTo:de=>{G($,de)}}),oe=[];let pe=$.order.length;for(const de of k){const Ce=b.createElement("div");Ce.className=`${z}__step`,Ce.hidden=!0,x($,Ce,de.blocks,de.axis,A),de.css&&_(Ce,de.css),B.appendChild(Ce);const Se=$.order.length;Ce.__records=$.order.slice(pe,Se),pe=Se,oe.push(Ce)}const be=b.createElement("div");be.className=`${z}__step-nav`;const je=b.createElement("button");je.type="button",je.className=`${z}__step-back`,je.textContent=$.t("form.back");const ke=b.createElement("button");ke.type="button",ke.className=`${z}__step-next`,ke.textContent=$.t("form.next"),be.appendChild(je),be.appendChild(ke),B.appendChild(be);const $e={steps:k,bodies:oe,stepper:ne,back:je,next:ke,active:0};$.wizard=$e;const Ee=()=>{ne.setActive($e.active),oe.forEach((de,Ce)=>{de.hidden=Ce!==$e.active}),je.disabled=$e.active===0,ke.textContent=$e.active===k.length-1?$.t("form.finish"):$.t("form.next")},Oe=async de=>{const Ce=oe[de].__records||[];for(const Se of Ce){if(Se.item.name==null||Se.def.kind==="button")continue;const he=await Promise.resolve(o($,Se,Se.value));if(!he.ok)return j($,Se,he.message),!1;T(Se)}return!0};$e._stepValid=Oe,$e._render=Ee,je.addEventListener("click",()=>{Z($)}),ke.addEventListener("click",()=>{U($)}),Ee()}async function G($,A){const s=$.wizard;if(!s)return!1;const k=s.steps.length,b=Number(A);if(!Number.isFinite(b)||b<0||b>=k)return!1;const B=s.active;if(b===B)return!1;if(b>B)for(let Y=B;Y<b;Y+=1){if(!await s._stepValid(Y))return s.stepper.setStatus(Y,"error"),!1;s.stepper.setStatus(Y,"complete")}return s.active=b,s._render(),!0}function U($){const A=$.wizard;return A?A.active>=A.steps.length-1?A._stepValid(A.active).then(s=>(A.stepper.setStatus(A.active,s?"complete":"error"),s)):G($,A.active+1):Promise.resolve(!1)}function Z($){const A=$.wizard;return A?G($,A.active-1):Promise.resolve(!1)}}),ge("packages/modules/form/emitter.js",function(D,q){"use strict";Object.defineProperty(D,"FORM_EVENTS",{enumerable:!0,get:function(){return z}}),Object.defineProperty(D,"Emitter",{enumerable:!0,get:function(){return h}});const n=new Set(["api","user"]),z=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete"]);class h{#e=new Map;on(l,L){if(typeof L!="function")return()=>{};let E=this.#e.get(l);return E||(E=new Set,this.#e.set(l,E)),E.add(L),()=>this.off(l,L)}off(l,L){const E=this.#e.get(l);E&&E.delete(L)}emit(l,L){const E=this.#e.get(l),f=this.#e.get("*");if((!E||E.size===0)&&(!f||f.size===0))return;const P={...L||null,type:l},C=(c,d)=>{for(const p of[...c])try{p(P)}catch(M){console.warn(`lattice-form: a '${d}' handler threw; other handlers were unaffected.`,M)}};E&&E.size&&C(E,l),f&&f.size&&C(f,"*")}emitBefore(l,L,E){const f=this.#e.get(l);if(!f||f.size===0)return!0;let P=!1,C=null;const c=m=>{P=!0,m!=null&&C===null&&(C=String(m))},d=E||L&&L.origin,p={...L||null,type:l,origin:n.has(d)?d:"user",get defaultPrevented(){return P},get reason(){return C},preventDefault(m){c(m)}},M=[...f],w=()=>(P&&C===null&&(C="prevented"),P&&L&&typeof L=="object"&&(L.reason=C),!P),e=[];for(let m=0;m<M.length;m++){const S=M[m];try{const O=S(p);O&&typeof O.then=="function"?e.push(O):O===!1&&c("prevented")}catch(O){c("error"),console.warn(`lattice-form: a '${l}' before-handler threw; the commit was cancelled.`,O)}}return e.length===0?w():Promise.allSettled(e).then(m=>{for(const S of m)S.status==="rejected"?(c("error"),console.warn(`lattice-form: a '${l}' before-handler rejected; the commit was cancelled.`,S.reason)):S.value===!1&&c("prevented");return w()})}clear(){this.#e.clear()}}}),ge("packages/modules/form/bind.js",function(D,q){"use strict";Object.defineProperty(D,"resolveBind",{enumerable:!0,get:function(){return p}}),Object.defineProperty(D,"isBound",{enumerable:!0,get:function(){return M}}),Object.defineProperty(D,"applyBinding",{enumerable:!0,get:function(){return w}});const z=q("packages/modules/form/model.js").DENSITIES,h=new Set(["number","currency","percent","integer","decimal","duration"]);function Q(e){const m=e&&e.dataType;if(m&&(m.unitConfig||m.temperatureConfig))return!0;const S=e&&e.edit?e.edit.editor:null;return S==="unit"||S==="temperature"}function l(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function L(e){const m=e&&e.edit?e.edit.editor:null,S=e&&e.type;return m==="checkbox"||S==="boolean"?"checkbox":m==="number"||S!=null&&h.has(S)||Q(e)?"number":"input"}function E(e){const m=e&&e.columns&&typeof e.columns.all=="function"?e.columns.all():[],S=[];for(const O of m){if(!O||!O.field||O.generated||O.computed)continue;const H={type:L(O),name:O.field,label:O.title,format:O.format},v=O.dataType,t=v&&v.unitConfig,y=v&&v.temperatureConfig;t?Object.assign(H,{system:t.system,unit:t.unit,binary:t.binary,decimals:t.decimals,minDecimals:t.minDecimals,maxDecimals:t.maxDecimals,display:t.display,group:t.group,space:t.space,placement:t.placement,significantFigures:t.significantFigures,compound:t.compound,nullDisplay:t.nullDisplay}):y&&Object.assign(H,{scale:y.scale,display:y.display,decimals:y.decimals,minDecimals:y.minDecimals,maxDecimals:y.maxDecimals,space:y.space,nullDisplay:y.nullDisplay}),S.push(H)}return S}function f(e,m){const S=e&&e.columns&&typeof e.columns.all=="function"?e.columns.all():[];for(const O of S)if(O&&O.field===m)return O;return null}function P(e){const m=e&&typeof e.get=="function"?e.get("density"):void 0;return z.includes(m)?m:void 0}function C(e){const{grid:m,rowKey:S}=e,O=()=>{const y=m&&m.rows&&typeof m.rows.byKey=="function"?m.rows.byKey(S):null;return y&&l(y.data)?{...y.data}:{}},H=y=>{const a=f(m,y);return a?a.id:y};return{kind:"grid",record:O,items:()=>E(m),density:()=>P(m),subscribe:y=>{if(!m||typeof m.on!="function")return()=>{};const a=i=>{if(!i||i.key!==S)return;const r=m.columns&&typeof m.columns.get=="function"?m.columns.get(i.colId):null,_=r?r.field:i.colId;_&&y(_,i.value)};return m.on("cell:changed",a)},save:y=>{const a=Object.keys(y);if(!a.length)return!0;if(!m||!m.edit||typeof m.edit.setCells!="function")return!1;const i=a.map(_=>({key:S,colId:H(_),value:y[_]})),r=m.edit.setCells(i,"cell",{origin:"form"});return r&&typeof r.then=="function"?r.then(_=>_>0):r>0}}}function c(e){const{router:m,route:S,key:O}=e,H=t=>t!=null&&String(t.rowKey??t.id)===String(O);return{kind:"router",record:()=>null,items:()=>[],density:()=>{},subscribe:t=>{if(!m||typeof m.subscribe!="function")return()=>{};const y=a=>{if(a){for(const i of a.add||[])H(i)&&t(null,null,i);for(const i of a.update||[])H(i)&&t(null,null,i)}};return m.subscribe(S,y),()=>{}},save:()=>!1}}function d(e){return{kind:"values",record:()=>({...e}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:O=>{for(const H of Object.keys(O))e[H]=O[H];return!0}}}function p(e){const m=e&&e.bind;return m==null||typeof m!="object"?null:m.grid!=null&&l(m.grid)?C(m):m.router!=null?c(m):d(m)}function M(e){return!!(e&&e.bind!=null&&typeof e.bind=="object")}function w(e,m,S){e.bound=S;const O=(t,y)=>{const a=m.getItem(t);a&&a.setValue(y)},H=(t,y,a)=>{if(a!=null){for(const i of Object.keys(a))if(e.items.has(i)){if(e.dirty.has(i)){e.conflicts.add(i);continue}e.baseline[i]=a[i],O(i,a[i])}return}if(e.items.has(t)){if(e.dirty.has(t)){e.conflicts.add(t);return}e.baseline[t]=y,O(t,y)}},v=S.record();if(v!=null&&typeof v=="object")for(const t of Object.keys(v))e.items.has(t)&&(e.baseline[t]=v[t],O(t,v[t]));e.disposers.push(m.on("change",t=>{e.dirty.add(t.name),e.conflicts.delete(t.name)})),e.disposers.push(S.subscribe(H))}}),ge("packages/modules/form/controls/input.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=Object.freeze(["text","email","password","url"]),Q=Object.freeze({viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"],paint:"fill"}),l=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(c){return h.includes(c)?c:"text"}function E(c){return!(c.props&&c.props.reveal===!1)}function f(c,d){const p=d?l:Q,M=c.createElementNS("http://www.w3.org/2000/svg","svg");M.setAttribute("viewBox",p.viewBox),M.setAttribute("focusable","false"),M.setAttribute("aria-hidden","true"),p.paint==="stroke"?(M.setAttribute("fill","none"),M.setAttribute("stroke","currentColor"),M.setAttribute("stroke-width","1.5"),M.setAttribute("stroke-linecap","round"),M.setAttribute("stroke-linejoin","round")):M.setAttribute("fill","currentColor");for(const w of p.paths){const e=c.createElementNS("http://www.w3.org/2000/svg","path");e.setAttribute("d",w),M.appendChild(e)}return M}function P(c){return c.__latPassword?c.__latPassword.input:c}function C(c,d,p){const M=d&&d.defaultView,w=M&&M.Event,e=w?new w(p,{bubbles:!0}):{type:p,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};c.dispatchEvent(e)}z("input",{kind:"field",build(c,d){const p=d.doc,M=L(c.subtype);if(M!=="password"||!E(c)){const t=p.createElement("input");return t.type=M,c.name&&(t.name=c.name),c.placeholder!=null&&(t.placeholder=String(c.placeholder)),t.value=c.value==null?"":String(c.value),t}const w=p.createElement("div");w.className="lat-form__password";const e=p.createElement("input");e.type="password",c.name&&(e.name=c.name),c.placeholder!=null&&(e.placeholder=String(c.placeholder)),e.value=c.value==null?"":String(c.value),w.appendChild(e);const m=p.createElement("button");m.type="button",m.className="lat-form__password-btn",m.setAttribute("aria-pressed","false");const S=d.t("form.password.show");m.setAttribute("aria-label",S),m.title=S,m.appendChild(f(p,!1)),w.appendChild(m);const O={revealed:!1,disabled:!1,input:e,btn:m};w.__latPassword=O;const H=t=>{O.revealed=t===!0,e.type=O.revealed?"text":"password",m.setAttribute("aria-pressed",O.revealed?"true":"false");const y=d.t(O.revealed?"form.password.hide":"form.password.show");m.setAttribute("aria-label",y),m.title=y,m.replaceChild(f(p,O.revealed),m.firstChild)};O.setRevealed=H,m.addEventListener("click",()=>{O.disabled||H(!O.revealed)});let v=!1;return w.addEventListener("focusin",()=>{v||(v=!0,C(w,p,"focus"))}),w.addEventListener("focusout",t=>{w.contains(t.relatedTarget)||(v=!1,H(!1),C(w,p,"blur"))}),w},read(c){return P(c).value},write(c,d){P(c).value=d==null?"":String(d)},state(c,d){const p=P(c);p.disabled=d.disabled===!0,p.readOnly=d.readOnly===!0;const M=c.__latPassword;M&&(M.disabled=d.disabled===!0,M.btn&&(M.btn.disabled=M.disabled))},reset(c){const d=c.__latPassword;d&&typeof d.setRevealed=="function"&&d.setRevealed(!1)}})}),ge("packages/core/src/internal/predicates.js",function(D,q){"use strict";Object.defineProperty(D,"isObject",{enumerable:!0,get:function(){return n}}),Object.defineProperty(D,"isFunction",{enumerable:!0,get:function(){return z}}),Object.defineProperty(D,"isNil",{enumerable:!0,get:function(){return h}}),Object.defineProperty(D,"isBlank",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(D,"isCtor",{enumerable:!0,get:function(){return l}});function n(L){return L!==null&&typeof L=="object"&&!Array.isArray(L)}function z(L){return typeof L=="function"}function h(L){return L==null}function Q(L){return L==null||L===""}function l(L){return typeof L!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(L))?!0:!!(L.prototype&&Object.getOwnPropertyNames(L.prototype).length>1)}}),ge("packages/core/src/internal/warn.js",function(D,q){"use strict";Object.defineProperty(D,"reportedWarnings",{enumerable:!0,get:function(){return f}}),Object.defineProperty(D,"warnOnce",{enumerable:!0,get:function(){return C}}),Object.defineProperty(D,"infoOnce",{enumerable:!0,get:function(){return c}}),Object.defineProperty(D,"resetWarnings",{enumerable:!0,get:function(){return d}}),Object.defineProperty(D,"fail",{enumerable:!0,get:function(){return p}}),Object.defineProperty(D,"invariant",{enumerable:!0,get:function(){return M}}),Object.defineProperty(D,"DEV",{enumerable:!0,get:function(){return w}});const n=new Set,z=2e3;function h(e){if(n.add(e),n.size>z){const m=n.values().next().value;m!==void 0&&n.delete(m)}}const Q=[],l=500;function L(e,m,S){Q.push({key:e,level:m,message:S.map(O=>typeof O=="string"?O:E(O)).join(" "),at:Date.now()}),Q.length>l&&Q.shift()}function E(e){if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}function f(){return Q.map(e=>({...e}))}function P(e){if(e.length===0||typeof e[0]!="string")return e;const m=e[0].replace(/^\[lattice\]\s*/,"");return m===e[0]?e:[m,...e.slice(1)]}function C(e,...m){if(n.has(e))return;h(e);const S=P(m);L(e,"warn",S),console.warn("[lattice]",...S)}function c(e,...m){if(n.has(e))return;h(e);const S=P(m);L(e,"info",S),console.info("[lattice]",...S)}function d(){n.clear(),Q.length=0}function p(e,m){const S=new Error(`[lattice] ${e}`);throw m!==void 0&&(S.cause=m),S}function M(e,m){e||p(m)}const w=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),ge("packages/core/src/format/mask.js",function(D,q){"use strict";Object.defineProperty(D,"splitSections",{enumerable:!0,get:function(){return h}}),Object.defineProperty(D,"parseSection",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(D,"compileMask",{enumerable:!0,get:function(){return L}});const n=new Set(["0","#","?",",","."]),z="\0";function h(f){const P=[];let C="",c=!1;for(let d=0;d<f.length;d++){const p=f[d];if(p==="\\"){C+=p+(f[d+1]??""),d+=1;continue}if(p==='"'){c=!c,C+=p;continue}if(p===";"&&!c){P.push(C),C="";continue}C+=p}return P.push(C),P}function Q(f){let P="",C="",c="",d=1,p=!1,M=!1;const w=a=>{M?C+=a:P+=a};for(let a=0;a<f.length;a++){const i=f[a];if(i==="\\"){w(f[a+1]??""),a+=1;continue}if(i==='"'){const r=f.indexOf('"',a+1);w(r===-1?f.slice(a+1):f.slice(a+1,r)),a=r===-1?f.length:r;continue}if(i==="%"){d*=100,w("%");continue}if(i==="@"){p=!0,w("\0");continue}if(n.has(i)){c+=i,M=!0;continue}w(i)}let e=-1;for(let a=c.length-1;a>=0;a--){const i=c[a];if(i==="0"||i==="#"||i==="?"){e=a;break}}let m=!1,S="";for(let a=0;a<c.length;a++){const i=c[a];if(i===","){a>e?d/=1e3:m=!0;continue}S+=i}const O=S.indexOf("."),H=O===-1?S:S.slice(0,O),v=O===-1?"":S.slice(O+1);let t=0;for(const a of H)a==="0"&&(t+=1);let y=0;for(const a of v)a==="0"&&(y+=1);return{prefix:P,suffix:C,minInt:t,minDec:y,maxDec:v.length,grouping:m,scale:d,hasNumber:e!==-1,isText:p}}function l(f,P){const C=new Intl.NumberFormat(P,{minimumIntegerDigits:Math.max(f.minInt,1),minimumFractionDigits:f.minDec,maximumFractionDigits:Math.max(f.maxDec,f.minDec),useGrouping:f.grouping}),{prefix:c,suffix:d,scale:p,hasNumber:M}=f;return w=>{if(!M)return c+d;const e=p===1?w:w*p;return c+C.format(e)+d}}function L(f,P){const c=h(String(f)).map(Q),d=c.map(S=>l(S,P)),p=0,M=c.length>1?1:-1,w=c.length>2?2:-1,e=c.length>3?3:-1,m=S=>{if(S==null||S==="")return"";if(typeof S!="number"||Number.isNaN(S)){const O=Number(S);if(Number.isNaN(O))return e===-1?String(S):(c[e].prefix+c[e].suffix).split("\0").join(String(S));S=O}return S===0&&w!==-1?d[w](0):S<0&&M!==-1?d[M](-S):d[p](S)};return m.spec={mask:f},{format:m,ooxml:E(String(f))}}function E(f){return f.trim()}}),ge("packages/core/src/format/pattern.js",function(D,q){"use strict";Object.defineProperty(D,"parseNumberPattern",{enumerable:!0,get:function(){return l}});const z=q("packages/core/src/format/mask.js").splitSections;function h(L){let E="",f="",P="",C="",c=!1,d=!1,p=!1,M=!1;const w=m=>{p?f+=m:E+=m};for(let m=0;m<L.length;m++){const S=L[m];if(S==="\\"){w(L[m+1]??""),m+=1;continue}if(S==='"'){const O=L.indexOf('"',m+1);w(O===-1?L.slice(m+1):L.slice(m+1,O)),m=O===-1?L.length:O;continue}if(S==="%"){d=!0;continue}if(S==="0"||S==="#"){p=!0,M?C+=S:P+=S;continue}if(S===","){M||(c=!0);continue}if(S==="."&&!M){M=!0;continue}w(S)}if(!p)return{hasDigit:!1,prefix:E,suffix:f,minDec:0,maxDec:0,grouping:!1,percent:d};let e=0;for(const m of C)m==="0"&&(e+=1);return{hasDigit:!0,prefix:E,suffix:f,minDec:e,maxDec:C.length,grouping:c,percent:d}}function Q(L,E){const f=E.trim(),P=L.trim();return f.startsWith("(")&&f.endsWith(")")&&f.slice(1,-1).trim()===P?"parentheses":f.endsWith("-")?"suffix":"minus"}function l(L){if(typeof L!="string")return null;const E=z(L);if(E.length===0)return null;const f=h(E[0]);if(!f.hasDigit)return null;const P={style:f.percent?"percent":"decimal",prefix:f.prefix,suffix:f.suffix,minDecimals:f.minDec,maxDecimals:Math.max(f.maxDec,f.minDec),thousandsSeparator:f.grouping?void 0:!1};if(E.length>1&&(P.negative=Q(E[0],E[1])),E.length>2){const C=h(E[2]);C.hasDigit||(P.zeroDisplay=C.prefix+C.suffix)}return P}}),ge("packages/core/src/format/number.js",function(D,q){"use strict";Object.defineProperty(D,"compileNumber",{enumerable:!0,get:function(){return E}});const z=q("packages/core/src/internal/predicates.js").isNil,Q=q("packages/core/src/internal/warn.js").warnOnce,L=q("packages/core/src/format/pattern.js").parseNumberPattern;function E(f,P){const C=typeof f=="string"?{pattern:f}:f||{};let c=C;if(typeof C.pattern=="string"){const J=L(C.pattern);if(J){const{pattern:o,...I}=C;c={...J,...I}}else Q(`format:pattern:${C.pattern}`,`invalid number format pattern "${C.pattern}"; the value will use the default number format`)}const d=c.locale||P||void 0,p=c.style||"decimal",M=typeof c.scale=="number"?c.scale:1,w=c.nullDisplay??"",e=c.zeroDisplay,m=c.prefix||"",S=c.suffix||"",O=c.negative||"minus",H=c.signed===!0,v={style:p,notation:c.notation||"standard"};p==="currency"&&(v.currency=c.currency||"USD",c.currencyDisplay&&(v.currencyDisplay=c.currencyDisplay)),typeof c.decimals=="number"?(v.minimumFractionDigits=c.decimals,v.maximumFractionDigits=c.decimals):(typeof c.minDecimals=="number"&&(v.minimumFractionDigits=c.minDecimals),typeof c.maxDecimals=="number"&&(v.maximumFractionDigits=c.maxDecimals),v.minimumFractionDigits>(v.maximumFractionDigits??20)&&(v.maximumFractionDigits=v.minimumFractionDigits)),c.thousandsSeparator===!1&&(v.useGrouping=!1),v.notation==="compact"&&(v.compactDisplay=c.compactDisplay||"short");const t=new Intl.NumberFormat(d,v),y=typeof c.thousandsSeparator=="string"?c.thousandsSeparator:null,a=typeof c.decimalSeparator=="string"?c.decimalSeparator:null;let i=",",r=".";if(y||a)for(const J of t.formatToParts(12345.6))J.type==="group"?i=J.value:J.type==="decimal"&&(r=J.value);const _=J=>{let o=J;return y&&(o=o.split(i).join("")),a&&(o=o.split(r).join("")),y&&(o=o.split("").join(y)),a&&(o=o.split("").join(a)),o},u=!!(y||a),R=m!==""&&p==="currency",ie=J=>{let o;if(R){const I=t.formatToParts(J);let j=!1;o="";for(const T of I)o+=T.value,!j&&T.type==="currency"&&(o+=m,j=!0);j||(o=m+o)}else o=m+t.format(J);return u&&(o=_(o)),o+S},ee=J=>{if(z(J)||J==="")return w;const o=typeof J=="number"?J:Number(J);if(Number.isNaN(o))return w;const I=M===1?o:o*M;return I===0&&e!==void 0?e:I<0?O==="parentheses"?`(${ie(-I)})`:O==="suffix"?`${ie(-I)}-`:ie(I):H&&I>0?`+${ie(I)}`:ie(I)};return ee.negativeClass=c.negativeClass||null,ee.spec=c,ee}}),ge("packages/core/src/columns/types/unit.js",function(D,q){"use strict";Object.defineProperty(D,"defineUnit",{enumerable:!0,get:function(){return L}}),Object.defineProperty(D,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(D,"registerUnitSystem",{enumerable:!0,get:function(){return c}}),Object.defineProperty(D,"unitSystemNames",{enumerable:!0,get:function(){return d}}),Object.defineProperty(D,"unitsOf",{enumerable:!0,get:function(){return p}}),Object.defineProperty(D,"findUnit",{enumerable:!0,get:function(){return e}}),Object.defineProperty(D,"localeSeparators",{enumerable:!0,get:function(){return y}}),Object.defineProperty(D,"parseUnit",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(D,"formatUnit",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(D,"createUnitType",{enumerable:!0,get:function(){return K}}),Object.defineProperty(D,"default",{enumerable:!0,get:function(){return g}});const z=q("packages/core/src/internal/predicates.js").isNil,Q=q("packages/core/src/internal/warn.js").warnOnce;function l(x,N,F,G){return Object.freeze({symbol:x,factor:N,aliases:Object.freeze(F||[]),binary:!!(G&&G.binary),prefix:G&&G.prefix||null,auto:!(G&&G.auto===!1)})}function L(x,N,F,G){return l(x,N,F,G)}const E=Object.freeze({data:Object.freeze([l("B",1,["byte","bytes"]),l("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),l("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),l("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),l("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),l("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),l("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),l("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),l("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),l("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([l("bps",1,["bit","bits","bit/s","b/s"]),l("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),l("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),l("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),l("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([l("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),l("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),l("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),l("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),l("in",.0254,["inch","inches"],{auto:!1}),l("ft",.3048,["foot","feet"],{auto:!1}),l("yd",.9144,["yard","yards"],{auto:!1}),l("m",1,["metre","metres","meter","meters"]),l("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),l("mi",1609.344,["mile","miles"],{auto:!1}),l("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([l("mg",.001,["milligram","milligrams"]),l("g",1,["gram","grams"]),l("oz",28.349523125,["ounce","ounces"],{auto:!1}),l("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),l("kg",1e3,["kilogram","kilograms"]),l("st",6350.29318,["stone"],{auto:!1}),l("t",1e6,["tonne","tonnes","ton"],{auto:!1}),l("ton (US)",907184.74,["ton","shortton"],{auto:!1}),l("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([l("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),l("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),l("ms",.001,["msec","msecs","millisecond","milliseconds"]),l("s",1,["sec","secs","second","seconds"]),l("m",60,["min","mins","minute","minutes"]),l("h",3600,["hr","hrs","hour","hours"]),l("d",86400,["day","days"])]),speed:Object.freeze([l("mm/s",.001,["millimetre/s","millimeter/s"]),l("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),l("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),l("mph",.44704,["mile/h","miles/h"],{auto:!1}),l("kn",1852/3600,["knot","knots"],{auto:!1}),l("m/s",1,["metre/s","meter/s","mps"]),l("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([l("mm/s²",.001,["mm/s2"]),l("ft/s²",.3048,["ft/s2"],{auto:!1}),l("m/s²",1,["m/s2","metre/s2","meter/s2"]),l("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([l("mm²",1e-6,["mm2"]),l("cm²",1e-4,["cm2"]),l("in²",64516e-8,["in2","sqin"],{auto:!1}),l("ft²",.09290304,["ft2","sqft"],{auto:!1}),l("yd²",.83612736,["yd2","sqyd"],{auto:!1}),l("m²",1,["m2","sqm"]),l("ha",1e4,["hectare","hectares"],{auto:!1}),l("ac",4046.8564224,["acre","acres"],{auto:!1}),l("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([l("µL",1e-6,["ul","microlitre","microliter"]),l("mL",.001,["millilitre","milliliter"]),l("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),l("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),l("L",1,["litre","litres","liter","liters"]),l("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),l("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),l("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),l("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([l("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),l("J",1,["joule","joules"]),l("cal",4.184,["calorie","calories"],{auto:!1}),l("kJ",1e3,["kilojoule","kilojoules"]),l("BTU",1055.05585262,["btu"],{auto:!1}),l("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),l("MJ",1e6,["megajoule","megajoules"]),l("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),l("GJ",1e9,["gigajoule","gigajoules"]),l("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([l("mW",.001,["milliwatt","milliwatts"]),l("W",1,["watt","watts"]),l("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),l("kW",1e3,["kilowatt","kilowatts"]),l("hp",745.6998715822702,["horsepower"],{auto:!1}),l("MW",1e6,["megawatt","megawatts"]),l("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([l("mN",.001,["millinewton","millinewtons"]),l("N",1,["newton","newtons"]),l("lbf",4.4482216152605,["poundforce"],{auto:!1}),l("kgf",9.80665,["kilogramforce"],{auto:!1}),l("kN",1e3,["kilonewton","kilonewtons"]),l("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([l("Pa",1,["pascal","pascals"]),l("mbar",100,["millibar"],{auto:!1}),l("inH₂O",249.0889,["inh2o"],{auto:!1}),l("mmHg",133.322387415,["torr"],{auto:!1}),l("kPa",1e3,["kilopascal","kilopascals"]),l("inHg",3386.388640341,["inhg"],{auto:!1}),l("psi",6894.757293168361,["lbf/in2"],{auto:!1}),l("bar",1e5,[],{auto:!1}),l("atm",101325,["atmosphere","atmospheres"],{auto:!1}),l("MPa",1e6,["megapascal","megapascals"]),l("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([l("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),l("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),l("kN·m",1e3,["knm","kn.m"],{auto:!1}),l("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([l("kg/m³",1,["kg/m3"]),l("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),l("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),l("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([l("L/min",1/6e4,["lpm","l/min"],{auto:!1}),l("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),l("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),l("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),l("cfm",.0004719474432,["ft3/min"],{auto:!1}),l("L/s",.001,["lps","l/s"],{auto:!1}),l("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([l("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),l("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),l("mrad",.001,["milliradian","milliradians"],{auto:!1}),l("mil",Math.PI/3200,["nato-mil"],{auto:!1}),l("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),l("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),l("rad",1,["radian","radians"]),l("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([l("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),l("rad/s",1,["radps","radians/s"]),l("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),l("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([l("ppt",1e-12,["partspertrillion"],{auto:!1}),l("ppb",1e-9,["partsperbillion"]),l("ppm",1e-6,["partspermillion"]),l("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),l("‰",.001,["permille","permil"],{auto:!1}),l("%",.01,["pct","percent"]),l("×",1,["x","ratio","times"])]),molarity:Object.freeze([l("pM",1e-12,["picomolar","picomolarity"]),l("nM",1e-9,["nanomolar","nanomolarity"]),l("µM",1e-6,["um-molar","micromolar","micromolarity"]),l("mM",.001,["millimolar","millimolarity"]),l("M",1,["molar","mol/l","mol/L","molarity"]),l("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([l("mg/s",1e-6,["milligrams/s"]),l("g/s",.001,["grams/s"]),l("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),l("kg/s",1,["kilograms/s","kgps"]),l("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),l("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),l("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([l("µPa·s",1e-6,["upas","micropascalsecond"]),l("cP",.001,["centipoise"],{auto:!1}),l("mPa·s",.001,["mpas","millipascalsecond"]),l("P",.1,["poise"],{auto:!1}),l("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([l("cSt",1e-6,["centistokes","centistoke"]),l("mm²/s",1e-6,["mm2/s"],{auto:!1}),l("St",1e-4,["stokes","stoke"],{auto:!1}),l("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([l("mW/(m·K)",.001,["mw/mk"]),l("W/(m·K)",1,["w/mk","wmk"]),l("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),l("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([l("J/(kg·K)",1,["j/kgk","jkgk"]),l("kJ/(kg·K)",1e3,["kj/kgk"]),l("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([l("nSv/h",1e-9,["nsvh"]),l("µSv/h",1e-6,["usv/h","usvh"]),l("mSv/h",.001,["msvh"]),l("Sv/h",1,["svh"]),l("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),f=Symbol("ambiguous"),P=new Map,C=new Map;function c(x,N){const F=String(x||"").trim();if(!F)throw new Error("[lattice] a unit system needs a name");if(E[F]||C.has(F))throw new Error(`[lattice] unit system "${F}" already exists`);const G=[...N||[]];if(!G.length)throw new Error(`[lattice] unit system "${F}" has no units`);if(!G.some(Z=>Z.factor===1))throw new Error(`[lattice] unit system "${F}" has no base unit (none with factor 1)`);const U=new Set;for(const Z of G){if(U.has(Z.symbol))throw new Error(`[lattice] unit system "${F}" declares "${Z.symbol}" twice`);U.add(Z.symbol)}return C.set(F,Object.freeze(G)),P.delete(F),F}function d(){return[...Object.keys(E),...C.keys()]}function p(x){const N=M(x);return N?N.units:[]}function M(x){const N=String(x||""),F=P.get(N);if(F!==void 0)return F;const G=E[N]||C.get(N);if(!G)return P.set(N,null),null;const U=Object.freeze([...G].sort((k,b)=>k.factor-b.factor)),Z=new Map,$=new Map,A=(k,b)=>{const B=Z.get(k);B===void 0?Z.set(k,b):B!==b&&Z.set(k,f)};for(const k of U){A(k.symbol.toLowerCase(),k);for(const b of k.aliases)A(b.toLowerCase(),k);if(k.prefix){const b=$.get(k.prefix)||[];b.push(k),$.set(k.prefix,b)}}const s={units:U,byToken:Z,byPrefix:$,decimal:U.filter(k=>!k.binary&&k.auto),binary:U.some(k=>k.binary)?U.filter(k=>(k.binary||k.factor===1)&&k.auto):null};return P.set(N,s),s}function w(x,N){return N&&x.binary||x.decimal}function e(x,N){const F=M(x);if(!F||z(N))return null;const G=F.units.find(Z=>Z.symbol===String(N));if(G)return G;const U=F.byToken.get(String(N).trim().toLowerCase());return U&&U!==f?U:null}const m=new WeakMap;function S(x){const N=x||{};if(typeof N=="object"&&N!==null){const Z=m.get(N);if(Z!==void 0)return Z}const F=N.system||"data",G=M(F);let U=null;if(!G)Q(`unit:system:${F}`,`unknown unit system "${F}"; known systems are ${d().join(", ")}`);else{let Z=N.unit?e(F,N.unit):null;Z||(N.unit&&Q(`unit:unit:${F}:${N.unit}`,`unknown unit "${N.unit}" in system "${F}"; falling back to ${G.units[0].symbol}`),Z=G.units.find($=>$.factor===1)||G.units[0]),U={index:G,base:Z,binary:N.binary===!0}}return typeof N=="object"&&N!==null&&m.set(N,U),U}const O=new WeakMap;function H(x,N){if(!x||!N||!Array.isArray(x.compound)||x.compound.length===0)return null;const F=O.get(x);if(F!==void 0)return F;const G=new Set,U=[];for(const $ of x.compound){const A=e(x.system||"data",$);if(!A){Q(`unit:compound:${x.system}:${$}`,`unknown compound unit "${$}" in system "${x.system||"data"}"; ignoring it`);continue}G.has(A.symbol)||(G.add(A.symbol),U.push(A))}U.sort(($,A)=>A.factor-$.factor);const Z=U.length>=2?U:null;return O.set(x,Z),Z}function v(x,N,F){return N===F||N.factor===F.factor?x:x*N.factor/F.factor}const t=new Map;function y(x){const N=x||"",F=t.get(N);if(F)return F;const G={group:",",decimal:"."};try{for(const U of new Intl.NumberFormat(x||void 0).formatToParts(12345.6))U.type==="group"?G.group=U.value:U.type==="decimal"&&(G.decimal=U.value)}catch{}return t.set(N,G),G}const a=/[\s ]/g,i=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,r=/^[^\d+\-(.,\s]+\s*/,_=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function u(x,N){const{group:F,decimal:G}=y(N);let U=String(x).replace(a,"");if(U==="")return null;const Z=G?U.indexOf(G):-1;if(F&&F!==G){if(Z>=0&&U.indexOf(F,Z+G.length)>=0)return null;U=U.split(F).join("")}if(G&&G!=="."&&(U=U.split(G).join(".")),!_.test(U))return null;const $=Number(U);return Number.isFinite($)?$:null}function R(x,N,F){const G=String(x).trim().replace(/\.$/,"");if(G==="")return null;const U=N.units.find(b=>b.symbol===G);if(U)return U;const Z=G.toLowerCase(),$=N.byToken.get(Z);if($===f)return null;if($)return $;const A=N.byPrefix.get(Z);if(!A||!A.length)return null;const s=w(N,F),k=A.filter(b=>s.includes(b));return k.length===1?k[0]:null}function ie(x,N,F,G){let U=x,Z=0,$=!1,A=!1;for(;U!=="";){const s=i.exec(U)[0];if(s==="")return null;const k=u(s,G&&G.locale);if(k===null)return null;U=U.slice(s.length).trim();const b=U.search(/[+-]?[\d]/),B=(b>=0?U.slice(0,b):U).trim();if(U=b>=0?U.slice(b).trim():"",B===""){if($)return null;A=!0,Z+=v(k,F[0],N.base)}else{const Y=R(B,N.index,N.binary);if(!Y)return null;Z+=v(k,Y,N.base)}if($=!0,A&&U!=="")return null}return $?Z:null}function ee(x,N){if(z(x))return null;if(typeof x=="number")return Number.isFinite(x)?x:null;const F=S(N);if(!F)return null;let G=String(x).trim();if(G==="")return null;let U=!1;G.startsWith("(")&&G.endsWith(")")&&(U=!0,G=G.slice(1,-1).trim());const Z=H(N,F);if(Z){G.startsWith("-")&&(U=!0,G=G.slice(1).trim());const ne=ie(G,F,Z,N);return ne===null?null:U?-ne:ne}let $=null;const A=r.exec(G);if(A&&A[0]){const ne=R(A[0].trim(),F.index,F.binary);ne&&($=ne,G=G.slice(A[0].length).trim())}const s=i.exec(G)[0],k=u(s,N&&N.locale);if(k===null)return null;const b=G.slice(s.length).trim();if($&&b!=="")return null;const B=$||(b===""?F.base:R(b,F.index,F.binary));if(!B)return null;const Y=v(k,B,F.base);return U?-Y:Y}const J=new Map;function o(x,N,F,G){const U=`${x||""}|${N}|${F}|${G?1:0}`;let Z=J.get(U);return Z||(Z=new Intl.NumberFormat(x||void 0,{minimumFractionDigits:N,maximumFractionDigits:F,useGrouping:G}),J.set(U,Z)),Z}function I(x,N){if(!Number.isFinite(x)||x===0)return Math.max(0,N-1);const F=Math.floor(Math.log10(Math.abs(x)));return Math.min(20,Math.max(0,N-1-F))}function j(x,N){if(!Number.isFinite(x)||x===0)return x;const F=Math.ceil(Math.log10(Math.abs(x))),G=10**(N-F);return Math.round(x*G)/G}function T(x,N,F){if(!F||F===N.base.symbol)return N.base;if(F!=="auto")return te(N,F);if(x===0||!Number.isFinite(x))return N.base;const G=Math.abs(x)*N.base.factor,U=w(N.index,N.binary);let Z=U[0];for(const s of U)G>=s.factor&&(Z=s);if(G>=Z.factor)return Z;let $=Z;for(const s of N.index.units)s.binary!==N.binary&&s.factor!==1||s.factor<=G&&s.factor>($===Z?0:$.factor)&&($=s);if($!==Z)return $;let A=Z;for(const s of N.index.units)s.binary!==N.binary&&s.factor!==1||s.factor<A.factor&&(A=s);return A.factor<N.base.factor?A:N.base}function te(x,N){const F=x.index.units.find(U=>U.symbol===N);if(F)return F;const G=x.index.byToken.get(String(N).toLowerCase());return G&&G!==f?G:(Q(`unit:display:${N}`,`unknown display unit "${N}"; rendering in ${x.base.symbol}`),x.base)}function V(x,N,F,G){const U=x<0;let Z=Math.abs(x)*N.base.factor;const $=typeof G.decimals=="number"?G.decimals:G.minDecimals??0,A=typeof G.decimals=="number"?G.decimals:G.maxDecimals??Math.max($,2),s=G.space??" ",k=[];for(let B=0;B<F.length;B++){const Y=F[B],ne=B===F.length-1;let oe=ne?Z/Y.factor:Math.floor(Z/Y.factor);if(Z-=oe*Y.factor,ne){const be=10**A;oe=Math.round(oe*be)/be+0}const pe=ne?o(G.locale,$,A,G.group!==!1):o(G.locale,0,0,G.group!==!1);k.push(`${pe.format(oe)}${s}${Y.symbol}`)}const b=k.join(" ");return U?`-${b}`:b}function ce(x,N){const F=N||{},G=F.nullDisplay??"";if(z(x)||x==="")return G;const U=typeof x=="number"?x:Number(x);if(!Number.isFinite(U))return G;const Z=S(F);if(!Z)return String(U);const $=H(F,Z);if($)return V(U,Z,$,F);const A=typeof F.significantFigures=="number"&&F.significantFigures>0?F.significantFigures:0,s=A?j(U,A):U,k=T(s,Z,F.display),b=v(s,Z.base,k);let B=typeof F.decimals=="number"?F.decimals:F.minDecimals??0,Y=typeof F.decimals=="number"?F.decimals:F.maxDecimals??Math.max(B,2);A&&(B=I(b,A),Y=B);const ne=o(F.locale,B,Y,F.group!==!1).format(b),oe=F.space??" ";return F.placement==="prefix"?`${k.symbol}${F.space??""}${ne}`:`${ne}${oe}${k.symbol}`}function le(x,N){const F=z(x)||Number.isNaN(x)?null:Number(x),G=z(N)||Number.isNaN(N)?null:Number(N);return F===null||Number.isNaN(F)?G===null||Number.isNaN(G)?0:1:G===null||Number.isNaN(G)||F<G?-1:F>G?1:0}function re(x){const N=typeof x.decimals=="number"&&x.decimals>0?`.${"0".repeat(x.decimals)}`:"";return`${typeof x.decimals=="number"?`#,##0${N}`:"#,##0.##"}" ${x.symbol}"`}function K(x){const N={system:"data",...x||{}},F=S(N),G=F?F.base.symbol:String(N.unit||""),U=Object.freeze({...N,unit:G}),Z=Object.freeze({...U,display:G,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),$=new Map([[U.locale||"",U]]),A=s=>{const k=s||"";let b=$.get(k);return b||(b=Object.freeze({...U,locale:s||void 0}),$.set(k,b)),b};return{base:"number",extends:"number",storage:"float64",unitConfig:U,format:s=>ce(s.value,s.locale?A(s.locale):U),parse:s=>ee(s.text,s.locale?A(s.locale):U),compare:le,defaults:{filter:"number",editor:"unit",align:"end",total:N.total||"sum"},...N.totals?{totals:N.totals}:{},excel:N.excel||re({decimals:N.decimals,symbol:G}),toStorage:s=>typeof s=="number"?Number.isFinite(s)?s:null:typeof s=="string"?ee(s,U):z(s)?null:ee(String(s),U),toClipboard:s=>ce(s,Z),fromClipboard:s=>ee(s,U)}}const g=K}),ge("packages/core/src/columns/types/temperature.js",function(D,q){"use strict";Object.defineProperty(D,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return h}}),Object.defineProperty(D,"findScale",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(D,"convertTemperature",{enumerable:!0,get:function(){return l}}),Object.defineProperty(D,"formatTemperature",{enumerable:!0,get:function(){return f}}),Object.defineProperty(D,"parseTemperature",{enumerable:!0,get:function(){return c}}),Object.defineProperty(D,"createTemperatureType",{enumerable:!0,get:function(){return d}}),Object.defineProperty(D,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return p}}),Object.defineProperty(D,"default",{enumerable:!0,get:function(){return M}});const z=q("packages/core/src/internal/predicates.js").isNil,h=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 Q(w){if(z(w))return null;const e=String(w).trim();if(e==="")return null;for(const[S,O]of Object.entries(h))if(e===S||e===O.symbol)return{key:S,scale:O};const m=e.toLowerCase();for(const[S,O]of Object.entries(h))if(O.aliases.includes(m))return{key:S,scale:O};return null}function l(w,e,m){const S=Q(e),O=Q(m);return!S||!O||!Number.isFinite(Number(w))?null:S.key===O.key?Number(w):O.scale.fromKelvin(S.scale.toKelvin(Number(w)))}const L=new Map;function E(w,e,m){const S=`${w||""}|${e}|${m}`;let O=L.get(S);return O||(O=new Intl.NumberFormat(w||void 0,{minimumFractionDigits:e,maximumFractionDigits:m}),L.set(S,O)),O}function f(w,e){const m=e||{},S=m.nullDisplay??"";if(z(w)||w==="")return S;const O=Number(w);if(!Number.isFinite(O))return S;const H=Q(m.scale||"C");if(!H)return String(O);const v=Q(m.display||m.scale||"C")||H,t=v.key===H.key?O:v.scale.fromKelvin(H.scale.toKelvin(O)),y=typeof m.decimals=="number"?m.decimals:null,a=y??m.minDecimals??0,i=y??m.maxDecimals??1;return`${E(m.locale,a,i).format(t)}${m.space??" "}${v.scale.symbol}`}const P=/^[+-]?[\d\s., ]*\d/;function C(w,e){const m=String(w).trim();if(m==="")return null;const S=new Intl.NumberFormat(e||void 0).formatToParts(1.1).find(t=>t.type==="decimal")?.value||".",O=S===","?".":",",H=m.split(O).join("").split(/[\s ]/).join("").replace(S,"."),v=Number(H);return Number.isFinite(v)?v:null}function c(w,e){if(z(w))return null;const m=e||{},S=Q(m.scale||"C");if(!S)return null;if(typeof w=="number")return Number.isFinite(w)?w:null;let O=String(w).trim();if(O==="")return null;let H=!1;O.startsWith("(")&&O.endsWith(")")&&(H=!0,O=O.slice(1,-1).trim());const v=P.exec(O);if(!v)return null;const t=C(v[0],m.locale);if(t===null)return null;const y=O.slice(v[0].length).trim();if(y==="")return H?-t:t;const a=Q(y);if(!a)return null;const i=a.key===S.key?t:S.scale.fromKelvin(a.scale.toKelvin(t));return H?-i:i}function d(w){const e=Object.freeze({scale:"C",...w||{}}),S=(Q(e.scale)||Q("C")).scale.symbol,O=Object.freeze({...e,display:e.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),H=new Map([[e.locale||"",e]]),v=t=>{const y=t||"";let a=H.get(y);return a||(a=Object.freeze({...e,locale:t||void 0}),H.set(y,a)),a};return{base:"number",extends:"number",storage:"float64",temperatureConfig:e,format:t=>f(t.value,t.locale?v(t.locale):e),parse:t=>c(t.text,t.locale?v(t.locale):e),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:e.excel||`#,##0${typeof e.decimals=="number"&&e.decimals>0?`.${"0".repeat(e.decimals)}`:".#"}" ${S}"`,toStorage:t=>typeof t=="number"?Number.isFinite(t)?t:null:typeof t=="string"?c(t,e):z(t)?null:c(String(t),e),toClipboard:t=>f(t,O),fromClipboard:t=>c(t,e)}}const p=Object.freeze({celsius:d({scale:"C"}),fahrenheit:d({scale:"F"}),kelvin:d({scale:"K"})}),M=d}),ge("packages/modules/form/controls/number.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,L=q("packages/core/src/format/number.js").compileNumber,E=q("packages/core/src/columns/types/unit.js"),f=E.parseUnit,P=E.formatUnit,C=E.findUnit,c=E.unitsOf,d=q("packages/core/src/columns/types/temperature.js"),p=d.parseTemperature,M=d.formatTemperature,w=d.findScale,e="data-lattice-form-number-styles";function m(){return`
|
|
1001
|
+
`.trim()}function r($){const k=$&&$.documentElement;if(!k||k.getAttribute(a))return;k.setAttribute(a,"1");const s=$.createElement("style");s.textContent=i(),($.head||$.body||k).appendChild(s)}function _($,k){if(k!=null){if(typeof k=="string"){if(k.trim()){const s=typeof $.style.cssText=="string"?$.style.cssText:"";$.style.cssText=s?`${s};${k}`:k}return}for(const s of Object.keys(k))$.style[s]=k[s]}}function u($){return $==="cols"?`${z}__cols`:$==="items"?`${z}__items`:`${z}__rows`}function R($,k,s,w){k.addEventListener(s,w),$.disposers.push(()=>k.removeEventListener(s,w))}function ne($){return $.uidSeq+=1,`lat-form-${$.uidSeq}`}function ee($){if($==null)return null;const k=$.tagName;return k==="INPUT"||k==="TEXTAREA"||k==="SELECT"?$:typeof $.querySelector=="function"?$.querySelector("input, textarea, select"):null}function J($,k,s){const w={name:k.item.name,value:s,previousValue:k.value,item:k.item},b=$.emitter.emitBefore("beforeChange",w,"user"),T=()=>{k.value=s,k.item.value=s,D(k),$.emitter.emit("change",{name:k.item.name,value:s,previousValue:w.previousValue,item:k.item}),A($),k.item.validationMode==="change"&&ce($,k)},Y=oe=>{k.def.write(k.control,k.value),j($,k,oe)},ie=oe=>{if(!oe){k.def.write(k.control,k.value);return}const pe=o($,k,s);pe&&typeof pe.then=="function"?pe.then(be=>{be.ok?T():Y(be.message)}):pe.ok?T():Y(pe.message)};b&&typeof b.then=="function"?b.then(ie):ie(b)}function o($,k,s){if(k.ruleRequired&&L(s))return{ok:!1,message:$.t("form.required")};const w=k.def;if(typeof w.validate!="function")return{ok:!0,message:null};const b=w.validate(k.control,k.item,s);return b&&typeof b.then=="function"?b.then(T=>I($,T)):I($,b)}function I($,k){return k===!1?{ok:!1,message:$.t("form.invalid")}:typeof k=="string"?{ok:!1,message:k}:{ok:!0,message:null}}function j($,k,s){let w=k.errorEl;w||(w=$.doc.createElement("div"),w.className=`${z}__error`,w.id=ne($),k.controlWrap.appendChild(w),k.errorEl=w);const b=s==null||s===""?$.t("form.invalid"):String(s);w.textContent=b,k.el.setAttribute("data-invalid","true"),k.control.setAttribute("aria-invalid","true");const T=(k.control.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);!(!k.validationEl.hidden&&k.validationEl.textContent===b&&T.includes(k.validationEl.id))&&!T.includes(w.id)&&(T.push(w.id),k.control.setAttribute("aria-describedby",T.join(" ")))}function D($){$.errorEl&&($.errorEl.remove(),$.errorEl=null),$.el.removeAttribute("data-invalid"),$.control.removeAttribute("aria-invalid")}function te($,k){const s=k.value,w=k.item;if(typeof k.def.validate=="function"){const b=e(k.def.validate(k.control,w,s),w,$.t);if(b)return b}return m(w,s,$.t)}function V($,k,s){const w=k.item,b=k.validationEl;if(k.validation.pristine=!1,k.preEl&&(k.preEl.hidden=!0),s){k.validation.valid=!1,k.validation.code=s.code,k.validation.message=s.message,k.control.setAttribute("aria-invalid","true");const T=k.tooltipId?`${k.tooltipId} ${b.id}`:b.id;k.control.setAttribute("aria-describedby",T),b.textContent=s.message,b.className=`${z}__validation ${z}__validation--error`,b.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 w.successMessage=="string"&&w.successMessage!==""?(b.textContent=w.successMessage,b.className=`${z}__validation ${z}__validation--success`,b.hidden=!1):(b.textContent="",b.className=`${z}__validation`,b.hidden=!0)}function ce($,k){typeof k.def.reset=="function"&&k.def.reset(k.control,k.item);const s=te($,k);V($,k,s);const w=s==null;return $.emitter.emit("validated",{name:k.item.name,item:k.item,value:k.value,valid:w,failures:s?[{name:k.item.name,rule:s.code,message:s.message}]:[]}),w}function le($,k){const s=k.control,w=k.item,b=k.def,T=Y=>()=>{$.emitter.emit(Y,{name:w.name,item:w}),Y==="blur"&&w.validationMode==="blur"&&ce($,k)};if(b.kind==="field"){const Y=()=>{$.emitter.emit("input",{name:w.name,value:b.read(s,w),item:w})},ie=()=>{J($,k,b.read(s,w))};R($,s,"input",Y),R($,s,"change",ie);for(const oe of b.domEvents||[])R($,s,oe,()=>{$.emitter.emit(oe,{name:w.name,value:b.read(s,w),item:w})})}else b.kind==="toggle"?R($,s,"change",()=>{J($,k,b.read(s,w))}):b.kind==="button"&&R($,s,"click",()=>{s.disabled||s.getAttribute("aria-disabled")==="true"||$.emitter.emit("click",{name:w.name,item:w,value:null})});b.kind!=="display"&&(R($,s,"focus",T("focus")),R($,s,"blur",T("blur")))}function re($,k){if(typeof $=="string"&&/%$/.test($.trim())){const s=parseFloat($);if(Number.isFinite(s)){const w=Math.round(s*k/100*1e6)/1e6;return`0 0 calc(${s}% - ${w} * var(--lattice-space))`}}return`0 0 ${l($)}`}function Z($,k,s,w={}){const b=f(k.type)||f("text"),T=k.labelPosition!=null?k.labelPosition:w.labelPosition!=null?w.labelPosition:"top",Y=k.labelWidth!=null?k.labelWidth:w.labelWidth,ie=k.requiredHint!==void 0?k.requiredHint:w.requiredHint,oe=$.doc.createElement("div");oe.className=`${z}__item`,oe.setAttribute("data-label-position",T);const pe=b.build(k,$),be=b.action===!0,je=!be&&k.label!=null&&k.label!=="";let ke=null,Se=null;if(je){ke=$.doc.createElement("label"),ke.className=`${z}__label`,ke.textContent=String(k.label);const ye=ne($);ke.setAttribute("for",ye),(ee(pe)||pe).id=ye,T==="hidden"&&ke.classList.add(`${z}__label--hidden`);const X=O($,{labelEl:ke,item:k,labelPosition:T,labelWidth:Y});X?(Se=X.tooltipId,oe.appendChild(X.group)):(T==="left"&&Y!=null&&(ke.style.flex=`0 0 ${l(Y)}`),oe.appendChild(ke))}else if(T==="hidden"&&!be){const ye=ee(pe);ye&&k.placeholder!=null&&k.placeholder!==""&&ye.setAttribute("aria-label",String(k.placeholder))}const Ae=$.doc.createElement("div");Ae.className=`${z}__control`,Ae.appendChild(pe);const Oe=H($,Ae,k,pe),de=v($,k);let Ce=Ae;if(de&&(Ce=$.doc.createElement("div"),Ce.className=`${z}__field`,Ce.appendChild(Ae),Ce.appendChild(de.bar)),oe.appendChild(Ce),!be&&k.helpMessage!=null&&k.helpMessage!==""){const ye=$.doc.createElement("div");ye.className=`${z}__help`,ye.textContent=String(k.helpMessage),Ae.appendChild(ye)}let Ee=null;!be&&k.preMessage!=null&&k.preMessage!==""&&(Ee=$.doc.createElement("div"),Ee.className=`${z}__pre`,Ee.textContent=String(k.preMessage),Ae.appendChild(Ee));const he=$.doc.createElement("div");he.className=`${z}__validation`,he.id=ne($),he.hidden=!0,Ae.appendChild(he),k.width!=null&&(w.colsGapCount!=null?oe.style.setProperty("--lattice-item-flex",re(k.width,w.colsGapCount)):oe.style.flex=`0 0 ${l(k.width)}`),T==="left"&&(Ce.style.flex="1 1 auto"),be&&T==="left"&&Y!=null&&!(k.props&&k.props.fullWidth===!0)&&(Ce.style.paddingLeft=`calc(${l(Y)} + var(--lattice-space))`),_(oe,k.css);const Pe=b.read(pe,k),$e={item:k,el:oe,control:pe,controlWrap:Ae,def:b,value:Pe,hidden:k.hidden===!0,ruleHidden:!1,ruleReadOnly:!1,ruleRequired:!1,errorEl:null,validationEl:he,preEl:Ee,labelEl:ke,labelPosition:T,requiredHint:ie,placeholderEl:ee(pe),placeholderBase:k.placeholder!=null?String(k.placeholder):"",validation:{pristine:!0,valid:null,code:null,message:null},tooltipId:Se,lockEl:Oe?Oe.el:null};if(k.value=Pe,Se&&$e.control.setAttribute("aria-describedby",Se),de)for(const ye of de.entries){if(ye.avatar){t($.doc,ye.el,ye.spec,$e.value,$e.item);continue}typeof ye.spec.onClick=="function"&&R($,ye.el,"click",()=>{ye.spec.onClick($e.value,$e.item)})}if($e.syncLock=()=>{if(!$e.lockEl)return;const ye=$e.item.readOnly===!0||$e.ruleReadOnly;$e.lockEl.hidden=!ye,$e.lockEl.parentElement.classList.toggle(`${z}__control--lock`,ye)},$e.syncAddons=()=>{if(!de)return;const ye=$e.item.disabled===!0;for(const X of de.entries){if(X.avatar){t($.doc,X.el,X.spec,$e.value,$e.item);continue}X.el.tagName==="A"?X.el.setAttribute("aria-disabled",ye?"true":"false"):X.el.disabled=ye}},d($e),$e.hidden&&(oe.hidden=!0),b.custom&&pe.__latticeFormApi){const ye=pe.__latticeFormApi;ye._read=()=>$e.value,ye._write=X=>{$e.value=X,$e.item.value=X,b.write(pe,X),A($)},ye._commit=X=>{J($,$e,X)},ye._input=X=>{$.emitter.emit("input",{name:$e.item.name,value:X,item:$e.item})}}return typeof b.destroy=="function"&&$.disposers.push(()=>b.destroy(pe)),le($,$e),$.order.push($e),k.name!=null&&$.items.set(k.name,$e),s.appendChild(oe),$e}function g($,k,s,w={}){const b={labelPosition:k.labelPosition!=null?k.labelPosition:w.labelPosition,labelWidth:k.labelWidth!=null?k.labelWidth:w.labelWidth,requiredHint:w.requiredHint};if(k.kind==="panel")return y($,k,s,b,{buildChildren:x,applyCss:_});if(k.kind==="spacer"){const Y=$.doc.createElement("div");return Y.className=`${z}__spacer`,_(Y,k.css),k.hidden&&(Y.hidden=!0),s.appendChild(Y),Y}if(k.kind==="separator"){const Y=$.doc.createElement("div");Y.className=`${z}__separator`,Y.setAttribute("role","separator");const ie=k.label;if(ie!=null){r($.doc),Y.classList.add(`${z}__separator--labelled`);const oe=$.t(ie);Y.setAttribute("aria-label",oe);const pe=$.doc.createElement("span");pe.className=`${z}__separator-rule`,pe.setAttribute("aria-hidden","true");const be=$.doc.createElement("span");be.className=`${z}__separator-label`,be.textContent=oe;const je=$.doc.createElement("span");je.className=`${z}__separator-rule`,je.setAttribute("aria-hidden","true"),Y.appendChild(pe),Y.appendChild(be),Y.appendChild(je)}else Y.setAttribute("aria-label",$.t("form.separator"));return _(Y,k.css),k.hidden&&(Y.hidden=!0),s.appendChild(Y),Y}if(k.kind==="fieldset"){const Y=$.doc.createElement("fieldset");if(Y.className=`${z}__fieldset`,k.legend!=null){const oe=$.doc.createElement("legend");oe.className=`${z}__legend`,oe.textContent=k.legend,Y.appendChild(oe)}const ie=$.doc.createElement("div");return ie.className=`${z}__fieldset-body`,k.axis&&ie.classList.add(u(k.axis)),k.axis&&x($,ie,k.blocks,k.axis,b),Y.appendChild(ie),_(Y,k.css),k.spacing!=null&&Y.style.setProperty("--lattice-form-item-gap",k.spacing),k.hidden&&(Y.hidden=!0),s.appendChild(Y),Y}const T=$.doc.createElement("div");return T.className=u(k.axis),k.axis&&x($,T,k.blocks,k.axis,b),_(T,k.css),k.spacing!=null&&T.style.setProperty("--lattice-form-item-gap",k.spacing),k.hidden&&(T.hidden=!0),s.appendChild(T),T}function x($,k,s,w,b={}){const T=w==="cols"?{...b,colsGapCount:s.length-1}:b;for(const Y of s)Y.kind==="item"?Z($,Y,k,T):g($,Y,k,b)}function N($){const k=$.el;for(;k.firstChild;)k.removeChild(k.firstChild);$.items.clear(),$.order.length=0;const s=$.model;k.classList.add(z,u(s.axis)),k.setAttribute("data-density",s.density),s.colsBreakpoint!==480&&k.style.setProperty("--lattice-cols-container",h($.doc,s.colsBreakpoint)),$.disposers.push(()=>{k.classList.remove(`${z}__rows`,`${z}__cols`,`${z}__items`)}),_(k,s.css),s.spacing!=null&&k.style.setProperty("--lattice-form-item-gap",s.spacing),s.labelGap!=null&&k.style.setProperty("--lattice-form-label-gap",s.labelGap);const w={labelPosition:s.labelPosition,labelWidth:s.labelWidth,requiredHint:s.requiredHint};s.steps&&s.steps.length?F($,w):x($,k,s.blocks,s.axis==="cols"?"cols":"rows",w),A($)}function F($,k={}){const s=$.model,w=s.steps,b=$.doc,T=$.el,Y=b.createElement("div");T.appendChild(Y);const ie=M(Y,{doc:b,t:$.t,steps:w.map(de=>({id:de.id,label:de.label})),active:0,orientation:s.stepOrientation,onGoTo:de=>{G($,de)}}),oe=[];let pe=$.order.length;for(const de of w){const Ce=b.createElement("div");Ce.className=`${z}__step`,Ce.hidden=!0,x($,Ce,de.blocks,de.axis,k),de.css&&_(Ce,de.css),T.appendChild(Ce);const Ee=$.order.length;Ce.__records=$.order.slice(pe,Ee),pe=Ee,oe.push(Ce)}const be=b.createElement("div");be.className=`${z}__step-nav`;const je=b.createElement("button");je.type="button",je.className=`${z}__step-back`,je.textContent=$.t("form.back");const ke=b.createElement("button");ke.type="button",ke.className=`${z}__step-next`,ke.textContent=$.t("form.next"),be.appendChild(je),be.appendChild(ke),T.appendChild(be);const Se={steps:w,bodies:oe,stepper:ie,back:je,next:ke,active:0};$.wizard=Se;const Ae=()=>{ie.setActive(Se.active),oe.forEach((de,Ce)=>{de.hidden=Ce!==Se.active}),je.disabled=Se.active===0,ke.textContent=Se.active===w.length-1?$.t("form.finish"):$.t("form.next")},Oe=async de=>{const Ce=oe[de].__records||[];for(const Ee of Ce){if(Ee.item.name==null||Ee.def.kind==="button")continue;const he=await Promise.resolve(o($,Ee,Ee.value));if(!he.ok)return j($,Ee,he.message),!1;D(Ee)}return!0};Se._stepValid=Oe,Se._render=Ae,je.addEventListener("click",()=>{K($)}),ke.addEventListener("click",()=>{U($)}),Ae()}async function G($,k){const s=$.wizard;if(!s)return!1;const w=s.steps.length,b=Number(k);if(!Number.isFinite(b)||b<0||b>=w)return!1;const T=s.active;if(b===T)return!1;if(b>T)for(let Y=T;Y<b;Y+=1){if(!await s._stepValid(Y))return s.stepper.setStatus(Y,"error"),!1;s.stepper.setStatus(Y,"complete")}return s.active=b,s._render(),!0}function U($){const k=$.wizard;return k?k.active>=k.steps.length-1?k._stepValid(k.active).then(s=>(k.stepper.setStatus(k.active,s?"complete":"error"),s)):G($,k.active+1):Promise.resolve(!1)}function K($){const k=$.wizard;return k?G($,k.active-1):Promise.resolve(!1)}}),ge("packages/modules/form/emitter.js",function(B,q){"use strict";Object.defineProperty(B,"FORM_EVENTS",{enumerable:!0,get:function(){return z}}),Object.defineProperty(B,"Emitter",{enumerable:!0,get:function(){return h}});const n=new Set(["api","user"]),z=Object.freeze(["beforeChange","change","input","click","focus","blur","validated","complete"]);class h{#e=new Map;on(l,L){if(typeof L!="function")return()=>{};let E=this.#e.get(l);return E||(E=new Set,this.#e.set(l,E)),E.add(L),()=>this.off(l,L)}off(l,L){const E=this.#e.get(l);E&&E.delete(L)}emit(l,L){const E=this.#e.get(l),f=this.#e.get("*");if((!E||E.size===0)&&(!f||f.size===0))return;const P={...L||null,type:l},A=(c,d)=>{for(const p of[...c])try{p(P)}catch(M){console.warn(`lattice-form: a '${d}' handler threw; other handlers were unaffected.`,M)}};E&&E.size&&A(E,l),f&&f.size&&A(f,"*")}emitBefore(l,L,E){const f=this.#e.get(l);if(!f||f.size===0)return!0;let P=!1,A=null;const c=m=>{P=!0,m!=null&&A===null&&(A=String(m))},d=E||L&&L.origin,p={...L||null,type:l,origin:n.has(d)?d:"user",get defaultPrevented(){return P},get reason(){return A},preventDefault(m){c(m)}},M=[...f],C=()=>(P&&A===null&&(A="prevented"),P&&L&&typeof L=="object"&&(L.reason=A),!P),e=[];for(let m=0;m<M.length;m++){const S=M[m];try{const O=S(p);O&&typeof O.then=="function"?e.push(O):O===!1&&c("prevented")}catch(O){c("error"),console.warn(`lattice-form: a '${l}' before-handler threw; the commit was cancelled.`,O)}}return e.length===0?C():Promise.allSettled(e).then(m=>{for(const S of m)S.status==="rejected"?(c("error"),console.warn(`lattice-form: a '${l}' before-handler rejected; the commit was cancelled.`,S.reason)):S.value===!1&&c("prevented");return C()})}clear(){this.#e.clear()}}}),ge("packages/modules/form/bind.js",function(B,q){"use strict";Object.defineProperty(B,"resolveBind",{enumerable:!0,get:function(){return p}}),Object.defineProperty(B,"isBound",{enumerable:!0,get:function(){return M}}),Object.defineProperty(B,"applyBinding",{enumerable:!0,get:function(){return C}});const z=q("packages/modules/form/model.js").DENSITIES,h=new Set(["number","currency","percent","integer","decimal","duration"]);function Q(e){const m=e&&e.dataType;if(m&&(m.unitConfig||m.temperatureConfig))return!0;const S=e&&e.edit?e.edit.editor:null;return S==="unit"||S==="temperature"}function l(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function L(e){const m=e&&e.edit?e.edit.editor:null,S=e&&e.type;return m==="checkbox"||S==="boolean"?"checkbox":m==="number"||S!=null&&h.has(S)||Q(e)?"number":"input"}function E(e){const m=e&&e.columns&&typeof e.columns.all=="function"?e.columns.all():[],S=[];for(const O of m){if(!O||!O.field||O.generated||O.computed)continue;const H={type:L(O),name:O.field,label:O.title,format:O.format},v=O.dataType,t=v&&v.unitConfig,y=v&&v.temperatureConfig;t?Object.assign(H,{system:t.system,unit:t.unit,binary:t.binary,decimals:t.decimals,minDecimals:t.minDecimals,maxDecimals:t.maxDecimals,display:t.display,group:t.group,space:t.space,placement:t.placement,significantFigures:t.significantFigures,compound:t.compound,nullDisplay:t.nullDisplay}):y&&Object.assign(H,{scale:y.scale,display:y.display,decimals:y.decimals,minDecimals:y.minDecimals,maxDecimals:y.maxDecimals,space:y.space,nullDisplay:y.nullDisplay}),S.push(H)}return S}function f(e,m){const S=e&&e.columns&&typeof e.columns.all=="function"?e.columns.all():[];for(const O of S)if(O&&O.field===m)return O;return null}function P(e){const m=e&&typeof e.get=="function"?e.get("density"):void 0;return z.includes(m)?m:void 0}function A(e){const{grid:m,rowKey:S}=e,O=()=>{const y=m&&m.rows&&typeof m.rows.byKey=="function"?m.rows.byKey(S):null;return y&&l(y.data)?{...y.data}:{}},H=y=>{const a=f(m,y);return a?a.id:y};return{kind:"grid",record:O,items:()=>E(m),density:()=>P(m),subscribe:y=>{if(!m||typeof m.on!="function")return()=>{};const a=i=>{if(!i||i.key!==S)return;const r=m.columns&&typeof m.columns.get=="function"?m.columns.get(i.colId):null,_=r?r.field:i.colId;_&&y(_,i.value)};return m.on("cell:changed",a)},save:y=>{const a=Object.keys(y);if(!a.length)return!0;if(!m||!m.edit||typeof m.edit.setCells!="function")return!1;const i=a.map(_=>({key:S,colId:H(_),value:y[_]})),r=m.edit.setCells(i,"cell",{origin:"form"});return r&&typeof r.then=="function"?r.then(_=>_>0):r>0}}}function c(e){const{router:m,route:S,key:O}=e,H=t=>t!=null&&String(t.rowKey??t.id)===String(O);return{kind:"router",record:()=>null,items:()=>[],density:()=>{},subscribe:t=>{if(!m||typeof m.subscribe!="function")return()=>{};const y=a=>{if(a){for(const i of a.add||[])H(i)&&t(null,null,i);for(const i of a.update||[])H(i)&&t(null,null,i)}};return m.subscribe(S,y),()=>{}},save:()=>!1}}function d(e){return{kind:"values",record:()=>({...e}),items:()=>[],density:()=>{},subscribe:()=>()=>{},save:O=>{for(const H of Object.keys(O))e[H]=O[H];return!0}}}function p(e){const m=e&&e.bind;return m==null||typeof m!="object"?null:m.grid!=null&&l(m.grid)?A(m):m.router!=null?c(m):d(m)}function M(e){return!!(e&&e.bind!=null&&typeof e.bind=="object")}function C(e,m,S){e.bound=S;const O=(t,y)=>{const a=m.getItem(t);a&&a.setValue(y)},H=(t,y,a)=>{if(a!=null){for(const i of Object.keys(a))if(e.items.has(i)){if(e.dirty.has(i)){e.conflicts.add(i);continue}e.baseline[i]=a[i],O(i,a[i])}return}if(e.items.has(t)){if(e.dirty.has(t)){e.conflicts.add(t);return}e.baseline[t]=y,O(t,y)}},v=S.record();if(v!=null&&typeof v=="object")for(const t of Object.keys(v))e.items.has(t)&&(e.baseline[t]=v[t],O(t,v[t]));e.disposers.push(m.on("change",t=>{e.dirty.add(t.name),e.conflicts.delete(t.name)})),e.disposers.push(S.subscribe(H))}}),ge("packages/modules/form/controls/input.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=Object.freeze(["text","email","password","url"]),Q=Object.freeze({viewBox:"0 0 16 16",paths:["M8 3.2c3.3 0 6 3 6.6 4.5C14 9.3 11.3 12.3 8 12.3S2 9.3 1.4 7.7C2 6.2 4.7 3.2 8 3.2Zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5Z"],paint:"fill"}),l=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(c){return h.includes(c)?c:"text"}function E(c){return!(c.props&&c.props.reveal===!1)}function f(c,d){const p=d?l:Q,M=c.createElementNS("http://www.w3.org/2000/svg","svg");M.setAttribute("viewBox",p.viewBox),M.setAttribute("focusable","false"),M.setAttribute("aria-hidden","true"),p.paint==="stroke"?(M.setAttribute("fill","none"),M.setAttribute("stroke","currentColor"),M.setAttribute("stroke-width","1.5"),M.setAttribute("stroke-linecap","round"),M.setAttribute("stroke-linejoin","round")):M.setAttribute("fill","currentColor");for(const C of p.paths){const e=c.createElementNS("http://www.w3.org/2000/svg","path");e.setAttribute("d",C),M.appendChild(e)}return M}function P(c){return c.__latPassword?c.__latPassword.input:c}function A(c,d,p){const M=d&&d.defaultView,C=M&&M.Event,e=C?new C(p,{bubbles:!0}):{type:p,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};c.dispatchEvent(e)}z("input",{kind:"field",build(c,d){const p=d.doc,M=L(c.subtype);if(M!=="password"||!E(c)){const t=p.createElement("input");return t.type=M,c.name&&(t.name=c.name),c.placeholder!=null&&(t.placeholder=String(c.placeholder)),t.value=c.value==null?"":String(c.value),t}const C=p.createElement("div");C.className="lat-form__password";const e=p.createElement("input");e.type="password",c.name&&(e.name=c.name),c.placeholder!=null&&(e.placeholder=String(c.placeholder)),e.value=c.value==null?"":String(c.value),C.appendChild(e);const m=p.createElement("button");m.type="button",m.className="lat-form__password-btn",m.setAttribute("aria-pressed","false");const S=d.t("form.password.show");m.setAttribute("aria-label",S),m.title=S,m.appendChild(f(p,!1)),C.appendChild(m);const O={revealed:!1,disabled:!1,input:e,btn:m};C.__latPassword=O;const H=t=>{O.revealed=t===!0,e.type=O.revealed?"text":"password",m.setAttribute("aria-pressed",O.revealed?"true":"false");const y=d.t(O.revealed?"form.password.hide":"form.password.show");m.setAttribute("aria-label",y),m.title=y,m.replaceChild(f(p,O.revealed),m.firstChild)};O.setRevealed=H,m.addEventListener("click",()=>{O.disabled||H(!O.revealed)});let v=!1;return C.addEventListener("focusin",()=>{v||(v=!0,A(C,p,"focus"))}),C.addEventListener("focusout",t=>{C.contains(t.relatedTarget)||(v=!1,H(!1),A(C,p,"blur"))}),C},read(c){return P(c).value},write(c,d){P(c).value=d==null?"":String(d)},state(c,d){const p=P(c);p.disabled=d.disabled===!0,p.readOnly=d.readOnly===!0;const M=c.__latPassword;M&&(M.disabled=d.disabled===!0,M.btn&&(M.btn.disabled=M.disabled))},reset(c){const d=c.__latPassword;d&&typeof d.setRevealed=="function"&&d.setRevealed(!1)}})}),ge("packages/core/src/internal/predicates.js",function(B,q){"use strict";Object.defineProperty(B,"isObject",{enumerable:!0,get:function(){return n}}),Object.defineProperty(B,"isFunction",{enumerable:!0,get:function(){return z}}),Object.defineProperty(B,"isNil",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"isBlank",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"isCtor",{enumerable:!0,get:function(){return l}});function n(L){return L!==null&&typeof L=="object"&&!Array.isArray(L)}function z(L){return typeof L=="function"}function h(L){return L==null}function Q(L){return L==null||L===""}function l(L){return typeof L!="function"?!1:/^class[\s{]/.test(Function.prototype.toString.call(L))?!0:!!(L.prototype&&Object.getOwnPropertyNames(L.prototype).length>1)}}),ge("packages/core/src/internal/warn.js",function(B,q){"use strict";Object.defineProperty(B,"reportedWarnings",{enumerable:!0,get:function(){return f}}),Object.defineProperty(B,"warnOnce",{enumerable:!0,get:function(){return A}}),Object.defineProperty(B,"infoOnce",{enumerable:!0,get:function(){return c}}),Object.defineProperty(B,"resetWarnings",{enumerable:!0,get:function(){return d}}),Object.defineProperty(B,"fail",{enumerable:!0,get:function(){return p}}),Object.defineProperty(B,"invariant",{enumerable:!0,get:function(){return M}}),Object.defineProperty(B,"DEV",{enumerable:!0,get:function(){return C}});const n=new Set,z=2e3;function h(e){if(n.add(e),n.size>z){const m=n.values().next().value;m!==void 0&&n.delete(m)}}const Q=[],l=500;function L(e,m,S){Q.push({key:e,level:m,message:S.map(O=>typeof O=="string"?O:E(O)).join(" "),at:Date.now()}),Q.length>l&&Q.shift()}function E(e){if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}function f(){return Q.map(e=>({...e}))}function P(e){if(e.length===0||typeof e[0]!="string")return e;const m=e[0].replace(/^\[lattice\]\s*/,"");return m===e[0]?e:[m,...e.slice(1)]}function A(e,...m){if(n.has(e))return;h(e);const S=P(m);L(e,"warn",S),console.warn("[lattice]",...S)}function c(e,...m){if(n.has(e))return;h(e);const S=P(m);L(e,"info",S),console.info("[lattice]",...S)}function d(){n.clear(),Q.length=0}function p(e,m){const S=new Error(`[lattice] ${e}`);throw m!==void 0&&(S.cause=m),S}function M(e,m){e||p(m)}const C=(()=>{try{return!(typeof process<"u"&&process.env&&process.env.NODE_ENV==="production")}catch{return!0}})()}),ge("packages/core/src/format/mask.js",function(B,q){"use strict";Object.defineProperty(B,"splitSections",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"parseSection",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"compileMask",{enumerable:!0,get:function(){return L}});const n=new Set(["0","#","?",",","."]),z="\0";function h(f){const P=[];let A="",c=!1;for(let d=0;d<f.length;d++){const p=f[d];if(p==="\\"){A+=p+(f[d+1]??""),d+=1;continue}if(p==='"'){c=!c,A+=p;continue}if(p===";"&&!c){P.push(A),A="";continue}A+=p}return P.push(A),P}function Q(f){let P="",A="",c="",d=1,p=!1,M=!1;const C=a=>{M?A+=a:P+=a};for(let a=0;a<f.length;a++){const i=f[a];if(i==="\\"){C(f[a+1]??""),a+=1;continue}if(i==='"'){const r=f.indexOf('"',a+1);C(r===-1?f.slice(a+1):f.slice(a+1,r)),a=r===-1?f.length:r;continue}if(i==="%"){d*=100,C("%");continue}if(i==="@"){p=!0,C("\0");continue}if(n.has(i)){c+=i,M=!0;continue}C(i)}let e=-1;for(let a=c.length-1;a>=0;a--){const i=c[a];if(i==="0"||i==="#"||i==="?"){e=a;break}}let m=!1,S="";for(let a=0;a<c.length;a++){const i=c[a];if(i===","){a>e?d/=1e3:m=!0;continue}S+=i}const O=S.indexOf("."),H=O===-1?S:S.slice(0,O),v=O===-1?"":S.slice(O+1);let t=0;for(const a of H)a==="0"&&(t+=1);let y=0;for(const a of v)a==="0"&&(y+=1);return{prefix:P,suffix:A,minInt:t,minDec:y,maxDec:v.length,grouping:m,scale:d,hasNumber:e!==-1,isText:p}}function l(f,P){const A=new Intl.NumberFormat(P,{minimumIntegerDigits:Math.max(f.minInt,1),minimumFractionDigits:f.minDec,maximumFractionDigits:Math.max(f.maxDec,f.minDec),useGrouping:f.grouping}),{prefix:c,suffix:d,scale:p,hasNumber:M}=f;return C=>{if(!M)return c+d;const e=p===1?C:C*p;return c+A.format(e)+d}}function L(f,P){const c=h(String(f)).map(Q),d=c.map(S=>l(S,P)),p=0,M=c.length>1?1:-1,C=c.length>2?2:-1,e=c.length>3?3:-1,m=S=>{if(S==null||S==="")return"";if(typeof S!="number"||Number.isNaN(S)){const O=Number(S);if(Number.isNaN(O))return e===-1?String(S):(c[e].prefix+c[e].suffix).split("\0").join(String(S));S=O}return S===0&&C!==-1?d[C](0):S<0&&M!==-1?d[M](-S):d[p](S)};return m.spec={mask:f},{format:m,ooxml:E(String(f))}}function E(f){return f.trim()}}),ge("packages/core/src/format/pattern.js",function(B,q){"use strict";Object.defineProperty(B,"parseNumberPattern",{enumerable:!0,get:function(){return l}});const z=q("packages/core/src/format/mask.js").splitSections;function h(L){let E="",f="",P="",A="",c=!1,d=!1,p=!1,M=!1;const C=m=>{p?f+=m:E+=m};for(let m=0;m<L.length;m++){const S=L[m];if(S==="\\"){C(L[m+1]??""),m+=1;continue}if(S==='"'){const O=L.indexOf('"',m+1);C(O===-1?L.slice(m+1):L.slice(m+1,O)),m=O===-1?L.length:O;continue}if(S==="%"){d=!0;continue}if(S==="0"||S==="#"){p=!0,M?A+=S:P+=S;continue}if(S===","){M||(c=!0);continue}if(S==="."&&!M){M=!0;continue}C(S)}if(!p)return{hasDigit:!1,prefix:E,suffix:f,minDec:0,maxDec:0,grouping:!1,percent:d};let e=0;for(const m of A)m==="0"&&(e+=1);return{hasDigit:!0,prefix:E,suffix:f,minDec:e,maxDec:A.length,grouping:c,percent:d}}function Q(L,E){const f=E.trim(),P=L.trim();return f.startsWith("(")&&f.endsWith(")")&&f.slice(1,-1).trim()===P?"parentheses":f.endsWith("-")?"suffix":"minus"}function l(L){if(typeof L!="string")return null;const E=z(L);if(E.length===0)return null;const f=h(E[0]);if(!f.hasDigit)return null;const P={style:f.percent?"percent":"decimal",prefix:f.prefix,suffix:f.suffix,minDecimals:f.minDec,maxDecimals:Math.max(f.maxDec,f.minDec),thousandsSeparator:f.grouping?void 0:!1};if(E.length>1&&(P.negative=Q(E[0],E[1])),E.length>2){const A=h(E[2]);A.hasDigit||(P.zeroDisplay=A.prefix+A.suffix)}return P}}),ge("packages/core/src/format/number.js",function(B,q){"use strict";Object.defineProperty(B,"compileNumber",{enumerable:!0,get:function(){return E}});const z=q("packages/core/src/internal/predicates.js").isNil,Q=q("packages/core/src/internal/warn.js").warnOnce,L=q("packages/core/src/format/pattern.js").parseNumberPattern;function E(f,P){const A=typeof f=="string"?{pattern:f}:f||{};let c=A;if(typeof A.pattern=="string"){const J=L(A.pattern);if(J){const{pattern:o,...I}=A;c={...J,...I}}else Q(`format:pattern:${A.pattern}`,`invalid number format pattern "${A.pattern}"; the value will use the default number format`)}const d=c.locale||P||void 0,p=c.style||"decimal",M=typeof c.scale=="number"?c.scale:1,C=c.nullDisplay??"",e=c.zeroDisplay,m=c.prefix||"",S=c.suffix||"",O=c.negative||"minus",H=c.signed===!0,v={style:p,notation:c.notation||"standard"};p==="currency"&&(v.currency=c.currency||"USD",c.currencyDisplay&&(v.currencyDisplay=c.currencyDisplay)),typeof c.decimals=="number"?(v.minimumFractionDigits=c.decimals,v.maximumFractionDigits=c.decimals):(typeof c.minDecimals=="number"&&(v.minimumFractionDigits=c.minDecimals),typeof c.maxDecimals=="number"&&(v.maximumFractionDigits=c.maxDecimals),v.minimumFractionDigits>(v.maximumFractionDigits??20)&&(v.maximumFractionDigits=v.minimumFractionDigits)),c.thousandsSeparator===!1&&(v.useGrouping=!1),v.notation==="compact"&&(v.compactDisplay=c.compactDisplay||"short");const t=new Intl.NumberFormat(d,v),y=typeof c.thousandsSeparator=="string"?c.thousandsSeparator:null,a=typeof c.decimalSeparator=="string"?c.decimalSeparator:null;let i=",",r=".";if(y||a)for(const J of t.formatToParts(12345.6))J.type==="group"?i=J.value:J.type==="decimal"&&(r=J.value);const _=J=>{let o=J;return y&&(o=o.split(i).join("")),a&&(o=o.split(r).join("")),y&&(o=o.split("").join(y)),a&&(o=o.split("").join(a)),o},u=!!(y||a),R=m!==""&&p==="currency",ne=J=>{let o;if(R){const I=t.formatToParts(J);let j=!1;o="";for(const D of I)o+=D.value,!j&&D.type==="currency"&&(o+=m,j=!0);j||(o=m+o)}else o=m+t.format(J);return u&&(o=_(o)),o+S},ee=J=>{if(z(J)||J==="")return C;const o=typeof J=="number"?J:Number(J);if(Number.isNaN(o))return C;const I=M===1?o:o*M;return I===0&&e!==void 0?e:I<0?O==="parentheses"?`(${ne(-I)})`:O==="suffix"?`${ne(-I)}-`:ne(I):H&&I>0?`+${ne(I)}`:ne(I)};return ee.negativeClass=c.negativeClass||null,ee.spec=c,ee}}),ge("packages/core/src/columns/types/unit.js",function(B,q){"use strict";Object.defineProperty(B,"defineUnit",{enumerable:!0,get:function(){return L}}),Object.defineProperty(B,"UNIT_SYSTEMS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(B,"registerUnitSystem",{enumerable:!0,get:function(){return c}}),Object.defineProperty(B,"unitSystemNames",{enumerable:!0,get:function(){return d}}),Object.defineProperty(B,"unitsOf",{enumerable:!0,get:function(){return p}}),Object.defineProperty(B,"findUnit",{enumerable:!0,get:function(){return e}}),Object.defineProperty(B,"localeSeparators",{enumerable:!0,get:function(){return y}}),Object.defineProperty(B,"parseUnit",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(B,"formatUnit",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(B,"createUnitType",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(B,"default",{enumerable:!0,get:function(){return g}});const z=q("packages/core/src/internal/predicates.js").isNil,Q=q("packages/core/src/internal/warn.js").warnOnce;function l(x,N,F,G){return Object.freeze({symbol:x,factor:N,aliases:Object.freeze(F||[]),binary:!!(G&&G.binary),prefix:G&&G.prefix||null,auto:!(G&&G.auto===!1)})}function L(x,N,F,G){return l(x,N,F,G)}const E=Object.freeze({data:Object.freeze([l("B",1,["byte","bytes"]),l("kB",1e3,["kilobyte","kilobytes"],{prefix:"k"}),l("KiB",1024,["kibibyte","kibibytes"],{binary:!0,prefix:"k"}),l("MB",1e6,["megabyte","megabytes"],{prefix:"m"}),l("MiB",1024**2,["mebibyte","mebibytes"],{binary:!0,prefix:"m"}),l("GB",1e9,["gigabyte","gigabytes"],{prefix:"g"}),l("GiB",1024**3,["gibibyte","gibibytes"],{binary:!0,prefix:"g"}),l("TB",1e12,["terabyte","terabytes"],{prefix:"t"}),l("TiB",1024**4,["tebibyte","tebibytes"],{binary:!0,prefix:"t"}),l("PB",1e15,["petabyte","petabytes"],{prefix:"p"})]),bitrate:Object.freeze([l("bps",1,["bit","bits","bit/s","b/s"]),l("kbps",1e3,["kbit","kbits","kbit/s","kb/s","kilobit","kilobits"],{prefix:"k"}),l("Mbps",1e6,["mbit","mbits","mbit/s","mb/s","megabit","megabits"],{prefix:"m"}),l("Gbps",1e9,["gbit","gbits","gbit/s","gb/s","gigabit","gigabits"],{prefix:"g"}),l("Tbps",1e12,["tbit","tbits","tbit/s","tb/s","terabit","terabits"],{prefix:"t"})]),length:Object.freeze([l("nm",1e-9,["nanometre","nanometres","nanometer","nanometers"]),l("µm",1e-6,["um","micrometre","micrometres","micrometer","micrometers","micron","microns"]),l("mm",.001,["millimetre","millimetres","millimeter","millimeters"]),l("cm",.01,["centimetre","centimetres","centimeter","centimeters"]),l("in",.0254,["inch","inches"],{auto:!1}),l("ft",.3048,["foot","feet"],{auto:!1}),l("yd",.9144,["yard","yards"],{auto:!1}),l("m",1,["metre","metres","meter","meters"]),l("km",1e3,["kilometre","kilometres","kilometer","kilometers"]),l("mi",1609.344,["mile","miles"],{auto:!1}),l("nmi",1852,["nauticalmile","nauticalmiles"],{auto:!1})]),mass:Object.freeze([l("mg",.001,["milligram","milligrams"]),l("g",1,["gram","grams"]),l("oz",28.349523125,["ounce","ounces"],{auto:!1}),l("lb",453.59237,["pound","pounds","lbs"],{auto:!1}),l("kg",1e3,["kilogram","kilograms"]),l("st",6350.29318,["stone"],{auto:!1}),l("t",1e6,["tonne","tonnes","ton"],{auto:!1}),l("ton (US)",907184.74,["ton","shortton"],{auto:!1}),l("ton (UK)",10160469088e-4,["ton","longton"],{auto:!1})]),duration:Object.freeze([l("ns",1e-9,["nsec","nsecs","nanosecond","nanoseconds"]),l("µs",1e-6,["us","usec","usecs","microsecond","microseconds"]),l("ms",.001,["msec","msecs","millisecond","milliseconds"]),l("s",1,["sec","secs","second","seconds"]),l("m",60,["min","mins","minute","minutes"]),l("h",3600,["hr","hrs","hour","hours"]),l("d",86400,["day","days"])]),speed:Object.freeze([l("mm/s",.001,["millimetre/s","millimeter/s"]),l("ft/s",.3048,["fps","foot/s","feet/s"],{auto:!1}),l("km/h",1/3.6,["kph","kmh","kilometre/h","kilometer/h"],{auto:!1}),l("mph",.44704,["mile/h","miles/h"],{auto:!1}),l("kn",1852/3600,["knot","knots"],{auto:!1}),l("m/s",1,["metre/s","meter/s","mps"]),l("km/s",1e3,["kilometre/s","kilometer/s"])]),acceleration:Object.freeze([l("mm/s²",.001,["mm/s2"]),l("ft/s²",.3048,["ft/s2"],{auto:!1}),l("m/s²",1,["m/s2","metre/s2","meter/s2"]),l("g",9.80665,["gee","gravity"],{auto:!1})]),area:Object.freeze([l("mm²",1e-6,["mm2"]),l("cm²",1e-4,["cm2"]),l("in²",64516e-8,["in2","sqin"],{auto:!1}),l("ft²",.09290304,["ft2","sqft"],{auto:!1}),l("yd²",.83612736,["yd2","sqyd"],{auto:!1}),l("m²",1,["m2","sqm"]),l("ha",1e4,["hectare","hectares"],{auto:!1}),l("ac",4046.8564224,["acre","acres"],{auto:!1}),l("km²",1e6,["km2","sqkm"])]),volume:Object.freeze([l("µL",1e-6,["ul","microlitre","microliter"]),l("mL",.001,["millilitre","milliliter"]),l("fl oz (US)",.0295735295625,["fl oz","usfloz"],{auto:!1}),l("fl oz (imp)",.0284130625,["fl oz","impfloz"],{auto:!1}),l("L",1,["litre","litres","liter","liters"]),l("gal (US)",3.785411784,["gal","usgal","usgallon"],{auto:!1}),l("gal (imp)",4.54609,["gal","impgal","impgallon"],{auto:!1}),l("m³",1e3,["m3","cubicmetre","cubicmeter","kl"],{auto:!1}),l("bbl",158.987294928,["barrel","barrels"],{auto:!1})]),energy:Object.freeze([l("eV",1602176634e-28,["electronvolt","electronvolts"],{auto:!1}),l("J",1,["joule","joules"]),l("cal",4.184,["calorie","calories"],{auto:!1}),l("kJ",1e3,["kilojoule","kilojoules"]),l("BTU",1055.05585262,["btu"],{auto:!1}),l("kcal",4184,["kilocalorie","kilocalories","Cal"],{auto:!1}),l("MJ",1e6,["megajoule","megajoules"]),l("kWh",36e5,["kilowatthour","kilowatthours"],{auto:!1}),l("GJ",1e9,["gigajoule","gigajoules"]),l("MWh",36e8,["megawatthour","megawatthours"],{auto:!1})]),power:Object.freeze([l("mW",.001,["milliwatt","milliwatts"]),l("W",1,["watt","watts"]),l("BTU/h",1055.05585262/3600,["btuh","btu/h"],{auto:!1}),l("kW",1e3,["kilowatt","kilowatts"]),l("hp",745.6998715822702,["horsepower"],{auto:!1}),l("MW",1e6,["megawatt","megawatts"]),l("GW",1e9,["gigawatt","gigawatts"])]),force:Object.freeze([l("mN",.001,["millinewton","millinewtons"]),l("N",1,["newton","newtons"]),l("lbf",4.4482216152605,["poundforce"],{auto:!1}),l("kgf",9.80665,["kilogramforce"],{auto:!1}),l("kN",1e3,["kilonewton","kilonewtons"]),l("MN",1e6,["meganewton","meganewtons"])]),pressure:Object.freeze([l("Pa",1,["pascal","pascals"]),l("mbar",100,["millibar"],{auto:!1}),l("inH₂O",249.0889,["inh2o"],{auto:!1}),l("mmHg",133.322387415,["torr"],{auto:!1}),l("kPa",1e3,["kilopascal","kilopascals"]),l("inHg",3386.388640341,["inhg"],{auto:!1}),l("psi",6894.757293168361,["lbf/in2"],{auto:!1}),l("bar",1e5,[],{auto:!1}),l("atm",101325,["atmosphere","atmospheres"],{auto:!1}),l("MPa",1e6,["megapascal","megapascals"]),l("GPa",1e9,["gigapascal","gigapascals"])]),torque:Object.freeze([l("N·m",1,["nm","n.m","newtonmetre","newtonmeter"]),l("lbf·ft",1.3558179483314003,["lbfft","lbf.ft","ftlb","ft-lb"],{auto:!1}),l("kN·m",1e3,["knm","kn.m"],{auto:!1}),l("MN·m",1e6,["mnm","mn.m"],{auto:!1})]),density:Object.freeze([l("kg/m³",1,["kg/m3"]),l("lb/ft³",16.01846337396014,["lb/ft3","pcf"],{auto:!1}),l("g/cm³",1e3,["g/cm3","g/ml","kg/l"],{auto:!1}),l("t/m³",1e3,["t/m3"],{auto:!1})]),flow:Object.freeze([l("L/min",1/6e4,["lpm","l/min"],{auto:!1}),l("m³/h",1/3600,["m3/h","cmh"],{auto:!1}),l("gpm (US)",.003785411784/60,["gpm","usgpm"],{auto:!1}),l("gpm (imp)",.00454609/60,["gpm","impgpm"],{auto:!1}),l("cfm",.0004719474432,["ft3/min"],{auto:!1}),l("L/s",.001,["lps","l/s"],{auto:!1}),l("m³/s",1,["m3/s","cms"])]),angle:Object.freeze([l("″",Math.PI/648e3,["arcsec","arcsecond","arcseconds"],{auto:!1}),l("′",Math.PI/10800,["arcmin","arcminute","arcminutes"],{auto:!1}),l("mrad",.001,["milliradian","milliradians"],{auto:!1}),l("mil",Math.PI/3200,["nato-mil"],{auto:!1}),l("°",Math.PI/180,["deg","degree","degrees"],{auto:!1}),l("gon",Math.PI/200,["grad","gradian","gradians"],{auto:!1}),l("rad",1,["radian","radians"]),l("turn",2*Math.PI,["rev","revolution","revolutions"],{auto:!1})]),angularVelocity:Object.freeze([l("°/s",Math.PI/180,["degps","deg/s","degrees/s"],{auto:!1}),l("rad/s",1,["radps","radians/s"]),l("rpm",2*Math.PI/60,["rev/min","r/min","revolutions/min"],{auto:!1}),l("rps",2*Math.PI,["rev/s","r/s","revolutions/s"],{auto:!1})]),fraction:Object.freeze([l("ppt",1e-12,["partspertrillion"],{auto:!1}),l("ppb",1e-9,["partsperbillion"]),l("ppm",1e-6,["partspermillion"]),l("bp",1e-4,["bps-finance","basispoint","basispoints","bips"],{auto:!1}),l("‰",.001,["permille","permil"],{auto:!1}),l("%",.01,["pct","percent"]),l("×",1,["x","ratio","times"])]),molarity:Object.freeze([l("pM",1e-12,["picomolar","picomolarity"]),l("nM",1e-9,["nanomolar","nanomolarity"]),l("µM",1e-6,["um-molar","micromolar","micromolarity"]),l("mM",.001,["millimolar","millimolarity"]),l("M",1,["molar","mol/l","mol/L","molarity"]),l("mol/m³",.001,["mol/m3"],{auto:!1})]),massFlow:Object.freeze([l("mg/s",1e-6,["milligrams/s"]),l("g/s",.001,["grams/s"]),l("kg/h",1/3600,["kilograms/h","kgph"],{auto:!1}),l("kg/s",1,["kilograms/s","kgps"]),l("t/h",1e3/3600,["tonnes/h","tph"],{auto:!1}),l("lb/h",.45359237/3600,["pounds/h","pph"],{auto:!1}),l("t/s",1e3,["tonnes/s"],{auto:!1})]),viscosity:Object.freeze([l("µPa·s",1e-6,["upas","micropascalsecond"]),l("cP",.001,["centipoise"],{auto:!1}),l("mPa·s",.001,["mpas","millipascalsecond"]),l("P",.1,["poise"],{auto:!1}),l("Pa·s",1,["pas","pascalsecond"])]),kinematicViscosity:Object.freeze([l("cSt",1e-6,["centistokes","centistoke"]),l("mm²/s",1e-6,["mm2/s"],{auto:!1}),l("St",1e-4,["stokes","stoke"],{auto:!1}),l("m²/s",1,["m2/s"])]),thermalConductivity:Object.freeze([l("mW/(m·K)",.001,["mw/mk"]),l("W/(m·K)",1,["w/mk","wmk"]),l("kW/(m·K)",1e3,["kw/mk"],{auto:!1}),l("BTU/(hr·ft·°F)",1.730734666,["btu/hrftf"],{auto:!1})]),specificHeat:Object.freeze([l("J/(kg·K)",1,["j/kgk","jkgk"]),l("kJ/(kg·K)",1e3,["kj/kgk"]),l("cal/(g·°C)",4184,["cal/gc"],{auto:!1})]),doseRate:Object.freeze([l("nSv/h",1e-9,["nsvh"]),l("µSv/h",1e-6,["usv/h","usvh"]),l("mSv/h",.001,["msvh"]),l("Sv/h",1,["svh"]),l("mSv/a",.001/8766,["msv/year","msvpa"],{auto:!1})])}),f=Symbol("ambiguous"),P=new Map,A=new Map;function c(x,N){const F=String(x||"").trim();if(!F)throw new Error("[lattice] a unit system needs a name");if(E[F]||A.has(F))throw new Error(`[lattice] unit system "${F}" already exists`);const G=[...N||[]];if(!G.length)throw new Error(`[lattice] unit system "${F}" has no units`);if(!G.some(K=>K.factor===1))throw new Error(`[lattice] unit system "${F}" has no base unit (none with factor 1)`);const U=new Set;for(const K of G){if(U.has(K.symbol))throw new Error(`[lattice] unit system "${F}" declares "${K.symbol}" twice`);U.add(K.symbol)}return A.set(F,Object.freeze(G)),P.delete(F),F}function d(){return[...Object.keys(E),...A.keys()]}function p(x){const N=M(x);return N?N.units:[]}function M(x){const N=String(x||""),F=P.get(N);if(F!==void 0)return F;const G=E[N]||A.get(N);if(!G)return P.set(N,null),null;const U=Object.freeze([...G].sort((w,b)=>w.factor-b.factor)),K=new Map,$=new Map,k=(w,b)=>{const T=K.get(w);T===void 0?K.set(w,b):T!==b&&K.set(w,f)};for(const w of U){k(w.symbol.toLowerCase(),w);for(const b of w.aliases)k(b.toLowerCase(),w);if(w.prefix){const b=$.get(w.prefix)||[];b.push(w),$.set(w.prefix,b)}}const s={units:U,byToken:K,byPrefix:$,decimal:U.filter(w=>!w.binary&&w.auto),binary:U.some(w=>w.binary)?U.filter(w=>(w.binary||w.factor===1)&&w.auto):null};return P.set(N,s),s}function C(x,N){return N&&x.binary||x.decimal}function e(x,N){const F=M(x);if(!F||z(N))return null;const G=F.units.find(K=>K.symbol===String(N));if(G)return G;const U=F.byToken.get(String(N).trim().toLowerCase());return U&&U!==f?U:null}const m=new WeakMap;function S(x){const N=x||{};if(typeof N=="object"&&N!==null){const K=m.get(N);if(K!==void 0)return K}const F=N.system||"data",G=M(F);let U=null;if(!G)Q(`unit:system:${F}`,`unknown unit system "${F}"; known systems are ${d().join(", ")}`);else{let K=N.unit?e(F,N.unit):null;K||(N.unit&&Q(`unit:unit:${F}:${N.unit}`,`unknown unit "${N.unit}" in system "${F}"; falling back to ${G.units[0].symbol}`),K=G.units.find($=>$.factor===1)||G.units[0]),U={index:G,base:K,binary:N.binary===!0}}return typeof N=="object"&&N!==null&&m.set(N,U),U}const O=new WeakMap;function H(x,N){if(!x||!N||!Array.isArray(x.compound)||x.compound.length===0)return null;const F=O.get(x);if(F!==void 0)return F;const G=new Set,U=[];for(const $ of x.compound){const k=e(x.system||"data",$);if(!k){Q(`unit:compound:${x.system}:${$}`,`unknown compound unit "${$}" in system "${x.system||"data"}"; ignoring it`);continue}G.has(k.symbol)||(G.add(k.symbol),U.push(k))}U.sort(($,k)=>k.factor-$.factor);const K=U.length>=2?U:null;return O.set(x,K),K}function v(x,N,F){return N===F||N.factor===F.factor?x:x*N.factor/F.factor}const t=new Map;function y(x){const N=x||"",F=t.get(N);if(F)return F;const G={group:",",decimal:"."};try{for(const U of new Intl.NumberFormat(x||void 0).formatToParts(12345.6))U.type==="group"?G.group=U.value:U.type==="decimal"&&(G.decimal=U.value)}catch{}return t.set(N,G),G}const a=/[\s ]/g,i=/^[+-]?[\d '’ .,]*(?:[eE][+-]?\d+)?/,r=/^[^\d+\-(.,\s]+\s*/,_=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/;function u(x,N){const{group:F,decimal:G}=y(N);let U=String(x).replace(a,"");if(U==="")return null;const K=G?U.indexOf(G):-1;if(F&&F!==G){if(K>=0&&U.indexOf(F,K+G.length)>=0)return null;U=U.split(F).join("")}if(G&&G!=="."&&(U=U.split(G).join(".")),!_.test(U))return null;const $=Number(U);return Number.isFinite($)?$:null}function R(x,N,F){const G=String(x).trim().replace(/\.$/,"");if(G==="")return null;const U=N.units.find(b=>b.symbol===G);if(U)return U;const K=G.toLowerCase(),$=N.byToken.get(K);if($===f)return null;if($)return $;const k=N.byPrefix.get(K);if(!k||!k.length)return null;const s=C(N,F),w=k.filter(b=>s.includes(b));return w.length===1?w[0]:null}function ne(x,N,F,G){let U=x,K=0,$=!1,k=!1;for(;U!=="";){const s=i.exec(U)[0];if(s==="")return null;const w=u(s,G&&G.locale);if(w===null)return null;U=U.slice(s.length).trim();const b=U.search(/[+-]?[\d]/),T=(b>=0?U.slice(0,b):U).trim();if(U=b>=0?U.slice(b).trim():"",T===""){if($)return null;k=!0,K+=v(w,F[0],N.base)}else{const Y=R(T,N.index,N.binary);if(!Y)return null;K+=v(w,Y,N.base)}if($=!0,k&&U!=="")return null}return $?K:null}function ee(x,N){if(z(x))return null;if(typeof x=="number")return Number.isFinite(x)?x:null;const F=S(N);if(!F)return null;let G=String(x).trim();if(G==="")return null;let U=!1;G.startsWith("(")&&G.endsWith(")")&&(U=!0,G=G.slice(1,-1).trim());const K=H(N,F);if(K){G.startsWith("-")&&(U=!0,G=G.slice(1).trim());const ie=ne(G,F,K,N);return ie===null?null:U?-ie:ie}let $=null;const k=r.exec(G);if(k&&k[0]){const ie=R(k[0].trim(),F.index,F.binary);ie&&($=ie,G=G.slice(k[0].length).trim())}const s=i.exec(G)[0],w=u(s,N&&N.locale);if(w===null)return null;const b=G.slice(s.length).trim();if($&&b!=="")return null;const T=$||(b===""?F.base:R(b,F.index,F.binary));if(!T)return null;const Y=v(w,T,F.base);return U?-Y:Y}const J=new Map;function o(x,N,F,G){const U=`${x||""}|${N}|${F}|${G?1:0}`;let K=J.get(U);return K||(K=new Intl.NumberFormat(x||void 0,{minimumFractionDigits:N,maximumFractionDigits:F,useGrouping:G}),J.set(U,K)),K}function I(x,N){if(!Number.isFinite(x)||x===0)return Math.max(0,N-1);const F=Math.floor(Math.log10(Math.abs(x)));return Math.min(20,Math.max(0,N-1-F))}function j(x,N){if(!Number.isFinite(x)||x===0)return x;const F=Math.ceil(Math.log10(Math.abs(x))),G=10**(N-F);return Math.round(x*G)/G}function D(x,N,F){if(!F||F===N.base.symbol)return N.base;if(F!=="auto")return te(N,F);if(x===0||!Number.isFinite(x))return N.base;const G=Math.abs(x)*N.base.factor,U=C(N.index,N.binary);let K=U[0];for(const s of U)G>=s.factor&&(K=s);if(G>=K.factor)return K;let $=K;for(const s of N.index.units)s.binary!==N.binary&&s.factor!==1||s.factor<=G&&s.factor>($===K?0:$.factor)&&($=s);if($!==K)return $;let k=K;for(const s of N.index.units)s.binary!==N.binary&&s.factor!==1||s.factor<k.factor&&(k=s);return k.factor<N.base.factor?k:N.base}function te(x,N){const F=x.index.units.find(U=>U.symbol===N);if(F)return F;const G=x.index.byToken.get(String(N).toLowerCase());return G&&G!==f?G:(Q(`unit:display:${N}`,`unknown display unit "${N}"; rendering in ${x.base.symbol}`),x.base)}function V(x,N,F,G){const U=x<0;let K=Math.abs(x)*N.base.factor;const $=typeof G.decimals=="number"?G.decimals:G.minDecimals??0,k=typeof G.decimals=="number"?G.decimals:G.maxDecimals??Math.max($,2),s=G.space??" ",w=[];for(let T=0;T<F.length;T++){const Y=F[T],ie=T===F.length-1;let oe=ie?K/Y.factor:Math.floor(K/Y.factor);if(K-=oe*Y.factor,ie){const be=10**k;oe=Math.round(oe*be)/be+0}const pe=ie?o(G.locale,$,k,G.group!==!1):o(G.locale,0,0,G.group!==!1);w.push(`${pe.format(oe)}${s}${Y.symbol}`)}const b=w.join(" ");return U?`-${b}`:b}function ce(x,N){const F=N||{},G=F.nullDisplay??"";if(z(x)||x==="")return G;const U=typeof x=="number"?x:Number(x);if(!Number.isFinite(U))return G;const K=S(F);if(!K)return String(U);const $=H(F,K);if($)return V(U,K,$,F);const k=typeof F.significantFigures=="number"&&F.significantFigures>0?F.significantFigures:0,s=k?j(U,k):U,w=D(s,K,F.display),b=v(s,K.base,w);let T=typeof F.decimals=="number"?F.decimals:F.minDecimals??0,Y=typeof F.decimals=="number"?F.decimals:F.maxDecimals??Math.max(T,2);k&&(T=I(b,k),Y=T);const ie=o(F.locale,T,Y,F.group!==!1).format(b),oe=F.space??" ";return F.placement==="prefix"?`${w.symbol}${F.space??""}${ie}`:`${ie}${oe}${w.symbol}`}function le(x,N){const F=z(x)||Number.isNaN(x)?null:Number(x),G=z(N)||Number.isNaN(N)?null:Number(N);return F===null||Number.isNaN(F)?G===null||Number.isNaN(G)?0:1:G===null||Number.isNaN(G)||F<G?-1:F>G?1:0}function re(x){const N=typeof x.decimals=="number"&&x.decimals>0?`.${"0".repeat(x.decimals)}`:"";return`${typeof x.decimals=="number"?`#,##0${N}`:"#,##0.##"}" ${x.symbol}"`}function Z(x){const N={system:"data",...x||{}},F=S(N),G=F?F.base.symbol:String(N.unit||""),U=Object.freeze({...N,unit:G}),K=Object.freeze({...U,display:G,decimals:void 0,minDecimals:0,maxDecimals:20,group:!1}),$=new Map([[U.locale||"",U]]),k=s=>{const w=s||"";let b=$.get(w);return b||(b=Object.freeze({...U,locale:s||void 0}),$.set(w,b)),b};return{base:"number",extends:"number",storage:"float64",unitConfig:U,format:s=>ce(s.value,s.locale?k(s.locale):U),parse:s=>ee(s.text,s.locale?k(s.locale):U),compare:le,defaults:{filter:"number",editor:"unit",align:"end",total:N.total||"sum"},...N.totals?{totals:N.totals}:{},excel:N.excel||re({decimals:N.decimals,symbol:G}),toStorage:s=>typeof s=="number"?Number.isFinite(s)?s:null:typeof s=="string"?ee(s,U):z(s)?null:ee(String(s),U),toClipboard:s=>ce(s,K),fromClipboard:s=>ee(s,U)}}const g=Z}),ge("packages/core/src/columns/types/temperature.js",function(B,q){"use strict";Object.defineProperty(B,"TEMPERATURE_SCALES",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"findScale",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"convertTemperature",{enumerable:!0,get:function(){return l}}),Object.defineProperty(B,"formatTemperature",{enumerable:!0,get:function(){return f}}),Object.defineProperty(B,"parseTemperature",{enumerable:!0,get:function(){return c}}),Object.defineProperty(B,"createTemperatureType",{enumerable:!0,get:function(){return d}}),Object.defineProperty(B,"TEMPERATURE_TYPES",{enumerable:!0,get:function(){return p}}),Object.defineProperty(B,"default",{enumerable:!0,get:function(){return M}});const z=q("packages/core/src/internal/predicates.js").isNil,h=Object.freeze({C:Object.freeze({symbol:"°C",aliases:["c","°c","celsius","centigrade"],toKelvin:C=>C+273.15,fromKelvin:C=>C-273.15}),F:Object.freeze({symbol:"°F",aliases:["f","°f","fahrenheit"],toKelvin:C=>(C+459.67)*(5/9),fromKelvin:C=>C*(9/5)-459.67}),K:Object.freeze({symbol:"K",aliases:["k","kelvin"],toKelvin:C=>C,fromKelvin:C=>C}),R:Object.freeze({symbol:"°R",aliases:["r","°r","rankine"],toKelvin:C=>C*(5/9),fromKelvin:C=>C*(9/5)})});function Q(C){if(z(C))return null;const e=String(C).trim();if(e==="")return null;for(const[S,O]of Object.entries(h))if(e===S||e===O.symbol)return{key:S,scale:O};const m=e.toLowerCase();for(const[S,O]of Object.entries(h))if(O.aliases.includes(m))return{key:S,scale:O};return null}function l(C,e,m){const S=Q(e),O=Q(m);return!S||!O||!Number.isFinite(Number(C))?null:S.key===O.key?Number(C):O.scale.fromKelvin(S.scale.toKelvin(Number(C)))}const L=new Map;function E(C,e,m){const S=`${C||""}|${e}|${m}`;let O=L.get(S);return O||(O=new Intl.NumberFormat(C||void 0,{minimumFractionDigits:e,maximumFractionDigits:m}),L.set(S,O)),O}function f(C,e){const m=e||{},S=m.nullDisplay??"";if(z(C)||C==="")return S;const O=Number(C);if(!Number.isFinite(O))return S;const H=Q(m.scale||"C");if(!H)return String(O);const v=Q(m.display||m.scale||"C")||H,t=v.key===H.key?O:v.scale.fromKelvin(H.scale.toKelvin(O)),y=typeof m.decimals=="number"?m.decimals:null,a=y??m.minDecimals??0,i=y??m.maxDecimals??1;return`${E(m.locale,a,i).format(t)}${m.space??" "}${v.scale.symbol}`}const P=/^[+-]?[\d\s., ]*\d/;function A(C,e){const m=String(C).trim();if(m==="")return null;const S=new Intl.NumberFormat(e||void 0).formatToParts(1.1).find(t=>t.type==="decimal")?.value||".",O=S===","?".":",",H=m.split(O).join("").split(/[\s ]/).join("").replace(S,"."),v=Number(H);return Number.isFinite(v)?v:null}function c(C,e){if(z(C))return null;const m=e||{},S=Q(m.scale||"C");if(!S)return null;if(typeof C=="number")return Number.isFinite(C)?C:null;let O=String(C).trim();if(O==="")return null;let H=!1;O.startsWith("(")&&O.endsWith(")")&&(H=!0,O=O.slice(1,-1).trim());const v=P.exec(O);if(!v)return null;const t=A(v[0],m.locale);if(t===null)return null;const y=O.slice(v[0].length).trim();if(y==="")return H?-t:t;const a=Q(y);if(!a)return null;const i=a.key===S.key?t:S.scale.fromKelvin(a.scale.toKelvin(t));return H?-i:i}function d(C){const e=Object.freeze({scale:"C",...C||{}}),S=(Q(e.scale)||Q("C")).scale.symbol,O=Object.freeze({...e,display:e.scale,decimals:void 0,minDecimals:0,maxDecimals:20}),H=new Map([[e.locale||"",e]]),v=t=>{const y=t||"";let a=H.get(y);return a||(a=Object.freeze({...e,locale:t||void 0}),H.set(y,a)),a};return{base:"number",extends:"number",storage:"float64",temperatureConfig:e,format:t=>f(t.value,t.locale?v(t.locale):e),parse:t=>c(t.text,t.locale?v(t.locale):e),defaults:{filter:"number",editor:"temperature",align:"end",total:"avg"},totals:{supported:["avg","min","max","count","countValues"]},excel:e.excel||`#,##0${typeof e.decimals=="number"&&e.decimals>0?`.${"0".repeat(e.decimals)}`:".#"}" ${S}"`,toStorage:t=>typeof t=="number"?Number.isFinite(t)?t:null:typeof t=="string"?c(t,e):z(t)?null:c(String(t),e),toClipboard:t=>f(t,O),fromClipboard:t=>c(t,e)}}const p=Object.freeze({celsius:d({scale:"C"}),fahrenheit:d({scale:"F"}),kelvin:d({scale:"K"})}),M=d}),ge("packages/modules/form/controls/number.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,L=q("packages/core/src/format/number.js").compileNumber,E=q("packages/core/src/columns/types/unit.js"),f=E.parseUnit,P=E.formatUnit,A=E.findUnit,c=E.unitsOf,d=q("packages/core/src/columns/types/temperature.js"),p=d.parseTemperature,M=d.formatTemperature,C=d.findScale,e="data-lattice-form-number-styles";function m(){return`
|
|
999
1002
|
.lat-form__control .lat-form__number{
|
|
1000
1003
|
text-align:right; font-variant-numeric:tabular-nums;
|
|
1001
1004
|
}
|
|
@@ -1036,7 +1039,7 @@
|
|
|
1036
1039
|
font:inherit; line-height:inherit; cursor:pointer;
|
|
1037
1040
|
}
|
|
1038
1041
|
.lat-form__control .lat-form__number-unitpick:disabled{ opacity:.6; cursor:not-allowed; }
|
|
1039
|
-
`.trim()}function S(i){const r=i&&i.documentElement;if(!r||r.getAttribute(e))return;r.setAttribute(e,"1");const _=i.createElement("style");_.textContent=m(),(i.head||i.body||r).appendChild(_)}function O(i){let r="",_=".";try{for(const u of new Intl.NumberFormat(i||void 0).formatToParts(12345.6))u.type==="group"?r=u.value:u.type==="decimal"&&(_=u.value)}catch{}return{group:r,decimal:_}}function H(i,r){if(i==null)return null;let _=String(i).trim();if(_==="")return null;const{group:u,decimal:R}=O(r);let ie=!1;if(/^\(.*\)$/.test(_)&&(ie=!0,_=_.slice(1,-1)),_=_.replace(/[\s ]/g,""),u&&u!=="."&&(_=_.split(u).join("")),_=_.replace(/[^0-9eE+\-.,]/g,""),R===","?(_=_.split(".").join(""),_=_.replace(",",".")):_=_.split(",").join(""),_===""||_==="-"||_==="+")return NaN;_.startsWith("-")&&(ie=!ie,_=_.slice(1));const ee=Number(_);return Number.isFinite(ee)?ie?-ee:ee:NaN}function v(i){if(i==null||i==="")return"";const r=typeof i=="number"?i:Number(i);return Number.isFinite(r)?String(r):""}function t(i){return i&&i.__latNumber?i.__latNumber.input:i}function y(i){if(typeof i=="number")return Number.isFinite(i)?i:null;if(i==null||i==="")return null;const r=Number(i);return Number.isFinite(r)?r:null}function a(i){const r=i&&i.props||{};return typeof r.system=="string"&&r.system!==""?{kind:"unit",opts:{system:r.system,unit:r.unit,binary:r.binary===!0,decimals:r.decimals,minDecimals:r.minDecimals,maxDecimals:r.maxDecimals,display:r.display,locale:i.locale||r.locale,group:r.group,space:r.space,placement:r.placement,compound:r.compound,significantFigures:r.significantFigures,nullDisplay:r.nullDisplay}}:typeof r.scale=="string"&&r.scale!==""?{kind:"temperature",opts:{scale:r.scale,display:r.display,decimals:r.decimals,minDecimals:r.minDecimals,maxDecimals:r.maxDecimals,space:r.space,locale:i.locale||r.locale,nullDisplay:r.nullDisplay}}:null}z("number",{kind:"field",build(i,r){const _=r.doc;S(_);const u=i.props&&i.props.format&&(typeof i.props.format=="object"||typeof i.props.format=="string")?i.props.format:null,R=i.locale||void 0,ie=u?L(u,R):null,ee=typeof r.t=="function"?r.t:Q,J=a(i),o=y(i.step),I=y(i.min),j=y(i.max);let T="";if(J&&J.kind==="unit"){const Z=C(J.opts.system,J.opts.unit);T=Z?Z.symbol:String(J.opts.unit||"")}else if(J&&J.kind==="temperature"){const Z=w(J.opts.scale);T=Z?Z.scale.symbol:""}const te=_.createElement("input");te.type="text",te.inputMode="decimal",te.className="lat-form__number",i.name&&(te.name=i.name),i.placeholder!=null&&(te.placeholder=String(i.placeholder));const V={input:te,format:ie,t:ee,locale:R,step:o,min:I,max:j,unit:J,unitSymbol:T,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},ce=()=>V.displayUnit!=null?{...J.opts,display:V.displayUnit}:J.opts,le=Z=>V.unit&&V.unit.kind==="unit"?P(Z,ce()):V.unit&&V.unit.kind==="temperature"?M(Z,V.unit.opts):V.format&&Number.isFinite(Z)?V.format(Z):v(Z),re=Z=>{if(!V.unit)return H(Z,V.locale);const $=Z==null?"":String(Z);if($.trim()==="")return null;const A=V.unit.kind==="temperature"?p($,V.unit.opts):f($,V.unit.opts);return A===null?Number.NaN:A},K=()=>V.unit&&typeof V.unit.opts.nullDisplay=="string"?V.unit.opts.nullDisplay:"",g=Z=>{if(Z==null||Z===""){V.value=null,V.invalid=!1,te.value=K();return}const $=typeof Z=="number"?Z:Number(Z);if(!Number.isFinite($)){V.value=null,V.invalid=!1,te.value=K();return}V.value=$,V.invalid=!1,te.value=V.focused?v($):le($)},x=()=>{const Z=te.value;Z===""?te.removeAttribute("aria-valuetext"):te.setAttribute("aria-valuetext",Z)},N=Z=>{const $=re(te.value);let s=($==null||Number.isNaN($)?0:$)+Z;typeof I=="number"&&s<I&&(s=I),typeof j=="number"&&s>j&&(s=j),te.value=V.unit&&!V.focused?le(s):v(s)},F=()=>{V.focused=!0,V.value!=null&&(te.value=v(V.value)),x()},G=()=>{V.focused=!1;const Z=re(te.value);Z==null?(V.invalid=!1,V.value!=null&&(te.value=le(V.value))):Number.isNaN(Z)?(V.invalid=!0,V.value!=null?te.value=le(V.value):te.value=""):(V.invalid=!1,V.value=Z,te.value=le(Z)),x()},U=Z=>{if(Z.key!=="ArrowUp"&&Z.key!=="ArrowDown")return;typeof Z.preventDefault=="function"&&Z.preventDefault();const $=typeof o=="number"&&o>0?o:1;N(Z.key==="ArrowUp"?$:-$)};if(te.addEventListener("focus",F),te.addEventListener("blur",G),te.addEventListener("keydown",U),V.disposers.push(()=>te.removeEventListener("focus",F),()=>te.removeEventListener("blur",G),()=>te.removeEventListener("keydown",U)),g(i.value),typeof I=="number"&&te.setAttribute("aria-valuemin",String(I)),typeof j=="number"&&te.setAttribute("aria-valuemax",String(j)),x(),te.__latNumber=V,J&&J.kind==="unit"&&i.props&&i.props.unitPicker===!0){const Z=_.createElement("div");Z.className="lat-form__number-unit";const $=_.createElement("select");$.className="lat-form__number-unitpick",$.setAttribute("aria-label",ee("form.number.unitPicker"));const A=c(J.opts.system);for(const B of A){const Y=_.createElement("option");Y.value=B.symbol,Y.textContent=B.symbol,$.appendChild(Y)}const s=J.opts.display&&J.opts.display!=="auto"?J.opts.display:T,k=A.some(B=>B.symbol===s)?s:T;$.value=k,V.displayUnit=k;const b=()=>{V.displayUnit=$.value,!V.focused&&V.value!=null&&(te.value=le(V.value)),x()};return $.addEventListener("change",b),V.disposers.push(()=>$.removeEventListener("change",b)),V.picker=$,Z.appendChild(te),Z.appendChild($),Z.__latNumber=V,Z}if(i.props&&i.props.spinner===!0){const Z=_.createElement("div");Z.className="lat-form__number-spinner";const $=(k,b)=>{const B=_.createElement("button");return B.type="button",B.tabIndex=-1,B.className="lat-form__number-step",B.textContent=k,B.addEventListener("mousedown",Y=>{typeof Y.preventDefault=="function"&&Y.preventDefault();const ne=typeof o=="number"&&o>0?o:1;N(b*ne)}),B},A=$("−",-1),s=$("+",1);return V.buttons=[A,s],Z.appendChild(A),Z.appendChild(te),Z.appendChild(s),Z.__latNumber=V,Z}return te},read(i){const r=i&&i.__latNumber,_=r?r.input:i;if(r&&!r.focused)return r.unit&&r.invalid?Number.NaN:r.value;if(r&&r.unit){const u=_.value;if(String(u).trim()==="")return null;const R=r.unit.kind==="temperature"?p(u,r.unit.opts):f(u,r.unit.opts);return R===null?Number.NaN:R}return H(_.value,r?r.locale:void 0)},write(i,r){const _=i&&i.__latNumber,u=_?_.input:i,R=_&&_.unit&&typeof _.unit.opts.nullDisplay=="string"?_.unit.opts.nullDisplay:"";if(r==null||r===""){_&&(_.value=null,_.invalid=!1),u.value=R;return}const ie=typeof r=="number"?r:Number(r);if(!Number.isFinite(ie)){_&&(_.value=null,_.invalid=!1),u.value=R;return}_&&(_.value=ie,_.invalid=!1),_&&_.focused?u.value=v(ie):_&&_.unit?u.value=_.unit.kind==="unit"?P(ie,_.displayUnit!=null?{..._.unit.opts,display:_.displayUnit}:_.unit.opts):M(ie,_.unit.opts):_&&_.format?u.value=_.format(ie):u.value=v(ie),u.value===""?u.removeAttribute("aria-valuetext"):u.setAttribute("aria-valuetext",u.value)},state(i,r){const _=i&&i.__latNumber,u=_?_.input:i;u.disabled=r.disabled===!0,u.readOnly=r.readOnly===!0;const R=r.disabled===!0||r.readOnly===!0;for(const ie of _?_.buttons:[])ie.disabled=R;_&&_.picker&&(_.picker.disabled=R)},validate(i,r,_){const u=i&&i.__latNumber,R=u&&u.t?u.t:Q;if(_==null||_==="")return null;if(typeof _!="number"||Number.isNaN(_))return u&&u.unit?R("form.validation.unit",{unit:u.unitSymbol}):R("form.validation.number");const ie=ee=>u&&u.unit&&u.unit.kind==="unit"?P(ee,{...u.unit.opts,display:u.unit.opts.unit,group:!0}):u&&u.unit&&u.unit.kind==="temperature"?M(ee,u.unit.opts):String(ee);if(u&&typeof u.min=="number"&&_<u.min)return R("form.validation.min",{min:ie(u.min)});if(u&&typeof u.max=="number"&&_>u.max)return R("form.validation.max",{max:ie(u.max)});if(u&&typeof u.step=="number"&&u.step>0){const ee=typeof u.min=="number"?u.min:0,J=(_-ee)/u.step;if(Math.abs(J-Math.round(J))>1e-9)return R("form.validation.step",{step:String(u.step)})}return null},focus(i){const r=t(i);typeof r.focus=="function"&&r.focus()},blur(i){const r=t(i);typeof r.blur=="function"&&r.blur()},destroy(i){const r=i&&i.__latNumber;if(r)for(const _ of r.disposers.splice(0))_()}})}),ge("packages/modules/form/controls/textarea.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl;z("textarea",{kind:"field",build(h,Q){const l=Q.doc.createElement("textarea");return h.name&&(l.name=h.name),h.placeholder!=null&&(l.placeholder=String(h.placeholder)),h.rows!=null&&(l.rows=Number(h.rows)||2),l.value=h.value==null?"":String(h.value),l},read(h){return h.value},write(h,Q){h.value=Q==null?"":String(Q)},state(h,Q){h.disabled=Q.disabled===!0,h.readOnly=Q.readOnly===!0}})}),ge("packages/modules/form/controls/checkbox.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/state.js"),Q=h.applyBooleanInputState,l=h.guardBooleanInput;z("checkbox",{kind:"toggle",build(L,E){const f=E.doc.createElement("input");return f.type="checkbox",L.name&&(f.name=L.name),f.checked=L.value===!0,l(f),f},read(L){return L.checked},write(L,E){L.checked=E===!0},state(L,E){Q(L,E.disabled===!0,E.readOnly===!0)}})}),ge("packages/modules/form/controls/button.js",function(D,q){"use strict";Object.defineProperty(D,"injectButtonStyles",{enumerable:!0,get:function(){return c}}),Object.defineProperty(D,"buttonItemFrom",{enumerable:!0,get:function(){return a}}),Object.defineProperty(D,"buildButton",{enumerable:!0,get:function(){return i}});const z=q("packages/modules/form/controls/registry.js").registerControl,h="lat-button",Q="data-lattice-button-styles",l="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"}}),E=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),f=Object.freeze(["sm","md","lg"]),P=Object.freeze(["button","submit","reset"]);function C(){const r=`
|
|
1042
|
+
`.trim()}function S(i){const r=i&&i.documentElement;if(!r||r.getAttribute(e))return;r.setAttribute(e,"1");const _=i.createElement("style");_.textContent=m(),(i.head||i.body||r).appendChild(_)}function O(i){let r="",_=".";try{for(const u of new Intl.NumberFormat(i||void 0).formatToParts(12345.6))u.type==="group"?r=u.value:u.type==="decimal"&&(_=u.value)}catch{}return{group:r,decimal:_}}function H(i,r){if(i==null)return null;let _=String(i).trim();if(_==="")return null;const{group:u,decimal:R}=O(r);let ne=!1;if(/^\(.*\)$/.test(_)&&(ne=!0,_=_.slice(1,-1)),_=_.replace(/[\s ]/g,""),u&&u!=="."&&(_=_.split(u).join("")),_=_.replace(/[^0-9eE+\-.,]/g,""),R===","?(_=_.split(".").join(""),_=_.replace(",",".")):_=_.split(",").join(""),_===""||_==="-"||_==="+")return NaN;_.startsWith("-")&&(ne=!ne,_=_.slice(1));const ee=Number(_);return Number.isFinite(ee)?ne?-ee:ee:NaN}function v(i){if(i==null||i==="")return"";const r=typeof i=="number"?i:Number(i);return Number.isFinite(r)?String(r):""}function t(i){return i&&i.__latNumber?i.__latNumber.input:i}function y(i){if(typeof i=="number")return Number.isFinite(i)?i:null;if(i==null||i==="")return null;const r=Number(i);return Number.isFinite(r)?r:null}function a(i){const r=i&&i.props||{};return typeof r.system=="string"&&r.system!==""?{kind:"unit",opts:{system:r.system,unit:r.unit,binary:r.binary===!0,decimals:r.decimals,minDecimals:r.minDecimals,maxDecimals:r.maxDecimals,display:r.display,locale:i.locale||r.locale,group:r.group,space:r.space,placement:r.placement,compound:r.compound,significantFigures:r.significantFigures,nullDisplay:r.nullDisplay}}:typeof r.scale=="string"&&r.scale!==""?{kind:"temperature",opts:{scale:r.scale,display:r.display,decimals:r.decimals,minDecimals:r.minDecimals,maxDecimals:r.maxDecimals,space:r.space,locale:i.locale||r.locale,nullDisplay:r.nullDisplay}}:null}z("number",{kind:"field",build(i,r){const _=r.doc;S(_);const u=i.props&&i.props.format&&(typeof i.props.format=="object"||typeof i.props.format=="string")?i.props.format:null,R=i.locale||void 0,ne=u?L(u,R):null,ee=typeof r.t=="function"?r.t:Q,J=a(i),o=y(i.step),I=y(i.min),j=y(i.max);let D="";if(J&&J.kind==="unit"){const K=A(J.opts.system,J.opts.unit);D=K?K.symbol:String(J.opts.unit||"")}else if(J&&J.kind==="temperature"){const K=C(J.opts.scale);D=K?K.scale.symbol:""}const te=_.createElement("input");te.type="text",te.inputMode="decimal",te.className="lat-form__number",i.name&&(te.name=i.name),i.placeholder!=null&&(te.placeholder=String(i.placeholder));const V={input:te,format:ne,t:ee,locale:R,step:o,min:I,max:j,unit:J,unitSymbol:D,displayUnit:null,picker:null,invalid:!1,value:null,focused:!1,buttons:[],disposers:[]},ce=()=>V.displayUnit!=null?{...J.opts,display:V.displayUnit}:J.opts,le=K=>V.unit&&V.unit.kind==="unit"?P(K,ce()):V.unit&&V.unit.kind==="temperature"?M(K,V.unit.opts):V.format&&Number.isFinite(K)?V.format(K):v(K),re=K=>{if(!V.unit)return H(K,V.locale);const $=K==null?"":String(K);if($.trim()==="")return null;const k=V.unit.kind==="temperature"?p($,V.unit.opts):f($,V.unit.opts);return k===null?Number.NaN:k},Z=()=>V.unit&&typeof V.unit.opts.nullDisplay=="string"?V.unit.opts.nullDisplay:"",g=K=>{if(K==null||K===""){V.value=null,V.invalid=!1,te.value=Z();return}const $=typeof K=="number"?K:Number(K);if(!Number.isFinite($)){V.value=null,V.invalid=!1,te.value=Z();return}V.value=$,V.invalid=!1,te.value=V.focused?v($):le($)},x=()=>{const K=te.value;K===""?te.removeAttribute("aria-valuetext"):te.setAttribute("aria-valuetext",K)},N=K=>{const $=re(te.value);let s=($==null||Number.isNaN($)?0:$)+K;typeof I=="number"&&s<I&&(s=I),typeof j=="number"&&s>j&&(s=j),te.value=V.unit&&!V.focused?le(s):v(s)},F=()=>{V.focused=!0,V.value!=null&&(te.value=v(V.value)),x()},G=()=>{V.focused=!1;const K=re(te.value);K==null?(V.value=null,V.invalid=!1,te.value=Z()):Number.isNaN(K)?(V.invalid=!0,V.value!=null?te.value=le(V.value):te.value=""):(V.invalid=!1,V.value=K,te.value=le(K)),x()},U=K=>{if(K.key!=="ArrowUp"&&K.key!=="ArrowDown")return;typeof K.preventDefault=="function"&&K.preventDefault();const $=typeof o=="number"&&o>0?o:1;N(K.key==="ArrowUp"?$:-$)};if(te.addEventListener("focus",F),te.addEventListener("blur",G),te.addEventListener("keydown",U),V.disposers.push(()=>te.removeEventListener("focus",F),()=>te.removeEventListener("blur",G),()=>te.removeEventListener("keydown",U)),g(i.value),typeof I=="number"&&te.setAttribute("aria-valuemin",String(I)),typeof j=="number"&&te.setAttribute("aria-valuemax",String(j)),x(),te.__latNumber=V,J&&J.kind==="unit"&&i.props&&i.props.unitPicker===!0){const K=_.createElement("div");K.className="lat-form__number-unit";const $=_.createElement("select");$.className="lat-form__number-unitpick",$.setAttribute("aria-label",ee("form.number.unitPicker"));const k=c(J.opts.system);for(const T of k){const Y=_.createElement("option");Y.value=T.symbol,Y.textContent=T.symbol,$.appendChild(Y)}const s=J.opts.display&&J.opts.display!=="auto"?J.opts.display:D,w=k.some(T=>T.symbol===s)?s:D;$.value=w,V.displayUnit=w;const b=()=>{V.displayUnit=$.value,!V.focused&&V.value!=null&&(te.value=le(V.value)),x()};return $.addEventListener("change",b),V.disposers.push(()=>$.removeEventListener("change",b)),V.picker=$,K.appendChild(te),K.appendChild($),K.__latNumber=V,K}if(i.props&&i.props.spinner===!0){const K=_.createElement("div");K.className="lat-form__number-spinner";const $=(w,b)=>{const T=_.createElement("button");return T.type="button",T.tabIndex=-1,T.className="lat-form__number-step",T.textContent=w,T.addEventListener("mousedown",Y=>{typeof Y.preventDefault=="function"&&Y.preventDefault();const ie=typeof o=="number"&&o>0?o:1;N(b*ie)}),T},k=$("−",-1),s=$("+",1);return V.buttons=[k,s],K.appendChild(k),K.appendChild(te),K.appendChild(s),K.__latNumber=V,K}return te},read(i){const r=i&&i.__latNumber,_=r?r.input:i;if(r&&!r.focused)return r.unit&&r.invalid?Number.NaN:r.value;if(r&&r.unit){const u=_.value;if(String(u).trim()==="")return null;const R=r.unit.kind==="temperature"?p(u,r.unit.opts):f(u,r.unit.opts);return R===null?Number.NaN:R}return H(_.value,r?r.locale:void 0)},write(i,r){const _=i&&i.__latNumber,u=_?_.input:i,R=_&&_.unit&&typeof _.unit.opts.nullDisplay=="string"?_.unit.opts.nullDisplay:"";if(r==null||r===""){_&&(_.value=null,_.invalid=!1),u.value=R;return}const ne=typeof r=="number"?r:Number(r);if(!Number.isFinite(ne)){_&&(_.value=null,_.invalid=!1),u.value=R;return}_&&(_.value=ne,_.invalid=!1),_&&_.focused?u.value=v(ne):_&&_.unit?u.value=_.unit.kind==="unit"?P(ne,_.displayUnit!=null?{..._.unit.opts,display:_.displayUnit}:_.unit.opts):M(ne,_.unit.opts):_&&_.format?u.value=_.format(ne):u.value=v(ne),u.value===""?u.removeAttribute("aria-valuetext"):u.setAttribute("aria-valuetext",u.value)},state(i,r){const _=i&&i.__latNumber,u=_?_.input:i;u.disabled=r.disabled===!0,u.readOnly=r.readOnly===!0;const R=r.disabled===!0||r.readOnly===!0;for(const ne of _?_.buttons:[])ne.disabled=R;_&&_.picker&&(_.picker.disabled=R)},validate(i,r,_){const u=i&&i.__latNumber,R=u&&u.t?u.t:Q;if(_==null||_==="")return null;if(typeof _!="number"||Number.isNaN(_))return u&&u.unit?R("form.validation.unit",{unit:u.unitSymbol}):R("form.validation.number");const ne=ee=>u&&u.unit&&u.unit.kind==="unit"?P(ee,{...u.unit.opts,display:u.unit.opts.unit,group:!0}):u&&u.unit&&u.unit.kind==="temperature"?M(ee,u.unit.opts):String(ee);if(u&&typeof u.min=="number"&&_<u.min)return R("form.validation.min",{min:ne(u.min)});if(u&&typeof u.max=="number"&&_>u.max)return R("form.validation.max",{max:ne(u.max)});if(u&&typeof u.step=="number"&&u.step>0){const ee=typeof u.min=="number"?u.min:0,J=(_-ee)/u.step;if(Math.abs(J-Math.round(J))>1e-9)return R("form.validation.step",{step:String(u.step)})}return null},focus(i){const r=t(i);typeof r.focus=="function"&&r.focus()},blur(i){const r=t(i);typeof r.blur=="function"&&r.blur()},destroy(i){const r=i&&i.__latNumber;if(r)for(const _ of r.disposers.splice(0))_()}})}),ge("packages/modules/form/controls/textarea.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl;z("textarea",{kind:"field",build(h,Q){const l=Q.doc.createElement("textarea");return h.name&&(l.name=h.name),h.placeholder!=null&&(l.placeholder=String(h.placeholder)),h.rows!=null&&(l.rows=Number(h.rows)||2),l.value=h.value==null?"":String(h.value),l},read(h){return h.value},write(h,Q){h.value=Q==null?"":String(Q)},state(h,Q){h.disabled=Q.disabled===!0,h.readOnly=Q.readOnly===!0}})}),ge("packages/modules/form/controls/checkbox.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/state.js"),Q=h.applyBooleanInputState,l=h.guardBooleanInput;z("checkbox",{kind:"toggle",build(L,E){const f=E.doc.createElement("input");return f.type="checkbox",L.name&&(f.name=L.name),f.checked=L.value===!0,l(f),f},read(L){return L.checked},write(L,E){L.checked=E===!0},state(L,E){Q(L,E.disabled===!0,E.readOnly===!0)}})}),ge("packages/modules/form/controls/button.js",function(B,q){"use strict";Object.defineProperty(B,"injectButtonStyles",{enumerable:!0,get:function(){return c}}),Object.defineProperty(B,"buttonItemFrom",{enumerable:!0,get:function(){return a}}),Object.defineProperty(B,"buildButton",{enumerable:!0,get:function(){return i}});const z=q("packages/modules/form/controls/registry.js").registerControl,h="lat-button",Q="data-lattice-button-styles",l="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"}}),E=Object.freeze(["primary","secondary","tonal","outline","text","danger"]),f=Object.freeze(["sm","md","lg"]),P=Object.freeze(["button","submit","reset"]);function A(){const r=`
|
|
1040
1043
|
.lat-form{
|
|
1041
1044
|
--lattice-button-primary-bg:var(--lattice-accent);
|
|
1042
1045
|
--lattice-button-primary-bg-hover:color-mix(in srgb, var(--lattice-accent) 88%, var(--lattice-foreground));
|
|
@@ -1141,7 +1144,7 @@ ${_}
|
|
|
1141
1144
|
|
|
1142
1145
|
.lat-form__control .${h}:focus-visible{ outline:2px solid var(--lattice-focus-ring); outline-offset:2px; }
|
|
1143
1146
|
.lat-form__control .${h}[aria-busy='true']{ cursor:default; pointer-events:none; }
|
|
1144
|
-
`.trim()}function c(r){const _=r&&r.documentElement;if(!_||_.getAttribute(Q))return;_.setAttribute(Q,"1");const u=r.createElement("style");u.textContent=
|
|
1147
|
+
`.trim()}function c(r){const _=r&&r.documentElement;if(!_||_.getAttribute(Q))return;_.setAttribute(Q,"1");const u=r.createElement("style");u.textContent=A(),(r.head||r.body||_).appendChild(u)}function d(r){return E.includes(r)?r:"secondary"}function p(r){return f.includes(r)?r:"md"}function M(r){return P.includes(r)?r:"button"}function C(r){return r==="end"?"end":"start"}function e(r){return r==="uppercase"?"uppercase":"none"}function m(r){const _=r.props&&r.props.href;return typeof _=="string"&&_!==""}function S(r,_){const u=r.createElementNS(l,"svg");u.setAttribute("viewBox",_.viewBox),u.setAttribute("focusable","false"),u.setAttribute("aria-hidden","true"),_.paint==="stroke"?(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");for(const R of _.paths){const ne=r.createElementNS(l,"path");ne.setAttribute("d",R),u.appendChild(ne)}return u}function O(r,_){if(r==null)return null;if(typeof r=="object"&&r.nodeType)return r;if(typeof r!="string"||r==="")return null;const u=r;if(/^(https?:)?\/\//i.test(u)||/^data:/i.test(u)){const ne=_.createElement("img");return ne.src=u,ne.alt="",ne}const R=L[u];return R?S(_,R):null}function H(r){const _=r.createElementNS(l,"svg");_.setAttribute("viewBox","0 0 16 16"),_.setAttribute("focusable","false"),_.setAttribute("aria-hidden","true"),_.setAttribute("class",`${h}__spinner`);const u=r.createElementNS(l,"circle");return u.setAttribute("cx","8"),u.setAttribute("cy","8"),u.setAttribute("r","6"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","2"),u.setAttribute("stroke-linecap","round"),u.setAttribute("stroke-dasharray","28"),u.setAttribute("stroke-dashoffset","10"),_.appendChild(u),_}function v(r,_,u){const R=_&&_.defaultView,ne=R&&R.CustomEvent,ee=ne?new ne("submit",{bubbles:!0,detail:{values:u}}):{type:"submit",bubbles:!0,cancelable:!1,defaultPrevented:!1,detail:{values:u},preventDefault(){this.defaultPrevented=!0}};r.dispatchEvent(ee)}function t(r){const _=r.loading===!0,u=r.disabled===!0&&r.focusableWhenDisabled!==!0||_;r.el.disabled=u,r.el.setAttribute("aria-disabled",r.disabled===!0||_?"true":"false")}function y(r,_){r.loading=_===!0,r.el.setAttribute("aria-busy",r.loading?"true":"false"),t(r);const u=r.iconSlot;if(!u)return;for(;u.firstChild;)u.removeChild(u.firstChild);const R=r.loading?H(r.doc):r.iconEl;R?(u.appendChild(R),u.parentNode||(r.position==="end"?r.el.appendChild(u):r.el.insertBefore(u,r.el.firstChild))):u.parentNode&&u.parentNode.removeChild(u)}function a(r){return{kind:"item",type:"button",name:r.name!=null&&r.name!==""?String(r.name):null,label:r.label,disabled:r.disabled===!0,props:{icon:r.icon,iconPosition:r.iconPosition,variant:r.variant,fullWidth:r.fullWidth,size:r.size,textTransform:r.textTransform,buttonType:r.buttonType,loading:r.loading,href:r.href,ariaLabel:r.ariaLabel,toggle:r.toggle,focusableWhenDisabled:r.focusableWhenDisabled}}}function i(r,_){const u=_.doc,R=r.props||{},ne=r.label!=null?String(r.label):"",ee=O(R.icon,u),J=ee!=null&&ne==="",o=m(r)?u.createElement("a"):u.createElement("button");o.className=h,o.setAttribute("data-variant",d(R.variant)),o.setAttribute("data-size",p(R.size)),o.setAttribute("data-text-transform",e(R.textTransform)),R.fullWidth===!0&&o.setAttribute("data-full","true"),J&&o.setAttribute("data-icon-only","true"),r.name&&!m(r)&&(o.name=r.name),m(r)?o.setAttribute("href",R.href):o.type="button";const I=R.ariaLabel!=null?String(R.ariaLabel):J?String(r.name||""):"";I&&o.setAttribute("aria-label",I);const j=u.createElement("span");j.className=`${h}__icon`,j.setAttribute("aria-hidden","true"),ee&&j.appendChild(ee);let D=null;J||(D=u.createElement("span"),D.className=`${h}__label`,D.textContent=ne!==""?ne:String(r.name||""));const te=C(R.iconPosition);te==="end"?(D&&o.appendChild(D),j.firstChild&&o.appendChild(j)):(j.firstChild&&o.appendChild(j),D&&o.appendChild(D));const V={el:o,doc:u,iconSlot:j,iconEl:ee,label:D,position:te,loading:!1,disabled:r.disabled===!0,toggle:R.toggle===!0,pressed:R.toggle===!0&&r.value===!0,focusableWhenDisabled:R.focusableWhenDisabled===!0};o.__latButton=V,V.toggle&&o.setAttribute("aria-pressed",V.pressed?"true":"false");const ce=()=>{if(V.loading||V.disabled)return;if(V.toggle){const re=V.pressed;V.pressed=!V.pressed,o.setAttribute("aria-pressed",V.pressed?"true":"false"),_.emitter.emit("change",{name:r.name,value:V.pressed,previousValue:re,item:r})}const le=M(R.buttonType);le==="submit"?(typeof _.form.validate!="function"||_.form.validate())&&v(_.el,u,typeof _.form.getValue=="function"?_.form.getValue():{}):le==="reset"&&typeof _.form.clear=="function"&&_.form.clear()};return o.addEventListener("click",ce),_.disposers.push(()=>o.removeEventListener("click",ce)),y(V,R.loading===!0),o}z("button",{kind:"button",action:!0,build(r,_){return c(_.doc),i(r,_)},read(r){const _=r&&r.__latButton;return _&&_.toggle?_.pressed:null},write(){},state(r,_){const u=r.__latButton;u&&(u.disabled=_.disabled===!0,t(u))},setLoading(r,_){const u=r.__latButton;u&&y(u,_)}})}),ge("packages/modules/form/controls/buttons.js",function(B,q){"use strict";Object.defineProperty(B,"injectButtonsStyles",{enumerable:!0,get:function(){return c}});const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/controls/button.js"),Q=h.buildButton,l=h.buttonItemFrom,L=h.injectButtonStyles,E="lat-button-row",f="data-lattice-button-row-styles",P=Object.freeze(["start","end","center","stretch","space-between"]);function A(){return`
|
|
1145
1148
|
.lat-form__control .${E}{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--lattice-space); }
|
|
1146
1149
|
.lat-form__control .${E}[data-align='start']{ justify-content:flex-start; }
|
|
1147
1150
|
.lat-form__control .${E}[data-align='end']{ justify-content:flex-end; }
|
|
@@ -1149,7 +1152,7 @@ ${_}
|
|
|
1149
1152
|
.lat-form__control .${E}[data-align='space-between']{ justify-content:space-between; }
|
|
1150
1153
|
.lat-form__control .${E}[data-align='stretch']{ justify-content:flex-start; }
|
|
1151
1154
|
.lat-form__control .${E}[data-align='stretch'] > .lat-button{ flex:1 1 auto; }
|
|
1152
|
-
`.trim()}function c(p){const M=p&&p.documentElement;if(!M||M.getAttribute(f))return;M.setAttribute(f,"1");const w=p.createElement("style");w.textContent=C(),(p.head||p.body||M).appendChild(w)}function d(p){return P.includes(p)?p:"start"}z("buttons",{kind:"display",action:!0,build(p,M){L(M.doc),c(M.doc);const w=p.props||{},e=Array.isArray(w.buttons)?w.buttons:Array.isArray(w.items)?w.items:[],m=M.doc.createElement("div");m.className=E,m.setAttribute("data-align",d(w.align));const S=[];return e.forEach((O,H)=>{if(O==null||typeof O!="object")return;const v=l(O),t=Q(v,M),y=()=>{t.disabled||t.getAttribute("aria-disabled")==="true"||M.emitter.emit("click",{name:v.name,item:v,value:null})};t.addEventListener("click",y),S.push(()=>t.removeEventListener("click",y)),m.appendChild(t)}),M.disposers.push(()=>{for(const O of S)O()}),m},read(){return null},write(){},state(){}})}),ge("packages/modules/form/controls/text.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl;z("text",{kind:"display",build(h,Q){const l=Q.doc.createElement("span");return l.className="lat-form__text",l.textContent=h.value==null?"":String(h.value),l},read(h){return h.textContent},write(h,Q){h.textContent=Q==null?"":String(Q)},state(){}})}),ge("packages/modules/form/controls/select.js",function(D,q){"use strict";Object.defineProperty(D,"createSelect",{enumerable:!0,get:function(){return H}});const z=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,l=q("packages/modules/form/controls/combo.js"),L=l.renderAdornment,E=l.renderTemplateContent,f=l.injectAdornmentStyles,P=q("packages/modules/form/controls/field-icon.js"),C=P.makeFieldIcon,c=P.injectFieldIconStyles,d=700;function p(t,y){const a=t&&t.defaultView;return a&&a.Event?new a.Event(y,{bubbles:!0}):{type:y,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function M(t){return t!=null&&typeof t=="object"?t.value==null?"":String(t.value):t==null?"":String(t)}function w(t){return t==null?"":typeof t!="object"?String(t):t.label!=null?String(t.label):t.text!=null?String(t.text):t.value==null?"":String(t.value)}function e(t){return t!=null&&typeof t=="object"&&Array.isArray(t.options)}function m(t){const y=[];if(!Array.isArray(t))return y;for(const a of t)if(e(a)){const i=w(a);y.push({group:!0,label:i});for(const r of a.options)if(e(r)){y.push({group:!0,label:w(r)});for(const _ of r.options)y.push(S(_))}else y.push(S(r))}else y.push(S(a));return y}function S(t){const y=t!=null&&typeof t=="object"?t:{},a=y.description!=null?String(y.description):y.subtitle!=null?String(y.subtitle):null;return{group:!1,value:M(t),label:w(t),icon:y.icon,avatar:y.avatar,color:y.color,dot:y.dot,description:a,disabled:y.disabled===!0}}function O(t,y){return t===y?!0:t!=null&&y!=null&&String(t)===String(y)}function H(t,y={}){const a=y.doc||t&&t.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;a&&(f(a),c(a));const i=typeof y.t=="function"?y.t:Q,r=y.multiple===!0,_=m(y.options),u=_.filter(X=>!X.group);let R=[];const ie=a.createElement("div");ie.className="lat-combo lat-select",r&&ie.setAttribute("data-multiple","true");const ee=a.createElement("button");ee.type="button",ee.className="lat-select__trigger",ee.setAttribute("role","combobox"),ee.setAttribute("aria-haspopup","listbox"),ee.setAttribute("aria-expanded","false"),r&&ee.setAttribute("aria-multiselectable","true"),ee.setAttribute("aria-label",y.ariaLabel||i("form.select.toggle"));const J=a.createElement("span");J.className="lat-select__value";const o=a.createElement("span");o.className="lat-select__arrow",o.setAttribute("aria-hidden","true");const I=C(a,"chevronDown");I&&o.appendChild(I),ee.appendChild(J),ee.appendChild(o);const j=a.createElement("div");j.className="lat-combo__popup lat-select__popup",j.hidden=!0;const T=a.createElement("div");T.className="lat-combo__list lat-select__list",T.setAttribute("role","listbox"),j.appendChild(T),ie.appendChild(ee),ie.appendChild(j);const te=`lat-select-lb-${N()}`;T.id=te,ee.setAttribute("aria-controls",te);const V=[];let ce=-1,le=!1,re="",K=null;const g=[];let x=!1;function N(){return N.n=(N.n||0)+1,N.n}function F(X,fe,se){X.addEventListener(fe,se),g.push(()=>X.removeEventListener(fe,se))}function G(X){return u.find(fe=>O(fe.value,X))||null}function U(){t.dispatchEvent(p(a,"change"))}function Z(){return r?R.slice():R.length?R[0]:""}function $(){if(!r){for(;J.firstChild;)J.removeChild(J.firstChild);if(R.length){const X=G(R[0]),fe=E(a,X,y.selectedTemplate);if(fe)J.appendChild(fe);else{const se=L(a,X);se&&J.appendChild(se);const _e=a.createElement("span");_e.className="lat-select__label",_e.textContent=X?X.label:R[0],J.appendChild(_e)}J.removeAttribute("data-placeholder")}else J.textContent=y.placeholder!=null?String(y.placeholder):"",J.setAttribute("data-placeholder","true");return}R.length===0?(J.textContent=y.placeholder!=null?String(y.placeholder):"",J.setAttribute("data-placeholder","true")):(J.textContent=R.map(X=>{const fe=G(X);return fe?fe.label:X}).join(", "),J.removeAttribute("data-placeholder"))}function A(X){let fe;if(r)fe=Array.isArray(X)?X.map(String):X==null||X===""?[]:[String(X)];else{const se=Array.isArray(X)?X.length?X[0]:null:X;fe=se==null||se===""?[]:[String(se)]}R=fe.filter(se=>u.some(_e=>_e.value===se)),$(),s()}function s(){for(const X of V){const fe=X.dataset.value||"",se=R.some(Be=>Be===fe);X.setAttribute("aria-selected",se?"true":"false");const _e=X.querySelector(".lat-select__check");_e&&(_e.textContent=se?"✓":"")}}function k(X){for(let fe=Math.max(0,X);fe<u.length;fe++)if(!u[fe].disabled)return fe;return-1}function b(X){for(let fe=Math.min(u.length-1,X);fe>=0;fe--)if(!u[fe].disabled)return fe;return-1}function B(X){ce=X;for(const fe of V)fe.classList.remove("lat-select__option--active");X>=0&&X<V.length?(V[X].classList.add("lat-select__option--active"),ee.setAttribute("aria-activedescendant",V[X].id)):ee.removeAttribute("aria-activedescendant")}function Y(){if(ce<0||ce>=V.length)return;const X=V[ce];X.offsetTop<T.scrollTop?T.scrollTop=X.offsetTop:X.offsetTop+X.offsetHeight>T.scrollTop+T.clientHeight&&(T.scrollTop=X.offsetTop+X.offsetHeight-T.clientHeight)}function ne(X){const fe=ce<0?X>0?-1:u.length:ce,se=X>0?k(fe+1):b(fe-1);se!==-1&&B(se),Y()}function oe(){if(le||x||y.disabled)return;le=!0,j.hidden=!1,ee.setAttribute("aria-expanded","true");const X=a&&a.defaultView,fe=ee.getBoundingClientRect(),se=X?X.innerHeight:0,_e=j.offsetHeight||T.offsetHeight||0;if(se-fe.bottom<_e+4&&fe.top>_e+4?j.classList.add("lat-select__popup--above"):j.classList.remove("lat-select__popup--above"),ce<0&&u.length){const me=r?-1:R.length?u.findIndex(we=>O(we.value,R[0])):-1;B(k(me>=0?me:0))}}function pe(){le&&(le=!1,j.hidden=!0,j.classList.remove("lat-select__popup--above"),ee.setAttribute("aria-expanded","false"),B(-1),re="")}function be(){le?pe():oe()}function je(X){if(y.readOnly)return;if(!r){const se=R.length===0||R[0]!==X;R=[X],$(),s(),pe(),se&&U();return}R=R.some(se=>se===X)?R.filter(se=>se!==X):[...R,X],$(),s(),ee.focus(),U()}function ke(){ce<0||ce>=u.length||u[ce].disabled||je(u[ce].value)}function $e(X){K&&clearTimeout(K),re+=X.toLowerCase(),K=setTimeout(()=>{re="",K=null},d),le||oe();const fe=ce>-1?ce+1:0;let se=-1;for(let _e=fe;_e<u.length;_e++)if(!u[_e].disabled&&u[_e].label.toLowerCase().startsWith(re)){se=_e;break}if(se===-1){for(let _e=0;_e<fe;_e++)if(!u[_e].disabled&&u[_e].label.toLowerCase().startsWith(re)){se=_e;break}}se!==-1&&(B(se),Y())}function Ee(X){const fe=X.altKey===!0;if(X.key==="ArrowDown"||fe&&X.key==="ArrowDown")X.preventDefault(),le?ne(1):(oe(),ce===-1&&u.length&&B(k(0)));else if(X.key==="ArrowUp")X.preventDefault(),le?ne(-1):(oe(),u.length&&B(b(u.length-1)));else if(X.key==="Home"){if(!le)return;X.preventDefault();const se=k(0);se!==-1&&B(se),Y()}else if(X.key==="End"){if(!le)return;X.preventDefault();const se=b(u.length-1);se!==-1&&B(se),Y()}else X.key==="Enter"||X.key===" "?(X.preventDefault(),le?ke():oe()):X.key==="Escape"?le&&(X.preventDefault(),pe()):X.key==="Tab"?le&&ke():X.key.length===1&&!X.ctrlKey&&!X.metaKey&&!fe&&(X.preventDefault(),$e(X.key))}function Oe(X){X<0||X>=u.length||u[X].disabled||je(u[X].value)}function de(X,fe){const se=a.createElement("div");if(se.className="lat-combo__option",se.setAttribute("role","option"),se.id=`${te}-opt-${fe}`,se.setAttribute("data-value",X.value),se.setAttribute("aria-selected","false"),X.disabled&&(se.setAttribute("aria-disabled","true"),se.classList.add("lat-select__option--disabled")),r){const me=a.createElement("span");me.className="lat-select__check",me.setAttribute("aria-hidden","true"),se.appendChild(me)}const _e=E(a,X,y.optionTemplate);if(_e)se.appendChild(_e);else{const me=L(a,X);me&&se.appendChild(me);const we=a.createElement("span");we.className="lat-combo__text";const et=a.createElement("span");if(et.className="lat-combo__title",et.textContent=X.label,we.appendChild(et),X.description!=null){const He=a.createElement("span");He.className="lat-combo__subtitle",He.textContent=X.description,we.appendChild(He)}se.appendChild(we)}return F(se,"click",me=>{me.stopPropagation(),Oe(fe)}),V.push(se),se}function Ce(){let X=0,fe=0,se=null,_e=null;for(const Be of _)if(Be.group)se=a.createElement("div"),se.setAttribute("role","group"),_e=a.createElement("div"),_e.id=`${te}-grp-${fe}`,_e.className="lat-select__group",_e.textContent=Be.label||"",se.setAttribute("aria-labelledby",_e.id),se.appendChild(_e),T.appendChild(se),fe+=1;else{const me=de(Be,X);X+=1,se?se.appendChild(me):T.appendChild(me)}}const Se=()=>{y.disabled||be()},he=()=>{t.dispatchEvent(p(a,"focus"))},Pe=()=>{t.dispatchEvent(p(a,"blur")),pe()},Ae=X=>{ie.contains(X.target)||pe()};F(ee,"click",Se),F(ee,"keydown",Ee),F(ee,"focus",he),F(ee,"blur",Pe),F(T,"mousedown",X=>X.preventDefault()),a&&F(a,"mousedown",Ae),Ce(),A(y.value);const ye={el:t,root:ie,trigger:ee,getValue:Z,setValue(X){return A(X),ye},open(){return oe(),ye},close(){return pe(),ye},focus(){return ee.focus(),ye},blur(){return ee.blur(),ye},setDisabled(X){y.disabled=X,ee.disabled=X,X&&pe()},setReadOnly(X){y.readOnly=X,X?ee.setAttribute("aria-readonly","true"):ee.removeAttribute("aria-readonly")},destroy(){x=!0,K&&clearTimeout(K);for(const X of g.splice(0))X();for(;ie.firstChild;)ie.removeChild(ie.firstChild)}};return t.appendChild(ie),t.__select=ye,ye}function v(t,y){const a=y.doc.createElement("select");t.name&&(a.name=t.name);const i=t.props&&t.props.multiple===!0;i&&(a.multiple=!0),a.__multiple=i;const r=m(t.options),_=r.filter(ee=>!ee.group),u=y.doc.createElement("option");u.value="",u.textContent=t.placeholder!=null?String(t.placeholder):"",i||a.appendChild(u);let R=null;for(const ee of r)if(ee.group)R=y.doc.createElement("optgroup"),R.label=ee.label||"",a.appendChild(R);else{const J=y.doc.createElement("option");J.value=ee.value,J.textContent=ee.label,ee.disabled&&(J.disabled=!0),(R||a).appendChild(J)}const ie=t.value==null?"":String(t.value);if(!i)a.value=_.some(ee=>ee.value===ie)?ie:"";else{const ee=Array.isArray(t.value)?t.value.map(String):[];for(const J of a.options)J.selected=ee.includes(J.value)}return a.__select={getValue(){return i?[...a.selectedOptions].map(ee=>ee.value):a.value},setValue(ee){if(!i){const o=ee==null?"":String(ee);a.value=_.some(I=>I.value===o)?o:"";return}const J=Array.isArray(ee)?ee.map(String):[];for(const o of a.options)o.selected=J.includes(o.value)},setDisabled(ee){a.disabled=ee},setReadOnly(ee){ee&&(a.disabled=!0)},focus(){a.focus()},blur(){a.blur()},destroy(){}},a}z("select",{kind:"field",build(t,y){const a=t.props||{};if(a.native===!0)return v(t,y);const i=y.doc.createElement("div");return H(i,{options:t.options,multiple:a.multiple===!0,value:t.value,placeholder:t.placeholder,ariaLabel:t.label,optionTemplate:a.optionTemplate,selectedTemplate:a.selectedTemplate,t:y.t,doc:y.doc}),y.disposers.push(()=>{i.__select&&i.__select.destroy()}),i},read(t){return t.__select?t.__select.getValue():""},write(t,y){t.__select&&t.__select.setValue(y)},state(t,y){t.__select&&(t.__select.setDisabled(y.disabled===!0),t.__select.setReadOnly(y.readOnly===!0))},focus(t){t.__select&&t.__select.focus()},blur(t){t.__select&&t.__select.blur()}})}),ge("packages/modules/form/controls/options.js",function(D,q){"use strict";Object.defineProperty(D,"normalizeOptions",{enumerable:!0,get:function(){return h}}),Object.defineProperty(D,"resolveChoiceLayout",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(D,"choiceLayoutCss",{enumerable:!0,get:function(){return l}}),Object.defineProperty(D,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return E}});const z=q("packages/modules/form/styles.js").NS;function h(f){return Array.isArray(f)?f.map(P=>{if(typeof P=="string")return{value:P,label:P};if(P&&typeof P=="object"){const C=P.value==null?"":String(P.value),c=P.label!=null?String(P.label):P.text!=null?String(P.text):C;return{value:C,label:c}}return{value:"",label:""}}):[]}function Q(f){const P=f&&f.props?f.props:{},C=f&&f.orientation!=null?f.orientation:P.orientation;let c=f&&f.columns!=null?f.columns:P.columns;return c=typeof c=="number"&&Number.isFinite(c)&&c>=1?Math.floor(c):0,c>0?{orientation:"vertical",columns:c}:{orientation:C==="horizontal"?"horizontal":"vertical",columns:0}}function l(){return`
|
|
1155
|
+
`.trim()}function c(p){const M=p&&p.documentElement;if(!M||M.getAttribute(f))return;M.setAttribute(f,"1");const C=p.createElement("style");C.textContent=A(),(p.head||p.body||M).appendChild(C)}function d(p){return P.includes(p)?p:"start"}z("buttons",{kind:"display",action:!0,build(p,M){L(M.doc),c(M.doc);const C=p.props||{},e=Array.isArray(C.buttons)?C.buttons:Array.isArray(C.items)?C.items:[],m=M.doc.createElement("div");m.className=E,m.setAttribute("data-align",d(C.align));const S=[];return e.forEach((O,H)=>{if(O==null||typeof O!="object")return;const v=l(O),t=Q(v,M),y=()=>{t.disabled||t.getAttribute("aria-disabled")==="true"||M.emitter.emit("click",{name:v.name,item:v,value:null})};t.addEventListener("click",y),S.push(()=>t.removeEventListener("click",y)),m.appendChild(t)}),M.disposers.push(()=>{for(const O of S)O()}),m},read(){return null},write(){},state(){}})}),ge("packages/modules/form/controls/text.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl;z("text",{kind:"display",build(h,Q){const l=Q.doc.createElement("span");return l.className="lat-form__text",l.textContent=h.value==null?"":String(h.value),l},read(h){return h.textContent},write(h,Q){h.textContent=Q==null?"":String(Q)},state(){}})}),ge("packages/modules/form/controls/select.js",function(B,q){"use strict";Object.defineProperty(B,"createSelect",{enumerable:!0,get:function(){return H}});const z=q("packages/modules/form/controls/registry.js").registerControl,Q=q("packages/modules/form/messages.js").t,l=q("packages/modules/form/controls/combo.js"),L=l.renderAdornment,E=l.renderTemplateContent,f=l.injectAdornmentStyles,P=q("packages/modules/form/controls/field-icon.js"),A=P.makeFieldIcon,c=P.injectFieldIconStyles,d=700;function p(t,y){const a=t&&t.defaultView;return a&&a.Event?new a.Event(y,{bubbles:!0}):{type:y,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,currentTarget:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}}}function M(t){return t!=null&&typeof t=="object"?t.value==null?"":String(t.value):t==null?"":String(t)}function C(t){return t==null?"":typeof t!="object"?String(t):t.label!=null?String(t.label):t.text!=null?String(t.text):t.value==null?"":String(t.value)}function e(t){return t!=null&&typeof t=="object"&&Array.isArray(t.options)}function m(t){const y=[];if(!Array.isArray(t))return y;for(const a of t)if(e(a)){const i=C(a);y.push({group:!0,label:i});for(const r of a.options)if(e(r)){y.push({group:!0,label:C(r)});for(const _ of r.options)y.push(S(_))}else y.push(S(r))}else y.push(S(a));return y}function S(t){const y=t!=null&&typeof t=="object"?t:{},a=y.description!=null?String(y.description):y.subtitle!=null?String(y.subtitle):null;return{group:!1,value:M(t),label:C(t),icon:y.icon,avatar:y.avatar,color:y.color,dot:y.dot,description:a,disabled:y.disabled===!0}}function O(t,y){return t===y?!0:t!=null&&y!=null&&String(t)===String(y)}function H(t,y={}){const a=y.doc||t&&t.ownerDocument||typeof globalThis<"u"&&globalThis.document||null;a&&(f(a),c(a));const i=typeof y.t=="function"?y.t:Q,r=y.multiple===!0,_=m(y.options),u=_.filter(X=>!X.group);let R=[];const ne=a.createElement("div");ne.className="lat-combo lat-select",r&&ne.setAttribute("data-multiple","true");const ee=a.createElement("button");ee.type="button",ee.className="lat-select__trigger",ee.setAttribute("role","combobox"),ee.setAttribute("aria-haspopup","listbox"),ee.setAttribute("aria-expanded","false"),r&&ee.setAttribute("aria-multiselectable","true"),ee.setAttribute("aria-label",y.ariaLabel||i("form.select.toggle"));const J=a.createElement("span");J.className="lat-select__value";const o=a.createElement("span");o.className="lat-select__arrow",o.setAttribute("aria-hidden","true");const I=A(a,"chevronDown");I&&o.appendChild(I),ee.appendChild(J),ee.appendChild(o);const j=a.createElement("div");j.className="lat-combo__popup lat-select__popup",j.hidden=!0;const D=a.createElement("div");D.className="lat-combo__list lat-select__list",D.setAttribute("role","listbox"),j.appendChild(D),ne.appendChild(ee),ne.appendChild(j);const te=`lat-select-lb-${N()}`;D.id=te,ee.setAttribute("aria-controls",te);const V=[];let ce=-1,le=!1,re="",Z=null;const g=[];let x=!1;function N(){return N.n=(N.n||0)+1,N.n}function F(X,fe,se){X.addEventListener(fe,se),g.push(()=>X.removeEventListener(fe,se))}function G(X){return u.find(fe=>O(fe.value,X))||null}function U(){t.dispatchEvent(p(a,"change"))}function K(){return r?R.slice():R.length?R[0]:""}function $(){if(!r){for(;J.firstChild;)J.removeChild(J.firstChild);if(R.length){const X=G(R[0]),fe=E(a,X,y.selectedTemplate);if(fe)J.appendChild(fe);else{const se=L(a,X);se&&J.appendChild(se);const _e=a.createElement("span");_e.className="lat-select__label",_e.textContent=X?X.label:R[0],J.appendChild(_e)}J.removeAttribute("data-placeholder")}else J.textContent=y.placeholder!=null?String(y.placeholder):"",J.setAttribute("data-placeholder","true");return}R.length===0?(J.textContent=y.placeholder!=null?String(y.placeholder):"",J.setAttribute("data-placeholder","true")):(J.textContent=R.map(X=>{const fe=G(X);return fe?fe.label:X}).join(", "),J.removeAttribute("data-placeholder"))}function k(X){let fe;if(r)fe=Array.isArray(X)?X.map(String):X==null||X===""?[]:[String(X)];else{const se=Array.isArray(X)?X.length?X[0]:null:X;fe=se==null||se===""?[]:[String(se)]}R=fe.filter(se=>u.some(_e=>_e.value===se)),$(),s()}function s(){for(const X of V){const fe=X.dataset.value||"",se=R.some(Be=>Be===fe);X.setAttribute("aria-selected",se?"true":"false");const _e=X.querySelector(".lat-select__check");_e&&(_e.textContent=se?"✓":"")}}function w(X){for(let fe=Math.max(0,X);fe<u.length;fe++)if(!u[fe].disabled)return fe;return-1}function b(X){for(let fe=Math.min(u.length-1,X);fe>=0;fe--)if(!u[fe].disabled)return fe;return-1}function T(X){ce=X;for(const fe of V)fe.classList.remove("lat-select__option--active");X>=0&&X<V.length?(V[X].classList.add("lat-select__option--active"),ee.setAttribute("aria-activedescendant",V[X].id)):ee.removeAttribute("aria-activedescendant")}function Y(){if(ce<0||ce>=V.length)return;const X=V[ce];X.offsetTop<D.scrollTop?D.scrollTop=X.offsetTop:X.offsetTop+X.offsetHeight>D.scrollTop+D.clientHeight&&(D.scrollTop=X.offsetTop+X.offsetHeight-D.clientHeight)}function ie(X){const fe=ce<0?X>0?-1:u.length:ce,se=X>0?w(fe+1):b(fe-1);se!==-1&&T(se),Y()}function oe(){if(le||x||y.disabled)return;le=!0,j.hidden=!1,ee.setAttribute("aria-expanded","true");const X=a&&a.defaultView,fe=ee.getBoundingClientRect(),se=X?X.innerHeight:0,_e=j.offsetHeight||D.offsetHeight||0;if(se-fe.bottom<_e+4&&fe.top>_e+4?j.classList.add("lat-select__popup--above"):j.classList.remove("lat-select__popup--above"),ce<0&&u.length){const me=r?-1:R.length?u.findIndex(we=>O(we.value,R[0])):-1;T(w(me>=0?me:0))}}function pe(){le&&(le=!1,j.hidden=!0,j.classList.remove("lat-select__popup--above"),ee.setAttribute("aria-expanded","false"),T(-1),re="")}function be(){le?pe():oe()}function je(X){if(y.readOnly)return;if(!r){const se=R.length===0||R[0]!==X;R=[X],$(),s(),pe(),se&&U();return}R=R.some(se=>se===X)?R.filter(se=>se!==X):[...R,X],$(),s(),ee.focus(),U()}function ke(){ce<0||ce>=u.length||u[ce].disabled||je(u[ce].value)}function Se(X){Z&&clearTimeout(Z),re+=X.toLowerCase(),Z=setTimeout(()=>{re="",Z=null},d),le||oe();const fe=ce>-1?ce+1:0;let se=-1;for(let _e=fe;_e<u.length;_e++)if(!u[_e].disabled&&u[_e].label.toLowerCase().startsWith(re)){se=_e;break}if(se===-1){for(let _e=0;_e<fe;_e++)if(!u[_e].disabled&&u[_e].label.toLowerCase().startsWith(re)){se=_e;break}}se!==-1&&(T(se),Y())}function Ae(X){const fe=X.altKey===!0;if(X.key==="ArrowDown"||fe&&X.key==="ArrowDown")X.preventDefault(),le?ie(1):(oe(),ce===-1&&u.length&&T(w(0)));else if(X.key==="ArrowUp")X.preventDefault(),le?ie(-1):(oe(),u.length&&T(b(u.length-1)));else if(X.key==="Home"){if(!le)return;X.preventDefault();const se=w(0);se!==-1&&T(se),Y()}else if(X.key==="End"){if(!le)return;X.preventDefault();const se=b(u.length-1);se!==-1&&T(se),Y()}else X.key==="Enter"||X.key===" "?(X.preventDefault(),le?ke():oe()):X.key==="Escape"?le&&(X.preventDefault(),pe()):X.key==="Tab"?le&&ke():X.key.length===1&&!X.ctrlKey&&!X.metaKey&&!fe&&(X.preventDefault(),Se(X.key))}function Oe(X){X<0||X>=u.length||u[X].disabled||je(u[X].value)}function de(X,fe){const se=a.createElement("div");if(se.className="lat-combo__option",se.setAttribute("role","option"),se.id=`${te}-opt-${fe}`,se.setAttribute("data-value",X.value),se.setAttribute("aria-selected","false"),X.disabled&&(se.setAttribute("aria-disabled","true"),se.classList.add("lat-select__option--disabled")),r){const me=a.createElement("span");me.className="lat-select__check",me.setAttribute("aria-hidden","true"),se.appendChild(me)}const _e=E(a,X,y.optionTemplate);if(_e)se.appendChild(_e);else{const me=L(a,X);me&&se.appendChild(me);const we=a.createElement("span");we.className="lat-combo__text";const et=a.createElement("span");if(et.className="lat-combo__title",et.textContent=X.label,we.appendChild(et),X.description!=null){const He=a.createElement("span");He.className="lat-combo__subtitle",He.textContent=X.description,we.appendChild(He)}se.appendChild(we)}return F(se,"click",me=>{me.stopPropagation(),Oe(fe)}),V.push(se),se}function Ce(){let X=0,fe=0,se=null,_e=null;for(const Be of _)if(Be.group)se=a.createElement("div"),se.setAttribute("role","group"),_e=a.createElement("div"),_e.id=`${te}-grp-${fe}`,_e.className="lat-select__group",_e.textContent=Be.label||"",se.setAttribute("aria-labelledby",_e.id),se.appendChild(_e),D.appendChild(se),fe+=1;else{const me=de(Be,X);X+=1,se?se.appendChild(me):D.appendChild(me)}}const Ee=()=>{y.disabled||be()},he=()=>{t.dispatchEvent(p(a,"focus"))},Pe=()=>{t.dispatchEvent(p(a,"blur")),pe()},$e=X=>{ne.contains(X.target)||pe()};F(ee,"click",Ee),F(ee,"keydown",Ae),F(ee,"focus",he),F(ee,"blur",Pe),F(D,"mousedown",X=>X.preventDefault()),a&&F(a,"mousedown",$e),Ce(),k(y.value);const ye={el:t,root:ne,trigger:ee,getValue:K,setValue(X){return k(X),ye},open(){return oe(),ye},close(){return pe(),ye},focus(){return ee.focus(),ye},blur(){return ee.blur(),ye},setDisabled(X){y.disabled=X,ee.disabled=X,X&&pe()},setReadOnly(X){y.readOnly=X,X?ee.setAttribute("aria-readonly","true"):ee.removeAttribute("aria-readonly")},destroy(){x=!0,Z&&clearTimeout(Z);for(const X of g.splice(0))X();for(;ne.firstChild;)ne.removeChild(ne.firstChild)}};return t.appendChild(ne),t.__select=ye,ye}function v(t,y){const a=y.doc.createElement("select");t.name&&(a.name=t.name);const i=t.props&&t.props.multiple===!0;i&&(a.multiple=!0),a.__multiple=i;const r=m(t.options),_=r.filter(ee=>!ee.group),u=y.doc.createElement("option");u.value="",u.textContent=t.placeholder!=null?String(t.placeholder):"",i||a.appendChild(u);let R=null;for(const ee of r)if(ee.group)R=y.doc.createElement("optgroup"),R.label=ee.label||"",a.appendChild(R);else{const J=y.doc.createElement("option");J.value=ee.value,J.textContent=ee.label,ee.disabled&&(J.disabled=!0),(R||a).appendChild(J)}const ne=t.value==null?"":String(t.value);if(!i)a.value=_.some(ee=>ee.value===ne)?ne:"";else{const ee=Array.isArray(t.value)?t.value.map(String):[];for(const J of a.options)J.selected=ee.includes(J.value)}return a.__select={getValue(){return i?[...a.selectedOptions].map(ee=>ee.value):a.value},setValue(ee){if(!i){const o=ee==null?"":String(ee);a.value=_.some(I=>I.value===o)?o:"";return}const J=Array.isArray(ee)?ee.map(String):[];for(const o of a.options)o.selected=J.includes(o.value)},setDisabled(ee){a.disabled=ee},setReadOnly(ee){ee&&(a.disabled=!0)},focus(){a.focus()},blur(){a.blur()},destroy(){}},a}z("select",{kind:"field",build(t,y){const a=t.props||{};if(a.native===!0)return v(t,y);const i=y.doc.createElement("div");return H(i,{options:t.options,multiple:a.multiple===!0,value:t.value,placeholder:t.placeholder,ariaLabel:t.label,optionTemplate:a.optionTemplate,selectedTemplate:a.selectedTemplate,t:y.t,doc:y.doc}),y.disposers.push(()=>{i.__select&&i.__select.destroy()}),i},read(t){return t.__select?t.__select.getValue():""},write(t,y){t.__select&&t.__select.setValue(y)},state(t,y){t.__select&&(t.__select.setDisabled(y.disabled===!0),t.__select.setReadOnly(y.readOnly===!0))},focus(t){t.__select&&t.__select.focus()},blur(t){t.__select&&t.__select.blur()}})}),ge("packages/modules/form/controls/options.js",function(B,q){"use strict";Object.defineProperty(B,"normalizeOptions",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"resolveChoiceLayout",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"choiceLayoutCss",{enumerable:!0,get:function(){return l}}),Object.defineProperty(B,"injectChoiceLayoutStyles",{enumerable:!0,get:function(){return E}});const z=q("packages/modules/form/styles.js").NS;function h(f){return Array.isArray(f)?f.map(P=>{if(typeof P=="string")return{value:P,label:P};if(P&&typeof P=="object"){const A=P.value==null?"":String(P.value),c=P.label!=null?String(P.label):P.text!=null?String(P.text):A;return{value:A,label:c}}return{value:"",label:""}}):[]}function Q(f){const P=f&&f.props?f.props:{},A=f&&f.orientation!=null?f.orientation:P.orientation;let c=f&&f.columns!=null?f.columns:P.columns;return c=typeof c=="number"&&Number.isFinite(c)&&c>=1?Math.floor(c):0,c>0?{orientation:"vertical",columns:c}:{orientation:A==="horizontal"?"horizontal":"vertical",columns:0}}function l(){return`
|
|
1153
1156
|
.${z}__radiogroup--horizontal,
|
|
1154
1157
|
.${z}__checkboxgroup--horizontal{
|
|
1155
1158
|
flex-direction:row; flex-wrap:wrap; align-items:center;
|
|
@@ -1160,7 +1163,7 @@ ${_}
|
|
|
1160
1163
|
display:grid; grid-template-columns:repeat(var(--lat-form-columns, 1), minmax(0, 1fr));
|
|
1161
1164
|
gap:var(--lattice-space);
|
|
1162
1165
|
}
|
|
1163
|
-
`.trim()}const L="data-lattice-form-choice-styles";function E(f){const P=f&&f.documentElement;if(!P||P.getAttribute(L))return;P.setAttribute(L,"1");const C=f.createElement("style");C.textContent=l(),(f.head||f.body||P).appendChild(C)}}),ge("packages/modules/form/controls/radiogroup.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/controls/options.js"),Q=h.normalizeOptions,l=h.resolveChoiceLayout,L=h.injectChoiceLayoutStyles,E=q("packages/modules/form/state.js"),f=E.applyBooleanInputState,P=E.guardBooleanInput;z("radiogroup",{kind:"field",build(C,c){const d=c.doc.createElement("div");d.className="lat-form__radiogroup",d.setAttribute("role","radiogroup"),C.label!=null&&C.label!==""&&d.setAttribute("aria-label",String(C.label));const p=l(C);p.columns>0?(L(c.doc),d.classList.add("lat-form__radiogroup--columns"),d.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(L(c.doc),d.classList.add("lat-form__radiogroup--horizontal")),d.setAttribute("aria-orientation",p.orientation);const M=[];for(const w of Q(C.options)){const e=c.doc.createElement("label");e.className="lat-form__choice";const m=c.doc.createElement("input");m.type="radio",C.name&&(m.name=C.name),m.value=w.value,m.checked=C.value!=null&&String(C.value)===w.value,P(m),e.appendChild(m);const S=c.doc.createElement("span");S.textContent=w.label,e.appendChild(S),d.appendChild(e),M.push(m)}return d.__radios=M,d},read(C){const c=C.__radios.find(d=>d.checked);return c?c.value:null},write(C,c){const d=c==null?null:String(c);for(const p of C.__radios)p.checked=d!==null&&p.value===d},state(C,c){const d=c.readOnly===!0;for(const p of C.__radios)f(p,c.disabled===!0,d);d?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")},focus(C){const c=C.__radios.find(d=>!d.disabled);c&&c.focus()}})}),ge("packages/modules/form/controls/checkboxgroup.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/controls/options.js"),Q=h.normalizeOptions,l=h.resolveChoiceLayout,L=h.injectChoiceLayoutStyles,E=q("packages/modules/form/state.js"),f=E.applyBooleanInputState,P=E.guardBooleanInput;z("checkboxgroup",{kind:"field",build(C,c){const d=c.doc.createElement("div");d.className="lat-form__checkboxgroup",d.setAttribute("role","group"),C.label!=null&&C.label!==""&&d.setAttribute("aria-label",String(C.label));const p=l(C);p.columns>0?(L(c.doc),d.classList.add("lat-form__checkboxgroup--columns"),d.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(L(c.doc),d.classList.add("lat-form__checkboxgroup--horizontal"));const M=[],w=Array.isArray(C.value)?C.value.map(String):[];for(const e of Q(C.options)){const m=c.doc.createElement("label");m.className="lat-form__choice";const S=c.doc.createElement("input");S.type="checkbox",C.name&&(S.name=C.name),S.value=e.value,S.checked=w.includes(e.value),P(S),m.appendChild(S);const O=c.doc.createElement("span");O.textContent=e.label,m.appendChild(O),d.appendChild(m),M.push(S)}return d.__boxes=M,d},read(C){return C.__boxes.filter(c=>c.checked).map(c=>c.value)},write(C,c){const d=Array.isArray(c)?c.map(String):[];for(const p of C.__boxes)p.checked=d.includes(p.value)},state(C,c){const d=c.readOnly===!0;for(const p of C.__boxes)f(p,c.disabled===!0,d);d?C.setAttribute("aria-readonly","true"):C.removeAttribute("aria-readonly")},focus(C){const c=C.__boxes.find(d=>!d.disabled);c&&c.focus()}})}),ge("packages/modules/form/controls/toggle.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/state.js"),Q=h.applyBooleanInputState,l=h.guardBooleanInput;z("toggle",{kind:"toggle",build(L,E){const f=E.doc.createElement("input");return f.type="checkbox",f.className="lat-form__toggle",f.setAttribute("role","switch"),L.name&&(f.name=L.name),f.checked=L.value===!0,l(f),f},read(L){return L.checked},write(L,E){L.checked=E===!0},state(L,E){Q(L,E.disabled===!0,E.readOnly===!0)}})}),ge("packages/modules/form/controls/datepicker.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/controls/field-icon.js"),Q=h.makeFieldIcon,l=h.injectFieldIconStyles,L=Object.freeze(["date","date-time","time"]);function E(o){return String(o).padStart(2,"0")}function f(o){return o}function P(o){return o.mode==="date-time"||o.mode==="time"?o.mode:"date"}function C(o,I){return new Date(o,I,0).getDate()}function c(o,I){if(!(I instanceof Date)||Number.isNaN(I.getTime()))return null;const j={y:I.getFullYear(),mo:I.getMonth()+1,d:I.getDate(),h:I.getHours(),mi:I.getMinutes()},T=o.timeZone;if(!T)return j;try{const te=new Intl.DateTimeFormat("en-US",{timeZone:T,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(I),V={y:0,mo:1,d:1,h:0,mi:0};for(const ce of te)ce.type==="year"?V.y=Number(ce.value):ce.type==="month"?V.mo=Number(ce.value):ce.type==="day"?V.d=Number(ce.value):ce.type==="hour"?V.h=Number(ce.value)%24:ce.type==="minute"&&(V.mi=Number(ce.value));return V}catch{return j}}function d(o,I){if(I==null||I==="")return null;if(typeof I=="number")return c(o,new Date(I));if(I instanceof Date)return c(o,I);if(typeof I=="string"){const j=I.trim();if(P(o)==="time"){const te=/^(\d{1,2}):(\d{2})/.exec(j);return te?{y:null,mo:null,d:null,h:Number(te[1]),mi:Number(te[2])}:null}const T=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(j);return T?{y:Number(T[1]),mo:Number(T[2]),d:Number(T[3]),h:T[4]!=null?Number(T[4]):0,mi:T[5]!=null?Number(T[5]):0}:null}return null}function p(o,I){if(!I)return null;if(P(o)==="time")return`${E(I.h)}:${E(I.mi)}`;const j=`${E(I.y)}-${E(I.mo)}-${E(I.d)}`;return P(o)==="date"?j:`${j}T${E(I.h)}:${E(I.mi)}`}function M(o,I){if(!I)return"";const j=P(o);if(j==="time")return`${E(I.h)}:${E(I.mi)}`;const T=o.locale||void 0,te={dateStyle:"medium"};return j==="date-time"&&(te.timeStyle="short"),new Intl.DateTimeFormat(T,te).format(new Date(I.y,I.mo-1,I.d,I.h,I.mi))}function w(o,I){return I==null?!0:!(o.min!=null&&I<String(o.min)||o.max!=null&&I>String(o.max))}function e(o,I){return new Intl.DateTimeFormat(o.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+I))}function m(o,I){return new Intl.DateTimeFormat(o.locale||void 0,{month:"long",year:"numeric"}).format(new Date(I.y,I.mo-1,1))}function S(o){const I=o.ownerDocument&&o.ownerDocument.defaultView,j=I&&typeof I.Event=="function"?I.Event:null;o.dispatchEvent(j?new j("change",{bubbles:!0}):{type:"change",bubbles:!0})}function O(o,I){o.__fields=I,o.__input.value=M(o.__item,I),S(o)}function H(o,I){let{y:j,mo:T}=o.__view,te=o.__cursor+I;for(;te<1;)T-=1,T<1&&(T=12,j-=1),te+=C(j,T);let V=C(j,T);for(;te>V;)te-=V,T+=1,T>12&&(T=1,j+=1),V=C(j,T);o.__view={y:j,mo:T},o.__cursor=te,i(o)}function v(o){try{const I=new Intl.DateTimeFormat(o.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return I==="h11"||I==="h12"}catch{return!1}}function t(o){try{const I=new Intl.DateTimeFormat(o.locale||void 0,{hour:"numeric",hour12:!0}),j=I.formatToParts(new Date(2021,0,1,9)).find(te=>te.type==="dayPeriod"),T=I.formatToParts(new Date(2021,0,1,15)).find(te=>te.type==="dayPeriod");if(j&&T)return{am:j.value,pm:T.value}}catch{}return null}function y(o){const I=o%12;return I===0?12:I}function a(o,I){return I?o===12?12:o+12:o===12?0:o}function i(o){const I=o.__item,j=o.ownerDocument,T=o.__popup,te=o.__view,V=P(I),ce=o.__fields;for(;T.firstChild;)T.removeChild(T.firstChild);if(V!=="time"){const le=j.createElement("div");le.className="lat-form__datepicker-head";const re=j.createElement("button");re.type="button",re.className="lat-form__datepicker-nav",re.setAttribute("aria-label",o.__t("form.datepicker.prev")),re.textContent="‹",re.addEventListener("click",()=>{r(o,-1)});const K=j.createElement("span");K.className="lat-form__datepicker-title",K.textContent=m(I,te);const g=j.createElement("button");g.type="button",g.className="lat-form__datepicker-nav",g.setAttribute("aria-label",o.__t("form.datepicker.next")),g.textContent="›",g.addEventListener("click",()=>{r(o,1)}),le.appendChild(re),le.appendChild(K),le.appendChild(g),T.appendChild(le);const x=j.createElement("div");x.className="lat-form__datepicker-weekdays";for(let U=0;U<7;U+=1){const Z=j.createElement("span");Z.textContent=e(I,U),x.appendChild(Z)}T.appendChild(x);const N=j.createElement("div");N.className="lat-form__datepicker-grid",N.setAttribute("role","grid"),N.tabIndex=0,o.__grid=N;const F=new Date(te.y,te.mo-1,1).getDay();for(let U=0;U<F;U+=1){const Z=j.createElement("span");Z.className="lat-form__datepicker-blank",N.appendChild(Z)}const G=C(te.y,te.mo);for(let U=1;U<=G;U+=1){const Z=j.createElement("button");Z.type="button",Z.className="lat-form__datepicker-day",Z.setAttribute("role","gridcell"),Z.textContent=String(U);const $=p(I,{y:te.y,mo:te.mo,d:U,h:0,mi:0});w(I,$)||(Z.disabled=!0),ce&&ce.y===te.y&&ce.mo===te.mo&&ce.d===U&&Z.classList.add("is-selected"),o.__cursor===U&&Z.classList.add("is-focus"),Z.addEventListener("click",()=>{const A={y:te.y,mo:te.mo,d:U,h:ce?ce.h:0,mi:ce?ce.mi:0};V==="date"?(o.__cursor=U,O(o,A),J(o)):(o.__cursor=U,o.__fields=A,i(o))}),N.appendChild(Z)}T.appendChild(N),N.addEventListener("keydown",U=>{U.key==="ArrowLeft"?(U.preventDefault(),H(o,-1)):U.key==="ArrowRight"?(U.preventDefault(),H(o,1)):U.key==="ArrowUp"?(U.preventDefault(),H(o,-7)):U.key==="ArrowDown"?(U.preventDefault(),H(o,7)):U.key==="Home"?(U.preventDefault(),o.__cursor=1,i(o)):U.key==="End"?(U.preventDefault(),o.__cursor=C(te.y,te.mo),i(o)):(U.key==="Enter"||U.key===" ")&&(U.preventDefault(),ie(o))})}if(V!=="date"){const le=v(I)?t(I):null,re=!!le,K=j.createElement("div");K.className="lat-form__datepicker-time";const g=j.createElement("input");g.type="number",g.className="lat-form__datepicker-hour",g.min=re?"1":"0",g.max=re?"12":"23",g.step="1",g.setAttribute("aria-label",o.__t("form.datepicker.hour"));const x=j.createElement("span");x.textContent=":";const N=j.createElement("input");if(N.type="number",N.className="lat-form__datepicker-minute",N.min="0",N.max="59",N.step="1",N.setAttribute("aria-label",o.__t("form.datepicker.minute")),K.appendChild(g),K.appendChild(x),K.appendChild(N),T.appendChild(K),o.__hour=g,o.__minute=N,g.addEventListener("change",()=>{_(o)}),N.addEventListener("change",()=>{_(o)}),o.__periods=le,o.__ampm=null,re){const G=j.createElement("button");G.type="button",G.className="lat-form__datepicker-ampm",o.__ampm=G;const U=()=>{o.__pm=!o.__pm,G.textContent=o.__pm?o.__periods.pm:o.__periods.am,_(o)};G.addEventListener("click",U),K.appendChild(G)}const F=j.createElement("button");F.type="button",F.className="lat-form__datepicker-done",F.textContent=o.__t("form.datepicker.done"),F.addEventListener("click",()=>{u(o)}),K.appendChild(F)}R(o)}function r(o,I){let{y:j,mo:T}=o.__view;T+=I,T<1&&(T=12,j-=1),T>12&&(T=1,j+=1),o.__view={y:j,mo:T},o.__cursor=Math.min(o.__cursor,C(j,T)),i(o)}function _(o){const I=o.__fields;let j=o.__hour&&Number(o.__hour.value)||0;const T=o.__minute&&Number(o.__minute.value)||0;o.__ampm&&(j=a(j,o.__pm===!0));const te=P(o.__item)==="time"?{y:null,mo:null,d:null,h:j,mi:T}:{y:I?I.y:o.__view.y,mo:I?I.mo:o.__view.mo,d:I?I.d:o.__cursor,h:j,mi:T};o.__cursor=I?I.d:o.__cursor,O(o,te)}function u(o){o.__popup.hidden||(P(o.__item)!=="date"&&_(o),J(o))}function R(o){const I=o.__fields,j=o.__ampm&&o.__periods;if(o.__hour){const T=I?I.h:0;o.__hour.value=String(j?y(T):T)}o.__minute&&(o.__minute.value=I?String(I.mi):"0"),o.__ampm&&o.__periods&&(o.__pm=I?I.h>=12:!1,o.__ampm.textContent=o.__pm?o.__periods.pm:o.__periods.am)}function ie(o){const I=o.__view,j=o.__fields,T={y:I.y,mo:I.mo,d:o.__cursor,h:j?j.h:0,mi:j?j.mi:0};O(o,T),J(o)}function ee(o){if(o.__popup.hidden===!1||o.__item.disabled===!0||o.__item.readOnly===!0)return;const I=o.__fields,j=new Date;o.__view=I&&I.y!=null?{y:I.y,mo:I.mo}:{y:j.getFullYear(),mo:j.getMonth()+1},o.__cursor=I&&I.d!=null?I.d:j.getDate(),o.__popup.hidden=!1,i(o)}function J(o){o.__popup.hidden=!0}z("datepicker",{kind:"field",build(o,I){const j=I.doc;l(j);const T=j.createElement("div");T.className="lat-form__datepicker",T.__item=o,T.__t=I.t||f,T.__mode=P(o),T.__fields=d(o,o.value),T.__cursor=T.__fields&&T.__fields.d!=null?T.__fields.d:new Date().getDate(),T.__view=T.__fields&&T.__fields.y!=null?{y:T.__fields.y,mo:T.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const te=j.createElement("input");te.type="text",te.className="lat-form__datepicker-input",o.name&&(te.name=o.name),o.placeholder!=null&&(te.placeholder=String(o.placeholder)),o.label!=null&&o.label!==""&&te.setAttribute("aria-label",String(o.label)),te.setAttribute("autocomplete","off"),te.value=M(o,T.__fields),T.__input=te;const V=j.createElement("button");V.type="button",V.className="lat-form__datepicker-toggle";const ce=P(o)==="date";V.setAttribute("aria-label",T.__t(ce?"form.datepicker.open":"form.datepicker.openTime"));const le=Q(j,ce?"calendar":"clock");le&&V.appendChild(le),T.__toggle=V;const re=j.createElement("div");re.className="lat-form__datepicker-popup",re.hidden=!0,T.__popup=re,T.appendChild(te),T.appendChild(V),T.appendChild(re),te.addEventListener("focus",()=>{ee(T)}),V.addEventListener("click",()=>{ee(T)}),te.addEventListener("change",()=>{const N=d(o,te.value);N?T.__fields=N:te.value=M(o,T.__fields)}),te.addEventListener("keydown",N=>{N.key==="Escape"&&J(T)}),T.__ampm=null,T.__periods=null,T.__pm=!1;const K=N=>{T.contains(N.target)||u(T)},g=N=>{N.relatedTarget&&T.contains(N.relatedTarget)||u(T)},x=N=>{N.key==="Escape"&&(N.preventDefault(),u(T),T.__toggle.focus())};return j.addEventListener("pointerdown",K),T.addEventListener("focusout",g),re.addEventListener("keydown",x),Array.isArray(I.disposers)&&I.disposers.push(()=>{j.removeEventListener("pointerdown",K),T.removeEventListener("focusout",g),re.removeEventListener("keydown",x)}),T},read(o){return p(o.__item,o.__fields)},write(o,I){o.__fields=d(o.__item,I),o.__input.value=M(o.__item,o.__fields),o.__fields&&o.__fields.y!=null&&(o.__view={y:o.__fields.y,mo:o.__fields.mo},o.__cursor=o.__fields.d)},state(o,I){o.__input.disabled=I.disabled===!0,o.__input.readOnly=I.readOnly===!0,o.__toggle.disabled=I.disabled===!0||I.readOnly===!0},validate(o,I,j){return w(I,j)?!0:typeof I.errorMessage=="string"&&I.errorMessage!==""?I.errorMessage:!1},focus(o){o.__input.focus()}})}),ge("packages/modules/form/controls/file.js",function(D,q){"use strict";Object.defineProperty(D,"formatSize",{enumerable:!0,get:function(){return C}}),Object.defineProperty(D,"accepts",{enumerable:!0,get:function(){return c}});const z=q("packages/modules/form/controls/registry.js").registerControl,h="lat-uploader",Q="http://www.w3.org/2000/svg",l="data-lattice-uploader-styles";function L(){return`
|
|
1166
|
+
`.trim()}const L="data-lattice-form-choice-styles";function E(f){const P=f&&f.documentElement;if(!P||P.getAttribute(L))return;P.setAttribute(L,"1");const A=f.createElement("style");A.textContent=l(),(f.head||f.body||P).appendChild(A)}}),ge("packages/modules/form/controls/radiogroup.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/controls/options.js"),Q=h.normalizeOptions,l=h.resolveChoiceLayout,L=h.injectChoiceLayoutStyles,E=q("packages/modules/form/state.js"),f=E.applyBooleanInputState,P=E.guardBooleanInput;z("radiogroup",{kind:"field",build(A,c){const d=c.doc.createElement("div");d.className="lat-form__radiogroup",d.setAttribute("role","radiogroup"),A.label!=null&&A.label!==""&&d.setAttribute("aria-label",String(A.label));const p=l(A);p.columns>0?(L(c.doc),d.classList.add("lat-form__radiogroup--columns"),d.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(L(c.doc),d.classList.add("lat-form__radiogroup--horizontal")),d.setAttribute("aria-orientation",p.orientation);const M=[];for(const C of Q(A.options)){const e=c.doc.createElement("label");e.className="lat-form__choice";const m=c.doc.createElement("input");m.type="radio",A.name&&(m.name=A.name),m.value=C.value,m.checked=A.value!=null&&String(A.value)===C.value,P(m),e.appendChild(m);const S=c.doc.createElement("span");S.textContent=C.label,e.appendChild(S),d.appendChild(e),M.push(m)}return d.__radios=M,d},read(A){const c=A.__radios.find(d=>d.checked);return c?c.value:null},write(A,c){const d=c==null?null:String(c);for(const p of A.__radios)p.checked=d!==null&&p.value===d},state(A,c){const d=c.readOnly===!0;for(const p of A.__radios)f(p,c.disabled===!0,d);d?A.setAttribute("aria-readonly","true"):A.removeAttribute("aria-readonly")},focus(A){const c=A.__radios.find(d=>!d.disabled);c&&c.focus()}})}),ge("packages/modules/form/controls/checkboxgroup.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/controls/options.js"),Q=h.normalizeOptions,l=h.resolveChoiceLayout,L=h.injectChoiceLayoutStyles,E=q("packages/modules/form/state.js"),f=E.applyBooleanInputState,P=E.guardBooleanInput;z("checkboxgroup",{kind:"field",build(A,c){const d=c.doc.createElement("div");d.className="lat-form__checkboxgroup",d.setAttribute("role","group"),A.label!=null&&A.label!==""&&d.setAttribute("aria-label",String(A.label));const p=l(A);p.columns>0?(L(c.doc),d.classList.add("lat-form__checkboxgroup--columns"),d.style.setProperty("--lat-form-columns",String(p.columns))):p.orientation==="horizontal"&&(L(c.doc),d.classList.add("lat-form__checkboxgroup--horizontal"));const M=[],C=Array.isArray(A.value)?A.value.map(String):[];for(const e of Q(A.options)){const m=c.doc.createElement("label");m.className="lat-form__choice";const S=c.doc.createElement("input");S.type="checkbox",A.name&&(S.name=A.name),S.value=e.value,S.checked=C.includes(e.value),P(S),m.appendChild(S);const O=c.doc.createElement("span");O.textContent=e.label,m.appendChild(O),d.appendChild(m),M.push(S)}return d.__boxes=M,d},read(A){return A.__boxes.filter(c=>c.checked).map(c=>c.value)},write(A,c){const d=Array.isArray(c)?c.map(String):[];for(const p of A.__boxes)p.checked=d.includes(p.value)},state(A,c){const d=c.readOnly===!0;for(const p of A.__boxes)f(p,c.disabled===!0,d);d?A.setAttribute("aria-readonly","true"):A.removeAttribute("aria-readonly")},focus(A){const c=A.__boxes.find(d=>!d.disabled);c&&c.focus()}})}),ge("packages/modules/form/controls/toggle.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/state.js"),Q=h.applyBooleanInputState,l=h.guardBooleanInput;z("toggle",{kind:"toggle",build(L,E){const f=E.doc.createElement("input");return f.type="checkbox",f.className="lat-form__toggle",f.setAttribute("role","switch"),L.name&&(f.name=L.name),f.checked=L.value===!0,l(f),f},read(L){return L.checked},write(L,E){L.checked=E===!0},state(L,E){Q(L,E.disabled===!0,E.readOnly===!0)}})}),ge("packages/modules/form/controls/datepicker.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/modules/form/controls/field-icon.js"),Q=h.makeFieldIcon,l=h.injectFieldIconStyles,L=Object.freeze(["date","date-time","time"]);function E(o){return String(o).padStart(2,"0")}function f(o){return o}function P(o){return o.mode==="date-time"||o.mode==="time"?o.mode:"date"}function A(o,I){return new Date(o,I,0).getDate()}function c(o,I){if(!(I instanceof Date)||Number.isNaN(I.getTime()))return null;const j={y:I.getFullYear(),mo:I.getMonth()+1,d:I.getDate(),h:I.getHours(),mi:I.getMinutes()},D=o.timeZone;if(!D)return j;try{const te=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(I),V={y:0,mo:1,d:1,h:0,mi:0};for(const ce of te)ce.type==="year"?V.y=Number(ce.value):ce.type==="month"?V.mo=Number(ce.value):ce.type==="day"?V.d=Number(ce.value):ce.type==="hour"?V.h=Number(ce.value)%24:ce.type==="minute"&&(V.mi=Number(ce.value));return V}catch{return j}}function d(o,I){if(I==null||I==="")return null;if(typeof I=="number")return c(o,new Date(I));if(I instanceof Date)return c(o,I);if(typeof I=="string"){const j=I.trim();if(P(o)==="time"){const te=/^(\d{1,2}):(\d{2})/.exec(j);return te?{y:null,mo:null,d:null,h:Number(te[1]),mi:Number(te[2])}:null}const D=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{1,2}):(\d{2})(?::(\d{2}))?)?/.exec(j);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 p(o,I){if(!I)return null;if(P(o)==="time")return`${E(I.h)}:${E(I.mi)}`;const j=`${E(I.y)}-${E(I.mo)}-${E(I.d)}`;return P(o)==="date"?j:`${j}T${E(I.h)}:${E(I.mi)}`}function M(o,I){if(!I)return"";const j=P(o);if(j==="time")return`${E(I.h)}:${E(I.mi)}`;const D=o.locale||void 0,te={dateStyle:"medium"};return j==="date-time"&&(te.timeStyle="short"),new Intl.DateTimeFormat(D,te).format(new Date(I.y,I.mo-1,I.d,I.h,I.mi))}function C(o,I){return I==null?!0:!(o.min!=null&&I<String(o.min)||o.max!=null&&I>String(o.max))}function e(o,I){return new Intl.DateTimeFormat(o.locale||void 0,{weekday:"narrow"}).format(new Date(2021,0,3+I))}function m(o,I){return new Intl.DateTimeFormat(o.locale||void 0,{month:"long",year:"numeric"}).format(new Date(I.y,I.mo-1,1))}function S(o){const I=o.ownerDocument&&o.ownerDocument.defaultView,j=I&&typeof I.Event=="function"?I.Event:null;o.dispatchEvent(j?new j("change",{bubbles:!0}):{type:"change",bubbles:!0})}function O(o,I){o.__fields=I,o.__input.value=M(o.__item,I),S(o)}function H(o,I){let{y:j,mo:D}=o.__view,te=o.__cursor+I;for(;te<1;)D-=1,D<1&&(D=12,j-=1),te+=A(j,D);let V=A(j,D);for(;te>V;)te-=V,D+=1,D>12&&(D=1,j+=1),V=A(j,D);o.__view={y:j,mo:D},o.__cursor=te,i(o)}function v(o){try{const I=new Intl.DateTimeFormat(o.locale||void 0,{hour:"numeric"}).resolvedOptions().hourCycle;return I==="h11"||I==="h12"}catch{return!1}}function t(o){try{const I=new Intl.DateTimeFormat(o.locale||void 0,{hour:"numeric",hour12:!0}),j=I.formatToParts(new Date(2021,0,1,9)).find(te=>te.type==="dayPeriod"),D=I.formatToParts(new Date(2021,0,1,15)).find(te=>te.type==="dayPeriod");if(j&&D)return{am:j.value,pm:D.value}}catch{}return null}function y(o){const I=o%12;return I===0?12:I}function a(o,I){return I?o===12?12:o+12:o===12?0:o}function i(o){const I=o.__item,j=o.ownerDocument,D=o.__popup,te=o.__view,V=P(I),ce=o.__fields;for(;D.firstChild;)D.removeChild(D.firstChild);if(V!=="time"){const le=j.createElement("div");le.className="lat-form__datepicker-head";const re=j.createElement("button");re.type="button",re.className="lat-form__datepicker-nav",re.setAttribute("aria-label",o.__t("form.datepicker.prev")),re.textContent="‹",re.addEventListener("click",()=>{r(o,-1)});const Z=j.createElement("span");Z.className="lat-form__datepicker-title",Z.textContent=m(I,te);const g=j.createElement("button");g.type="button",g.className="lat-form__datepicker-nav",g.setAttribute("aria-label",o.__t("form.datepicker.next")),g.textContent="›",g.addEventListener("click",()=>{r(o,1)}),le.appendChild(re),le.appendChild(Z),le.appendChild(g),D.appendChild(le);const x=j.createElement("div");x.className="lat-form__datepicker-weekdays";for(let U=0;U<7;U+=1){const K=j.createElement("span");K.textContent=e(I,U),x.appendChild(K)}D.appendChild(x);const N=j.createElement("div");N.className="lat-form__datepicker-grid",N.setAttribute("role","grid"),N.tabIndex=0,o.__grid=N;const F=new Date(te.y,te.mo-1,1).getDay();for(let U=0;U<F;U+=1){const K=j.createElement("span");K.className="lat-form__datepicker-blank",N.appendChild(K)}const G=A(te.y,te.mo);for(let U=1;U<=G;U+=1){const K=j.createElement("button");K.type="button",K.className="lat-form__datepicker-day",K.setAttribute("role","gridcell"),K.textContent=String(U);const $=p(I,{y:te.y,mo:te.mo,d:U,h:0,mi:0});C(I,$)||(K.disabled=!0),ce&&ce.y===te.y&&ce.mo===te.mo&&ce.d===U&&K.classList.add("is-selected"),o.__cursor===U&&K.classList.add("is-focus"),K.addEventListener("click",()=>{const k={y:te.y,mo:te.mo,d:U,h:ce?ce.h:0,mi:ce?ce.mi:0};V==="date"?(o.__cursor=U,O(o,k),J(o)):(o.__cursor=U,o.__fields=k,i(o))}),N.appendChild(K)}D.appendChild(N),N.addEventListener("keydown",U=>{U.key==="ArrowLeft"?(U.preventDefault(),H(o,-1)):U.key==="ArrowRight"?(U.preventDefault(),H(o,1)):U.key==="ArrowUp"?(U.preventDefault(),H(o,-7)):U.key==="ArrowDown"?(U.preventDefault(),H(o,7)):U.key==="Home"?(U.preventDefault(),o.__cursor=1,i(o)):U.key==="End"?(U.preventDefault(),o.__cursor=A(te.y,te.mo),i(o)):(U.key==="Enter"||U.key===" ")&&(U.preventDefault(),ne(o))})}if(V!=="date"){const le=v(I)?t(I):null,re=!!le,Z=j.createElement("div");Z.className="lat-form__datepicker-time";const g=j.createElement("input");g.type="number",g.className="lat-form__datepicker-hour",g.min=re?"1":"0",g.max=re?"12":"23",g.step="1",g.setAttribute("aria-label",o.__t("form.datepicker.hour"));const x=j.createElement("span");x.textContent=":";const N=j.createElement("input");if(N.type="number",N.className="lat-form__datepicker-minute",N.min="0",N.max="59",N.step="1",N.setAttribute("aria-label",o.__t("form.datepicker.minute")),Z.appendChild(g),Z.appendChild(x),Z.appendChild(N),D.appendChild(Z),o.__hour=g,o.__minute=N,g.addEventListener("change",()=>{_(o)}),N.addEventListener("change",()=>{_(o)}),o.__periods=le,o.__ampm=null,re){const G=j.createElement("button");G.type="button",G.className="lat-form__datepicker-ampm",o.__ampm=G;const U=()=>{o.__pm=!o.__pm,G.textContent=o.__pm?o.__periods.pm:o.__periods.am,_(o)};G.addEventListener("click",U),Z.appendChild(G)}const F=j.createElement("button");F.type="button",F.className="lat-form__datepicker-done",F.textContent=o.__t("form.datepicker.done"),F.addEventListener("click",()=>{u(o)}),Z.appendChild(F)}R(o)}function r(o,I){let{y:j,mo:D}=o.__view;D+=I,D<1&&(D=12,j-=1),D>12&&(D=1,j+=1),o.__view={y:j,mo:D},o.__cursor=Math.min(o.__cursor,A(j,D)),i(o)}function _(o){const I=o.__fields;let j=o.__hour&&Number(o.__hour.value)||0;const D=o.__minute&&Number(o.__minute.value)||0;o.__ampm&&(j=a(j,o.__pm===!0));const te=P(o.__item)==="time"?{y:null,mo:null,d:null,h:j,mi:D}:{y:I?I.y:o.__view.y,mo:I?I.mo:o.__view.mo,d:I?I.d:o.__cursor,h:j,mi:D};o.__cursor=I?I.d:o.__cursor,O(o,te)}function u(o){o.__popup.hidden||(P(o.__item)!=="date"&&_(o),J(o))}function R(o){const I=o.__fields,j=o.__ampm&&o.__periods;if(o.__hour){const D=I?I.h:0;o.__hour.value=String(j?y(D):D)}o.__minute&&(o.__minute.value=I?String(I.mi):"0"),o.__ampm&&o.__periods&&(o.__pm=I?I.h>=12:!1,o.__ampm.textContent=o.__pm?o.__periods.pm:o.__periods.am)}function ne(o){const I=o.__view,j=o.__fields,D={y:I.y,mo:I.mo,d:o.__cursor,h:j?j.h:0,mi:j?j.mi:0};O(o,D),J(o)}function ee(o){if(o.__popup.hidden===!1||o.__item.disabled===!0||o.__item.readOnly===!0)return;const I=o.__fields,j=new Date;o.__view=I&&I.y!=null?{y:I.y,mo:I.mo}:{y:j.getFullYear(),mo:j.getMonth()+1},o.__cursor=I&&I.d!=null?I.d:j.getDate(),o.__popup.hidden=!1,i(o)}function J(o){o.__popup.hidden=!0}z("datepicker",{kind:"field",build(o,I){const j=I.doc;l(j);const D=j.createElement("div");D.className="lat-form__datepicker",D.__item=o,D.__t=I.t||f,D.__mode=P(o),D.__fields=d(o,o.value),D.__cursor=D.__fields&&D.__fields.d!=null?D.__fields.d:new Date().getDate(),D.__view=D.__fields&&D.__fields.y!=null?{y:D.__fields.y,mo:D.__fields.mo}:{y:new Date().getFullYear(),mo:new Date().getMonth()+1};const te=j.createElement("input");te.type="text",te.className="lat-form__datepicker-input",o.name&&(te.name=o.name),o.placeholder!=null&&(te.placeholder=String(o.placeholder)),o.label!=null&&o.label!==""&&te.setAttribute("aria-label",String(o.label)),te.setAttribute("autocomplete","off"),te.value=M(o,D.__fields),D.__input=te;const V=j.createElement("button");V.type="button",V.className="lat-form__datepicker-toggle";const ce=P(o)==="date";V.setAttribute("aria-label",D.__t(ce?"form.datepicker.open":"form.datepicker.openTime"));const le=Q(j,ce?"calendar":"clock");le&&V.appendChild(le),D.__toggle=V;const re=j.createElement("div");re.className="lat-form__datepicker-popup",re.hidden=!0,D.__popup=re,D.appendChild(te),D.appendChild(V),D.appendChild(re),te.addEventListener("focus",()=>{ee(D)}),V.addEventListener("click",()=>{ee(D)}),te.addEventListener("change",()=>{const N=d(o,te.value);N?D.__fields=N:te.value=M(o,D.__fields)}),te.addEventListener("keydown",N=>{N.key==="Escape"&&J(D)}),D.__ampm=null,D.__periods=null,D.__pm=!1;const Z=N=>{D.contains(N.target)||u(D)},g=N=>{N.relatedTarget&&D.contains(N.relatedTarget)||u(D)},x=N=>{N.key==="Escape"&&(N.preventDefault(),u(D),D.__toggle.focus())};return j.addEventListener("pointerdown",Z),D.addEventListener("focusout",g),re.addEventListener("keydown",x),Array.isArray(I.disposers)&&I.disposers.push(()=>{j.removeEventListener("pointerdown",Z),D.removeEventListener("focusout",g),re.removeEventListener("keydown",x)}),D},read(o){return p(o.__item,o.__fields)},write(o,I){o.__fields=d(o.__item,I),o.__input.value=M(o.__item,o.__fields),o.__fields&&o.__fields.y!=null&&(o.__view={y:o.__fields.y,mo:o.__fields.mo},o.__cursor=o.__fields.d)},state(o,I){o.__input.disabled=I.disabled===!0,o.__input.readOnly=I.readOnly===!0,o.__toggle.disabled=I.disabled===!0||I.readOnly===!0},validate(o,I,j){return C(I,j)?!0:typeof I.errorMessage=="string"&&I.errorMessage!==""?I.errorMessage:!1},focus(o){o.__input.focus()}})}),ge("packages/modules/form/controls/file.js",function(B,q){"use strict";Object.defineProperty(B,"formatSize",{enumerable:!0,get:function(){return A}}),Object.defineProperty(B,"accepts",{enumerable:!0,get:function(){return c}});const z=q("packages/modules/form/controls/registry.js").registerControl,h="lat-uploader",Q="http://www.w3.org/2000/svg",l="data-lattice-uploader-styles";function L(){return`
|
|
1164
1167
|
.${h}{
|
|
1165
1168
|
--lat-up-surface:var(--lattice-surface, color-mix(in srgb, var(--lattice-foreground-muted) 5%, var(--lattice-background)));
|
|
1166
1169
|
--lat-up-accent-soft:color-mix(in srgb, var(--lattice-accent) 12%, var(--lattice-background));
|
|
@@ -1287,7 +1290,7 @@ ${_}
|
|
|
1287
1290
|
.${h}__zone.is-dragover, .${h}__zone.is-invalid{ box-shadow:none; }
|
|
1288
1291
|
.${h}__item-fill{ transition:none; }
|
|
1289
1292
|
}
|
|
1290
|
-
`.trim()}function E(a){const i=a&&a.documentElement;if(!i||i.getAttribute(l))return;i.setAttribute(l,"1");const r=a.createElement("style");r.textContent=L(),(a.head||a.body||i).appendChild(r)}function f(a,i){const r=i&&i.defaultView,_=r&&r.Event,u=_?new _("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};a.dispatchEvent(u)}function P(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function C(a){const i=Number(a)||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 c(a,i){if(!i||!i.length)return!0;const r=(a.name||"").toLowerCase(),_=(a.type||"").toLowerCase();return i.some(u=>{const R=String(u).trim().toLowerCase();return R.startsWith(".")?r.endsWith(R):R.endsWith("/*")?_.startsWith(R.slice(0,-1)):_===R})}function d(a){return a.length?a.length===1?a[0]:a.length===2?`${a[0]} or ${a[1]}`:`${a.slice(0,-1).join(", ")} or ${a[a.length-1]}`:""}function p(a){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"},r=String(a).trim(),_=i[r.toLowerCase()];if(_)return _;if(r.startsWith("."))return r.slice(1).toUpperCase();if(r.endsWith("/*"))return`${r.slice(0,-2)}s`;const u=r.split("/")[1];return u?u.toUpperCase():r}function M(a,i,r,_){const u=[];return i&&i.length&&u.push(d(i.map(p))),r&&u.push(a("form.file.hint.size",{size:C(r)})),_&&u.push(a(_===1?"form.file.hint.file":"form.file.hint.files",{max:String(_)})),u.join(" · ")}function w(a){return{id:a.id,name:a.name,size:a.size,type:a.type,status:a.status,progress:a.progress,message:a.message||""}}function e(a,i){const r=a.createElementNS(Q,"svg");r.setAttribute("viewBox","0 0 16 16"),r.setAttribute("focusable","false"),r.setAttribute("aria-hidden","true"),r.setAttribute("fill","none"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-width","1.5"),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round");const _=a.createElementNS("http://www.w3.org/2000/svg","path");return _.setAttribute("d",i),r.appendChild(_),r}const m=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 S(a,i){const r=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let _;for(;_=r.exec(i);)a.setAttribute(_[1],_[3]===void 0?_[4]:_[3])}function O(a,i){const r=/<svg\b([^>]*)>/i.exec(i);if(!r)return null;const _=a.createElementNS(Q,"svg");S(_,r[1]);const u=i.lastIndexOf("</svg"),R=u===-1?"":i.slice(r.index+r[0].length,u),ie=/<(\w+)\b([^>]*?)(\/?)>/g;let ee;for(;ee=ie.exec(R);){const J=a.createElementNS(Q,ee[1]);S(J,ee[2]),_.appendChild(J)}return _.setAttribute("aria-hidden","true"),_.setAttribute("focusable","false"),_}function H(a,i){if(a===!1)return null;if(a!=null&&typeof a=="object"&&a.nodeType){const _=a;return _.classList.add(`${h}__icon`),_.setAttribute("aria-hidden","true"),_}if(typeof a!="string"||a==="")return null;const r=m[a]?e(i,m[a]):O(i,a);return r?(r.setAttribute("class",`${h}__icon`),r):null}function v(a){const i=a.type||"";return i.startsWith("image/")?"image":i==="application/pdf"||/\.pdf$/i.test(a.name)?"document":"file"}function t(a){if(a.thumb)return a.thumb;if(!a.file||!/^image\//.test(a.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{a.thumb=URL.createObjectURL(a.file)}catch{a.thumb=null}return a.thumb}function y(a){if(a.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(a.thumb)}catch{}a.thumb=null}z("file",{kind:"field",build(a,i){const r=i.doc,_=i.t,u=a.props||{},R=Array.isArray(u.accept)?u.accept.map(b=>String(b)):[],ie=Number(u.maxSize)||0,ee=Number(u.maxFiles)||0,J=u.multiple!==!1,o=typeof u.upload=="function"?u.upload:null,I=u.dropzone!==!1,j=u.dropText!=null?String(u.dropText):_("form.file.dropText"),T=u.browseText!=null?String(u.browseText):_("form.file.browse"),te=_("form.file.dropToUpload"),V=_("form.file.addMore"),ce=_("form.file.typeNotAccepted"),le=u.hint!=null&&u.hint!==""?String(u.hint):M(_,R,ie,ee);E(r);const re=r.createElement("div");re.className=h;const K={accept:R,maxSize:ie,maxFiles:ee,multiple:J,upload:o,dropText:j,browse:T,dropToUpload:te,addMore:V,typeNotAccepted:ce,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:I,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};re.__latFile=K;const g=r.createElement("input");g.type="file",g.className=`${h}__input`,g.tabIndex=-1,g.setAttribute("aria-hidden","true"),J&&(g.multiple=!0),R.length&&(g.accept=R.join(",")),re.appendChild(g),K.input=g;const x=r.createElement("div");x.className=`${h}__zone`,x.setAttribute("role","button"),x.tabIndex=0,x.setAttribute("aria-label",`${j} ${T}`);const N=u.icon==null?e(r,m.upload):H(u.icon,r);N&&(u.icon==null&&N.setAttribute("class",`${h}__icon`),x.appendChild(N));const F=r.createElement("span");F.className=`${h}__title`;const G=r.createElement("span");G.className=`${h}__title-rest`,G.textContent=j,F.appendChild(G);const U=r.createElement("button");U.type="button",U.className=`${h}__browse`,U.tabIndex=-1,U.textContent=T,F.appendChild(U),x.appendChild(F),K.titleRest=G,K.browseEl=U;const Z=r.createElement("span");if(Z.className=`${h}__drop`,Z.textContent=te,x.appendChild(Z),le){const b=r.createElement("span");b.className=`${h}__hint`,b.textContent=le,x.appendChild(b)}const $=r.createElement("span");$.className=`${h}__compact`,$.appendChild(e(r,m.upload));const A=r.createElement("span");A.className=`${h}__compact-text`,A.textContent=V,$.appendChild(A),x.appendChild($),K.compactText=A,re.appendChild(x),K.zone=x;const s=r.createElement("ul");s.className=`${h}__list`,s.setAttribute("role","list"),s.hidden=!0,re.appendChild(s),K.list=s;const k=r.createElement("div");return k.className=`${h}__live`,k.setAttribute("role","status"),k.setAttribute("aria-live","polite"),re.appendChild(k),K.live=k,re.__latAnnounce=b=>{K.live&&(K.live.textContent="",K.live.textContent=b)},re.__latDragState=b=>{K.zone.classList.toggle("is-dragover",b==="over"),K.zone.classList.toggle("is-invalid",b==="invalid"),b==="none"?(K.titleRest.textContent=K.dropText,K.browseEl.hidden=!1,K.compactText.textContent=K.addMore):b==="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)},re.__latPaint=()=>{const b=K.disabled||K.readOnly||!K.dropzone;K.zone.hidden=b,K.zone.tabIndex=b?-1:0,b?K.zone.setAttribute("aria-disabled","true"):K.zone.removeAttribute("aria-disabled"),K.input.disabled=b;const B=K.entries.length>0;K.zone.classList.toggle("is-compact",B),K.zone.setAttribute("aria-label",B?K.addMore:`${K.dropText} ${K.browse}`),s.hidden=!K.entries.length,s.tabIndex=K.readOnly&&!K.disabled?0:-1,K.entries.some(ne=>ne.status==="rejected")?re.setAttribute("aria-invalid","true"):re.removeAttribute("aria-invalid"),s.textContent="";for(const ne of K.entries){const oe=r.createElement("li");oe.className=`${h}__item is-${ne.status}`,oe.setAttribute("data-id",ne.id),oe.setAttribute("role","listitem");const pe=t(ne);if(pe){const de=r.createElement("img");de.className=`${h}__item-thumb`,de.src=pe,de.alt="",oe.appendChild(de)}else{const de=e(r,m[v(ne)]);de.setAttribute("class",`${h}__item-icon`),oe.appendChild(de)}const be=r.createElement("div");be.className=`${h}__item-main`,oe.appendChild(be);const je=r.createElement("div");je.className=`${h}__item-row`,be.appendChild(je);const ke=r.createElement("span");ke.className=`${h}__item-name`,ke.textContent=ne.name,ke.title=ne.name,je.appendChild(ke);const $e=r.createElement("span");$e.className=`${h}__item-size`,$e.textContent=C(ne.size),je.appendChild($e);const Ee=r.createElement("span");if(Ee.className=`${h}__item-state`,ne.status==="uploading"){const de=r.createElement("span");de.className=`${h}__item-pct`,de.textContent=`${ne.progress}%`,Ee.appendChild(de)}else ne.status==="done"?Ee.appendChild(e(r,m.check)):(ne.status==="error"||ne.status==="rejected")&&Ee.appendChild(e(r,m.warn));je.appendChild(Ee);const Oe=r.createElement("button");if(Oe.type="button",Oe.className=`${h}__remove`,Oe.setAttribute("aria-label",`${_("form.file.remove")} ${ne.name}`),Oe.title=_("form.file.remove"),Oe.appendChild(e(r,m.xmark)),Oe.setAttribute("data-remove",ne.id),Oe.disabled=K.disabled||K.readOnly,je.appendChild(Oe),ne.status==="uploading"){const de=r.createElement("span");de.className=`${h}__item-bar`,de.setAttribute("role","progressbar"),de.setAttribute("aria-valuemin","0"),de.setAttribute("aria-valuemax","100"),de.setAttribute("aria-valuenow",String(ne.progress));const Ce=r.createElement("span");Ce.className=`${h}__item-fill`,Ce.style.width=`${ne.progress}%`,de.appendChild(Ce),be.appendChild(de)}if(ne.message){const de=r.createElement("span");if(de.className=`${h}__item-message`,de.appendChild(r.createTextNode(ne.message)),ne.status==="error"){de.appendChild(r.createTextNode(" "));const Ce=r.createElement("button");Ce.type="button",Ce.className=`${h}__retry`,Ce.textContent=_("form.file.retry"),Ce.setAttribute("data-retry",ne.id),Ce.disabled=K.disabled||K.readOnly,de.appendChild(Ce)}be.appendChild(de)}s.appendChild(oe)}},re.__latUpload=b=>{if(!K.upload){b.status="done",b.progress=100,re.__latPaint();return}b.status="uploading",b.progress=0,b.message="";let B=null;typeof AbortController<"u"&&(B=new AbortController,K.controllers.set(b.id,B));const Y=B?B.signal:void 0,ne=pe=>{b.progress=Math.max(0,Math.min(100,Number(pe)||0)),b.status="uploading",re.__latPaint()};let oe;try{oe=K.upload(b.file,{onProgress:ne,signal:Y})}catch(pe){oe=Promise.reject(pe)}oe&&typeof oe.then=="function"&&oe.then(()=>{K.controllers.delete(b.id),b.status="done",b.progress=100,re.__latPaint(),re.__latAnnounce(_("form.file.uploaded",{name:b.name})),f(re,i.doc)},pe=>{K.controllers.delete(b.id),b.status="error",b.message=pe&&pe.message?String(pe.message):_("form.file.uploadFailed"),re.__latPaint(),re.__latAnnounce(_("form.file.failed",{name:b.name})),f(re,i.doc)})},re.__latTake=b=>{const B=[...b||[]];if(!B.length||K.disabled||K.readOnly)return;const Y=K.multiple?B:B.slice(0,1),ne=[],oe=[];let pe=K.maxFiles?Math.max(0,K.maxFiles-K.entries.length):1/0;for(const be of Y){if(pe<=0){oe.push({file:be,reason:"count"});continue}if(K.maxSize&&be.size>K.maxSize){oe.push({file:be,reason:"size"});continue}if(!c(be,K.accept)){oe.push({file:be,reason:"type"});continue}ne.push({id:P(),file:be,name:be.name,size:be.size,type:be.type,status:"selected",progress:0,message:""}),pe-=1}if(ne.length){K.multiple||(K.entries=[]),K.entries.push(...ne),re.__latPaint(),f(re,i.doc),re.__latAnnounce(ne.length===1?_("form.file.addedOne"):_("form.file.added",{count:String(ne.length)}));for(const be of ne)re.__latUpload(be)}for(const be of oe){const je=be.reason==="size"?_("form.file.rejected.size",{size:C(K.maxSize)}):be.reason==="type"?_("form.file.rejected.type"):_("form.file.rejected.count",{max:String(K.maxFiles)});K.entries.push({id:P(),file:be.file,name:be.file.name,size:be.file.size,type:be.file.type,status:"rejected",progress:0,message:je}),re.__latAnnounce(je)}re.__latPaint()},re.__latRemove=b=>{const B=K.controllers.get(b);B&&(B.abort(),K.controllers.delete(b));const Y=K.entries.find(ne=>ne.id===b);Y&&y(Y),K.entries=K.entries.filter(ne=>ne.id!==b),re.__latPaint(),f(re,i.doc)},re.__latRetry=b=>{if(K.disabled||K.readOnly)return;const B=K.entries.find(Y=>Y.id===b);!B||!B.file||B.status==="rejected"||(re.__latUpload(B),f(re,i.doc))},re.__latClick=b=>{if(K.disabled||K.readOnly)return;const B=b.target&&b.target.closest?b.target:null,Y=B&&B.closest?B.closest("[data-remove]"):null;if(Y&&re.contains(Y)){re.__latRemove(Y.getAttribute("data-remove"));return}const ne=B&&B.closest?B.closest("[data-retry]"):null;if(ne&&re.contains(ne)){re.__latRetry(ne.getAttribute("data-retry"));return}B&&B.closest&&B.closest(`.${h}__zone`)&&K.input.click()},re.__latKeydown=b=>{K.disabled||K.readOnly||(b.key==="Enter"||b.key===" "||b.key==="Spacebar")&&b.target===K.zone&&(b.preventDefault(),K.input.click())},re.__latChange=()=>{re.__latTake(K.input.files),K.input.value=""},re.__latDragKind=b=>{if(!K.accept.length)return"over";const B=b.dataTransfer;if(!B||!B.types||!B.types.length)return"over";const Y=Array.from(B.types);return Y.includes("Files")?"over":Y.every(ne=>!c({name:"",type:ne},K.accept))?"invalid":"over"},re.__latDrag=b=>{if(!(K.disabled||K.readOnly)){if(b.type==="dragenter"||b.type==="dragover"){b.preventDefault(),re.__latDragState(re.__latDragKind(b));return}if(b.type==="dragleave"){if(b.relatedTarget&&K.zone.contains(b.relatedTarget))return;re.__latDragState("none");return}b.type==="drop"&&(b.preventDefault(),re.__latDragState("none"),re.__latTake(b.dataTransfer&&b.dataTransfer.files))}},re.__latPaste=b=>{if(K.disabled||K.readOnly||!b.clipboardData)return;const B=[...b.clipboardData.files||[]];B.length&&(b.preventDefault(),re.__latTake(B))},g.addEventListener("change",re.__latChange),re.addEventListener("click",re.__latClick),re.addEventListener("keydown",re.__latKeydown),re.addEventListener("paste",re.__latPaste),I&&["dragenter","dragover","dragleave","drop"].forEach(b=>re.addEventListener(b,re.__latDrag)),re.__latPaint(),re},read(a){const i=a.__latFile;return i?i.entries.filter(r=>r.status!=="rejected").map(w):[]},write(a,i){const r=a.__latFile;if(!r)return;const _=Array.isArray(i)?i:[],u=r.entries.filter(R=>R.status==="rejected");for(const R of r.entries)u.includes(R)||y(R);r.entries=u;for(const R of _)r.entries.push({id:R&&R.id?String(R.id):P(),file:R&&R.file?R.file:null,name:R&&R.name!=null?String(R.name):"",size:R&&R.size!=null?Number(R.size):0,type:R&&R.type!=null?String(R.type):"",status:R&&R.status?String(R.status):"done",progress:R&&R.progress!=null?Number(R.progress):100,message:R&&R.message?String(R.message):""});a.__latPaint&&a.__latPaint()},state(a,i){const r=a.__latFile;r&&(r.disabled=i.disabled===!0,r.readOnly=i.readOnly===!0,r.disabled?a.setAttribute("aria-disabled","true"):a.removeAttribute("aria-disabled"),r.readOnly?a.setAttribute("aria-readonly","true"):a.removeAttribute("aria-readonly"),a.__latPaint&&a.__latPaint())},validate(a,i,r){const _=a.__latFile;if(!_)return null;const u=_.entries.find(R=>R.status==="rejected");return u&&u.message&&(!Array.isArray(r)||r.length===0)?u.message:_.maxFiles&&Array.isArray(r)&&r.length>_.maxFiles?`Too many files (max ${_.maxFiles})`:null}})}),ge("packages/dom/src/editors/richtext-icons.js",function(D,q){"use strict";Object.defineProperty(D,"TOOL_GLYPHS",{enumerable:!0,get:function(){return h}}),Object.defineProperty(D,"letterGlyph",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(D,"toolGlyph",{enumerable:!0,get:function(){return l}});const n="http://www.w3.org/2000/svg",z=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),h=Object.freeze({color:"M8 2.5l4 5.5a4 4 0 0 1-8 0zM4.5 12.5h7",alignLeft:"M3 4h10M3 8h6M3 12h10",alignCenter:"M3 4h10M5 8h6M3 12h10",alignRight:"M3 4h10M7 8h6M3 12h10",ul:"M3 5.5h.01M3 9.5h.01M3 13.5h.01M6 5.5h7M6 9.5h7M6 13.5h7",ol:"M2.5 4.5h.01M2.5 8.5h.01M2.5 12.5h.01M5 4.5h8M5 8.5h8M5 12.5h8",outdent:"M3 4h8M3 8h5M3 12h8M8 3v2M8 11v2",indent:"M5 4h8M5 8h5M5 12h8M10 3v2M10 11v2",link:"M6.5 9.5a3 3 0 0 0 3 3l2-2a3 3 0 0 0-3-3M9.5 6.5a3 3 0 0 0-3-3l-2 2a3 3 0 0 0 3 3",image:"M2 3h12v10H2zM5.5 11l2.5-3 2 2 1.5-1.5 2 2.5M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",clear:"M5 4h9M6 4l-.5 8a2 2 0 0 1-2 1.8A2 2 0 0 1 1.5 12L1 4M4 4V2.5h8V4M6 7v3M9.5 7v3",source:"M6 4L2.5 8 6 12M10 4l3.5 4L10 12",undo:"M3 7h6a3.5 3.5 0 0 1 0 7H5M3 7l2-2M3 7l2 2",redo:"M13 7H7a3.5 3.5 0 0 0 0 7h4M13 7l-2-2M13 7l-2 2"});function Q(L,E){const f=z[E],P=L.createElementNS(n,"svg");P.setAttribute("viewBox","0 0 16 16"),P.setAttribute("width","16"),P.setAttribute("height","16"),P.setAttribute("focusable","false"),P.setAttribute("aria-hidden","true");const C=L.createElementNS(n,"text");return C.setAttribute("x","8"),C.setAttribute("y","12"),C.setAttribute("text-anchor","middle"),C.style.fontSize="12px",C.style.fill="currentColor",C.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',f.weight&&(C.style.fontWeight=f.weight),f.style&&(C.style.fontStyle=f.style),f.decoration&&(C.style.textDecoration=f.decoration),C.textContent=f.char,P.appendChild(C),P}function l(L,E){const f=L.createElementNS(n,"svg");f.setAttribute("viewBox","0 0 16 16"),f.setAttribute("focusable","false"),f.setAttribute("aria-hidden","true"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","1.5"),f.setAttribute("stroke-linecap","round"),f.setAttribute("stroke-linejoin","round");const P=L.createElementNS(n,"path");return P.setAttribute("d",h[E]),f.appendChild(P),f}}),ge("packages/modules/form/controls/richtext.js",function(D,q){"use strict";Object.defineProperty(D,"sanitize",{enumerable:!0,get:function(){return C}}),Object.defineProperty(D,"escapeHtml",{enumerable:!0,get:function(){return l}});const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/dom/src/editors/sanitize-richtext.js"),Q=h.sanitizeRichText,l=h.escapeHtml,L=q("packages/dom/src/editors/richtext-icons.js"),E=L.letterGlyph,f=L.toolGlyph,P=L.TOOL_GLYPHS,C=Q,c=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"]}),d=Object.freeze(["bold","italic","underline","strike"]),p=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 M(H){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[H]||null}const w=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),e=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function m(H){return Array.isArray(H)?H.map(v=>String(v)):c[H]||c.basic}function S(H){return new Promise((v,t)=>{const y=new FileReader;y.onload=()=>v(y.result),y.onerror=()=>t(y.error||new Error("read failed")),y.readAsDataURL(H)})}z("richtext",{kind:"field",build(H,v){const t=v.doc,y=H.props||{},a=m(y.toolbar),i=Array.isArray(y.headings)?y.headings:e,r=Array.isArray(y.colors)?y.colors:w,_=y.linkTarget!=null?String(y.linkTarget):"_blank",u=Number(y.minHeight)||160,R=Number(y.maxHeight)||0,ie=Number(y.maxImageSize)||0,ee=typeof y.onImage=="function"?y.onImage:null,J=y.sanitizePaste!==!1,o=y.allowedTags,I=y.placeholder!=null?String(y.placeholder):v.t("form.richtext.placeholder"),j=t.createElement("div");j.className="lat-form__richtext";const T={toolbar:a,headings:i,colors:r,linkTarget:_,minHeight:u,maxHeight:R,maxImageSize:ie,onImage:ee,sanitizePaste:J,allowedTags:o,placeholder:I,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};j.__latRt=T;const te=C(t,H.value==null?"":String(H.value),o,{});T.history={stack:[te],index:0},T.lastValue=te;const V=t.createElement("div");V.className="lat-form__richtext-toolbar",V.setAttribute("role","toolbar"),V.setAttribute("aria-label",v.t("form.richtext.formatting")),T.toolbarEl=V;for(const g of a){if(g==="|"){const N=t.createElement("span");N.className="lat-form__richtext-sep",N.setAttribute("role","separator"),V.appendChild(N);continue}if(g==="heading"){const N=t.createElement("select");N.className="lat-form__richtext-select",N.title=v.t(p.heading),N.setAttribute("aria-label",v.t(p.heading)),N.setAttribute("data-item","heading");for(const[F,G]of i){const U=t.createElement("option");U.value=F,U.textContent=String(G),N.appendChild(U)}T.buttons.heading=N,V.appendChild(N);continue}const x=t.createElement("button");x.type="button",x.className="lat-form__richtext-btn",x.setAttribute("data-item",g),x.title=v.t(p[g]||g),x.setAttribute("aria-label",v.t(p[g]||g)),g==="lowercase"||g==="uppercase"?(x.className+=" lat-form__richtext-btntext",x.textContent=v.t(g==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):d.includes(g)?x.appendChild(E(t,g)):P[g]?x.appendChild(f(t,g)):x.textContent=g,T.buttons[g]=x,V.appendChild(x)}j.appendChild(V);const ce=t.createElement("div");ce.className="lat-form__richtext-popover",ce.hidden=!0,j.appendChild(ce),T.popover=ce;const le=t.createElement("div");le.className="lat-form__richtext-editor",le.contentEditable=H.readOnly||H.disabled?"false":"true",le.setAttribute("role","textbox"),le.setAttribute("aria-multiline","true"),le.setAttribute("aria-label",H.label!=null?String(H.label):v.t("form.richtext.richText")),le.setAttribute("data-placeholder",I),le.style.minHeight=`${u}px`,R&&(le.style.maxHeight=`${R}px`),le.innerHTML=te,j.appendChild(le),T.editor=le;const re=t.createElement("textarea");re.className="lat-form__richtext-source",re.setAttribute("aria-label",v.t("form.richtext.source")),re.spellcheck=!1,re.hidden=!0,j.appendChild(re),T.source=re;const K=t.createElement("input");return K.type="file",K.accept="image/*",K.className="lat-form__richtext-file",K.tabIndex=-1,K.setAttribute("aria-hidden","true"),j.appendChild(K),T.fileInput=K,j.__latSave=()=>{const g=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;g&&g.rangeCount&&le.contains(g.anchorNode)&&(T.range=g.getRangeAt(0).cloneRange())},j.__latRestore=()=>{if(!T.range)return;const g=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(g)try{g.removeAllRanges(),g.addRange(T.range)}catch{}},j.__latRefresh=()=>{Object.entries(T.buttons).forEach(([g,x])=>{const N=M(g);if(N&&N.state&&x.tagName==="BUTTON"){let F=!1;try{F=t.queryCommandState(N.state)}catch{F=!1}x.setAttribute("aria-pressed",F?"true":"false"),x.classList.toggle("is-active",F)}if(g==="heading"&&x.tagName==="SELECT"){let F="";try{F=String(t.queryCommandValue("formatBlock")||"").toLowerCase()}catch{F=""}const G=[...x.options].some(U=>U.value===F);x.value=G?F:"p"}})},j.__latExec=(g,x)=>{le.focus(),j.__latRestore();try{t.execCommand("styleWithCSS",!1,g==="foreColor")}catch{}try{t.execCommand(g,!1,x===void 0?null:x)}catch{}j.__latAfterEdit()},j.__latAfterEdit=()=>{const g=le.innerHTML,x=T.history;x.stack[x.index]!==g&&(x.stack=x.stack.slice(0,x.index+1),x.stack.push(g),x.stack.length>200&&x.stack.shift(),x.index=x.stack.length-1),j.__latRefresh();const N=C(t,g,o,{}),F=T.lastValue==null?C(t,x.stack[0]||"",o,{}):T.lastValue;T.lastValue=N,O(j,t,F,N)},j.__latCaretEnd=()=>{const g=t.createRange();g.selectNodeContents(le),g.collapse(!1);const x=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;x&&(x.removeAllRanges(),x.addRange(g)),T.range=g.cloneRange()},j.__latUndo=()=>{const g=T.history;if(g.index<=0)return;g.index-=1,le.innerHTML=g.stack[g.index],j.__latCaretEnd(),j.__latRefresh();const x=C(t,le.innerHTML,o,{});T.lastValue=x,O(j,t,T.lastValue,x)},j.__latRedo=()=>{const g=T.history;if(g.index>=g.stack.length-1)return;g.index+=1,le.innerHTML=g.stack[g.index],j.__latCaretEnd(),j.__latRefresh();const x=C(t,le.innerHTML,o,{});T.lastValue=x,O(j,t,T.lastValue,x)},j.__latClosePopover=()=>{ce.hidden=!0,ce.textContent=""},j.__latOpenPopover=(g,x)=>{if(ce.textContent="",ce.hidden=!1,ce.style.left=`${Math.max(0,x.offsetLeft)}px`,g==="color"){const N=t.createElement("div");N.className="lat-form__richtext-swatches";for(const Z of r){const $=t.createElement("button");$.type="button",$.className="lat-form__richtext-swatch",$.title=String(Z),$.style.background=String(Z),$.setAttribute("data-color",String(Z)),N.appendChild($)}ce.appendChild(N);const F=t.createElement("div");F.className="lat-form__richtext-poprow";const G=t.createElement("input");G.type="color",G.className="lat-form__richtext-colorinput",G.setAttribute("aria-label",v.t("form.richtext.colorCustom")),G.addEventListener("input",()=>{j.__latRestore(),j.__latExec("foreColor",G.value)});const U=t.createElement("button");U.type="button",U.className="lat-form__richtext-popbtn",U.textContent=v.t("form.richtext.colorRemove"),U.addEventListener("click",()=>{j.__latRestore(),j.__latExec("foreColor","inherit"),j.__latClosePopover()}),F.appendChild(G),F.appendChild(U),ce.appendChild(F),N.addEventListener("click",Z=>{const $=Z.target&&Z.target.closest?Z.target.closest("[data-color]"):null;$&&(j.__latRestore(),j.__latExec("foreColor",$.getAttribute("data-color")),j.__latClosePopover())})}else{const N=j.__latClosestLink(),F=t.createElement("input");F.type="url",F.className="lat-form__richtext-linkinput",F.placeholder=v.t("form.richtext.linkPlaceholder"),F.value=N&&N.getAttribute("href")||"",F.setAttribute("aria-label",v.t("form.richtext.linkLabel"));const G=()=>{const $=F.value.trim();if(j.__latRestore(),!$){j.__latExec("unlink"),j.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test($)){F.classList.add("is-invalid");return}if(N)N.setAttribute("href",$),j.__latAfterEdit();else{const A=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(A&&A.isCollapsed){const s=_?` target="${l(_)}" rel="noopener noreferrer"`:"";j.__latExec("insertHTML",C(t,`<a href="${l($)}"${s}>${l($)}</a>`,o,{}))}else{j.__latExec("createLink",$);const s=j.__latClosestLink();s&&_&&(s.setAttribute("target",_),s.setAttribute("rel","noopener noreferrer"))}}j.__latClosePopover()};F.addEventListener("keydown",$=>{$.key==="Enter"&&($.preventDefault(),G()),$.key==="Escape"&&j.__latClosePopover()});const U=t.createElement("div");U.className="lat-form__richtext-poprow",U.appendChild(F);const Z=t.createElement("button");if(Z.type="button",Z.className="lat-form__richtext-popbtn",Z.textContent=N?v.t("form.richtext.linkUpdate"):v.t("form.richtext.linkAdd"),Z.addEventListener("click",G),U.appendChild(Z),N){const $=t.createElement("button");$.type="button",$.className="lat-form__richtext-popbtn",$.textContent=v.t("form.richtext.linkRemove"),$.addEventListener("click",()=>{j.__latRestore(),j.__latExec("unlink"),j.__latClosePopover()}),U.appendChild($)}ce.appendChild(U),setTimeout(()=>F.focus(),0)}},j.__latClosestLink=()=>{const g=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(!g||g.rangeCount===0)return null;let x=g.getRangeAt(0).commonAncestorContainer;x.nodeType===3&&(x=x.parentNode);const N=x.closest?x.closest("a"):null;return N&&le.contains(N)?N:null},j.__latRun=g=>{if(T.disabled||T.readOnly)return;g!=="source"&&T.sourceMode&&j.__latToggleSource(!1),j.__latRestore();const x=M(g);if(g==="color"||g==="link"){j.__latOpenPopover(g,T.buttons[g]);return}if(g==="undo"){j.__latUndo();return}if(g==="redo"){j.__latRedo();return}if(g==="source"){j.__latToggleSource();return}if(g==="image"){T.fileInput.click();return}if(g==="lowercase"||g==="uppercase"){j.__latCase(g==="uppercase");return}if(x){j.__latExec(x.cmd);return}},j.__latCase=g=>{const x=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(!x||x.rangeCount===0||x.isCollapsed)return;const N=x.toString();j.__latExec("insertText",g?N.toUpperCase():N.toLowerCase())},j.__latToggleSource=g=>{const x=g===void 0?!T.sourceMode:!!g;if(x===T.sourceMode)return;x?(T.source.value=C(t,le.innerHTML,o,{}).replace(/></g,`>
|
|
1291
|
-
<`),le.hidden=!0,re.hidden=!1,re.focus()):(T.sourceDirty&&(le.innerHTML=C(t,re.value,o,{}),T.sourceDirty=!1),re.hidden=!0,le.hidden=!1,le.focus()),T.sourceMode=x;const N=T.buttons.source;N&&(N.classList.toggle("is-active",x),N.setAttribute("aria-pressed",x?"true":"false")),Object.entries(T.buttons).forEach(([F,G])=>{F!=="source"&&(G.disabled=x)}),x||j.__latAfterEdit()},j.__latInsertImage=async g=>{if(!/^image\//.test(g.type)||ie&&g.size>ie)return;let x;try{x=ee?await ee(g):await S(g)}catch{return}x&&j.__latExec("insertHTML",C(t,`<img src="${l(x)}" alt="${l(g.name)}" style="max-width:100%">`,o,{}))},j.__latToolbarClick=g=>{const x=g.target&&g.target.closest?g.target.closest("[data-item]"):null;!x||!V.contains(x)||x.tagName==="SELECT"||(g.preventDefault(),j.__latRun(x.getAttribute("data-item")))},j.__latToolbarDown=g=>{g.target&&g.target.closest&&g.target.closest(".lat-form__richtext-btn")&&g.preventDefault()},j.__latSelect=g=>{g.target&&g.target.getAttribute&&g.target.getAttribute("data-item")==="heading"&&(j.__latRestore(),j.__latExec("formatBlock",g.target.value))},j.__latInput=()=>{j.__latAfterEdit()},j.__latKey=g=>{if(!(g.ctrlKey||g.metaKey))return;const x=g.key.toLowerCase();x==="z"&&!g.shiftKey?(g.preventDefault(),j.__latUndo()):x==="y"||x==="z"&&g.shiftKey?(g.preventDefault(),j.__latRedo()):x==="k"&&T.buttons.link&&(g.preventDefault(),j.__latRun("link"))},j.__latPaste=g=>{if(!J||!g.clipboardData)return;const x=g.clipboardData.getData("text/html"),N=g.clipboardData.getData("text/plain");if(!x&&!N)return;g.preventDefault();const F=x?C(t,x,o,{stripStyles:!0}):l(N).replace(/\r?\n/g,"<br>");j.__latExec("insertHTML",F)},j.__latDrop=g=>{if(!J||!g.dataTransfer)return;const x=g.dataTransfer.files;if(x&&x.length){g.preventDefault();const U=x[0];U&&j.__latInsertImage(U);return}const N=g.dataTransfer.getData("text/html"),F=g.dataTransfer.getData("text/plain");if(!N&&!F)return;g.preventDefault();const G=N?C(t,N,o,{stripStyles:!0}):l(F).replace(/\r?\n/g,"<br>");j.__latExec("insertHTML",G)},j.__latBeforeInput=g=>{J&&(g.inputType==="insertFromDrop"||g.inputType==="insertFromPaste")&&g.preventDefault()},j.__latSelChange=()=>{t.activeElement===le&&(j.__latSave(),j.__latRefresh())},j.__latFile=()=>{const g=K.files&&K.files[0];K.value="",g&&j.__latInsertImage(g)},j.__latSourceInput=()=>{T.sourceDirty=!0},j.__latDocClick=g=>{ce&&!ce.hidden&&!ce.contains(g.target)&&!V.contains(g.target)&&j.__latClosePopover()},V.addEventListener("click",j.__latToolbarClick),V.addEventListener("mousedown",j.__latToolbarDown),V.addEventListener("change",j.__latSelect),le.addEventListener("input",j.__latInput),le.addEventListener("keydown",j.__latKey),le.addEventListener("paste",j.__latPaste),le.addEventListener("drop",j.__latDrop),le.addEventListener("beforeinput",j.__latBeforeInput),K.addEventListener("change",j.__latFile),re.addEventListener("input",j.__latSourceInput),t.addEventListener&&(t.addEventListener("selectionchange",j.__latSelChange),t.addEventListener("mousedown",j.__latDocClick,!0)),j},read(H){const v=H.__latRt;return v?v.sourceMode?C(H.ownerDocument,v.source.value,v.allowedTags,{}):C(H.ownerDocument,v.editor.innerHTML,v.allowedTags,{}):""},write(H,v){const t=H.__latRt;if(!t)return;const y=H.ownerDocument,a=C(y,v==null?"":String(v),t.allowedTags,{});t.sourceMode&&(t.source.value=a),t.editor.innerHTML=a,t.history={stack:[a],index:0},t.lastValue=a},state(H,v){const t=H.__latRt;t&&(t.disabled=v.disabled===!0,t.readOnly=v.readOnly===!0,t.editor.contentEditable=t.disabled||t.readOnly?"false":"true",t.editor.tabIndex=t.readOnly?0:-1,t.readOnly?t.editor.setAttribute("aria-readonly","true"):t.editor.removeAttribute("aria-readonly"),t.disabled?H.setAttribute("aria-disabled","true"):H.removeAttribute("aria-disabled"),t.readOnly?H.setAttribute("aria-readonly","true"):H.removeAttribute("aria-readonly"),Object.values(t.buttons).forEach(y=>{y.disabled=t.disabled||t.readOnly}))}});function O(H,v,t,y){const a=v&&v.defaultView,i=a&&a.Event,r=i?new i("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};H.dispatchEvent(r)}}),ge("packages/modules/form/controls/rating.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=5,Q=Object.freeze({star:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.2l-3.8 2 .7-4.3-3.1-3 4.3-.6z",heart:"M8 14s-5-3.2-5-6.3A2.9 2.9 0 0 1 8 5.7 2.9 2.9 0 0 1 13 7.7C13 10.8 8 14 8 14z"});function l(p){const M=String(p??"");return Object.hasOwn(Q,M)?M:"star"}function L(p,M,w){return Math.min(Math.max(p,M),w)}function E(p,M){const w=M&&M.defaultView,e=w&&w.Event,m=e?new e("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};p.dispatchEvent(m)}function f(p,M,w){const e=p.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","0 0 16 16"),e.setAttribute("focusable","false"),e.setAttribute("aria-hidden","true"),w?e.setAttribute("fill","currentColor"):(e.setAttribute("fill","none"),e.setAttribute("stroke","currentColor"),e.setAttribute("stroke-width","1.5"),e.setAttribute("stroke-linejoin","round"));const m=p.createElementNS("http://www.w3.org/2000/svg","path");return m.setAttribute("d",Q[M]),e.appendChild(m),e}function P(p,M,w){const e=Number(p),m=Number.isFinite(e)?e:0,S=w?Math.round(m*2)/2:Math.round(m);return L(S,0,M)}function C(p,M){return Math.min(1,Math.max(0,p-(M-1)))}z("rating",{kind:"field",build(p,M){const w=M.doc,e=p.props||{},m=Math.max(1,Math.floor(Number(p.max!=null?p.max:e.max)||h)),S=e.allowHalf===!0,O=e.allowClear!==!1,H=e.showValue===!0,v=Array.isArray(e.labels)?e.labels:null,t=l(e.icons&&e.icons.filled?e.icons.filled:e.icon),y=l(e.icons&&e.icons.empty?e.icons.empty:`${t}-outline`),a=e.size==="lg"||e.size==="sm"?e.size:"md",i=w.createElement("div");i.className=`lat-form__rating lat-form__rating--${a}`,i.setAttribute("role","slider"),i.setAttribute("aria-valuemin","0"),i.setAttribute("aria-valuemax",String(m)),i.setAttribute("aria-label",p.label!=null?String(p.label):M.t("form.rating"));const r={value:P(p.value,m,S),max:m,allowHalf:S,allowClear:O,labels:v,showValue:H,filledName:t,emptyName:y,items:[],fills:[],valueEl:null};i.__latRating=r;const _=w.createElement("span");_.className="lat-form__rating-track",_.setAttribute("aria-hidden","true");for(let u=0;u<m;u++){const R=w.createElement("span");R.className="lat-form__rating-item",R.setAttribute("data-index",String(u)),v&&v[u]!=null&&v[u]!==""&&(R.title=String(v[u])),R.appendChild(f(w,y,!1));const ie=w.createElement("span");ie.className="lat-form__rating-fill",ie.setAttribute("aria-hidden","true"),ie.appendChild(f(w,t,!0)),R.appendChild(ie),_.appendChild(R),r.items.push(R),r.fills.push(ie)}if(i.appendChild(_),H){const u=w.createElement("span");u.className="lat-form__rating-value",u.setAttribute("aria-hidden","true"),i.appendChild(u),r.valueEl=u}return i.__latPaint=()=>{for(let u=0;u<r.items.length;u++){const R=C(r.value,u+1);r.items[u].setAttribute("data-fill",R>=1?"full":R>0?"half":"empty"),r.fills[u].style.width=`${(R*100).toFixed(2)}%`}i.setAttribute("aria-valuenow",String(r.value)),i.setAttribute("aria-valuetext",c(r)),r.valueEl&&(r.valueEl.textContent=d(r))},i.__latSet=u=>{r.value=P(u,m,S),i.__latPaint()},i.__latClear=()=>{r.value=0,i.__latPaint()},i.__latPick=(u,R)=>{let ie=u+1;if(S&&R&&Number.isFinite(R.clientX)){const ee=r.items[u].getBoundingClientRect();ee&&ee.width>0&&(ie=R.clientX-ee.left<ee.width/2?u+.5:u+1)}O&&ie===r.value&&(ie=0),i.__latSet(ie),E(i,M.doc)},i.addEventListener("click",u=>{if(r.disabled||r.readOnly)return;const R=u.target&&u.target.closest?u.target.closest(".lat-form__rating-item"):null;!R||!i.contains(R)||i.__latPick(Number(R.getAttribute("data-index")),u)}),i.__latKey=u=>{if(r.disabled||r.readOnly)return;const R=S?.5:1;let ie=r.value;if(u.key==="ArrowRight"||u.key==="ArrowUp")ie+=R;else if(u.key==="ArrowLeft"||u.key==="ArrowDown")ie-=R;else if(u.key==="Home")ie=0;else if(u.key==="End")ie=m;else if(u.key==="Backspace"||u.key==="Delete")ie=0;else return;u.preventDefault(),i.__latSet(ie),E(i,M.doc)},i.addEventListener("keydown",i.__latKey),i.__latPaint(),i},read(p){return p.__latRating?p.__latRating.value:0},write(p,M){p.__latRating&&(p.__latRating.value=P(M,p.__latRating.max,p.__latRating.allowHalf),p.__latPaint())},state(p,M){const w=p.__latRating;w&&(w.disabled=M.disabled===!0,w.readOnly=M.readOnly===!0,p.tabIndex=w.disabled?-1:0,w.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly"),w.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"))}});function c(p){const M=Math.round(p.value);return p.labels&&p.labels[M-1]&&p.value===M?p.labels[M-1]:`${p.value} of ${p.max}`}function d(p){return String(p.value)}}),ge("packages/modules/form/controls/stage.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl;function h(L,E){const f=E&&E.defaultView,P=f&&f.Event,C=P?new P("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};L.dispatchEvent(C)}function Q(L,E){return typeof E=="number"&&Number.isFinite(E)?Math.min(Math.max(Math.round(E),0),L.length-1):typeof E=="string"?L.indexOf(E):-1}function l(L,E,f){return`${L}, ${E+1} of ${f}`}z("stage",{kind:"field",build(L,E){const f=E.doc,P=L.props||{},C=Array.isArray(P.stages)?P.stages.map(S=>String(S)):[],c=P.clickable!==!1,d=P.showIcons!==!1,p=Q(C,L.value!=null?L.value:P.current),M=Q(C,P.completed),w=f.createElement("div");w.className="lat-form__stage",w.setAttribute("role","radiogroup"),w.setAttribute("aria-label",L.label!=null?String(L.label):E.t("form.stage"));const e=[],m={stages:C,value:p>=0?C[p]:null,index:p,completed:M,clickable:c,showIcons:d,disabled:!1,readOnly:!1,focus:p>=0?p:0};w.__latStage=m;for(let S=0;S<C.length;S++){const O=f.createElement(c?"button":"span");if(O.type=c?"button":void 0,O.className="lat-form__stage-step",O.setAttribute("data-index",String(S)),c&&(O.setAttribute("role","radio"),O.setAttribute("aria-label",l(C[S],S,C.length))),d){const v=f.createElementNS("http://www.w3.org/2000/svg","svg");v.setAttribute("viewBox","0 0 16 16"),v.setAttribute("aria-hidden","true"),v.setAttribute("class","lat-form__stage-check");const t=f.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d","M3 8.5l3 3 7-7"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),v.appendChild(t),O.appendChild(v)}const H=f.createElement("span");H.className="lat-form__stage-label",H.textContent=C[S],O.appendChild(H),w.appendChild(O),e.push(O)}return w.__latPaint=()=>{for(let S=0;S<e.length;S++){const O=S===m.index,H=!O&&m.completed>=0&&S<=m.completed;e[S].setAttribute("data-state",O?"current":H?"done":"todo"),m.clickable&&(e[S].setAttribute("aria-checked",O?"true":"false"),e[S].tabIndex=m.disabled?-1:S===m.focus?0:-1)}},w.__latSelect=S=>{const O=S>=0&&S<C.length?C[S]:null;O!==m.value&&(m.index=S>=0&&S<C.length?S:-1,m.value=O,m.focus=m.index>=0?m.index:0,w.__latPaint(),h(w,E.doc))},w.__latKey=S=>{if(m.disabled||m.readOnly||!m.clickable||!C.length)return;let O=m.focus;if(S.key==="ArrowRight"||S.key==="ArrowDown")O+=1;else if(S.key==="ArrowLeft"||S.key==="ArrowUp")O-=1;else if(S.key==="Home")O=0;else if(S.key==="End")O=C.length-1;else return;S.preventDefault();const H=Math.min(Math.max(O,0),C.length-1);m.focus=H,e[H].focus(),w.__latSelect(H)},c&&(w.addEventListener("click",S=>{if(m.disabled||m.readOnly)return;const O=S.target&&S.target.closest?S.target.closest(".lat-form__stage-step"):null;if(!O||!w.contains(O))return;const H=Number(O.getAttribute("data-index"));m.focus=H,w.__latSelect(H)}),w.addEventListener("keydown",w.__latKey)),w.__latPaint(),w},read(L){return L.__latStage?L.__latStage.value:null},write(L,E){const f=L.__latStage;if(!f)return;const P=E==null?-1:Q(f.stages,E);f.index=P,f.value=P>=0?f.stages[P]:null,f.focus=P>=0?P:0,L.__latPaint()},state(L,E){const f=L.__latStage;f&&(f.disabled=E.disabled===!0,f.readOnly=E.readOnly===!0,f.readOnly?L.setAttribute("aria-readonly","true"):L.removeAttribute("aria-readonly"),f.disabled?L.setAttribute("aria-disabled","true"):L.removeAttribute("aria-disabled"),L.__latPaint())}})}),ge("packages/modules/form/controls/chips.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h="M3 8.5l3 3 7-7";function Q(E,f){const P=f&&f.defaultView,C=P&&P.Event,c=C?new C("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};E.dispatchEvent(c)}function l(E){if(typeof E=="string")return{value:E,label:E,icon:null,disabled:!1};if(E!==null&&typeof E=="object"){const f=E.value===void 0?String(E.label):E.value;return{value:f,label:E.label==null?String(f):String(E.label),icon:typeof E.icon=="string"&&E.icon!==""?E.icon:null,disabled:E.disabled===!0}}return{value:E,label:String(E),icon:null,disabled:!1}}function L(E,f,P){const C=E.createElementNS("http://www.w3.org/2000/svg","svg");C.setAttribute("viewBox","0 0 16 16"),C.setAttribute("focusable","false"),C.setAttribute("aria-hidden","true");const c=E.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",f),P?c.setAttribute("fill","currentColor"):(c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","2"),c.setAttribute("stroke-linecap","round"),c.setAttribute("stroke-linejoin","round")),C.appendChild(c),C}z("chips",{kind:"field",build(E,f){const P=f.doc,C=E.props||{},c=(Array.isArray(E.options)?E.options:[]).map(l),d=C.multiple===!0,p=C.allowEmpty===!0,M=C.wrap!==!1,w=E.max!=null&&Number.isFinite(Number(E.max))?Number(E.max):null,e=P.createElement("div");e.className=`lat-form__chips${M?"":" lat-form__chips--scroll"}`,e.setAttribute("role",d?"group":"radiogroup"),e.setAttribute("aria-label",E.label!=null?String(E.label):f.t("form.chips"));const m=[],S=new Set,O={options:c,multiple:d,allowEmpty:p,wrap:M,max:w,selected:S,disabled:!1,readOnly:!1,t:f.t};e.__latChips=O;for(let v=0;v<c.length;v++){const t=c[v],y=P.createElement("button");if(y.type="button",y.className="lat-form__chip",y.setAttribute("data-index",String(v)),y.disabled=t.disabled,d||y.setAttribute("role","radio"),t.icon){const i=L(P,t.icon,!0);i.setAttribute("class","lat-form__chip-icon"),y.appendChild(i)}const a=P.createElement("span");if(a.className="lat-form__chip-label",a.textContent=t.label,y.appendChild(a),d){const i=L(P,h,!1);i.setAttribute("class","lat-form__chip-check"),y.appendChild(i)}e.appendChild(y),m.push(y)}O.buttons=m,e.__latPaint=()=>{for(let v=0;v<m.length;v++){const t=c[v],y=S.has(t.value),a=m[v];a.disabled=t.disabled||O.disabled,d?(a.setAttribute("aria-pressed",y?"true":"false"),a.tabIndex=O.disabled?-1:0):(a.setAttribute("aria-checked",y?"true":"false"),a.tabIndex=O.disabled?-1:y?0:-1)}},e.__latValue=()=>{if(d)return c.filter(v=>S.has(v.value)).map(v=>v.value);for(const v of c)if(S.has(v.value))return v.value;return null},e.__latToggle=v=>{const t=c[v];if(!(!t||t.disabled||O.disabled||O.readOnly)){if(d)if(S.has(t.value))S.delete(t.value);else{if(w!=null&&S.size>=w)return;S.add(t.value)}else if(S.has(t.value))if(O.allowEmpty)S.clear();else return;else S.clear(),S.add(t.value);e.__latPaint(),Q(e,f.doc)}},e.addEventListener("click",v=>{const t=v.target&&v.target.closest?v.target.closest(".lat-form__chip"):null;!t||!e.contains(t)||e.__latToggle(Number(t.getAttribute("data-index")))}),e.__latKey=v=>{if(O.multiple||O.disabled||O.readOnly||!m.length)return;let t=-1;for(let r=0;r<m.length;r++)if(S.has(c[r].value)){t=r;break}let y=t;if(v.key==="ArrowRight"||v.key==="ArrowDown")y=t+1;else if(v.key==="ArrowLeft"||v.key==="ArrowUp")y=t-1;else if(v.key==="Home")y=0;else if(v.key==="End")y=c.length-1;else return;v.preventDefault();const a=v.key==="ArrowLeft"||v.key==="ArrowUp"?-1:1;let i=y;for(;i>=0&&i<c.length&&c[i].disabled;)i+=a;i<0||i>=c.length||(S.clear(),S.add(c[i].value),e.__latPaint(),m[i].focus(),Q(e,f.doc))},e.addEventListener("keydown",e.__latKey);const H=E.value;if(d){const v=Array.isArray(H)?H:[];for(const t of v)c.some(y=>y.value===t)&&S.add(t)}else if(H!=null&&c.some(v=>v.value===H))S.add(H);else if(!p){const v=c.find(t=>!t.disabled)||c[0];v&&S.add(v.value)}return e.__latPaint(),e},read(E){return E.__latChips?E.__latValue():null},write(E,f){const P=E.__latChips;if(P){if(P.selected.clear(),P.multiple){const C=Array.isArray(f)?f:[];for(const c of C)P.options.some(d=>d.value===c)&&P.selected.add(c)}else if(f!=null&&P.options.some(C=>C.value===f))P.selected.add(f);else if(!P.allowEmpty){const C=P.options.find(c=>!c.disabled)||P.options[0];C&&P.selected.add(C.value)}E.__latPaint()}},validate(E,f,P){const C=E.__latChips;if(!C||!C.multiple)return null;const c=Array.isArray(P)?P.length:0,d=f.min!=null&&Number.isFinite(Number(f.min))?Number(f.min):null,p=f.max!=null&&Number.isFinite(Number(f.max))?Number(f.max):null;return d!=null&&c<d?{code:"min",message:C.t("form.chips.min",{min:String(d)})}:p!=null&&c>p?{code:"max",message:C.t("form.chips.max",{max:String(p)})}:null},state(E,f){const P=E.__latChips;P&&(P.disabled=f.disabled===!0,P.readOnly=f.readOnly===!0,P.readOnly?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly"),P.disabled?E.setAttribute("aria-disabled","true"):E.removeAttribute("aria-disabled"),E.__latPaint())}})}),ge("packages/modules/form/controls/otp.js",function(D,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=6;function Q(p){const M=Math.floor(Number(p));return Number.isFinite(M)&&M>=1?M:h}function l(p){return p==="alphanumeric"?"alphanumeric":"numeric"}function L(p,M){return M==="numeric"?/^[0-9]$/.test(p):/^[A-Za-z0-9]$/.test(p)}function E(p,M){for(let w=p.length-1;w>=0;w-=1)if(L(p[w],M))return p[w];return""}function f(p,M,w){return(p==null?"":String(p)).replace(/[\s-]/g,"").split("").filter(m=>L(m,M)).slice(0,w)}function P(p,M,w){const e=M&&M.defaultView,m=e&&e.Event,S=m?new m(w,{bubbles:!0}):{type:w,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};p.dispatchEvent(S)}function C(p,M){const w=f(M,p.mode,p.length);for(let e=0;e<p.length;e+=1)p.boxes[e].value=w[e]||""}function c(p){p.complete=p.boxes.every(M=>M.value!=="")}function d(p){return p.boxes.map(M=>M.value).join("")}z("otp",{kind:"field",domEvents:["complete"],build(p,M){const w=M.doc,e=p.props||{},m=Q(e.length),S=l(p.mode!=null?p.mode:e.mode),O=e.mask===!0,H=w.createElement("div");H.className="lat-form__otp",H.setAttribute("role","group"),H.setAttribute("aria-label",p.label!=null&&p.label!==""?String(p.label):M.t("form.otp.label"));const v=[],t={length:m,mode:S,mask:O,boxes:v,complete:!1,disabled:!1,readOnly:!1};H.__latOtp=t;for(let a=0;a<m;a+=1){const i=w.createElement("input");i.type="text",i.className=`lat-form__otp-input${O?" lat-form__otp-input--masked":""}`,i.setAttribute("inputmode",S==="numeric"?"numeric":"text"),i.setAttribute("pattern",S==="numeric"?"[0-9]":"[A-Za-z0-9]"),i.setAttribute("maxlength","1"),i.setAttribute("aria-label",M.t("form.otp.digit",{n:a+1,total:m})),i.autocomplete=a===0?"one-time-code":"off",v.push(i),H.appendChild(i)}const y=()=>{if(H.__latPublishing)return;H.__latPublishing=!0;try{P(H,w,"input"),P(H,w,"change")}finally{H.__latPublishing=!1}const a=v.every(i=>i.value!=="");a&&!t.complete?(t.complete=!0,P(H,w,"complete")):!a&&t.complete&&(t.complete=!1)};return H.addEventListener("input",a=>{if(H.__latPublishing)return;a.stopImmediatePropagation();const i=a.target;if(!v.includes(i))return;i.value=E(i.value,S);const r=v.indexOf(i);i.value!==""&&r<m-1&&v[r+1].focus(),y()}),H.addEventListener("change",a=>{H.__latPublishing||a.stopImmediatePropagation()}),H.addEventListener("keydown",a=>{if(t.disabled||t.readOnly)return;const i=a.target;if(!v.includes(i))return;const r=v.indexOf(i);a.key==="Backspace"?(a.preventDefault(),i.value!==""?i.value="":r>0&&(v[r-1].value="",v[r-1].focus()),y()):a.key==="ArrowLeft"&&r>0?(a.preventDefault(),v[r-1].focus()):a.key==="ArrowRight"&&r<m-1?(a.preventDefault(),v[r+1].focus()):a.key.length===1&&!L(a.key,S)&&!a.ctrlKey&&!a.metaKey&&!a.altKey&&a.preventDefault()}),H.addEventListener("paste",a=>{if(t.disabled||t.readOnly)return;a.preventDefault();const i=a.clipboardData&&typeof a.clipboardData.getData=="function"?a.clipboardData.getData("text"):"";C(t,i),(v.find(_=>_.value==="")||v[m-1]).focus(),y()}),H.focus=()=>{const a=v.find(i=>!i.disabled&&!i.readOnly&&i.value==="")||v[0];a&&a.focus()},H.blur=()=>{for(const a of v)a.blur()},C(t,p.value),c(t),H},read(p){return p.__latOtp?d(p.__latOtp):""},write(p,M){p.__latOtp&&(C(p.__latOtp,M),c(p.__latOtp))},state(p,M){const w=p.__latOtp;if(w){w.disabled=M.disabled===!0,w.readOnly=M.readOnly===!0;for(const e of w.boxes)e.disabled=w.disabled,e.readOnly=w.readOnly;w.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"),w.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly")}}})}),ge("packages/modules/form/controls/index.js",function(D,q){"use strict";const n=q("packages/modules/form/controls/input.js"),z=q("packages/modules/form/controls/number.js"),h=q("packages/modules/form/controls/textarea.js"),Q=q("packages/modules/form/controls/checkbox.js"),l=q("packages/modules/form/controls/button.js"),L=q("packages/modules/form/controls/buttons.js"),E=q("packages/modules/form/controls/text.js"),f=q("packages/modules/form/controls/combo.js"),P=q("packages/modules/form/controls/select.js"),C=q("packages/modules/form/controls/radiogroup.js"),c=q("packages/modules/form/controls/checkboxgroup.js"),d=q("packages/modules/form/controls/toggle.js"),p=q("packages/modules/form/controls/datepicker.js"),M=q("packages/modules/form/controls/file.js"),w=q("packages/modules/form/controls/richtext.js"),e=q("packages/modules/form/controls/rating.js"),m=q("packages/modules/form/controls/stage.js"),S=q("packages/modules/form/controls/chips.js"),O=q("packages/modules/form/controls/otp.js")}),ge("packages/modules/form/create.js",function(D,q){"use strict";Object.defineProperty(D,"createForm",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(D,"default",{enumerable:!0,get:function(){return ee}});const n=q("packages/modules/form/styles.js"),z=n.NS,h=n.injectStyles,Q=q("packages/modules/form/model.js"),l=Q.resolveConfig,L=Q.DENSITIES,E=Q.cssSize,f=q("packages/modules/form/view.js"),P=f.markValidation,C=f.mount,c=f.runValidation,d=f.validateItem,p=f.wizardBack,M=f.wizardGoTo,w=f.wizardNext,e=q("packages/modules/form/emitter.js"),m=e.Emitter,S=e.FORM_EVENTS,H=q("packages/modules/form/messages.js").createTranslator,v=q("packages/modules/form/bind.js"),t=v.resolveBind,y=v.applyBinding,i=q("packages/modules/form/rules.js").applyRules,_=q("packages/modules/form/state.js").syncRecordState,u=q("packages/modules/form/controls/index.js");function R(J){if(Array.isArray(J))return J.map(R);if(J==null||typeof J!="object"||typeof J.nodeType=="number"||Object.getPrototypeOf(J)!==Object.prototype)return J;const o=J.type==="buttons"&&Array.isArray(J.items),I={};for(const j of Object.keys(J))o&&j==="items"||(I[j]=R(J[j]));return o&&(I.buttons=J.items.map(R)),I}function ie(J,o={}){const I=J&&J.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,j=t(o);let T=o;if(j){if(T={...o},T.density===void 0){const x=j.density();x!=null&&(T.density=x)}if(!(Array.isArray(T.rows)&&T.rows.length||Array.isArray(T.cols)&&T.cols.length)){const x=j.items();x.length&&(T.rows=[{items:x}])}}const te=l(R(T)),V={el:J||null,doc:I,model:te,config:te,items:new Map,order:[],emitter:new m,t:H(te.messages).t,uidSeq:0,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ce=g=>(g.facade||(g.facade={el:g.el,item:g.item,name:g.item.name,getValue(){return g.value},setValue(x){return g.def.write(g.control,x),g.value=g.def.read(g.control),g.item.value=g.value,i(V),g.facade},show(){return g.hidden=!1,g.el.hidden=!1,g.facade},hide(){return g.hidden=!0,g.el.hidden=!0,g.facade},isVisible(){return!(g.hidden||g.ruleHidden)},disable(){return g.item.disabled=!0,_(g),g.facade},enable(){return g.item.disabled=!1,_(g),g.facade},focus(){return typeof g.def.focus=="function"?g.def.focus(g.control):typeof g.control.focus=="function"&&g.control.focus(),g.facade},blur(){return typeof g.def.blur=="function"?g.def.blur(g.control):typeof g.control.blur=="function"&&g.control.blur(),g.facade},validate(){return d(V,g)},setLoading(x){return typeof g.def.setLoading=="function"&&g.def.setLoading(g.control,x===!0),g.facade}}),g.facade);J&&I&&h(I);const le=J&&typeof J.style.cssText=="string"?J.style.cssText:"",re=new Set(["field","toggle","display"]),K={el:J||null,config:te,getItem(g){const x=V.items.get(String(g));return x?ce(x):void 0},getValue(){const g={};for(const x of V.order)x.item.name!=null&&re.has(x.def.kind)&&(g[x.item.name]=x.value);return g},setValue(g){if(g==null||typeof g!="object")return K;for(const x of Object.keys(g)){const N=V.items.get(x);N&&ce(N).setValue(g[x])}return K},clear(){for(const g of V.order)if(g.item.name!=null)if(g.def.kind==="field"){const x=g.item.props&&g.item.props.multiple===!0,N=g.item.type==="chips"?x?[]:null:g.item.type==="number"||g.item.type==="radiogroup"||g.item.type==="datepicker"||g.item.type==="stage"||g.item.type==="combo"&&!x?null:g.item.type==="rating"?0:g.item.type==="file"||g.item.type==="checkboxgroup"||(g.item.type==="select"||g.item.type==="combo")&&x?[]:"";g.value=N,g.item.value=N,g.def.write(g.control,N)}else g.def.kind==="toggle"&&(g.value=!1,g.item.value=!1,g.def.write(g.control,!1));return i(V),K},validate(){const g=[];let x=!0;for(const N of V.order){if(N.item.name==null||N.def.kind!=="field"&&N.def.kind!=="toggle"||N.item.disabled===!0||(typeof N.def.reset=="function"&&N.def.reset(N.control,N.item),N.item.required!==!0&&N.item.validation==null&&typeof N.def.validate!="function"))continue;const F=c(V,N);P(V,N,F),F&&(x=!1,g.push({name:N.item.name,rule:F.code,message:F.message}))}return V.emitter.emit("validated",{name:null,item:null,value:void 0,valid:x,failures:g}),x},forEach(g){for(const x of V.order)g(ce(x))},on(g,x){return g!=="*"&&!S.includes(g)?(console.warn(`lattice-form: "${g}" is not a form event and will never fire.`),()=>{}):V.emitter.on(g,x)},off(g,x){V.emitter.off(g,x)},setDensity(g){return L.includes(g)&&(te.density=g,J&&J.setAttribute("data-density",g)),K},setReadOnly(g){for(const x of V.order)x.item.readOnly=g===!0,_(x);return K},setDisabled(g){for(const x of V.order)x.item.disabled=g===!0,_(x);return K},setSpacing(g){const x=g==null?null:E(g);return te.spacing=x,J&&(x==null?J.style.removeProperty("--lattice-form-item-gap"):J.style.setProperty("--lattice-form-item-gap",x)),K},isDirty(g){return g==null?V.dirty.size>0:V.dirty.has(String(g))},isConflicted(g){return g==null?V.conflicts.size>0:V.conflicts.has(String(g))},save(){const g=V.bound;if(!g)return!1;if(V.dirty.size===0)return!0;const x={};for(const G of V.dirty){const U=K.getItem(G);U&&(x[G]=U.getValue())}const N=g.save(x),F=G=>{if(!G)return!1;for(const U of Object.keys(x))V.baseline[U]=x[U],V.dirty.delete(U),V.conflicts.delete(U);return!0};return N&&typeof N.then=="function"?N.then(F):F(N)},revert(){for(const g of V.dirty){if(!Object.hasOwn(V.baseline,g))continue;const x=V.items.get(g);x&&ce(x).setValue(V.baseline[g])}return V.dirty.clear(),V.conflicts.clear(),K},get steps(){return V.model.steps||[]},get activeStep(){return V.wizard?V.wizard.active:0},next(){return w(V)},back(){return p(V)},goToStep(g){return M(V,g)},destroy(){for(const x of V.disposers.splice(0))x();V.emitter.clear();const g=V.el;if(g){for(;g.firstChild;)g.removeChild(g.firstChild);g.classList.remove(z),g.removeAttribute("data-density"),g.style.cssText=le,g.__latticeForm===K&&(g.__latticeForm=null)}V.items.clear(),V.order.length=0,V.dirty.clear(),V.conflicts.clear(),V.baseline={},V.bound=null}};return J&&(J.__latticeForm=K),V.form=K,J&&I&&C(V),j&&y(V,K,j),K}const ee=ie}),ge("packages/modules/form/enhance.js",function(D,q){"use strict";Object.defineProperty(D,"itemForField",{enumerable:!0,get:function(){return f}}),Object.defineProperty(D,"configForForm",{enumerable:!0,get:function(){return P}}),Object.defineProperty(D,"enhanceForm",{enumerable:!0,get:function(){return C}}),Object.defineProperty(D,"default",{enumerable:!0,get:function(){return c}});const z=q("packages/modules/form/create.js").createForm,h=Object.freeze(["text","email","password","url"]);function Q(d){const p=d&&d.type?String(d.type).toLowerCase():"";return p==="submit"||p==="image"||d&&d.tagName==="BUTTON"&&p!=="button"}function l(d){if(!d||!d.name)return!1;const p=d&&d.type?String(d.type).toLowerCase():"";return!(p==="submit"||p==="button"||p==="reset"||p==="image"||p==="hidden"||p==="file"||d.tagName==="BUTTON")}function L(d,p){if(typeof d.getAttribute=="function"){const M=d.getAttribute("data-label");if(M!=null&&M!=="")return M;const w=d.getAttribute("aria-label");if(w!=null&&w!=="")return w}if(d.id&&typeof p.querySelector=="function"){const M=p.querySelector(`label[for="${d.id}"]`);if(M&&M.textContent!=null){const w=String(M.textContent).trim();if(w)return w}}return String(d.name||"")}function E(d){return d.type==="checkbox"?d.checked===!0:d.value==null?"":d.value}function f(d,p){if(Q(d)||!l(d))return null;const M=d.type?String(d.type).toLowerCase():"text",w={type:"input",name:d.name,label:L(d,p),value:E(d)};if(M==="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(M==="checkbox")w.type="checkbox";else if(d.tagName==="TEXTAREA")w.type="textarea";else if(h.includes(M))w.subtype=M,(M==="email"||M==="url")&&(w.validation=M);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 e=d.getAttribute("data-validation")||d.getAttribute("data-rule");e&&(w.validation=e);const m=d.getAttribute("data-error-message");m&&(w.errorMessage=m);const S=d.getAttribute("data-help");S&&(w.helpMessage=S)}return w}function P(d,p){const M=d&&d.ownerDocument||(typeof document<"u"?document:null),w=[],e=d&&d.elements?d.elements:[];for(const m of e){const S=f(m,M);S&&w.push(S)}return{...p||{},rows:w}}function C(d,p){if(!d)return null;if(d.__latticeForm)return d.__latticeForm;const M=d.ownerDocument||(typeof document<"u"?document:null),w=[],e=d.elements?d.elements:[];for(const S of e)Q(S)&&w.push(S);const m=z(d,P(d,p));d.__latticeForm=m;for(const S of w)S.parentNode!==d&&d.appendChild(S);return typeof d.addEventListener=="function"&&M&&d.addEventListener("submit",S=>{m.validate()||(S.preventDefault(),S.stopImmediatePropagation())},!0),m}const c=C}),ge("packages/modules/form/index.js",function(D,q){"use strict";Object.defineProperty(D,"registerControl",{enumerable:!0,get:function(){return P}}),Object.defineProperty(D,"createForm",{enumerable:!0,get:function(){return L}}),Object.defineProperty(D,"default",{enumerable:!0,get:function(){return C}});const z=q("packages/modules/form/styles.js").NS,Q=q("packages/modules/form/controls/registry.js").registerControl,L=q("packages/modules/form/create.js").createForm,E=q("packages/modules/form/controls/combo.js");Object.defineProperty(D,"createCombo",{enumerable:!0,get:function(){return E.createCombo}});const f=q("packages/modules/form/enhance.js");Object.defineProperty(D,"enhanceForm",{enumerable:!0,get:function(){return f.enhanceForm}});function P(c,d){if(d===null||typeof d!="object"||typeof d.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const p=typeof d.getValue=="function"?d.getValue:()=>null,M=typeof d.setValue=="function"?d.setValue:()=>{};Q(String(c),{kind:"field",custom:!0,validate:typeof d.validate=="function"?(w,e,m)=>d.validate(m,e,w):void 0,destroy:typeof d.destroy=="function"?w=>d.destroy(w):void 0,build(w,e){const m=e.doc.createElement("div");m.className=`${z}__custom`;const S={name:w.name,item:w,getValue(){return S._read?S._read():void 0},setValue(O){S._write&&S._write(O)},onChange(O){S._commit&&S._commit(O===void 0?p():O)},onInput(O){S._input&&S._input(O===void 0?p():O)}};return m.__latticeFormApi=S,d.create(m,w,S),M(m,w.value),m},read(w){return p(w)},write(w,e){M(w,e)},state(w,e){w.setAttribute("data-disabled",e.disabled===!0?"true":"false"),w.setAttribute("data-readonly",e.readOnly===!0?"true":"false")}})}const C=L});var ht=St("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=ht:typeof define=="function"&&define.amd?define(function(){return ht}):Tt.LatticeGridForm=ht})(typeof globalThis<"u"?globalThis:this);
|
|
1293
|
+
`.trim()}function E(a){const i=a&&a.documentElement;if(!i||i.getAttribute(l))return;i.setAttribute(l,"1");const r=a.createElement("style");r.textContent=L(),(a.head||a.body||i).appendChild(r)}function f(a,i){const r=i&&i.defaultView,_=r&&r.Event,u=_?new _("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};a.dispatchEvent(u)}function P(){return`f${Date.now().toString(36)}${Math.random().toString(36).slice(2,7)}`}function A(a){const i=Number(a)||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 c(a,i){if(!i||!i.length)return!0;const r=(a.name||"").toLowerCase(),_=(a.type||"").toLowerCase();return i.some(u=>{const R=String(u).trim().toLowerCase();return R.startsWith(".")?r.endsWith(R):R.endsWith("/*")?_.startsWith(R.slice(0,-1)):_===R})}function d(a){return a.length?a.length===1?a[0]:a.length===2?`${a[0]} or ${a[1]}`:`${a.slice(0,-1).join(", ")} or ${a[a.length-1]}`:""}function p(a){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"},r=String(a).trim(),_=i[r.toLowerCase()];if(_)return _;if(r.startsWith("."))return r.slice(1).toUpperCase();if(r.endsWith("/*"))return`${r.slice(0,-2)}s`;const u=r.split("/")[1];return u?u.toUpperCase():r}function M(a,i,r,_){const u=[];return i&&i.length&&u.push(d(i.map(p))),r&&u.push(a("form.file.hint.size",{size:A(r)})),_&&u.push(a(_===1?"form.file.hint.file":"form.file.hint.files",{max:String(_)})),u.join(" · ")}function C(a){return{id:a.id,name:a.name,size:a.size,type:a.type,status:a.status,progress:a.progress,message:a.message||""}}function e(a,i){const r=a.createElementNS(Q,"svg");r.setAttribute("viewBox","0 0 16 16"),r.setAttribute("focusable","false"),r.setAttribute("aria-hidden","true"),r.setAttribute("fill","none"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-width","1.5"),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round");const _=a.createElementNS("http://www.w3.org/2000/svg","path");return _.setAttribute("d",i),r.appendChild(_),r}const m=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 S(a,i){const r=/([:\w-]+)\s*=\s*("([^"]*)"|'([^']*)')/g;let _;for(;_=r.exec(i);)a.setAttribute(_[1],_[3]===void 0?_[4]:_[3])}function O(a,i){const r=/<svg\b([^>]*)>/i.exec(i);if(!r)return null;const _=a.createElementNS(Q,"svg");S(_,r[1]);const u=i.lastIndexOf("</svg"),R=u===-1?"":i.slice(r.index+r[0].length,u),ne=/<(\w+)\b([^>]*?)(\/?)>/g;let ee;for(;ee=ne.exec(R);){const J=a.createElementNS(Q,ee[1]);S(J,ee[2]),_.appendChild(J)}return _.setAttribute("aria-hidden","true"),_.setAttribute("focusable","false"),_}function H(a,i){if(a===!1)return null;if(a!=null&&typeof a=="object"&&a.nodeType){const _=a;return _.classList.add(`${h}__icon`),_.setAttribute("aria-hidden","true"),_}if(typeof a!="string"||a==="")return null;const r=m[a]?e(i,m[a]):O(i,a);return r?(r.setAttribute("class",`${h}__icon`),r):null}function v(a){const i=a.type||"";return i.startsWith("image/")?"image":i==="application/pdf"||/\.pdf$/i.test(a.name)?"document":"file"}function t(a){if(a.thumb)return a.thumb;if(!a.file||!/^image\//.test(a.type||"")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;try{a.thumb=URL.createObjectURL(a.file)}catch{a.thumb=null}return a.thumb}function y(a){if(a.thumb&&typeof URL<"u"&&typeof URL.revokeObjectURL=="function")try{URL.revokeObjectURL(a.thumb)}catch{}a.thumb=null}z("file",{kind:"field",build(a,i){const r=i.doc,_=i.t,u=a.props||{},R=Array.isArray(u.accept)?u.accept.map(b=>String(b)):[],ne=Number(u.maxSize)||0,ee=Number(u.maxFiles)||0,J=u.multiple!==!1,o=typeof u.upload=="function"?u.upload:null,I=u.dropzone!==!1,j=u.dropText!=null?String(u.dropText):_("form.file.dropText"),D=u.browseText!=null?String(u.browseText):_("form.file.browse"),te=_("form.file.dropToUpload"),V=_("form.file.addMore"),ce=_("form.file.typeNotAccepted"),le=u.hint!=null&&u.hint!==""?String(u.hint):M(_,R,ne,ee);E(r);const re=r.createElement("div");re.className=h;const Z={accept:R,maxSize:ne,maxFiles:ee,multiple:J,upload:o,dropText:j,browse:D,dropToUpload:te,addMore:V,typeNotAccepted:ce,entries:[],controllers:new Map,disabled:!1,readOnly:!1,dropzone:I,input:null,zone:null,list:null,live:null,titleRest:null,browseEl:null,compactText:null};re.__latFile=Z;const g=r.createElement("input");g.type="file",g.className=`${h}__input`,g.tabIndex=-1,g.setAttribute("aria-hidden","true"),J&&(g.multiple=!0),R.length&&(g.accept=R.join(",")),re.appendChild(g),Z.input=g;const x=r.createElement("div");x.className=`${h}__zone`,x.setAttribute("role","button"),x.tabIndex=0,x.setAttribute("aria-label",`${j} ${D}`);const N=u.icon==null?e(r,m.upload):H(u.icon,r);N&&(u.icon==null&&N.setAttribute("class",`${h}__icon`),x.appendChild(N));const F=r.createElement("span");F.className=`${h}__title`;const G=r.createElement("span");G.className=`${h}__title-rest`,G.textContent=j,F.appendChild(G);const U=r.createElement("button");U.type="button",U.className=`${h}__browse`,U.tabIndex=-1,U.textContent=D,F.appendChild(U),x.appendChild(F),Z.titleRest=G,Z.browseEl=U;const K=r.createElement("span");if(K.className=`${h}__drop`,K.textContent=te,x.appendChild(K),le){const b=r.createElement("span");b.className=`${h}__hint`,b.textContent=le,x.appendChild(b)}const $=r.createElement("span");$.className=`${h}__compact`,$.appendChild(e(r,m.upload));const k=r.createElement("span");k.className=`${h}__compact-text`,k.textContent=V,$.appendChild(k),x.appendChild($),Z.compactText=k,re.appendChild(x),Z.zone=x;const s=r.createElement("ul");s.className=`${h}__list`,s.setAttribute("role","list"),s.hidden=!0,re.appendChild(s),Z.list=s;const w=r.createElement("div");return w.className=`${h}__live`,w.setAttribute("role","status"),w.setAttribute("aria-live","polite"),re.appendChild(w),Z.live=w,re.__latAnnounce=b=>{Z.live&&(Z.live.textContent="",Z.live.textContent=b)},re.__latDragState=b=>{Z.zone.classList.toggle("is-dragover",b==="over"),Z.zone.classList.toggle("is-invalid",b==="invalid"),b==="none"?(Z.titleRest.textContent=Z.dropText,Z.browseEl.hidden=!1,Z.compactText.textContent=Z.addMore):b==="over"?(Z.titleRest.textContent=Z.dropToUpload,Z.browseEl.hidden=!0,Z.compactText.textContent=Z.dropToUpload):(Z.titleRest.textContent=Z.typeNotAccepted,Z.browseEl.hidden=!0,Z.compactText.textContent=Z.typeNotAccepted)},re.__latPaint=()=>{const b=Z.disabled||Z.readOnly||!Z.dropzone;Z.zone.hidden=b,Z.zone.tabIndex=b?-1:0,b?Z.zone.setAttribute("aria-disabled","true"):Z.zone.removeAttribute("aria-disabled"),Z.input.disabled=b;const T=Z.entries.length>0;Z.zone.classList.toggle("is-compact",T),Z.zone.setAttribute("aria-label",T?Z.addMore:`${Z.dropText} ${Z.browse}`),s.hidden=!Z.entries.length,s.tabIndex=Z.readOnly&&!Z.disabled?0:-1,Z.entries.some(ie=>ie.status==="rejected")?re.setAttribute("aria-invalid","true"):re.removeAttribute("aria-invalid"),s.textContent="";for(const ie of Z.entries){const oe=r.createElement("li");oe.className=`${h}__item is-${ie.status}`,oe.setAttribute("data-id",ie.id),oe.setAttribute("role","listitem");const pe=t(ie);if(pe){const de=r.createElement("img");de.className=`${h}__item-thumb`,de.src=pe,de.alt="",oe.appendChild(de)}else{const de=e(r,m[v(ie)]);de.setAttribute("class",`${h}__item-icon`),oe.appendChild(de)}const be=r.createElement("div");be.className=`${h}__item-main`,oe.appendChild(be);const je=r.createElement("div");je.className=`${h}__item-row`,be.appendChild(je);const ke=r.createElement("span");ke.className=`${h}__item-name`,ke.textContent=ie.name,ke.title=ie.name,je.appendChild(ke);const Se=r.createElement("span");Se.className=`${h}__item-size`,Se.textContent=A(ie.size),je.appendChild(Se);const Ae=r.createElement("span");if(Ae.className=`${h}__item-state`,ie.status==="uploading"){const de=r.createElement("span");de.className=`${h}__item-pct`,de.textContent=`${ie.progress}%`,Ae.appendChild(de)}else ie.status==="done"?Ae.appendChild(e(r,m.check)):(ie.status==="error"||ie.status==="rejected")&&Ae.appendChild(e(r,m.warn));je.appendChild(Ae);const Oe=r.createElement("button");if(Oe.type="button",Oe.className=`${h}__remove`,Oe.setAttribute("aria-label",`${_("form.file.remove")} ${ie.name}`),Oe.title=_("form.file.remove"),Oe.appendChild(e(r,m.xmark)),Oe.setAttribute("data-remove",ie.id),Oe.disabled=Z.disabled||Z.readOnly,je.appendChild(Oe),ie.status==="uploading"){const de=r.createElement("span");de.className=`${h}__item-bar`,de.setAttribute("role","progressbar"),de.setAttribute("aria-valuemin","0"),de.setAttribute("aria-valuemax","100"),de.setAttribute("aria-valuenow",String(ie.progress));const Ce=r.createElement("span");Ce.className=`${h}__item-fill`,Ce.style.width=`${ie.progress}%`,de.appendChild(Ce),be.appendChild(de)}if(ie.message){const de=r.createElement("span");if(de.className=`${h}__item-message`,de.appendChild(r.createTextNode(ie.message)),ie.status==="error"){de.appendChild(r.createTextNode(" "));const Ce=r.createElement("button");Ce.type="button",Ce.className=`${h}__retry`,Ce.textContent=_("form.file.retry"),Ce.setAttribute("data-retry",ie.id),Ce.disabled=Z.disabled||Z.readOnly,de.appendChild(Ce)}be.appendChild(de)}s.appendChild(oe)}},re.__latUpload=b=>{if(!Z.upload){b.status="done",b.progress=100,re.__latPaint();return}b.status="uploading",b.progress=0,b.message="";let T=null;typeof AbortController<"u"&&(T=new AbortController,Z.controllers.set(b.id,T));const Y=T?T.signal:void 0,ie=pe=>{b.progress=Math.max(0,Math.min(100,Number(pe)||0)),b.status="uploading",re.__latPaint()};let oe;try{oe=Z.upload(b.file,{onProgress:ie,signal:Y})}catch(pe){oe=Promise.reject(pe)}oe&&typeof oe.then=="function"&&oe.then(()=>{Z.controllers.delete(b.id),b.status="done",b.progress=100,re.__latPaint(),re.__latAnnounce(_("form.file.uploaded",{name:b.name})),f(re,i.doc)},pe=>{Z.controllers.delete(b.id),b.status="error",b.message=pe&&pe.message?String(pe.message):_("form.file.uploadFailed"),re.__latPaint(),re.__latAnnounce(_("form.file.failed",{name:b.name})),f(re,i.doc)})},re.__latTake=b=>{const T=[...b||[]];if(!T.length||Z.disabled||Z.readOnly)return;const Y=Z.multiple?T:T.slice(0,1),ie=[],oe=[];let pe=Z.maxFiles?Math.max(0,Z.maxFiles-Z.entries.length):1/0;for(const be of Y){if(pe<=0){oe.push({file:be,reason:"count"});continue}if(Z.maxSize&&be.size>Z.maxSize){oe.push({file:be,reason:"size"});continue}if(!c(be,Z.accept)){oe.push({file:be,reason:"type"});continue}ie.push({id:P(),file:be,name:be.name,size:be.size,type:be.type,status:"selected",progress:0,message:""}),pe-=1}if(ie.length){Z.multiple||(Z.entries=[]),Z.entries.push(...ie),re.__latPaint(),f(re,i.doc),re.__latAnnounce(ie.length===1?_("form.file.addedOne"):_("form.file.added",{count:String(ie.length)}));for(const be of ie)re.__latUpload(be)}for(const be of oe){const je=be.reason==="size"?_("form.file.rejected.size",{size:A(Z.maxSize)}):be.reason==="type"?_("form.file.rejected.type"):_("form.file.rejected.count",{max:String(Z.maxFiles)});Z.entries.push({id:P(),file:be.file,name:be.file.name,size:be.file.size,type:be.file.type,status:"rejected",progress:0,message:je}),re.__latAnnounce(je)}re.__latPaint()},re.__latRemove=b=>{const T=Z.controllers.get(b);T&&(T.abort(),Z.controllers.delete(b));const Y=Z.entries.find(ie=>ie.id===b);Y&&y(Y),Z.entries=Z.entries.filter(ie=>ie.id!==b),re.__latPaint(),f(re,i.doc)},re.__latRetry=b=>{if(Z.disabled||Z.readOnly)return;const T=Z.entries.find(Y=>Y.id===b);!T||!T.file||T.status==="rejected"||(re.__latUpload(T),f(re,i.doc))},re.__latClick=b=>{if(Z.disabled||Z.readOnly)return;const T=b.target&&b.target.closest?b.target:null,Y=T&&T.closest?T.closest("[data-remove]"):null;if(Y&&re.contains(Y)){re.__latRemove(Y.getAttribute("data-remove"));return}const ie=T&&T.closest?T.closest("[data-retry]"):null;if(ie&&re.contains(ie)){re.__latRetry(ie.getAttribute("data-retry"));return}T&&T.closest&&T.closest(`.${h}__zone`)&&Z.input.click()},re.__latKeydown=b=>{Z.disabled||Z.readOnly||(b.key==="Enter"||b.key===" "||b.key==="Spacebar")&&b.target===Z.zone&&(b.preventDefault(),Z.input.click())},re.__latChange=()=>{re.__latTake(Z.input.files),Z.input.value=""},re.__latDragKind=b=>{if(!Z.accept.length)return"over";const T=b.dataTransfer;if(!T||!T.types||!T.types.length)return"over";const Y=Array.from(T.types);return Y.includes("Files")?"over":Y.every(ie=>!c({name:"",type:ie},Z.accept))?"invalid":"over"},re.__latDrag=b=>{if(!(Z.disabled||Z.readOnly)){if(b.type==="dragenter"||b.type==="dragover"){b.preventDefault(),re.__latDragState(re.__latDragKind(b));return}if(b.type==="dragleave"){if(b.relatedTarget&&Z.zone.contains(b.relatedTarget))return;re.__latDragState("none");return}b.type==="drop"&&(b.preventDefault(),re.__latDragState("none"),re.__latTake(b.dataTransfer&&b.dataTransfer.files))}},re.__latPaste=b=>{if(Z.disabled||Z.readOnly||!b.clipboardData)return;const T=[...b.clipboardData.files||[]];T.length&&(b.preventDefault(),re.__latTake(T))},g.addEventListener("change",re.__latChange),re.addEventListener("click",re.__latClick),re.addEventListener("keydown",re.__latKeydown),re.addEventListener("paste",re.__latPaste),I&&["dragenter","dragover","dragleave","drop"].forEach(b=>re.addEventListener(b,re.__latDrag)),re.__latPaint(),re},read(a){const i=a.__latFile;return i?i.entries.filter(r=>r.status!=="rejected").map(C):[]},write(a,i){const r=a.__latFile;if(!r)return;const _=Array.isArray(i)?i:[],u=r.entries.filter(R=>R.status==="rejected");for(const R of r.entries)u.includes(R)||y(R);r.entries=u;for(const R of _)r.entries.push({id:R&&R.id?String(R.id):P(),file:R&&R.file?R.file:null,name:R&&R.name!=null?String(R.name):"",size:R&&R.size!=null?Number(R.size):0,type:R&&R.type!=null?String(R.type):"",status:R&&R.status?String(R.status):"done",progress:R&&R.progress!=null?Number(R.progress):100,message:R&&R.message?String(R.message):""});a.__latPaint&&a.__latPaint()},state(a,i){const r=a.__latFile;r&&(r.disabled=i.disabled===!0,r.readOnly=i.readOnly===!0,r.disabled?a.setAttribute("aria-disabled","true"):a.removeAttribute("aria-disabled"),r.readOnly?a.setAttribute("aria-readonly","true"):a.removeAttribute("aria-readonly"),a.__latPaint&&a.__latPaint())},validate(a,i,r){const _=a.__latFile;if(!_)return null;const u=_.entries.find(R=>R.status==="rejected");return u&&u.message&&(!Array.isArray(r)||r.length===0)?u.message:_.maxFiles&&Array.isArray(r)&&r.length>_.maxFiles?`Too many files (max ${_.maxFiles})`:null}})}),ge("packages/dom/src/editors/richtext-icons.js",function(B,q){"use strict";Object.defineProperty(B,"TOOL_GLYPHS",{enumerable:!0,get:function(){return h}}),Object.defineProperty(B,"letterGlyph",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(B,"toolGlyph",{enumerable:!0,get:function(){return l}});const n="http://www.w3.org/2000/svg",z=Object.freeze({bold:{char:"B",weight:"700"},italic:{char:"I",style:"italic"},underline:{char:"U",decoration:"underline"},strike:{char:"S",decoration:"line-through"}}),h=Object.freeze({color:"M8 2.5l4 5.5a4 4 0 0 1-8 0zM4.5 12.5h7",alignLeft:"M3 4h10M3 8h6M3 12h10",alignCenter:"M3 4h10M5 8h6M3 12h10",alignRight:"M3 4h10M7 8h6M3 12h10",ul:"M3 5.5h.01M3 9.5h.01M3 13.5h.01M6 5.5h7M6 9.5h7M6 13.5h7",ol:"M2.5 4.5h.01M2.5 8.5h.01M2.5 12.5h.01M5 4.5h8M5 8.5h8M5 12.5h8",outdent:"M3 4h8M3 8h5M3 12h8M8 3v2M8 11v2",indent:"M5 4h8M5 8h5M5 12h8M10 3v2M10 11v2",link:"M6.5 9.5a3 3 0 0 0 3 3l2-2a3 3 0 0 0-3-3M9.5 6.5a3 3 0 0 0-3-3l-2 2a3 3 0 0 0 3 3",image:"M2 3h12v10H2zM5.5 11l2.5-3 2 2 1.5-1.5 2 2.5M5.5 6a.8.8 0 1 0 0 1.6.8.8 0 0 0 0-1.6z",clear:"M5 4h9M6 4l-.5 8a2 2 0 0 1-2 1.8A2 2 0 0 1 1.5 12L1 4M4 4V2.5h8V4M6 7v3M9.5 7v3",source:"M6 4L2.5 8 6 12M10 4l3.5 4L10 12",undo:"M3 7h6a3.5 3.5 0 0 1 0 7H5M3 7l2-2M3 7l2 2",redo:"M13 7H7a3.5 3.5 0 0 0 0 7h4M13 7l-2-2M13 7l-2 2"});function Q(L,E){const f=z[E],P=L.createElementNS(n,"svg");P.setAttribute("viewBox","0 0 16 16"),P.setAttribute("width","16"),P.setAttribute("height","16"),P.setAttribute("focusable","false"),P.setAttribute("aria-hidden","true");const A=L.createElementNS(n,"text");return A.setAttribute("x","8"),A.setAttribute("y","12"),A.setAttribute("text-anchor","middle"),A.style.fontSize="12px",A.style.fill="currentColor",A.style.fontFamily='system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',f.weight&&(A.style.fontWeight=f.weight),f.style&&(A.style.fontStyle=f.style),f.decoration&&(A.style.textDecoration=f.decoration),A.textContent=f.char,P.appendChild(A),P}function l(L,E){const f=L.createElementNS(n,"svg");f.setAttribute("viewBox","0 0 16 16"),f.setAttribute("focusable","false"),f.setAttribute("aria-hidden","true"),f.setAttribute("fill","none"),f.setAttribute("stroke","currentColor"),f.setAttribute("stroke-width","1.5"),f.setAttribute("stroke-linecap","round"),f.setAttribute("stroke-linejoin","round");const P=L.createElementNS(n,"path");return P.setAttribute("d",h[E]),f.appendChild(P),f}}),ge("packages/modules/form/controls/richtext.js",function(B,q){"use strict";Object.defineProperty(B,"sanitize",{enumerable:!0,get:function(){return A}}),Object.defineProperty(B,"escapeHtml",{enumerable:!0,get:function(){return l}});const z=q("packages/modules/form/controls/registry.js").registerControl,h=q("packages/dom/src/editors/sanitize-richtext.js"),Q=h.sanitizeRichText,l=h.escapeHtml,L=q("packages/dom/src/editors/richtext-icons.js"),E=L.letterGlyph,f=L.toolGlyph,P=L.TOOL_GLYPHS,A=Q,c=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"]}),d=Object.freeze(["bold","italic","underline","strike"]),p=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 M(H){return{bold:{cmd:"bold",state:"bold"},italic:{cmd:"italic",state:"italic"},underline:{cmd:"underline",state:"underline"},strike:{cmd:"strikeThrough",state:"strikeThrough"},alignLeft:{cmd:"justifyLeft",state:"justifyLeft"},alignCenter:{cmd:"justifyCenter",state:"justifyCenter"},alignRight:{cmd:"justifyRight",state:"justifyRight"},ul:{cmd:"insertUnorderedList",state:"insertUnorderedList"},ol:{cmd:"insertOrderedList",state:"insertOrderedList"},outdent:{cmd:"outdent"},indent:{cmd:"indent"},clear:{cmd:"removeFormat"}}[H]||null}const C=Object.freeze(["#1f2937","#6b7280","#dc2626","#f59e0b","#16a34a","#2563eb","#7c3aed","#db2777","#0f766e","#ffffff"]),e=Object.freeze([["p","Paragraph"],["h1","Heading 1"],["h2","Heading 2"],["h3","Heading 3"],["blockquote","Quote"]]);function m(H){return Array.isArray(H)?H.map(v=>String(v)):c[H]||c.basic}function S(H){return new Promise((v,t)=>{const y=new FileReader;y.onload=()=>v(y.result),y.onerror=()=>t(y.error||new Error("read failed")),y.readAsDataURL(H)})}z("richtext",{kind:"field",build(H,v){const t=v.doc,y=H.props||{},a=m(y.toolbar),i=Array.isArray(y.headings)?y.headings:e,r=Array.isArray(y.colors)?y.colors:C,_=y.linkTarget!=null?String(y.linkTarget):"_blank",u=Number(y.minHeight)||160,R=Number(y.maxHeight)||0,ne=Number(y.maxImageSize)||0,ee=typeof y.onImage=="function"?y.onImage:null,J=y.sanitizePaste!==!1,o=y.allowedTags,I=y.placeholder!=null?String(y.placeholder):v.t("form.richtext.placeholder"),j=t.createElement("div");j.className="lat-form__richtext";const D={toolbar:a,headings:i,colors:r,linkTarget:_,minHeight:u,maxHeight:R,maxImageSize:ne,onImage:ee,sanitizePaste:J,allowedTags:o,placeholder:I,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};j.__latRt=D;const te=A(t,H.value==null?"":String(H.value),o,{});D.history={stack:[te],index:0},D.lastValue=te;const V=t.createElement("div");V.className="lat-form__richtext-toolbar",V.setAttribute("role","toolbar"),V.setAttribute("aria-label",v.t("form.richtext.formatting")),D.toolbarEl=V;for(const g of a){if(g==="|"){const N=t.createElement("span");N.className="lat-form__richtext-sep",N.setAttribute("role","separator"),V.appendChild(N);continue}if(g==="heading"){const N=t.createElement("select");N.className="lat-form__richtext-select",N.title=v.t(p.heading),N.setAttribute("aria-label",v.t(p.heading)),N.setAttribute("data-item","heading");for(const[F,G]of i){const U=t.createElement("option");U.value=F,U.textContent=String(G),N.appendChild(U)}D.buttons.heading=N,V.appendChild(N);continue}const x=t.createElement("button");x.type="button",x.className="lat-form__richtext-btn",x.setAttribute("data-item",g),x.title=v.t(p[g]||g),x.setAttribute("aria-label",v.t(p[g]||g)),g==="lowercase"||g==="uppercase"?(x.className+=" lat-form__richtext-btntext",x.textContent=v.t(g==="lowercase"?"form.richtext.lowercaseText":"form.richtext.uppercaseText")):d.includes(g)?x.appendChild(E(t,g)):P[g]?x.appendChild(f(t,g)):x.textContent=g,D.buttons[g]=x,V.appendChild(x)}j.appendChild(V);const ce=t.createElement("div");ce.className="lat-form__richtext-popover",ce.hidden=!0,j.appendChild(ce),D.popover=ce;const le=t.createElement("div");le.className="lat-form__richtext-editor",le.contentEditable=H.readOnly||H.disabled?"false":"true",le.setAttribute("role","textbox"),le.setAttribute("aria-multiline","true"),le.setAttribute("aria-label",H.label!=null?String(H.label):v.t("form.richtext.richText")),le.setAttribute("data-placeholder",I),le.style.minHeight=`${u}px`,R&&(le.style.maxHeight=`${R}px`),le.innerHTML=te,j.appendChild(le),D.editor=le;const re=t.createElement("textarea");re.className="lat-form__richtext-source",re.setAttribute("aria-label",v.t("form.richtext.source")),re.spellcheck=!1,re.hidden=!0,j.appendChild(re),D.source=re;const Z=t.createElement("input");return Z.type="file",Z.accept="image/*",Z.className="lat-form__richtext-file",Z.tabIndex=-1,Z.setAttribute("aria-hidden","true"),j.appendChild(Z),D.fileInput=Z,j.__latSave=()=>{const g=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;g&&g.rangeCount&&le.contains(g.anchorNode)&&(D.range=g.getRangeAt(0).cloneRange())},j.__latRestore=()=>{if(!D.range)return;const g=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(g)try{g.removeAllRanges(),g.addRange(D.range)}catch{}},j.__latRefresh=()=>{Object.entries(D.buttons).forEach(([g,x])=>{const N=M(g);if(N&&N.state&&x.tagName==="BUTTON"){let F=!1;try{F=t.queryCommandState(N.state)}catch{F=!1}x.setAttribute("aria-pressed",F?"true":"false"),x.classList.toggle("is-active",F)}if(g==="heading"&&x.tagName==="SELECT"){let F="";try{F=String(t.queryCommandValue("formatBlock")||"").toLowerCase()}catch{F=""}const G=[...x.options].some(U=>U.value===F);x.value=G?F:"p"}})},j.__latExec=(g,x)=>{le.focus(),j.__latRestore();try{t.execCommand("styleWithCSS",!1,g==="foreColor")}catch{}try{t.execCommand(g,!1,x===void 0?null:x)}catch{}j.__latAfterEdit()},j.__latAfterEdit=()=>{const g=le.innerHTML,x=D.history;x.stack[x.index]!==g&&(x.stack=x.stack.slice(0,x.index+1),x.stack.push(g),x.stack.length>200&&x.stack.shift(),x.index=x.stack.length-1),j.__latRefresh();const N=A(t,g,o,{}),F=D.lastValue==null?A(t,x.stack[0]||"",o,{}):D.lastValue;D.lastValue=N,O(j,t,F,N)},j.__latCaretEnd=()=>{const g=t.createRange();g.selectNodeContents(le),g.collapse(!1);const x=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;x&&(x.removeAllRanges(),x.addRange(g)),D.range=g.cloneRange()},j.__latUndo=()=>{const g=D.history;if(g.index<=0)return;g.index-=1,le.innerHTML=g.stack[g.index],j.__latCaretEnd(),j.__latRefresh();const x=A(t,le.innerHTML,o,{});D.lastValue=x,O(j,t,D.lastValue,x)},j.__latRedo=()=>{const g=D.history;if(g.index>=g.stack.length-1)return;g.index+=1,le.innerHTML=g.stack[g.index],j.__latCaretEnd(),j.__latRefresh();const x=A(t,le.innerHTML,o,{});D.lastValue=x,O(j,t,D.lastValue,x)},j.__latClosePopover=()=>{ce.hidden=!0,ce.textContent=""},j.__latOpenPopover=(g,x)=>{if(ce.textContent="",ce.hidden=!1,ce.style.left=`${Math.max(0,x.offsetLeft)}px`,g==="color"){const N=t.createElement("div");N.className="lat-form__richtext-swatches";for(const K of r){const $=t.createElement("button");$.type="button",$.className="lat-form__richtext-swatch",$.title=String(K),$.style.background=String(K),$.setAttribute("data-color",String(K)),N.appendChild($)}ce.appendChild(N);const F=t.createElement("div");F.className="lat-form__richtext-poprow";const G=t.createElement("input");G.type="color",G.className="lat-form__richtext-colorinput",G.setAttribute("aria-label",v.t("form.richtext.colorCustom")),G.addEventListener("input",()=>{j.__latRestore(),j.__latExec("foreColor",G.value)});const U=t.createElement("button");U.type="button",U.className="lat-form__richtext-popbtn",U.textContent=v.t("form.richtext.colorRemove"),U.addEventListener("click",()=>{j.__latRestore(),j.__latExec("foreColor","inherit"),j.__latClosePopover()}),F.appendChild(G),F.appendChild(U),ce.appendChild(F),N.addEventListener("click",K=>{const $=K.target&&K.target.closest?K.target.closest("[data-color]"):null;$&&(j.__latRestore(),j.__latExec("foreColor",$.getAttribute("data-color")),j.__latClosePopover())})}else{const N=j.__latClosestLink(),F=t.createElement("input");F.type="url",F.className="lat-form__richtext-linkinput",F.placeholder=v.t("form.richtext.linkPlaceholder"),F.value=N&&N.getAttribute("href")||"",F.setAttribute("aria-label",v.t("form.richtext.linkLabel"));const G=()=>{const $=F.value.trim();if(j.__latRestore(),!$){j.__latExec("unlink"),j.__latClosePopover();return}if(!/^(https?:\/\/|mailto:|tel:|\/)/i.test($)){F.classList.add("is-invalid");return}if(N)N.setAttribute("href",$),j.__latAfterEdit();else{const k=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(k&&k.isCollapsed){const s=_?` target="${l(_)}" rel="noopener noreferrer"`:"";j.__latExec("insertHTML",A(t,`<a href="${l($)}"${s}>${l($)}</a>`,o,{}))}else{j.__latExec("createLink",$);const s=j.__latClosestLink();s&&_&&(s.setAttribute("target",_),s.setAttribute("rel","noopener noreferrer"))}}j.__latClosePopover()};F.addEventListener("keydown",$=>{$.key==="Enter"&&($.preventDefault(),G()),$.key==="Escape"&&j.__latClosePopover()});const U=t.createElement("div");U.className="lat-form__richtext-poprow",U.appendChild(F);const K=t.createElement("button");if(K.type="button",K.className="lat-form__richtext-popbtn",K.textContent=N?v.t("form.richtext.linkUpdate"):v.t("form.richtext.linkAdd"),K.addEventListener("click",G),U.appendChild(K),N){const $=t.createElement("button");$.type="button",$.className="lat-form__richtext-popbtn",$.textContent=v.t("form.richtext.linkRemove"),$.addEventListener("click",()=>{j.__latRestore(),j.__latExec("unlink"),j.__latClosePopover()}),U.appendChild($)}ce.appendChild(U),setTimeout(()=>F.focus(),0)}},j.__latClosestLink=()=>{const g=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(!g||g.rangeCount===0)return null;let x=g.getRangeAt(0).commonAncestorContainer;x.nodeType===3&&(x=x.parentNode);const N=x.closest?x.closest("a"):null;return N&&le.contains(N)?N:null},j.__latRun=g=>{if(D.disabled||D.readOnly)return;g!=="source"&&D.sourceMode&&j.__latToggleSource(!1),j.__latRestore();const x=M(g);if(g==="color"||g==="link"){j.__latOpenPopover(g,D.buttons[g]);return}if(g==="undo"){j.__latUndo();return}if(g==="redo"){j.__latRedo();return}if(g==="source"){j.__latToggleSource();return}if(g==="image"){D.fileInput.click();return}if(g==="lowercase"||g==="uppercase"){j.__latCase(g==="uppercase");return}if(x){j.__latExec(x.cmd);return}},j.__latCase=g=>{const x=t.defaultView&&t.defaultView.getSelection?t.defaultView.getSelection():null;if(!x||x.rangeCount===0||x.isCollapsed)return;const N=x.toString();j.__latExec("insertText",g?N.toUpperCase():N.toLowerCase())},j.__latToggleSource=g=>{const x=g===void 0?!D.sourceMode:!!g;if(x===D.sourceMode)return;x?(D.source.value=A(t,le.innerHTML,o,{}).replace(/></g,`>
|
|
1294
|
+
<`),le.hidden=!0,re.hidden=!1,re.focus()):(D.sourceDirty&&(le.innerHTML=A(t,re.value,o,{}),D.sourceDirty=!1),re.hidden=!0,le.hidden=!1,le.focus()),D.sourceMode=x;const N=D.buttons.source;N&&(N.classList.toggle("is-active",x),N.setAttribute("aria-pressed",x?"true":"false")),Object.entries(D.buttons).forEach(([F,G])=>{F!=="source"&&(G.disabled=x)}),x||j.__latAfterEdit()},j.__latInsertImage=async g=>{if(!/^image\//.test(g.type)||ne&&g.size>ne)return;let x;try{x=ee?await ee(g):await S(g)}catch{return}x&&j.__latExec("insertHTML",A(t,`<img src="${l(x)}" alt="${l(g.name)}" style="max-width:100%">`,o,{}))},j.__latToolbarClick=g=>{const x=g.target&&g.target.closest?g.target.closest("[data-item]"):null;!x||!V.contains(x)||x.tagName==="SELECT"||(g.preventDefault(),j.__latRun(x.getAttribute("data-item")))},j.__latToolbarDown=g=>{g.target&&g.target.closest&&g.target.closest(".lat-form__richtext-btn")&&g.preventDefault()},j.__latSelect=g=>{g.target&&g.target.getAttribute&&g.target.getAttribute("data-item")==="heading"&&(j.__latRestore(),j.__latExec("formatBlock",g.target.value))},j.__latInput=()=>{j.__latAfterEdit()},j.__latKey=g=>{if(!(g.ctrlKey||g.metaKey))return;const x=g.key.toLowerCase();x==="z"&&!g.shiftKey?(g.preventDefault(),j.__latUndo()):x==="y"||x==="z"&&g.shiftKey?(g.preventDefault(),j.__latRedo()):x==="k"&&D.buttons.link&&(g.preventDefault(),j.__latRun("link"))},j.__latPaste=g=>{if(!J||!g.clipboardData)return;const x=g.clipboardData.getData("text/html"),N=g.clipboardData.getData("text/plain");if(!x&&!N)return;g.preventDefault();const F=x?A(t,x,o,{stripStyles:!0}):l(N).replace(/\r?\n/g,"<br>");j.__latExec("insertHTML",F)},j.__latDrop=g=>{if(!J||!g.dataTransfer)return;const x=g.dataTransfer.files;if(x&&x.length){g.preventDefault();const U=x[0];U&&j.__latInsertImage(U);return}const N=g.dataTransfer.getData("text/html"),F=g.dataTransfer.getData("text/plain");if(!N&&!F)return;g.preventDefault();const G=N?A(t,N,o,{stripStyles:!0}):l(F).replace(/\r?\n/g,"<br>");j.__latExec("insertHTML",G)},j.__latBeforeInput=g=>{J&&(g.inputType==="insertFromDrop"||g.inputType==="insertFromPaste")&&g.preventDefault()},j.__latSelChange=()=>{t.activeElement===le&&(j.__latSave(),j.__latRefresh())},j.__latFile=()=>{const g=Z.files&&Z.files[0];Z.value="",g&&j.__latInsertImage(g)},j.__latSourceInput=()=>{D.sourceDirty=!0},j.__latDocClick=g=>{ce&&!ce.hidden&&!ce.contains(g.target)&&!V.contains(g.target)&&j.__latClosePopover()},V.addEventListener("click",j.__latToolbarClick),V.addEventListener("mousedown",j.__latToolbarDown),V.addEventListener("change",j.__latSelect),le.addEventListener("input",j.__latInput),le.addEventListener("keydown",j.__latKey),le.addEventListener("paste",j.__latPaste),le.addEventListener("drop",j.__latDrop),le.addEventListener("beforeinput",j.__latBeforeInput),Z.addEventListener("change",j.__latFile),re.addEventListener("input",j.__latSourceInput),t.addEventListener&&(t.addEventListener("selectionchange",j.__latSelChange),t.addEventListener("mousedown",j.__latDocClick,!0)),j},read(H){const v=H.__latRt;return v?v.sourceMode?A(H.ownerDocument,v.source.value,v.allowedTags,{}):A(H.ownerDocument,v.editor.innerHTML,v.allowedTags,{}):""},write(H,v){const t=H.__latRt;if(!t)return;const y=H.ownerDocument,a=A(y,v==null?"":String(v),t.allowedTags,{});t.sourceMode&&(t.source.value=a),t.editor.innerHTML=a,t.history={stack:[a],index:0},t.lastValue=a},state(H,v){const t=H.__latRt;t&&(t.disabled=v.disabled===!0,t.readOnly=v.readOnly===!0,t.editor.contentEditable=t.disabled||t.readOnly?"false":"true",t.editor.tabIndex=t.readOnly?0:-1,t.readOnly?t.editor.setAttribute("aria-readonly","true"):t.editor.removeAttribute("aria-readonly"),t.disabled?H.setAttribute("aria-disabled","true"):H.removeAttribute("aria-disabled"),t.readOnly?H.setAttribute("aria-readonly","true"):H.removeAttribute("aria-readonly"),Object.values(t.buttons).forEach(y=>{y.disabled=t.disabled||t.readOnly}))}});function O(H,v,t,y){const a=v&&v.defaultView,i=a&&a.Event,r=i?new i("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};H.dispatchEvent(r)}}),ge("packages/modules/form/controls/rating.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=5,Q=Object.freeze({star:"M8 1.5l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.2l-3.8 2 .7-4.3-3.1-3 4.3-.6z",heart:"M8 14s-5-3.2-5-6.3A2.9 2.9 0 0 1 8 5.7 2.9 2.9 0 0 1 13 7.7C13 10.8 8 14 8 14z"});function l(p){const M=String(p??"");return Object.hasOwn(Q,M)?M:"star"}function L(p,M,C){return Math.min(Math.max(p,M),C)}function E(p,M){const C=M&&M.defaultView,e=C&&C.Event,m=e?new e("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};p.dispatchEvent(m)}function f(p,M,C){const e=p.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","0 0 16 16"),e.setAttribute("focusable","false"),e.setAttribute("aria-hidden","true"),C?e.setAttribute("fill","currentColor"):(e.setAttribute("fill","none"),e.setAttribute("stroke","currentColor"),e.setAttribute("stroke-width","1.5"),e.setAttribute("stroke-linejoin","round"));const m=p.createElementNS("http://www.w3.org/2000/svg","path");return m.setAttribute("d",Q[M]),e.appendChild(m),e}function P(p,M,C){const e=Number(p),m=Number.isFinite(e)?e:0,S=C?Math.round(m*2)/2:Math.round(m);return L(S,0,M)}function A(p,M){return Math.min(1,Math.max(0,p-(M-1)))}z("rating",{kind:"field",build(p,M){const C=M.doc,e=p.props||{},m=Math.max(1,Math.floor(Number(p.max!=null?p.max:e.max)||h)),S=e.allowHalf===!0,O=e.allowClear!==!1,H=e.showValue===!0,v=Array.isArray(e.labels)?e.labels:null,t=l(e.icons&&e.icons.filled?e.icons.filled:e.icon),y=l(e.icons&&e.icons.empty?e.icons.empty:`${t}-outline`),a=e.size==="lg"||e.size==="sm"?e.size:"md",i=C.createElement("div");i.className=`lat-form__rating lat-form__rating--${a}`,i.setAttribute("role","slider"),i.setAttribute("aria-valuemin","0"),i.setAttribute("aria-valuemax",String(m)),i.setAttribute("aria-label",p.label!=null?String(p.label):M.t("form.rating"));const r={value:P(p.value,m,S),max:m,allowHalf:S,allowClear:O,labels:v,showValue:H,filledName:t,emptyName:y,items:[],fills:[],valueEl:null};i.__latRating=r;const _=C.createElement("span");_.className="lat-form__rating-track",_.setAttribute("aria-hidden","true");for(let u=0;u<m;u++){const R=C.createElement("span");R.className="lat-form__rating-item",R.setAttribute("data-index",String(u)),v&&v[u]!=null&&v[u]!==""&&(R.title=String(v[u])),R.appendChild(f(C,y,!1));const ne=C.createElement("span");ne.className="lat-form__rating-fill",ne.setAttribute("aria-hidden","true"),ne.appendChild(f(C,t,!0)),R.appendChild(ne),_.appendChild(R),r.items.push(R),r.fills.push(ne)}if(i.appendChild(_),H){const u=C.createElement("span");u.className="lat-form__rating-value",u.setAttribute("aria-hidden","true"),i.appendChild(u),r.valueEl=u}return i.__latPaint=()=>{for(let u=0;u<r.items.length;u++){const R=A(r.value,u+1);r.items[u].setAttribute("data-fill",R>=1?"full":R>0?"half":"empty"),r.fills[u].style.width=`${(R*100).toFixed(2)}%`}i.setAttribute("aria-valuenow",String(r.value)),i.setAttribute("aria-valuetext",c(r)),r.valueEl&&(r.valueEl.textContent=d(r))},i.__latSet=u=>{r.value=P(u,m,S),i.__latPaint()},i.__latClear=()=>{r.value=0,i.__latPaint()},i.__latPick=(u,R)=>{let ne=u+1;if(S&&R&&Number.isFinite(R.clientX)){const ee=r.items[u].getBoundingClientRect();ee&&ee.width>0&&(ne=R.clientX-ee.left<ee.width/2?u+.5:u+1)}O&&ne===r.value&&(ne=0),i.__latSet(ne),E(i,M.doc)},i.addEventListener("click",u=>{if(r.disabled||r.readOnly)return;const R=u.target&&u.target.closest?u.target.closest(".lat-form__rating-item"):null;!R||!i.contains(R)||i.__latPick(Number(R.getAttribute("data-index")),u)}),i.__latKey=u=>{if(r.disabled||r.readOnly)return;const R=S?.5:1;let ne=r.value;if(u.key==="ArrowRight"||u.key==="ArrowUp")ne+=R;else if(u.key==="ArrowLeft"||u.key==="ArrowDown")ne-=R;else if(u.key==="Home")ne=0;else if(u.key==="End")ne=m;else if(u.key==="Backspace"||u.key==="Delete")ne=0;else return;u.preventDefault(),i.__latSet(ne),E(i,M.doc)},i.addEventListener("keydown",i.__latKey),i.__latPaint(),i},read(p){return p.__latRating?p.__latRating.value:0},write(p,M){p.__latRating&&(p.__latRating.value=P(M,p.__latRating.max,p.__latRating.allowHalf),p.__latPaint())},state(p,M){const C=p.__latRating;C&&(C.disabled=M.disabled===!0,C.readOnly=M.readOnly===!0,p.tabIndex=C.disabled?-1:0,C.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly"),C.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"))}});function c(p){const M=Math.round(p.value);return p.labels&&p.labels[M-1]&&p.value===M?p.labels[M-1]:`${p.value} of ${p.max}`}function d(p){return String(p.value)}}),ge("packages/modules/form/controls/stage.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl;function h(L,E){const f=E&&E.defaultView,P=f&&f.Event,A=P?new P("change",{bubbles:!0}):{type:"change",bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};L.dispatchEvent(A)}function Q(L,E){return typeof E=="number"&&Number.isFinite(E)?Math.min(Math.max(Math.round(E),0),L.length-1):typeof E=="string"?L.indexOf(E):-1}function l(L,E,f){return`${L}, ${E+1} of ${f}`}z("stage",{kind:"field",build(L,E){const f=E.doc,P=L.props||{},A=Array.isArray(P.stages)?P.stages.map(S=>String(S)):[],c=P.clickable!==!1,d=P.showIcons!==!1,p=Q(A,L.value!=null?L.value:P.current),M=Q(A,P.completed),C=f.createElement("div");C.className="lat-form__stage",C.setAttribute("role","radiogroup"),C.setAttribute("aria-label",L.label!=null?String(L.label):E.t("form.stage"));const e=[],m={stages:A,value:p>=0?A[p]:null,index:p,completed:M,clickable:c,showIcons:d,disabled:!1,readOnly:!1,focus:p>=0?p:0};C.__latStage=m;for(let S=0;S<A.length;S++){const O=f.createElement(c?"button":"span");if(O.type=c?"button":void 0,O.className="lat-form__stage-step",O.setAttribute("data-index",String(S)),c&&(O.setAttribute("role","radio"),O.setAttribute("aria-label",l(A[S],S,A.length))),d){const v=f.createElementNS("http://www.w3.org/2000/svg","svg");v.setAttribute("viewBox","0 0 16 16"),v.setAttribute("aria-hidden","true"),v.setAttribute("class","lat-form__stage-check");const t=f.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d","M3 8.5l3 3 7-7"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),v.appendChild(t),O.appendChild(v)}const H=f.createElement("span");H.className="lat-form__stage-label",H.textContent=A[S],O.appendChild(H),C.appendChild(O),e.push(O)}return C.__latPaint=()=>{for(let S=0;S<e.length;S++){const O=S===m.index,H=!O&&m.completed>=0&&S<=m.completed;e[S].setAttribute("data-state",O?"current":H?"done":"todo"),m.clickable&&(e[S].setAttribute("aria-checked",O?"true":"false"),e[S].tabIndex=m.disabled?-1:S===m.focus?0:-1)}},C.__latSelect=S=>{const O=S>=0&&S<A.length?A[S]:null;O!==m.value&&(m.index=S>=0&&S<A.length?S:-1,m.value=O,m.focus=m.index>=0?m.index:0,C.__latPaint(),h(C,E.doc))},C.__latKey=S=>{if(m.disabled||m.readOnly||!m.clickable||!A.length)return;let O=m.focus;if(S.key==="ArrowRight"||S.key==="ArrowDown")O+=1;else if(S.key==="ArrowLeft"||S.key==="ArrowUp")O-=1;else if(S.key==="Home")O=0;else if(S.key==="End")O=A.length-1;else return;S.preventDefault();const H=Math.min(Math.max(O,0),A.length-1);m.focus=H,e[H].focus(),C.__latSelect(H)},c&&(C.addEventListener("click",S=>{if(m.disabled||m.readOnly)return;const O=S.target&&S.target.closest?S.target.closest(".lat-form__stage-step"):null;if(!O||!C.contains(O))return;const H=Number(O.getAttribute("data-index"));m.focus=H,C.__latSelect(H)}),C.addEventListener("keydown",C.__latKey)),C.__latPaint(),C},read(L){return L.__latStage?L.__latStage.value:null},write(L,E){const f=L.__latStage;if(!f)return;const P=E==null?-1:Q(f.stages,E);f.index=P,f.value=P>=0?f.stages[P]:null,f.focus=P>=0?P:0,L.__latPaint()},state(L,E){const f=L.__latStage;f&&(f.disabled=E.disabled===!0,f.readOnly=E.readOnly===!0,f.readOnly?L.setAttribute("aria-readonly","true"):L.removeAttribute("aria-readonly"),f.disabled?L.setAttribute("aria-disabled","true"):L.removeAttribute("aria-disabled"),L.__latPaint())}})}),ge("packages/modules/form/controls/chips.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h="M3 8.5l3 3 7-7";function Q(E,f){const P=f&&f.defaultView,A=P&&P.Event,c=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}};E.dispatchEvent(c)}function l(E){if(typeof E=="string")return{value:E,label:E,icon:null,disabled:!1};if(E!==null&&typeof E=="object"){const f=E.value===void 0?String(E.label):E.value;return{value:f,label:E.label==null?String(f):String(E.label),icon:typeof E.icon=="string"&&E.icon!==""?E.icon:null,disabled:E.disabled===!0}}return{value:E,label:String(E),icon:null,disabled:!1}}function L(E,f,P){const A=E.createElementNS("http://www.w3.org/2000/svg","svg");A.setAttribute("viewBox","0 0 16 16"),A.setAttribute("focusable","false"),A.setAttribute("aria-hidden","true");const c=E.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",f),P?c.setAttribute("fill","currentColor"):(c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-width","2"),c.setAttribute("stroke-linecap","round"),c.setAttribute("stroke-linejoin","round")),A.appendChild(c),A}z("chips",{kind:"field",build(E,f){const P=f.doc,A=E.props||{},c=(Array.isArray(E.options)?E.options:[]).map(l),d=A.multiple===!0,p=A.allowEmpty===!0,M=A.wrap!==!1,C=E.max!=null&&Number.isFinite(Number(E.max))?Number(E.max):null,e=P.createElement("div");e.className=`lat-form__chips${M?"":" lat-form__chips--scroll"}`,e.setAttribute("role",d?"group":"radiogroup"),e.setAttribute("aria-label",E.label!=null?String(E.label):f.t("form.chips"));const m=[],S=new Set,O={options:c,multiple:d,allowEmpty:p,wrap:M,max:C,selected:S,disabled:!1,readOnly:!1,t:f.t};e.__latChips=O;for(let v=0;v<c.length;v++){const t=c[v],y=P.createElement("button");if(y.type="button",y.className="lat-form__chip",y.setAttribute("data-index",String(v)),y.disabled=t.disabled,d||y.setAttribute("role","radio"),t.icon){const i=L(P,t.icon,!0);i.setAttribute("class","lat-form__chip-icon"),y.appendChild(i)}const a=P.createElement("span");if(a.className="lat-form__chip-label",a.textContent=t.label,y.appendChild(a),d){const i=L(P,h,!1);i.setAttribute("class","lat-form__chip-check"),y.appendChild(i)}e.appendChild(y),m.push(y)}O.buttons=m,e.__latPaint=()=>{for(let v=0;v<m.length;v++){const t=c[v],y=S.has(t.value),a=m[v];a.disabled=t.disabled||O.disabled,d?(a.setAttribute("aria-pressed",y?"true":"false"),a.tabIndex=O.disabled?-1:0):(a.setAttribute("aria-checked",y?"true":"false"),a.tabIndex=O.disabled?-1:y?0:-1)}},e.__latValue=()=>{if(d)return c.filter(v=>S.has(v.value)).map(v=>v.value);for(const v of c)if(S.has(v.value))return v.value;return null},e.__latToggle=v=>{const t=c[v];if(!(!t||t.disabled||O.disabled||O.readOnly)){if(d)if(S.has(t.value))S.delete(t.value);else{if(C!=null&&S.size>=C)return;S.add(t.value)}else if(S.has(t.value))if(O.allowEmpty)S.clear();else return;else S.clear(),S.add(t.value);e.__latPaint(),Q(e,f.doc)}},e.addEventListener("click",v=>{const t=v.target&&v.target.closest?v.target.closest(".lat-form__chip"):null;!t||!e.contains(t)||e.__latToggle(Number(t.getAttribute("data-index")))}),e.__latKey=v=>{if(O.multiple||O.disabled||O.readOnly||!m.length)return;let t=-1;for(let r=0;r<m.length;r++)if(S.has(c[r].value)){t=r;break}let y=t;if(v.key==="ArrowRight"||v.key==="ArrowDown")y=t+1;else if(v.key==="ArrowLeft"||v.key==="ArrowUp")y=t-1;else if(v.key==="Home")y=0;else if(v.key==="End")y=c.length-1;else return;v.preventDefault();const a=v.key==="ArrowLeft"||v.key==="ArrowUp"?-1:1;let i=y;for(;i>=0&&i<c.length&&c[i].disabled;)i+=a;i<0||i>=c.length||(S.clear(),S.add(c[i].value),e.__latPaint(),m[i].focus(),Q(e,f.doc))},e.addEventListener("keydown",e.__latKey);const H=E.value;if(d){const v=Array.isArray(H)?H:[];for(const t of v)c.some(y=>y.value===t)&&S.add(t)}else if(H!=null&&c.some(v=>v.value===H))S.add(H);else if(!p){const v=c.find(t=>!t.disabled)||c[0];v&&S.add(v.value)}return e.__latPaint(),e},read(E){return E.__latChips?E.__latValue():null},write(E,f){const P=E.__latChips;if(P){if(P.selected.clear(),P.multiple){const A=Array.isArray(f)?f:[];for(const c of A)P.options.some(d=>d.value===c)&&P.selected.add(c)}else if(f!=null&&P.options.some(A=>A.value===f))P.selected.add(f);else if(!P.allowEmpty){const A=P.options.find(c=>!c.disabled)||P.options[0];A&&P.selected.add(A.value)}E.__latPaint()}},validate(E,f,P){const A=E.__latChips;if(!A||!A.multiple)return null;const c=Array.isArray(P)?P.length:0,d=f.min!=null&&Number.isFinite(Number(f.min))?Number(f.min):null,p=f.max!=null&&Number.isFinite(Number(f.max))?Number(f.max):null;return d!=null&&c<d?{code:"min",message:A.t("form.chips.min",{min:String(d)})}:p!=null&&c>p?{code:"max",message:A.t("form.chips.max",{max:String(p)})}:null},state(E,f){const P=E.__latChips;P&&(P.disabled=f.disabled===!0,P.readOnly=f.readOnly===!0,P.readOnly?E.setAttribute("aria-readonly","true"):E.removeAttribute("aria-readonly"),P.disabled?E.setAttribute("aria-disabled","true"):E.removeAttribute("aria-disabled"),E.__latPaint())}})}),ge("packages/modules/form/controls/otp.js",function(B,q){"use strict";const z=q("packages/modules/form/controls/registry.js").registerControl,h=6;function Q(p){const M=Math.floor(Number(p));return Number.isFinite(M)&&M>=1?M:h}function l(p){return p==="alphanumeric"?"alphanumeric":"numeric"}function L(p,M){return M==="numeric"?/^[0-9]$/.test(p):/^[A-Za-z0-9]$/.test(p)}function E(p,M){for(let C=p.length-1;C>=0;C-=1)if(L(p[C],M))return p[C];return""}function f(p,M,C){return(p==null?"":String(p)).replace(/[\s-]/g,"").split("").filter(m=>L(m,M)).slice(0,C)}function P(p,M,C){const e=M&&M.defaultView,m=e&&e.Event,S=m?new m(C,{bubbles:!0}):{type:C,bubbles:!0,cancelable:!1,defaultPrevented:!1,propagationStopped:!1,target:null,preventDefault(){this.defaultPrevented=!0},stopPropagation(){this.propagationStopped=!0}};p.dispatchEvent(S)}function A(p,M){const C=f(M,p.mode,p.length);for(let e=0;e<p.length;e+=1)p.boxes[e].value=C[e]||""}function c(p){p.complete=p.boxes.every(M=>M.value!=="")}function d(p){return p.boxes.map(M=>M.value).join("")}z("otp",{kind:"field",domEvents:["complete"],build(p,M){const C=M.doc,e=p.props||{},m=Q(e.length),S=l(p.mode!=null?p.mode:e.mode),O=e.mask===!0,H=C.createElement("div");H.className="lat-form__otp",H.setAttribute("role","group"),H.setAttribute("aria-label",p.label!=null&&p.label!==""?String(p.label):M.t("form.otp.label"));const v=[],t={length:m,mode:S,mask:O,boxes:v,complete:!1,disabled:!1,readOnly:!1};H.__latOtp=t;for(let a=0;a<m;a+=1){const i=C.createElement("input");i.type="text",i.className=`lat-form__otp-input${O?" lat-form__otp-input--masked":""}`,i.setAttribute("inputmode",S==="numeric"?"numeric":"text"),i.setAttribute("pattern",S==="numeric"?"[0-9]":"[A-Za-z0-9]"),i.setAttribute("maxlength","1"),i.setAttribute("aria-label",M.t("form.otp.digit",{n:a+1,total:m})),i.autocomplete=a===0?"one-time-code":"off",v.push(i),H.appendChild(i)}const y=()=>{if(H.__latPublishing)return;H.__latPublishing=!0;try{P(H,C,"input"),P(H,C,"change")}finally{H.__latPublishing=!1}const a=v.every(i=>i.value!=="");a&&!t.complete?(t.complete=!0,P(H,C,"complete")):!a&&t.complete&&(t.complete=!1)};return H.addEventListener("input",a=>{if(H.__latPublishing)return;a.stopImmediatePropagation();const i=a.target;if(!v.includes(i))return;i.value=E(i.value,S);const r=v.indexOf(i);i.value!==""&&r<m-1&&v[r+1].focus(),y()}),H.addEventListener("change",a=>{H.__latPublishing||a.stopImmediatePropagation()}),H.addEventListener("keydown",a=>{if(t.disabled||t.readOnly)return;const i=a.target;if(!v.includes(i))return;const r=v.indexOf(i);a.key==="Backspace"?(a.preventDefault(),i.value!==""?i.value="":r>0&&(v[r-1].value="",v[r-1].focus()),y()):a.key==="ArrowLeft"&&r>0?(a.preventDefault(),v[r-1].focus()):a.key==="ArrowRight"&&r<m-1?(a.preventDefault(),v[r+1].focus()):a.key.length===1&&!L(a.key,S)&&!a.ctrlKey&&!a.metaKey&&!a.altKey&&a.preventDefault()}),H.addEventListener("paste",a=>{if(t.disabled||t.readOnly)return;a.preventDefault();const i=a.clipboardData&&typeof a.clipboardData.getData=="function"?a.clipboardData.getData("text"):"";A(t,i),(v.find(_=>_.value==="")||v[m-1]).focus(),y()}),H.focus=()=>{const a=v.find(i=>!i.disabled&&!i.readOnly&&i.value==="")||v[0];a&&a.focus()},H.blur=()=>{for(const a of v)a.blur()},A(t,p.value),c(t),H},read(p){return p.__latOtp?d(p.__latOtp):""},write(p,M){p.__latOtp&&(A(p.__latOtp,M),c(p.__latOtp))},state(p,M){const C=p.__latOtp;if(C){C.disabled=M.disabled===!0,C.readOnly=M.readOnly===!0;for(const e of C.boxes)e.disabled=C.disabled,e.readOnly=C.readOnly;C.disabled?p.setAttribute("aria-disabled","true"):p.removeAttribute("aria-disabled"),C.readOnly?p.setAttribute("aria-readonly","true"):p.removeAttribute("aria-readonly")}}})}),ge("packages/modules/form/controls/index.js",function(B,q){"use strict";const n=q("packages/modules/form/controls/input.js"),z=q("packages/modules/form/controls/number.js"),h=q("packages/modules/form/controls/textarea.js"),Q=q("packages/modules/form/controls/checkbox.js"),l=q("packages/modules/form/controls/button.js"),L=q("packages/modules/form/controls/buttons.js"),E=q("packages/modules/form/controls/text.js"),f=q("packages/modules/form/controls/combo.js"),P=q("packages/modules/form/controls/select.js"),A=q("packages/modules/form/controls/radiogroup.js"),c=q("packages/modules/form/controls/checkboxgroup.js"),d=q("packages/modules/form/controls/toggle.js"),p=q("packages/modules/form/controls/datepicker.js"),M=q("packages/modules/form/controls/file.js"),C=q("packages/modules/form/controls/richtext.js"),e=q("packages/modules/form/controls/rating.js"),m=q("packages/modules/form/controls/stage.js"),S=q("packages/modules/form/controls/chips.js"),O=q("packages/modules/form/controls/otp.js")}),ge("packages/modules/form/create.js",function(B,q){"use strict";Object.defineProperty(B,"createForm",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(B,"default",{enumerable:!0,get:function(){return ee}});const n=q("packages/modules/form/styles.js"),z=n.NS,h=n.injectStyles,Q=q("packages/modules/form/model.js"),l=Q.resolveConfig,L=Q.DENSITIES,E=Q.cssSize,f=q("packages/modules/form/view.js"),P=f.markValidation,A=f.mount,c=f.runValidation,d=f.validateItem,p=f.wizardBack,M=f.wizardGoTo,C=f.wizardNext,e=q("packages/modules/form/emitter.js"),m=e.Emitter,S=e.FORM_EVENTS,H=q("packages/modules/form/messages.js").createTranslator,v=q("packages/modules/form/bind.js"),t=v.resolveBind,y=v.applyBinding,i=q("packages/modules/form/rules.js").applyRules,_=q("packages/modules/form/state.js").syncRecordState,u=q("packages/modules/form/controls/index.js");function R(J){if(Array.isArray(J))return J.map(R);if(J==null||typeof J!="object"||typeof J.nodeType=="number"||Object.getPrototypeOf(J)!==Object.prototype)return J;const o=J.type==="buttons"&&Array.isArray(J.items),I={};for(const j of Object.keys(J))o&&j==="items"||(I[j]=R(J[j]));return o&&(I.buttons=J.items.map(R)),I}function ne(J,o={}){const I=J&&J.ownerDocument||typeof globalThis<"u"&&globalThis.document||null,j=t(o);let D=o;if(j){if(D={...o},D.density===void 0){const x=j.density();x!=null&&(D.density=x)}if(!(Array.isArray(D.rows)&&D.rows.length||Array.isArray(D.cols)&&D.cols.length)){const x=j.items();x.length&&(D.rows=[{items:x}])}}const te=l(R(D)),V={el:J||null,doc:I,model:te,config:te,items:new Map,order:[],emitter:new m,t:H(te.messages).t,uidSeq:0,disposers:[],dirty:new Set,conflicts:new Set,baseline:{},bound:null},ce=g=>(g.facade||(g.facade={el:g.el,item:g.item,name:g.item.name,getValue(){return g.value},setValue(x){return g.def.write(g.control,x),g.value=g.def.read(g.control),g.item.value=g.value,i(V),g.facade},show(){return g.hidden=!1,g.el.hidden=!1,g.facade},hide(){return g.hidden=!0,g.el.hidden=!0,g.facade},isVisible(){return!(g.hidden||g.ruleHidden)},disable(){return g.item.disabled=!0,_(g),g.facade},enable(){return g.item.disabled=!1,_(g),g.facade},focus(){return typeof g.def.focus=="function"?g.def.focus(g.control):typeof g.control.focus=="function"&&g.control.focus(),g.facade},blur(){return typeof g.def.blur=="function"?g.def.blur(g.control):typeof g.control.blur=="function"&&g.control.blur(),g.facade},validate(){return d(V,g)},setLoading(x){return typeof g.def.setLoading=="function"&&g.def.setLoading(g.control,x===!0),g.facade}}),g.facade);J&&I&&h(I);const le=J&&typeof J.style.cssText=="string"?J.style.cssText:"",re=new Set(["field","toggle","display"]),Z={el:J||null,config:te,getItem(g){const x=V.items.get(String(g));return x?ce(x):void 0},getValue(){const g={};for(const x of V.order)x.item.name!=null&&re.has(x.def.kind)&&(g[x.item.name]=x.value);return g},setValue(g){if(g==null||typeof g!="object")return Z;for(const x of Object.keys(g)){const N=V.items.get(x);N&&ce(N).setValue(g[x])}return Z},clear(){for(const g of V.order)if(g.item.name!=null)if(g.def.kind==="field"){const x=g.item.props&&g.item.props.multiple===!0,N=g.item.type==="chips"?x?[]:null:g.item.type==="number"||g.item.type==="radiogroup"||g.item.type==="datepicker"||g.item.type==="stage"||g.item.type==="combo"&&!x?null:g.item.type==="rating"?0:g.item.type==="file"||g.item.type==="checkboxgroup"||(g.item.type==="select"||g.item.type==="combo")&&x?[]:"";g.value=N,g.item.value=N,g.def.write(g.control,N)}else g.def.kind==="toggle"&&(g.value=!1,g.item.value=!1,g.def.write(g.control,!1));return i(V),Z},validate(){const g=[];let x=!0;for(const N of V.order){if(N.item.name==null||N.def.kind!=="field"&&N.def.kind!=="toggle"||N.item.disabled===!0||(typeof N.def.reset=="function"&&N.def.reset(N.control,N.item),N.item.required!==!0&&N.item.validation==null&&typeof N.def.validate!="function"))continue;const F=c(V,N);P(V,N,F),F&&(x=!1,g.push({name:N.item.name,rule:F.code,message:F.message}))}return V.emitter.emit("validated",{name:null,item:null,value:void 0,valid:x,failures:g}),x},forEach(g){for(const x of V.order)g(ce(x))},on(g,x){return g!=="*"&&!S.includes(g)?(console.warn(`lattice-form: "${g}" is not a form event and will never fire.`),()=>{}):V.emitter.on(g,x)},off(g,x){V.emitter.off(g,x)},setDensity(g){return L.includes(g)&&(te.density=g,J&&J.setAttribute("data-density",g)),Z},setReadOnly(g){for(const x of V.order)x.item.readOnly=g===!0,_(x);return Z},setDisabled(g){for(const x of V.order)x.item.disabled=g===!0,_(x);return Z},setSpacing(g){const x=g==null?null:E(g);return te.spacing=x,J&&(x==null?J.style.removeProperty("--lattice-form-item-gap"):J.style.setProperty("--lattice-form-item-gap",x)),Z},isDirty(g){return g==null?V.dirty.size>0:V.dirty.has(String(g))},isConflicted(g){return g==null?V.conflicts.size>0:V.conflicts.has(String(g))},save(){const g=V.bound;if(!g)return!1;if(V.dirty.size===0)return!0;const x={};for(const G of V.dirty){const U=Z.getItem(G);U&&(x[G]=U.getValue())}const N=g.save(x),F=G=>{if(!G)return!1;for(const U of Object.keys(x))V.baseline[U]=x[U],V.dirty.delete(U),V.conflicts.delete(U);return!0};return N&&typeof N.then=="function"?N.then(F):F(N)},revert(){for(const g of V.dirty){if(!Object.hasOwn(V.baseline,g))continue;const x=V.items.get(g);x&&ce(x).setValue(V.baseline[g])}return V.dirty.clear(),V.conflicts.clear(),Z},get steps(){return V.model.steps||[]},get activeStep(){return V.wizard?V.wizard.active:0},next(){return C(V)},back(){return p(V)},goToStep(g){return M(V,g)},destroy(){for(const x of V.disposers.splice(0))x();V.emitter.clear();const g=V.el;if(g){for(;g.firstChild;)g.removeChild(g.firstChild);g.classList.remove(z),g.removeAttribute("data-density"),g.style.cssText=le,g.__latticeForm===Z&&(g.__latticeForm=null)}V.items.clear(),V.order.length=0,V.dirty.clear(),V.conflicts.clear(),V.baseline={},V.bound=null}};return J&&(J.__latticeForm=Z),V.form=Z,J&&I&&A(V),j&&y(V,Z,j),Z}const ee=ne}),ge("packages/modules/form/enhance.js",function(B,q){"use strict";Object.defineProperty(B,"itemForField",{enumerable:!0,get:function(){return f}}),Object.defineProperty(B,"configForForm",{enumerable:!0,get:function(){return P}}),Object.defineProperty(B,"enhanceForm",{enumerable:!0,get:function(){return A}}),Object.defineProperty(B,"default",{enumerable:!0,get:function(){return c}});const z=q("packages/modules/form/create.js").createForm,h=Object.freeze(["text","email","password","url"]);function Q(d){const p=d&&d.type?String(d.type).toLowerCase():"";return p==="submit"||p==="image"||d&&d.tagName==="BUTTON"&&p!=="button"}function l(d){if(!d||!d.name)return!1;const p=d&&d.type?String(d.type).toLowerCase():"";return!(p==="submit"||p==="button"||p==="reset"||p==="image"||p==="hidden"||p==="file"||d.tagName==="BUTTON")}function L(d,p){if(typeof d.getAttribute=="function"){const M=d.getAttribute("data-label");if(M!=null&&M!=="")return M;const C=d.getAttribute("aria-label");if(C!=null&&C!=="")return C}if(d.id&&typeof p.querySelector=="function"){const M=p.querySelector(`label[for="${d.id}"]`);if(M&&M.textContent!=null){const C=String(M.textContent).trim();if(C)return C}}return String(d.name||"")}function E(d){return d.type==="checkbox"?d.checked===!0:d.value==null?"":d.value}function f(d,p){if(Q(d)||!l(d))return null;const M=d.type?String(d.type).toLowerCase():"text",C={type:"input",name:d.name,label:L(d,p),value:E(d)};if(M==="number")C.type="number",d.min!=null&&d.min!==""&&(C.min=Number(d.min)),d.max!=null&&d.max!==""&&(C.max=Number(d.max)),d.step!=null&&d.step!==""&&(C.step=Number(d.step));else if(M==="checkbox")C.type="checkbox";else if(d.tagName==="TEXTAREA")C.type="textarea";else if(h.includes(M))C.subtype=M,(M==="email"||M==="url")&&(C.validation=M);else return null;if(d.placeholder!=null&&d.placeholder!==""&&(C.placeholder=d.placeholder),d.required===!0&&(C.required=!0),d.disabled===!0&&(C.disabled=!0),d.readOnly===!0&&(C.readOnly=!0),typeof d.getAttribute=="function"){const e=d.getAttribute("data-validation")||d.getAttribute("data-rule");e&&(C.validation=e);const m=d.getAttribute("data-error-message");m&&(C.errorMessage=m);const S=d.getAttribute("data-help");S&&(C.helpMessage=S)}return C}function P(d,p){const M=d&&d.ownerDocument||(typeof document<"u"?document:null),C=[],e=d&&d.elements?d.elements:[];for(const m of e){const S=f(m,M);S&&C.push(S)}return{...p||{},rows:C}}function A(d,p){if(!d)return null;if(d.__latticeForm)return d.__latticeForm;const M=d.ownerDocument||(typeof document<"u"?document:null),C=[],e=d.elements?d.elements:[];for(const S of e)Q(S)&&C.push(S);const m=z(d,P(d,p));d.__latticeForm=m;for(const S of C)S.parentNode!==d&&d.appendChild(S);return typeof d.addEventListener=="function"&&M&&d.addEventListener("submit",S=>{m.validate()||(S.preventDefault(),S.stopImmediatePropagation())},!0),m}const c=A}),ge("packages/modules/form/index.js",function(B,q){"use strict";Object.defineProperty(B,"registerControl",{enumerable:!0,get:function(){return P}}),Object.defineProperty(B,"createForm",{enumerable:!0,get:function(){return L}}),Object.defineProperty(B,"default",{enumerable:!0,get:function(){return A}});const z=q("packages/modules/form/styles.js").NS,Q=q("packages/modules/form/controls/registry.js").registerControl,L=q("packages/modules/form/create.js").createForm,E=q("packages/modules/form/controls/combo.js");Object.defineProperty(B,"createCombo",{enumerable:!0,get:function(){return E.createCombo}});const f=q("packages/modules/form/enhance.js");Object.defineProperty(B,"enhanceForm",{enumerable:!0,get:function(){return f.enhanceForm}});function P(c,d){if(d===null||typeof d!="object"||typeof d.create!="function"){console.warn("lattice-form: registerControl needs a definition with a create(el, item, api) function.");return}const p=typeof d.getValue=="function"?d.getValue:()=>null,M=typeof d.setValue=="function"?d.setValue:()=>{};Q(String(c),{kind:"field",custom:!0,validate:typeof d.validate=="function"?(C,e,m)=>d.validate(m,e,C):void 0,destroy:typeof d.destroy=="function"?C=>d.destroy(C):void 0,build(C,e){const m=e.doc.createElement("div");m.className=`${z}__custom`;const S={name:C.name,item:C,getValue(){return S._read?S._read():void 0},setValue(O){S._write&&S._write(O)},onChange(O){S._commit&&S._commit(O===void 0?p():O)},onInput(O){S._input&&S._input(O===void 0?p():O)}};return m.__latticeFormApi=S,d.create(m,C,S),M(m,C.value),m},read(C){return p(C)},write(C,e){M(C,e)},state(C,e){C.setAttribute("data-disabled",e.disabled===!0?"true":"false"),C.setAttribute("data-readonly",e.readOnly===!0?"true":"false")}})}const A=L});var ht=St("packages/modules/form/index.js");typeof module=="object"&&module.exports?module.exports=ht:typeof define=="function"&&define.amd?define(function(){return ht}):Tt.LatticeGridForm=ht})(typeof globalThis<"u"?globalThis:this);
|
|
1292
1295
|
|
|
1293
1296
|
//# sourceMappingURL=form.min.js.map
|