@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/docs/api/form.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>Form API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Form 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
|
|
@@ -408,6 +408,7 @@
|
|
|
408
408
|
<a class="rail__sub-link" href="#form-file-richtext-example">A file field and a sanitised rich-text editor, executed</a>
|
|
409
409
|
<a class="rail__sub-link" href="#form-file-icon-browse-example">A file drop area with a custom icon and browse word, executed</a>
|
|
410
410
|
<a class="rail__sub-link" href="#form-chips-example">A single-select and a multi-select chips row, executed</a>
|
|
411
|
+
<a class="rail__sub-link" href="#form-color-example">A colour swatch field: palette, custom colours, clearable and read-only, executed</a>
|
|
411
412
|
<a class="rail__sub-link" href="#form-password-otp-example">Password reveal and one-time-code entry, executed</a>
|
|
412
413
|
<a class="rail__sub-link" href="#form-groups">Form groups</a>
|
|
413
414
|
<a href="#ref-form-reference">Type reference</a>
|
|
@@ -1173,7 +1174,7 @@ group.destroy();
|
|
|
1173
1174
|
<code>visibleWhen</code>/<code>readOnlyWhen</code>/<code>requiredWhen</code> rules re-evaluate as values commit; and a
|
|
1174
1175
|
three-step wizard's <code>next()</code>/<code>back()</code>/<code>goToStep()</code> gate each forward move on the step's
|
|
1175
1176
|
validation — with the real Chrome assertions in <code>test/form-browser.test.js</code>.</p>
|
|
1176
|
-
<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');
|
|
1177
|
+
<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');
|
|
1177
1178
|
<span class="kw">const</span> { registerControl, createForm } = <span class="kw">await</span> import('../packages/modules/form/index.js');
|
|
1178
1179
|
|
|
1179
1180
|
<span class="cmt">// A custom control type is a first-class item: it round-trips through the form API.</span>
|
|
@@ -1181,6 +1182,7 @@ registerControl('star', {
|
|
|
1181
1182
|
create(el, item, api) {
|
|
1182
1183
|
<span class="kw">const</span> input = el.ownerDocument.createElement('input');
|
|
1183
1184
|
input.className = 'star-input';
|
|
1185
|
+
input.setAttribute('data-max', String(item.props.max)); // the item's own `props` bag carries the control's settings
|
|
1184
1186
|
el.appendChild(input);
|
|
1185
1187
|
},
|
|
1186
1188
|
getValue(el) { <span class="kw">return</span> el.querySelector('.star-input').value; },
|
|
@@ -1196,7 +1198,7 @@ registerControl('star', {
|
|
|
1196
1198
|
{ type: 'input', name: 'code', label: 'Code' },
|
|
1197
1199
|
] },
|
|
1198
1200
|
{ id: 'two', label: 'Two', rows: [
|
|
1199
|
-
{ type: 'star', name: 'rating', label: 'Rating', value: '3' },
|
|
1201
|
+
{ type: 'star', name: 'rating', label: 'Rating', value: '3', props: { max: 5 } },
|
|
1200
1202
|
{ type: 'input', name: 'note', label: 'Note', visibleWhen: { name: 'rating', equals: '5' } },
|
|
1201
1203
|
{ type: 'input', name: 'review', label: 'Review', readOnlyWhen: { name: 'rating', in: ['4', '5'] } },
|
|
1202
1204
|
] },
|
|
@@ -1601,6 +1603,56 @@ form.setValue({ tags: [<span class="str">'c'</span>, <span class="str">'a'</span
|
|
|
1601
1603
|
<span class="kw">const</span> requiredFails = form.validate(); <span class="cmt">// false — allowEmpty + required, nothing picked</span>
|
|
1602
1604
|
|
|
1603
1605
|
<span class="kw">return</span> [started, clicked, ordered, capped, requiredFails].join('|');</code></pre>
|
|
1606
|
+
<h3 id="form-color-example">A colour swatch field: palette, custom colours, clearable and read-only, executed</h3>
|
|
1607
|
+
<p class="section-note">A <code>color</code> item's swatch or trailing icon opens a popover under the field: the
|
|
1608
|
+
palette view's shared swatch grid (ten hues in five shades, a grey row, and a <code>customColors</code> row),
|
|
1609
|
+
<code>grayShades: false</code> dropping the grey row, <code>clearable</code> adding a control that sets
|
|
1610
|
+
<code>null</code>, <code>editable: false</code> making the text part read-only, and <code>pickerOnly</code> with
|
|
1611
|
+
<code>mode: 'picker'</code> opening straight on the saturation/lightness picker with no palette view — with
|
|
1612
|
+
the keyboard model, the computed swatch colours and the light/dark popover surface asserted in
|
|
1613
|
+
<code>test/form-color-browser.test.js</code>.</p>
|
|
1614
|
+
<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');
|
|
1615
|
+
const { createForm } = await import('../packages/modules/form/index.js');
|
|
1616
|
+
|
|
1617
|
+
const { root } = createTestDom();
|
|
1618
|
+
const form = createForm(root, { rows: [
|
|
1619
|
+
{ type: 'color', name: 'brand', label: 'Brand', value: '#1a2b3c', clearable: true, customColors: ['#112233'] },
|
|
1620
|
+
{ type: 'color', name: 'bg', label: 'Background', grayShades: false },
|
|
1621
|
+
{ type: 'color', name: 'locked', label: 'Locked', value: '#ff0000', editable: false },
|
|
1622
|
+
{ type: 'color', name: 'po', label: 'Picker only', pickerOnly: true, mode: 'picker' },
|
|
1623
|
+
] });
|
|
1624
|
+
|
|
1625
|
+
// Palette view: the shared swatch grid (ten hues x five shades, the grey row, one custom colour).
|
|
1626
|
+
const brandEl = form.getItem('brand').el.querySelector('.lat-form__color');
|
|
1627
|
+
brandEl.querySelector('.lat-form__color-toggle').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
1628
|
+
const popover = brandEl.querySelector('.lat-form__color-popover');
|
|
1629
|
+
const swatchCount = popover.querySelectorAll('.lat-form__swatch').length; // 56 = 50 + grey row (5) + custom (1)
|
|
1630
|
+
popover.querySelectorAll('.lat-form__swatch')[7].dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
1631
|
+
const picked = form.getValue().brand; // the clicked swatch's hex
|
|
1632
|
+
const closed = popover.hidden; // true — a selection closes the popover
|
|
1633
|
+
|
|
1634
|
+
// setValue normalises rgb(); clear sets null.
|
|
1635
|
+
form.getItem('brand').setValue('rgb(255, 0, 0)');
|
|
1636
|
+
const normalized = form.getValue().brand; // '#ff0000'
|
|
1637
|
+
brandEl.querySelector('.lat-form__color-clear').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
1638
|
+
const cleared = form.getValue().brand; // null
|
|
1639
|
+
|
|
1640
|
+
// grayShades: false drops the grey row.
|
|
1641
|
+
const bgEl = form.getItem('bg').el.querySelector('.lat-form__color');
|
|
1642
|
+
bgEl.querySelector('.lat-form__color-toggle').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
1643
|
+
const noGraySwatchCount = bgEl.querySelector('.lat-form__color-popover').querySelectorAll('.lat-form__swatch').length; // 50
|
|
1644
|
+
|
|
1645
|
+
// editable: false leaves the text part read-only.
|
|
1646
|
+
const lockedReadOnly = form.getItem('locked').el.querySelector('.lat-form__color-input').readOnly; // true
|
|
1647
|
+
|
|
1648
|
+
// pickerOnly + mode: 'picker' opens straight on the picker, with no palette and no Back button.
|
|
1649
|
+
const poEl = form.getItem('po').el.querySelector('.lat-form__color');
|
|
1650
|
+
poEl.querySelector('.lat-form__color-toggle').dispatchEvent(new TestEvent('click', { bubbles: true }));
|
|
1651
|
+
const poPopover = poEl.querySelector('.lat-form__color-popover');
|
|
1652
|
+
const poHasPicker = !!poPopover.querySelector('.lat-form__color-picker'); // true
|
|
1653
|
+
const poHasBack = !!poPopover.querySelector('.lat-form__color-back'); // false
|
|
1654
|
+
|
|
1655
|
+
return [swatchCount, picked, closed, normalized, cleared, noGraySwatchCount, lockedReadOnly, poHasPicker, poHasBack].join('|');</code></pre>
|
|
1604
1656
|
<h3 id="form-password-otp-example">Password reveal and one-time-code entry, executed</h3>
|
|
1605
1657
|
<p class="section-note">A <code>password</code> input's reveal button renders inside the field with its catalogue name and
|
|
1606
1658
|
<code>aria-pressed</code>, and <code>reveal: false</code> drops it; an <code>otp</code> item renders <code>length</code>
|
|
@@ -1847,11 +1899,12 @@ shell.destroy();
|
|
|
1847
1899
|
</table>
|
|
1848
1900
|
</div>
|
|
1849
1901
|
<h4 id="type-FormItemConfig">FormItemConfig</h4>
|
|
1850
|
-
<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>
|
|
1902
|
+
<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>
|
|
1851
1903
|
<div class="table-wrap">
|
|
1852
1904
|
<table>
|
|
1853
1905
|
<thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead>
|
|
1854
1906
|
<tbody>
|
|
1907
|
+
<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>
|
|
1855
1908
|
<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>
|
|
1856
1909
|
<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>
|
|
1857
1910
|
<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>
|
|
@@ -1877,7 +1930,7 @@ shell.destroy();
|
|
|
1877
1930
|
<tr><td class="name">subtype</td><td class="type"><a href="types.html#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>
|
|
1878
1931
|
<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>
|
|
1879
1932
|
<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>
|
|
1880
|
-
<tr><td class="name">mode</td><td class="type">'numeric' | 'alphanumeric' | <a href="types.html#type-FormPickerMode">FormPickerMode</a></td><td class="desc">The `otp` characters — `numeric` (default) or `alphanumeric` —
|
|
1933
|
+
<tr><td class="name">mode</td><td class="type">'numeric' | 'alphanumeric' | <a href="types.html#type-FormPickerMode">FormPickerMode</a> | <a href="types.html#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>
|
|
1881
1934
|
<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>
|
|
1882
1935
|
<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>
|
|
1883
1936
|
<tr><td class="name">format</td><td class="type"><a href="grid.html#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>
|
|
@@ -1929,7 +1982,7 @@ shell.destroy();
|
|
|
1929
1982
|
<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>
|
|
1930
1983
|
<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>
|
|
1931
1984
|
<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>
|
|
1932
|
-
<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`),
|
|
1985
|
+
<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>
|
|
1933
1986
|
<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>
|
|
1934
1987
|
<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>
|
|
1935
1988
|
<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>
|
|
@@ -1953,6 +2006,12 @@ shell.destroy();
|
|
|
1953
2006
|
<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>
|
|
1954
2007
|
<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>
|
|
1955
2008
|
<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>
|
|
2009
|
+
<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>
|
|
2010
|
+
<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>
|
|
2011
|
+
<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>
|
|
2012
|
+
<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>
|
|
2013
|
+
<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>
|
|
2014
|
+
<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>
|
|
1956
2015
|
<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>
|
|
1957
2016
|
</tbody>
|
|
1958
2017
|
</table>
|
|
@@ -2124,6 +2183,7 @@ shell.destroy();
|
|
|
2124
2183
|
<tr><td class="name">blur</td><td class="type">FormFocusEvent</td><td class="desc">The item that lost focus.</td></tr>
|
|
2125
2184
|
<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>
|
|
2126
2185
|
<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>
|
|
2186
|
+
<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>
|
|
2127
2187
|
</tbody>
|
|
2128
2188
|
</table>
|
|
2129
2189
|
</div>
|
|
@@ -2150,6 +2210,16 @@ shell.destroy();
|
|
|
2150
2210
|
</tbody>
|
|
2151
2211
|
</table>
|
|
2152
2212
|
</div>
|
|
2213
|
+
<h4 id="type-FormColorCustomColorsEvent">FormColorCustomColorsEvent</h4>
|
|
2214
|
+
<p class="section-note">A `customColorsChange` payload: a `color` item's custom-colours row gained a newly picked colour (BACKLOG-0002252).</p>
|
|
2215
|
+
<div class="table-wrap">
|
|
2216
|
+
<table>
|
|
2217
|
+
<thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead>
|
|
2218
|
+
<tbody>
|
|
2219
|
+
<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>
|
|
2220
|
+
</tbody>
|
|
2221
|
+
</table>
|
|
2222
|
+
</div>
|
|
2153
2223
|
<h4 id="type-FormBeforeChangeEvent">FormBeforeChangeEvent</h4>
|
|
2154
2224
|
<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>
|
|
2155
2225
|
<div class="table-wrap">
|
|
@@ -2287,6 +2357,7 @@ shell.destroy();
|
|
|
2287
2357
|
<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>
|
|
2288
2358
|
<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>
|
|
2289
2359
|
<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>
|
|
2360
|
+
<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>
|
|
2290
2361
|
</tbody>
|
|
2291
2362
|
</table>
|
|
2292
2363
|
</div>
|
package/docs/api/gantt.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>Gantt API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Gantt 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/geometry.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>Geometry API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Geometry 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/grid.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>Grid API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Grid 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
|
|
@@ -1912,7 +1912,7 @@ grid.destroy();
|
|
|
1912
1912
|
<table>
|
|
1913
1913
|
<thead><tr><th>Member</th><th>Returns</th><th>Description</th></tr></thead>
|
|
1914
1914
|
<tbody>
|
|
1915
|
-
<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.
|
|
1915
|
+
<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>
|
|
1916
1916
|
<tr><td class="sig">get(key)</td><td class="type">unknown</td><td class="desc">Read any configuration key.</td></tr>
|
|
1917
1917
|
<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>
|
|
1918
1918
|
<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>
|
package/docs/api/index.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>API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>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
|
|
@@ -455,14 +455,14 @@
|
|
|
455
455
|
<tr><td class="name"><a href="tabs.html">The tabbed grid</a></td><td class="desc"><code>createTabs</code>: a tab strip where each tab holds a grid, a board, a KPI strip or a Gantt, and the tablist keyboard model.</td><td class="type">1</td><td class="type">7</td><td class="type">57</td></tr>
|
|
456
456
|
<tr><td class="name"><a href="layout.html">The dashboard layout</a></td><td class="desc"><code>createLayout</code>: windows a reader moves, resizes and closes, the arrangement saved as plain JSON, locking, and the cancellable gestures.</td><td class="type">1</td><td class="type">15</td><td class="type">133</td></tr>
|
|
457
457
|
<tr><td class="name"><a href="shell.html">The shell module</a></td><td class="desc"><code>createShell</code>: cells nested as rows and columns to any depth, sized by flexbox so the DOM is complete and measured the moment the factory returns.</td><td class="type">1</td><td class="type">25</td><td class="type">153</td></tr>
|
|
458
|
-
<tr><td class="name"><a href="form.html">The form module</a></td><td class="desc"><code>createForm</code>: named items laid out in nested rows and columns, themed by the grid's own density tokens, so the DOM is complete and measured the moment the factory returns.</td><td class="type">1</td><td class="type">
|
|
458
|
+
<tr><td class="name"><a href="form.html">The form module</a></td><td class="desc"><code>createForm</code>: named items laid out in nested rows and columns, themed by the grid's own density tokens, so the DOM is complete and measured the moment the factory returns.</td><td class="type">1</td><td class="type">35</td><td class="type">330</td></tr>
|
|
459
459
|
<tr><td class="name"><a href="dashboard.html">Dashboard composition</a></td><td class="desc"><code>createDashboard</code>: a dashboard described as a JSON spec — a layout, grid, chart, KPI, map and html panels, a source per panel, links between them — built into the wired page, handed back by <code>spec()</code>, and proposed by the AI.</td><td class="type">1</td><td class="type">15</td><td class="type">81</td></tr>
|
|
460
460
|
<tr><td class="name"><a href="designer.html">The Designer</a></td><td class="desc"><code>createDesigner</code>: a dashboard designer whose state is the dashboard spec extended with pages, in edit and view mode, with JSON state in and out.</td><td class="type">1</td><td class="type">63</td><td class="type">406</td></tr>
|
|
461
461
|
<tr><td class="name"><a href="ai.html">The AI narrative and insights layer</a></td><td class="desc">The narrative module: summaries, insights and risk text over what the grid already holds. The <code>grid.ai</code> intent layer is on the grid page.</td><td class="type">1</td><td class="type">17</td><td class="type">124</td></tr>
|
|
462
462
|
<tr><td class="name"><a href="presets.html">Design-system presets</a></td><td class="desc"><code>material3.css</code>, a variable file over the theme token contract; and <code>themeFromMui</code>, which drives the same contract from a real MUI theme.</td><td class="type">1</td><td class="type">2</td><td class="type">5</td></tr>
|
|
463
463
|
<tr><td class="name"><a href="mock-socket.html">The mock socket</a></td><td class="desc">A scripted feed with no backend behind it, for building and demonstrating a live screen.</td><td class="type">1</td><td class="type">1</td><td class="type">3</td></tr>
|
|
464
464
|
<tr><td class="name"><a href="adapters.html">Framework adapters and custom elements</a></td><td class="desc">A component for every view in React, Vue, Svelte and Angular, a custom element per view, declarative init, the compatibility wrapper and htmx.</td><td class="type">5</td><td class="type">33</td><td class="type">198</td></tr>
|
|
465
|
-
<tr><td class="name"><a href="types.html">Types and the glossary</a></td><td class="desc">Every type alias the declarations export, with its definition, and the value and result types the surfaces hand back. Every type name on every page links here.</td><td class="type">0</td><td class="type">
|
|
465
|
+
<tr><td class="name"><a href="types.html">Types and the glossary</a></td><td class="desc">Every type alias the declarations export, with its definition, and the value and result types the surfaces hand back. Every type name on every page links here.</td><td class="type">0</td><td class="type">499</td><td class="type">820</td></tr>
|
|
466
466
|
</tbody>
|
|
467
467
|
</table>
|
|
468
468
|
</div>
|
package/docs/api/kanban.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>Kanban API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Kanban 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/kpi.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>KPI API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>KPI 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/layout.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>Layout API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Layout 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/leaflet.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>Leaflet API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Leaflet 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/list.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>List API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>List 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/mapview.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>Map view API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Map view 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>Mock socket API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Mock socket 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/presets.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>Presets API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Presets 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/scheduler.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>Scheduler API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Scheduler 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/shell.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>Shell API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Shell 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/tabs.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>Tabs API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Tabs 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/types.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>Types API Reference — Lattice Grid 1.100.
|
|
16
|
+
<title>Types 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
|
|
@@ -3026,9 +3026,13 @@
|
|
|
3026
3026
|
<p class="section-note">A button's visual weight: theme-token colours, light and dark.</p>
|
|
3027
3027
|
<p class="type-def"><code>type FormButtonVariant = 'primary' | 'secondary' | 'tonal' | 'outline' | 'text' | 'danger'</code></p>
|
|
3028
3028
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
3029
|
+
<h4 id="type-FormColorMode">FormColorMode</h4>
|
|
3030
|
+
<p class="section-note">The opening view of a `color` item's popover (BACKLOG-0002252): the preset palette (default) or the custom picker.</p>
|
|
3031
|
+
<p class="type-def"><code>type FormColorMode = 'palette' | 'picker'</code></p>
|
|
3032
|
+
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
3029
3033
|
<h4 id="type-FormControlType">FormControlType</h4>
|
|
3030
3034
|
<p class="section-note">The control types a form item may name.</p>
|
|
3031
|
-
<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>
|
|
3035
|
+
<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>
|
|
3032
3036
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
3033
3037
|
<h4 id="type-FormDensity">FormDensity</h4>
|
|
3034
3038
|
<p class="section-note">The density levels a form accepts — the grid's own presets.</p>
|
|
@@ -3036,7 +3040,7 @@
|
|
|
3036
3040
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
3037
3041
|
<h4 id="type-FormEventName">FormEventName</h4>
|
|
3038
3042
|
<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>
|
|
3039
|
-
<p class="type-def"><code>type FormEventName = 'beforeChange' | 'change' | 'input' | 'click' | 'focus' | 'blur' | 'validated' | 'complete'</code></p>
|
|
3043
|
+
<p class="type-def"><code>type FormEventName = 'beforeChange' | 'change' | 'input' | 'click' | 'focus' | 'blur' | 'validated' | 'complete' | 'customColorsChange'</code></p>
|
|
3040
3044
|
<p class="section-note"><small>Declared in <code>lattice-grid/modules/form</code>.</small></p>
|
|
3041
3045
|
<h4 id="type-FormGroupEventName">FormGroupEventName</h4>
|
|
3042
3046
|
<p class="section-note">The group's events — the two names its `on()` accepts.</p>
|
package/docs/api-detail.html
CHANGED
|
@@ -437,7 +437,7 @@
|
|
|
437
437
|
<div class="shell">
|
|
438
438
|
<aside class="rail">
|
|
439
439
|
<p class="rail__brand">Lattice Grid</p>
|
|
440
|
-
<p class="rail__sub">Developer guide · v1.100.
|
|
440
|
+
<p class="rail__sub">Developer guide · v1.100.1</p>
|
|
441
441
|
<nav>
|
|
442
442
|
<div class="rail__group">
|
|
443
443
|
<span class="rail__label">Start here</span>
|
|
@@ -554,7 +554,7 @@
|
|
|
554
554
|
<a href="API.html">reference tables</a> are the shorter version for when you already know.
|
|
555
555
|
</p>
|
|
556
556
|
<p class="chips">
|
|
557
|
-
<span class="chip">Version 1.100.
|
|
557
|
+
<span class="chip">Version 1.100.1</span>
|
|
558
558
|
<span class="chip">Zero dependencies</span>
|
|
559
559
|
<span class="chip">No build step</span>
|
|
560
560
|
</p>
|
|
@@ -1886,7 +1886,7 @@ off(); <span class="cmt">// every subscrip
|
|
|
1886
1886
|
</p>
|
|
1887
1887
|
<div class="example">
|
|
1888
1888
|
<p class="example__label">Which version am I running?</p>
|
|
1889
|
-
<pre><code>grid.getVersion(); <span class="cmt">// '1.100.
|
|
1889
|
+
<pre><code>grid.getVersion(); <span class="cmt">// '1.100.1'</span>
|
|
1890
1890
|
LatticeGrid.getVersion(); <span class="cmt">// the same, when you have no grid to hand</span></code></pre>
|
|
1891
1891
|
</div>
|
|
1892
1892
|
<p class="lead-in">
|
|
@@ -11057,6 +11057,20 @@ return boundCount + '|' + routed;</code></pre>
|
|
|
11057
11057
|
control commits through <code>change</code>, honours <code>beforeChange</code> and the item API,
|
|
11058
11058
|
and follows density and the light/dark theme tokens.
|
|
11059
11059
|
</p>
|
|
11060
|
+
<p class="lead-in">
|
|
11061
|
+
A <code>color</code> item is a swatch field: clicking the swatch or the trailing icon opens a
|
|
11062
|
+
popover under the field (flipped above when there is no room) over a preset <code>palette</code>
|
|
11063
|
+
— rows of hues by shade, defaulting to ten hues in five shades — plus a grey row
|
|
11064
|
+
(<code>grayShades: false</code> drops it) and a row of <code>customColors</code>, extended by
|
|
11065
|
+
every colour picked in a saturation/lightness picker reached through a "Custom colour" button
|
|
11066
|
+
(<code>pickerOnly: true</code> removes the palette view, leaving only the picker;
|
|
11067
|
+
<code>mode: 'picker'</code> opens on it instead). The text part reads and writes the value as hex
|
|
11068
|
+
— <code>editable: false</code> makes it read-only, leaving only the popover to set the value
|
|
11069
|
+
— and <code>clearable: true</code> adds a control that sets <code>null</code>. The value is a
|
|
11070
|
+
lowercase <code>#rrggbb</code> string or <code>null</code>; <code>setValue</code> normalises
|
|
11071
|
+
<code>#rgb</code>, <code>#rrggbb</code> and <code>rgb(r, g, b)</code>, and anything else is
|
|
11072
|
+
refused with a warning, the value unchanged.
|
|
11073
|
+
</p>
|
|
11060
11074
|
<p class="lead-in">
|
|
11061
11075
|
<strong>Help tooltips, read-only locks and field addons attach to any item.</strong> An
|
|
11062
11076
|
item’s <code>tooltip</code> draws a “?” trigger after its label — keyboard
|
|
@@ -13278,7 +13292,7 @@ grid.licence.state(); <span class="cmt">// 'licensed' | 'localhost' | 'trial'<
|
|
|
13278
13292
|
|
|
13279
13293
|
<footer>
|
|
13280
13294
|
<p>
|
|
13281
|
-
Lattice Grid 1.100.
|
|
13295
|
+
Lattice Grid 1.100.1 · Copyright © 2026 TOCLOCO Inc. All rights reserved.
|
|
13282
13296
|
Written against the shipped source. Where this guide and the code disagree, the code wins,
|
|
13283
13297
|
please <a href="https://www.latticegrid.dev">tell us</a>.
|
|
13284
13298
|
</p>
|
package/docs/warnings.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.100.
|
|
2
|
+
"version": "1.100.1",
|
|
3
3
|
"generated": "tools/build.js from docs/warnings/catalogue.json",
|
|
4
4
|
"about": "Every developer-facing diagnostic Lattice Grid prints to the console, by the key it de-duplicates on. The key is the stable identifier: it is the `id` of every reported entry `grid.diagnostics.warnings()` hands back, what the devtools panel lists, and what to quote in a support conversation. A `*` in an id stands for a value filled in at runtime (a column id, a chart id, an event name), so `icon:*` is one entry covering every column the icon renderer refuses.",
|
|
5
5
|
"fields": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"snippet": "the smallest configuration that fixes it, where configuration is the answer",
|
|
15
15
|
"docs": "the section of the API reference that covers the feature"
|
|
16
16
|
},
|
|
17
|
-
"count":
|
|
17
|
+
"count": 746,
|
|
18
18
|
"warnings": [
|
|
19
19
|
{
|
|
20
20
|
"id": "ai:actorbar:no-el",
|
|
@@ -7899,6 +7899,17 @@
|
|
|
7899
7899
|
"fix": "Add the member with the id the rule pins, or correct the id in the rule.",
|
|
7900
7900
|
"snippet": "const group = createFormGroup();\ngroup.add(header, { id: 'header' }); // a rule with { form: 'header' } now resolves",
|
|
7901
7901
|
"docs": "api/form.html#form-module"
|
|
7902
|
+
},
|
|
7903
|
+
{
|
|
7904
|
+
"id": "form.color.setValue",
|
|
7905
|
+
"module": "form",
|
|
7906
|
+
"severity": "warn",
|
|
7907
|
+
"since": "1.100.1",
|
|
7908
|
+
"message": "form.color: \"{value}\" is not a colour (#rgb, #rrggbb or rgb(r, g, b)); the value is unchanged.",
|
|
7909
|
+
"meaning": "A `color` item's `setValue`/`item.setValue()` was given a value that is not a `#rgb`/`#rrggbb` hex string and not an `rgb(r, g, b)` string, so there was nothing to normalise into the item's own value shape. The control keeps its previously committed value (or `null`) rather than writing something it could not make sense of.",
|
|
7910
|
+
"fix": "Give `setValue` a `#rgb`, `#rrggbb` or `rgb(r, g, b)` string.",
|
|
7911
|
+
"snippet": "form.getItem('brand').setValue('#1a2b3c'); // or 'rgb(26, 43, 60)'",
|
|
7912
|
+
"docs": "api/form.html#form-module"
|
|
7902
7913
|
}
|
|
7903
7914
|
]
|
|
7904
7915
|
}
|
package/lattice-grid.d.ts
CHANGED