From 25ca132c9ab0862bf7d017b9293f9d4a429ebcd3 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 9 Aug 2026 15:28:15 +0000 Subject: [PATCH] refactor(fields)!: host docs field examples in a real form, remove registerFields + createFieldRenderer (#3910) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ruling B of #3798 (maintainer-confirmed), the remove side of #3308's "one registration path" intent. PR #3793 corrected the misleading `@deprecated` note first and is the safety net this builds on. The docs field demos rendered a BARE field node as a labelled, editable input, which no application can do: on the live path a bare field node has no host for its label or its value. That only worked because the docs site registered a demo-only adapter over the same `field:` keys the live path owns. The field docs are a first-hand transcription source for AI authors, so they were teaching a shape that does not work. - catalog: 74 bare-node examples under `examples/schema-catalog/src/schemas/ fields-*` become `{ type: 'form', showSubmit: false, showCancel: false, fields: [...] }` (2 were already form-hosted). A node's `value` moves to the form's `defaultValues`: the form spreads react-hook-form's state after the schema props, so a field-level `value` is silently ignored (measured — field-level yields an empty input, form-level yields the value). All 74 round-trip to their original content with `value` relocated and nothing else added or dropped. - fields: delete `registerFields()` and `createFieldRenderer()`, plus the 37 static widget imports that existed only to feed the wrapper. Tombstones record why, and carry forward the `capability-multiselect` tombstone that lived inside the removed function. - site: `ObjectUIProvider` drops the `registerFields()` call for a side-effect import; the module's `registerAllFields()` is the one seam. - three widget comments credited the `field.field` nesting to the deleted wrapper, which never produced it — re-pointed at the form renderer's declared metadata slot (#3090), the real producer. The 26 `content/docs/fields/*.mdx` pages need no edits: each consumes only `` (76 references, one per catalog example). New catalog pins: every `fields-*` example is form-rooted, carries no dead field-level `value`, and renders a real `form` with its label in the field's own chrome; three value-bearing examples assert the seeded value reaches the DOM. Reverse-verified — restoring either limb turns exactly these red. --- .changeset/fields-catalog-form-hosted-3910.md | 16 + apps/site/app/components/ObjectUIProvider.tsx | 13 +- .../fields-auto-number/basic-autonumber.json | 19 +- .../date-based-ticket-id.json | 21 +- .../invoice-number-format.json | 21 +- .../schemas/fields-boolean/basic-switch.json | 13 +- .../schemas/fields-boolean/pre-checked.json | 17 +- .../fields-boolean/with-description.json | 15 +- .../fields-currency/euro-currency.json | 17 +- .../schemas/fields-currency/usd-currency.json | 17 +- .../fields-date/basic-date-picker.json | 15 +- .../fields-date/with-default-date.json | 17 +- .../fields-datetime/basic-datetime-field.json | 15 +- .../fields-datetime/read-only-datetime.json | 19 +- .../fields-datetime/required-datetime.json | 15 +- .../fields-datetime/with-default-value.json | 17 +- .../fields-email/basic-email-field.json | 15 +- .../schemas/fields-email/required-email.json | 17 +- .../fields-file/basic-file-upload.json | 13 +- .../fields-file/multiple-file-upload.json | 15 +- .../schemas/fields-file/pdf-files-only.json | 21 +- .../fields-formula/date-calculation.json | 19 +- .../fields-formula/numeric-formula.json | 19 +- .../fields-formula/text-concatenation.json | 23 +- .../src/schemas/fields-grid/basic-grid.json | 41 +- .../schemas/fields-grid/grid-with-data.json | 77 +- .../schemas/fields-grid/read-only-grid.json | 69 +- .../fields-image/basic-image-upload.json | 13 +- .../fields-image/multiple-image-upload.json | 15 +- .../fields-location/basic-location-field.json | 15 +- .../fields-location/read-only-location.json | 23 +- .../san-francisco-coordinates.json | 23 +- .../schemas/fields-lookup/basic-lookup.json | 39 +- .../fields-lookup/multi-select-lookup.json | 41 +- .../fields-number/basic-number-field.json | 15 +- .../fields-number/decimal-numbers.json | 17 +- .../fields-number/range-validation.json | 19 +- .../fields-object/basic-object-editor.json | 15 +- .../fields-object/nested-object-data.json | 33 +- .../fields-object/read-only-json-display.json | 27 +- .../structured-configuration.json | 23 +- .../fields-password/basic-password-field.json | 15 +- .../password-confirmation.json | 17 +- .../fields-password/with-minimum-length.json | 19 +- .../fields-percent/basic-percent-field.json | 15 +- .../fields-percent/read-only-percent.json | 19 +- .../fields-percent/required-percent.json | 17 +- .../with-decimal-precision.json | 19 +- .../fields-phone/basic-phone-field.json | 15 +- .../schemas/fields-phone/required-phone.json | 17 +- .../schemas/fields-rich-text/html-editor.json | 17 +- .../fields-rich-text/markdown-editor.json | 17 +- .../schemas/fields-select/basic-select.json | 37 +- .../fields-select/colored-options.json | 53 +- .../schemas/fields-select/multi-select.json | 55 +- .../average-of-field-values.json | 25 +- .../count-of-related-records.json | 25 +- .../fields-summary/sum-of-field-values.json | 25 +- .../schemas/fields-text/basic-text-field.json | 15 +- .../schemas/fields-text/read-only-field.json | 19 +- .../schemas/fields-text/required-field.json | 17 +- .../schemas/fields-text/with-placeholder.json | 15 +- .../fields-textarea/basic-textarea.json | 17 +- .../fields-textarea/larger-textarea.json | 17 +- .../fields-textarea/required-textarea.json | 19 +- .../schemas/fields-time/basic-time-field.json | 15 +- .../schemas/fields-time/read-only-time.json | 19 +- .../schemas/fields-time/required-time.json | 15 +- .../fields-time/with-default-value.json | 17 +- .../schemas/fields-url/basic-url-field.json | 15 +- .../src/schemas/fields-url/required-url.json | 17 +- .../fields-user/multiple-user-selection.json | 15 +- .../fields-user/record-owner-read-only.json | 15 +- .../fields-user/single-user-selection.json | 13 +- .../fields-vector/basic-vector-display.json | 31 +- .../high-dimensional-vector.json | 3093 +++++++++-------- .../test/fields-form-hosted.test.tsx | 157 + .../capability-multiselect-retired.test.ts | 80 +- packages/fields/src/complex-widgets.test.tsx | 11 +- packages/fields/src/index.tsx | 273 +- .../widgets/CapabilityMultiSelectField.tsx | 7 +- packages/fields/src/widgets/LookupField.tsx | 10 +- packages/fields/src/widgets/UserField.tsx | 5 +- 83 files changed, 2924 insertions(+), 2324 deletions(-) create mode 100644 .changeset/fields-catalog-form-hosted-3910.md create mode 100644 examples/schema-catalog/test/fields-form-hosted.test.tsx diff --git a/.changeset/fields-catalog-form-hosted-3910.md b/.changeset/fields-catalog-form-hosted-3910.md new file mode 100644 index 0000000000..90fa635b38 --- /dev/null +++ b/.changeset/fields-catalog-form-hosted-3910.md @@ -0,0 +1,16 @@ +--- +"@object-ui/fields": minor +--- + +fields: remove the docs-demo registration path (`registerFields` + `createFieldRenderer`), and host the docs field examples in a real form + +**Breaking (shipped as `minor` per AGENTS.md §版本号策略 — objectui's major tracks `@objectstack`, so the repo's own breaking changes are `minor` with the break spelled out here):** two public exports are removed from `@object-ui/fields`: + +- `registerFields()` — registered every widget under the same `field:` keys as `registerAllFields()`, but wrapped in a demo-only renderer. Two paths writing the same registry keys meant whoever ran LAST won it for every consumer sharing the registry. +- `createFieldRenderer()` — that wrapper. It synthesized a `label`, a description, and a local `useState`/`onChange` around a widget. + +**Migration:** there is nothing to migrate for an application. `registerAllFields()` runs on import of `@object-ui/fields` and is the one registration seam (`registerField(type)` for a single type); no shipped application ever called the removed pair — the docs site was the only caller. Code that rendered a **bare field node** standalone (`{ type: 'currency', label: 'Amount' }`) and relied on the wrapper for label and value state must host the field in a form instead: `{ type: 'form', fields: [{ name: 'amount', label: 'Amount', type: 'currency' }] }`. Seed values through the form's `defaultValues`, not a field-level `value`. + +**Why the removal rather than a relocation** (ruling B of objectui#3798, confirmed by the maintainer; objectui#3308 is the origin, PR #3793 the safety net that first corrected the misleading `@deprecated` note): the wrapper existed only so the documentation could render a bare field node as a labelled, editable input. No application produces that rendering — on the live path a bare field node has no host for its label or its value. So the field docs, which are a first-hand transcription source for AI authors, were teaching a shape that does not work, and an author copying it got a node with neither label nor `onChange`. Relocating the wrapper into the docs site would have preserved that divergence under a new owner. Hosting the examples in a real form removes the reason for the wrapper to exist: the form renderer already owns label and value state, so the docs can only show what an application actually renders. + +The 74 bare-node examples under `examples/schema-catalog/src/schemas/fields-*` are now form-hosted (the other 2 already were). A field's `value` moved to the form's `defaultValues`, because the form renderer spreads react-hook-form's state after the schema props and a field-level `value` is therefore ignored — a catalog guard now pins that so a dead `value` cannot come back. diff --git a/apps/site/app/components/ObjectUIProvider.tsx b/apps/site/app/components/ObjectUIProvider.tsx index 35c2165abb..6abb41156b 100644 --- a/apps/site/app/components/ObjectUIProvider.tsx +++ b/apps/site/app/components/ObjectUIProvider.tsx @@ -2,7 +2,15 @@ // Import components to trigger registration import { initializeComponents } from '@object-ui/components'; -import { registerFields } from '@object-ui/fields'; +// Side-effect import: the module runs `registerAllFields()` at load, which is the +// ONE registration path (objectui#3308). The docs site used to also call +// `registerFields()` here — the demo adapter that re-registered every +// `field:` key wrapped in synthesized label/state chrome, so the docs +// rendered bare field nodes in a way no real application does. Ruling B of +// objectui#3798 removed it: the catalog's field examples are form-hosted +// (`{ type: 'form', fields: [...] }`) and the real form renderer owns the label +// and the value state (objectui#3910). +import '@object-ui/fields'; import { ComponentRegistry } from '@object-ui/core'; import { useEffect } from 'react'; @@ -10,8 +18,7 @@ export function ObjectUIProvider({ children }: { children: React.ReactNode }) { // Explicitly call init to ensure components are registered useEffect(() => { initializeComponents(); - registerFields(); - + // Wait a bit for plugins to register, then log setTimeout(() => { const componentTypes = ComponentRegistry.getAllTypes(); diff --git a/examples/schema-catalog/src/schemas/fields-auto-number/basic-autonumber.json b/examples/schema-catalog/src/schemas/fields-auto-number/basic-autonumber.json index 5d8177aaf6..a9bb3a7844 100644 --- a/examples/schema-catalog/src/schemas/fields-auto-number/basic-autonumber.json +++ b/examples/schema-catalog/src/schemas/fields-auto-number/basic-autonumber.json @@ -1,7 +1,16 @@ { - "type": "auto_number", - "name": "order_number", - "label": "Order Number", - "readonly": true, - "value": "ORD-0001" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "order_number": "ORD-0001" + }, + "fields": [ + { + "name": "order_number", + "label": "Order Number", + "type": "auto_number", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-auto-number/date-based-ticket-id.json b/examples/schema-catalog/src/schemas/fields-auto-number/date-based-ticket-id.json index 011bbb4e2e..33b170aec2 100644 --- a/examples/schema-catalog/src/schemas/fields-auto-number/date-based-ticket-id.json +++ b/examples/schema-catalog/src/schemas/fields-auto-number/date-based-ticket-id.json @@ -1,8 +1,17 @@ { - "type": "auto_number", - "name": "ticket_id", - "label": "Ticket ID", - "format": "TKT-{YYYY}{MM}-{0000}", - "readonly": true, - "value": "TKT-202403-0567" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "ticket_id": "TKT-202403-0567" + }, + "fields": [ + { + "name": "ticket_id", + "label": "Ticket ID", + "type": "auto_number", + "format": "TKT-{YYYY}{MM}-{0000}", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-auto-number/invoice-number-format.json b/examples/schema-catalog/src/schemas/fields-auto-number/invoice-number-format.json index 40e8e548b8..7c0357182f 100644 --- a/examples/schema-catalog/src/schemas/fields-auto-number/invoice-number-format.json +++ b/examples/schema-catalog/src/schemas/fields-auto-number/invoice-number-format.json @@ -1,8 +1,17 @@ { - "type": "auto_number", - "name": "invoice_id", - "label": "Invoice ID", - "format": "INV-{0000}", - "readonly": true, - "value": "INV-1234" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "invoice_id": "INV-1234" + }, + "fields": [ + { + "name": "invoice_id", + "label": "Invoice ID", + "type": "auto_number", + "format": "INV-{0000}", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-boolean/basic-switch.json b/examples/schema-catalog/src/schemas/fields-boolean/basic-switch.json index fa43829e51..b1dbb6a976 100644 --- a/examples/schema-catalog/src/schemas/fields-boolean/basic-switch.json +++ b/examples/schema-catalog/src/schemas/fields-boolean/basic-switch.json @@ -1,5 +1,12 @@ { - "type": "boolean", - "name": "is_active", - "label": "Active" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "is_active", + "label": "Active", + "type": "boolean" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-boolean/pre-checked.json b/examples/schema-catalog/src/schemas/fields-boolean/pre-checked.json index 8d12b17807..ff8464dc53 100644 --- a/examples/schema-catalog/src/schemas/fields-boolean/pre-checked.json +++ b/examples/schema-catalog/src/schemas/fields-boolean/pre-checked.json @@ -1,6 +1,15 @@ { - "type": "boolean", - "name": "terms", - "label": "I agree to the terms and conditions", - "value": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "terms": true + }, + "fields": [ + { + "name": "terms", + "label": "I agree to the terms and conditions", + "type": "boolean" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-boolean/with-description.json b/examples/schema-catalog/src/schemas/fields-boolean/with-description.json index ed9576d3b6..5c88a8e6e0 100644 --- a/examples/schema-catalog/src/schemas/fields-boolean/with-description.json +++ b/examples/schema-catalog/src/schemas/fields-boolean/with-description.json @@ -1,6 +1,13 @@ { - "type": "boolean", - "name": "notifications", - "label": "Email Notifications", - "description": "Receive email updates about your account" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "notifications", + "label": "Email Notifications", + "type": "boolean", + "description": "Receive email updates about your account" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-currency/euro-currency.json b/examples/schema-catalog/src/schemas/fields-currency/euro-currency.json index dfd4089bed..f3b4026124 100644 --- a/examples/schema-catalog/src/schemas/fields-currency/euro-currency.json +++ b/examples/schema-catalog/src/schemas/fields-currency/euro-currency.json @@ -1,7 +1,14 @@ { - "type": "currency", - "name": "price_eur", - "label": "Price (EUR)", - "placeholder": "€0.00", - "currency": "EUR" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "price_eur", + "label": "Price (EUR)", + "type": "currency", + "placeholder": "€0.00", + "currency": "EUR" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-currency/usd-currency.json b/examples/schema-catalog/src/schemas/fields-currency/usd-currency.json index 0a0c0b1b68..f3289d644c 100644 --- a/examples/schema-catalog/src/schemas/fields-currency/usd-currency.json +++ b/examples/schema-catalog/src/schemas/fields-currency/usd-currency.json @@ -1,7 +1,14 @@ { - "type": "currency", - "name": "amount", - "label": "Amount", - "placeholder": "$0.00", - "currency": "USD" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "amount", + "label": "Amount", + "type": "currency", + "placeholder": "$0.00", + "currency": "USD" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-date/basic-date-picker.json b/examples/schema-catalog/src/schemas/fields-date/basic-date-picker.json index bc6d1c8f53..c8fb2c2f46 100644 --- a/examples/schema-catalog/src/schemas/fields-date/basic-date-picker.json +++ b/examples/schema-catalog/src/schemas/fields-date/basic-date-picker.json @@ -1,6 +1,13 @@ { - "type": "date", - "name": "birthdate", - "label": "Birth Date", - "placeholder": "Select date..." + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "birthdate", + "label": "Birth Date", + "type": "date", + "placeholder": "Select date..." + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-date/with-default-date.json b/examples/schema-catalog/src/schemas/fields-date/with-default-date.json index cc29faf754..769c973769 100644 --- a/examples/schema-catalog/src/schemas/fields-date/with-default-date.json +++ b/examples/schema-catalog/src/schemas/fields-date/with-default-date.json @@ -1,6 +1,15 @@ { - "type": "date", - "name": "event_date", - "label": "Event Date", - "value": "2026-05-28T06:36:57.154Z" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "event_date": "2026-05-28T06:36:57.154Z" + }, + "fields": [ + { + "name": "event_date", + "label": "Event Date", + "type": "date" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-datetime/basic-datetime-field.json b/examples/schema-catalog/src/schemas/fields-datetime/basic-datetime-field.json index ae1819cbe7..8ddf68c027 100644 --- a/examples/schema-catalog/src/schemas/fields-datetime/basic-datetime-field.json +++ b/examples/schema-catalog/src/schemas/fields-datetime/basic-datetime-field.json @@ -1,6 +1,13 @@ { - "type": "datetime", - "name": "meeting_time", - "label": "Meeting Time", - "placeholder": "Select date and time..." + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "meeting_time", + "label": "Meeting Time", + "type": "datetime", + "placeholder": "Select date and time..." + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-datetime/read-only-datetime.json b/examples/schema-catalog/src/schemas/fields-datetime/read-only-datetime.json index b6ccd28da6..b2310224e9 100644 --- a/examples/schema-catalog/src/schemas/fields-datetime/read-only-datetime.json +++ b/examples/schema-catalog/src/schemas/fields-datetime/read-only-datetime.json @@ -1,7 +1,16 @@ { - "type": "datetime", - "name": "created_at", - "label": "Created At", - "value": "2024-03-15T10:30", - "readonly": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "created_at": "2024-03-15T10:30" + }, + "fields": [ + { + "name": "created_at", + "label": "Created At", + "type": "datetime", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-datetime/required-datetime.json b/examples/schema-catalog/src/schemas/fields-datetime/required-datetime.json index 5acbb4f3bb..18949974f5 100644 --- a/examples/schema-catalog/src/schemas/fields-datetime/required-datetime.json +++ b/examples/schema-catalog/src/schemas/fields-datetime/required-datetime.json @@ -1,6 +1,13 @@ { - "type": "datetime", - "name": "appointment", - "label": "Appointment", - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "appointment", + "label": "Appointment", + "type": "datetime", + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-datetime/with-default-value.json b/examples/schema-catalog/src/schemas/fields-datetime/with-default-value.json index c0223092c2..ac0a392396 100644 --- a/examples/schema-catalog/src/schemas/fields-datetime/with-default-value.json +++ b/examples/schema-catalog/src/schemas/fields-datetime/with-default-value.json @@ -1,6 +1,15 @@ { - "type": "datetime", - "name": "scheduled_at", - "label": "Scheduled At", - "value": "2024-03-15T14:30" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "scheduled_at": "2024-03-15T14:30" + }, + "fields": [ + { + "name": "scheduled_at", + "label": "Scheduled At", + "type": "datetime" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-email/basic-email-field.json b/examples/schema-catalog/src/schemas/fields-email/basic-email-field.json index b21f55e70c..dd379bc318 100644 --- a/examples/schema-catalog/src/schemas/fields-email/basic-email-field.json +++ b/examples/schema-catalog/src/schemas/fields-email/basic-email-field.json @@ -1,6 +1,13 @@ { - "type": "email", - "name": "email", - "label": "Email Address", - "placeholder": "you@example.com" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "email", + "label": "Email Address", + "type": "email", + "placeholder": "you@example.com" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-email/required-email.json b/examples/schema-catalog/src/schemas/fields-email/required-email.json index 6df30d10e7..7c0e6d7109 100644 --- a/examples/schema-catalog/src/schemas/fields-email/required-email.json +++ b/examples/schema-catalog/src/schemas/fields-email/required-email.json @@ -1,7 +1,14 @@ { - "type": "email", - "name": "contact_email", - "label": "Contact Email", - "placeholder": "contact@company.com", - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "contact_email", + "label": "Contact Email", + "type": "email", + "placeholder": "contact@company.com", + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-file/basic-file-upload.json b/examples/schema-catalog/src/schemas/fields-file/basic-file-upload.json index d52eb90a45..fbfe50b9d9 100644 --- a/examples/schema-catalog/src/schemas/fields-file/basic-file-upload.json +++ b/examples/schema-catalog/src/schemas/fields-file/basic-file-upload.json @@ -1,5 +1,12 @@ { - "type": "file", - "name": "attachment", - "label": "Attachment" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "attachment", + "label": "Attachment", + "type": "file" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-file/multiple-file-upload.json b/examples/schema-catalog/src/schemas/fields-file/multiple-file-upload.json index 66040199b9..ecbf6e532a 100644 --- a/examples/schema-catalog/src/schemas/fields-file/multiple-file-upload.json +++ b/examples/schema-catalog/src/schemas/fields-file/multiple-file-upload.json @@ -1,6 +1,13 @@ { - "type": "file", - "name": "documents", - "label": "Documents", - "multiple": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "documents", + "label": "Documents", + "type": "file", + "multiple": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-file/pdf-files-only.json b/examples/schema-catalog/src/schemas/fields-file/pdf-files-only.json index e03bcd419a..458b0644d0 100644 --- a/examples/schema-catalog/src/schemas/fields-file/pdf-files-only.json +++ b/examples/schema-catalog/src/schemas/fields-file/pdf-files-only.json @@ -1,9 +1,16 @@ { - "type": "file", - "name": "pdf_upload", - "label": "PDF Documents", - "accept": [ - "application/pdf" - ], - "multiple": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "pdf_upload", + "label": "PDF Documents", + "type": "file", + "accept": [ + "application/pdf" + ], + "multiple": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-formula/date-calculation.json b/examples/schema-catalog/src/schemas/fields-formula/date-calculation.json index 8a3f4b8c32..7028e0b349 100644 --- a/examples/schema-catalog/src/schemas/fields-formula/date-calculation.json +++ b/examples/schema-catalog/src/schemas/fields-formula/date-calculation.json @@ -1,8 +1,15 @@ { - "type": "formula", - "name": "due_date", - "label": "Due Date", - "formula": "created_at + 30 days", - "return_type": "date", - "readonly": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "due_date", + "label": "Due Date", + "type": "formula", + "formula": "created_at + 30 days", + "return_type": "date", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-formula/numeric-formula.json b/examples/schema-catalog/src/schemas/fields-formula/numeric-formula.json index 9a164b7213..0472ead113 100644 --- a/examples/schema-catalog/src/schemas/fields-formula/numeric-formula.json +++ b/examples/schema-catalog/src/schemas/fields-formula/numeric-formula.json @@ -1,8 +1,15 @@ { - "type": "formula", - "name": "total", - "label": "Total Amount", - "formula": "quantity * price", - "return_type": "number", - "readonly": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "total", + "label": "Total Amount", + "type": "formula", + "formula": "quantity * price", + "return_type": "number", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-formula/text-concatenation.json b/examples/schema-catalog/src/schemas/fields-formula/text-concatenation.json index e554363539..f69edac459 100644 --- a/examples/schema-catalog/src/schemas/fields-formula/text-concatenation.json +++ b/examples/schema-catalog/src/schemas/fields-formula/text-concatenation.json @@ -1,9 +1,18 @@ { - "type": "formula", - "name": "full_name", - "label": "Full Name", - "formula": "first_name + \" \" + last_name", - "return_type": "text", - "readonly": true, - "value": "John Doe" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "full_name": "John Doe" + }, + "fields": [ + { + "name": "full_name", + "label": "Full Name", + "type": "formula", + "formula": "first_name + \" \" + last_name", + "return_type": "text", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-grid/basic-grid.json b/examples/schema-catalog/src/schemas/fields-grid/basic-grid.json index 53df56347b..2530d2541d 100644 --- a/examples/schema-catalog/src/schemas/fields-grid/basic-grid.json +++ b/examples/schema-catalog/src/schemas/fields-grid/basic-grid.json @@ -1,22 +1,29 @@ { - "type": "grid", - "name": "line_items", - "label": "Line Items", - "columns": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ { - "name": "product", - "label": "Product", - "type": "text" - }, - { - "name": "quantity", - "label": "Quantity", - "type": "number" - }, - { - "name": "price", - "label": "Price", - "type": "currency" + "name": "line_items", + "label": "Line Items", + "type": "grid", + "columns": [ + { + "name": "product", + "label": "Product", + "type": "text" + }, + { + "name": "quantity", + "label": "Quantity", + "type": "number" + }, + { + "name": "price", + "label": "Price", + "type": "currency" + } + ] } ] } diff --git a/examples/schema-catalog/src/schemas/fields-grid/grid-with-data.json b/examples/schema-catalog/src/schemas/fields-grid/grid-with-data.json index 07eacde0fb..87d38a7d14 100644 --- a/examples/schema-catalog/src/schemas/fields-grid/grid-with-data.json +++ b/examples/schema-catalog/src/schemas/fields-grid/grid-with-data.json @@ -1,39 +1,48 @@ { - "type": "grid", - "name": "order_items", - "label": "Order Items", - "columns": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "order_items": [ + { + "item": "Widget A", + "qty": 2, + "price": 29.99 + }, + { + "item": "Widget B", + "qty": 1, + "price": 49.99 + }, + { + "item": "Widget C", + "qty": 5, + "price": 9.99 + } + ] + }, + "fields": [ { - "name": "item", - "label": "Item", - "type": "text" - }, - { - "name": "qty", - "label": "Qty", - "type": "number" - }, - { - "name": "price", - "label": "Price", - "type": "currency" - } - ], - "value": [ - { - "item": "Widget A", - "qty": 2, - "price": 29.99 - }, - { - "item": "Widget B", - "qty": 1, - "price": 49.99 - }, - { - "item": "Widget C", - "qty": 5, - "price": 9.99 + "name": "order_items", + "label": "Order Items", + "type": "grid", + "columns": [ + { + "name": "item", + "label": "Item", + "type": "text" + }, + { + "name": "qty", + "label": "Qty", + "type": "number" + }, + { + "name": "price", + "label": "Price", + "type": "currency" + } + ] } ] } diff --git a/examples/schema-catalog/src/schemas/fields-grid/read-only-grid.json b/examples/schema-catalog/src/schemas/fields-grid/read-only-grid.json index fb27956310..218321451e 100644 --- a/examples/schema-catalog/src/schemas/fields-grid/read-only-grid.json +++ b/examples/schema-catalog/src/schemas/fields-grid/read-only-grid.json @@ -1,35 +1,44 @@ { - "type": "grid", - "name": "transaction_history", - "label": "Transaction History", - "columns": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "transaction_history": [ + { + "date": "2024-03-15", + "description": "Payment received", + "amount": 100 + }, + { + "date": "2024-03-14", + "description": "Service charge", + "amount": -5 + } + ] + }, + "fields": [ { - "name": "date", - "label": "Date", - "type": "date" - }, - { - "name": "description", - "label": "Description", - "type": "text" - }, - { - "name": "amount", - "label": "Amount", - "type": "currency" - } - ], - "readonly": true, - "value": [ - { - "date": "2024-03-15", - "description": "Payment received", - "amount": 100 - }, - { - "date": "2024-03-14", - "description": "Service charge", - "amount": -5 + "name": "transaction_history", + "label": "Transaction History", + "type": "grid", + "columns": [ + { + "name": "date", + "label": "Date", + "type": "date" + }, + { + "name": "description", + "label": "Description", + "type": "text" + }, + { + "name": "amount", + "label": "Amount", + "type": "currency" + } + ], + "readonly": true } ] } diff --git a/examples/schema-catalog/src/schemas/fields-image/basic-image-upload.json b/examples/schema-catalog/src/schemas/fields-image/basic-image-upload.json index 1b2b2c44ef..8b82a40131 100644 --- a/examples/schema-catalog/src/schemas/fields-image/basic-image-upload.json +++ b/examples/schema-catalog/src/schemas/fields-image/basic-image-upload.json @@ -1,5 +1,12 @@ { - "type": "image", - "name": "avatar", - "label": "Profile Picture" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "avatar", + "label": "Profile Picture", + "type": "image" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-image/multiple-image-upload.json b/examples/schema-catalog/src/schemas/fields-image/multiple-image-upload.json index c7cc1ac080..70344a1ee3 100644 --- a/examples/schema-catalog/src/schemas/fields-image/multiple-image-upload.json +++ b/examples/schema-catalog/src/schemas/fields-image/multiple-image-upload.json @@ -1,6 +1,13 @@ { - "type": "image", - "name": "gallery", - "label": "Photo Gallery", - "multiple": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "gallery", + "label": "Photo Gallery", + "type": "image", + "multiple": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-location/basic-location-field.json b/examples/schema-catalog/src/schemas/fields-location/basic-location-field.json index 30a9191ee2..13ef58cc19 100644 --- a/examples/schema-catalog/src/schemas/fields-location/basic-location-field.json +++ b/examples/schema-catalog/src/schemas/fields-location/basic-location-field.json @@ -1,6 +1,13 @@ { - "type": "location", - "name": "office_location", - "label": "Office Location", - "placeholder": "latitude, longitude" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "office_location", + "label": "Office Location", + "type": "location", + "placeholder": "latitude, longitude" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-location/read-only-location.json b/examples/schema-catalog/src/schemas/fields-location/read-only-location.json index 585295ea19..51b5fcc637 100644 --- a/examples/schema-catalog/src/schemas/fields-location/read-only-location.json +++ b/examples/schema-catalog/src/schemas/fields-location/read-only-location.json @@ -1,10 +1,19 @@ { - "type": "location", - "name": "headquarters", - "label": "Headquarters", - "value": { - "latitude": 40.7128, - "longitude": -74.006 + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "headquarters": { + "latitude": 40.7128, + "longitude": -74.006 + } }, - "readonly": true + "fields": [ + { + "name": "headquarters", + "label": "Headquarters", + "type": "location", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-location/san-francisco-coordinates.json b/examples/schema-catalog/src/schemas/fields-location/san-francisco-coordinates.json index 9c0d67ee0a..1947f74368 100644 --- a/examples/schema-catalog/src/schemas/fields-location/san-francisco-coordinates.json +++ b/examples/schema-catalog/src/schemas/fields-location/san-francisco-coordinates.json @@ -1,9 +1,18 @@ { - "type": "location", - "name": "store_location", - "label": "Store Location", - "value": { - "latitude": 37.7749, - "longitude": -122.4194 - } + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "store_location": { + "latitude": 37.7749, + "longitude": -122.4194 + } + }, + "fields": [ + { + "name": "store_location", + "label": "Store Location", + "type": "location" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-lookup/basic-lookup.json b/examples/schema-catalog/src/schemas/fields-lookup/basic-lookup.json index 9124e62733..a4a7b11b9b 100644 --- a/examples/schema-catalog/src/schemas/fields-lookup/basic-lookup.json +++ b/examples/schema-catalog/src/schemas/fields-lookup/basic-lookup.json @@ -1,21 +1,28 @@ { - "type": "lookup", - "name": "assigned_to", - "label": "Assigned To", - "placeholder": "Select user...", - "reference_to": "users", - "options": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ { - "label": "John Doe", - "value": "user_1" - }, - { - "label": "Jane Smith", - "value": "user_2" - }, - { - "label": "Bob Johnson", - "value": "user_3" + "name": "assigned_to", + "label": "Assigned To", + "type": "lookup", + "placeholder": "Select user...", + "reference_to": "users", + "options": [ + { + "label": "John Doe", + "value": "user_1" + }, + { + "label": "Jane Smith", + "value": "user_2" + }, + { + "label": "Bob Johnson", + "value": "user_3" + } + ] } ] } diff --git a/examples/schema-catalog/src/schemas/fields-lookup/multi-select-lookup.json b/examples/schema-catalog/src/schemas/fields-lookup/multi-select-lookup.json index f993f45ebe..3324731693 100644 --- a/examples/schema-catalog/src/schemas/fields-lookup/multi-select-lookup.json +++ b/examples/schema-catalog/src/schemas/fields-lookup/multi-select-lookup.json @@ -1,22 +1,29 @@ { - "type": "lookup", - "name": "team_members", - "label": "Team Members", - "placeholder": "Select team members...", - "reference_to": "users", - "multiple": true, - "options": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ { - "label": "Alice Brown", - "value": "user_4" - }, - { - "label": "Charlie Davis", - "value": "user_5" - }, - { - "label": "Diana Wilson", - "value": "user_6" + "name": "team_members", + "label": "Team Members", + "type": "lookup", + "placeholder": "Select team members...", + "reference_to": "users", + "multiple": true, + "options": [ + { + "label": "Alice Brown", + "value": "user_4" + }, + { + "label": "Charlie Davis", + "value": "user_5" + }, + { + "label": "Diana Wilson", + "value": "user_6" + } + ] } ] } diff --git a/examples/schema-catalog/src/schemas/fields-number/basic-number-field.json b/examples/schema-catalog/src/schemas/fields-number/basic-number-field.json index 3776b830e8..09d3222f25 100644 --- a/examples/schema-catalog/src/schemas/fields-number/basic-number-field.json +++ b/examples/schema-catalog/src/schemas/fields-number/basic-number-field.json @@ -1,6 +1,13 @@ { - "type": "number", - "name": "quantity", - "label": "Quantity", - "placeholder": "0" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "quantity", + "label": "Quantity", + "type": "number", + "placeholder": "0" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-number/decimal-numbers.json b/examples/schema-catalog/src/schemas/fields-number/decimal-numbers.json index 41fa9258d1..8463005215 100644 --- a/examples/schema-catalog/src/schemas/fields-number/decimal-numbers.json +++ b/examples/schema-catalog/src/schemas/fields-number/decimal-numbers.json @@ -1,7 +1,14 @@ { - "type": "number", - "name": "price", - "label": "Price", - "placeholder": "0.00", - "precision": 2 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "price", + "label": "Price", + "type": "number", + "placeholder": "0.00", + "precision": 2 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-number/range-validation.json b/examples/schema-catalog/src/schemas/fields-number/range-validation.json index 4b525719cb..777fc2a893 100644 --- a/examples/schema-catalog/src/schemas/fields-number/range-validation.json +++ b/examples/schema-catalog/src/schemas/fields-number/range-validation.json @@ -1,8 +1,15 @@ { - "type": "number", - "name": "age", - "label": "Age", - "placeholder": "Enter age", - "min": 0, - "max": 120 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "age", + "label": "Age", + "type": "number", + "placeholder": "Enter age", + "min": 0, + "max": 120 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-object/basic-object-editor.json b/examples/schema-catalog/src/schemas/fields-object/basic-object-editor.json index 4cb7cc82b1..ab9cc0e1a9 100644 --- a/examples/schema-catalog/src/schemas/fields-object/basic-object-editor.json +++ b/examples/schema-catalog/src/schemas/fields-object/basic-object-editor.json @@ -1,6 +1,13 @@ { - "type": "object", - "name": "metadata", - "label": "Metadata", - "placeholder": "{\n \"key\": \"value\"\n}" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "metadata", + "label": "Metadata", + "type": "object", + "placeholder": "{\n \"key\": \"value\"\n}" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-object/nested-object-data.json b/examples/schema-catalog/src/schemas/fields-object/nested-object-data.json index c4afaf3a5f..7b53d93b67 100644 --- a/examples/schema-catalog/src/schemas/fields-object/nested-object-data.json +++ b/examples/schema-catalog/src/schemas/fields-object/nested-object-data.json @@ -1,15 +1,24 @@ { - "type": "object", - "name": "settings", - "label": "Settings", - "value": { - "theme": "dark", - "notifications": { - "email": true, - "push": false - }, - "privacy": { - "public": false + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "settings": { + "theme": "dark", + "notifications": { + "email": true, + "push": false + }, + "privacy": { + "public": false + } } - } + }, + "fields": [ + { + "name": "settings", + "label": "Settings", + "type": "object" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-object/read-only-json-display.json b/examples/schema-catalog/src/schemas/fields-object/read-only-json-display.json index 0e1b227858..0115740a26 100644 --- a/examples/schema-catalog/src/schemas/fields-object/read-only-json-display.json +++ b/examples/schema-catalog/src/schemas/fields-object/read-only-json-display.json @@ -1,13 +1,22 @@ { - "type": "object", - "name": "response", - "label": "API Response", - "value": { - "status": 200, - "data": { - "id": 123, - "name": "Test" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "response": { + "status": 200, + "data": { + "id": 123, + "name": "Test" + } } }, - "readonly": true + "fields": [ + { + "name": "response", + "label": "API Response", + "type": "object", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-object/structured-configuration.json b/examples/schema-catalog/src/schemas/fields-object/structured-configuration.json index 807481e618..6df3372e6a 100644 --- a/examples/schema-catalog/src/schemas/fields-object/structured-configuration.json +++ b/examples/schema-catalog/src/schemas/fields-object/structured-configuration.json @@ -1,10 +1,17 @@ { - "type": "object", - "name": "config", - "label": "Configuration", - "schema": { - "api_key": "string", - "timeout": "number", - "enabled": "boolean" - } + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "config", + "label": "Configuration", + "type": "object", + "schema": { + "api_key": "string", + "timeout": "number", + "enabled": "boolean" + } + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-password/basic-password-field.json b/examples/schema-catalog/src/schemas/fields-password/basic-password-field.json index ad9066b34a..17927c690a 100644 --- a/examples/schema-catalog/src/schemas/fields-password/basic-password-field.json +++ b/examples/schema-catalog/src/schemas/fields-password/basic-password-field.json @@ -1,6 +1,13 @@ { - "type": "password", - "name": "password", - "label": "Password", - "placeholder": "Enter password..." + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "password", + "label": "Password", + "type": "password", + "placeholder": "Enter password..." + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-password/password-confirmation.json b/examples/schema-catalog/src/schemas/fields-password/password-confirmation.json index 2909a8551e..7b78e96d5b 100644 --- a/examples/schema-catalog/src/schemas/fields-password/password-confirmation.json +++ b/examples/schema-catalog/src/schemas/fields-password/password-confirmation.json @@ -1,7 +1,14 @@ { - "type": "password", - "name": "confirm_password", - "label": "Confirm Password", - "placeholder": "Re-enter password", - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "confirm_password", + "label": "Confirm Password", + "type": "password", + "placeholder": "Re-enter password", + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-password/with-minimum-length.json b/examples/schema-catalog/src/schemas/fields-password/with-minimum-length.json index 0edb8fc98d..742f340042 100644 --- a/examples/schema-catalog/src/schemas/fields-password/with-minimum-length.json +++ b/examples/schema-catalog/src/schemas/fields-password/with-minimum-length.json @@ -1,8 +1,15 @@ { - "type": "password", - "name": "new_password", - "label": "New Password", - "placeholder": "At least 8 characters", - "required": true, - "min_length": 8 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "new_password", + "label": "New Password", + "type": "password", + "placeholder": "At least 8 characters", + "required": true, + "min_length": 8 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-percent/basic-percent-field.json b/examples/schema-catalog/src/schemas/fields-percent/basic-percent-field.json index 5b1c520348..01d445afe4 100644 --- a/examples/schema-catalog/src/schemas/fields-percent/basic-percent-field.json +++ b/examples/schema-catalog/src/schemas/fields-percent/basic-percent-field.json @@ -1,6 +1,13 @@ { - "type": "percent", - "name": "completion", - "label": "Completion", - "placeholder": "0" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "completion", + "label": "Completion", + "type": "percent", + "placeholder": "0" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-percent/read-only-percent.json b/examples/schema-catalog/src/schemas/fields-percent/read-only-percent.json index 37d918b2c3..bdd935bd0b 100644 --- a/examples/schema-catalog/src/schemas/fields-percent/read-only-percent.json +++ b/examples/schema-catalog/src/schemas/fields-percent/read-only-percent.json @@ -1,7 +1,16 @@ { - "type": "percent", - "name": "success_rate", - "label": "Success Rate", - "value": 0.875, - "readonly": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "success_rate": 0.875 + }, + "fields": [ + { + "name": "success_rate", + "label": "Success Rate", + "type": "percent", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-percent/required-percent.json b/examples/schema-catalog/src/schemas/fields-percent/required-percent.json index df1bac6fdc..962ed30e15 100644 --- a/examples/schema-catalog/src/schemas/fields-percent/required-percent.json +++ b/examples/schema-catalog/src/schemas/fields-percent/required-percent.json @@ -1,7 +1,14 @@ { - "type": "percent", - "name": "discount", - "label": "Discount Rate", - "required": true, - "precision": 2 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "discount", + "label": "Discount Rate", + "type": "percent", + "required": true, + "precision": 2 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-percent/with-decimal-precision.json b/examples/schema-catalog/src/schemas/fields-percent/with-decimal-precision.json index 8d57d721b0..c81d5917f1 100644 --- a/examples/schema-catalog/src/schemas/fields-percent/with-decimal-precision.json +++ b/examples/schema-catalog/src/schemas/fields-percent/with-decimal-precision.json @@ -1,7 +1,16 @@ { - "type": "percent", - "name": "progress", - "label": "Progress", - "precision": 1, - "value": 0.753 + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "progress": 0.753 + }, + "fields": [ + { + "name": "progress", + "label": "Progress", + "type": "percent", + "precision": 1 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-phone/basic-phone-field.json b/examples/schema-catalog/src/schemas/fields-phone/basic-phone-field.json index 83e6f27dd1..7f6251d9ba 100644 --- a/examples/schema-catalog/src/schemas/fields-phone/basic-phone-field.json +++ b/examples/schema-catalog/src/schemas/fields-phone/basic-phone-field.json @@ -1,6 +1,13 @@ { - "type": "phone", - "name": "phone", - "label": "Phone Number", - "placeholder": "+1 (555) 123-4567" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "phone", + "label": "Phone Number", + "type": "phone", + "placeholder": "+1 (555) 123-4567" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-phone/required-phone.json b/examples/schema-catalog/src/schemas/fields-phone/required-phone.json index 79d2cc7778..3ac14a067b 100644 --- a/examples/schema-catalog/src/schemas/fields-phone/required-phone.json +++ b/examples/schema-catalog/src/schemas/fields-phone/required-phone.json @@ -1,7 +1,14 @@ { - "type": "phone", - "name": "contact_phone", - "label": "Contact Phone", - "placeholder": "Enter phone number", - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "contact_phone", + "label": "Contact Phone", + "type": "phone", + "placeholder": "Enter phone number", + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-rich-text/html-editor.json b/examples/schema-catalog/src/schemas/fields-rich-text/html-editor.json index 10a45ebf8b..bf509766e4 100644 --- a/examples/schema-catalog/src/schemas/fields-rich-text/html-editor.json +++ b/examples/schema-catalog/src/schemas/fields-rich-text/html-editor.json @@ -1,7 +1,14 @@ { - "type": "html", - "name": "description", - "label": "Description", - "placeholder": "Enter HTML content...", - "rows": 8 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "description", + "label": "Description", + "type": "html", + "placeholder": "Enter HTML content...", + "rows": 8 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-rich-text/markdown-editor.json b/examples/schema-catalog/src/schemas/fields-rich-text/markdown-editor.json index 5c41d55c2e..bcbc2282dc 100644 --- a/examples/schema-catalog/src/schemas/fields-rich-text/markdown-editor.json +++ b/examples/schema-catalog/src/schemas/fields-rich-text/markdown-editor.json @@ -1,7 +1,14 @@ { - "type": "markdown", - "name": "content", - "label": "Content", - "placeholder": "Enter your content here...", - "rows": 6 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "content", + "label": "Content", + "type": "markdown", + "placeholder": "Enter your content here...", + "rows": 6 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-select/basic-select.json b/examples/schema-catalog/src/schemas/fields-select/basic-select.json index 3110e12185..1569a1b39b 100644 --- a/examples/schema-catalog/src/schemas/fields-select/basic-select.json +++ b/examples/schema-catalog/src/schemas/fields-select/basic-select.json @@ -1,20 +1,27 @@ { - "type": "select", - "name": "status", - "label": "Status", - "placeholder": "Select status...", - "options": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ { - "label": "Draft", - "value": "draft" - }, - { - "label": "In Progress", - "value": "in_progress" - }, - { - "label": "Completed", - "value": "completed" + "name": "status", + "label": "Status", + "type": "select", + "placeholder": "Select status...", + "options": [ + { + "label": "Draft", + "value": "draft" + }, + { + "label": "In Progress", + "value": "in_progress" + }, + { + "label": "Completed", + "value": "completed" + } + ] } ] } diff --git a/examples/schema-catalog/src/schemas/fields-select/colored-options.json b/examples/schema-catalog/src/schemas/fields-select/colored-options.json index b4b715ed7f..ce9dd1b741 100644 --- a/examples/schema-catalog/src/schemas/fields-select/colored-options.json +++ b/examples/schema-catalog/src/schemas/fields-select/colored-options.json @@ -1,28 +1,35 @@ { - "type": "select", - "name": "priority", - "label": "Priority", - "placeholder": "Select priority...", - "options": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ { - "label": "Low", - "value": "low", - "color": "gray" - }, - { - "label": "Medium", - "value": "medium", - "color": "blue" - }, - { - "label": "High", - "value": "high", - "color": "orange" - }, - { - "label": "Urgent", - "value": "urgent", - "color": "red" + "name": "priority", + "label": "Priority", + "type": "select", + "placeholder": "Select priority...", + "options": [ + { + "label": "Low", + "value": "low", + "color": "gray" + }, + { + "label": "Medium", + "value": "medium", + "color": "blue" + }, + { + "label": "High", + "value": "high", + "color": "orange" + }, + { + "label": "Urgent", + "value": "urgent", + "color": "red" + } + ] } ] } diff --git a/examples/schema-catalog/src/schemas/fields-select/multi-select.json b/examples/schema-catalog/src/schemas/fields-select/multi-select.json index 0c9955cbb8..51e88bea3d 100644 --- a/examples/schema-catalog/src/schemas/fields-select/multi-select.json +++ b/examples/schema-catalog/src/schemas/fields-select/multi-select.json @@ -1,29 +1,36 @@ { - "type": "select", - "name": "tags", - "label": "Tags", - "placeholder": "Select tags...", - "multiple": true, - "options": [ + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ { - "label": "Frontend", - "value": "frontend", - "color": "blue" - }, - { - "label": "Backend", - "value": "backend", - "color": "green" - }, - { - "label": "DevOps", - "value": "devops", - "color": "purple" - }, - { - "label": "Design", - "value": "design", - "color": "pink" + "name": "tags", + "label": "Tags", + "type": "select", + "placeholder": "Select tags...", + "multiple": true, + "options": [ + { + "label": "Frontend", + "value": "frontend", + "color": "blue" + }, + { + "label": "Backend", + "value": "backend", + "color": "green" + }, + { + "label": "DevOps", + "value": "devops", + "color": "purple" + }, + { + "label": "Design", + "value": "design", + "color": "pink" + } + ] } ] } diff --git a/examples/schema-catalog/src/schemas/fields-summary/average-of-field-values.json b/examples/schema-catalog/src/schemas/fields-summary/average-of-field-values.json index f92cfe036e..65dd2011cd 100644 --- a/examples/schema-catalog/src/schemas/fields-summary/average-of-field-values.json +++ b/examples/schema-catalog/src/schemas/fields-summary/average-of-field-values.json @@ -1,10 +1,19 @@ { - "type": "summary", - "name": "avg_rating", - "label": "Average Rating", - "summary_object": "reviews", - "summary_field": "rating", - "summary_type": "avg", - "readonly": true, - "value": 4.52 + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "avg_rating": 4.52 + }, + "fields": [ + { + "name": "avg_rating", + "label": "Average Rating", + "type": "summary", + "summary_object": "reviews", + "summary_field": "rating", + "summary_type": "avg", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-summary/count-of-related-records.json b/examples/schema-catalog/src/schemas/fields-summary/count-of-related-records.json index f5bcc10b4a..8c2ad967b7 100644 --- a/examples/schema-catalog/src/schemas/fields-summary/count-of-related-records.json +++ b/examples/schema-catalog/src/schemas/fields-summary/count-of-related-records.json @@ -1,10 +1,19 @@ { - "type": "summary", - "name": "order_count", - "label": "Total Orders", - "summary_object": "orders", - "summary_field": "id", - "summary_type": "count", - "readonly": true, - "value": 42 + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "order_count": 42 + }, + "fields": [ + { + "name": "order_count", + "label": "Total Orders", + "type": "summary", + "summary_object": "orders", + "summary_field": "id", + "summary_type": "count", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-summary/sum-of-field-values.json b/examples/schema-catalog/src/schemas/fields-summary/sum-of-field-values.json index 4389e7e47b..027d03631f 100644 --- a/examples/schema-catalog/src/schemas/fields-summary/sum-of-field-values.json +++ b/examples/schema-catalog/src/schemas/fields-summary/sum-of-field-values.json @@ -1,10 +1,19 @@ { - "type": "summary", - "name": "total_revenue", - "label": "Total Revenue", - "summary_object": "orders", - "summary_field": "amount", - "summary_type": "sum", - "readonly": true, - "value": 15750.5 + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "total_revenue": 15750.5 + }, + "fields": [ + { + "name": "total_revenue", + "label": "Total Revenue", + "type": "summary", + "summary_object": "orders", + "summary_field": "amount", + "summary_type": "sum", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-text/basic-text-field.json b/examples/schema-catalog/src/schemas/fields-text/basic-text-field.json index 82b79f1530..779c6dafcf 100644 --- a/examples/schema-catalog/src/schemas/fields-text/basic-text-field.json +++ b/examples/schema-catalog/src/schemas/fields-text/basic-text-field.json @@ -1,6 +1,13 @@ { - "type": "text", - "name": "username", - "label": "Username", - "placeholder": "Enter username..." + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "username", + "label": "Username", + "type": "text", + "placeholder": "Enter username..." + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-text/read-only-field.json b/examples/schema-catalog/src/schemas/fields-text/read-only-field.json index fb5d0fac98..53f9bef490 100644 --- a/examples/schema-catalog/src/schemas/fields-text/read-only-field.json +++ b/examples/schema-catalog/src/schemas/fields-text/read-only-field.json @@ -1,7 +1,16 @@ { - "type": "text", - "name": "readonly_field", - "label": "Read-Only", - "value": "This value cannot be changed", - "readonly": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "readonly_field": "This value cannot be changed" + }, + "fields": [ + { + "name": "readonly_field", + "label": "Read-Only", + "type": "text", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-text/required-field.json b/examples/schema-catalog/src/schemas/fields-text/required-field.json index 22f5e93f99..a2275f1e9e 100644 --- a/examples/schema-catalog/src/schemas/fields-text/required-field.json +++ b/examples/schema-catalog/src/schemas/fields-text/required-field.json @@ -1,7 +1,14 @@ { - "type": "text", - "name": "name", - "label": "Full Name", - "placeholder": "John Doe", - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "name", + "label": "Full Name", + "type": "text", + "placeholder": "John Doe", + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-text/with-placeholder.json b/examples/schema-catalog/src/schemas/fields-text/with-placeholder.json index a04ad5b779..377415d8c6 100644 --- a/examples/schema-catalog/src/schemas/fields-text/with-placeholder.json +++ b/examples/schema-catalog/src/schemas/fields-text/with-placeholder.json @@ -1,6 +1,13 @@ { - "type": "text", - "name": "title", - "label": "Title", - "placeholder": "Enter a title for your post" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "title", + "label": "Title", + "type": "text", + "placeholder": "Enter a title for your post" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-textarea/basic-textarea.json b/examples/schema-catalog/src/schemas/fields-textarea/basic-textarea.json index 637e9b9b34..9c2fe8fca0 100644 --- a/examples/schema-catalog/src/schemas/fields-textarea/basic-textarea.json +++ b/examples/schema-catalog/src/schemas/fields-textarea/basic-textarea.json @@ -1,7 +1,14 @@ { - "type": "textarea", - "name": "description", - "label": "Description", - "placeholder": "Enter a description...", - "rows": 4 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "description", + "label": "Description", + "type": "textarea", + "placeholder": "Enter a description...", + "rows": 4 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-textarea/larger-textarea.json b/examples/schema-catalog/src/schemas/fields-textarea/larger-textarea.json index e37d46aeed..e7189b86c4 100644 --- a/examples/schema-catalog/src/schemas/fields-textarea/larger-textarea.json +++ b/examples/schema-catalog/src/schemas/fields-textarea/larger-textarea.json @@ -1,7 +1,14 @@ { - "type": "textarea", - "name": "message", - "label": "Message", - "placeholder": "Type your message here...", - "rows": 6 + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "message", + "label": "Message", + "type": "textarea", + "placeholder": "Type your message here...", + "rows": 6 + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-textarea/required-textarea.json b/examples/schema-catalog/src/schemas/fields-textarea/required-textarea.json index ad60bbf717..6f668ba47b 100644 --- a/examples/schema-catalog/src/schemas/fields-textarea/required-textarea.json +++ b/examples/schema-catalog/src/schemas/fields-textarea/required-textarea.json @@ -1,8 +1,15 @@ { - "type": "textarea", - "name": "comments", - "label": "Comments", - "placeholder": "Please provide your feedback", - "rows": 4, - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "comments", + "label": "Comments", + "type": "textarea", + "placeholder": "Please provide your feedback", + "rows": 4, + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-time/basic-time-field.json b/examples/schema-catalog/src/schemas/fields-time/basic-time-field.json index 0026365df6..35e3569a9a 100644 --- a/examples/schema-catalog/src/schemas/fields-time/basic-time-field.json +++ b/examples/schema-catalog/src/schemas/fields-time/basic-time-field.json @@ -1,6 +1,13 @@ { - "type": "time", - "name": "start_time", - "label": "Start Time", - "placeholder": "HH:MM" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "start_time", + "label": "Start Time", + "type": "time", + "placeholder": "HH:MM" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-time/read-only-time.json b/examples/schema-catalog/src/schemas/fields-time/read-only-time.json index f38a6c54a4..d027eee06e 100644 --- a/examples/schema-catalog/src/schemas/fields-time/read-only-time.json +++ b/examples/schema-catalog/src/schemas/fields-time/read-only-time.json @@ -1,7 +1,16 @@ { - "type": "time", - "name": "closing_time", - "label": "Closing Time", - "value": "18:00", - "readonly": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "closing_time": "18:00" + }, + "fields": [ + { + "name": "closing_time", + "label": "Closing Time", + "type": "time", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-time/required-time.json b/examples/schema-catalog/src/schemas/fields-time/required-time.json index ea098af758..7774878bd9 100644 --- a/examples/schema-catalog/src/schemas/fields-time/required-time.json +++ b/examples/schema-catalog/src/schemas/fields-time/required-time.json @@ -1,6 +1,13 @@ { - "type": "time", - "name": "alarm_time", - "label": "Alarm Time", - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "alarm_time", + "label": "Alarm Time", + "type": "time", + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-time/with-default-value.json b/examples/schema-catalog/src/schemas/fields-time/with-default-value.json index 94999723c6..98e5b1e24e 100644 --- a/examples/schema-catalog/src/schemas/fields-time/with-default-value.json +++ b/examples/schema-catalog/src/schemas/fields-time/with-default-value.json @@ -1,6 +1,15 @@ { - "type": "time", - "name": "office_hours", - "label": "Office Hours", - "value": "09:00" + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "office_hours": "09:00" + }, + "fields": [ + { + "name": "office_hours", + "label": "Office Hours", + "type": "time" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-url/basic-url-field.json b/examples/schema-catalog/src/schemas/fields-url/basic-url-field.json index 7aa61d87b7..08f3587471 100644 --- a/examples/schema-catalog/src/schemas/fields-url/basic-url-field.json +++ b/examples/schema-catalog/src/schemas/fields-url/basic-url-field.json @@ -1,6 +1,13 @@ { - "type": "url", - "name": "website", - "label": "Website", - "placeholder": "https://example.com" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "website", + "label": "Website", + "type": "url", + "placeholder": "https://example.com" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-url/required-url.json b/examples/schema-catalog/src/schemas/fields-url/required-url.json index d1ddd4d986..8c5df92793 100644 --- a/examples/schema-catalog/src/schemas/fields-url/required-url.json +++ b/examples/schema-catalog/src/schemas/fields-url/required-url.json @@ -1,7 +1,14 @@ { - "type": "url", - "name": "portfolio", - "label": "Portfolio URL", - "placeholder": "https://yoursite.com", - "required": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "portfolio", + "label": "Portfolio URL", + "type": "url", + "placeholder": "https://yoursite.com", + "required": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-user/multiple-user-selection.json b/examples/schema-catalog/src/schemas/fields-user/multiple-user-selection.json index 45da8d983a..23261ccc9f 100644 --- a/examples/schema-catalog/src/schemas/fields-user/multiple-user-selection.json +++ b/examples/schema-catalog/src/schemas/fields-user/multiple-user-selection.json @@ -1,6 +1,13 @@ { - "type": "user", - "name": "team_members", - "label": "Team Members", - "multiple": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "team_members", + "label": "Team Members", + "type": "user", + "multiple": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-user/record-owner-read-only.json b/examples/schema-catalog/src/schemas/fields-user/record-owner-read-only.json index 6b24f928c8..a9b9de2ce9 100644 --- a/examples/schema-catalog/src/schemas/fields-user/record-owner-read-only.json +++ b/examples/schema-catalog/src/schemas/fields-user/record-owner-read-only.json @@ -1,6 +1,13 @@ { - "type": "owner", - "name": "record_owner", - "label": "Owner", - "readonly": true + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "record_owner", + "label": "Owner", + "type": "owner", + "readonly": true + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-user/single-user-selection.json b/examples/schema-catalog/src/schemas/fields-user/single-user-selection.json index 33758976a7..f0b49f3077 100644 --- a/examples/schema-catalog/src/schemas/fields-user/single-user-selection.json +++ b/examples/schema-catalog/src/schemas/fields-user/single-user-selection.json @@ -1,5 +1,12 @@ { - "type": "user", - "name": "assigned_to", - "label": "Assigned To" + "type": "form", + "showSubmit": false, + "showCancel": false, + "fields": [ + { + "name": "assigned_to", + "label": "Assigned To", + "type": "user" + } + ] } diff --git a/examples/schema-catalog/src/schemas/fields-vector/basic-vector-display.json b/examples/schema-catalog/src/schemas/fields-vector/basic-vector-display.json index a11da30981..b03fa68b8c 100644 --- a/examples/schema-catalog/src/schemas/fields-vector/basic-vector-display.json +++ b/examples/schema-catalog/src/schemas/fields-vector/basic-vector-display.json @@ -1,14 +1,23 @@ { - "type": "vector", - "name": "embedding", - "label": "Text Embedding", - "dimensions": 768, - "readonly": true, - "value": [ - 0.1234, - -0.5678, - 0.9012, - 0.3456, - -0.789 + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "embedding": [ + 0.1234, + -0.5678, + 0.9012, + 0.3456, + -0.789 + ] + }, + "fields": [ + { + "name": "embedding", + "label": "Text Embedding", + "type": "vector", + "dimensions": 768, + "readonly": true + } ] } diff --git a/examples/schema-catalog/src/schemas/fields-vector/high-dimensional-vector.json b/examples/schema-catalog/src/schemas/fields-vector/high-dimensional-vector.json index 41feac15f3..616d8df5cb 100644 --- a/examples/schema-catalog/src/schemas/fields-vector/high-dimensional-vector.json +++ b/examples/schema-catalog/src/schemas/fields-vector/high-dimensional-vector.json @@ -1,1545 +1,1554 @@ { - "type": "vector", - "name": "image_embedding", - "label": "Image Embedding", - "dimensions": 1536, - "readonly": true, - "value": [ - 0.7236862902567045, - 0.7360609047882398, - 0.8723854843871712, - -0.5622484594740151, - -0.06319770189603946, - 0.9444617545419449, - -0.6019709724936473, - -0.3947082688798089, - 0.2575699979810808, - -0.5101366460380634, - 0.625812603456178, - 0.32986933417909103, - -0.9875861446291219, - 0.33666443891857023, - 0.904999577754199, - 0.8580719726949939, - 0.42208568008441727, - -0.9512344916057989, - 0.7836714577427608, - 0.04194889140603464, - 0.8150948372385167, - 0.6189624389573416, - 0.8776697732692822, - -0.9054355141998227, - -0.7996249441918317, - 0.2208198401951107, - -0.8586245551745559, - -0.09214830916799777, - 0.6906883104407864, - -0.298312912183214, - 0.8364335099780722, - 0.8296209210020156, - 0.6252960722521184, - 0.4818297695172078, - 0.8323096103704779, - -0.19650788419866982, - 0.40892725440140754, - 0.17353445731498507, - -0.6229729483469586, - 0.6625505562193934, - 0.8627247911706297, - -0.9604427221216285, - -0.22369372086713546, - 0.640573195823112, - -0.00904588730372069, - -0.926119411024442, - 0.8441998024280819, - 0.9272937959020289, - -0.9146268215749513, - 0.9412689247689645, - 0.7274954761702617, - 0.331676854815268, - 0.18508097608879992, - 0.8052222382585181, - 0.6801838052388876, - 0.7552837884758989, - 0.015904118963112168, - -0.03212378054954668, - -0.08929549391927116, - -0.6796977151642984, - -0.2157697155494831, - -0.6008886103220366, - -0.47038457846100723, - 0.9008311066507371, - 0.7040444535335504, - 0.5411064147706564, - 0.4844826770688777, - -0.35944100214480557, - -0.5895033223023165, - -0.6607467400812399, - -0.7009875237653684, - -0.3663760757181538, - 0.430826366391428, - 0.4248989376815566, - -0.37511126815620077, - 0.6953273123337542, - 0.67943841223216, - 0.6434292473579533, - -0.033457637664019435, - 0.5668202353465321, - -0.13837722181133705, - -0.3901260114935523, - 0.8462538235322341, - 0.5724657578559447, - 0.6807579865836155, - -0.269128259356326, - 0.9905069958424062, - 0.5411835666747498, - -0.49382961236092426, - -0.3044271799464393, - 0.16503752476013211, - 0.12007743426374917, - 0.28040569428813344, - -0.474269524268218, - -0.7505850798776794, - 0.6447104347244079, - -0.1787455934401243, - -0.19283822477774182, - 0.40179866285294996, - 0.5630955958508648, - 0.4615609053652079, - 0.6742307295021612, - -0.5873929620387788, - 0.6059165439351502, - -0.7093789908774428, - 0.1873220198609047, - 0.4905560128532913, - -0.7153098459819165, - -0.13599086908782376, - 0.43941329685173236, - -0.0049024429523549795, - -0.042608799491938854, - -0.2071448856410696, - -0.22655356212714217, - 0.4360920653482834, - -0.08966311781809666, - -0.35061512860061295, - -0.1484920276388213, - -0.9075877180256355, - 0.6270138541433712, - -0.2006567141311919, - -0.14844277973104614, - -0.5637013339743651, - 0.731731063271601, - -0.2562432985182417, - -0.7499326145325189, - 0.2578634900884538, - -0.6177378427886255, - 0.0018486625901388276, - 0.14760741955420142, - 0.5346788975004639, - -0.41146752447201385, - -0.9364460641241252, - 0.04915565740195427, - 0.5848007841949125, - 0.5577684752230485, - -0.32732621241257553, - -0.4500463389760989, - 0.6259226206493438, - -0.4734781187744297, - 0.2948339495578396, - 0.3662570195519672, - -0.2236036283559648, - -0.7914739035116554, - -0.36243268074762014, - -0.9222449633782479, - 0.6847394851994577, - -0.5722372749918161, - -0.23732864765722983, - -0.1331550537899051, - 0.31708709149725056, - 0.2292447939582667, - 0.27674736704563063, - 0.49350369075795686, - 0.2651249744550248, - -0.4947160795214878, - 0.2784920361861216, - 0.36016399885259953, - 0.7964548843966557, - -0.16200134096904484, - 0.5114892272160361, - 0.6722208226017448, - -0.10198869788591303, - -0.007803950483180833, - 0.21193732956650568, - 0.4187324808224282, - 0.09400835884170133, - 0.2911898166233897, - 0.3313409119317605, - -0.27968780405394766, - 0.16314682619060306, - -0.16657528048740167, - -0.9362137407077098, - 0.8233810773933923, - -0.850183738031923, - -0.8164432223745162, - -0.9550216183334319, - -0.9077176810789822, - 0.5064100761528416, - -0.48674594360714685, - 0.28072932600827616, - 0.2660360935322903, - -0.4581486538775923, - -0.4847119686797188, - 0.6593815840643646, - -0.6062506065199591, - 0.8252163078877854, - 0.9708924661409919, - -0.9973954952298711, - 0.6246486193537923, - -0.014087750041244407, - 0.653167339378445, - -0.026693313560876453, - -0.5343534862899404, - -0.9042860760258791, - 0.03586928853954485, - -0.09549856645048327, - 0.8407488137463177, - -0.48809508060619455, - -0.5627916772588482, - 0.8611575591284371, - -0.1374240595447458, - 0.4859734162697871, - 0.5399739940229042, - 0.10826443782605266, - -0.47710060127338405, - 0.3353599066347317, - 0.40285977309327237, - -0.42389099230049543, - -0.6233127619118972, - 0.7927466900518534, - -0.822446640618925, - 0.30602105419308057, - 0.48855854486802475, - -0.12918580432417115, - 0.9706769415663004, - 0.08731534368640026, - -0.3812946750421462, - 0.7245025864120922, - 0.4122071632237121, - -0.07296702373963182, - 0.10358841638736416, - -0.9519350549166099, - -0.25361947256261197, - 0.9823576547871915, - 0.6959975912564458, - -0.6435911569668094, - -0.2830317771973234, - -0.09493755781115731, - 0.5882122249680393, - -0.3565416533417025, - -0.4467723669723229, - 0.0156728239285977, - 0.9216385345556932, - -0.5400468584618341, - -0.1349342748367215, - -0.7126261138572678, - -0.09461588266516863, - -0.44023869880261346, - 0.867061341873151, - 0.2658145533495866, - -0.9749166222458796, - -0.03224376316609834, - -0.0567393299771588, - -0.14393867650959513, - -0.15291917951798517, - -0.10620583258574112, - 0.7115437435902339, - 0.8244908461228331, - 0.6281273094840532, - 0.7599808803406944, - 0.5797939254835449, - -0.7975978380058044, - 0.8440979121585317, - -0.6612696957570361, - -0.11571294965382539, - -0.01557562489044173, - 0.8701182263832659, - -0.2402315287552892, - 0.15451171798966912, - -0.35285362571144696, - -0.5273337386805663, - 0.30811757701189957, - -0.9399908516857849, - -0.8632121818515139, - -0.801605448793121, - -0.6237368054576469, - 0.2810393671555831, - 0.053320427436127416, - -0.08044664505787358, - 0.4472358919434738, - -0.06623656020015067, - -0.22479780249980807, - -0.972472169224172, - 0.796310787388963, - 0.9583421021272338, - 0.6662799809703475, - -0.6640901517918909, - -0.7819292802652809, - -0.27862634019667243, - 0.6027633050516641, - -0.5112179071784326, - 0.23018990341218526, - -0.7138367823568594, - 0.9955790701546581, - 0.6488270841198909, - 0.77689070913344, - -0.782741744351741, - 0.33725555574877153, - 0.1069615458422506, - 0.5860845871469622, - -0.42234180935820365, - -0.11616731823128701, - -0.25325217166148306, - -0.14775055308349927, - -0.6454891861525145, - -0.5554903814788976, - 0.9408559630712978, - 0.708849216068151, - -0.4819928700145164, - -0.33400039580497753, - 0.2829510451074606, - -0.40162760240566575, - -0.5918791623627742, - 0.5738431679554874, - -0.6156192305574872, - -0.3169058121891406, - -0.9779409425749861, - 0.5635830439792135, - 0.998383810026195, - 0.7328586374865622, - -0.6831328770702128, - -0.09051573168533755, - -0.899239942418776, - 0.9032691820252827, - 0.25477656713014385, - -0.6077171850895873, - 0.039929888876756525, - -0.8462866204553725, - -0.3752627733351015, - -0.8450229721630549, - -0.5703130108428893, - 0.8980137928001146, - -0.3054846255967463, - -0.9618244925903976, - 0.3635644787515204, - -0.0566370909368743, - -0.6473794026111002, - 0.5735274819154137, - 0.24186741816086754, - -0.9914456992237528, - -0.6341746586881698, - 0.7742089748581367, - 0.698097248158718, - -0.41101397468448986, - 0.2677653287494144, - -0.5167987747254932, - -0.6567645776639299, - 0.3011948324098723, - 0.6530788829367988, - 0.433919134197039, - 0.20363354497437847, - 0.362054232325556, - -0.6130289977327696, - 0.8657859424631915, - 0.6370709080427357, - -0.04918497155526458, - -0.06545165215778792, - -0.3294841386651719, - 0.9971065203901546, - 0.08383515550326992, - -0.4837378942796531, - -0.29179678667425013, - -0.12643230763348035, - 0.12448709699805405, - -0.5455062742602186, - 0.9297092582674602, - -0.05588657599314306, - -0.08524537570005597, - 0.8396768334372617, - 0.7184153251343692, - 0.5396289728709129, - -0.8621325350753148, - -0.010134300200050683, - -0.8138898678442363, - 0.6472024281617392, - -0.7718489540798643, - 0.5721378390162106, - 0.5490281752180646, - 0.4198195289427078, - 0.9160732093585231, - 0.25390932009577183, - -0.3107571471744548, - -0.5914595602573054, - 0.3056511389357315, - 0.8304985697361855, - 0.23925252612980774, - -0.5685765110727401, - -0.26139307843621307, - -0.7440335066567172, - 0.8583835545817557, - -0.3822330217277281, - 0.3437702793654194, - 0.5790942097588201, - 0.5367350082082738, - 0.4228696557133145, - 0.7141510639133968, - 0.7818688241447245, - 0.6077003355168547, - -0.8008112454471035, - -0.22634441434154406, - -0.7933599054405973, - -0.40166659105296576, - -0.6119474402566849, - 0.8251809073926368, - 0.4251292779772071, - -0.5211841140522198, - -0.5354982164281681, - -0.2935165499108898, - -0.9757215063965317, - 0.5439840823707411, - 0.6520984375870102, - -0.449924393795855, - -0.7165675895780701, - -0.30199212258229613, - 0.6074096417304264, - -0.16534972358816935, - -0.3624329651290614, - -0.6042377856562995, - 0.8352810236167652, - 0.22409230929511015, - -0.30804176736502953, - 0.9537230117089539, - -0.4301138124870856, - 0.9045580040302679, - 0.3477220756212325, - -0.150217008255918, - -0.7168474453731091, - 0.5594378852999109, - 0.9088957532776063, - 0.7323982552124335, - -0.6373002459097672, - 0.957861670556726, - -0.9167642907092117, - 0.7634322806411484, - 0.3541389166322324, - -0.5603929863667916, - -0.015675089382182428, - 0.6900586168363354, - -0.090714736089756, - 0.3219893025453555, - 0.6507129800719611, - 0.47830075702464914, - -0.5214311301681942, - 0.6921382778635867, - 0.7447937079826763, - -0.6615581097411041, - 0.4373732246343227, - -0.37937049209246254, - 0.5994551667886172, - 0.2413924012199704, - -0.9989597029152721, - -0.40973261996154053, - 0.09892768322054146, - 0.31778083698420234, - -0.7576727317640881, - -0.6792205286673114, - 0.9869794327481405, - -0.09026230573328164, - -0.12696641893886262, - -0.17442907171204758, - 0.7801444286309371, - 0.32080057586495636, - -0.037239743456145336, - 0.43920979839521057, - 0.08732850121409585, - -0.5335197368397646, - 0.1420452918060635, - -0.39264514655696625, - -0.6681115721276891, - 0.39389010302082816, - -0.9839538092631228, - -0.6943658371731445, - -0.7523312022630233, - 0.1226767814927483, - 0.3555338955562952, - -0.37103809165911983, - -0.19673523695770379, - 0.6248834074231846, - -0.24170880752092305, - 0.8815864009230798, - 0.8113709595171068, - -0.47068969458392096, - 0.4221236874109946, - 0.35727938306617024, - -0.20663631125513016, - 0.16364988384059065, - -0.07853710227735422, - 0.35484392607741744, - 0.37655339452412506, - -0.042510889621808934, - -0.6655605133149349, - 0.3873083310411529, - -0.49743584260454266, - -0.439768144444288, - 0.7150003578446231, - -0.7849785017712925, - -0.6059455997863477, - -0.6077871064132956, - -0.04248941429291575, - 0.9468914731702096, - 0.547291343747659, - -0.9572398119810801, - -0.5533566527321243, - 0.9081017453500266, - -0.20287998474908142, - -0.012091655025356696, - -0.19982373892025418, - -0.6159770104848494, - -0.8621534640575201, - -0.7795979411260294, - 0.7019481251909321, - -0.9042714147945716, - 0.9389174410303365, - -0.8924107610522727, - -0.08521091846074058, - -0.6801821438229732, - 0.16759414276593199, - 0.9794078476300192, - 0.7631486742772347, - 0.24926722336415463, - 0.1397588100899836, - 0.09440681844409382, - -0.8487261767831873, - -0.2262520824913088, - 0.46856589213377564, - -0.4606774766172492, - -0.663915911726684, - -0.37188095001948973, - 0.08013413952382908, - -0.848334363376875, - 0.5258031733314159, - -0.5017609746341685, - 0.39802677787241314, - 0.6592465279053281, - 0.6954373713401505, - -0.11012733308061673, - -0.1904318784474064, - -0.46316949761826876, - -0.7150878838106012, - 0.027393314345133035, - -0.8824032163660538, - -0.8868867131284357, - -0.4028462645633446, - 0.23193642464231656, - -0.4465464139051569, - 0.6103575427836332, - -0.01943040876115787, - -0.19390873186475743, - -0.41948883153759664, - 0.025524540017541897, - 0.9204588503186972, - -0.009896986017533749, - 0.1592316916643879, - -0.9300167838254279, - 0.9064208050889331, - -0.5315049225192914, - -0.9812424652445886, - -0.26345934733430365, - -0.14999742719875275, - -0.08676617738516534, - -0.4913369778517971, - -0.895891375212349, - -0.6998490298726923, - -0.2141656133531502, - -0.9900483454281122, - 0.20120811096144608, - 0.8180004211145611, - -0.8292101876236968, - 0.7750709339660011, - 0.11891900917250497, - -0.16097592617676226, - -0.525492943003663, - -0.11211987724658368, - -0.6736454024232665, - 0.5838426527062324, - -0.43846687244321236, - 0.3916760082110595, - 0.00930987759527202, - 0.25536765506186176, - -0.5411829695643873, - 0.8883822966732957, - 0.6192524473291501, - -0.3786078826635524, - -0.7405305784326421, - -0.6997041024164561, - 0.3657742885392459, - -0.8282903323499902, - -0.5038152889701086, - -0.28852809833924487, - 0.27925652934172573, - -0.666981024612842, - 0.4122310260910471, - -0.2039442104040574, - -0.8763017962195829, - -0.30238838169652804, - 0.9787854364512587, - 0.7157255407627181, - 0.10246412063741595, - 0.5532030019026011, - 0.8976060684879721, - 0.9130150684729581, - 0.787795039763638, - 0.46209613529989, - 0.06233950707637281, - -0.26856627943637923, - 0.44145784051577497, - -0.88537694913368, - 0.4399097099846201, - 0.5925332282112439, - -0.6315769285481048, - 0.5763097230398331, - -0.10387287629145381, - 0.6865545330277605, - 0.5271359441546455, - 0.6020729183529716, - 0.09762346939310595, - 0.3811652526653937, - -0.3617857871360246, - 0.9031589207070809, - -0.8787248901277487, - 0.1327379763923724, - 0.46233824299210813, - 0.8392397768194659, - 0.7298764113126706, - -0.7917818607297995, - -0.2922566855658375, - -0.737793831393309, - -0.13965270945009922, - 0.39296197692079815, - 0.6595261173515008, - 0.05272790844974007, - 0.38837215619638754, - 0.9375063917024447, - -0.49073695335498724, - 0.7638526790908275, - -0.7000566659889973, - 0.6501538945348428, - 0.6127741888182894, - -0.06687631257304272, - 0.5415762628471268, - -0.6257279833854141, - -0.6059134371630088, - -0.6437873393255393, - -0.440994180373272, - 0.303823900374117, - 0.14829980170633394, - -0.8562099575087374, - 0.13228131872191895, - 0.949830885152124, - 0.9797361851195643, - -0.23779586697151212, - -0.7579051236803014, - -0.6378025252512933, - -0.13193312311973315, - 0.4396343166204606, - 0.4807427924303922, - -0.6182023984596083, - 0.4921288971384923, - 0.9610706466653745, - 0.26603195813094516, - 0.7111552972856792, - 0.8888179145815713, - 0.8456708853957304, - 0.37750856360078444, - -0.08761378317287538, - 0.6530852532125586, - -0.9608977713496551, - -0.8554528317401993, - -0.33391588668749894, - 0.9320968841654405, - -0.8656879186246482, - 0.5101352103074452, - -0.5113642374388552, - -0.7198210096863453, - -0.4280764270670485, - 0.9525445876820884, - 0.7783542456798709, - -0.32078640466508523, - 0.17354467828239373, - 0.28307399618430384, - 0.9175369213215017, - 0.8892785614364784, - -0.3941487584426939, - -0.19364217350976753, - 0.2440976402892976, - 0.24304971758124605, - -0.679081640027821, - -0.758689484629901, - -0.09014576345145331, - 0.8757425793927738, - 0.6157236795334764, - -0.015594183666501449, - -0.024843264368457074, - 0.6317586470890402, - -0.9947350801656494, - -0.7624764907279578, - 0.181994327810439, - 0.007614383319295426, - -0.5882839830555506, - 0.45509339686493, - 0.5925234008030531, - 0.4970328342522512, - -0.5193700103101044, - 0.1475501218560591, - 0.09178141210778423, - 0.27916401149644177, - -0.3420017992701798, - -0.3345769320803369, - 0.8537068183781993, - -0.47904253493400417, - -0.9992020875705154, - -0.8595890223068163, - -0.6203989671045449, - 0.10474693231658283, - -0.7982475386047905, - -0.8452933957215418, - 0.12679162076113193, - 0.5543084787352288, - -0.9047826873388891, - -0.8164782843149554, - 0.21743738707038562, - 0.21221020026378157, - 0.18187823121298186, - -0.7822749394106092, - -0.0386834222970458, - -0.5344678505616827, - 0.3776898242173128, - 0.08898377481538389, - 0.9507023715830463, - -0.8448072960084678, - -0.5159652609384602, - 0.4486948468520686, - 0.4843833992273485, - 0.06375516884034282, - -0.8935481947508754, - -0.9550091025481795, - -0.7463850601779274, - -0.6613893370240815, - 0.7235211951110396, - -0.44649059970537053, - -0.4625468565564539, - 0.20133438319119445, - 0.7338359364081293, - -0.34454486536988016, - -0.6169300684576591, - -0.2804655442446584, - -0.14905834013817398, - 0.7407967877822124, - 0.27764894226716064, - -0.5867852477952638, - -0.4442136732015647, - 0.8554202604515522, - -0.7217625288487199, - 0.3859757180503274, - 0.07968618794095828, - -0.4783848584016297, - 0.4963439623796584, - 0.80710723438572, - 0.6897169356814388, - 0.2646097232110909, - -0.47894376967504604, - -0.991930989172642, - -0.9083205982839078, - -0.877599949837389, - 0.03745329460684221, - -0.8224214037357509, - 0.39053157302659613, - 0.6572140337441408, - -0.6013881350849775, - -0.33919079270267116, - 0.9403568802426485, - 0.7814663134621549, - -0.5229019808647029, - -0.2059207589387999, - 0.43103192709461724, - 0.7496316558532758, - -0.46171065026468106, - 0.38177699438781443, - 0.47716445005161034, - 0.7925221703369951, - -0.06255312300149285, - 0.6791403930447524, - 0.7118176166435235, - -0.5789977981998398, - 0.06317577409895447, - 0.13198928261445864, - 0.6392065967763094, - 0.629134552276245, - 0.7911579348814242, - -0.7519266214109395, - 0.07034002572226306, - -0.9816158818062655, - -0.7292354908326617, - -0.6705047983015489, - 0.33703628520212137, - 0.5938611748097655, - -0.5936369121622698, - -0.30407056111887076, - -0.3874334958413608, - -0.9790293967107218, - 0.8783146707974858, - -0.5498550428398006, - -0.6187439027767154, - 0.21552337963987456, - 0.723542324994578, - 0.5982991565197071, - -0.03686990280480851, - 0.7305701769137283, - -0.5324727026046727, - -0.07945356936861114, - -0.39827751831579383, - -0.2774852768851366, - -0.42122450897575714, - -0.36250966045440935, - 0.11298217436033653, - -0.2627211793434947, - -0.7843695174061092, - -0.34862730777632067, - 0.8859304726353034, - -0.035537278782274306, - -0.2701843162087063, - -0.8590554706044966, - -0.5176600340143043, - -0.27504290315716085, - -0.9782392049708846, - 0.589751859656531, - -0.7941365652507582, - -0.8197770656965193, - -0.6953606198427045, - -0.16690770229167295, - -0.17224093744680702, - 0.2342495011876684, - 0.596850686160922, - 0.39269015553137554, - -0.6162525869706872, - 0.017805577351239332, - -0.8840344570981755, - -0.33953241249053434, - 0.8910788673209229, - -0.4677882468268373, - 0.4013171245437024, - 0.00858790218577199, - 0.5250646741000355, - 0.04817814009828125, - 0.9981693577565793, - 0.6154071606402645, - 0.4548734531016654, - 0.46555037742654837, - -0.1703087281303135, - 0.20106012383000493, - -0.4293161085685311, - 0.49127660535378137, - -0.3234620974736062, - -0.09811744555744184, - -0.9514305257480822, - 0.28371019763202465, - 0.4292326165243996, - -0.0626904020598682, - 0.7671127647353477, - 0.2858715517148793, - -0.6518811190881659, - 0.45108299110522143, - -0.3234663571535703, - -0.19238053981886427, - -0.9239668322121588, - -0.12557411080933822, - 0.0443794466275238, - 0.9497113412484293, - 0.5719911353994953, - -0.811068020259633, - -0.7588339301036886, - 0.35806361878871784, - -0.039617827256436255, - 0.5777876663935824, - -0.39914751057998044, - -0.5696557294229732, - -0.2070548250259019, - 0.7205690278826382, - -0.326916710111925, - 0.2809040936731937, - 0.1249095147297754, - 0.8678466706630419, - 0.05538175254376565, - -0.16083764711677273, - -0.7763352535023664, - -0.03537224541491768, - 0.9253717825458971, - 0.6459346708425533, - 0.8085164461592207, - -0.5921466332943637, - -0.798947145269072, - 0.4256369135828262, - -0.7038053179321868, - -0.39634588469129484, - -0.8529762080992769, - -0.7764269681247242, - -0.4923991423904426, - 0.41585276403063043, - 0.6638825249168825, - 0.5351130121783576, - -0.3395151458161658, - -0.04853822920485862, - -0.2742883100592761, - 0.45072284025165077, - 0.6191351808773651, - -0.3753434594991152, - -0.9946455659138174, - -0.024966191885977596, - 0.836219451781735, - -0.8062964537535671, - 0.9766492981029242, - 0.37133056885135285, - 0.5323494883530884, - 0.6311947660617132, - -0.704229309030318, - -0.5034440060901204, - -0.3889242816830678, - -0.28506132007266216, - -0.701302241944769, - 0.0410609179885324, - 0.8088923142762567, - 0.03450129053834283, - 0.0062970846671435154, - -0.6149095986676221, - 0.17724517655487904, - -0.8653135980988422, - 0.05962181110017073, - 0.7614115401282067, - 0.8492471076326162, - 0.41999762506637683, - 0.45564982587821423, - 0.4891123036358662, - 0.26155654126770345, - 0.7851681666287507, - 0.3242542561921429, - 0.7315625107248087, - 0.22436402047311854, - 0.6192971601308734, - -0.9770800311890804, - 0.5072825078566359, - -0.4961882806485598, - -0.4988849752460742, - 0.6638016297333289, - 0.7934440238027858, - 0.7835855085449792, - 0.524070444370069, - -0.023642931477567464, - -0.11064176425913863, - -0.5082265847692928, - -0.8196818007250097, - -0.5920254906002058, - 0.9332925866841708, - 0.4591082274375391, - 0.6829747211658996, - -0.6691510007119965, - 0.8268463806182496, - 0.7562923759725366, - -0.9709465404733806, - 0.23740732398111764, - -0.9857018924683258, - 0.9235166101802403, - -0.22081647406780225, - 0.0037889685113590144, - -0.17663656674298767, - 0.2827292207507126, - -0.40405666727667655, - -0.3772848474220185, - -0.2961968538410378, - 0.24069012275862423, - 0.13166870193080982, - -0.6188471250592638, - -0.14421634599746813, - 0.2387885486950645, - -0.8647864141235795, - 0.7976816685554051, - -0.4698384510959681, - -0.5648337430686976, - -0.9870978688952816, - 0.9157776266125843, - -0.33637890179297814, - -0.42448499017490504, - 0.455549157299421, - 0.47053726005833396, - 0.4928724108160296, - 0.14178575672453708, - -0.7139758973639945, - 0.8651126250847601, - -0.6372590322922029, - 0.9386323028855288, - 0.8218191261199317, - 0.22382725560629013, - 0.6887175270271486, - -0.17625756753118904, - -0.3314404741231205, - 0.2666865873685649, - -0.6143384511353456, - 0.9299138528029087, - -0.3011272855256464, - -0.7014163655534023, - 0.7620057154346784, - 0.3148578255922285, - -0.16939302945198986, - 0.8770008556235767, - 0.35746150447001623, - 0.2578508821377894, - -0.8734471528335648, - 0.764508561145959, - 0.8362713110509556, - 0.8052408525390733, - 0.4991487748804493, - 0.7155872615341525, - -0.8209415799098203, - -0.9918823722013206, - -0.8150413033502482, - -0.8732185302099147, - 0.19531717765129009, - -0.4065182778969352, - -0.7172429647540322, - 0.8450473583539024, - -0.30140362546038113, - 0.08605676727408595, - 0.8476412874573527, - -0.27555150186930266, - -0.9031119973962658, - 0.6441215301704573, - 0.35825501737195453, - 0.9225386471821231, - -0.6726571450399095, - -0.4753309219528712, - -0.6138681511985722, - 0.7978962849804465, - -0.10672530056383378, - -0.3707962585674267, - -0.4018598780326288, - -0.3134535873476876, - 0.9198095638540702, - -0.6800585885681674, - -0.16362435533046904, - 0.4262740513569334, - 0.1294010403149597, - 0.4785992161004824, - 0.6668639113534964, - 0.19369314687965455, - 0.6125291622824132, - -0.5628470467882032, - -0.9597561390066436, - 0.8334431280247809, - -0.14259803088554168, - 0.5492072714158331, - -0.8670859980040402, - -0.8502448160271305, - 0.7834601163634165, - 0.5301263823351354, - 0.38071098100211653, - -0.7097624928912232, - -0.848406665978469, - -0.36979546498525506, - 0.3388719341524773, - -0.2698825236923652, - 0.8898398950201389, - 0.2906305879625839, - 0.773402860547594, - 0.8039001535350945, - -0.6547298057367317, - -0.03375394504671103, - 0.9098366833406948, - 0.7425313748661797, - 0.9182088067502123, - -0.12621086339324106, - -0.45512035500224024, - 0.49760594017913085, - -0.6220708393354051, - 0.23900963503523642, - -0.6797546090465407, - -0.8614076004917399, - 0.40258635094244166, - -0.9626072282424312, - 0.9062345667684817, - 0.8530857805440963, - 0.8792390658217675, - 0.9153756877058874, - -0.06144678824284577, - -0.9794660660805807, - -0.046671151631775265, - -0.41259450876414117, - 0.7458817794090633, - 0.050488012141521876, - -0.623725077928561, - 0.07187062448417203, - -0.5098646807952456, - 0.17501834212664802, - -0.40508391988395265, - 0.8780599032947538, - -0.5091406082853422, - 0.1740606659724151, - 0.31091763020810625, - 0.30646958080531905, - -0.05169914546195664, - 0.525621841329754, - 0.021108203180331353, - 0.3046090370387864, - -0.8178960801961093, - 0.8107810825666752, - 0.08266174244753088, - -0.5338679934174524, - 0.32056858410446365, - 0.46684364358798836, - 0.380849751142853, - 0.8999309468155936, - -0.07554907551444301, - -0.6667173655668477, - -0.41870949547232184, - -0.6500238664355094, - 0.7136237006180943, - 0.5714181053344927, - 0.1510766755465771, - -0.587945119665694, - 0.7438591652275026, - 0.32819086456830404, - -0.8626836793000616, - -0.45103073321845266, - 0.8402175273336026, - -0.7302695370219503, - 0.5631437312104723, - -0.20229660297332708, - 0.0402226849998657, - -0.2746413351056056, - -0.5367975507803917, - 0.5484961584719235, - -0.873406904475277, - -0.019482929722204556, - 0.18211459645715045, - 0.7262700108987807, - 0.05632061934846755, - 0.7782973575994456, - -0.9472054518575099, - -0.5744474351878817, - 0.46531666369307545, - 0.2607846675340999, - -0.2980274528229845, - 0.4652233749778256, - 0.17173921286919702, - -0.3693653356193418, - -0.24374278862424714, - 0.6316752142121278, - -0.5440486573662664, - -0.9753997534270087, - -0.7026376431263051, - -0.9732977987622287, - -0.2967425590567496, - 0.6144181711561207, - 0.15890097708148243, - 0.14752096689434602, - 0.9726688807977992, - -0.3818292308076088, - 0.38232422183512593, - 0.16712937755882717, - 0.6335332286687649, - -0.038048923645088495, - 0.08645561444434424, - -0.45267183496825103, - -0.7359641205472611, - -0.8415484871911547, - 0.2575684985925646, - 0.4581930768560325, - -0.7091237908264207, - -0.2883093911018737, - 0.9001764181122085, - -0.2867760775446677, - -0.4686503592491955, - 0.39671365689043814, - -0.17039165184495242, - -0.9937625301714705, - 0.8811277395144366, - 0.8662784387375739, - 0.25667923590002806, - 0.5233539461826158, - -0.9066859690134155, - 0.3569224818027623, - 0.6904410107457846, - -0.4781686747279461, - 0.6237662634698535, - -0.43207913108500495, - 0.11478615723582042, - -0.4369853603991538, - -0.9653080079546075, - 0.30835459669508913, - -0.3065042534844049, - 0.9889688502686611, - 0.5088475713974698, - -0.9111587508510397, - 0.052519631362415, - 0.16068317877514549, - -0.44783107515554565, - 0.12140068198771092, - -0.5310397249342986, - 0.9698758867173185, - 0.8031554584728593, - -0.15027607402991183, - 0.7135182184678273, - -0.7178715285417272, - 0.33125098532139674, - -0.07077766159589194, - -0.9731688797694078, - 0.6982762040528008, - 0.4997313972323967, - 0.09841583115847818, - -0.6160058953921557, - -0.8575328146022179, - 0.4531673426812386, - 0.5862463444626171, - 0.7994219282125019, - -0.9636983480415158, - -0.7400672997320399, - 0.8376092452895803, - 0.20723970323546892, - -0.9990717305981729, - -0.7026687296238314, - 0.013250745493590843, - 0.37031150688855297, - -0.7163617512188689, - 0.4423296933168215, - 0.6399584535771321, - -0.8074957264192824, - -0.1210101304639628, - -0.0757932319767336, - 0.3223544227177453, - 0.10332663563579025, - 0.7071287622385063, - -0.31212686028836356, - 0.19918945053451176, - 0.5164091618894799, - 0.812108692326444, - -0.012195740263180488, - -0.7615324193424711, - -0.9109209966244824, - -0.036382095221740185, - 0.5882288771464554, - 0.08182936385122552, - 0.5576294719437656, - 0.6327234784993008, - -0.540895658201072, - 0.15119349341239996, - 0.8053658740238754, - 0.5982927613388966, - 0.2788680868217035, - 0.5226599404253776, - 0.03707120373282313, - -0.8190981582744821, - -0.08869078081267756, - -0.04812619617864988, - 0.8519193832523884, - -0.062403458287655145, - -0.2544339202344321, - 0.3938244776994788, - -0.33583957700055045, - 0.6224346540416499, - -0.7733336615640485, - -0.1832161600300215, - -0.7624532171433254, - -0.3783018053790581, - -0.23707456856388132, - -0.45800389784398354, - -0.6253285303736673, - 0.6681396356459712, - 0.755005623057035, - 0.2196602013294564, - -0.6010934564157324, - 0.8512421286699634, - -0.4515732286657663, - 0.010370771942128876, - -0.39481817735952696, - -0.7710028128533839, - -0.25804923590736895, - 0.6486634171478629, - -0.9922951338688943, - 0.2706547839321607, - 0.46215393533618676, - 0.6353215657335294, - -0.42579266145732353, - 0.43702153848985215, - 0.2788291845904749, - -0.7381150221716763, - 0.0763900391274579, - 0.47222187016365536, - 0.37107267490398477, - -0.4908460805692403, - -0.039822439940202514, - 0.795980183576344, - 0.3859748401927834, - 0.3701698169989396, - -0.8039517336357282, - -0.6661652058722973, - -0.998036574676767, - 0.7491137879903786, - -0.057939850522854774, - 0.42685415021291995, - -0.8923392855142274, - -0.2821870143309606, - -0.6966449162468162, - 0.06988691331637176, - 0.956147272390873, - -0.695107141889727, - -0.5295439052197897, - -0.6263906463164151, - -0.24686850280300088, - 0.2551793894868206, - 0.5311467677377868, - -0.8220237590614281, - -0.23311311838095472, - 0.18639895618759073, - -0.09699093699229211, - 0.5865536177094082, - 0.5883883124404259, - -0.6151248952086124, - 0.7499599810001567, - 0.7039998067847812, - -0.9788405826866025, - 0.8866351040373726, - 0.9735779905107278, - 0.026805533609797427, - 0.32720418839570375, - -0.7861177456219688, - -0.3780753639482919, - 0.26237868278602305, - 0.5363562504408521, - 0.08949683445960632, - 0.9885346157083337, - 0.18747803756403014, - -0.2611827329722256, - 0.7074732965586346, - 0.8449359910789926, - 0.8574976580375757, - 0.7056409974714781, - -0.6518337475112079, - -0.17111572916340645, - -0.36399004619780606, - 0.16376917019934312, - 0.27089772298497405, - 0.715304834614092, - -0.40925474209353996, - -0.9754315435717658, - -0.14048835007686034, - 0.6861411882063433, - 0.801983922196873, - 0.8523020412983859, - -0.37606280633743827, - -0.6346899158989268, - -0.29383343878434154, - -0.4264025112704628, - 0.8061628231964795, - 0.9710026551709365, - 0.366093566312623, - -0.31574073051123785, - -0.6074610461997405, - -0.35746759959950114, - -0.5789639149860801, - -0.8092833760189273, - 0.37646975902992597, - -0.12232545757898872, - 0.6577706526377163, - 0.0007398468373456257, - 0.25818537655129226, - 0.9106812081487683, - 0.7697440899058827, - -0.8767511604187381, - -0.6227810708491537, - 0.6473400418844562, - 0.6458228083742978, - -0.7178690094350773, - 0.4067202235805778, - -0.44785455730997703, - 0.370910255101518, - 0.9018366585745792, - 0.14887876724522386, - -0.20018457807058088, - -0.8602473991441435, - -0.3384508758948035, - -0.20857951043701228, - -0.11578601524132037, - 0.153720266934128, - 0.4099486684197624, - -0.49655046347034704, - 0.7943566009825294, - -0.9157627382504445, - -0.6705725739596848, - -0.3259264317639712, - 0.15098951681657424, - 0.6980164314279254, - 0.44302915292083167, - 0.6782535828988956, - 0.28875965864441033, - 0.34747573580984414, - 0.6510591170295745, - -0.8734127440409416, - -0.15723117371684414, - 0.32991309633305477, - 0.6380798968373829, - 0.08743213177799602, - 0.9926079861526473, - -0.7704278441393293, - 0.3609927411677374, - -0.9429808369763659, - 0.076672346015912, - 0.44674473227735456, - 0.22251669738757784, - 0.720482820111418, - -0.08560676380379806, - 0.09374454878558458, - -0.3793993726333713, - -0.9833534297608972, - 0.3758401845882373, - -0.7736788552622316, - -0.2845363696413694, - 0.6563815059205951, - 0.5152052178836137, - 0.2536827824618242, - -0.7483605311136055, - 0.8715232746970438, - 0.60134291952639, - 0.5859079151770636, - -0.7471434712849621, - -0.9846360875904869, - 0.28688991542077624, - 0.22278743404467782, - -0.07307212185313205, - 0.43116149033413853, - -0.6842978205629171, - 0.9236742047436637, - 0.37192212211566233, - -0.3843800803392854, - -0.3711639184829625, - 0.6460022442085687, - -0.6590112062103093, - -0.21929917206654914, - 0.9176399086085372, - -0.27413063268530413, - -0.8059421318656728, - -0.9177529078711695, - -0.08147587649076948, - -0.6973351597238284, - 0.5820008752075809, - 0.03742585334317994, - -0.7347213185790016, - -0.8630800948294857, - -0.9313513704279903, - 0.7318210051296064, - 0.7036423827145679, - -0.6491779877287036, - -0.8346741461488281, - 0.6517762938879434, - 0.18396671282371302, - 0.36433527829633694, - 0.16379968621843322, - 0.7690965758091322, - 0.8793636616624754, - 0.18513572709961967, - -0.3286475661928727, - 0.8769402973250946, - 0.519976950598847, - -0.7455565760590461, - 0.7821054514623977, - 0.21250352239668624, - -0.6125845175931259, - -0.0737371778447089, - -0.4307174535663214, - 0.7712728650386842, - 0.1137376175390854, - -0.7054511816092295, - -0.7818477891230746, - -0.8800639649648372, - 0.22976792778164112, - 0.4134588603607199, - -0.20542566832692222, - 0.3123425158050075, - 0.4597641160640866, - -0.13391293215448363, - 0.42974576634877026, - -0.4698892589626691, - 0.7664926264236502, - 0.6373787972377887, - -0.03294645136772689, - 0.5953615596844342, - -0.24468902561426398, - -0.3804762625729481, - 0.9550637806427478, - 0.1038077401272317, - -0.2705206478359219, - 0.5624897702719533, - 0.9808195598127132, - -0.33285249856318133, - 0.6022358890338171, - 0.472938095199287, - 0.2992536647467119, - -0.6305763222716398, - -0.13861324706123668, - -0.9166373502114642, - 0.3027023694759614, - 0.1839199621452574, - 0.8575021894320536, - 0.8018726379812038, - -0.82285210694796, - 0.16563162695129252, - 0.4149854690835675, - -0.45878210158883337, - -0.005182609839557761, - -0.9219576828841889, - 0.16412923081025932, - -0.11900402956481848, - 0.8520796381302338, - -0.44702604871740914, - 0.010943452543501042, - -0.17564971917662864, - -0.4019478220203303, - -0.5149636016102377, - -0.29571481724485094, - -0.05023572069157023, - -0.7756518730874715, - 0.84386528390095, - 0.3436227695169083, - -0.37749003587543406, - -0.7374144142607821, - 0.25120253682460825, - 0.5788844336189307, - -0.6898011439073921, - -0.7601812005798763, - -0.7396523725839219, - 0.46097171760793487, - 0.6529818268269405, - -0.250000425227888, - -0.31849506933623095, - 0.04521359228958066, - 0.3168109604126954, - 0.49203409603117976, - 0.46487681378001766, - -0.5532550249877406, - -0.2029304758980901, - 0.32011055184514436, - -0.5789198921023269, - -0.8404065282617874, - 0.9653679971570677, - -0.49515588638885477, - 0.5183540520616752, - -0.8798736206668438, - -0.49138842882745704 + "type": "form", + "showSubmit": false, + "showCancel": false, + "defaultValues": { + "image_embedding": [ + 0.7236862902567045, + 0.7360609047882398, + 0.8723854843871712, + -0.5622484594740151, + -0.06319770189603946, + 0.9444617545419449, + -0.6019709724936473, + -0.3947082688798089, + 0.2575699979810808, + -0.5101366460380634, + 0.625812603456178, + 0.32986933417909103, + -0.9875861446291219, + 0.33666443891857023, + 0.904999577754199, + 0.8580719726949939, + 0.42208568008441727, + -0.9512344916057989, + 0.7836714577427608, + 0.04194889140603464, + 0.8150948372385167, + 0.6189624389573416, + 0.8776697732692822, + -0.9054355141998227, + -0.7996249441918317, + 0.2208198401951107, + -0.8586245551745559, + -0.09214830916799777, + 0.6906883104407864, + -0.298312912183214, + 0.8364335099780722, + 0.8296209210020156, + 0.6252960722521184, + 0.4818297695172078, + 0.8323096103704779, + -0.19650788419866982, + 0.40892725440140754, + 0.17353445731498507, + -0.6229729483469586, + 0.6625505562193934, + 0.8627247911706297, + -0.9604427221216285, + -0.22369372086713546, + 0.640573195823112, + -0.00904588730372069, + -0.926119411024442, + 0.8441998024280819, + 0.9272937959020289, + -0.9146268215749513, + 0.9412689247689645, + 0.7274954761702617, + 0.331676854815268, + 0.18508097608879992, + 0.8052222382585181, + 0.6801838052388876, + 0.7552837884758989, + 0.015904118963112168, + -0.03212378054954668, + -0.08929549391927116, + -0.6796977151642984, + -0.2157697155494831, + -0.6008886103220366, + -0.47038457846100723, + 0.9008311066507371, + 0.7040444535335504, + 0.5411064147706564, + 0.4844826770688777, + -0.35944100214480557, + -0.5895033223023165, + -0.6607467400812399, + -0.7009875237653684, + -0.3663760757181538, + 0.430826366391428, + 0.4248989376815566, + -0.37511126815620077, + 0.6953273123337542, + 0.67943841223216, + 0.6434292473579533, + -0.033457637664019435, + 0.5668202353465321, + -0.13837722181133705, + -0.3901260114935523, + 0.8462538235322341, + 0.5724657578559447, + 0.6807579865836155, + -0.269128259356326, + 0.9905069958424062, + 0.5411835666747498, + -0.49382961236092426, + -0.3044271799464393, + 0.16503752476013211, + 0.12007743426374917, + 0.28040569428813344, + -0.474269524268218, + -0.7505850798776794, + 0.6447104347244079, + -0.1787455934401243, + -0.19283822477774182, + 0.40179866285294996, + 0.5630955958508648, + 0.4615609053652079, + 0.6742307295021612, + -0.5873929620387788, + 0.6059165439351502, + -0.7093789908774428, + 0.1873220198609047, + 0.4905560128532913, + -0.7153098459819165, + -0.13599086908782376, + 0.43941329685173236, + -0.0049024429523549795, + -0.042608799491938854, + -0.2071448856410696, + -0.22655356212714217, + 0.4360920653482834, + -0.08966311781809666, + -0.35061512860061295, + -0.1484920276388213, + -0.9075877180256355, + 0.6270138541433712, + -0.2006567141311919, + -0.14844277973104614, + -0.5637013339743651, + 0.731731063271601, + -0.2562432985182417, + -0.7499326145325189, + 0.2578634900884538, + -0.6177378427886255, + 0.0018486625901388276, + 0.14760741955420142, + 0.5346788975004639, + -0.41146752447201385, + -0.9364460641241252, + 0.04915565740195427, + 0.5848007841949125, + 0.5577684752230485, + -0.32732621241257553, + -0.4500463389760989, + 0.6259226206493438, + -0.4734781187744297, + 0.2948339495578396, + 0.3662570195519672, + -0.2236036283559648, + -0.7914739035116554, + -0.36243268074762014, + -0.9222449633782479, + 0.6847394851994577, + -0.5722372749918161, + -0.23732864765722983, + -0.1331550537899051, + 0.31708709149725056, + 0.2292447939582667, + 0.27674736704563063, + 0.49350369075795686, + 0.2651249744550248, + -0.4947160795214878, + 0.2784920361861216, + 0.36016399885259953, + 0.7964548843966557, + -0.16200134096904484, + 0.5114892272160361, + 0.6722208226017448, + -0.10198869788591303, + -0.007803950483180833, + 0.21193732956650568, + 0.4187324808224282, + 0.09400835884170133, + 0.2911898166233897, + 0.3313409119317605, + -0.27968780405394766, + 0.16314682619060306, + -0.16657528048740167, + -0.9362137407077098, + 0.8233810773933923, + -0.850183738031923, + -0.8164432223745162, + -0.9550216183334319, + -0.9077176810789822, + 0.5064100761528416, + -0.48674594360714685, + 0.28072932600827616, + 0.2660360935322903, + -0.4581486538775923, + -0.4847119686797188, + 0.6593815840643646, + -0.6062506065199591, + 0.8252163078877854, + 0.9708924661409919, + -0.9973954952298711, + 0.6246486193537923, + -0.014087750041244407, + 0.653167339378445, + -0.026693313560876453, + -0.5343534862899404, + -0.9042860760258791, + 0.03586928853954485, + -0.09549856645048327, + 0.8407488137463177, + -0.48809508060619455, + -0.5627916772588482, + 0.8611575591284371, + -0.1374240595447458, + 0.4859734162697871, + 0.5399739940229042, + 0.10826443782605266, + -0.47710060127338405, + 0.3353599066347317, + 0.40285977309327237, + -0.42389099230049543, + -0.6233127619118972, + 0.7927466900518534, + -0.822446640618925, + 0.30602105419308057, + 0.48855854486802475, + -0.12918580432417115, + 0.9706769415663004, + 0.08731534368640026, + -0.3812946750421462, + 0.7245025864120922, + 0.4122071632237121, + -0.07296702373963182, + 0.10358841638736416, + -0.9519350549166099, + -0.25361947256261197, + 0.9823576547871915, + 0.6959975912564458, + -0.6435911569668094, + -0.2830317771973234, + -0.09493755781115731, + 0.5882122249680393, + -0.3565416533417025, + -0.4467723669723229, + 0.0156728239285977, + 0.9216385345556932, + -0.5400468584618341, + -0.1349342748367215, + -0.7126261138572678, + -0.09461588266516863, + -0.44023869880261346, + 0.867061341873151, + 0.2658145533495866, + -0.9749166222458796, + -0.03224376316609834, + -0.0567393299771588, + -0.14393867650959513, + -0.15291917951798517, + -0.10620583258574112, + 0.7115437435902339, + 0.8244908461228331, + 0.6281273094840532, + 0.7599808803406944, + 0.5797939254835449, + -0.7975978380058044, + 0.8440979121585317, + -0.6612696957570361, + -0.11571294965382539, + -0.01557562489044173, + 0.8701182263832659, + -0.2402315287552892, + 0.15451171798966912, + -0.35285362571144696, + -0.5273337386805663, + 0.30811757701189957, + -0.9399908516857849, + -0.8632121818515139, + -0.801605448793121, + -0.6237368054576469, + 0.2810393671555831, + 0.053320427436127416, + -0.08044664505787358, + 0.4472358919434738, + -0.06623656020015067, + -0.22479780249980807, + -0.972472169224172, + 0.796310787388963, + 0.9583421021272338, + 0.6662799809703475, + -0.6640901517918909, + -0.7819292802652809, + -0.27862634019667243, + 0.6027633050516641, + -0.5112179071784326, + 0.23018990341218526, + -0.7138367823568594, + 0.9955790701546581, + 0.6488270841198909, + 0.77689070913344, + -0.782741744351741, + 0.33725555574877153, + 0.1069615458422506, + 0.5860845871469622, + -0.42234180935820365, + -0.11616731823128701, + -0.25325217166148306, + -0.14775055308349927, + -0.6454891861525145, + -0.5554903814788976, + 0.9408559630712978, + 0.708849216068151, + -0.4819928700145164, + -0.33400039580497753, + 0.2829510451074606, + -0.40162760240566575, + -0.5918791623627742, + 0.5738431679554874, + -0.6156192305574872, + -0.3169058121891406, + -0.9779409425749861, + 0.5635830439792135, + 0.998383810026195, + 0.7328586374865622, + -0.6831328770702128, + -0.09051573168533755, + -0.899239942418776, + 0.9032691820252827, + 0.25477656713014385, + -0.6077171850895873, + 0.039929888876756525, + -0.8462866204553725, + -0.3752627733351015, + -0.8450229721630549, + -0.5703130108428893, + 0.8980137928001146, + -0.3054846255967463, + -0.9618244925903976, + 0.3635644787515204, + -0.0566370909368743, + -0.6473794026111002, + 0.5735274819154137, + 0.24186741816086754, + -0.9914456992237528, + -0.6341746586881698, + 0.7742089748581367, + 0.698097248158718, + -0.41101397468448986, + 0.2677653287494144, + -0.5167987747254932, + -0.6567645776639299, + 0.3011948324098723, + 0.6530788829367988, + 0.433919134197039, + 0.20363354497437847, + 0.362054232325556, + -0.6130289977327696, + 0.8657859424631915, + 0.6370709080427357, + -0.04918497155526458, + -0.06545165215778792, + -0.3294841386651719, + 0.9971065203901546, + 0.08383515550326992, + -0.4837378942796531, + -0.29179678667425013, + -0.12643230763348035, + 0.12448709699805405, + -0.5455062742602186, + 0.9297092582674602, + -0.05588657599314306, + -0.08524537570005597, + 0.8396768334372617, + 0.7184153251343692, + 0.5396289728709129, + -0.8621325350753148, + -0.010134300200050683, + -0.8138898678442363, + 0.6472024281617392, + -0.7718489540798643, + 0.5721378390162106, + 0.5490281752180646, + 0.4198195289427078, + 0.9160732093585231, + 0.25390932009577183, + -0.3107571471744548, + -0.5914595602573054, + 0.3056511389357315, + 0.8304985697361855, + 0.23925252612980774, + -0.5685765110727401, + -0.26139307843621307, + -0.7440335066567172, + 0.8583835545817557, + -0.3822330217277281, + 0.3437702793654194, + 0.5790942097588201, + 0.5367350082082738, + 0.4228696557133145, + 0.7141510639133968, + 0.7818688241447245, + 0.6077003355168547, + -0.8008112454471035, + -0.22634441434154406, + -0.7933599054405973, + -0.40166659105296576, + -0.6119474402566849, + 0.8251809073926368, + 0.4251292779772071, + -0.5211841140522198, + -0.5354982164281681, + -0.2935165499108898, + -0.9757215063965317, + 0.5439840823707411, + 0.6520984375870102, + -0.449924393795855, + -0.7165675895780701, + -0.30199212258229613, + 0.6074096417304264, + -0.16534972358816935, + -0.3624329651290614, + -0.6042377856562995, + 0.8352810236167652, + 0.22409230929511015, + -0.30804176736502953, + 0.9537230117089539, + -0.4301138124870856, + 0.9045580040302679, + 0.3477220756212325, + -0.150217008255918, + -0.7168474453731091, + 0.5594378852999109, + 0.9088957532776063, + 0.7323982552124335, + -0.6373002459097672, + 0.957861670556726, + -0.9167642907092117, + 0.7634322806411484, + 0.3541389166322324, + -0.5603929863667916, + -0.015675089382182428, + 0.6900586168363354, + -0.090714736089756, + 0.3219893025453555, + 0.6507129800719611, + 0.47830075702464914, + -0.5214311301681942, + 0.6921382778635867, + 0.7447937079826763, + -0.6615581097411041, + 0.4373732246343227, + -0.37937049209246254, + 0.5994551667886172, + 0.2413924012199704, + -0.9989597029152721, + -0.40973261996154053, + 0.09892768322054146, + 0.31778083698420234, + -0.7576727317640881, + -0.6792205286673114, + 0.9869794327481405, + -0.09026230573328164, + -0.12696641893886262, + -0.17442907171204758, + 0.7801444286309371, + 0.32080057586495636, + -0.037239743456145336, + 0.43920979839521057, + 0.08732850121409585, + -0.5335197368397646, + 0.1420452918060635, + -0.39264514655696625, + -0.6681115721276891, + 0.39389010302082816, + -0.9839538092631228, + -0.6943658371731445, + -0.7523312022630233, + 0.1226767814927483, + 0.3555338955562952, + -0.37103809165911983, + -0.19673523695770379, + 0.6248834074231846, + -0.24170880752092305, + 0.8815864009230798, + 0.8113709595171068, + -0.47068969458392096, + 0.4221236874109946, + 0.35727938306617024, + -0.20663631125513016, + 0.16364988384059065, + -0.07853710227735422, + 0.35484392607741744, + 0.37655339452412506, + -0.042510889621808934, + -0.6655605133149349, + 0.3873083310411529, + -0.49743584260454266, + -0.439768144444288, + 0.7150003578446231, + -0.7849785017712925, + -0.6059455997863477, + -0.6077871064132956, + -0.04248941429291575, + 0.9468914731702096, + 0.547291343747659, + -0.9572398119810801, + -0.5533566527321243, + 0.9081017453500266, + -0.20287998474908142, + -0.012091655025356696, + -0.19982373892025418, + -0.6159770104848494, + -0.8621534640575201, + -0.7795979411260294, + 0.7019481251909321, + -0.9042714147945716, + 0.9389174410303365, + -0.8924107610522727, + -0.08521091846074058, + -0.6801821438229732, + 0.16759414276593199, + 0.9794078476300192, + 0.7631486742772347, + 0.24926722336415463, + 0.1397588100899836, + 0.09440681844409382, + -0.8487261767831873, + -0.2262520824913088, + 0.46856589213377564, + -0.4606774766172492, + -0.663915911726684, + -0.37188095001948973, + 0.08013413952382908, + -0.848334363376875, + 0.5258031733314159, + -0.5017609746341685, + 0.39802677787241314, + 0.6592465279053281, + 0.6954373713401505, + -0.11012733308061673, + -0.1904318784474064, + -0.46316949761826876, + -0.7150878838106012, + 0.027393314345133035, + -0.8824032163660538, + -0.8868867131284357, + -0.4028462645633446, + 0.23193642464231656, + -0.4465464139051569, + 0.6103575427836332, + -0.01943040876115787, + -0.19390873186475743, + -0.41948883153759664, + 0.025524540017541897, + 0.9204588503186972, + -0.009896986017533749, + 0.1592316916643879, + -0.9300167838254279, + 0.9064208050889331, + -0.5315049225192914, + -0.9812424652445886, + -0.26345934733430365, + -0.14999742719875275, + -0.08676617738516534, + -0.4913369778517971, + -0.895891375212349, + -0.6998490298726923, + -0.2141656133531502, + -0.9900483454281122, + 0.20120811096144608, + 0.8180004211145611, + -0.8292101876236968, + 0.7750709339660011, + 0.11891900917250497, + -0.16097592617676226, + -0.525492943003663, + -0.11211987724658368, + -0.6736454024232665, + 0.5838426527062324, + -0.43846687244321236, + 0.3916760082110595, + 0.00930987759527202, + 0.25536765506186176, + -0.5411829695643873, + 0.8883822966732957, + 0.6192524473291501, + -0.3786078826635524, + -0.7405305784326421, + -0.6997041024164561, + 0.3657742885392459, + -0.8282903323499902, + -0.5038152889701086, + -0.28852809833924487, + 0.27925652934172573, + -0.666981024612842, + 0.4122310260910471, + -0.2039442104040574, + -0.8763017962195829, + -0.30238838169652804, + 0.9787854364512587, + 0.7157255407627181, + 0.10246412063741595, + 0.5532030019026011, + 0.8976060684879721, + 0.9130150684729581, + 0.787795039763638, + 0.46209613529989, + 0.06233950707637281, + -0.26856627943637923, + 0.44145784051577497, + -0.88537694913368, + 0.4399097099846201, + 0.5925332282112439, + -0.6315769285481048, + 0.5763097230398331, + -0.10387287629145381, + 0.6865545330277605, + 0.5271359441546455, + 0.6020729183529716, + 0.09762346939310595, + 0.3811652526653937, + -0.3617857871360246, + 0.9031589207070809, + -0.8787248901277487, + 0.1327379763923724, + 0.46233824299210813, + 0.8392397768194659, + 0.7298764113126706, + -0.7917818607297995, + -0.2922566855658375, + -0.737793831393309, + -0.13965270945009922, + 0.39296197692079815, + 0.6595261173515008, + 0.05272790844974007, + 0.38837215619638754, + 0.9375063917024447, + -0.49073695335498724, + 0.7638526790908275, + -0.7000566659889973, + 0.6501538945348428, + 0.6127741888182894, + -0.06687631257304272, + 0.5415762628471268, + -0.6257279833854141, + -0.6059134371630088, + -0.6437873393255393, + -0.440994180373272, + 0.303823900374117, + 0.14829980170633394, + -0.8562099575087374, + 0.13228131872191895, + 0.949830885152124, + 0.9797361851195643, + -0.23779586697151212, + -0.7579051236803014, + -0.6378025252512933, + -0.13193312311973315, + 0.4396343166204606, + 0.4807427924303922, + -0.6182023984596083, + 0.4921288971384923, + 0.9610706466653745, + 0.26603195813094516, + 0.7111552972856792, + 0.8888179145815713, + 0.8456708853957304, + 0.37750856360078444, + -0.08761378317287538, + 0.6530852532125586, + -0.9608977713496551, + -0.8554528317401993, + -0.33391588668749894, + 0.9320968841654405, + -0.8656879186246482, + 0.5101352103074452, + -0.5113642374388552, + -0.7198210096863453, + -0.4280764270670485, + 0.9525445876820884, + 0.7783542456798709, + -0.32078640466508523, + 0.17354467828239373, + 0.28307399618430384, + 0.9175369213215017, + 0.8892785614364784, + -0.3941487584426939, + -0.19364217350976753, + 0.2440976402892976, + 0.24304971758124605, + -0.679081640027821, + -0.758689484629901, + -0.09014576345145331, + 0.8757425793927738, + 0.6157236795334764, + -0.015594183666501449, + -0.024843264368457074, + 0.6317586470890402, + -0.9947350801656494, + -0.7624764907279578, + 0.181994327810439, + 0.007614383319295426, + -0.5882839830555506, + 0.45509339686493, + 0.5925234008030531, + 0.4970328342522512, + -0.5193700103101044, + 0.1475501218560591, + 0.09178141210778423, + 0.27916401149644177, + -0.3420017992701798, + -0.3345769320803369, + 0.8537068183781993, + -0.47904253493400417, + -0.9992020875705154, + -0.8595890223068163, + -0.6203989671045449, + 0.10474693231658283, + -0.7982475386047905, + -0.8452933957215418, + 0.12679162076113193, + 0.5543084787352288, + -0.9047826873388891, + -0.8164782843149554, + 0.21743738707038562, + 0.21221020026378157, + 0.18187823121298186, + -0.7822749394106092, + -0.0386834222970458, + -0.5344678505616827, + 0.3776898242173128, + 0.08898377481538389, + 0.9507023715830463, + -0.8448072960084678, + -0.5159652609384602, + 0.4486948468520686, + 0.4843833992273485, + 0.06375516884034282, + -0.8935481947508754, + -0.9550091025481795, + -0.7463850601779274, + -0.6613893370240815, + 0.7235211951110396, + -0.44649059970537053, + -0.4625468565564539, + 0.20133438319119445, + 0.7338359364081293, + -0.34454486536988016, + -0.6169300684576591, + -0.2804655442446584, + -0.14905834013817398, + 0.7407967877822124, + 0.27764894226716064, + -0.5867852477952638, + -0.4442136732015647, + 0.8554202604515522, + -0.7217625288487199, + 0.3859757180503274, + 0.07968618794095828, + -0.4783848584016297, + 0.4963439623796584, + 0.80710723438572, + 0.6897169356814388, + 0.2646097232110909, + -0.47894376967504604, + -0.991930989172642, + -0.9083205982839078, + -0.877599949837389, + 0.03745329460684221, + -0.8224214037357509, + 0.39053157302659613, + 0.6572140337441408, + -0.6013881350849775, + -0.33919079270267116, + 0.9403568802426485, + 0.7814663134621549, + -0.5229019808647029, + -0.2059207589387999, + 0.43103192709461724, + 0.7496316558532758, + -0.46171065026468106, + 0.38177699438781443, + 0.47716445005161034, + 0.7925221703369951, + -0.06255312300149285, + 0.6791403930447524, + 0.7118176166435235, + -0.5789977981998398, + 0.06317577409895447, + 0.13198928261445864, + 0.6392065967763094, + 0.629134552276245, + 0.7911579348814242, + -0.7519266214109395, + 0.07034002572226306, + -0.9816158818062655, + -0.7292354908326617, + -0.6705047983015489, + 0.33703628520212137, + 0.5938611748097655, + -0.5936369121622698, + -0.30407056111887076, + -0.3874334958413608, + -0.9790293967107218, + 0.8783146707974858, + -0.5498550428398006, + -0.6187439027767154, + 0.21552337963987456, + 0.723542324994578, + 0.5982991565197071, + -0.03686990280480851, + 0.7305701769137283, + -0.5324727026046727, + -0.07945356936861114, + -0.39827751831579383, + -0.2774852768851366, + -0.42122450897575714, + -0.36250966045440935, + 0.11298217436033653, + -0.2627211793434947, + -0.7843695174061092, + -0.34862730777632067, + 0.8859304726353034, + -0.035537278782274306, + -0.2701843162087063, + -0.8590554706044966, + -0.5176600340143043, + -0.27504290315716085, + -0.9782392049708846, + 0.589751859656531, + -0.7941365652507582, + -0.8197770656965193, + -0.6953606198427045, + -0.16690770229167295, + -0.17224093744680702, + 0.2342495011876684, + 0.596850686160922, + 0.39269015553137554, + -0.6162525869706872, + 0.017805577351239332, + -0.8840344570981755, + -0.33953241249053434, + 0.8910788673209229, + -0.4677882468268373, + 0.4013171245437024, + 0.00858790218577199, + 0.5250646741000355, + 0.04817814009828125, + 0.9981693577565793, + 0.6154071606402645, + 0.4548734531016654, + 0.46555037742654837, + -0.1703087281303135, + 0.20106012383000493, + -0.4293161085685311, + 0.49127660535378137, + -0.3234620974736062, + -0.09811744555744184, + -0.9514305257480822, + 0.28371019763202465, + 0.4292326165243996, + -0.0626904020598682, + 0.7671127647353477, + 0.2858715517148793, + -0.6518811190881659, + 0.45108299110522143, + -0.3234663571535703, + -0.19238053981886427, + -0.9239668322121588, + -0.12557411080933822, + 0.0443794466275238, + 0.9497113412484293, + 0.5719911353994953, + -0.811068020259633, + -0.7588339301036886, + 0.35806361878871784, + -0.039617827256436255, + 0.5777876663935824, + -0.39914751057998044, + -0.5696557294229732, + -0.2070548250259019, + 0.7205690278826382, + -0.326916710111925, + 0.2809040936731937, + 0.1249095147297754, + 0.8678466706630419, + 0.05538175254376565, + -0.16083764711677273, + -0.7763352535023664, + -0.03537224541491768, + 0.9253717825458971, + 0.6459346708425533, + 0.8085164461592207, + -0.5921466332943637, + -0.798947145269072, + 0.4256369135828262, + -0.7038053179321868, + -0.39634588469129484, + -0.8529762080992769, + -0.7764269681247242, + -0.4923991423904426, + 0.41585276403063043, + 0.6638825249168825, + 0.5351130121783576, + -0.3395151458161658, + -0.04853822920485862, + -0.2742883100592761, + 0.45072284025165077, + 0.6191351808773651, + -0.3753434594991152, + -0.9946455659138174, + -0.024966191885977596, + 0.836219451781735, + -0.8062964537535671, + 0.9766492981029242, + 0.37133056885135285, + 0.5323494883530884, + 0.6311947660617132, + -0.704229309030318, + -0.5034440060901204, + -0.3889242816830678, + -0.28506132007266216, + -0.701302241944769, + 0.0410609179885324, + 0.8088923142762567, + 0.03450129053834283, + 0.0062970846671435154, + -0.6149095986676221, + 0.17724517655487904, + -0.8653135980988422, + 0.05962181110017073, + 0.7614115401282067, + 0.8492471076326162, + 0.41999762506637683, + 0.45564982587821423, + 0.4891123036358662, + 0.26155654126770345, + 0.7851681666287507, + 0.3242542561921429, + 0.7315625107248087, + 0.22436402047311854, + 0.6192971601308734, + -0.9770800311890804, + 0.5072825078566359, + -0.4961882806485598, + -0.4988849752460742, + 0.6638016297333289, + 0.7934440238027858, + 0.7835855085449792, + 0.524070444370069, + -0.023642931477567464, + -0.11064176425913863, + -0.5082265847692928, + -0.8196818007250097, + -0.5920254906002058, + 0.9332925866841708, + 0.4591082274375391, + 0.6829747211658996, + -0.6691510007119965, + 0.8268463806182496, + 0.7562923759725366, + -0.9709465404733806, + 0.23740732398111764, + -0.9857018924683258, + 0.9235166101802403, + -0.22081647406780225, + 0.0037889685113590144, + -0.17663656674298767, + 0.2827292207507126, + -0.40405666727667655, + -0.3772848474220185, + -0.2961968538410378, + 0.24069012275862423, + 0.13166870193080982, + -0.6188471250592638, + -0.14421634599746813, + 0.2387885486950645, + -0.8647864141235795, + 0.7976816685554051, + -0.4698384510959681, + -0.5648337430686976, + -0.9870978688952816, + 0.9157776266125843, + -0.33637890179297814, + -0.42448499017490504, + 0.455549157299421, + 0.47053726005833396, + 0.4928724108160296, + 0.14178575672453708, + -0.7139758973639945, + 0.8651126250847601, + -0.6372590322922029, + 0.9386323028855288, + 0.8218191261199317, + 0.22382725560629013, + 0.6887175270271486, + -0.17625756753118904, + -0.3314404741231205, + 0.2666865873685649, + -0.6143384511353456, + 0.9299138528029087, + -0.3011272855256464, + -0.7014163655534023, + 0.7620057154346784, + 0.3148578255922285, + -0.16939302945198986, + 0.8770008556235767, + 0.35746150447001623, + 0.2578508821377894, + -0.8734471528335648, + 0.764508561145959, + 0.8362713110509556, + 0.8052408525390733, + 0.4991487748804493, + 0.7155872615341525, + -0.8209415799098203, + -0.9918823722013206, + -0.8150413033502482, + -0.8732185302099147, + 0.19531717765129009, + -0.4065182778969352, + -0.7172429647540322, + 0.8450473583539024, + -0.30140362546038113, + 0.08605676727408595, + 0.8476412874573527, + -0.27555150186930266, + -0.9031119973962658, + 0.6441215301704573, + 0.35825501737195453, + 0.9225386471821231, + -0.6726571450399095, + -0.4753309219528712, + -0.6138681511985722, + 0.7978962849804465, + -0.10672530056383378, + -0.3707962585674267, + -0.4018598780326288, + -0.3134535873476876, + 0.9198095638540702, + -0.6800585885681674, + -0.16362435533046904, + 0.4262740513569334, + 0.1294010403149597, + 0.4785992161004824, + 0.6668639113534964, + 0.19369314687965455, + 0.6125291622824132, + -0.5628470467882032, + -0.9597561390066436, + 0.8334431280247809, + -0.14259803088554168, + 0.5492072714158331, + -0.8670859980040402, + -0.8502448160271305, + 0.7834601163634165, + 0.5301263823351354, + 0.38071098100211653, + -0.7097624928912232, + -0.848406665978469, + -0.36979546498525506, + 0.3388719341524773, + -0.2698825236923652, + 0.8898398950201389, + 0.2906305879625839, + 0.773402860547594, + 0.8039001535350945, + -0.6547298057367317, + -0.03375394504671103, + 0.9098366833406948, + 0.7425313748661797, + 0.9182088067502123, + -0.12621086339324106, + -0.45512035500224024, + 0.49760594017913085, + -0.6220708393354051, + 0.23900963503523642, + -0.6797546090465407, + -0.8614076004917399, + 0.40258635094244166, + -0.9626072282424312, + 0.9062345667684817, + 0.8530857805440963, + 0.8792390658217675, + 0.9153756877058874, + -0.06144678824284577, + -0.9794660660805807, + -0.046671151631775265, + -0.41259450876414117, + 0.7458817794090633, + 0.050488012141521876, + -0.623725077928561, + 0.07187062448417203, + -0.5098646807952456, + 0.17501834212664802, + -0.40508391988395265, + 0.8780599032947538, + -0.5091406082853422, + 0.1740606659724151, + 0.31091763020810625, + 0.30646958080531905, + -0.05169914546195664, + 0.525621841329754, + 0.021108203180331353, + 0.3046090370387864, + -0.8178960801961093, + 0.8107810825666752, + 0.08266174244753088, + -0.5338679934174524, + 0.32056858410446365, + 0.46684364358798836, + 0.380849751142853, + 0.8999309468155936, + -0.07554907551444301, + -0.6667173655668477, + -0.41870949547232184, + -0.6500238664355094, + 0.7136237006180943, + 0.5714181053344927, + 0.1510766755465771, + -0.587945119665694, + 0.7438591652275026, + 0.32819086456830404, + -0.8626836793000616, + -0.45103073321845266, + 0.8402175273336026, + -0.7302695370219503, + 0.5631437312104723, + -0.20229660297332708, + 0.0402226849998657, + -0.2746413351056056, + -0.5367975507803917, + 0.5484961584719235, + -0.873406904475277, + -0.019482929722204556, + 0.18211459645715045, + 0.7262700108987807, + 0.05632061934846755, + 0.7782973575994456, + -0.9472054518575099, + -0.5744474351878817, + 0.46531666369307545, + 0.2607846675340999, + -0.2980274528229845, + 0.4652233749778256, + 0.17173921286919702, + -0.3693653356193418, + -0.24374278862424714, + 0.6316752142121278, + -0.5440486573662664, + -0.9753997534270087, + -0.7026376431263051, + -0.9732977987622287, + -0.2967425590567496, + 0.6144181711561207, + 0.15890097708148243, + 0.14752096689434602, + 0.9726688807977992, + -0.3818292308076088, + 0.38232422183512593, + 0.16712937755882717, + 0.6335332286687649, + -0.038048923645088495, + 0.08645561444434424, + -0.45267183496825103, + -0.7359641205472611, + -0.8415484871911547, + 0.2575684985925646, + 0.4581930768560325, + -0.7091237908264207, + -0.2883093911018737, + 0.9001764181122085, + -0.2867760775446677, + -0.4686503592491955, + 0.39671365689043814, + -0.17039165184495242, + -0.9937625301714705, + 0.8811277395144366, + 0.8662784387375739, + 0.25667923590002806, + 0.5233539461826158, + -0.9066859690134155, + 0.3569224818027623, + 0.6904410107457846, + -0.4781686747279461, + 0.6237662634698535, + -0.43207913108500495, + 0.11478615723582042, + -0.4369853603991538, + -0.9653080079546075, + 0.30835459669508913, + -0.3065042534844049, + 0.9889688502686611, + 0.5088475713974698, + -0.9111587508510397, + 0.052519631362415, + 0.16068317877514549, + -0.44783107515554565, + 0.12140068198771092, + -0.5310397249342986, + 0.9698758867173185, + 0.8031554584728593, + -0.15027607402991183, + 0.7135182184678273, + -0.7178715285417272, + 0.33125098532139674, + -0.07077766159589194, + -0.9731688797694078, + 0.6982762040528008, + 0.4997313972323967, + 0.09841583115847818, + -0.6160058953921557, + -0.8575328146022179, + 0.4531673426812386, + 0.5862463444626171, + 0.7994219282125019, + -0.9636983480415158, + -0.7400672997320399, + 0.8376092452895803, + 0.20723970323546892, + -0.9990717305981729, + -0.7026687296238314, + 0.013250745493590843, + 0.37031150688855297, + -0.7163617512188689, + 0.4423296933168215, + 0.6399584535771321, + -0.8074957264192824, + -0.1210101304639628, + -0.0757932319767336, + 0.3223544227177453, + 0.10332663563579025, + 0.7071287622385063, + -0.31212686028836356, + 0.19918945053451176, + 0.5164091618894799, + 0.812108692326444, + -0.012195740263180488, + -0.7615324193424711, + -0.9109209966244824, + -0.036382095221740185, + 0.5882288771464554, + 0.08182936385122552, + 0.5576294719437656, + 0.6327234784993008, + -0.540895658201072, + 0.15119349341239996, + 0.8053658740238754, + 0.5982927613388966, + 0.2788680868217035, + 0.5226599404253776, + 0.03707120373282313, + -0.8190981582744821, + -0.08869078081267756, + -0.04812619617864988, + 0.8519193832523884, + -0.062403458287655145, + -0.2544339202344321, + 0.3938244776994788, + -0.33583957700055045, + 0.6224346540416499, + -0.7733336615640485, + -0.1832161600300215, + -0.7624532171433254, + -0.3783018053790581, + -0.23707456856388132, + -0.45800389784398354, + -0.6253285303736673, + 0.6681396356459712, + 0.755005623057035, + 0.2196602013294564, + -0.6010934564157324, + 0.8512421286699634, + -0.4515732286657663, + 0.010370771942128876, + -0.39481817735952696, + -0.7710028128533839, + -0.25804923590736895, + 0.6486634171478629, + -0.9922951338688943, + 0.2706547839321607, + 0.46215393533618676, + 0.6353215657335294, + -0.42579266145732353, + 0.43702153848985215, + 0.2788291845904749, + -0.7381150221716763, + 0.0763900391274579, + 0.47222187016365536, + 0.37107267490398477, + -0.4908460805692403, + -0.039822439940202514, + 0.795980183576344, + 0.3859748401927834, + 0.3701698169989396, + -0.8039517336357282, + -0.6661652058722973, + -0.998036574676767, + 0.7491137879903786, + -0.057939850522854774, + 0.42685415021291995, + -0.8923392855142274, + -0.2821870143309606, + -0.6966449162468162, + 0.06988691331637176, + 0.956147272390873, + -0.695107141889727, + -0.5295439052197897, + -0.6263906463164151, + -0.24686850280300088, + 0.2551793894868206, + 0.5311467677377868, + -0.8220237590614281, + -0.23311311838095472, + 0.18639895618759073, + -0.09699093699229211, + 0.5865536177094082, + 0.5883883124404259, + -0.6151248952086124, + 0.7499599810001567, + 0.7039998067847812, + -0.9788405826866025, + 0.8866351040373726, + 0.9735779905107278, + 0.026805533609797427, + 0.32720418839570375, + -0.7861177456219688, + -0.3780753639482919, + 0.26237868278602305, + 0.5363562504408521, + 0.08949683445960632, + 0.9885346157083337, + 0.18747803756403014, + -0.2611827329722256, + 0.7074732965586346, + 0.8449359910789926, + 0.8574976580375757, + 0.7056409974714781, + -0.6518337475112079, + -0.17111572916340645, + -0.36399004619780606, + 0.16376917019934312, + 0.27089772298497405, + 0.715304834614092, + -0.40925474209353996, + -0.9754315435717658, + -0.14048835007686034, + 0.6861411882063433, + 0.801983922196873, + 0.8523020412983859, + -0.37606280633743827, + -0.6346899158989268, + -0.29383343878434154, + -0.4264025112704628, + 0.8061628231964795, + 0.9710026551709365, + 0.366093566312623, + -0.31574073051123785, + -0.6074610461997405, + -0.35746759959950114, + -0.5789639149860801, + -0.8092833760189273, + 0.37646975902992597, + -0.12232545757898872, + 0.6577706526377163, + 0.0007398468373456257, + 0.25818537655129226, + 0.9106812081487683, + 0.7697440899058827, + -0.8767511604187381, + -0.6227810708491537, + 0.6473400418844562, + 0.6458228083742978, + -0.7178690094350773, + 0.4067202235805778, + -0.44785455730997703, + 0.370910255101518, + 0.9018366585745792, + 0.14887876724522386, + -0.20018457807058088, + -0.8602473991441435, + -0.3384508758948035, + -0.20857951043701228, + -0.11578601524132037, + 0.153720266934128, + 0.4099486684197624, + -0.49655046347034704, + 0.7943566009825294, + -0.9157627382504445, + -0.6705725739596848, + -0.3259264317639712, + 0.15098951681657424, + 0.6980164314279254, + 0.44302915292083167, + 0.6782535828988956, + 0.28875965864441033, + 0.34747573580984414, + 0.6510591170295745, + -0.8734127440409416, + -0.15723117371684414, + 0.32991309633305477, + 0.6380798968373829, + 0.08743213177799602, + 0.9926079861526473, + -0.7704278441393293, + 0.3609927411677374, + -0.9429808369763659, + 0.076672346015912, + 0.44674473227735456, + 0.22251669738757784, + 0.720482820111418, + -0.08560676380379806, + 0.09374454878558458, + -0.3793993726333713, + -0.9833534297608972, + 0.3758401845882373, + -0.7736788552622316, + -0.2845363696413694, + 0.6563815059205951, + 0.5152052178836137, + 0.2536827824618242, + -0.7483605311136055, + 0.8715232746970438, + 0.60134291952639, + 0.5859079151770636, + -0.7471434712849621, + -0.9846360875904869, + 0.28688991542077624, + 0.22278743404467782, + -0.07307212185313205, + 0.43116149033413853, + -0.6842978205629171, + 0.9236742047436637, + 0.37192212211566233, + -0.3843800803392854, + -0.3711639184829625, + 0.6460022442085687, + -0.6590112062103093, + -0.21929917206654914, + 0.9176399086085372, + -0.27413063268530413, + -0.8059421318656728, + -0.9177529078711695, + -0.08147587649076948, + -0.6973351597238284, + 0.5820008752075809, + 0.03742585334317994, + -0.7347213185790016, + -0.8630800948294857, + -0.9313513704279903, + 0.7318210051296064, + 0.7036423827145679, + -0.6491779877287036, + -0.8346741461488281, + 0.6517762938879434, + 0.18396671282371302, + 0.36433527829633694, + 0.16379968621843322, + 0.7690965758091322, + 0.8793636616624754, + 0.18513572709961967, + -0.3286475661928727, + 0.8769402973250946, + 0.519976950598847, + -0.7455565760590461, + 0.7821054514623977, + 0.21250352239668624, + -0.6125845175931259, + -0.0737371778447089, + -0.4307174535663214, + 0.7712728650386842, + 0.1137376175390854, + -0.7054511816092295, + -0.7818477891230746, + -0.8800639649648372, + 0.22976792778164112, + 0.4134588603607199, + -0.20542566832692222, + 0.3123425158050075, + 0.4597641160640866, + -0.13391293215448363, + 0.42974576634877026, + -0.4698892589626691, + 0.7664926264236502, + 0.6373787972377887, + -0.03294645136772689, + 0.5953615596844342, + -0.24468902561426398, + -0.3804762625729481, + 0.9550637806427478, + 0.1038077401272317, + -0.2705206478359219, + 0.5624897702719533, + 0.9808195598127132, + -0.33285249856318133, + 0.6022358890338171, + 0.472938095199287, + 0.2992536647467119, + -0.6305763222716398, + -0.13861324706123668, + -0.9166373502114642, + 0.3027023694759614, + 0.1839199621452574, + 0.8575021894320536, + 0.8018726379812038, + -0.82285210694796, + 0.16563162695129252, + 0.4149854690835675, + -0.45878210158883337, + -0.005182609839557761, + -0.9219576828841889, + 0.16412923081025932, + -0.11900402956481848, + 0.8520796381302338, + -0.44702604871740914, + 0.010943452543501042, + -0.17564971917662864, + -0.4019478220203303, + -0.5149636016102377, + -0.29571481724485094, + -0.05023572069157023, + -0.7756518730874715, + 0.84386528390095, + 0.3436227695169083, + -0.37749003587543406, + -0.7374144142607821, + 0.25120253682460825, + 0.5788844336189307, + -0.6898011439073921, + -0.7601812005798763, + -0.7396523725839219, + 0.46097171760793487, + 0.6529818268269405, + -0.250000425227888, + -0.31849506933623095, + 0.04521359228958066, + 0.3168109604126954, + 0.49203409603117976, + 0.46487681378001766, + -0.5532550249877406, + -0.2029304758980901, + 0.32011055184514436, + -0.5789198921023269, + -0.8404065282617874, + 0.9653679971570677, + -0.49515588638885477, + 0.5183540520616752, + -0.8798736206668438, + -0.49138842882745704 + ] + }, + "fields": [ + { + "name": "image_embedding", + "label": "Image Embedding", + "type": "vector", + "dimensions": 1536, + "readonly": true + } ] } diff --git a/examples/schema-catalog/test/fields-form-hosted.test.tsx b/examples/schema-catalog/test/fields-form-hosted.test.tsx new file mode 100644 index 0000000000..d0ec8481af --- /dev/null +++ b/examples/schema-catalog/test/fields-form-hosted.test.tsx @@ -0,0 +1,157 @@ +/** + * The `fields-*` catalog examples are FORM-HOSTED (objectui#3910, ruling B of + * objectui#3798). + * + * These examples are the docs site's field demos and a few-shot retrieval source + * for AI authors, so what they show is what gets copied. They used to be bare + * field nodes (`{ type: 'currency', label: 'Amount' }`), which rendered as a + * labelled input ONLY because the docs site registered a demo-only adapter + * (`registerFields()` → `createFieldRenderer`) that synthesized the label and a + * local `useState`/`onChange`. No application does that: on the live path a bare + * field node has no host for label or value. The docs were a wrong authority for + * exactly the audience least able to check them — so the examples moved to form + * hosting, where the real form renderer owns label and state, and the adapter was + * deleted. + * + * Three different facts get pinned here: + * + * 1. SHAPE — every `fields-*` example is rooted at a `form` with a non-empty + * `fields` array. A bare field node reappearing is the regression. + * 2. NO DEAD `value` — no root field entry carries its own `value`. This is not + * style: the form renderer spreads react-hook-form's state AFTER the schema + * props (`form.tsx` `renderFieldComponent(... ...fieldProps, ...formField)`), + * so a field-level `value` is silently overwritten by the form's + * `defaultValues` (measured: field-level → `input.value === ""`, form-level → + * the value). An example carrying one would demonstrate nothing while looking + * like it seeds a value, so seeded values live in `defaultValues`. + * Scoped to `fields-*` deliberately — whether the same rule should bind every + * category is a separate question, not this card's. + * 3. RENDER — driven through the real `SchemaRenderer` + the real form renderer, + * every example produces a `form` element and its field's label text. This is + * what the demo adapter was faking; it is now true without one. + * + * Module-scope import of `@object-ui/fields`, not `beforeAll` (AGENTS.md + * §测试纪律): the widgets sit behind `React.lazy` inside that package, and the + * entry's `export * from './widgets/…'` block evaluates every widget module, so + * paying it at import time keeps the lazy factories out of every test timeout + * budget. + */ +import { describe, it, expect } from 'vitest'; +import { render, waitFor, within } from '@testing-library/react'; +import '@object-ui/components'; +import '@object-ui/fields'; +import { SchemaRenderer } from '@object-ui/react'; +import { allExamples } from '../src/index.js'; + +interface FieldEntry { + name?: unknown; + label?: unknown; + type?: unknown; + value?: unknown; +} +interface FormNode { + type?: unknown; + fields?: FieldEntry[]; + defaultValues?: Record; +} + +const fieldExamples = allExamples() + .filter((e) => e.meta.category.startsWith('fields-')) + .map((e) => [e.id, e.schema as FormNode] as const); + +describe('fields-* catalog examples are form-hosted (objectui#3910)', () => { + it('covers every fields-* category (guard is not vacuous)', () => { + const categories = new Set( + allExamples() + .filter((e) => e.meta.category.startsWith('fields-')) + .map((e) => e.meta.category), + ); + // 26 categories, one per `content/docs/fields/*.mdx` page. + expect(categories.size).toBe(26); + expect(fieldExamples.length).toBeGreaterThanOrEqual(76); + }); + + it.each(fieldExamples)('%s is rooted at a form hosting its fields', (_id, schema) => { + expect(schema.type).toBe('form'); + expect(Array.isArray(schema.fields)).toBe(true); + expect(schema.fields!.length).toBeGreaterThan(0); + for (const field of schema.fields!) { + expect(typeof field.name).toBe('string'); + expect(typeof field.type).toBe('string'); + } + }); + + it.each(fieldExamples)('%s keeps seeded values in form defaultValues', (_id, schema) => { + for (const field of schema.fields!) { + // `Object.hasOwn`: an authored `value: false` / `0` / `''` is still a + // dead key, and a truthiness check would wave those three through. + expect( + Object.hasOwn(field, 'value'), + `field \`${String(field.name)}\` carries a root-level \`value\`, which the ` + + 'form renderer overwrites with its own state — move it to the form’s ' + + '`defaultValues`', + ).toBe(false); + } + // Whatever `defaultValues` seeds must address a field this form actually + // hosts, or the seed is dead for the mirror-image reason. + const names = new Set(schema.fields!.map((f) => f.name)); + for (const key of Object.keys(schema.defaultValues ?? {})) { + expect(names.has(key), `defaultValues key \`${key}\` matches no field`).toBe(true); + } + }); + + it.each(fieldExamples)('%s renders a real form with its labels', async (_id, schema) => { + const { container } = render(); + + // `waitFor`, not a synchronous query: each widget type is a `React.lazy` + // boundary, so the FIRST example of a given type suspends and the whole form + // subtree — the `
` element included — is absent from the DOM until the + // chunk resolves. Asserting synchronously made exactly one example per + // category red (the alphabetically first) while the rest passed off the warm + // lazy cache: AGENTS.md §测试纪律, load-order race rather than a real absence. + await waitFor(() => expect(container.querySelector('form')).toBeTruthy()); + const form = container.querySelector('form') as HTMLElement; + + for (const field of schema.fields!) { + if (typeof field.label !== 'string' || field.label.length === 0) continue; + // Scope to the field's own FormItem (`data-field`, the renderer's stable + // metadata-derived locator, ADR-0054 C4) so the label is pinned to the + // field it belongs to rather than to "somewhere in the form". + const item = form.querySelector(`[data-field="${String(field.name)}"]`); + expect(item, `form should host a FormItem for \`${String(field.name)}\``).toBeTruthy(); + // `getAllByText`, not `getByText`: a widget may legitimately render its own + // `sr-only` label in addition to the form's visible one (the boolean switch + // does). What is pinned here is that the label text reaches the field's + // chrome — not how many nodes carry it. + expect( + within(item as HTMLElement).getAllByText(field.label).length, + `label \`${field.label}\` should be rendered in its field's chrome`, + ).toBeGreaterThan(0); + } + }); +}); + +describe('form hosting actually seeds the demonstrated values (objectui#3910)', () => { + /** + * The read-only/default examples exist to SHOW a value. Under the old bare-node + * shape the demo adapter read `schema.value`; under form hosting the form reads + * `defaultValues`. These three are the ones whose whole point is the value, so + * they get asserted directly rather than trusted to the shape rules above. + */ + const seeded: ReadonlyArray = [ + ['fields-text/read-only-field', 'Read-Only', 'This value cannot be changed'], + ['fields-auto-number/invoice-number-format', 'Invoice ID', 'INV-1234'], + ['fields-summary/count-of-related-records', 'Total Orders', '42'], + ]; + + it.each(seeded)('%s shows its seeded value', async (id, label, expected) => { + const entry = allExamples().find((e) => e.id === id); + expect(entry, `${id} is missing from the catalog`).toBeTruthy(); + const { container } = render(); + // Same lazy boundary as above — wait for the widget chunk, then assert. + await waitFor(() => expect(container.querySelector('form')).toBeTruthy()); + const form = container.querySelector('form') as HTMLElement; + await within(form).findByText(label); + expect(form.textContent).toContain(expected); + }); +}); diff --git a/packages/fields/src/__tests__/capability-multiselect-retired.test.ts b/packages/fields/src/__tests__/capability-multiselect-retired.test.ts index 8b542c63a2..8ebf0f6a64 100644 --- a/packages/fields/src/__tests__/capability-multiselect-retired.test.ts +++ b/packages/fields/src/__tests__/capability-multiselect-retired.test.ts @@ -11,7 +11,7 @@ * enforce-or-remove). * * The key was registered on ONE path only: `registerFields()`, whose sole caller - * is the docs site. The live path (`registerAllFields()`, run at module import) + * was the docs site. The live path (`registerAllFields()`, run at module import) * never had it, because `fieldWidgetMap` never listed it — so a field authored * with `widget: 'capability-multiselect'` resolved to nothing in every real app * while a code comment advertised it as usable from a record form. Nothing @@ -19,33 +19,47 @@ * `sys_permission_set` facets (including `system_permissions`), and P2 put the * capability editor in Studio. * - * What this pins: - * 1. the key is absent after importing the package (the live path), AND - * 2. absent after `registerFields()` too — the retirement covers the docs - * path, which is where the key actually used to come from. Asserting only - * (1) would have passed on `origin/main` and pinned nothing. - * 3. `registerFields()` still registers every OTHER key it used to — the - * retirement subtracts exactly one name, it does not thin the docs path. + * `registerFields()` itself is gone as of objectui#3910 (ruling B of + * objectui#3798): the docs catalog's field examples are form-hosted now, so the + * demo adapter that path existed for has no reason to exist. That REMOVES this + * file's second and third assertions rather than re-spelling them — a test may + * not call a function that no longer exists, and asserting over a deleted path + * would pass for the empty reason (nothing is registered because nothing runs). + * What each one becomes: + * + * 1. absent on the live path — UNCHANGED, and it is now the whole fact. While + * a second path existed this assertion pinned nothing (it passed on + * `origin/main` too, as PR #3793 recorded); with that path deleted, the + * live registry is the only registry, so re-adding the name to + * `fieldWidgetMap` is exactly what turns this red. + * 2. "absent after `registerFields()` too" — DELETED with the path. + * 3. "registers every other docs-path key" — RE-POINTED at the live path, + * which is a superset of the 38 keys the docs path used to register. It + * still pins "the retirement subtracts exactly one name", now against the + * surviving seam instead of a deleted one. * * `CapabilityMultiSelectField` the component is deliberately NOT asserted gone: * Studio's `PermissionMatrixEditor` imports and renders it directly, which is * ADR-0056 P2's design. Only the widget NAME is retired. */ -import { describe, it, expect, beforeAll } from 'vitest'; +import { describe, it, expect } from 'vitest'; import { ComponentRegistry } from '@object-ui/core'; // Importing the entry runs `registerAllFields()` at module load — the live path. -import { registerFields, registerAllFields, FORM_FIELD_TYPES } from '../index'; +import { registerAllFields, FORM_FIELD_TYPES } from '../index'; const RETIRED = 'capability-multiselect'; /** - * Every key `registerFields()` registered before the retirement, minus the + * Every key the retired docs-demo path (`registerFields()`) registered, minus the * retired one. Spelled out rather than derived so a future edit that silently - * drops a docs-path registration fails here instead of passing vacuously. + * drops one of these registrations fails here instead of passing vacuously. + * The live path registers these AND more (`multiselect`, `radio`, `checkboxes`, + * `tags`, `richtext`, and the widget-hint-only pickers) — this list is the floor + * the retirement promised to leave intact, not the full live surface. */ -const DOCS_PATH_KEYS = [ +const RETAINED_FIELD_KEYS = [ 'text', 'textarea', 'number', 'boolean', 'select', 'date', 'datetime', 'time', 'email', 'phone', 'url', 'currency', 'percent', 'password', 'markdown', 'html', 'lookup', 'master_detail', @@ -68,24 +82,28 @@ describe('capability-multiselect widget retirement (objectui#3308)', () => { expect(FORM_FIELD_TYPES).not.toContain(RETIRED); }); - describe('after the docs-site registerFields() path runs', () => { - beforeAll(() => { - registerFields(); - }); - - it('still does not register the retired key', () => { - expect(ComponentRegistry.get(`field:${RETIRED}`)).toBeUndefined(); - expect(ComponentRegistry.get(RETIRED)).toBeUndefined(); - }); + it('registers every retained field key (retirement subtracts exactly one)', () => { + registerAllFields(); + for (const key of RETAINED_FIELD_KEYS) { + expect( + ComponentRegistry.get(`field:${key}`), + `field:${key} must survive the retirement`, + ).toBeTruthy(); + } + expect(RETAINED_FIELD_KEYS).toHaveLength(38); + }); - it('registers every other docs-path key (retirement subtracts exactly one)', () => { - for (const key of DOCS_PATH_KEYS) { - expect( - ComponentRegistry.get(`field:${key}`), - `field:${key} must survive the retirement`, - ).toBeTruthy(); - } - expect(DOCS_PATH_KEYS).toHaveLength(38); - }); + it('has no second registration path left to shadow the live one (objectui#3910)', async () => { + // The defect ruling B closed was structural, not cosmetic: `registerFields()` + // re-registered the SAME `field:` keys with demo-only wrappers, so + // whichever ran last won the registry for every consumer sharing it. Pinning + // the export gone is what stops it growing back under a new name. + const entry = (await import('../index')) as Record; + expect(entry.registerFields).toBeUndefined(); + expect(entry.createFieldRenderer).toBeUndefined(); + // The surviving seam is still exported — this test must fail loudly if the + // removal ever takes the live path with it. + expect(typeof entry.registerAllFields).toBe('function'); + expect(typeof entry.registerField).toBe('function'); }); }); diff --git a/packages/fields/src/complex-widgets.test.tsx b/packages/fields/src/complex-widgets.test.tsx index 7838d5ddf8..92448ac640 100644 --- a/packages/fields/src/complex-widgets.test.tsx +++ b/packages/fields/src/complex-widgets.test.tsx @@ -480,9 +480,14 @@ describe('Complex & Relationship Widgets', () => { expect(onChange).toHaveBeenCalledWith('2'); }); - it('resolves reference_to from nested field.field (createFieldRenderer wrapper)', async () => { - // Simulates how createFieldRenderer wraps the field: the real metadata - // (reference_to, reference_field, etc.) is nested inside field.field. + it('resolves reference_to from nested field.field (form metadata slot)', async () => { + // Simulates the `field.field` nesting the FORM renderer hands widgets: + // `renderFieldComponent` passes `field: field.field || field`, where + // `.field` is the declared metadata slot (objectui#3090) holding the + // real metadata (reference_to, reference_field, …). The test used to + // credit this shape to the docs-demo `createFieldRenderer` wrapper, + // which never produced it and no longer exists (objectui#3910); the + // live producer is the form path, so the coverage stands. const onChange = vi.fn(); mockDataSource.find.mockResolvedValue({ data: [ diff --git a/packages/fields/src/index.tsx b/packages/fields/src/index.tsx index 961ef3ae91..90204a9d2a 100644 --- a/packages/fields/src/index.tsx +++ b/packages/fields/src/index.tsx @@ -285,45 +285,15 @@ function useFieldTranslate(): ((key: string, params?: Record) = return t as (key: string, params?: Record) => string; } -import { TextField } from './widgets/TextField'; -import { NumberField } from './widgets/NumberField'; -import { BooleanField } from './widgets/BooleanField'; -import { SelectField } from './widgets/SelectField'; -import { DateField } from './widgets/DateField'; -import { EmailField } from './widgets/EmailField'; -import { PhoneField } from './widgets/PhoneField'; -import { UrlField } from './widgets/UrlField'; -import { CurrencyField } from './widgets/CurrencyField'; -import { TextAreaField } from './widgets/TextAreaField'; -import { RichTextField } from './widgets/RichTextField'; -import { LookupField } from './widgets/LookupField'; -import { DateTimeField } from './widgets/DateTimeField'; -import { TimeField } from './widgets/TimeField'; -import { PercentField } from './widgets/PercentField'; -import { PasswordField } from './widgets/PasswordField'; -import { FileField } from './widgets/FileField'; -import { ImageField } from './widgets/ImageField'; +// Only the two symbols this module actually CALLS are imported eagerly. Every +// field widget used to be imported here as well, statically, purely to hand a +// component reference to the docs-demo `createFieldRenderer()` wrapper — +// removed with it (objectui#3910). The live registration path resolves widgets +// through the lazy loaders in `fieldWidgetMap` below, so nothing here needs a +// static reference; the widgets stay publicly available via the `export * from +// './widgets/…'` block at the end of this file. import { ImageLightbox } from './widgets/ImageLightbox'; import { readFileValues } from './widgets/file-value'; -import { LocationField } from './widgets/LocationField'; -import { FormulaField } from './widgets/FormulaField'; -import { SummaryField } from './widgets/SummaryField'; -import { AutoNumberField } from './widgets/AutoNumberField'; -import { UserField } from './widgets/UserField'; -import { ObjectField } from './widgets/ObjectField'; -import { VectorField } from './widgets/VectorField'; -import { GridField } from './widgets/GridField'; -// New widgets according to @objectstack/spec -import { ColorField } from './widgets/ColorField'; -import { SliderField } from './widgets/SliderField'; -import { RatingField } from './widgets/RatingField'; -import { CodeField } from './widgets/CodeField'; -import { AvatarField } from './widgets/AvatarField'; -import { AddressField } from './widgets/AddressField'; -import { GeolocationField } from './widgets/GeolocationField'; -import { SignatureField } from './widgets/SignatureField'; -import { QRCodeField } from './widgets/QRCodeField'; -import { MasterDetailField } from './widgets/MasterDetailField'; /** * Cell renderer props @@ -2072,68 +2042,16 @@ export function evaluateCondition(condition: any, formData: any): boolean { return true; } -// Create wrapper renderers for field widgets to work with ComponentDemo. -// Docs-site only — it synthesizes the label/description chrome AND the local -// value/onChange state a bare field node has no host for. See the note on -// `registerFields()` (its only caller) for why the live app path does NOT use -// this and why the two are not interchangeable. -function createFieldRenderer(FieldWidget: React.ComponentType) { - const FieldRenderer: React.FC = ({ schema, className, value: initialValue, ...props }) => { - const [value, setValue] = React.useState(initialValue ?? schema?.value ?? ''); - - const field = { - name: schema?.name || 'field', - label: schema?.label, - type: schema?.type, - placeholder: schema?.placeholder, - required: schema?.required, - readonly: schema?.readonly || schema?.readOnly, - help: schema?.help, - description: schema?.description, - // `??`, not `||` — an authored default of `false` / `0` / `''` is a value, - // and `||` silently threw it away (same falsy-as-empty class as cloud#972). - defaultValue: schema?.defaultValue ?? schema?.value, - ...schema, - }; - - const handleChange = React.useCallback((newValue: any) => { - setValue(newValue); - if (props.onChange) { - props.onChange(newValue); - } - }, [props]); - - const readonly = schema?.readonly || schema?.readOnly || false; - - return ( -
- {schema?.label && ( - - )} - - {schema?.description && ( -

{schema.description}

- )} -
- ); - }; - - FieldRenderer.displayName = `FieldRenderer(${FieldWidget.displayName || FieldWidget.name || 'Component'})`; - - return FieldRenderer; -} +// TOMBSTONE (objectui#3910, ruling B of objectui#3798) — `createFieldRenderer()` +// lived here. It wrapped a field widget in synthesized label/description chrome +// plus a local `useState` + `onChange`, which let a BARE field node render +// standalone under `SchemaRenderer`. Only `registerFields()` (below, also +// removed) ever called it, and only the docs site called that — so the chrome +// existed nowhere a real application could reach, and the docs demos showed a +// rendering no app produces. The catalog's field examples are form-hosted now +// (`{ type: 'form', fields: [...] }`), where the real form renderer owns label +// and value state. Do not re-add a second, demo-only registration path: one +// registration seam is the whole point (objectui#3308). /** * Field widget map for lazy loading @@ -2346,132 +2264,37 @@ export function registerAllFields(): void { }); } -/** - * Register every field widget wrapped in the **docs-demo** renderer - * ({@link createFieldRenderer}) instead of the plain registration seam. - * - * ⚠️ This is NOT an interchangeable alias of {@link registerAllFields}, despite - * what its former `@deprecated Use registerAllFields() instead` note implied - * (objectui#3308 was dispatched on that reading). The two differ in what the - * registry entry *is*: - * - * - `registerAllFields()` — the live path every app uses. Registers - * `withFieldCarrier(lazy(widget))`: the bare widget, which renders a control - * and nothing else. Label / description / value state belong to the host - * (the form renderer, `FieldEditWidget`, an action dialog). - * - `registerFields()` — registers `createFieldRenderer(widget)`, which ALSO - * synthesizes the `