pict-section-form 1.0.198 → 1.0.199

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.
Files changed (54) hide show
  1. package/README.md +31 -31
  2. package/docs/Comprehensions.md +1 -1
  3. package/docs/Comprehensions_Advanced.md +3 -3
  4. package/docs/Pict_Section_Form_Architecture.md +33 -51
  5. package/docs/README.md +0 -7
  6. package/docs/Templates.md +20 -28
  7. package/docs/_cover.md +11 -0
  8. package/docs/_playground.json +47 -0
  9. package/docs/_sidebar.md +12 -8
  10. package/docs/_version.json +2 -2
  11. package/docs/examples/README.md +32 -41
  12. package/docs/examples/change_tracking/README.md +191 -0
  13. package/docs/examples/change_tracking/change_tracking.js +6685 -0
  14. package/docs/examples/change_tracking/index.html +65 -0
  15. package/docs/examples/dynamic_analysis/README.md +205 -0
  16. package/docs/examples/dynamic_analysis/dynamic_analysis_application.js +5738 -0
  17. package/docs/examples/dynamic_analysis/index.html +128 -0
  18. package/docs/examples/gradebook/README.md +5 -0
  19. package/docs/examples/gradebook/gradebook_application.min.js +1 -0
  20. package/docs/examples/gradebook/index.html +95 -0
  21. package/docs/examples/ndt_field_test/README.md +212 -0
  22. package/docs/examples/ndt_field_test/index.html +436 -0
  23. package/docs/examples/ndt_field_test/ndt_field_test.js +6725 -0
  24. package/docs/examples/scope_mathematics/README.md +171 -0
  25. package/docs/examples/scope_mathematics/index.html +65 -0
  26. package/docs/examples/scope_mathematics/scope_mathematics.js +6685 -0
  27. package/docs/examples/simple_table/README.md +174 -99
  28. package/docs/examples/simple_table/index.html +65 -0
  29. package/docs/examples/simple_table/simple_tabular_application.min.js +1 -0
  30. package/docs/input_providers/009-chart.md +2 -2
  31. package/docs/playground/app.json +4 -0
  32. package/docs/playground/appdata.json +9 -0
  33. package/docs/playground/application.js +58 -0
  34. package/docs/playground/manifest.json +57 -0
  35. package/docs/playground/pict.json +4 -0
  36. package/docs/playground/runtime/pict-application.min.js +2 -0
  37. package/docs/playground/runtime/pict-section-form.min.js +2 -0
  38. package/docs/playground/runtime/pict-section-modal.min.js +2 -0
  39. package/docs/playground/runtime/pict.min.js +12 -0
  40. package/docs/playground.md +93 -0
  41. package/docs/retold-catalog.json +218 -354
  42. package/docs/retold-keyword-index.json +22213 -8967
  43. package/example_applications/change_tracking/package.json +9 -1
  44. package/example_applications/dynamic_analysis/package.json +8 -0
  45. package/example_applications/gradebook/package.json +9 -1
  46. package/example_applications/ndt_field_test/package.json +8 -0
  47. package/example_applications/scope_mathematics/package.json +9 -1
  48. package/example_applications/simple_table/package.json +9 -1
  49. package/package.json +4 -4
  50. package/docs/examples/complex_table/README.md +0 -163
  51. package/docs/examples/complex_tuigrid/README.md +0 -202
  52. package/docs/examples/manyfest_editor/README.md +0 -200
  53. package/docs/examples/simple_distill/README.md +0 -176
  54. package/docs/examples/simple_form/README.md +0 -143
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # PICT Forms Section
2
2
 
3
+ > **[▶ Read the Pict-Section-Form Documentation](https://stevenvelozo.github.io/pict-section-form/)** — an interactive guide with live, runnable examples and the full API reference.
4
+
3
5
  A Form Section with programmatically definable content. Simple, extensible
4
6
  function APIs for adding groups, rows, entry elements and documentation or
5
7
  user workflow guidance.
@@ -269,33 +271,31 @@ of data in your application.
269
271
 
270
272
  ## Documentation
271
273
 
272
- Comprehensive documentation is available in the [docs](docs/) folder:
274
+ The complete documentation — an interactive guide with live examples — is hosted at **[stevenvelozo.github.io/pict-section-form](https://stevenvelozo.github.io/pict-section-form/)**:
273
275
 
274
276
  | Document | Description |
275
277
  |----------|-------------|
276
- | [Getting Started](docs/Getting_Started.md) | Quick start guide for new users |
277
- | [Architecture](docs/Pict_Section_Form_Architecture.md) | System architecture and design |
278
- | [Configuration](docs/Configuration.md) | Complete configuration reference |
279
- | [Input Types](docs/Input_Types.md) | Available input types |
280
- | [Templates](docs/Templates.md) | Template customization and macros |
281
- | [Solvers](docs/Solvers.md) | Expression solver system |
282
- | [Providers](docs/Providers.md) | Provider reference |
283
- | [Layouts](docs/Layouts.md) | Layout types and customization |
278
+ | [Getting Started](https://stevenvelozo.github.io/pict-section-form/#/page/Getting_Started) | Quick start guide for new users |
279
+ | [Architecture](https://stevenvelozo.github.io/pict-section-form/#/page/Pict_Section_Form_Architecture) | System architecture and design |
280
+ | [Configuration](https://stevenvelozo.github.io/pict-section-form/#/page/Configuration) | Complete configuration reference |
281
+ | [Input Types](https://stevenvelozo.github.io/pict-section-form/#/page/Input_Types) | Available input types |
282
+ | [Templates](https://stevenvelozo.github.io/pict-section-form/#/page/Templates) | Template customization and macros |
283
+ | [Solvers](https://stevenvelozo.github.io/pict-section-form/#/page/Solvers) | Expression solver system |
284
+ | [Providers](https://stevenvelozo.github.io/pict-section-form/#/page/Providers) | Provider reference |
285
+ | [Layouts](https://stevenvelozo.github.io/pict-section-form/#/page/Layouts) | Layout types and customization |
284
286
 
285
287
  ### Example Applications
286
288
 
287
- Working examples demonstrating various features:
289
+ Live, runnable example applications — click to open one in your browser:
288
290
 
289
291
  | Example | Description |
290
292
  |---------|-------------|
291
- | [simple_form](docs/examples/simple_form/) | Basic form with solvers and visibility control |
292
- | [simple_table](docs/examples/simple_table/) | Minimal tabular layout example |
293
- | [simple_distill](docs/examples/simple_distill/) | Entity bundles and trigger groups |
294
- | [gradebook](docs/examples/gradebook/) | Multi-table app with localStorage |
295
- | [postcard_example](docs/examples/postcard_example/) | Theme switching and navigation |
296
- | [complex_table](docs/examples/complex_table/) | Full-featured with charts and entity bundles |
297
- | [complex_tuigrid](docs/examples/complex_tuigrid/) | TuiGrid with aggregations |
298
- | [manyfest_editor](docs/examples/manyfest_editor/) | Meta-configuration editor |
293
+ | [Simple Table](https://stevenvelozo.github.io/pict-section-form/examples/simple_table/) | Tabular layout, reference manifests, and dot-notation access into nested data |
294
+ | [Gradebook](https://stevenvelozo.github.io/pict-section-form/examples/gradebook/) | Stacked headers, row labels, dynamic columns, row/column selection, and sorting |
295
+ | [Scope Mathematics](https://stevenvelozo.github.io/pict-section-form/examples/scope_mathematics/) | Solvers that reach across sections and the global form scope |
296
+ | [Change Tracking](https://stevenvelozo.github.io/pict-section-form/examples/change_tracking/) | A change-detecting solver state machine with bidirectional recompute |
297
+ | [NDT Field Test](https://stevenvelozo.github.io/pict-section-form/examples/ndt_field_test/) | Offline persistence, pick lists, pass/fail row solvers, and charts |
298
+ | [Dynamic Analysis](https://stevenvelozo.github.io/pict-section-form/examples/dynamic_analysis/) | Runtime section injection, solver rewriting, and solver-driven charts |
299
299
 
300
300
  ### Input Providers
301
301
 
@@ -303,19 +303,19 @@ Specialized input handlers for different data types:
303
303
 
304
304
  | Provider | Description |
305
305
  |----------|-------------|
306
- | [Select](docs/input_providers/001-select.md) | Dropdown lists with static/dynamic options |
307
- | [DateTime](docs/input_providers/002-datetime.md) | Date and time picker |
308
- | [Markdown](docs/input_providers/003-markdown.md) | Markdown content display |
309
- | [HTML](docs/input_providers/004-html.md) | Raw HTML content display |
310
- | [PreciseNumber](docs/input_providers/005-precise-number.md) | Formatted numbers with precision |
311
- | [Link](docs/input_providers/006-link.md) | Hyperlink inputs |
312
- | [Templated](docs/input_providers/007-templated.md) | Dynamic template rendering |
313
- | [TemplatedEntityLookup](docs/input_providers/008-templated-entity-lookup.md) | Entity fetch with template display |
314
- | [Chart](docs/input_providers/009-chart.md) | Chart.js visualizations |
315
- | [EntityBundleRequest](docs/input_providers/010-entity-bundle-request.md) | Cascading entity fetches |
316
- | [AutofillTriggerGroup](docs/input_providers/011-autofill-trigger-group.md) | Trigger-based autofill |
317
- | [TabGroupSelector](docs/input_providers/012-tab-group-selector.md) | Tab navigation for groups |
318
- | [TabSectionSelector](docs/input_providers/013-tab-section-selector.md) | Tab navigation for sections |
306
+ | [Select](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/001-select) | Dropdown lists with static/dynamic options |
307
+ | [DateTime](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/002-datetime) | Date and time picker |
308
+ | [Markdown](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/003-markdown) | Markdown content display |
309
+ | [HTML](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/004-html) | Raw HTML content display |
310
+ | [PreciseNumber](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/005-precise-number) | Formatted numbers with precision |
311
+ | [Link](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/006-link) | Hyperlink inputs |
312
+ | [Templated](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/007-templated) | Dynamic template rendering |
313
+ | [TemplatedEntityLookup](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/008-templated-entity-lookup) | Entity fetch with template display |
314
+ | [Chart](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/009-chart) | Chart.js visualizations |
315
+ | [EntityBundleRequest](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/010-entity-bundle-request) | Cascading entity fetches |
316
+ | [AutofillTriggerGroup](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/011-autofill-trigger-group) | Trigger-based autofill |
317
+ | [TabGroupSelector](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/012-tab-group-selector) | Tab navigation for groups |
318
+ | [TabSectionSelector](https://stevenvelozo.github.io/pict-section-form/#/page/input_providers/013-tab-section-selector) | Tab navigation for sections |
319
319
 
320
320
  ## Installation
321
321
 
@@ -175,7 +175,7 @@ upserts, idempotency.
175
175
  addresses, computed contexts, per-row `MAP VAR` generation, customized
176
176
  destinations.
177
177
  - [Solvers](Solvers.md) — full solver function reference.
178
- - The [Complex Table example](../example_applications/complex_table/Complex-Tabular-Application.js)
178
+ - The Complex Table example (`example_applications/complex_table/Complex-Tabular-Application.js`)
179
179
  builds a complete `RecipeWorkflowComprehensions` tree with `OnSave` and
180
180
  `OnApprovalAction.{Submit,Approve}` contexts off the Recipe section and the
181
181
  FruitGrid recordset.
@@ -13,7 +13,7 @@ This document goes deeper than [Comprehensions](Comprehensions.md):
13
13
  - **Resetting between solves**.
14
14
 
15
15
  The complete worked example for everything here lives at
16
- [`example_applications/complex_table/Complex-Tabular-Application.js`](../example_applications/complex_table/Complex-Tabular-Application.js)
16
+ `example_applications/complex_table/Complex-Tabular-Application.js`
17
17
  — if you only read one thing, read that file. This page explains the *why* behind
18
18
  the patterns it uses.
19
19
 
@@ -147,7 +147,7 @@ mirroring the existing `viewMarshalDestination` knob — that controls where
147
147
 
148
148
  ### Option 1: in the application constructor
149
149
 
150
- This is what the [complex_table example](../example_applications/complex_table/Complex-Tabular-Application.js)
150
+ This is what the complex_table example (`example_applications/complex_table/Complex-Tabular-Application.js`)
151
151
  does. After `super()` (which registers the metacontroller view via
152
152
  `PictFormApplication`), set the destination directly:
153
153
 
@@ -240,7 +240,7 @@ missing-or-emptied destination by re-materializing it on the next write.
240
240
 
241
241
  ## Full reference: the complex_table sample config
242
242
 
243
- The [complex_table example](../example_applications/complex_table/Complex-Tabular-Application.js)
243
+ The complex_table example (`example_applications/complex_table/Complex-Tabular-Application.js`)
244
244
  exercises every pattern on this page in one application. The relevant pieces:
245
245
 
246
246
  ```js
@@ -32,24 +32,11 @@ The framework follows several key principles:
32
32
 
33
33
  The view layer consists of two primary classes:
34
34
 
35
- ```
36
- ┌─────────────────────────────────────────────────────────────────┐
37
- PictFormMetacontroller
38
- │ - Manages multiple form sections │
39
- │ - Orchestrates data marshaling │
40
- │ - Controls solver execution │
41
- │ - Handles initial bundle loading │
42
- └─────────────────────────────────────────────────────────────────┘
43
-
44
- │ manages
45
-
46
- ┌─────────────────────────────────────────────────────────────────┐
47
- │ PictViewDynamicForm │
48
- │ - Represents a single form section │
49
- │ - Maintains section manifest instance │
50
- │ - Handles input provider lifecycle │
51
- │ - Manages group and row structures │
52
- └─────────────────────────────────────────────────────────────────┘
35
+ ```mermaid
36
+ flowchart TD
37
+ MC["PictFormMetacontroller<br/>• Manages multiple form sections<br/>• Orchestrates data marshaling<br/>• Controls solver execution<br/>• Handles initial bundle loading"]
38
+ DF["PictViewDynamicForm<br/>• Represents a single form section<br/>• Maintains section manifest instance<br/>• Handles input provider lifecycle<br/>• Manages group and row structures"]
39
+ MC -->|manages| DF
53
40
  ```
54
41
 
55
42
  **PictViewDynamicForm** extends `pict-view` and represents a single form section.
@@ -95,29 +82,24 @@ for export and editing.
95
82
 
96
83
  ### Rendering Flow
97
84
 
98
- ```
99
- 1. Application instantiates PictFormMetacontroller
100
- 2. For each Section in manifest:
101
- a. PictViewDynamicForm is created
102
- b. ManifestFactory parses descriptors into groups and rows
103
- c. MetatemplateGenerator creates layout templates
104
- 3. Forms are rendered to DOM using template hierarchy
105
- 4. Solvers are executed (expressions resolve values)
106
- 5. Input providers initialize UI controls
107
- 6. Event handlers attach for changes
108
- ```
85
+ 1. The application instantiates the `PictFormMetacontroller`.
86
+ 2. For each section in the manifest, a `PictViewDynamicForm` is created,
87
+ `ManifestFactory` parses its descriptors into groups and rows, and
88
+ `MetatemplateGenerator` builds the layout templates.
89
+ 3. The forms render to the DOM through the template hierarchy.
90
+ 4. Solvers execute expressions resolve their values.
91
+ 5. Input providers initialize the UI controls.
92
+ 6. Event handlers attach for change detection.
109
93
 
110
94
  ### Data Change Flow
111
95
 
112
- ```
113
- 1. User modifies input value
114
- 2. dataChanged() called on PictViewDynamicForm
115
- 3. Informary marshals specific input from DOM to AppData
116
- 4. Input providers run onDataChange hooks
117
- 5. Application.solve() executes all solvers
118
- 6. Metacontroller marshals all sections back to view
119
- 7. Input providers run onDataMarshalToForm hooks
120
- ```
96
+ 1. The user modifies an input value.
97
+ 2. `dataChanged()` is called on the `PictViewDynamicForm`.
98
+ 3. Informary marshals that input from the DOM into `AppData`.
99
+ 4. Input providers run their `onDataChange` hooks.
100
+ 5. `Application.solve()` executes all solvers.
101
+ 6. The metacontroller marshals every section back to the view.
102
+ 7. Input providers run their `onDataMarshalToForm` hooks.
121
103
 
122
104
  ### Marshal Operations
123
105
 
@@ -131,19 +113,19 @@ to map form elements to their corresponding data addresses.
131
113
 
132
114
  Templates are rendered in a strict hierarchy:
133
115
 
134
- ```
135
- Form Container
136
- └── Section (for each)
137
- ├── Section Prefix
138
- └── Group (for each)
139
- ├── Group Prefix
140
- └── Row (for each)
141
- ├── Row Prefix
142
- ├── Input (for each)
143
- │ └── Input Template (by InputType or DataType)
144
- └── Row Postfix
145
- └── Group Postfix
146
- └── Section Postfix
116
+ ```mermaid
117
+ flowchart TD
118
+ FC["Form Container"] --> S["Section (for each)"]
119
+ S --> SP["Section Prefix"]
120
+ S --> G["Group (for each)"]
121
+ S --> SX["Section Postfix"]
122
+ G --> GP["Group Prefix"]
123
+ G --> R["Row (for each)"]
124
+ G --> GX["Group Postfix"]
125
+ R --> RP["Row Prefix"]
126
+ R --> I["Input (for each)"]
127
+ R --> RX["Row Postfix"]
128
+ I --> IT["Input Template (by InputType or DataType)"]
147
129
  ```
148
130
 
149
131
  Templates support three levels of customization:
package/docs/README.md CHANGED
@@ -73,13 +73,6 @@ npm install pict-section-form
73
73
  - [Providers](Providers.md) - Provider reference
74
74
  - [Layouts](Layouts.md) - Layout types and customization
75
75
 
76
- ## Example Applications
77
-
78
- - [simple_form](examples/simple_form/) - Basic form with solvers and visibility control
79
- - [simple_table](examples/simple_table/) - Minimal tabular layout example
80
- - [gradebook](examples/gradebook/) - Advanced tabular recordsets: stacked headers, row labels, dynamic columns, selection, sorting
81
- - [complex_table](examples/complex_table/) - Full-featured with charts and entity bundles
82
-
83
76
  ## Related Packages
84
77
 
85
78
  - [pict](https://github.com/stevenvelozo/pict) - Core application framework
package/docs/Templates.md CHANGED
@@ -7,34 +7,26 @@ Templates can be customized at multiple levels to achieve any desired appearance
7
7
 
8
8
  Templates are rendered in a strict hierarchical order:
9
9
 
10
- ```
11
- Form Level
12
- ├── -Template-Form-Container-Header
13
- ├── -Template-Form-Container-Wrap-Prefix
14
-
15
- └── For each Section:
16
- ├── -Template-Form-Container
17
-
18
- └── -Template-Wrap-Prefix
19
- ├── -Template-Section-Prefix
20
-
21
- └── For each Group:
22
- ├── -Template-Group-Prefix
23
-
24
- └── For each Row:
25
- ├── -Template-Row-Prefix
26
- │ ├── For each Input:
27
- │ │ └── -Template-Input-InputType-{type}
28
- │ │ OR -Template-Input-DataType-{type}
29
- │ │ OR -TabularTemplate-*
30
- │ └── -Template-Row-Postfix
31
-
32
- └── -Template-Group-Postfix
33
-
34
- └── -Template-Section-Postfix
35
- └── -Template-Wrap-Postfix
36
-
37
- └── -Template-Form-Container-Wrap-Postfix
10
+ ```mermaid
11
+ flowchart TD
12
+ F["Form Level"]
13
+ F --> FH["-Template-Form-Container-Header"]
14
+ F --> FWP["-Template-Form-Container-Wrap-Prefix"]
15
+ F --> SEC["For each Section"]
16
+ F --> FWX["-Template-Form-Container-Wrap-Postfix"]
17
+ SEC --> TFC["-Template-Form-Container"]
18
+ SEC --> WP["-Template-Wrap-Prefix"]
19
+ SEC --> WX["-Template-Wrap-Postfix"]
20
+ WP --> SP["-Template-Section-Prefix"]
21
+ WP --> GRP["For each Group"]
22
+ WP --> SX["-Template-Section-Postfix"]
23
+ GRP --> GP["-Template-Group-Prefix"]
24
+ GRP --> ROW["For each Row"]
25
+ GRP --> GX["-Template-Group-Postfix"]
26
+ ROW --> RP["-Template-Row-Prefix"]
27
+ ROW --> INP["For each Input"]
28
+ ROW --> RX["-Template-Row-Postfix"]
29
+ INP --> IT["-Template-Input-InputType-… or<br/>-Template-Input-DataType-… or<br/>-TabularTemplate-…"]
38
30
  ```
39
31
 
40
32
  ## Template Resolution
package/docs/_cover.md CHANGED
@@ -9,3 +9,14 @@
9
9
 
10
10
  [GitHub](https://github.com/stevenvelozo/pict-section-form)
11
11
  [Get Started](#pict-section-form)
12
+
13
+ <!-- docuserve:examples:start -->
14
+ | Example | Complexity | Launch |
15
+ |---------|------------|--------|
16
+ | [Change Tracking](examples/change%5Ftracking/README.md) | Intermediate | [&#9654; Launch](examples/change%5Ftracking/index.html) |
17
+ | [Dynamic Analysis](examples/dynamic%5Fanalysis/README.md) | Advanced | [&#9654; Launch](examples/dynamic%5Fanalysis/index.html) |
18
+ | [Gradebook](examples/gradebook/README.md) | Intermediate | [&#9654; Launch](examples/gradebook/index.html) |
19
+ | [NDT Field Test](examples/ndt%5Ffield%5Ftest/README.md) | Advanced | [&#9654; Launch](examples/ndt%5Ffield%5Ftest/index.html) |
20
+ | [Scope Mathematics](examples/scope%5Fmathematics/README.md) | Intermediate | [&#9654; Launch](examples/scope%5Fmathematics/index.html) |
21
+ | [Simple Table](examples/simple%5Ftable/README.md) | Basic | [&#9654; Launch](examples/simple%5Ftable/index.html) |
22
+ <!-- docuserve:examples:end -->
@@ -0,0 +1,47 @@
1
+ {
2
+ "Kind": "section",
3
+ "SectionType": "pict-section-form",
4
+ "ApplicationModule": "PictSectionForm",
5
+ "ApplicationGlobal": "PictFormApplication",
6
+ "ManifestKey": "DefaultFormManifest",
7
+ "Editors":
8
+ [
9
+ {
10
+ "Hash": "manifest",
11
+ "Label": "Form Manifest",
12
+ "Language": "json",
13
+ "DefaultPath": "playground/manifest.json"
14
+ },
15
+ {
16
+ "Hash": "pictConfig",
17
+ "Label": "Pict Config",
18
+ "Language": "json",
19
+ "DefaultPath": "playground/pict.json"
20
+ },
21
+ {
22
+ "Hash": "appConfig",
23
+ "Label": "App Config",
24
+ "Language": "json",
25
+ "DefaultPath": "playground/app.json"
26
+ },
27
+ {
28
+ "Hash": "appData",
29
+ "Label": "Initial AppData",
30
+ "Language": "json",
31
+ "DefaultPath": "playground/appdata.json"
32
+ },
33
+ {
34
+ "Hash": "application",
35
+ "Label": "Application Code",
36
+ "Language": "javascript",
37
+ "DefaultPath": "playground/application.js"
38
+ }
39
+ ],
40
+ "Imports":
41
+ [
42
+ { "Name": "pict", "Source": "local", "Path": "playground/runtime/pict.min.js" },
43
+ { "Name": "pict-application", "Source": "local", "Path": "playground/runtime/pict-application.min.js" },
44
+ { "Name": "pict-section-modal", "Source": "local", "Path": "playground/runtime/pict-section-modal.min.js" },
45
+ { "Name": "pict-section-form", "Source": "local", "Path": "playground/runtime/pict-section-form.min.js" }
46
+ ]
47
+ }
package/docs/_sidebar.md CHANGED
@@ -18,6 +18,11 @@
18
18
  - [Comprehensions — Advanced](Comprehensions_Advanced.md)
19
19
  - [Providers](Providers.md)
20
20
 
21
+ - Playground
22
+
23
+ - [Overview](playground.md)
24
+ - [Open the Playground](#/playground/section)
25
+
21
26
  - Input Providers
22
27
 
23
28
  - [Select](input_providers/001-select.md)
@@ -36,11 +41,10 @@
36
41
 
37
42
  - Examples
38
43
 
39
- - [Simple Form](examples/simple_form/)
40
- - [Simple Table](examples/simple_table/)
41
- - [Simple Distill](examples/simple_distill/)
42
- - [Gradebook](examples/gradebook/)
43
- - [Postcard Example](examples/postcard_example/)
44
- - [Complex Table](examples/complex_table/)
45
- - [Complex TuiGrid](examples/complex_tuigrid/)
46
- - [Manyfest Editor](examples/manyfest_editor/)
44
+ - [Simple Table](#/page/examples/simple_table/README)
45
+ - [Gradebook](#/page/examples/gradebook/README)
46
+ - [Postcard Example](#/page/examples/postcard_example/README)
47
+ - [Scope Mathematics](#/page/examples/scope_mathematics/README)
48
+ - [Change Tracking](#/page/examples/change_tracking/README)
49
+ - [NDT Field Test](#/page/examples/ndt_field_test/README)
50
+ - [Dynamic Analysis](#/page/examples/dynamic_analysis/README)
@@ -2,6 +2,6 @@
2
2
  "Name": "pict-section-form",
3
3
  "Version": "1.0.198",
4
4
  "Description": "Pict dynamic form sections",
5
- "GeneratedAt": "2026-05-22T01:39:07.526Z",
6
- "GitCommit": "6af8e90"
5
+ "GeneratedAt": "2026-05-23T01:53:55.537Z",
6
+ "GitCommit": "aa22a69"
7
7
  }
@@ -8,34 +8,20 @@ and patterns.
8
8
 
9
9
  | Example | Complexity | Key Features |
10
10
  |---------|------------|--------------|
11
- | [simple_form](simple_form/) | Basic | Calculated fields, visibility control, solvers |
12
- | [simple_table](simple_table/) | Basic | Tabular layout, nested data, reference manifests |
13
- | [simple_distill](simple_distill/) | Intermediate | Entity bundles, trigger groups, templated inputs |
14
- | [gradebook](gradebook/) | Intermediate | Stacked headers, row labels, dynamic columns, selection, sorting |
15
- | [postcard_example](postcard_example/) | Intermediate | Theme switching, navigation, custom providers |
16
- | [complex_table](complex_table/) | Advanced | Charts, row solvers, entity requests, pick lists |
17
- | [complex_tuigrid](complex_tuigrid/) | Advanced | TuiGrid, aggregations, DateTime inputs |
18
- | [manyfest_editor](manyfest_editor/) | Advanced | Multiple views, JSON editor, routing |
11
+ | [simple_table](simple_table/README.md) | Basic | Tabular layout, nested data, reference manifests |
12
+ | [gradebook](gradebook/README.md) | Intermediate | Stacked headers, row labels, dynamic columns, selection, sorting |
13
+ | [postcard_example](postcard_example/README.md) | Intermediate | Theme switching, navigation, custom providers |
19
14
 
20
15
  ## Learning Path
21
16
 
22
17
  ### Getting Started
23
- 1. **[simple_form](simple_form/)** - Learn basic form configuration, solvers, and
24
- visibility control
25
- 2. **[simple_table](simple_table/)** - Understand tabular layouts and reference
18
+ 1. **[simple_table](simple_table/README.md)** - Understand tabular layouts and reference
26
19
  manifests
27
20
 
28
21
  ### Intermediate Patterns
29
- 3. **[gradebook](gradebook/)** - Advanced tabular recordsets: stacked headers,
22
+ 2. **[gradebook](gradebook/README.md)** - Advanced tabular recordsets: stacked headers,
30
23
  row labels, dynamic columns, selection, sorting, and styling solvers
31
- 4. **[postcard_example](postcard_example/)** - Theme system and navigation patterns
32
- 5. **[simple_distill](simple_distill/)** - Entity relationships and trigger groups
33
-
34
- ### Advanced Features
35
- 6. **[complex_table](complex_table/)** - Full-featured application with charts,
36
- entity bundles, and row-level solvers
37
- 7. **[complex_tuigrid](complex_tuigrid/)** - TuiGrid integration with aggregations
38
- 8. **[manyfest_editor](manyfest_editor/)** - Meta-configuration with multiple view types
24
+ 3. **[postcard_example](postcard_example/README.md)** - Theme system and navigation patterns
39
25
 
40
26
  ## Common Patterns Across Examples
41
27
 
@@ -93,24 +79,29 @@ node ServeExamples.js
93
79
 
94
80
  ## Feature Matrix
95
81
 
96
- | Feature | simple_form | simple_table | simple_distill | gradebook | postcard | complex_table | complex_tuigrid | manyfest_editor |
97
- |---------|:-----------:|:------------:|:--------------:|:---------:|:--------:|:-------------:|:---------------:|:---------------:|
98
- | Basic Inputs | [x] | [x] | [x] | [x] | [x] | [x] | [x] | [x] |
99
- | Tabular Layout | | [x] | | [x] | | [x] | | [x] |
100
- | TuiGrid | | | | | | | [x] | [x] |
101
- | Solvers | [x] | | [x] | [x] | | [x] | [x] | |
102
- | Row Solvers | | | | [x] | | [x] | [x] | |
103
- | Pick Lists | | | [x] | | | [x] | [x] | |
104
- | Entity Bundles | | | [x] | | | [x] | | |
105
- | Trigger Groups | | | [x] | | | [x] | | |
106
- | localStorage | | | | | | | | [x] |
107
- | Custom Themes | | | | | [x] | | | |
108
- | Navigation | | | | [x] | [x] | | | [x] |
109
- | Charts | | | | | | [x] | | |
110
- | DateTime | | | | | | [x] | [x] | |
111
- | JSON Editor | | | | | | | | [x] |
112
- | Stacked Headers | | | | [x] | | | | |
113
- | Row Labels | | | | [x] | | | | |
114
- | Dynamic Columns | | | | [x] | | | | |
115
- | Row/Column Selection | | | | [x] | | | | |
116
- | Column Sorting | | | | [x] | | | | |
82
+ | Feature | simple_table | gradebook | postcard |
83
+ |---------|:------------:|:---------:|:--------:|
84
+ | Basic Inputs | [x] | [x] | [x] |
85
+ | Tabular Layout | [x] | [x] | |
86
+ | Solvers | | [x] | |
87
+ | Row Solvers | | [x] | |
88
+ | Custom Themes | | | [x] |
89
+ | Navigation | | [x] | [x] |
90
+ | Stacked Headers | | [x] | |
91
+ | Row Labels | | [x] | |
92
+ | Dynamic Columns | | [x] | |
93
+ | Row/Column Selection | | [x] | |
94
+ | Column Sorting | | [x] | |
95
+
96
+ ## Live Examples
97
+
98
+ <!-- docuserve:examples-index:start -->
99
+ | Example | Complexity | Summary | Live |
100
+ |---------|------------|---------|------|
101
+ | [Change Tracking](change%5Ftracking/README.md) | Intermediate | Demonstrates the multi-input evaluate-on-change solver pattern for reacting to several fields at once. | [&#9654; Launch](examples/change%5Ftracking/index.html) |
102
+ | [Dynamic Analysis](dynamic%5Fanalysis/README.md) | Advanced | A fruit-nutrition analysis lab with dynamic section injection, solver rewriting, charts, and histograms. | [&#9654; Launch](examples/dynamic%5Fanalysis/index.html) |
103
+ | [Gradebook](gradebook/README.md) | Intermediate | An advanced tabular recordset with stacked headers, row labels, dynamic columns, row/column selection, and column sorting — built purely from manifest configuration. | [&#9654; Launch](examples/gradebook/index.html) |
104
+ | [NDT Field Test](ndt%5Ffield%5Ftest/README.md) | Advanced | A nuclear-density-testing field data-collection form with offline persistence and charted results. | [&#9654; Launch](examples/ndt%5Ffield%5Ftest/index.html) |
105
+ | [Scope Mathematics](scope%5Fmathematics/README.md) | Intermediate | Shows solvers reaching across scopes to read and combine data from other sections of the form. | [&#9654; Launch](examples/scope%5Fmathematics/index.html) |
106
+ | [Simple Table](simple%5Ftable/README.md) | Basic | A minimal tabular forms application demonstrating manifest-driven table layout, reference manifests, and dot-notation access into nested record data. | [&#9654; Launch](examples/simple%5Ftable/index.html) |
107
+ <!-- docuserve:examples-index:end -->