@toclocoinc/lattice-grid 1.100.0 → 1.100.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 +16 -0
- package/README.md +1 -1
- package/angular/fesm2022/toclocoinc-lattice-grid-angular.mjs +6 -2
- package/angular/package.json +1 -1
- package/angular/types/toclocoinc-lattice-grid-angular.d.ts +3 -1
- package/docs/API.html +85 -11
- 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 +77 -6
- 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 +3 -3
- 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 +7 -3
- package/docs/api-detail.html +18 -4
- package/docs/warnings.json +13 -2
- 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 +39 -8
- package/modules/form.esm.min.js +409 -308
- package/modules/form.esm.min.js.map +2 -2
- package/modules/form.min.cjs +409 -308
- package/modules/form.min.js +409 -308
- 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 +2 -2
- package/modules/react.esm.min.js.map +1 -1
- package/modules/react.min.cjs +2 -2
- package/modules/react.min.js +2 -2
- package/modules/react.min.js.map +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 +3 -3
- package/modules/svelte.esm.min.js.map +1 -1
- package/modules/svelte.min.cjs +2 -2
- package/modules/svelte.min.js +2 -2
- package/modules/svelte.min.js.map +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 +3 -3
- package/modules/vue.esm.min.js.map +1 -1
- package/modules/vue.min.cjs +2 -2
- package/modules/vue.min.js +2 -2
- package/modules/vue.min.js.map +1 -1
- package/modules/webcomponent.d.ts +1 -1
- package/modules/webcomponent.esm.min.js +3 -3
- package/modules/webcomponent.esm.min.js.map +1 -1
- package/modules/webcomponent.min.cjs +3 -3
- package/modules/webcomponent.min.js +3 -3
- package/modules/webcomponent.min.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,22 @@ and what it means for a grid already in production.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [1.100.1] - 2026-10-13
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **A `color` form control: a swatch field with a preset palette, a custom saturation/lightness picker and typed hex** (BACKLOG-0002252).
|
|
17
|
+
- The field shows a swatch and the current value as hex text; clicking the swatch or the trailing icon, pressing Enter on the field, or Alt+Down opens a popover under the field (flipped above when there is no room), closed by outside click, Escape or a selection, with focus returning to the field.
|
|
18
|
+
- The popover's palette view shows rows of preset swatches — ten hues in five shades by default, `palette: string[][]` to replace them, `grayShades: false` to drop the default grey row — plus a row of `customColors`, extended (newest first, deduplicated, at most ten) by every colour picked in the picker view; each extension fires `customColorsChange`. A "Custom colour" button switches to the picker view: a saturation/lightness plane, a hue slider, hex and R/G/B inputs and a preview, committing on Select or Enter and discarding on Escape or Back. `mode: 'palette' | 'picker'` picks the opening view and `pickerOnly: true` removes the palette view.
|
|
19
|
+
- The value is a lowercase `#rrggbb` string or `null`. `setValue` normalises `#rgb`, `#rrggbb` and `rgb(r, g, b)`; anything else is refused with a warning and the value is unchanged. `editable` (default true) lets the text part be typed into — a valid hex commits on Enter or blur, an invalid one keeps the old value with a catalogue message — and `editable: false` makes it read-only. `clearable: true` adds a control that sets `null`.
|
|
20
|
+
- The richtext control's text-colour popover now draws through the same shared palette and swatch grid, so the two popovers match.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Form combo: a combo that loads its options a page at a time and opens with a value already selected now draws `selectedTemplate` and its chips with the option `resolveLabels` returned, so the template sees `{ value, label, … }` for the resolved option rather than the raw value. (BACKLOG-0002258)
|
|
25
|
+
|
|
26
|
+
- Form items: an item's own `props` object now reaches the control, so a custom control registered with `registerControl` receives its settings in `create(el, item, api)`; unrecognised top-level keys still join the same bag. `FormItemConfig.props` is typed. (BACKLOG-0002259)
|
|
27
|
+
|
|
12
28
|
## [1.100.0] - 2026-10-12
|
|
13
29
|
|
|
14
30
|
### Added
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ tiles and map views, all reading the same rows, filters and theme. Vanilla
|
|
|
7
7
|
JavaScript, no runtime dependencies, no build step; adapters for React, Vue,
|
|
8
8
|
Svelte, Web Components and htmx, Angular compiled inside the package.
|
|
9
9
|
|
|
10
|
-
Version 1.100.
|
|
10
|
+
Version 1.100.1 · [latticegrid.dev](https://www.latticegrid.dev) · TOCLOCO Inc
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -862,7 +862,7 @@ const VIEWER_EVENTS$1 = Object.freeze({
|
|
|
862
862
|
]),
|
|
863
863
|
|
|
864
864
|
form: Object.freeze([
|
|
865
|
-
'beforeChange', 'change', 'input', 'click', 'focus', 'blur', 'validated', 'complete',
|
|
865
|
+
'beforeChange', 'change', 'input', 'click', 'focus', 'blur', 'validated', 'complete', 'customColorsChange',
|
|
866
866
|
]),
|
|
867
867
|
});
|
|
868
868
|
|
|
@@ -3459,6 +3459,8 @@ class LatticeFormComponent extends LatticeViewerBase {
|
|
|
3459
3459
|
this.validated = new EventEmitter();
|
|
3460
3460
|
|
|
3461
3461
|
this.complete = new EventEmitter();
|
|
3462
|
+
|
|
3463
|
+
this.customColorsChange = new EventEmitter();
|
|
3462
3464
|
}
|
|
3463
3465
|
|
|
3464
3466
|
mount(element, config) {
|
|
@@ -3466,7 +3468,7 @@ class LatticeFormComponent extends LatticeViewerBase {
|
|
|
3466
3468
|
return createForm(element, config);
|
|
3467
3469
|
}
|
|
3468
3470
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: LatticeFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3469
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: LatticeFormComponent, isStandalone: true, selector: "lattice-form", inputs: { config: "config" }, outputs: { beforeChange: "beforeChange", change: "change", input: "input", click: "click", focus: "focus", blur: "blur", validated: "validated", complete: "complete" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block}\n"] }); }
|
|
3471
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: LatticeFormComponent, isStandalone: true, selector: "lattice-form", inputs: { config: "config" }, outputs: { beforeChange: "beforeChange", change: "change", input: "input", click: "click", focus: "focus", blur: "blur", validated: "validated", complete: "complete", customColorsChange: "customColorsChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block}\n"] }); }
|
|
3470
3472
|
}
|
|
3471
3473
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: LatticeFormComponent, decorators: [{
|
|
3472
3474
|
type: Component,
|
|
@@ -3489,6 +3491,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
3489
3491
|
type: Output
|
|
3490
3492
|
}], complete: [{
|
|
3491
3493
|
type: Output
|
|
3494
|
+
}], customColorsChange: [{
|
|
3495
|
+
type: Output
|
|
3492
3496
|
}] } });
|
|
3493
3497
|
|
|
3494
3498
|
class LatticeDesignerComponent {
|
package/angular/package.json
CHANGED
|
@@ -1580,6 +1580,8 @@ declare class LatticeFormComponent extends LatticeViewerBase<Form> {
|
|
|
1580
1580
|
readonly validated: EventEmitter<any>;
|
|
1581
1581
|
/** The viewer's `complete` event: every box of an `otp` item is now filled. */
|
|
1582
1582
|
readonly complete: EventEmitter<any>;
|
|
1583
|
+
/** The viewer's `customColorsChange` event: a `color` item's remembered custom colours changed. */
|
|
1584
|
+
readonly customColorsChange: EventEmitter<any>;
|
|
1583
1585
|
/**
|
|
1584
1586
|
* Build the form. `createForm(el, config)` takes its host element directly.
|
|
1585
1587
|
* @param element the host element
|
|
@@ -1588,7 +1590,7 @@ declare class LatticeFormComponent extends LatticeViewerBase<Form> {
|
|
|
1588
1590
|
*/
|
|
1589
1591
|
protected mount(element: HTMLElement, config: Props): Form;
|
|
1590
1592
|
static ɵfac: i0.ɵɵFactoryDeclaration<LatticeFormComponent, never>;
|
|
1591
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LatticeFormComponent, "lattice-form", never, { "config": { "alias": "config"; "required": false; }; }, { "beforeChange": "beforeChange"; "change": "change"; "input": "input"; "click": "click"; "focus": "focus"; "blur": "blur"; "validated": "validated"; "complete": "complete"; }, never, never, true, never>;
|
|
1593
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LatticeFormComponent, "lattice-form", never, { "config": { "alias": "config"; "required": false; }; }, { "beforeChange": "beforeChange"; "change": "change"; "input": "input"; "click": "click"; "focus": "focus"; "blur": "blur"; "validated": "validated"; "complete": "complete"; "customColorsChange": "customColorsChange"; }, never, never, true, never>;
|
|
1592
1594
|
}
|
|
1593
1595
|
|
|
1594
1596
|
declare class LatticeDesignerComponent implements OnChanges, OnDestroy {
|
package/docs/API.html
CHANGED
|
@@ -382,7 +382,7 @@
|
|
|
382
382
|
<div class="shell">
|
|
383
383
|
<aside class="rail">
|
|
384
384
|
<p class="rail__brand">Lattice Grid</p>
|
|
385
|
-
<p class="rail__sub">API reference · v1.100.
|
|
385
|
+
<p class="rail__sub">API reference · v1.100.1</p>
|
|
386
386
|
<nav>
|
|
387
387
|
<div class="rail__group">
|
|
388
388
|
<span class="rail__label">Start</span>
|
|
@@ -583,7 +583,7 @@
|
|
|
583
583
|
</header>
|
|
584
584
|
|
|
585
585
|
<p class="chips">
|
|
586
|
-
<span class="chip">Version 1.100.
|
|
586
|
+
<span class="chip">Version 1.100.1</span>
|
|
587
587
|
<span class="chip">Zero dependencies</span>
|
|
588
588
|
<span class="chip"><a href="api-detail.html">Developer guide →</a></span>
|
|
589
589
|
</p>
|
|
@@ -3505,7 +3505,7 @@ grid.destroy();
|
|
|
3505
3505
|
<table>
|
|
3506
3506
|
<thead><tr><th>Member</th><th>Returns</th><th>Description</th></tr></thead>
|
|
3507
3507
|
<tbody>
|
|
3508
|
-
<tr><td class="sig">getVersion()</td><td class="type">string</td><td class="desc">The version this grid came from, e.g. <code>'1.100.
|
|
3508
|
+
<tr><td class="sig">getVersion()</td><td class="type">string</td><td class="desc">The version this grid came from, e.g. <code>'1.100.1'</code>. Also on the module as <code>getVersion()</code>, for when you have no grid to hand.</td></tr>
|
|
3509
3509
|
<tr><td class="sig">get(key)</td><td class="type">unknown</td><td class="desc">Read any configuration key.</td></tr>
|
|
3510
3510
|
<tr><td class="sig">set(key, value)</td><td class="type">void</td><td class="desc">Write one key. Every key is live; nothing needs a rebuild.</td></tr>
|
|
3511
3511
|
<tr><td class="sig">setAll(values)</td><td class="type">void</td><td class="desc">Write several in one pass. Emits one <code>config:changed</code> for the batch, not one per key.</td></tr>
|
|
@@ -16681,7 +16681,7 @@ group.destroy();
|
|
|
16681
16681
|
<code>visibleWhen</code>/<code>readOnlyWhen</code>/<code>requiredWhen</code> rules re-evaluate as values commit; and a
|
|
16682
16682
|
three-step wizard's <code>next()</code>/<code>back()</code>/<code>goToStep()</code> gate each forward move on the step's
|
|
16683
16683
|
validation — with the real Chrome assertions in <code>test/form-browser.test.js</code>.</p>
|
|
16684
|
-
<pre data-run="js" data-expect="false|true|1|3|false|true|true|true|true|true" data-covers="export:registerControl config:FormConfig.steps config:FormConfig.stepOrientation config:FormItemConfig.visibleWhen config:FormItemConfig.readOnlyWhen config:FormItemConfig.requiredWhen method:form.next method:form.back method:form.goToStep"><code><span class="kw">const</span> { createTestDom } = <span class="kw">await</span> import('../packages/dom/src/renderer/testdom.js');
|
|
16684
|
+
<pre data-run="js" data-expect="false|true|1|3|false|true|true|true|true|true" data-covers="export:registerControl config:FormItemConfig.props config:FormConfig.steps config:FormConfig.stepOrientation config:FormItemConfig.visibleWhen config:FormItemConfig.readOnlyWhen config:FormItemConfig.requiredWhen method:form.next method:form.back method:form.goToStep"><code><span class="kw">const</span> { createTestDom } = <span class="kw">await</span> import('../packages/dom/src/renderer/testdom.js');
|
|
16685
16685
|
<span class="kw">const</span> { registerControl, createForm } = <span class="kw">await</span> import('../packages/modules/form/index.js');
|
|
16686
16686
|
|
|
16687
16687
|
<span class="cmt">// A custom control type is a first-class item: it round-trips through the form API.</span>
|
|
@@ -16689,6 +16689,7 @@ registerControl('star', {
|
|
|
16689
16689
|
create(el, item, api) {
|
|
16690
16690
|
<span class="kw">const</span> input = el.ownerDocument.createElement('input');
|
|
16691
16691
|
input.className = 'star-input';
|
|
16692
|
+
input.setAttribute('data-max', String(item.props.max)); // the item's own `props` bag carries the control's settings
|
|
16692
16693
|
el.appendChild(input);
|
|
16693
16694
|
},
|
|
16694
16695
|
getValue(el) { <span class="kw">return</span> el.querySelector('.star-input').value; },
|
|
@@ -16704,7 +16705,7 @@ registerControl('star', {
|
|
|
16704
16705
|
{ type: 'input', name: 'code', label: 'Code' },
|
|
16705
16706
|
] },
|
|
16706
16707
|
{ id: 'two', label: 'Two', rows: [
|
|
16707
|
-
{ type: 'star', name: 'rating', label: 'Rating', value: '3' },
|
|
16708
|
+
{ type: 'star', name: 'rating', label: 'Rating', value: '3', props: { max: 5 } },
|
|
16708
16709
|
{ type: 'input', name: 'note', label: 'Note', visibleWhen: { name: 'rating', equals: '5' } },
|
|
16709
16710
|
{ type: 'input', name: 'review', label: 'Review', readOnlyWhen: { name: 'rating', in: ['4', '5'] } },
|
|
16710
16711
|
] },
|
|
@@ -17109,6 +17110,56 @@ form.setValue({ tags: [<span class="str">'c'</span>, <span class="str">'a'</span
|
|
|
17109
17110
|
<span class="kw">const</span> requiredFails = form.validate(); <span class="cmt">// false — allowEmpty + required, nothing picked</span>
|
|
17110
17111
|
|
|
17111
17112
|
<span class="kw">return</span> [started, clicked, ordered, capped, requiredFails].join('|');</code></pre>
|
|
17113
|
+
<h3 id="form-color-example">A colour swatch field: palette, custom colours, clearable and read-only, executed</h3>
|
|
17114
|
+
<p class="section-note">A <code>color</code> item's swatch or trailing icon opens a popover under the field: the
|
|
17115
|
+
palette view's shared swatch grid (ten hues in five shades, a grey row, and a <code>customColors</code> row),
|
|
17116
|
+
<code>grayShades: false</code> dropping the grey row, <code>clearable</code> adding a control that sets
|
|
17117
|
+
<code>null</code>, <code>editable: false</code> making the text part read-only, and <code>pickerOnly</code> with
|
|
17118
|
+
<code>mode: 'picker'</code> opening straight on the saturation/lightness picker with no palette view — with
|
|
17119
|
+
the keyboard model, the computed swatch colours and the light/dark popover surface asserted in
|
|
17120
|
+
<code>test/form-color-browser.test.js</code>.</p>
|
|
17121
|
+
<pre data-run="js" data-expect="56|#cf7030|true|#ff0000||50|true|true|false" data-covers="export:createForm method:form.getItem method:form.getValue config:FormItemConfig.value config:FormItemConfig.clearable config:FormItemConfig.customColors config:FormItemConfig.editable config:FormItemConfig.grayShades config:FormItemConfig.pickerOnly config:FormItemConfig.mode"><code>const { createTestDom, TestEvent } = await import('../packages/dom/src/renderer/testdom.js');
|
|
17122
|
+
const { createForm } = await import('../packages/modules/form/index.js');
|
|
17123
|
+
|
|
17124
|
+
const { root } = createTestDom();
|
|
17125
|
+
const form = createForm(root, { rows: [
|
|
17126
|
+
{ type: 'color', name: 'brand', label: 'Brand', value: '#1a2b3c', clearable: true, customColors: ['#112233'] },
|
|
17127
|
+
{ type: 'color', name: 'bg', label: 'Background', grayShades: false },
|
|
17128
|
+
{ type: 'color', name: 'locked', label: 'Locked', value: '#ff0000', editable: false },
|
|
17129
|
+
{ type: 'color', name: 'po', label: 'Picker only', pickerOnly: true, mode: 'picker' },
|
|
17130
|
+
] });
|
|
17131
|
+
|
|
17132
|
+
// Palette view: the shared swatch grid (ten hues x five shades, the grey row, one custom colour).
|
|
17133
|
+
const brandEl = form.getItem('brand').el.querySelector('.lat-form__color');
|
|
17134
|
+
brandEl.querySelector('.lat-form__color-toggle').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
17135
|
+
const popover = brandEl.querySelector('.lat-form__color-popover');
|
|
17136
|
+
const swatchCount = popover.querySelectorAll('.lat-form__swatch').length; // 56 = 50 + grey row (5) + custom (1)
|
|
17137
|
+
popover.querySelectorAll('.lat-form__swatch')[7].dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
17138
|
+
const picked = form.getValue().brand; // the clicked swatch's hex
|
|
17139
|
+
const closed = popover.hidden; // true — a selection closes the popover
|
|
17140
|
+
|
|
17141
|
+
// setValue normalises rgb(); clear sets null.
|
|
17142
|
+
form.getItem('brand').setValue('rgb(255, 0, 0)');
|
|
17143
|
+
const normalized = form.getValue().brand; // '#ff0000'
|
|
17144
|
+
brandEl.querySelector('.lat-form__color-clear').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
17145
|
+
const cleared = form.getValue().brand; // null
|
|
17146
|
+
|
|
17147
|
+
// grayShades: false drops the grey row.
|
|
17148
|
+
const bgEl = form.getItem('bg').el.querySelector('.lat-form__color');
|
|
17149
|
+
bgEl.querySelector('.lat-form__color-toggle').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
17150
|
+
const noGraySwatchCount = bgEl.querySelector('.lat-form__color-popover').querySelectorAll('.lat-form__swatch').length; // 50
|
|
17151
|
+
|
|
17152
|
+
// editable: false leaves the text part read-only.
|
|
17153
|
+
const lockedReadOnly = form.getItem('locked').el.querySelector('.lat-form__color-input').readOnly; // true
|
|
17154
|
+
|
|
17155
|
+
// pickerOnly + mode: 'picker' opens straight on the picker, with no palette and no Back button.
|
|
17156
|
+
const poEl = form.getItem('po').el.querySelector('.lat-form__color');
|
|
17157
|
+
poEl.querySelector('.lat-form__color-toggle').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
17158
|
+
const poPopover = poEl.querySelector('.lat-form__color-popover');
|
|
17159
|
+
const poHasPicker = !!poPopover.querySelector('.lat-form__color-picker'); // true
|
|
17160
|
+
const poHasBack = !!poPopover.querySelector('.lat-form__color-back'); // false
|
|
17161
|
+
|
|
17162
|
+
return [swatchCount, picked, closed, normalized, cleared, noGraySwatchCount, lockedReadOnly, poHasPicker, poHasBack].join('|');</code></pre>
|
|
17112
17163
|
<h3 id="form-password-otp-example">Password reveal and one-time-code entry, executed</h3>
|
|
17113
17164
|
<p class="section-note">A <code>password</code> input's reveal button renders inside the field with its catalogue name and
|
|
17114
17165
|
<code>aria-pressed</code>, and <code>reveal: false</code> drops it; an <code>otp</code> item renders <code>length</code>
|
|
@@ -31882,11 +31933,12 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
31882
31933
|
</table>
|
|
31883
31934
|
</div>
|
|
31884
31935
|
<h4 id="type-FormItemConfig">FormItemConfig</h4>
|
|
31885
|
-
<p class="section-note">One form item: a control (`input`, `number`, `textarea`, `checkbox`, `button`, `combo`, `select`, `radiogroup`, `checkboxgroup`, `toggle`, `datepicker`, `file`, `richtext`, `rating`, `stage`, `chips`) or the read-only `text` display, with the per-item options.</p>
|
|
31936
|
+
<p class="section-note">One form item: a control (`input`, `number`, `textarea`, `checkbox`, `button`, `combo`, `select`, `radiogroup`, `checkboxgroup`, `toggle`, `datepicker`, `file`, `richtext`, `rating`, `stage`, `chips`, `otp`, `color`) or the read-only `text` display, with the per-item options.</p>
|
|
31886
31937
|
<div class="table-wrap">
|
|
31887
31938
|
<table>
|
|
31888
31939
|
<thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead>
|
|
31889
31940
|
<tbody>
|
|
31941
|
+
<tr><td class="name">props</td><td class="type">Record<string, unknown></td><td class="desc">A control's own settings bag. A custom control registered with `registerControl` reads its settings from `item.props` in `create()`; any top-level key the form does not recognise joins the same bag (BACKLOG-0002259). <small>(optional)</small></td></tr>
|
|
31890
31942
|
<tr><td class="name">type</td><td class="type">string</td><td class="desc">The control type — a built-in or a type registered with `registerControl`. Defaults to `input`. <small>(optional)</small></td></tr>
|
|
31891
31943
|
<tr><td class="name">name</td><td class="type">string</td><td class="desc">The item's name, for `getItem(name)` and `getValue()`/`setValue()`. <small>(optional)</small></td></tr>
|
|
31892
31944
|
<tr><td class="name">label</td><td class="type">string</td><td class="desc">The label text, associated to the control for screen readers. <small>(optional)</small></td></tr>
|
|
@@ -31912,7 +31964,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
31912
31964
|
<tr><td class="name">subtype</td><td class="type"><a href="#type-FormInputSubtype">FormInputSubtype</a> <small class="literals">'text' | 'email' | 'password' | 'url'</small></td><td class="desc">The native input subtype for an `input` item. <small>(optional)</small></td></tr>
|
|
31913
31965
|
<tr><td class="name">reveal</td><td class="type">boolean</td><td class="desc">Show the reveal button inside a `password` input (default true); `false` turns it off. <small>(optional)</small></td></tr>
|
|
31914
31966
|
<tr><td class="name">length</td><td class="type">number</td><td class="desc">The box count of an `otp` item (default 6). <small>(optional)</small></td></tr>
|
|
31915
|
-
<tr><td class="name">mode</td><td class="type">'numeric' | 'alphanumeric' | <a href="#type-FormPickerMode">FormPickerMode</a></td><td class="desc">The `otp` characters — `numeric` (default) or `alphanumeric` —
|
|
31967
|
+
<tr><td class="name">mode</td><td class="type">'numeric' | 'alphanumeric' | <a href="#type-FormPickerMode">FormPickerMode</a> | <a href="#type-FormColorMode">FormColorMode</a></td><td class="desc">The `otp` characters — `numeric` (default) or `alphanumeric` — the `datepicker` mode: `date`, `date-time` or `time` (BACKLOG-0002142) — or the `color` item's opening popover view (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
31916
31968
|
<tr><td class="name">mask</td><td class="type">boolean</td><td class="desc">Hide each `otp` box's glyph with the password disc. <small>(optional)</small></td></tr>
|
|
31917
31969
|
<tr><td class="name">step</td><td class="type">number</td><td class="desc">The number step, for a `number` item. <small>(optional)</small></td></tr>
|
|
31918
31970
|
<tr><td class="name">format</td><td class="type"><a href="#type-NumberFormat">NumberFormat</a> | string</td><td class="desc">The number format a `number` item displays when blurred, the same shape a grid number column takes — a `NumberFormat` spec (which may name `pattern`) or a bare pattern string like `'#,##0.00'` (BACKLOG-0002176, BACKLOG-0002181). The value stays a number; only the display is formatted. <small>(optional)</small></td></tr>
|
|
@@ -31964,7 +32016,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
31964
32016
|
<tr><td class="name">sanitizePaste</td><td class="type">boolean</td><td class="desc">Sanitise pasted HTML in a `richtext` item (default true). <small>(optional)</small></td></tr>
|
|
31965
32017
|
<tr><td class="name">allowHalf</td><td class="type">boolean</td><td class="desc">Allow half steps for a `rating` item. <small>(optional)</small></td></tr>
|
|
31966
32018
|
<tr><td class="name">allowClear</td><td class="type">boolean</td><td class="desc">Allow a second click to clear a `rating` item back to zero. <small>(optional)</small></td></tr>
|
|
31967
|
-
<tr><td class="name">icon</td><td class="type">string | Element | false</td><td class="desc">The icon of a `button` — a name from the grid's icon set, an image URL or data: URI, or an element — the glyph name of a `rating` item (`star` or `heart`),
|
|
32019
|
+
<tr><td class="name">icon</td><td class="type">string | Element | false</td><td class="desc">The icon of a `button` — a name from the grid's icon set, an image URL or data: URI, or an element — the glyph name of a `rating` item (`star` or `heart`), the drop-area icon of a `file` item — a glyph name from the file module's sprite set, an SVG markup string, an element, or `false` for none (BACKLOG-0002204) — or the glyph name a `color` item's trailing toggle draws instead of its default chevron (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
31968
32020
|
<tr><td class="name">icons</td><td class="type">{ filled?: string; empty?: string }</td><td class="desc">The filled and empty glyph names for a `rating` item. <small>(optional)</small></td></tr>
|
|
31969
32021
|
<tr><td class="name">labels</td><td class="type">string[]</td><td class="desc">One label per rating icon, for the `title` and the announced value. <small>(optional)</small></td></tr>
|
|
31970
32022
|
<tr><td class="name">showValue</td><td class="type">boolean</td><td class="desc">Show the numeric value beside a `rating` item. <small>(optional)</small></td></tr>
|
|
@@ -31988,6 +32040,12 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
31988
32040
|
<tr><td class="name">showIcons</td><td class="type">boolean</td><td class="desc">Whether a `stage` item shows its check glyphs (default true). <small>(optional)</small></td></tr>
|
|
31989
32041
|
<tr><td class="name">allowEmpty</td><td class="type">boolean</td><td class="desc">Allow a single-mode `chips` item to be left with nothing selected. <small>(optional)</small></td></tr>
|
|
31990
32042
|
<tr><td class="name">wrap</td><td class="type">boolean</td><td class="desc">Wrap a `chips` item's pills onto several lines (default), or keep them on one scrolling row when false. <small>(optional)</small></td></tr>
|
|
32043
|
+
<tr><td class="name">palette</td><td class="type">string[][]</td><td class="desc">The rows of preset swatches a `color` item's palette view shows, replacing the shared default (ten hues in five shades) (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
32044
|
+
<tr><td class="name">grayShades</td><td class="type">boolean</td><td class="desc">Show a `color` item's grey row under its palette (default true); `false` drops it (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
32045
|
+
<tr><td class="name">customColors</td><td class="type">string[]</td><td class="desc">A `color` item's custom-colours row to start with — extended, newest first and deduplicated to at most ten, by every colour picked in the picker view (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
32046
|
+
<tr><td class="name">pickerOnly</td><td class="type">boolean</td><td class="desc">Remove a `color` item's palette view, leaving only the picker (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
32047
|
+
<tr><td class="name">editable</td><td class="type">boolean</td><td class="desc">Let a `color` item's text part be typed into (default true); `false` makes it read-only, so only the popover sets the value (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
32048
|
+
<tr><td class="name">clearable</td><td class="type">boolean</td><td class="desc">Show a `color` item's clear control, setting the value to `null` (BACKLOG-0002252). <small>(optional)</small></td></tr>
|
|
31991
32049
|
<tr><td class="name">[key: string]</td><td class="type">unknown</td><td class="desc">Extra per-control options, kept for later controls.</td></tr>
|
|
31992
32050
|
</tbody>
|
|
31993
32051
|
</table>
|
|
@@ -32159,6 +32217,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
32159
32217
|
<tr><td class="name">blur</td><td class="type">FormFocusEvent</td><td class="desc">The item that lost focus.</td></tr>
|
|
32160
32218
|
<tr><td class="name">validated</td><td class="type"><a href="#type-FormValidatedEvent">FormValidatedEvent</a></td><td class="desc">A validation run, item or whole form, with its failures.</td></tr>
|
|
32161
32219
|
<tr><td class="name">complete</td><td class="type">FormCompleteEvent</td><td class="desc">Every box of an `otp` item is now filled.</td></tr>
|
|
32220
|
+
<tr><td class="name">customColorsChange</td><td class="type"><a href="#type-FormColorCustomColorsEvent">FormColorCustomColorsEvent</a></td><td class="desc">A `color` item's custom-colours row, extended.</td></tr>
|
|
32162
32221
|
</tbody>
|
|
32163
32222
|
</table>
|
|
32164
32223
|
</div>
|
|
@@ -32185,6 +32244,16 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
32185
32244
|
</tbody>
|
|
32186
32245
|
</table>
|
|
32187
32246
|
</div>
|
|
32247
|
+
<h4 id="type-FormColorCustomColorsEvent">FormColorCustomColorsEvent</h4>
|
|
32248
|
+
<p class="section-note">A `customColorsChange` payload: a `color` item's custom-colours row gained a newly picked colour (BACKLOG-0002252).</p>
|
|
32249
|
+
<div class="table-wrap">
|
|
32250
|
+
<table>
|
|
32251
|
+
<thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead>
|
|
32252
|
+
<tbody>
|
|
32253
|
+
<tr><td class="name">colors</td><td class="type">string[]</td><td class="desc">The custom-colours list after the addition — newest first, deduplicated, at most ten entries.</td></tr>
|
|
32254
|
+
</tbody>
|
|
32255
|
+
</table>
|
|
32256
|
+
</div>
|
|
32188
32257
|
<h4 id="type-FormBeforeChangeEvent">FormBeforeChangeEvent</h4>
|
|
32189
32258
|
<p class="section-note">A `beforeChange` payload. A handler refuses the commit by calling `preventDefault(reason?)` or returning `false` (or a Promise of either).</p>
|
|
32190
32259
|
<div class="table-wrap">
|
|
@@ -32322,6 +32391,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
32322
32391
|
<tr><td class="name">blur</td><td class="desc">An item's control lost focus.</td><td class="type">FormFocusEvent</td><td class="desc">—</td></tr>
|
|
32323
32392
|
<tr><td class="name">validated</td><td class="desc">One or more items were validated, with the failures.</td><td class="type"><a href="#type-FormValidatedEvent">FormValidatedEvent</a></td><td class="desc">no</td></tr>
|
|
32324
32393
|
<tr><td class="name">complete</td><td class="desc">Every box of an `otp` item is now filled.</td><td class="type">FormCompleteEvent</td><td class="desc">—</td></tr>
|
|
32394
|
+
<tr><td class="name">customColorsChange</td><td class="desc">A `color` item's custom-colours row gained a newly picked colour (BACKLOG-0002252).</td><td class="type"><a href="#type-FormColorCustomColorsEvent">FormColorCustomColorsEvent</a></td><td class="desc">no</td></tr>
|
|
32325
32395
|
</tbody>
|
|
32326
32396
|
</table>
|
|
32327
32397
|
</div>
|
|
@@ -37308,9 +37378,13 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
37308
37378
|
<p class="section-note">A button's visual weight: theme-token colours, light and dark.</p>
|
|
37309
37379
|
<p class="type-def"><code>type FormButtonVariant = 'primary' | 'secondary' | 'tonal' | 'outline' | 'text' | 'danger'</code></p>
|
|
37310
37380
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
37381
|
+
<h4 id="type-FormColorMode">FormColorMode</h4>
|
|
37382
|
+
<p class="section-note">The opening view of a `color` item's popover (BACKLOG-0002252): the preset palette (default) or the custom picker.</p>
|
|
37383
|
+
<p class="type-def"><code>type FormColorMode = 'palette' | 'picker'</code></p>
|
|
37384
|
+
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
37311
37385
|
<h4 id="type-FormControlType">FormControlType</h4>
|
|
37312
37386
|
<p class="section-note">The control types a form item may name.</p>
|
|
37313
|
-
<p class="type-def"><code>type FormControlType = 'input' | 'number' | 'textarea' | 'checkbox' | 'button' | 'text' | 'combo' | 'select' | 'radiogroup' | 'checkboxgroup' | 'toggle' | 'datepicker' | 'file' | 'richtext' | 'rating' | 'stage' | 'chips' | 'otp'</code></p>
|
|
37387
|
+
<p class="type-def"><code>type FormControlType = 'input' | 'number' | 'textarea' | 'checkbox' | 'button' | 'text' | 'combo' | 'select' | 'radiogroup' | 'checkboxgroup' | 'toggle' | 'datepicker' | 'file' | 'richtext' | 'rating' | 'stage' | 'chips' | 'otp' | 'color'</code></p>
|
|
37314
37388
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
37315
37389
|
<h4 id="type-FormDensity">FormDensity</h4>
|
|
37316
37390
|
<p class="section-note">The density levels a form accepts — the grid's own presets.</p>
|
|
@@ -37318,7 +37392,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
37318
37392
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
37319
37393
|
<h4 id="type-FormEventName">FormEventName</h4>
|
|
37320
37394
|
<p class="section-note">The events a form raises, on `form.on()` (BACKLOG-0002141). The form's own, not a grid's. `on()` warns once on any other name. The cancellable `beforeChange` runs before a committed edit is stored, on the same contract the grid core uses: call `preventDefault(reason?)` on the payload, or return `false`; a veto reverts the control to its committed value. The past-tense events — `change`, `input`, `click`, `focus` and `blur` — report an edit already made and carry no `preventDefault`.</p>
|
|
37321
|
-
<p class="type-def"><code>type FormEventName = 'beforeChange' | 'change' | 'input' | 'click' | 'focus' | 'blur' | 'validated' | 'complete'</code></p>
|
|
37395
|
+
<p class="type-def"><code>type FormEventName = 'beforeChange' | 'change' | 'input' | 'click' | 'focus' | 'blur' | 'validated' | 'complete' | 'customColorsChange'</code></p>
|
|
37322
37396
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
37323
37397
|
<h4 id="type-FormGroupEventName">FormGroupEventName</h4>
|
|
37324
37398
|
<p class="section-note">The group's events — the two names its `on()` accepts.</p>
|
|
@@ -38106,7 +38180,7 @@ return `next ${p.mean.toFixed(1)}; r2 ${f.r2.toFixed(1)}; band ${p.upper - p.low
|
|
|
38106
38180
|
<!-- END GENERATED TYPE REFERENCE -->
|
|
38107
38181
|
|
|
38108
38182
|
<footer>
|
|
38109
|
-
Lattice Grid 1.100.
|
|
38183
|
+
Lattice Grid 1.100.1 · Copyright © 2026 TOCLOCO Inc. All rights reserved.
|
|
38110
38184
|
This document describes the behaviour of the shipped library. Where this guide and the code
|
|
38111
38185
|
disagree, the code wins: please <a href="https://www.latticegrid.dev">tell us</a>.
|
|
38112
38186
|
</footer>
|
package/docs/api/adapters.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>Adapters API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Adapters API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
package/docs/api/ai.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>AI API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>AI API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
package/docs/api/alarms.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>Alarms API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Alarms API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
package/docs/api/calendar.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>Calendar API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Calendar API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
package/docs/api/charts.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>Charts API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Charts API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
package/docs/api/dashboard.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>Dashboard API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Dashboard API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>Data router API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Data router API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
package/docs/api/deckgl.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>deck.gl API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>deck.gl API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|
package/docs/api/designer.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Self-contained: no stylesheet, script or font is fetched, so this opens from disk, from
|
|
14
14
|
a file share or from behind a firewall with nothing else present.
|
|
15
15
|
-->
|
|
16
|
-
<title>Designer API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Designer API Reference — Lattice Grid 1.100.1</title>
|
|
17
17
|
<style>
|
|
18
18
|
/* ---------------------------------------------------------------
|
|
19
19
|
Palette lifted from the grid's own theme, so the reference reads as an
|