@qoretechnologies/reqraft 0.10.66-pr.145.gcb1e59d → 0.10.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -1
- package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
- package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
- package/dist/components/Description/AllowedValuesHelp.js +86 -0
- package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
- package/dist/components/Description/describedControl.d.ts +54 -0
- package/dist/components/Description/describedControl.d.ts.map +1 -0
- package/dist/components/Description/describedControl.js +81 -0
- package/dist/components/Description/describedControl.js.map +1 -0
- package/dist/components/Description/index.d.ts.map +1 -1
- package/dist/components/Description/index.js +3 -2
- package/dist/components/Description/index.js.map +1 -1
- package/dist/components/colorValue/colorValue.d.ts +59 -0
- package/dist/components/colorValue/colorValue.d.ts.map +1 -0
- package/dist/components/colorValue/colorValue.js +245 -0
- package/dist/components/colorValue/colorValue.js.map +1 -0
- package/dist/components/colorValue/index.d.ts +34 -0
- package/dist/components/colorValue/index.d.ts.map +1 -0
- package/dist/components/colorValue/index.js +136 -0
- package/dist/components/colorValue/index.js.map +1 -0
- package/dist/components/colorValue/labels.d.ts +12 -0
- package/dist/components/colorValue/labels.d.ts.map +1 -0
- package/dist/components/colorValue/labels.js +11 -0
- package/dist/components/colorValue/labels.js.map +1 -0
- package/dist/components/composer/Composer.d.ts +1 -1
- package/dist/components/composer/Composer.d.ts.map +1 -1
- package/dist/components/composer/Composer.js +2 -2
- package/dist/components/composer/Composer.js.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.js +156 -10
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
- package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
- package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
- package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +420 -63
- package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
- package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
- package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.js +44 -17
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +94 -8
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
- package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
- package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
- package/dist/components/form/engine/CompactRow.js +336 -243
- package/dist/components/form/engine/CompactRow.js.map +1 -1
- package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
- package/dist/components/form/engine/CompactToolbar.js +20 -57
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +67 -59
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +606 -409
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
- package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
- package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
- package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
- package/dist/components/form/engine/OptionFieldMessages.d.ts +2 -18
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +28 -25
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
- package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
- package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.js +11 -31
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +30 -6
- package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowContext.js.map +1 -1
- package/dist/components/form/engine/compactRowStyles.d.ts +56 -31
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +121 -110
- package/dist/components/form/engine/compactRowStyles.js.map +1 -1
- package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
- package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
- package/dist/components/form/engine/compactToolbarColors.js +21 -0
- package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
- package/dist/components/form/engine/compactToolbarContext.d.ts +0 -3
- package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
- package/dist/components/form/engine/inheritProps.d.ts +29 -0
- package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
- package/dist/components/form/engine/inheritProps.js +43 -0
- package/dist/components/form/engine/inheritProps.js.map +1 -0
- package/dist/components/form/engine/operatorSummary.d.ts +26 -0
- package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
- package/dist/components/form/engine/operatorSummary.js +35 -0
- package/dist/components/form/engine/operatorSummary.js.map +1 -0
- package/dist/components/form/engine/readFirst.d.ts +26 -22
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +79 -115
- package/dist/components/form/engine/readFirst.js.map +1 -1
- package/dist/components/form/engine/readFirstColors.d.ts +30 -0
- package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
- package/dist/components/form/engine/readFirstColors.js +51 -0
- package/dist/components/form/engine/readFirstColors.js.map +1 -0
- package/dist/components/form/engine/rowFocus.d.ts +3 -9
- package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
- package/dist/components/form/engine/rowFocus.js +30 -19
- package/dist/components/form/engine/rowFocus.js.map +1 -1
- package/dist/components/form/engine/typeChoices.d.ts +1 -1
- package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
- package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
- package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantCards.js +2 -1
- package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
- package/dist/components/form/engine/variants/VariantFocus.js +1 -1
- package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
- package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
- package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
- package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
- package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
- package/dist/components/form/engine/variants/variantParts.js +25 -17
- package/dist/components/form/engine/variants/variantParts.js.map +1 -1
- package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
- package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
- package/dist/components/form/expressions/DpqlRendering.js +7 -6
- package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
- package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +536 -114
- package/dist/components/form/expressions/ExpressionField.js.map +1 -1
- package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
- package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
- package/dist/components/form/expressions/argumentPresence.js +16 -1
- package/dist/components/form/expressions/argumentPresence.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
- package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.js +30 -11
- package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts +9 -0
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +7 -5
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +34 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +170 -80
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/builder/item.d.ts +6 -2
- package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/item.js +19 -5
- package/dist/components/form/expressions/builder/item.js.map +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
- package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
- package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
- package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
- package/dist/components/form/expressions/expressionOperands.js +97 -0
- package/dist/components/form/expressions/expressionOperands.js.map +1 -0
- package/dist/components/form/expressions/fieldPath.d.ts +24 -0
- package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
- package/dist/components/form/expressions/fieldPath.js +152 -0
- package/dist/components/form/expressions/fieldPath.js.map +1 -0
- package/dist/components/form/expressions/loneValue.d.ts +17 -0
- package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
- package/dist/components/form/expressions/loneValue.js +33 -0
- package/dist/components/form/expressions/loneValue.js.map +1 -0
- package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/mockExpressions.js +22 -5
- package/dist/components/form/expressions/mockExpressions.js.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
- package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.js +37 -25
- package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
- package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
- package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
- package/dist/components/form/expressions/textOfExpression.js +49 -0
- package/dist/components/form/expressions/textOfExpression.js.map +1 -0
- package/dist/components/form/expressions/types.d.ts +12 -0
- package/dist/components/form/expressions/types.d.ts.map +1 -1
- package/dist/components/form/expressions/types.js +6 -1
- package/dist/components/form/expressions/types.js.map +1 -1
- package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
- package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
- package/dist/components/form/expressions/useExpressionType.js +181 -0
- package/dist/components/form/expressions/useExpressionType.js.map +1 -0
- package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
- package/dist/components/form/expressions/useRenderExpression.js +13 -9
- package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
- package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
- package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
- package/dist/components/form/expressions/wildcardExpressions.js +101 -0
- package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +39 -18
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +0 -7
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +46 -35
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
- package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
- package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
- package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
- package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAuto.js +24 -0
- package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
- package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +123 -79
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
- package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
- package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
- package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
- package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
- package/dist/components/form/fields/binary/Binary.js +23 -3
- package/dist/components/form/fields/binary/Binary.js.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
- package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.js +9 -1
- package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
- package/dist/components/form/fields/color/Color.d.ts +103 -16
- package/dist/components/form/fields/color/Color.d.ts.map +1 -1
- package/dist/components/form/fields/color/Color.js +616 -16
- package/dist/components/form/fields/color/Color.js.map +1 -1
- package/dist/components/form/fields/emittedValues.d.ts +34 -3
- package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
- package/dist/components/form/fields/emittedValues.js +24 -1
- package/dist/components/form/fields/emittedValues.js.map +1 -1
- package/dist/components/form/fields/file/File.d.ts +1 -1
- package/dist/components/form/fields/file/File.d.ts.map +1 -1
- package/dist/components/form/fields/file/File.js +4 -2
- package/dist/components/form/fields/file/File.js.map +1 -1
- package/dist/components/form/fields/long-string/LongString.d.ts +1 -7
- package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +30 -13
- package/dist/components/form/fields/long-string/LongString.js.map +1 -1
- package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js +10 -7
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/number/Number.d.ts +7 -4
- package/dist/components/form/fields/number/Number.d.ts.map +1 -1
- package/dist/components/form/fields/number/Number.js +45 -18
- package/dist/components/form/fields/number/Number.js.map +1 -1
- package/dist/components/form/fields/object/Object.d.ts +1 -1
- package/dist/components/form/fields/object/Object.d.ts.map +1 -1
- package/dist/components/form/fields/object/Object.js +4 -2
- package/dist/components/form/fields/object/Object.js.map +1 -1
- package/dist/components/form/fields/pendingEdit.d.ts +52 -0
- package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
- package/dist/components/form/fields/pendingEdit.js +79 -0
- package/dist/components/form/fields/pendingEdit.js.map +1 -0
- package/dist/components/form/fields/radio-group/RadioGroup.d.ts.map +1 -1
- package/dist/components/form/fields/radio-group/RadioGroup.js +8 -13
- package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +426 -91
- package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js +80 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
- package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/index.js +8 -4
- package/dist/components/form/fields/schema-definition/index.js.map +1 -1
- package/dist/components/form/fields/select/Select.d.ts +10 -1
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +28 -14
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +25 -12
- package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
- package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
- package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
- package/dist/components/form/fields/select/unavailableRow.js +55 -0
- package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
- package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
- package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
- package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +706 -168
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
- package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplatePicker.js +459 -0
- package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
- package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
- package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateText.js +22 -16
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
- package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
- package/dist/components/form/fields/template/referenceNames.js +69 -0
- package/dist/components/form/fields/template/referenceNames.js.map +1 -0
- package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
- package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
- package/dist/components/form/fields/template/writtenAsText.js +204 -0
- package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
- package/dist/components/form/index.d.ts +12 -2
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +25 -3
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/form/typeSentenceForm.d.ts +17 -0
- package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
- package/dist/components/form/typeSentenceForm.js +54 -0
- package/dist/components/form/typeSentenceForm.js.map +1 -0
- package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.js +19 -9
- package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
- package/dist/components/log/Log.d.ts.map +1 -1
- package/dist/components/log/Log.js +20 -8
- package/dist/components/log/Log.js.map +1 -1
- package/dist/components/menu/Menu.d.ts.map +1 -1
- package/dist/components/menu/Menu.js +19 -10
- package/dist/components/menu/Menu.js.map +1 -1
- package/dist/components/smartEditor/CompletionMenu.d.ts +53 -0
- package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
- package/dist/components/smartEditor/CompletionMenu.js +302 -0
- package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
- package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
- package/dist/components/smartEditor/MarkdownDoc.js +3 -3
- package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
- package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
- package/dist/components/smartEditor/SmartEditor.js +616 -190
- package/dist/components/smartEditor/SmartEditor.js.map +1 -1
- package/dist/components/smartEditor/completionStyle.d.ts +28 -0
- package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
- package/dist/components/smartEditor/completionStyle.js +79 -0
- package/dist/components/smartEditor/completionStyle.js.map +1 -0
- package/dist/components/smartEditor/contextTitle.d.ts +10 -0
- package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
- package/dist/components/smartEditor/contextTitle.js +21 -0
- package/dist/components/smartEditor/contextTitle.js.map +1 -0
- package/dist/components/smartEditor/editingAids.d.ts +64 -0
- package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
- package/dist/components/smartEditor/editingAids.js +213 -0
- package/dist/components/smartEditor/editingAids.js.map +1 -0
- package/dist/components/smartEditor/index.d.ts +6 -1
- package/dist/components/smartEditor/index.d.ts.map +1 -1
- package/dist/components/smartEditor/index.js +19 -1
- package/dist/components/smartEditor/index.js.map +1 -1
- package/dist/components/smartEditor/templateCompletions.d.ts +98 -0
- package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
- package/dist/components/smartEditor/templateCompletions.js +380 -0
- package/dist/components/smartEditor/templateCompletions.js.map +1 -0
- package/dist/components/smartEditor/typedReferences.d.ts +34 -0
- package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
- package/dist/components/smartEditor/typedReferences.js +179 -0
- package/dist/components/smartEditor/typedReferences.js.map +1 -0
- package/dist/components/smartEditor/types.d.ts +116 -2
- package/dist/components/smartEditor/types.d.ts.map +1 -1
- package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
- package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
- package/dist/components/smartEditor/useEditingAids.js +392 -0
- package/dist/components/smartEditor/useEditingAids.js.map +1 -0
- package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
- package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.js +592 -149
- package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
- package/dist/components/smartEditor/useLspHover.d.ts +33 -7
- package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspHover.js +364 -35
- package/dist/components/smartEditor/useLspHover.js.map +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
- package/dist/components/smartEditor/useLspSession.d.ts +6 -0
- package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSession.js +7 -6
- package/dist/components/smartEditor/useLspSession.js.map +1 -1
- package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
- package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
- package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
- package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
- package/dist/components/smartEditor/useTabCameIn.js +42 -0
- package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
- package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
- package/dist/components/supportTicket/AttachmentChips.js +15 -5
- package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
- package/dist/components/supportTicket/InterfaceReferenceTags.d.ts +2 -3
- package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +1 -1
- package/dist/components/supportTicket/InterfaceReferenceTags.js.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.d.ts +9 -3
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +38 -23
- package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
- package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
- package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketHeader.js +21 -6
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketReplyBox.js +10 -29
- package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
- package/dist/components/supportTicket/useLoadedImages.d.ts +0 -10
- package/dist/components/supportTicket/useLoadedImages.d.ts.map +1 -1
- package/dist/components/supportTicket/useLoadedImages.js +1 -63
- package/dist/components/supportTicket/useLoadedImages.js.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +10 -9
- package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
- package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
- package/dist/components/ticketThread/TicketThread.js +52 -21
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/allowedValues.d.ts +21 -12
- package/dist/helpers/allowedValues.d.ts.map +1 -1
- package/dist/helpers/allowedValues.js +40 -20
- package/dist/helpers/allowedValues.js.map +1 -1
- package/dist/helpers/descriptionTooltip.d.ts +46 -0
- package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
- package/dist/helpers/descriptionTooltip.js +76 -0
- package/dist/helpers/descriptionTooltip.js.map +1 -0
- package/dist/helpers/domProps.d.ts +5 -0
- package/dist/helpers/domProps.d.ts.map +1 -0
- package/dist/helpers/domProps.js +47 -0
- package/dist/helpers/domProps.js.map +1 -0
- package/dist/helpers/expressions.d.ts +115 -4
- package/dist/helpers/expressions.d.ts.map +1 -1
- package/dist/helpers/expressions.js +247 -29
- package/dist/helpers/expressions.js.map +1 -1
- package/dist/helpers/hoveringPointer.d.ts +26 -0
- package/dist/helpers/hoveringPointer.d.ts.map +1 -0
- package/dist/helpers/hoveringPointer.js +29 -0
- package/dist/helpers/hoveringPointer.js.map +1 -0
- package/dist/helpers/markdownText.d.ts +14 -0
- package/dist/helpers/markdownText.d.ts.map +1 -0
- package/dist/helpers/markdownText.js +160 -0
- package/dist/helpers/markdownText.js.map +1 -0
- package/dist/helpers/noDescription.d.ts +9 -0
- package/dist/helpers/noDescription.d.ts.map +1 -0
- package/dist/helpers/noDescription.js +13 -0
- package/dist/helpers/noDescription.js.map +1 -0
- package/dist/helpers/optionUiTypes.d.ts +2 -2
- package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.js +505 -0
- package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
- package/dist/helpers/readableColors.d.ts +36 -0
- package/dist/helpers/readableColors.d.ts.map +1 -0
- package/dist/helpers/readableColors.js +116 -0
- package/dist/helpers/readableColors.js.map +1 -0
- package/dist/helpers/recordFieldReference.d.ts +15 -0
- package/dist/helpers/recordFieldReference.d.ts.map +1 -0
- package/dist/helpers/recordFieldReference.js +89 -0
- package/dist/helpers/recordFieldReference.js.map +1 -0
- package/dist/helpers/singleLineString.d.ts.map +1 -1
- package/dist/helpers/singleLineString.js +0 -1
- package/dist/helpers/singleLineString.js.map +1 -1
- package/dist/helpers/templateCatalogue.d.ts +104 -0
- package/dist/helpers/templateCatalogue.d.ts.map +1 -0
- package/dist/helpers/templateCatalogue.js +116 -0
- package/dist/helpers/templateCatalogue.js.map +1 -0
- package/dist/helpers/templateCatalogueContext.d.ts +19 -0
- package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
- package/dist/helpers/templateCatalogueContext.js +31 -0
- package/dist/helpers/templateCatalogueContext.js.map +1 -0
- package/dist/helpers/templateItems.d.ts +2 -2
- package/dist/helpers/templateItems.d.ts.map +1 -1
- package/dist/helpers/templateItems.js +6 -4
- package/dist/helpers/templateItems.js.map +1 -1
- package/dist/helpers/templateText.d.ts +1 -0
- package/dist/helpers/templateText.d.ts.map +1 -1
- package/dist/helpers/templateText.js +7 -3
- package/dist/helpers/templateText.js.map +1 -1
- package/dist/helpers/templateTree.d.ts +248 -0
- package/dist/helpers/templateTree.d.ts.map +1 -0
- package/dist/helpers/templateTree.js +892 -0
- package/dist/helpers/templateTree.js.map +1 -0
- package/dist/helpers/templateType.d.ts +28 -0
- package/dist/helpers/templateType.d.ts.map +1 -0
- package/dist/helpers/templateType.js +30 -0
- package/dist/helpers/templateType.js.map +1 -0
- package/dist/helpers/templates.d.ts +86 -16
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +305 -45
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts +27 -0
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +169 -39
- package/dist/helpers/validations.js.map +1 -1
- package/dist/helpers/webLink.d.ts +8 -0
- package/dist/helpers/webLink.d.ts.map +1 -0
- package/dist/helpers/webLink.js +29 -0
- package/dist/helpers/webLink.js.map +1 -0
- package/dist/hooks/useQorusTypes.d.ts +12 -17
- package/dist/hooks/useQorusTypes.d.ts.map +1 -1
- package/dist/hooks/useQorusTypes.js +44 -172
- package/dist/hooks/useQorusTypes.js.map +1 -1
- package/dist/hooks/useReadableIntentShade.d.ts +9 -0
- package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
- package/dist/hooks/useReadableIntentShade.js +23 -0
- package/dist/hooks/useReadableIntentShade.js.map +1 -0
- package/dist/hooks/useReadableOpacity.d.ts +6 -0
- package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
- package/dist/hooks/useReadableOpacity.js +17 -0
- package/dist/hooks/useReadableOpacity.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -1
- package/dist/index.js.map +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
- package/dist/tracking/ui/ExperimentCard.js +26 -10
- package/dist/tracking/ui/ExperimentCard.js.map +1 -1
- package/dist/tracking/ui/card.d.ts +2 -2
- package/dist/tracking/ui/card.d.ts.map +1 -1
- package/dist/tracking/ui/card.js +2 -2
- package/dist/tracking/ui/card.js.map +1 -1
- package/dist/tracking/ui/readable.d.ts +14 -0
- package/dist/tracking/ui/readable.d.ts.map +1 -0
- package/dist/tracking/ui/readable.js +60 -0
- package/dist/tracking/ui/readable.js.map +1 -0
- package/dist/utils/fetch.d.ts +9 -2
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +6 -5
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/lspClient.types.d.ts +2 -0
- package/dist/utils/lspClient.types.d.ts.map +1 -1
- package/dist/utils/websocket.d.ts +65 -2
- package/dist/utils/websocket.d.ts.map +1 -1
- package/dist/utils/websocket.js +276 -44
- package/dist/utils/websocket.js.map +1 -1
- package/package.json +14 -6
- package/.claude/CLAUDE.md +0 -317
- package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
- package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
- package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
- package/.tasks/FIELD_STACK_REPORT.md +0 -234
- package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
- package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
- package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
- package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
- package/.tasks/INDEX.md +0 -111
- package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
- package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
- package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
- package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
- package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
- package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
- package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
- package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
- package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
- package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
- package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
- package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
- package/CODE_OF_CONDUCT.md +0 -105
- package/CONTRIBUTING.MD +0 -78
- package/SECURITY.md +0 -3
- package/chromatic.config.json +0 -5
- package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
- package/design/COMPACT_INFO_DISPLAY.md +0 -87
- package/design/COMPACT_PARITY.md +0 -85
- package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
- package/design/FORM_ENGINE_COMPACT.md +0 -300
- package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
- package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
- package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
- package/design/IDE_INTEGRATION.md +0 -64
- package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
- package/design/SELECT_DIALOG_FLOOR.md +0 -86
- package/design/SMART_EDITOR_UX.md +0 -438
- package/design/TRACKING.md +0 -290
- package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
- package/dist/components/form/engine/formAppearance.d.ts +0 -49
- package/dist/components/form/engine/formAppearance.d.ts.map +0 -1
- package/dist/components/form/engine/formAppearance.js +0 -50
- package/dist/components/form/engine/formAppearance.js.map +0 -1
- package/dist/components/form/fields/ChoiceGroupHeading.d.ts +0 -21
- package/dist/components/form/fields/ChoiceGroupHeading.d.ts.map +0 -1
- package/dist/components/form/fields/ChoiceGroupHeading.js +0 -33
- package/dist/components/form/fields/ChoiceGroupHeading.js.map +0 -1
- package/dist/components/form/fields/allowed-values/savedValues.d.ts +0 -30
- package/dist/components/form/fields/allowed-values/savedValues.d.ts.map +0 -1
- package/dist/components/form/fields/allowed-values/savedValues.js +0 -39
- package/dist/components/form/fields/allowed-values/savedValues.js.map +0 -1
- package/dist/helpers/fieldDescription.d.ts +0 -16
- package/dist/helpers/fieldDescription.d.ts.map +0 -1
- package/dist/helpers/fieldDescription.js +0 -40
- package/dist/helpers/fieldDescription.js.map +0 -1
- package/src/components/Description/index.tsx +0 -254
- package/src/components/Description/markdownRendererContext.tsx +0 -29
- package/src/components/FocusedEditing/index.tsx +0 -50
- package/src/components/codeSize/index.tsx +0 -79
- package/src/components/composer/Composer.stories.tsx +0 -238
- package/src/components/composer/Composer.tsx +0 -554
- package/src/components/composer/helpers.ts +0 -74
- package/src/components/composer/index.ts +0 -2
- package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
- package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
- package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
- package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
- package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
- package/src/components/dpqlEditor/dpqlTags.ts +0 -114
- package/src/components/dpqlEditor/index.ts +0 -41
- package/src/components/dpqlEditor/types.ts +0 -203
- package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
- package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
- package/src/components/form/engine/CompactRow.tsx +0 -2740
- package/src/components/form/engine/CompactToolbar.tsx +0 -399
- package/src/components/form/engine/FormEngine.stories.tsx +0 -9934
- package/src/components/form/engine/FormEngine.tsx +0 -4891
- package/src/components/form/engine/FormEngineAppearance.stories.tsx +0 -609
- package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
- package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -335
- package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
- package/src/components/form/engine/OptionFieldMessages.tsx +0 -548
- package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
- package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
- package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
- package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
- package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -755
- package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
- package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
- package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
- package/src/components/form/engine/compactRowContext.ts +0 -153
- package/src/components/form/engine/compactRowStyles.ts +0 -1087
- package/src/components/form/engine/compactToolbarContext.ts +0 -72
- package/src/components/form/engine/formAppearance.ts +0 -79
- package/src/components/form/engine/optionActions.ts +0 -128
- package/src/components/form/engine/optionsContext.ts +0 -24
- package/src/components/form/engine/readFirst.ts +0 -1090
- package/src/components/form/engine/rendererTypes.ts +0 -107
- package/src/components/form/engine/revealRow.ts +0 -123
- package/src/components/form/engine/rowFocus.ts +0 -112
- package/src/components/form/engine/rowMenuContext.ts +0 -159
- package/src/components/form/engine/rowOpenPicker.ts +0 -27
- package/src/components/form/engine/typeChoices.ts +0 -63
- package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
- package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
- package/src/components/form/engine/variants/VariantCards.tsx +0 -212
- package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
- package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
- package/src/components/form/engine/variants/focusDemo.ts +0 -145
- package/src/components/form/engine/variants/variantModel.ts +0 -223
- package/src/components/form/engine/variants/variantParts.tsx +0 -313
- package/src/components/form/expressions/DpqlRendering.tsx +0 -85
- package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
- package/src/components/form/expressions/ExpressionField.tsx +0 -503
- package/src/components/form/expressions/argumentPresence.ts +0 -213
- package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
- package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
- package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
- package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
- package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
- package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
- package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
- package/src/components/form/expressions/builder/index.tsx +0 -1545
- package/src/components/form/expressions/builder/item.tsx +0 -89
- package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
- package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
- package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
- package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
- package/src/components/form/expressions/mockExpressions.ts +0 -317
- package/src/components/form/expressions/renderExpressionToText.ts +0 -152
- package/src/components/form/expressions/types.ts +0 -110
- package/src/components/form/expressions/useExpressions.ts +0 -101
- package/src/components/form/expressions/useRenderExpression.ts +0 -165
- package/src/components/form/fields/ChoiceGroupHeading.tsx +0 -38
- package/src/components/form/fields/Field.stories.tsx +0 -143
- package/src/components/form/fields/Field.tsx +0 -734
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -321
- package/src/components/form/fields/allowed-values/savedValues.ts +0 -64
- package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
- package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
- package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
- package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
- package/src/components/form/fields/auto/AutoFormField.tsx +0 -1183
- package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
- package/src/components/form/fields/binary/Binary.tsx +0 -91
- package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
- package/src/components/form/fields/boolean/Boolean.tsx +0 -34
- package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
- package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
- package/src/components/form/fields/color/Color.stories.tsx +0 -99
- package/src/components/form/fields/color/Color.tsx +0 -46
- package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
- package/src/components/form/fields/cron/Cron.tsx +0 -80
- package/src/components/form/fields/date/Date.stories.tsx +0 -77
- package/src/components/form/fields/date/Date.tsx +0 -55
- package/src/components/form/fields/emittedValues.ts +0 -70
- package/src/components/form/fields/file/File.stories.tsx +0 -161
- package/src/components/form/fields/file/File.tsx +0 -227
- package/src/components/form/fields/long-string/LongString.stories.tsx +0 -147
- package/src/components/form/fields/long-string/LongString.tsx +0 -141
- package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
- package/src/components/form/fields/markdown/Markdown.tsx +0 -81
- package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
- package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -140
- package/src/components/form/fields/number/Number.stories.tsx +0 -159
- package/src/components/form/fields/number/Number.tsx +0 -175
- package/src/components/form/fields/object/Object.stories.tsx +0 -398
- package/src/components/form/fields/object/Object.tsx +0 -255
- package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
- package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -52
- package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
- package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
- package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
- package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
- package/src/components/form/fields/rich-text/RichText.tsx +0 -537
- package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
- package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
- package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
- package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
- package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
- package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
- package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
- package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
- package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
- package/src/components/form/fields/schema-definition/catalog.ts +0 -237
- package/src/components/form/fields/schema-definition/helpers.ts +0 -90
- package/src/components/form/fields/schema-definition/index.tsx +0 -418
- package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
- package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
- package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
- package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
- package/src/components/form/fields/schema-definition/types.ts +0 -185
- package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
- package/src/components/form/fields/select/Select.stories.tsx +0 -872
- package/src/components/form/fields/select/Select.tsx +0 -624
- package/src/components/form/fields/select/SelectCollection.tsx +0 -594
- package/src/components/form/fields/string/String.stories.tsx +0 -86
- package/src/components/form/fields/string/String.tsx +0 -43
- package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
- package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
- package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
- package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
- package/src/components/form/fields/template/TemplateField.tsx +0 -1749
- package/src/components/form/fields/template/TemplateText.tsx +0 -115
- package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
- package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
- package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
- package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
- package/src/components/form/fields/timeout/Timeout.tsx +0 -87
- package/src/components/form/fields/url/Url.stories.tsx +0 -94
- package/src/components/form/fields/url/Url.tsx +0 -85
- package/src/components/form/index.tsx +0 -49
- package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
- package/src/components/imageLightbox/ImageLightbox.tsx +0 -238
- package/src/components/imageLightbox/index.ts +0 -1
- package/src/components/log/Log.stories.tsx +0 -333
- package/src/components/log/Log.tsx +0 -285
- package/src/components/menu/Menu.stories.tsx +0 -155
- package/src/components/menu/Menu.tsx +0 -312
- package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
- package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
- package/src/components/qonsoleSmartInput/index.ts +0 -16
- package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
- package/src/components/qonsoleSmartInput/types.ts +0 -133
- package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
- package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
- package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
- package/src/components/searchFilterBar/index.ts +0 -1
- package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
- package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
- package/src/components/smartEditor/SmartEditor.tsx +0 -808
- package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
- package/src/components/smartEditor/helpers.ts +0 -217
- package/src/components/smartEditor/index.ts +0 -35
- package/src/components/smartEditor/styling.ts +0 -45
- package/src/components/smartEditor/types.ts +0 -211
- package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
- package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
- package/src/components/smartEditor/useLspHover.ts +0 -230
- package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
- package/src/components/smartEditor/useLspSession.ts +0 -231
- package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
- package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
- package/src/components/supportTicket/AttachmentChips.tsx +0 -147
- package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
- package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -130
- package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -580
- package/src/components/supportTicket/ReferencePicker.tsx +0 -573
- package/src/components/supportTicket/TicketConversation.stories.tsx +0 -120
- package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
- package/src/components/supportTicket/TicketHeader.tsx +0 -248
- package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
- package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
- package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -357
- package/src/components/supportTicket/TicketReplyBox.tsx +0 -172
- package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
- package/src/components/supportTicket/attachmentAccess.ts +0 -97
- package/src/components/supportTicket/fileToAttachment.ts +0 -24
- package/src/components/supportTicket/index.ts +0 -10
- package/src/components/supportTicket/meta.ts +0 -206
- package/src/components/supportTicket/ticketModel.ts +0 -131
- package/src/components/supportTicket/useLoadedImages.ts +0 -93
- package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -341
- package/src/components/ticketReferences/TicketReferences.tsx +0 -914
- package/src/components/ticketReferences/index.ts +0 -2
- package/src/components/ticketThread/TicketThread.stories.tsx +0 -898
- package/src/components/ticketThread/TicketThread.tsx +0 -706
- package/src/components/ticketThread/index.ts +0 -6
- package/src/contexts/FetchContext.tsx +0 -25
- package/src/contexts/ReqraftContext.tsx +0 -9
- package/src/contexts/StorageContext.tsx +0 -33
- package/src/global.d.ts +0 -4
- package/src/helpers/allowedValues.ts +0 -268
- package/src/helpers/choiceChip.ts +0 -227
- package/src/helpers/common.ts +0 -326
- package/src/helpers/dpqlDetection.ts +0 -209
- package/src/helpers/expressions.ts +0 -140
- package/src/helpers/fieldDescription.ts +0 -39
- package/src/helpers/optionUiTypes.ts +0 -199
- package/src/helpers/options.ts +0 -150
- package/src/helpers/providerValue.ts +0 -125
- package/src/helpers/scrollbar.ts +0 -32
- package/src/helpers/singleLineString.ts +0 -62
- package/src/helpers/templateItems.ts +0 -81
- package/src/helpers/templateText.ts +0 -350
- package/src/helpers/templates.ts +0 -602
- package/src/helpers/validations.ts +0 -2085
- package/src/hooks/useArgSchema.ts +0 -37
- package/src/hooks/useCoarsePointer.ts +0 -30
- package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
- package/src/hooks/useFetch/useFetch.tsx +0 -154
- package/src/hooks/usePhoneViewport.ts +0 -34
- package/src/hooks/useQorusTypes.ts +0 -233
- package/src/hooks/useReqraftProperty.ts +0 -16
- package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
- package/src/hooks/useStorage/useStorage.ts +0 -35
- package/src/hooks/useTemplates.ts +0 -123
- package/src/hooks/useValidation.ts +0 -9
- package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
- package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
- package/src/hooks/useWhyDidYouUpdate.ts +0 -38
- package/src/index.tsx +0 -86
- package/src/providers/FetchProvider.tsx +0 -40
- package/src/providers/ReqraftProvider.tsx +0 -52
- package/src/providers/StorageProvider.tsx +0 -131
- package/src/stores/currentUser/currentUser.stories.tsx +0 -100
- package/src/stores/currentUser/currentUser.tsx +0 -94
- package/src/stories/Data/fileFieldArgSchema.json +0 -86
- package/src/stories/Tests/utils.ts +0 -320
- package/src/stories/storyNetwork.ts +0 -92
- package/src/stories/tracking.tsx +0 -206
- package/src/tracking/browser/attach.ts +0 -186
- package/src/tracking/browser/env.ts +0 -78
- package/src/tracking/core/consent.ts +0 -37
- package/src/tracking/core/engagement.ts +0 -47
- package/src/tracking/core/experiments.ts +0 -258
- package/src/tracking/core/hash.ts +0 -26
- package/src/tracking/core/ids.ts +0 -25
- package/src/tracking/core/observable.ts +0 -23
- package/src/tracking/core/queue.ts +0 -131
- package/src/tracking/core/sections.ts +0 -166
- package/src/tracking/core/storage.ts +0 -69
- package/src/tracking/core/tracker.ts +0 -417
- package/src/tracking/core/types.ts +0 -162
- package/src/tracking/core/utm.ts +0 -23
- package/src/tracking/index.ts +0 -72
- package/src/tracking/markup.ts +0 -17
- package/src/tracking/react/Experiment.tsx +0 -44
- package/src/tracking/react/TrackingProvider.tsx +0 -56
- package/src/tracking/react/hooks.ts +0 -106
- package/src/tracking/react/index.ts +0 -13
- package/src/tracking/testing.ts +0 -108
- package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
- package/src/tracking/ui/ExperimentCard.tsx +0 -667
- package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
- package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
- package/src/tracking/ui/anchor.ts +0 -180
- package/src/tracking/ui/card.ts +0 -464
- package/src/tracking/ui/client.ts +0 -117
- package/src/tracking/ui/index.ts +0 -77
- package/src/tracking/ui/types.ts +0 -110
- package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
- package/src/types/Form.ts +0 -29
- package/src/types.ts +0 -14
- package/src/utils/datetime.ts +0 -10
- package/src/utils/fetch.ts +0 -457
- package/src/utils/lspClient.ts +0 -711
- package/src/utils/lspClient.types.ts +0 -211
- package/src/utils/queryUnlessCancelled.ts +0 -28
- package/src/utils/websocket.ts +0 -293
- package/vite.config.ts +0 -58
- package/vitest.config.ts +0 -69
|
@@ -1,558 +0,0 @@
|
|
|
1
|
-
# Form Engine — Compact (read-first) mode
|
|
2
|
-
|
|
3
|
-
> **Master plan.** Spans three repos. Lives in the toolkit-react worktree because Phase 1 (the
|
|
4
|
-
> bulk of the work) ships here. Phases 2–3 land in `qorus-ide`; Phase 4 is an incremental
|
|
5
|
-
> `qorus` server change. Treat this file as the single source of truth and keep it updated as we go.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 0. Ground rules (agreed with the user)
|
|
10
|
-
|
|
11
|
-
1. **Worktree + branch (done).** All Phase-1 work happens in the dedicated worktree, not the main checkout.
|
|
12
|
-
- Worktree: `/Users/nick/Projects/qorus-frontend/toolkit-react--form-engine-compact`
|
|
13
|
-
- Branch: `feature/form-engine-compact-read-first`, created off **latest** `origin/develop` (`04ecdcf`).
|
|
14
|
-
2. **No commits, no pushes until the user explicitly says so.** Implement, run tests/stories locally, show diffs — wait for the go-ahead before any `git commit`/`git push`.
|
|
15
|
-
3. **Design-doc driven.** Every decision below is grounded in the existing design docs across the three repos (cited inline). When we change a documented surface we update its doc + `AI-DOCS` in the same change.
|
|
16
|
-
4. **Proper Storybook stories and tests.** New behaviour ships with stories + `play` interaction tests (toolkit-react Storybook test-runner + jest), and the IDE phases extend the existing creator stories. No trivial/self-asserting tests.
|
|
17
|
-
5. **No shortcuts.** Reuse the real engine, contribute reusable UI upstream, no forks/stopgaps left behind. "Correct and proper" over "fast."
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## 1. Goal
|
|
22
|
-
|
|
23
|
-
The workflow/step interface creator was recently restyled into a **read-first** layout (a "configuration
|
|
24
|
-
summary you drill into" rather than a wall of inputs). That look currently lives as a **bespoke,
|
|
25
|
-
fields-based** component in the IDE. We want to:
|
|
26
|
-
|
|
27
|
-
1. **Move the read-first presentation into the Reqraft `FormEngine`** as a first-class **`compact`** mode,
|
|
28
|
-
so any options form can render this way — not just the workflow/step creator.
|
|
29
|
-
2. **Drive it from the options schema, not the legacy `IField` list**, because options is the standard
|
|
30
|
-
form model everywhere else in the app and is server-driven.
|
|
31
|
-
3. **Retire the IDE-local `RestyledFields` detour** once the engine covers it, leaving the IDE with a thin,
|
|
32
|
-
interface-specific wrapper (hero copy + chips) and nothing duplicated.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## 2. Background — the two-engine reality (current state)
|
|
37
|
-
|
|
38
|
-
There are **not** two form philosophies. There is **one options form engine**, mirrored in two places, plus
|
|
39
|
-
**one legacy holdout**.
|
|
40
|
-
|
|
41
|
-
### 2a. The one engine, in two places
|
|
42
|
-
- **Reqraft `FormEngine`** — `toolkit-react/src/components/form/engine/FormEngine.tsx`. The upstream,
|
|
43
|
-
published engine (`@qoretechnologies/reqraft`; the IDE depends on `^0.8.11`). Driven by
|
|
44
|
-
`IQorusFormSchema` (options) from `@qoretechnologies/ts-toolkit`.
|
|
45
|
-
- **IDE `<Options>`** — `qorus-ide/src/components/Field/systemOptions.tsx`. An **in-repo twin** with
|
|
46
|
-
byte-for-byte the same internals (`fixOptions`, `availableOptions`, `OptionsContext`,
|
|
47
|
-
`showInvalidOptionsOnly`, the "More Options" adder, `flattenOptions`). Documented in
|
|
48
|
-
`qorus-ide/design/SYSTEM_OPTIONS.md`. The IDE comment at `systemOptions.tsx:490` ("nested FormEngine
|
|
49
|
-
emissions") shows the upstream engine is already nested in places.
|
|
50
|
-
|
|
51
|
-
Both consume the **same** schema type. `FormEngine` is the strategic home; `<Options>` is the legacy local
|
|
52
|
-
fork (convergence of the two is **out of scope** here — see §9).
|
|
53
|
-
|
|
54
|
-
### 2b. The legacy holdout — workflow/step creator
|
|
55
|
-
- The workflow/step creator renders via `qorus-ide/src/containers/InterfaceCreator/panel.tsx`, fed by the
|
|
56
|
-
**legacy** WebSocket `creator-get-fields` → `IField[]` (array-based, `mandatory`, `items[]`). Type:
|
|
57
|
-
`qorus-ide/src/components/FieldWrapper/index.tsx` (`IField`).
|
|
58
|
-
- The read-first look is `qorus-ide/src/containers/InterfaceCreator/restyled/RestyledFields.tsx`
|
|
59
|
-
(documented in `qorus-ide/design/RESTYLED_CREATOR.md`): it re-implements rows, grouping, completion bar,
|
|
60
|
-
and a "Ready/Draft" hero **by hand**, on top of `IField`. It's opt-in via the panel's `restyled` prop
|
|
61
|
-
(workflow + step only).
|
|
62
|
-
|
|
63
|
-
### 2c. The modern surfaces already on options
|
|
64
|
-
Connection, FSM state/transition actions, pipeline processors, AI collection/endpoint/guardrail, ML model —
|
|
65
|
-
all render from the options schema. The IDE already has the options-fetch hook:
|
|
66
|
-
`qorus-ide/src/hooks/useInterfaceFields.tsx` calls **`creator-get-fields-as-options`** and returns an
|
|
67
|
-
`IOptionsSchema`. The connection view's own fields→options migration is fully designed in
|
|
68
|
-
`qorus-ide/design/connection-options-api.md` — this is the **precedent** for what we're doing for
|
|
69
|
-
workflow/step.
|
|
70
|
-
|
|
71
|
-
### 2d. What the server already provides
|
|
72
|
-
- The server **already** exposes the workflow/step form as an **options schema** via
|
|
73
|
-
`creator-get-fields-as-options` (the same action the modern surfaces use). The options descriptor
|
|
74
|
-
(`FieldInfo` in `qorus/Classes/QorusMapManager.qc`) **already carries `group`** (and `compact`,
|
|
75
|
-
`sort_group`/`sort_key`, `display_name`, `short_desc`, `allowed_values`, `depends_on`, `on_change`, …).
|
|
76
|
-
- So: **no IDE-side `IField → options` adapter is needed, and we are not blocked on new server work.**
|
|
77
|
-
qorus issue **#259** ("server assigns `group` to every field") is just *populating* `group` values on the
|
|
78
|
-
existing schema — incremental, non-blocking (the FE already has a grouping fallback).
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## 3. Design principles (doc-grounded)
|
|
83
|
-
|
|
84
|
-
| Principle | Source | Consequence for this work |
|
|
85
|
-
|---|---|---|
|
|
86
|
-
| Reusable UI belongs in the library; contribute upstream, don't wrap/patch locally. | `qorus-ide/design/REQORE_REQRAFT.md` §"When Something is Missing" (lines 5, 114–123) | The read-first presentation is a reusable form concern → it lives in **`FormEngine`** (`compact`), not in a new IDE component. |
|
|
87
|
-
| Don't fork `RestyledFields`; extend the descriptor API. Interface-specific copy is injected, the component stays interface-agnostic. | `qorus-ide/design/RESTYLED_CREATOR.md` (lines 39–65) | Interface-specific chrome (hero copy, language/`remote` chips, group labels) stays **IDE-side**, injected into the engine wrapper — not hardcoded in the engine. |
|
|
88
|
-
| Options is the standard; Fields is deprecated. The connection view migration is the template. | `qorus-ide/design/connection-options-api.md`; `qorus-ide/design/SYSTEM_OPTIONS.md` | Workflow/step move to `creator-get-fields-as-options`, same path the modern surfaces use. |
|
|
89
|
-
| Search before you build; don't fork a shared component to add one prop; every shared visual component gets a story. | `qorus-ide/design/SHARED_COMPONENTS.md` Rules 1, 4, 5 | Extend `FormEngine` in place (it already has a `compact` prop stub); ship stories; reuse Reqore primitives for grouping rather than hand-rolled wrappers. |
|
|
90
|
-
| Explain non-obvious features in-app. | `qorus-ide/CLAUDE.md` "Explaining features"; `SHARED_COMPONENTS.md` "Help & hints" | Keep the existing read-first `<Hint>` (or its engine equivalent) so users learn the click-to-edit interaction. |
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## 4. Locked decisions (the two questions we researched)
|
|
95
|
-
|
|
96
|
-
### Decision A — Scope split: **engine owns the core, IDE wraps the chrome.**
|
|
97
|
-
- **`FormEngine` (generic, reusable):** read-first rows showing each option's formatted value; click-to-edit
|
|
98
|
-
expand/collapse reusing the existing field editor; compact density; a completion/validity meter derived
|
|
99
|
-
from data the engine **already computes** (`validityData` / `invalidFields`); grouping driven by the
|
|
100
|
-
schema's `group` key.
|
|
101
|
-
- **IDE wrapper (interface-specific):** the "Ready/Draft" hero **copy**, the language-logo / `remote` value
|
|
102
|
-
chips, and group-label overrides — injected exactly like today's `IRestyledDescriptor`. The Ready/Draft
|
|
103
|
-
**derivation** is generic and moves into the engine; only the **wording/chips** stay in the IDE.
|
|
104
|
-
- Rationale: this is what `REQORE_REQRAFT.md` (upstream-or-nothing) + `RESTYLED_CREATOR.md` (descriptor
|
|
105
|
-
injection, don't fork) jointly prescribe.
|
|
106
|
-
|
|
107
|
-
### Decision B — Data path: **use the existing server options path; no adapter.**
|
|
108
|
-
- Switch workflow/step off legacy `creator-get-fields` (`IField[]`) onto **`creator-get-fields-as-options`**
|
|
109
|
-
(`IOptionsSchema`) via the existing `useInterfaceFields` hook, and render with `FormEngine` in `compact`
|
|
110
|
-
mode.
|
|
111
|
-
- Rationale: the server already returns an options schema for these types (with `group`); the IDE already
|
|
112
|
-
has the consumer + renderer; the modern surfaces already run this path. Building an `IField→options`
|
|
113
|
-
converter would be a shortcut that entrenches the deprecated model — explicitly rejected.
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## 5. Engine design — the `compact` (read-first) mode in `FormEngine`
|
|
118
|
-
|
|
119
|
-
**Naming.** The user framed this as "a `compact` flag that turns the form engine into the new look," and
|
|
120
|
-
`FormEngine` already has a `compact?: boolean` prop (`FormEngine.tsx:296`, currently a near-stub that only
|
|
121
|
-
hides the collection label and disables filter/sort at lines 1029–1036). We **extend `compact`** to be the
|
|
122
|
-
full read-first presentation. *(Open item 9d: confirm we want `compact` to mean read-first, or a separate
|
|
123
|
-
`readFirst`/`mode` prop with `compact` as density-only. Default assumption: extend `compact`.)*
|
|
124
|
-
|
|
125
|
-
**Where it hooks in.** Today each option is a `ReqoreCollection` item whose `content` is
|
|
126
|
-
`<FocusedEditing>…{renderOption(optionName, …)}</FocusedEditing>` (`FormEngine.tsx:1218–1239`), i.e. the
|
|
127
|
-
editor is always expanded. In `compact` mode the item `content` becomes **read-first**:
|
|
128
|
-
|
|
129
|
-
1. **Read row (default):** render the option's label + a formatted value summary (mirror
|
|
130
|
-
`RestyledFields.formatValue`: `—`/"Not set" when empty, "Yes/No" for bool, joined names for lists,
|
|
131
|
-
"Set" for hashes, the language image when the wrapper maps it). Hover reveals an edit affordance; the
|
|
132
|
-
existing per-item actions (remove value, revert, remove optional, fullscreen) stay available.
|
|
133
|
-
2. **Edit (on click):** clicking the row reveals `renderOption(...)` — the **real, unchanged editor** with
|
|
134
|
-
all existing wiring (templates, expressions, `on_change`, validation, dependents) — plus a "Done"
|
|
135
|
-
collapse. Track per-item edit state alongside the existing `focusedEditing` state (`FormEngine.tsx:323`).
|
|
136
|
-
3. **Completion meter:** a thin "N / M set" + % bar derived from `availableOptions` + required completeness,
|
|
137
|
-
reusing the engine's existing validity (`IFormValidityData`, surfaced via `onValidityChange`). No new
|
|
138
|
-
validation logic.
|
|
139
|
-
4. **Grouping:** group options by their schema `group` key, ordered, with a default label/icon map and
|
|
140
|
-
per-group override via the wrapper. **Spike first (Task 1.1):** confirm whether `ReqoreCollection`
|
|
141
|
-
supports native grouping; if not, render one Reqore panel/collection per group using Reqore primitives
|
|
142
|
-
(per `SHARED_COMPONENTS.md` Rule 6 — no hand-rolled gap `<div>`s). Keep the existing "More Options"
|
|
143
|
-
adder and "show invalid only" behaviours working per-group or globally.
|
|
144
|
-
5. **Chrome injection:** add a minimal, typed way for the IDE wrapper to pass interface-specific group
|
|
145
|
-
labels (and anything else genuinely needed). Hero copy + value chips are rendered **by the IDE around**
|
|
146
|
-
`FormEngine`, not inside it — so they do **not** become engine props beyond what grouping needs.
|
|
147
|
-
|
|
148
|
-
**Non-goals for the engine:** the "Ready/Draft" hero strip, language-logo chips, and interface-specific
|
|
149
|
-
captions. Those stay in the IDE (Decision A).
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## 6. Phase plan
|
|
154
|
-
|
|
155
|
-
### Phase 0 — Prerequisites ✅ DONE
|
|
156
|
-
- [x] Worktree + branch off latest `develop`.
|
|
157
|
-
- [x] `yarn install` **inside the worktree** (worktrees don't share `node_modules`).
|
|
158
|
-
- [x] Baseline verified clean on the untouched branch: **jest 163/163 pass** (~4s); **Storybook boots**
|
|
159
|
-
and indexes `Form/Engine/FormEngine`.
|
|
160
|
-
- [x] Re-read cited sections of `FormEngine.tsx` / `FormEngine.stories.tsx`.
|
|
161
|
-
|
|
162
|
-
**⚠️ Environment gotcha — use Yarn Classic, not the global berry.**
|
|
163
|
-
- The repo commits a **Yarn 1.x** lockfile (`# yarn lockfile v1`), no `packageManager` pin. The machine's
|
|
164
|
-
global `yarn` is **4.6.0 (berry)**, which on first `yarn install` **silently migrates** the project
|
|
165
|
-
(creates `.yarn/` + `.yarnrc.yml`, rewrites `yarn.lock` +18k/−13k). That tracked `yarn.lock` change must
|
|
166
|
-
**not** leak into the branch.
|
|
167
|
-
- **Always invoke yarn as classic in this worktree:** `npx --yes yarn@1.22.22 <cmd>` (install used
|
|
168
|
-
`--frozen-lockfile`, passed, zero lockfile churn). Do **not** run a bare `yarn install` here.
|
|
169
|
-
- **Storybook port:** the main checkout (`feature/dpql-editor`) already runs Storybook on **6008**; don't
|
|
170
|
-
kill it. The worktree Storybook runs on **6009** (`./node_modules/.bin/storybook dev -p 6009 --no-open`).
|
|
171
|
-
Point `test-storybook` at `--url http://localhost:6009` in Phase 1.
|
|
172
|
-
- `storybook-static/` is **not** gitignored — if we ever `build-storybook`, delete the output afterward.
|
|
173
|
-
|
|
174
|
-
### Phase 1 — Implement `compact` read-first mode in `FormEngine` (toolkit-react) ✅ DONE
|
|
175
|
-
- [x] **1.1 Grouping spike** — `ReqoreCollection` (0.64.3, the installed version) renders native group
|
|
176
|
-
headers from item `groups: string[]` (`CollectionGroupHeader`, both `sortByGroupFirst` branches). So
|
|
177
|
-
grouping stays **100% in reqraft** — no reqore change. We set `groups: [getOptionGroup(schema)]` per
|
|
178
|
-
item; ungrouped required/preselected → "General", else "Optional". (Native item `expandable` was
|
|
179
|
-
rejected — it expands into a centered modal, not the inline row we want.)
|
|
180
|
-
- [x] **1.2 Read-first item content** — `renderReadFirstContent` swaps each item's `content` between a
|
|
181
|
-
clickable value row (`ReqoreButton`, `.options-readfirst-value`) and the real `renderOption` editor +
|
|
182
|
-
a "Done" collapse (`.options-readfirst-done`). All field wiring preserved. Inline expand state
|
|
183
|
-
(`expandedOptions`), multiple rows open at once. Clickable value control (not item-level `onClick`)
|
|
184
|
-
so header action buttons don't conflict.
|
|
185
|
-
- [x] **1.3 Completion meter** — `ReqoreProgress` "N / M fields set" from `getReadFirstCompletion`; no new
|
|
186
|
-
validation.
|
|
187
|
-
- [x] **1.4 Grouping** — by schema `group`, title-cased, via native collection group headers.
|
|
188
|
-
- [x] **1.5 Density + a11y** — small/flat/minimal Reqore props; `readOnly` keeps rows viewable (eye icon,
|
|
189
|
-
no edit affordance). **a11y completed in v5** (see below): the read-first rows became flat
|
|
190
|
-
`styled-components` `<div>`s in the v2 rework and were initially mouse-only; v5 makes them real
|
|
191
|
-
controls (`role="button"`, `tabIndex={0}`, Enter/Space, focus ring).
|
|
192
|
-
- [x] **1.6 Stories** — `Compact`, `CompactReadOnly`, `CompactEmpty`, `CompactReadFirstEditing` added to
|
|
193
|
-
`FormEngine.stories.tsx` (grouped schema with bool/allowed_values/list + a required-empty field).
|
|
194
|
-
- [x] **1.7 `play` interaction test** — `CompactReadFirstEditing` asserts: value rows render (Yes/Python/
|
|
195
|
-
"Required — not set") with **no editor mounted**; group headers (Info/Scaling); expand → pre-filled
|
|
196
|
-
editor; edit → `onChange` with `name.value:'updated-name'`; Done → collapse → new value shown.
|
|
197
|
-
Passes in-browser (test-storybook, ~400ms).
|
|
198
|
-
- [x] **1.8 Types/docs** — `compact` prop JSDoc on `IFormEngineProps`; new
|
|
199
|
-
[`design/FORM_ENGINE_COMPACT.md`](../design/FORM_ENGINE_COMPACT.md); helpers extracted to
|
|
200
|
-
`readFirst.ts` with unit tests (`__tests__/readFirst.test.ts`).
|
|
201
|
-
- [x] **1.9 Green check** — `yarn precheck` **green** (lint clean, **jest 180/180**, prod typecheck clean).
|
|
202
|
-
`test-storybook` on :6009: all 4 compact stories pass.
|
|
203
|
-
|
|
204
|
-
**Files:** new `src/components/form/engine/readFirst.ts`, `__tests__/readFirst.test.ts`,
|
|
205
|
-
`design/FORM_ENGINE_COMPACT.md`; modified `src/components/form/engine/FormEngine.tsx` (compact-gated only)
|
|
206
|
-
and `FormEngine.stories.tsx`. **Not committed** (awaiting user go-ahead).
|
|
207
|
-
|
|
208
|
-
**Layout rework (v2) — after visual review vs the IDE.** The first cut reused the classic
|
|
209
|
-
`ReqoreCollection` card-per-field layout (`flat:false` + darkened `customTheme`), which looked heavy and
|
|
210
|
-
unlike the IDE's restyled rows. Reworked to a **dedicated compact render path** (`renderCompact` /
|
|
211
|
-
`renderCompactRow`, early-return before the collection): **flat two-column rows** (label | value | action,
|
|
212
|
-
thin dividers) inside collapsible `ReqorePanel` groups with `✓ all set` / `⚠ N to resolve` badges, the
|
|
213
|
-
completion meter, invalid message, and the more-options adder. Styling via theme-aware `styled-components`.
|
|
214
|
-
Classic path fully reverted/untouched. Re-verified: `precheck` green (jest 180/180), all 4 compact stories
|
|
215
|
-
pass in `test-storybook`. Still **engine-only** — the hero strip / chips / toolbar remain the IDE wrapper
|
|
216
|
-
(Phase 3).
|
|
217
|
-
|
|
218
|
-
**Polish + "Minimal" decision items (v3).** After visual review against the IDE:
|
|
219
|
-
- **Completion bar** → replaced `ReqoreProgress` with the IDE's inline `label | track | %` strip
|
|
220
|
-
(`StyledCompletion*`).
|
|
221
|
-
- **Group display** → engine gained a `groups?: Record<string, IFormEngineGroup>` prop (label/icon/subtitle/
|
|
222
|
-
sort), keyed by the raw `group` key. `getOptionGroup` now returns the raw key; new `getOptionGroupLabel`
|
|
223
|
-
resolves the display label. Default = title-cased key, no icon, schema order. Research basis: the **server
|
|
224
|
-
defines no group display metadata** — only the bare `group` string (`info`/`advanced`/`resources`/
|
|
225
|
-
`scaling`/`other`/`files`); `sort_group`/`sort_key` exist but are unused; no per-field icon (only
|
|
226
|
-
allowed-values carry `icon_filename`). So each UI owns group display → engine takes it via prop.
|
|
227
|
-
- **Toolbar** → search box (filter rows by label) + **Required only** toggle. Filters only affect listed
|
|
228
|
-
rows; the meter reflects the full set.
|
|
229
|
-
- New story `CompactRequiredOnlyAndSearch` (play test) + `groups` config on the compact stories. Re-verified:
|
|
230
|
-
`precheck` green (**jest 182/182**), **29/29** `test-storybook` (incl. the toolbar test).
|
|
231
|
-
|
|
232
|
-
**"Full" toolbar (v4) — the IDE "Fields" dropdown.** Consolidated the toolbar into a `ReqoreDropdown`
|
|
233
|
-
matching the IDE's Fields menu (edit-mode only): **Required only** toggle, **Select all** (`handleAddAllOptional`),
|
|
234
|
-
**Default fields** (`handleResetToDefaultFields` — drop user-added optionals, keep required/preselected/
|
|
235
|
-
loaded values, clear the filter; mirrors the IDE's `handleResetToDefault`), and a searchable add-optional
|
|
236
|
-
list (the standalone bottom adder was removed). Row search box kept. New play test `CompactFieldsMenu`
|
|
237
|
-
(Select-all adds an optional → Default-fields removes it); `CompactRequiredOnlyAndSearch` updated to toggle
|
|
238
|
-
via the dropdown. Verified: `precheck` green (**jest 182/182**), **30/30** `test-storybook`.
|
|
239
|
-
|
|
240
|
-
**Still deferred to Phase-3 (researched, not built):** allowed-value icons (language logo via
|
|
241
|
-
`icon_filename` — needs a filename→URL resolver, so consumer-side). The **hero strip, "Edit code", and the
|
|
242
|
-
help Hint stay IDE-only** (the IDE wraps the engine).
|
|
243
|
-
|
|
244
|
-
**a11y + UX polish (v5).**
|
|
245
|
-
- **Keyboard a11y** — read-first rows are now `role="button"` + `tabIndex={0}` with Enter/Space activation
|
|
246
|
-
and a focus ring (they were mouse-only `<div>`s after the v2 rework; corrected the stale plan claim above).
|
|
247
|
-
- **`N optional` badge** — the catch-all `optional` group shows `N optional` instead of a misleading
|
|
248
|
-
"all set".
|
|
249
|
-
- **Search spans hidden fields** — the top search now matches optional fields not yet in the form too; a
|
|
250
|
-
match surfaces as a dimmed **"Not in form — add"** row that adds + opens the field when activated.
|
|
251
|
-
- **Sticky "Additional options (N)" bar** — once the toolbar scrolls off-screen (tracked via an
|
|
252
|
-
`IntersectionObserver` sentinel), a sticky bottom dropdown keeps the add-optional list reachable.
|
|
253
|
-
- New stories/tests: `CompactSearchHidden` (search-hidden + keyboard-activate), `CompactScrollable`
|
|
254
|
-
(no-play, for the sticky-bar/search screenshots). Verified: `precheck` green (**jest 182/182**), **30/31**
|
|
255
|
-
`test-storybook` (the 1 failure is the pre-existing `OnValidityChange` flake; all 8 compact stories pass).
|
|
256
|
-
Sticky bar is verified visually (IntersectionObserver/scroll behaviour isn't deterministically unit-testable).
|
|
257
|
-
|
|
258
|
-
### Verification items (two follow-ups raised by the team)
|
|
259
|
-
|
|
260
|
-
**(a) "add dpql render to make options support expressions" — a follow-up, NOT a Phase-1/compact task.**
|
|
261
|
-
Options can hold *expression* values (`supports_expressions`, `is_expression`, `default_view:'expression'`,
|
|
262
|
-
`expressions`, `expressions_url`); they're authored in **DPQL** via the Slate-based **`DpqlEditor`**. The
|
|
263
|
-
toolkit form engine **renders no expression editor today** — neither on `develop` nor on
|
|
264
|
-
`feature/dpql-editor` (`TemplateField` only does template/direct; `is_expression` is just a flag). The
|
|
265
|
-
`DpqlEditor` *component* exists on **`feature/dpql-editor`** (`src/components/dpqlEditor/`) but is **not
|
|
266
|
-
wired into the form fields** and not released (local reqraft 0.10.0).
|
|
267
|
-
- **Are we waiting on `feature/dpql-editor`?** For the **compact work: NO** — verified the branches are
|
|
268
|
-
orthogonal: `feature/dpql-editor` (29 commits ahead of `origin/develop`, same `04ecdcf` base) **does not
|
|
269
|
-
touch any form-engine file** (`FormEngine.tsx` / `TemplateField.tsx` / `Field.tsx` / form fields unchanged
|
|
270
|
-
there; no `dpql` refs anywhere under `src/components/form`). Only shared file is `.storybook/preview.tsx`
|
|
271
|
-
(the theme tweak, copied from that branch) — no functional dependency, no conflict. For the **expression
|
|
272
|
-
feature: YES** — it needs `feature/dpql-editor` merged (to get `DpqlEditor` onto develop) **and** new
|
|
273
|
-
wiring to render it for expression fields. Compact inherits it for free once wired into
|
|
274
|
-
`renderOption`/`TemplateField` (compact reuses both). Today a compact read row shows "Expression" for
|
|
275
|
-
`is_expression` values.
|
|
276
|
-
|
|
277
|
-
**(b) "verify the new compact works with all the options props (on_change/refetch, …)" — DONE.**
|
|
278
|
-
Compact reuses the shared `handleValueChange` (`on_change` → `meta.events`; `has_dependents` → reset
|
|
279
|
-
dependents + `onDependableOptionChange`) and `renderOption` (`depends_on` disabling, templates), so it
|
|
280
|
-
inherits all of it by construction. Now covered by a play test: **`CompactOnChangeAndDependents`** —
|
|
281
|
-
editing a `has_dependents` + `on_change:['refetch']` field in the expanded read-first editor fires the
|
|
282
|
-
`refetch` event **and** resets its `depends_on` dependent, exactly as classic. **33/33 `test-storybook`.**
|
|
283
|
-
|
|
284
|
-
### Classic-parity features brought into compact (v6 — decision (b))
|
|
285
|
-
|
|
286
|
-
Decision (b): user chose **per-field + global revert** and **show-field-types as a Fields-menu toggle**
|
|
287
|
-
(the two classic features compact lacked).
|
|
288
|
-
- **Revert (per-field + global)** — a changed row shows a hover **↺** (`.options-readfirst-revert`) that
|
|
289
|
-
restores that field to its loaded value (`originalValue`); **Revert all changes** in the Fields menu
|
|
290
|
-
(disabled when unchanged) restores the whole form (`handleRevertChangesClick`). Distinct from
|
|
291
|
-
**Default fields** (schema defaults + drop added optionals).
|
|
292
|
-
- **Show field types** — a Fields-menu toggle (reuses the existing `showFieldTypes` state /
|
|
293
|
-
`handleShowFieldTypesClick`); when on, each row is annotated with `<type>` (e.g. `<string>`, `<list>`).
|
|
294
|
-
- Test: **`CompactRevertAndShowTypes`** (edit → per-field revert restores; toggle show-types → `<string>`
|
|
295
|
-
appears; edit again → Revert-all restores). **34/35 `test-storybook`** (the 1 failure is the pre-existing
|
|
296
|
-
`OnValidityChange` flake; all 10 compact stories pass). `precheck` green (jest 182/182).
|
|
297
|
-
|
|
298
|
-
### Coverage parity (a) + house style (c) — DONE (v7)
|
|
299
|
-
|
|
300
|
-
- **(c) House style** — refactored all 6 existing compact play tests + the `clickFieldsMenuItem` helper to
|
|
301
|
-
foxhoundn's shared `_tests*` helpers (`_testsWaitForText`, `_testsWaitForTextToNotExist`, `_testsClickText`,
|
|
302
|
-
`_testsClickButton`, `_testsChangeStringField`, `_testsWaitForInputValue`, `_testsWaitForTextsCount`).
|
|
303
|
-
`waitFor`/helpers are the gate; `sleep` only as a settle (the convention).
|
|
304
|
-
- **(a) Parity stories** — added compact stories mirroring the classic matrix: **`CompactFieldTypes`**
|
|
305
|
-
(string/richtext/number/bool/list/hash/rgbcolor read-display + expand-to-edit), **`CompactRequiredGroups`**
|
|
306
|
-
(`required_groups` one-of), **`CompactAnyType`** (`any` type), **`CompactReadonlyDefaultFix`** (schema
|
|
307
|
-
`readonly` value≠default → fixed), **`CompactNonExistentFiltered`** (off-schema values dropped),
|
|
308
|
-
**`CompactHelpDialog`** (new help affordance — a `?` on rows with a long `desc`, opens `OptionsHelpDialog`),
|
|
309
|
-
**`CompactDoesNotCauseInfiniteRerenders`** (render stability). Small feature added: per-row help icon
|
|
310
|
-
(`.options-readfirst-help`).
|
|
311
|
-
- **17 compact stories**, `precheck` green (**jest 182/182**), **40/41 `test-storybook`** (the 1 failure is
|
|
312
|
-
the pre-existing `OnValidityChange` flake).
|
|
313
|
-
- **Minor residual gaps (covered at engine level by classic, not separately re-tested in compact):** the
|
|
314
|
-
invalid-only filter toggle (`showInvalidOptionsOnly`) and the allowed-values+template warning — both reuse
|
|
315
|
-
the same engine state/`renderOption` the classic stories exercise.
|
|
316
|
-
- **(d) real-server verification** remains Phase 2/3 (needs the IDE + a live Qorus) — out of scope for this
|
|
317
|
-
worktree.
|
|
318
|
-
|
|
319
|
-
### Pre-existing `OnValidityChange` flake — FIXED (v8)
|
|
320
|
-
|
|
321
|
-
The long-standing intermittent failure (`OnValidityChange › play-test`, "Unable to fire a 'change' event —
|
|
322
|
-
please provide a DOM element") was a foxhoundn test querying `.system-option .reqore-textarea` **unguarded**
|
|
323
|
-
before the editor had mounted. Fixed by switching to `_testsChangeStringField` (waits for the element, then
|
|
324
|
-
fires) and dropping the fixed `sleep`. **The whole `FormEngine` `test-storybook` suite is now 41/41 green —
|
|
325
|
-
no remaining failures.** (This is the one foxhoundn-owned test I touched; it's a flake fix following the
|
|
326
|
-
house wait convention, not a behaviour change.)
|
|
327
|
-
|
|
328
|
-
**⚠️ Pre-existing unrelated failure:** `FormEngine.stories.tsx › OnValidityChange › play-test` fails in
|
|
329
|
-
`test-storybook` — it queries `.system-option .reqore-textarea` with **no `waitFor`** (a mount race).
|
|
330
|
-
**Proven pre-existing on bare `develop`** (fails identically with all Phase-1 code reverted; passes on the
|
|
331
|
-
older `feature/dpql-editor` checkout). Out of scope for this task; candidate for a separate one-line
|
|
332
|
-
`waitFor` fix.
|
|
333
|
-
|
|
334
|
-
**Run it:** worktree Storybook is on **http://localhost:6009** →
|
|
335
|
-
`/?path=/story/form-engine-formengine--compact` (and `--compact-read-only`, `--compact-empty`).
|
|
336
|
-
|
|
337
|
-
### Phase 2 — Parity spike on the workflow/step creator (qorus-ide)
|
|
338
|
-
- [ ] **2.1** Confirm `creator-get-fields-as-options` returns a workflow/step schema that the options
|
|
339
|
-
renderer handles end-to-end (mount, edit, submit) — compare field-for-field against today's
|
|
340
|
-
`creator-get-fields` (`IField[]`) output.
|
|
341
|
-
- [ ] **2.2** Enumerate IField-path machinery that must survive the swap and verify each has an options
|
|
342
|
-
equivalent: **class connections / `resetClassConnections`**, the **"Edit code" handoff**, **drafts**,
|
|
343
|
-
**`reference` (iface-kind links)**, **`on_change` actions**, `get_message`/`return_message`
|
|
344
|
-
(already in `FieldInfo`), required/preselected semantics, removal-with-confirm.
|
|
345
|
-
- [ ] **2.3** Confirm whether the IDE consumes the **upstream** `FormEngine` from `reqraft` directly
|
|
346
|
-
anywhere today (the `systemOptions.tsx:490` comment hints yes). Decide Phase-3 render path:
|
|
347
|
-
upstream `FormEngine` vs. local `<Options>` (see §9a).
|
|
348
|
-
- [ ] **2.4** Capture every gap as a small, scoped follow-up (engine prop or schema field) — **not** a
|
|
349
|
-
blocker. Update this plan with the gap list before starting Phase 3.
|
|
350
|
-
|
|
351
|
-
### Phase 3 — Swap workflow/step to options + `FormEngine`; retire the detour (qorus-ide)
|
|
352
|
-
- [ ] **3.1** Bump `@qoretechnologies/reqraft` in `qorus-ide` to the release containing Phase 1 (see §7).
|
|
353
|
-
- [ ] **3.2** Route the workflow/step creator through `useInterfaceFields` + `FormEngine` `compact`, with a
|
|
354
|
-
thin IDE wrapper supplying hero copy + chips + group labels (descriptor-style, per `RESTYLED_CREATOR`).
|
|
355
|
-
- [ ] **3.3** Verify parity from Phase 2 holds in the real creator (drafts, code editor, class connections,
|
|
356
|
-
submit) via the existing full-creator stories (`Step.stories.tsx`, `Workflow.stories.tsx`).
|
|
357
|
-
- [ ] **3.4** Delete `RestyledFields`, its descriptors, and the IField read-first scaffolding **only after**
|
|
358
|
-
parity is proven. Confirm no other consumer via grep (`SHARED_COMPONENTS.md` Rule 3).
|
|
359
|
-
- [ ] **3.5** Update docs + `AI-DOCS`: rewrite `RESTYLED_CREATOR.md` (or fold into `SYSTEM_OPTIONS.md`) to
|
|
360
|
-
describe compact mode as a `FormEngine` capability; update the `RestyledFields` entry in
|
|
361
|
-
`SHARED_COMPONENTS.md`; refresh affected `AI-DOCS` blocks and run `yarn ai-docs:build`.
|
|
362
|
-
- [ ] **3.6** `yarn precheck` + Storybook test-runner green in `qorus-ide`.
|
|
363
|
-
|
|
364
|
-
### Phase 4 — `group` completeness (qorus server, incremental, non-blocking)
|
|
365
|
-
- [ ] **4.1** GitHub issue first (per `qorus-ide/CLAUDE.md` server workflow) → branch off latest `develop`
|
|
366
|
-
→ set `group` on every workflow/step `FieldInfo` so the FE grouping fallback can be removed.
|
|
367
|
-
Tracks qorus issue #259. Can land anytime after Phase 3.
|
|
368
|
-
|
|
369
|
-
### Phase 5 — DPQL expression render for options (toolkit-react) — **GATED on `feature/dpql-editor` merge**
|
|
370
|
-
> Not part of the compact migration; a separate form-engine capability. **Does not block** Phases 0–3 (the
|
|
371
|
-
> compact work is orthogonal to `feature/dpql-editor` — verified: that branch touches no form-engine file).
|
|
372
|
-
> The compact layout **inherits this for free** once it lands, because it reuses `renderOption`/`TemplateField`.
|
|
373
|
-
|
|
374
|
-
- [ ] **5.0 Prereq** — `feature/dpql-editor` is merged to `develop` (and reqraft re-released) so `DpqlEditor`
|
|
375
|
-
(`src/components/dpqlEditor/`) is available. Until then this phase is blocked. *(Branch state at time of
|
|
376
|
-
writing: 29 commits ahead of `origin/develop`, local/unpushed, reqraft 0.10.0 local build.)*
|
|
377
|
-
- [ ] **5.1** Add an **expression render path** to the field renderer: when a field has
|
|
378
|
-
`supports_expressions` (and/or `default_view: 'expression'`), render `<DpqlEditor>` (with a toggle
|
|
379
|
-
between literal/template/expression) instead of the plain field. Hook it in at
|
|
380
|
-
`TemplateField` / `FormField` (`src/components/form/fields/`) so **both** classic and compact get it —
|
|
381
|
-
compact must change **nothing** (it calls the same `renderOption`).
|
|
382
|
-
- [ ] **5.2** Wire the schema's expression context through to `DpqlEditor` (`expressions`,
|
|
383
|
-
`expressions_url`, `server_expression_handling`, provider/record context); persist the value as the
|
|
384
|
-
`IQorusExpression` AST (`{ exp, args, type, is_expression }`) — `FormEngine` already tracks the
|
|
385
|
-
`is_expression` flag in `fixOptions`/`handleValueChange`.
|
|
386
|
-
- [ ] **5.3** Improve the **compact read row** for expression values: show a short rendering of the
|
|
387
|
-
expression (e.g. the DPQL text) instead of the generic "Expression" placeholder
|
|
388
|
-
(`formatOptionValue` in `readFirst.ts`).
|
|
389
|
-
- [ ] **5.4** Stories + `play` tests: an options schema with a `supports_expressions` field — author an
|
|
390
|
-
expression via the DPQL editor, assert the persisted `is_expression` value; one **compact** variant to
|
|
391
|
-
prove the read-first row + expand-to-edit works with expressions.
|
|
392
|
-
- [ ] **5.5** Docs: extend `design/FORM_ENGINE_COMPACT.md` (and the engine's expression docs) to cover the
|
|
393
|
-
expression/DPQL render.
|
|
394
|
-
|
|
395
|
-
---
|
|
396
|
-
|
|
397
|
-
## 7. Cross-repo sequencing & release
|
|
398
|
-
|
|
399
|
-
- Phase 1 lands in **`toolkit-react`** (published as `@qoretechnologies/reqraft`). The IDE can't consume it
|
|
400
|
-
until it's **released and the version is bumped** in `qorus-ide/package.json` (currently `reqraft ^0.8.11`).
|
|
401
|
-
- Therefore Phases 2 (parity spike) can run **in parallel** with Phase 1, but Phase 3 (the swap) is gated on
|
|
402
|
-
the reqraft release. Sequence: **1 + 2 in parallel → release/bump → 3 → 4 (anytime)**.
|
|
403
|
-
- We do **not** publish; the maintainer handles the reqraft release. We prepare the change and wait.
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## 8. Testing & verification strategy
|
|
408
|
-
|
|
409
|
-
**toolkit-react (Phase 1)**
|
|
410
|
-
- **Stories + `play`** in `FormEngine.stories.tsx` (`@storybook/test`: `expect/within/waitFor/userEvent/fireEvent/fn`), reusing `src/stories/Tests/utils`. Selectors follow the existing `.reqore-collection-item.system-option` convention.
|
|
411
|
-
- **jest** (`yarn test`) for any pure helpers (e.g. value-formatting) extracted.
|
|
412
|
-
- **`yarn precheck`** (= `lint` + `test` + `build:test:prod`) must pass; **`yarn test-storybook`** against a running Storybook (port 6008). Chromatic visual review is maintainer/CI-run — flag diffs.
|
|
413
|
-
- Tests assert **real** behaviour (read-first → click → edit → onChange → collapse); removing the read-first code must break them.
|
|
414
|
-
|
|
415
|
-
**qorus-ide (Phases 2–3)**
|
|
416
|
-
- Extend the existing creator stories (`Step.stories.tsx`, `Workflow.stories.tsx`) to drive the
|
|
417
|
-
options-backed compact creator (read-first rows, edit, submit, drafts, code editor).
|
|
418
|
-
- `yarn precheck`; Storybook test-runner; `yarn ai-docs:check` clean after doc regen.
|
|
419
|
-
|
|
420
|
-
**qorus server (Phase 4)**
|
|
421
|
-
- Extend the relevant `.qtest` (HTTP-driven only — no qorus-core linking), per `qorus-ide/CLAUDE.md`.
|
|
422
|
-
|
|
423
|
-
---
|
|
424
|
-
|
|
425
|
-
## 9. Open questions / risks
|
|
426
|
-
|
|
427
|
-
- **9a. `<Options>` vs upstream `FormEngine` convergence.** The IDE renders most options through its local
|
|
428
|
-
`systemOptions.tsx` fork, not upstream `FormEngine`. Phase 1 correctly builds `compact` upstream; Phase 3
|
|
429
|
-
must decide whether workflow/step render via **upstream `FormEngine`** (preferred — the actual goal) or the
|
|
430
|
-
local fork (which would then also need `compact`). Fully converging the two engines is **out of scope** —
|
|
431
|
-
track separately. Decided in Task 2.3.
|
|
432
|
-
- **9b. Grouping primitive — the one place Phase 1 could exceed reqraft.** `ReqoreCollection` already exposes
|
|
433
|
-
item `groups?: string[]` + collection `sortByGroupFirst?: boolean` (confirmed in the installed
|
|
434
|
-
`@qoretechnologies/reqore` dist types). Task 1.1 must confirm whether that renders **labeled group
|
|
435
|
-
sections/headers** (what read-first needs) or merely sorts grouped items together. Preferred outcome: keep
|
|
436
|
-
Phase 1 **100% in reqraft** by reusing those props or composing per-group Reqore panels inside `FormEngine`.
|
|
437
|
-
Only if a genuine new capability is required does a change land in the **separate `reqore` repo** (checked
|
|
438
|
-
out locally at `/Users/nick/Projects/qorus-frontend/reqore`) — an upstream contribution per
|
|
439
|
-
`REQORE_REQRAFT.md`, with its own release. That would be the *only* cross-repo spill in Phase 1.
|
|
440
|
-
- **9c. Parity surface.** Class connections, "Edit code" handoff, drafts, `reference` links (Task 2.2) are the
|
|
441
|
-
riskiest items — they're workflow/step-specific and not exercised by the modern options surfaces. Treat any
|
|
442
|
-
gap as a scoped follow-up, never a silent shortcut.
|
|
443
|
-
- **9d. `compact` naming.** Extend `compact` to mean read-first, or split `readFirst`/`mode` from a
|
|
444
|
-
density-only `compact`? Default: extend `compact` (matches the user's framing). Confirm before 1.2.
|
|
445
|
-
- **9e. `group` coverage.** Until Phase 4, some fields lack `group`; the engine needs the same sensible
|
|
446
|
-
fallback `RestyledFields` uses (required/preselected → "General", else "Optional fields").
|
|
447
|
-
|
|
448
|
-
---
|
|
449
|
-
|
|
450
|
-
## 10. Definition of done
|
|
451
|
-
|
|
452
|
-
- `FormEngine` `compact` mode renders the read-first look from an options schema, with stories + passing
|
|
453
|
-
`play`/jest tests and green `precheck` + Storybook test-runner (toolkit-react).
|
|
454
|
-
- Workflow/step creator renders via options + `FormEngine` `compact`, at parity with today (drafts, code
|
|
455
|
-
editor, class connections, submit), with a thin IDE wrapper for hero/chips.
|
|
456
|
-
- `RestyledFields` and the IField read-first scaffolding are removed; no dead code, no duplicated logic.
|
|
457
|
-
- Docs + `AI-DOCS` updated across both FE repos; `ai-docs:check` clean.
|
|
458
|
-
- (Incremental) server `group` completeness issue filed/landed.
|
|
459
|
-
- Nothing committed or pushed without explicit user approval.
|
|
460
|
-
|
|
461
|
-
---
|
|
462
|
-
|
|
463
|
-
## 11. Key file map (reference)
|
|
464
|
-
|
|
465
|
-
**toolkit-react** — `src/components/form/engine/FormEngine.tsx` (engine; `compact` at :296/:316/1029–1036;
|
|
466
|
-
item `content` at :1218–1239), `…/FormEngine.stories.tsx`, `src/components/form/fields/template/TemplateField.tsx`,
|
|
467
|
-
`src/components/FocusedEditing.tsx`, `src/stories/Tests/utils`, `design/` (new compact doc).
|
|
468
|
-
|
|
469
|
-
**qorus-ide** — `src/components/Field/systemOptions.tsx` (`<Options>` twin), `src/hooks/useInterfaceFields.tsx`
|
|
470
|
-
+ `useInterfaceEditor.tsx`, `src/containers/InterfaceCreator/panel.tsx`, `…/workflowsView.tsx`,
|
|
471
|
-
`…/restyled/RestyledFields.tsx` + `descriptors.ts`, `src/components/FieldWrapper/index.tsx` (`IField`,
|
|
472
|
-
`IRestyledDescriptor`), `design/{RESTYLED_CREATOR,SYSTEM_OPTIONS,connection-options-api,REQORE_REQRAFT,SHARED_COMPONENTS}.md`.
|
|
473
|
-
|
|
474
|
-
**qorus (server)** — `Classes/QorusMapManager.qc` (`FieldInfo`/`MetaFieldInfo`, `group`,
|
|
475
|
-
`getUiFields`/`convertDataToUiOptionsFormat`), `Classes/{WorkflowMetadata,StepMetadata}.qc`,
|
|
476
|
-
`Classes/QorusCreatorWebSocketHandler.qc` (`creator-get-fields-as-options`), `design/connection-options-api`-equivalent
|
|
477
|
-
flow, qorus issue #259.
|
|
478
|
-
|
|
479
|
-
---
|
|
480
|
-
|
|
481
|
-
## Info-display variant evaluation (archived 2026-06-11)
|
|
482
|
-
|
|
483
|
-
This is the pre-decision analysis that drove the info-display pick. `stripe-expand`
|
|
484
|
-
(variant C below) was chosen; the other three and the temporary `compactInfoDisplay`
|
|
485
|
-
prop were deleted. Kept here as the decision record (moved out of
|
|
486
|
-
design/COMPACT_INFO_DISPLAY.md, which now documents only the shipped display).
|
|
487
|
-
|
|
488
|
-
## 5. Proposed variants (to build behind `compactInfoDisplay` after sign-off)
|
|
489
|
-
|
|
490
|
-
All variants keep: `?` → dialog for Tier 3, tap (not hover) for any popover, and the existing
|
|
491
|
-
`Required` tag. They differ in how Tier 1 + Tier 2 render.
|
|
492
|
-
|
|
493
|
-
### A — `subtitle-inline` (product-convention baseline)
|
|
494
|
-
- `short_desc` = muted line under the label (the RestyledFields pattern; truncated to 1 line,
|
|
495
|
-
tap label area to un-truncate).
|
|
496
|
-
- Tier-1 messages = slim `ReqoreMessage` strips **always visible** directly under the row.
|
|
497
|
-
- Tier-2 messages/info = collapsed behind a small count badge on the row (`2 ⓘ`, tap-popover).
|
|
498
|
-
- Cost: +1 text line per described field, +1 strip per critical message. Most literal, most
|
|
499
|
-
vertical growth.
|
|
500
|
-
|
|
501
|
-
### B — `icon-cluster` (minimal rows)
|
|
502
|
-
- Rows stay one line. Right-side cluster: ⓘ (tap-popover with short_desc + default note) and an
|
|
503
|
-
intent-coloured badge with count for messages (tap-popover with the full strips).
|
|
504
|
-
- Cheapest vertically; **known risk:** fails criterion 4 for Tier 1 (badge-only critical info,
|
|
505
|
-
flagged by research as easy to miss) unless paired with row tinting — kept as the
|
|
506
|
-
control/contrast variant.
|
|
507
|
-
|
|
508
|
-
### C — `stripe-expand` (severity edge + disclosure)
|
|
509
|
-
- 2–3 px **intent stripe** on the row's left edge (worst intent wins) — zero vertical cost,
|
|
510
|
-
glanceable severity; danger/warning also tint the row background slightly.
|
|
511
|
-
- An info affordance expands an in-row details area (`ReqraftCollapsibleContent`) holding
|
|
512
|
-
short_desc, messages, default note; **auto-expanded when Tier 1 exists**.
|
|
513
|
-
- Middle ground: quiet until something matters, one tap for everything else.
|
|
514
|
-
|
|
515
|
-
### D — `adaptive` (tier-driven hybrid — expected recommendation)
|
|
516
|
-
- Tier 1 → always-visible slim strips under the row (as A) **plus** the intent stripe (as C).
|
|
517
|
-
- `short_desc` → muted subtitle line, only when present (as A).
|
|
518
|
-
- Tier 2 → count badge + tap-popover (as B).
|
|
519
|
-
- Narrow viewports: subtitle wraps, strips go full-width, badges grow to 40 px touch targets.
|
|
520
|
-
- Combines what each tier actually needs; slightly more rules to implement.
|
|
521
|
-
|
|
522
|
-
## 6. Story / comparison plan
|
|
523
|
-
|
|
524
|
-
- Temporary prop `compactInfoDisplay: 'subtitle-inline' | 'icon-cluster' | 'stripe-expand' | 'adaptive'`
|
|
525
|
-
on `FormEngine` (default = current behaviour until the pick).
|
|
526
|
-
- One story per variant on the **Basic fixture** + story-level additions to stress the tiers: a
|
|
527
|
-
field with two messages (warning + info), a long `short_desc`, a markdown `desc`, an unmet
|
|
528
|
-
dependency, and a required-group pair.
|
|
529
|
-
- Each variant also rendered in a **narrow-viewport story** (mobile is pass/fail, not a follow-up).
|
|
530
|
-
- After the pick: losing branches and the prop are deleted (single renderer, like the hash view).
|
|
531
|
-
|
|
532
|
-
## 6b. Variant comparison at a glance
|
|
533
|
-
|
|
534
|
-
| | A · Subtitle Inline | B · Icon Cluster | C · Stripe Expand | D · Adaptive |
|
|
535
|
-
|---|---|---|---|---|
|
|
536
|
-
| **short_desc** | muted subtitle under the label (truncated, tap to expand) | inside the badge tap-popover | inside the expandable panel | subtitle under the label (as A) |
|
|
537
|
-
| **Tier 1 (danger/warning, deps)** | strips always visible under the row | behind the intent-coloured count badge (tap) | intent edge-stripe + panel **auto-opens** | strips always visible **+** edge-stripe |
|
|
538
|
-
| **Tier 2 (info/success, default notes)** | `ⓘ n` badge → tap-popover | same badge as Tier 1 | inside the panel (after Tier 1) | `ⓘ n` badge → tap-popover |
|
|
539
|
-
| **Row height (nothing to say)** | 1 line | 1 line | 1 line | 1 line |
|
|
540
|
-
| **Row height (described field)** | 2 lines (subtitle) | 1 line | 1 line (+stripe) | 2 lines |
|
|
541
|
-
| **Vertical cost of a warning** | +1 strip | none (hidden) | +panel (auto-open) | +1 strip |
|
|
542
|
-
| **Taps to read critical info** | **0** | **1** ⚠ fails criterion 4 | **0** (auto-open) | **0** |
|
|
543
|
-
| **Taps to read short_desc** | 0 (truncated) / 1 (full) | 1 | 1 | 0 / 1 |
|
|
544
|
-
| **Crowding risk** | highest (every described row grows; strips stack) | lowest | medium (auto-open panels can stack) | medium-high |
|
|
545
|
-
| **Mobile (360 px)** | strips go full-width, wrap | cleanest fit | stripes + panels fit | as A + stripes |
|
|
546
|
-
| **Story** | `SubtitleInline` (+`MobileSubtitleInline`) | `IconCluster` (+`MobileIconCluster`) | `StripeExpand` (+`MobileStripeExpand`) | `Adaptive` (+`MobileAdaptive`) |
|
|
547
|
-
|
|
548
|
-
All variants share: tap (never hover) for popovers, the `?` → markdown dialog for Tier 3, the
|
|
549
|
-
`Required` tag, field chrome (icon/image/intent), and the height-stable inline editing (the
|
|
550
|
-
editing row pins to the read row's measured height).
|
|
551
|
-
|
|
552
|
-
## 7. Decision checklist for the review
|
|
553
|
-
|
|
554
|
-
- [ ] Tier classification agreed (esp.: are info/success messages allowed to hide behind a badge?)
|
|
555
|
-
- [ ] Variant picked (or hybrid adjustments)
|
|
556
|
-
- [ ] short_desc truncation rule (1 line + tap vs always wrap)
|
|
557
|
-
- [ ] Does the picked variant change the **editor card/inline editor** too, or read rows only?
|
|
558
|
-
- [ ] Mobile behaviour approved on the narrow-viewport stories
|