@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,197 +0,0 @@
|
|
|
1
|
-
# Form engine — expression support
|
|
2
|
-
|
|
3
|
-
Design: [`design/FORM_ENGINE_EXPRESSIONS.md`](../design/FORM_ENGINE_EXPRESSIONS.md).
|
|
4
|
-
Adds expression values to the form engine — visual builder (ported) +
|
|
5
|
-
DPQL text editor (existing), one AST, plus an Explain button.
|
|
6
|
-
|
|
7
|
-
**Status:** all 5 phases DONE pending user verify — implemented 2026-06-09/10,
|
|
8
|
-
uncommitted. Foundation → TemplateField toggle + shell → DPQL text mode →
|
|
9
|
-
visual ExpressionBuilder → expression validation. jest 267/267, ~14 new
|
|
10
|
-
expression play tests pass, prod typecheck + eslint clean. One open item:
|
|
11
|
-
the Explain transport (server `render-expression` exposure) — held behind
|
|
12
|
-
`useRenderExpression` (interim client-side render works today). Builds on the
|
|
13
|
-
also-uncommitted field-migration batch.
|
|
14
|
-
|
|
15
|
-
**Server contract:** verified live (see design doc table + memory
|
|
16
|
-
"Qorus expression/DPQL contract"). Explain transport is the one open
|
|
17
|
-
server decision — held behind `useRenderExpression`, does not block.
|
|
18
|
-
|
|
19
|
-
## Surface area
|
|
20
|
-
|
|
21
|
-
| Path | Change |
|
|
22
|
-
|---|---|
|
|
23
|
-
| `src/components/form/expressions/types.ts` | **new** — `IExpression`, `IExpressionSchema`, arg types |
|
|
24
|
-
| `src/components/form/expressions/useExpressions.ts` | **new** — catalogue fetch (`/system?action=expressions` + `expressions_url`) |
|
|
25
|
-
| `src/components/form/expressions/useRenderExpression.ts` | **new** — Explain seam |
|
|
26
|
-
| `src/components/form/expressions/ExpressionField.tsx` | **new** — Visual⇄Text shell + Explain |
|
|
27
|
-
| `src/components/form/expressions/ExpressionBuilder.tsx` (+ argument/group/modal files) | **new** — ported visual tree |
|
|
28
|
-
| `src/components/form/expressions/*.stories.tsx` | **new** — mock catalogue + mock LSP |
|
|
29
|
-
| `src/components/form/fields/template/TemplateField.tsx` | edit — "Use Expression" toggle → render `ExpressionField` |
|
|
30
|
-
| `src/components/form/engine/FormEngine.tsx` / `fields/Field.tsx` | edit — thread `is_expression` value plumbing |
|
|
31
|
-
| `src/components/form/index.tsx` | edit — exports |
|
|
32
|
-
|
|
33
|
-
## Phases (each ends at a STOP — user verifies before commit)
|
|
34
|
-
|
|
35
|
-
### Phase 0 — Foundation (unblocked) — DONE pending verify (2026-06-09)
|
|
36
|
-
- [x] `types.ts` (`IExpression`, `IExpressionValue`, `IExpressionSchema`,
|
|
37
|
-
`IExpressionSchemaArg`, `ExpressionDefaultValue`)
|
|
38
|
-
- [x] `useExpressions` — `useFetch('system?action=expressions&context=ui')`,
|
|
39
|
-
`expressionsUrl` merge (marks `from_server`/`from_both`), `override`/
|
|
40
|
-
`errorOverride` seams, cached
|
|
41
|
-
- [x] `useRenderExpression` seam — `render(value, expressions) => Promise<string>`.
|
|
42
|
-
**Interim impl is client-side** (`renderExpressionToText` walks the AST
|
|
43
|
-
using the catalogue: infix for operators, join for `&&`/`||`, function
|
|
44
|
-
form otherwise) — decoupled, no session needed; swaps to server
|
|
45
|
-
`render-expression` in one place. (Design said `dpql/serialize`; chose
|
|
46
|
-
client-side as it's session-free and gives a real string today.)
|
|
47
|
-
- [x] `mockExpressions.ts` fixture (real `==` / `&&` / `contains` entries)
|
|
48
|
-
- [x] `Foundation.stories.tsx` — catalogue count/names + rendered AST;
|
|
49
|
-
play test passes; verified visually
|
|
50
|
-
- [x] prod typecheck + base typecheck clean
|
|
51
|
-
|
|
52
|
-
### Phase 1 — TemplateField expression mode + `ExpressionField` shell — DONE pending verify
|
|
53
|
-
- [x] `TemplateField`: "Use Expression" / "Use value" controls in the More
|
|
54
|
-
menu, gated on `supports_expressions`; seeds `{ args: [] }`
|
|
55
|
-
- [x] When `isExpression`, render `ExpressionField` (main + disabled branches)
|
|
56
|
-
- [x] `ExpressionField` shell: holds the AST, **Visual ⇄ Text toggle**
|
|
57
|
-
(placeholders for now), Explain button (`useRenderExpression`), live
|
|
58
|
-
preview of the current expression
|
|
59
|
-
- [x] Value plumbing: `FormEngine.handleValueChange` detects an
|
|
60
|
-
`is_expression` value and stores the canonical sibling shape
|
|
61
|
-
`{ type, value:<AST>, is_expression:true }`; passes `is_expression`
|
|
62
|
-
down to `TemplateField`
|
|
63
|
-
- [x] Stories: `Default`, `Empty`, `ViaFormEngine` (round-trip),
|
|
64
|
-
`ToggleInFormEngine` (verified live: bool field → Use Expression →
|
|
65
|
-
editor; → Use value → back). Barrel exports added.
|
|
66
|
-
- [x] Regression: jest 267/267, form play tests pass (only pre-existing
|
|
67
|
-
`OnValidityChange` fails)
|
|
68
|
-
- Note: expression-aware **validation** deferred to Phase 4 (an empty
|
|
69
|
-
expression currently shows the base-type validation error).
|
|
70
|
-
|
|
71
|
-
### Phase 2 — Text mode (DPQL) — DONE pending verify
|
|
72
|
-
- [x] `ExpressionField` Text mode renders `DpqlEditor` (via its ref for
|
|
73
|
-
parse/serialize)
|
|
74
|
-
- [x] Boundary glue: parse-on-edit (debounced 300ms) `text→AST`;
|
|
75
|
-
serialize-on-enter `AST→text`; flush-parse on switch-to-Visual
|
|
76
|
-
- [x] DPQL-context: optional `provider`/`recordType` passed through when
|
|
77
|
-
supplied; parse/serialize work without a provider (only `@field`
|
|
78
|
-
completions are reduced) — matches the design's worst-case note
|
|
79
|
-
- [x] `dpqlMockLsp.ts` — compact mock-socket LSP (initialize / parse /
|
|
80
|
-
serialize / validate / completion); `dpql/parse` echoes the typed
|
|
81
|
-
text into an `==` AST for deterministic verification
|
|
82
|
-
- [x] Story `TextMode` — types DPQL → parse → the Parsed preview reflects
|
|
83
|
-
it (verified in real chromium). 5/5 ExpressionField play tests pass.
|
|
84
|
-
- Note: serialize-on-enter is best-effort if the LSP session isn't ready
|
|
85
|
-
yet; matters mainly when coming from a Visual-built expression
|
|
86
|
-
(Phase 3).
|
|
87
|
-
|
|
88
|
-
### Phase 3 — Visual ExpressionBuilder — DONE pending verify (core)
|
|
89
|
-
- [x] `ExpressionBuilder.tsx` — recursive tree: function `Select` (filtered
|
|
90
|
-
by return type), operands, AND/OR groups, add/remove condition,
|
|
91
|
-
recursion via `level`/`nested`
|
|
92
|
-
- [x] **Operands render through `TemplateField`** (→ literal / template /
|
|
93
|
-
nested expression via the Phase 1 toggle) and `AutoFormField` for
|
|
94
|
-
`any`-typed operands. No re-port of qorus-ide's operand stack.
|
|
95
|
-
- [x] `returnType` filters the function list; nested-expression ↔ value
|
|
96
|
-
conversion (the operand "fx"/Use-Expression toggle + "use value")
|
|
97
|
-
- [x] Stories: `Default` (`==` + operands), `Empty`, `Group` (`&&` tree +
|
|
98
|
-
Add condition), `ReadOnly`. 4/4 play tests pass; verified visually
|
|
99
|
-
(nested AND tree with per-operand type pickers).
|
|
100
|
-
- [x] Regression: jest 267/267, form play tests pass (only pre-existing
|
|
101
|
-
`OnValidityChange`)
|
|
102
|
-
- **Deferred to a polish pass** (documented): wrap/unwrap, the
|
|
103
|
-
`types_mismatch` confirm modal + full type-compat filtering, varargs
|
|
104
|
-
"add argument" for non-group expressions, fullscreen/focused editing,
|
|
105
|
-
AI-assist button. The core build/edit/group/recurse flow is complete.
|
|
106
|
-
|
|
107
|
-
### Phase 3b — visual polish to match qorus-ide — DONE pending verify (2026-06-10)
|
|
108
|
-
- [x] Bumped ReQore **0.68.3 → 0.68.5** (matches the IDE; devDep + peer
|
|
109
|
-
range). Full suite still green (188/189, jest 267).
|
|
110
|
-
- [x] Rebuilt `ExpressionBuilder` to mirror qorus-ide's layout: each
|
|
111
|
-
expression is a dashed-border **card** titled by the function picker
|
|
112
|
-
(`Σ` chip); operands laid **horizontally** (label on top, field below;
|
|
113
|
-
`fluid` cards + 220px leaf width so they sit in a row and wrap
|
|
114
|
-
responsively); tiny-uppercase `LABEL * [type]` labels; **AND/OR
|
|
115
|
-
convert** buttons (`.expression-and`/`.expression-or`); `&&`/`||` as
|
|
116
|
-
group cards (`IF group`/`AND group`/`OR group`, `.expression-group`)
|
|
117
|
-
with AND/OR separators + Add condition + per-condition remove; per-
|
|
118
|
-
level `main:darken:${level}` tint. Picker always keeps the selected
|
|
119
|
-
expression even when its return type doesn't match the filter.
|
|
120
|
-
- [x] Stories rewritten to mirror foxhoundn's IDE stories using the
|
|
121
|
-
**`.expression` count** convention + the `.expression-and/or`
|
|
122
|
-
interaction (1→2→3). 11/11 play tests pass; verified visually vs `:6009`.
|
|
123
|
-
- [x] **Live story** (`ExpressionField › Live`, `tags: ['!test']`,
|
|
124
|
-
`parameters: { live: true }`) — fetches the REAL catalogue (no
|
|
125
|
-
`expressions` override), mirroring the DpqlEditor live stories.
|
|
126
|
-
`.storybook/preview.tsx` instance is now env-configurable
|
|
127
|
-
(`REACT_APP_QORUS_INSTANCE` || hq default). Full suite **189/189**
|
|
128
|
-
(Live excluded from the offline runner; defaults to hq when env unset).
|
|
129
|
-
- Verification gap (honest): could NOT render-verify the Live story against
|
|
130
|
-
real data — `localhost:8012` returns the catalogue to curl but sends no
|
|
131
|
-
CORS header for the storybook origin (browser blocks the fetch), and I
|
|
132
|
-
have no `hq:8092` token. The data path is proven via curl (121
|
|
133
|
-
expressions) and the wiring mirrors the working DpqlEditor live pattern;
|
|
134
|
-
the user verifies by running storybook with their token/instance.
|
|
135
|
-
|
|
136
|
-
### Phase 3c — faithful mock + offline parity with the IDE — DONE (2026-06-10)
|
|
137
|
-
- [x] **Rewrote `mockExpressions`** as a faithful subset of the LIVE catalogue
|
|
138
|
-
(captured via curl): `==`, `<`, `>=`, `&&`, `||`, `contains`,
|
|
139
|
-
`starts-with`, `ends-with` with the REAL arg types (`richtext` strings,
|
|
140
|
-
`any` comparators), `label_after` operator words ("contains", "starts
|
|
141
|
-
with", "=="), and the Ignore Case bool. This is why the offline stories
|
|
142
|
-
were looking worse — the old 3-entry mock used `any` for `==` (→ bulky
|
|
143
|
-
type-pickers) and omitted operator words.
|
|
144
|
-
- [x] **`WithComplexValue` now uses qorus-ide's EXACT value** (`&&[ ||[contains,
|
|
145
|
-
&&[starts-with, starts-with], >=], ends-with, < ]`) → 6 expression cards
|
|
146
|
-
across 3 groups; was a flat 2-card `&&`.
|
|
147
|
-
- [x] **Delete is now a card action** (`onRemove` prop → `expression-group-remove`)
|
|
148
|
-
instead of a sibling button. The sibling stole flex width and forced
|
|
149
|
-
operands to wrap vertically; as a card action the cards fill width and
|
|
150
|
-
operands lay out **horizontally** — matching the IDE.
|
|
151
|
-
- [x] Verified side-by-side vs `:6009` at the same viewport: nesting, function
|
|
152
|
-
chips, horizontal operands, operator words, group containers all match.
|
|
153
|
-
12/12 expression play tests; full suite 188/189 (pre-existing flaky only).
|
|
154
|
-
|
|
155
|
-
### Phase 3d — operand layout: flex-fill (the real refinement) — DONE (2026-06-10)
|
|
156
|
-
- [x] Root cause of "old / crooked / unaligned": operands sat in **fixed
|
|
157
|
-
220px boxes**, left-bunched with dead gaps, fields `fluid={false}`.
|
|
158
|
-
Compared at full width (`:6007`) the IDE spreads operands across the
|
|
159
|
-
whole row.
|
|
160
|
-
- [x] Reworked: flattened the operand row (label_before / column / label_after
|
|
161
|
-
as flat siblings), each operand column `flex: 1 1 200px` (nested
|
|
162
|
-
expressions `1 1 100%`), field now `fluid` (fills its column). Result:
|
|
163
|
-
operands fill the row evenly with roomy fields, operator words centered
|
|
164
|
-
in the gap — matches the IDE's refinement. eslint clean, 12/12 play
|
|
165
|
-
tests, full suite 188/189.
|
|
166
|
-
|
|
167
|
-
### Phase 4 — Explain + validation + polish — DONE pending verify
|
|
168
|
-
- [x] Explain panel renders `useRenderExpression` output (done since Phase 1;
|
|
169
|
-
works in Visual + Text modes)
|
|
170
|
-
- [x] **Expression-aware validation** — `_validateField` short-circuits on
|
|
171
|
-
`field.isFunction`: an expression with a chosen `exp` is valid; an
|
|
172
|
-
empty one reports "Expression operation is required". FormEngine passes
|
|
173
|
-
`isFunction` from the field value's `is_expression`. Verified live (the
|
|
174
|
-
FormEngine invalid banner clears for a valid expression) + a story guard.
|
|
175
|
-
- [x] Full pass: prod typecheck, eslint, jest 267/267, form play tests pass
|
|
176
|
-
(only pre-existing `OnValidityChange`)
|
|
177
|
-
- [ ] When the server transport lands, swap `useRenderExpression` impl
|
|
178
|
-
(one file) — awaiting the meeting decision
|
|
179
|
-
- Deferred (optional): fullscreen/focused-editing affordance
|
|
180
|
-
|
|
181
|
-
### Checks (final)
|
|
182
|
-
- [x] Typecheck, lint, jest, storybook play tests pass
|
|
183
|
-
- [ ] **STOP — user verifies in browser** before commit
|
|
184
|
-
|
|
185
|
-
## Open decisions
|
|
186
|
-
|
|
187
|
-
- **Explain transport** — REST `?action=render-expression` vs LSP
|
|
188
|
-
`dpql/explain` vs interim approximation. Server ask in
|
|
189
|
-
`/tmp/render-expression-exposure.md`; user raising it at the
|
|
190
|
-
2026-06-10 meeting. Until then: interim seam impl.
|
|
191
|
-
- **DPQL text-mode context** (Phase 2) — how to bind a generic field
|
|
192
|
-
expression's "fields" when there's no data provider.
|
|
193
|
-
|
|
194
|
-
## Out of scope
|
|
195
|
-
|
|
196
|
-
- `server_expression_handling` filtering nuances; AI-assist button;
|
|
197
|
-
wiring concrete consumers (alert-rule editor is qorus-ide-side).
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# TASK — FormEngine ↔ IDE Options sync (fetch layer)
|
|
2
|
-
|
|
3
|
-
**Status:** Phases 1+2+3 DONE pending user verify (uncommitted) — 6/6 new play tests. Follows the verbatim-port method
|
|
4
|
-
(`design/EXPRESSION_BUILDER_REPORT_STRATEGY.md`); audit findings below.
|
|
5
|
-
|
|
6
|
-
## Research summary (2026-06-10)
|
|
7
|
-
|
|
8
|
-
FormEngine was extracted from the IDE's `Options` (`systemOptions.tsx`) on
|
|
9
|
-
**2026-03-18**; both evolved independently since (8 IDE commits). Full diff
|
|
10
|
-
audit found the drift is small — loop fixes, help text, dependencies,
|
|
11
|
-
operators UI, required groups all present on both sides; helpers materially
|
|
12
|
-
identical. The REAL gaps:
|
|
13
|
-
|
|
14
|
-
- **IDE-only:** the remote-fetch layer — `url`/`customUrl` (options schema
|
|
15
|
-
from `/options/{url}` or a custom endpoint), `onOptionsLoaded` (declared in
|
|
16
|
-
FormEngine but never called), `operatorsUrl` (operator schema; without it
|
|
17
|
-
FormEngine's operators UI is dead code — `operators` state is hardcoded
|
|
18
|
-
`undefined` with no setter). Plus a two-line `stretch` layout for
|
|
19
|
-
`tool-catalog` options (commit 8e6b7781 — the "external data support" in
|
|
20
|
-
that commit message was ApiKeys/OAuth2 views, NOT Options).
|
|
21
|
-
- **reqraft-only (IDE behind us):** detailed `onValidityChange` payload,
|
|
22
|
-
any/auto type preservation, expression value unwrapping.
|
|
23
|
-
- **Tests:** the IDE has **zero** coverage for the fetch features (all 30
|
|
24
|
-
Options stories pass fixture schemas as props) — so there is nothing to
|
|
25
|
-
copy; we write new coverage with a `window.fetch` mock (the dpqlMockLsp
|
|
26
|
-
pattern).
|
|
27
|
-
|
|
28
|
-
## Decisions
|
|
29
|
-
|
|
30
|
-
- Port the fetch trio verbatim-adapted: IDE `fetchData` → reqraft `query()`
|
|
31
|
-
(same `{data, ok, error}` response shape; reqraft prepends
|
|
32
|
-
`${instance}api/latest/` like the IDE's `${apiHost}api/latest/`).
|
|
33
|
-
Normalise the IDE's leading-slash URLs (avoid `api/latest//options/...`).
|
|
34
|
-
- Port the IDE's loading-skeleton branch + the `stretch`/`STRECHABLE_TYPES`
|
|
35
|
-
two-liner.
|
|
36
|
-
- **Skip `allowAi`** — IDE-only AI infra; seam pattern exists (expression
|
|
37
|
-
builder's `extraActions`) if ever needed.
|
|
38
|
-
- **Skip `interfaceContext`** — only meaningful through the IDE's template
|
|
39
|
-
fetching, which reqraft's `useTemplates` deliberately stubs.
|
|
40
|
-
|
|
41
|
-
## Phases
|
|
42
|
-
|
|
43
|
-
### Phase 1 — fetch layer in FormEngine — DONE (2026-06-10)
|
|
44
|
-
- [x] Props: `url`, `customUrl`, `operatorsUrl`; `onOptionsLoaded` now fires
|
|
45
|
-
(was declared-but-dead since extraction)
|
|
46
|
-
- [x] Mount fetch (seeds `fixOptions(value, schema)`), refetch-on-change
|
|
47
|
-
(clears value, seeds `fixOptions({}, schema)`) — IDE semantics verbatim
|
|
48
|
-
(`query()` in place of the IDE's `fetchData`; same response shape)
|
|
49
|
-
- [x] Operators fetch (own state — `setOperators` finally exists; the loading
|
|
50
|
-
gate waits for BOTH schemas when both urls are set, per the IDE)
|
|
51
|
-
- [x] Skeleton branch extended with the remote gates; `stretch` +
|
|
52
|
-
`STRECHABLE_TYPES` (tool-catalog) ported
|
|
53
|
-
- [x] GATE: prod typecheck + eslint clean, jest 267/267
|
|
54
|
-
|
|
55
|
-
### Phase 2 — tests (new coverage; the IDE has none) — DONE (2026-06-10)
|
|
56
|
-
- [x] `mockFetchRoutes` helper in `FormEngineRemote.stories.tsx` — patches
|
|
57
|
-
`window.fetch`, serves matching routes, passes the rest through;
|
|
58
|
-
distinct URLs per story (the `query()` GET cache is 5 min)
|
|
59
|
-
- [x] Stories (4): `SchemaFromUrl` (3 options render, preselected default
|
|
60
|
-
seeded, `onOptionsLoaded` called with the schema), `OperatorsFromUrl`
|
|
61
|
-
(operator select resolves `Like` + the WHERE/IS tags — the previously
|
|
62
|
-
DEAD operators UI working end-to-end, verified by screenshot),
|
|
63
|
-
`FetchFailure` (500 → "No options available", no crash),
|
|
64
|
-
`UrlChangeResetsValue` (url switch clears the old value, new schema
|
|
65
|
-
seeds)
|
|
66
|
-
- [x] GATE: **4/4 play tests** (repeatedly, incl. after a flake-hardening
|
|
67
|
-
timeout bump); jest 267/267; FormEngine.stories 24/24 isolated;
|
|
68
|
-
useWebSocket 15/15, Object 11/11 isolated.
|
|
69
|
-
### Phase 3 — seam parity ("item 5") — DONE (2026-06-10)
|
|
70
|
-
- [x] `SelectFormField` now **rest-spreads** caller props into all four render
|
|
71
|
-
branches (IDE parity; computed `flat`/`intent`/`size`/handlers stay
|
|
72
|
-
authoritative by coming after the spread) — closes the
|
|
73
|
-
"every pass-through prop needs hand-forwarding" seam for good.
|
|
74
|
-
- [x] **`optionActions`** on FormEngine — per-option injected hover actions
|
|
75
|
-
(array or factory receiving `{name, schema, value}`), prepended where
|
|
76
|
-
the IDE renders its `allowAi` AiAssistanceAction. Same pattern as the
|
|
77
|
-
builder's `extraActions`; reqraft stays AI-free.
|
|
78
|
-
- [x] **`useTemplates` opt-in fetching** — ported the IDE's
|
|
79
|
-
`system/getContextData` fetch + `buildTemplates` (FSM `states` param
|
|
80
|
-
seamed out; structural payload types), gated on a NEW explicit
|
|
81
|
-
`interfaceContext` (FormEngine prop, threaded through). Without a
|
|
82
|
-
context: the original stub behavior, byte-for-byte — no existing
|
|
83
|
-
consumer starts fetching.
|
|
84
|
-
- [x] Coverage: `InjectedOptionActions` (hover → injected action) and
|
|
85
|
-
`TemplatesFromContext` (context fetch hit + loading gate) stories.
|
|
86
|
-
**6/6** FormEngineRemote, **17/17** expressions, 23/24 FormEngine
|
|
87
|
-
(the 1 = pre-existing `OnValidityChange` flake), jest 267/267,
|
|
88
|
-
typecheck + eslint clean.
|
|
89
|
-
|
|
90
|
-
- Verification caveat (environment, not code): full-suite runs tonight flap
|
|
91
|
-
on LIVE-hq stories (CurrentUser, Log/WS) — same suites pass and fail
|
|
92
|
-
across runs with zero code delta (CurrentUser failed 2/2 then passed
|
|
93
|
-
2/2 a minute later), and the same full suite was green 194/194 earlier
|
|
94
|
-
today. hq intermittency + dev-server wear; re-run the full suite on a
|
|
95
|
-
fresh server when hq is stable for the final pre-commit pass.
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# Form field extras — bucket-1 portable fields
|
|
2
|
-
|
|
3
|
-
Follow-on to the field migration (see
|
|
4
|
-
[`design/FORM_ENGINE_FIELD_MIGRATION.md`](../design/FORM_ENGINE_FIELD_MIGRATION.md)).
|
|
5
|
-
Picks off the **cleanly portable** bucket-1 fields one at a time, and
|
|
6
|
-
records an evidence-based triage of the ones that are *not* a quick port
|
|
7
|
-
(so "deferred" stays honest, not vague).
|
|
8
|
-
|
|
9
|
-
**Status:** `byte-size`, `url`, `multi-select`/`select-array` done pending
|
|
10
|
-
user verify — uncommitted, 2026-06-09. 3 new Field stories pass
|
|
11
|
-
(`test-storybook`), jest 267/267, prod typecheck + eslint clean. The rest
|
|
12
|
-
remain triaged below.
|
|
13
|
-
|
|
14
|
-
## Done this pass
|
|
15
|
-
|
|
16
|
-
| Type | What | How |
|
|
17
|
-
|---|---|---|
|
|
18
|
-
| `byte-size` | **new** `byte-size/ByteSize.tsx` | amount `NumberFormField` + unit `SelectFormField` (KiB/MiB/GiB/TiB); value is the combined `"512MiB"` string. `splitByteSize` reimplemented (3 lines). No app deps. |
|
|
19
|
-
| `url` | **new** `url/Url.tsx` | thin `ReqoreInput type="url"` + `new URL()` validity hint. Built fresh — qorus-ide's `URLField` imports `context/init` (app-coupled); a URL field doesn't need it. |
|
|
20
|
-
| `multi-select` / `select-array` | wired existing `MultiSelectFormField` | reqraft already had the component; added a `renderField` branch **before** the single-value `allowed_values` short-circuit (multi-select owns its options + is always an array), and a `renderAllowedValues` guard so the picker isn't doubled. |
|
|
21
|
-
|
|
22
|
-
> **Superseded 2026-06-10 (FIELD_STACK_REPORT phase 3):** the `url` and
|
|
23
|
-
> `byte-size` rows above describe the original from-scratch versions — both
|
|
24
|
-
> were replaced by verbatim IDE ports (url: protocol select + `://` + address;
|
|
25
|
-
> byte-size: KiB/MiB only). Descriptions kept for history; see
|
|
26
|
-
> FIELD_STACK_REPORT for the current implementations.
|
|
27
|
-
|
|
28
|
-
Surface area: `src/components/form/fields/byte-size/ByteSize.tsx` (new),
|
|
29
|
-
`src/components/form/fields/url/Url.tsx` (new),
|
|
30
|
-
`src/components/form/fields/Field.tsx` (3 cases + multi-select branch +
|
|
31
|
-
allowed-values guard + 2 imports), `src/components/form/index.tsx`
|
|
32
|
-
(exports), `src/components/form/fields/Field.stories.tsx` (`ByteSize`,
|
|
33
|
-
`Url`, `MultiSelect` stories).
|
|
34
|
-
|
|
35
|
-
## Triage of the remaining bucket-1 / bucket-2 fields
|
|
36
|
-
|
|
37
|
-
Evidence is the qorus-ide source's size + its outside-`Field/` imports
|
|
38
|
-
(the portability tell — app context can't come to the toolkit).
|
|
39
|
-
|
|
40
|
-
| Type | qorus-ide source | Blocker / verdict |
|
|
41
|
-
|---|---|---|
|
|
42
|
-
| `option_hash` | `optionHash.tsx` (129) | imports `../../App`, `context/init`, `withTextContext` — **app-coupled**; needs a rewrite, not a port. |
|
|
43
|
-
| `array-of-pairs` | `multiPair.tsx` (207) | imports `../../App`, `withTextContext` — app-coupled; moderate rewrite. |
|
|
44
|
-
| `enum`-as-radio | `radioField.tsx` (127) | imports `../../App`, two HOCs, **image assets**. Reqraft already has `RadioGroup`; `enum` currently routes to `Select`. Switching is a UX decision, low value. |
|
|
45
|
-
| `code-editor` | `CodeEditor/` | **Monaco** — a heavy new runtime dependency reqraft doesn't carry. A dependency call for the maintainers, not something to add unilaterally. |
|
|
46
|
-
| `data-provider` | `connectors/` | connection-management + **OAuth2** + instance context — squarely bucket-3 (app integration), excluded by the design. |
|
|
47
|
-
| `options` | `systemOptions.tsx` (1500+) | this *is* `FormEngine`, which reqraft already has. Exposing a `type: 'options'` wrapper is possible but needs option-set value-shape decisions; defer until a consumer needs it. |
|
|
48
|
-
| `tool-catalog` | `toolCatalog/` (434) | server-driven feature editor (All/Some/None per source). Schema-editor-sized; own task. |
|
|
49
|
-
| `active-windows` | `activeWindows/` (290) | server-driven cron-window editor. Own task. |
|
|
50
|
-
| `collection-documents` | `collectionDocuments.tsx` (347) | managed uploads tied to AI-collection APIs. Own task. |
|
|
51
|
-
| `test-cases` | `testCases/` (**1469**) | large server-driven editor (`/tests/step-kinds`, `/tests/assertions`). Its own multi-day task. |
|
|
52
|
-
| `processor-mappings` | `ProcessorMappingPanel` | processor field-mapping editor; feature-specific. Own task. |
|
|
53
|
-
|
|
54
|
-
**Principle:** small + dependency-free → done now; app-coupled or
|
|
55
|
-
server-driven feature editors → their own task, pulled when a real
|
|
56
|
-
consumer needs them so they can be verified against that use (the lesson
|
|
57
|
-
from the schema editor's `ui_type` path).
|
|
58
|
-
|
|
59
|
-
## Tasks
|
|
60
|
-
|
|
61
|
-
- [x] `ByteSizeFormField` + `case 'byte-size'` + export + story
|
|
62
|
-
- [x] `UrlFormField` + `case 'url'` + export + story
|
|
63
|
-
- [x] `multi-select`/`select-array` branch + allowed-values guard + story
|
|
64
|
-
- [x] Prod typecheck, eslint, jest (267), form play tests (only the
|
|
65
|
-
pre-existing `OnValidityChange` fails)
|
|
66
|
-
- [ ] **STOP — user verifies in browser** before commit
|
|
67
|
-
|
|
68
|
-
## Out of scope
|
|
69
|
-
|
|
70
|
-
- Everything in the triage table marked "own task" / "app-coupled" /
|
|
71
|
-
"dependency call" — see the per-row verdicts above.
|
|
72
|
-
- Bucket-3 interface selectors (excluded by the design doc).
|
package/.tasks/INDEX.md
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# SmartEditor task index
|
|
2
|
-
|
|
3
|
-
One-glance status across every task file in `.tasks/`. **Update this
|
|
4
|
-
file whenever a task transitions between statuses** (per the
|
|
5
|
-
convention in `.claude/CLAUDE.md` § "Task & design docs workflow").
|
|
6
|
-
|
|
7
|
-
## Release strategy
|
|
8
|
-
|
|
9
|
-
**Revised 2026-05-26.** All `.tasks/` items below ship together as a
|
|
10
|
-
single `0.10.0` release — no incremental `-beta` / `0.10.1` / `0.10.2`
|
|
11
|
-
tags between. Rationale recorded in
|
|
12
|
-
[`design/SMART_EDITOR_UX.md` § "Release strategy"](../design/SMART_EDITOR_UX.md):
|
|
13
|
-
shipping incremental releases would mean cutting tags with no real
|
|
14
|
-
consumer (qorus-ide alert-rule editor needs `alertPayloadContext`/`fsmContext`
|
|
15
|
-
which are in the CONTEXT_AND_POLISH task, not in what was originally
|
|
16
|
-
scoped for `0.10.0`). Better to land everything in one coherent
|
|
17
|
-
release that an actual consumer can adopt.
|
|
18
|
-
|
|
19
|
-
| Release | Status | Tag / sha |
|
|
20
|
-
|---|---|---|
|
|
21
|
-
| `0.9.0` | shipped | (current published) |
|
|
22
|
-
| `0.10.0` | in progress | held until every task row below is `committed` |
|
|
23
|
-
| `0.11.0` (tentative) | planned | Form engine field migration (separate workstream, see below) |
|
|
24
|
-
|
|
25
|
-
## Tasks
|
|
26
|
-
|
|
27
|
-
All tasks ship as part of `0.10.0`. Sequence below is the suggested
|
|
28
|
-
implementation order; release happens after the last row commits.
|
|
29
|
-
|
|
30
|
-
| Task | Status | Sequence rationale |
|
|
31
|
-
|---|---|---|
|
|
32
|
-
| [SMART_EDITOR_UX_POLISH](./SMART_EDITOR_UX_POLISH.md) | Phase 1 committed `6fb9bf3` · Phases 2–7 + 6 committed `a9b7f1b` and **verified in browser 2026-05-26** · Phase 8 (release prep) deferred to end of batch | The original UX batch. All design-doc items (1–7) shipped and verified; Phase 8's "bump version + push" step now happens after every follow-up below also lands. |
|
|
33
|
-
| [SMART_EDITOR_CONTEXT_AND_POLISH](./SMART_EDITOR_CONTEXT_AND_POLISH.md) | items 1/2/4 committed (`5e94fd7`, `8e6fe0f`, `2a53a1a`); item 3 (README) deferred to release prep — **awaiting browser verification** | **1st** done |
|
|
34
|
-
| [SMART_EDITOR_LSP_FEATURES](./SMART_EDITOR_LSP_FEATURES.md) | committed (`d54597e`) — **awaiting browser verification** | **2nd** done |
|
|
35
|
-
| [QONSOLE_ASSIST_FEATURES](./QONSOLE_ASSIST_FEATURES.md) | committed (`189fe52`) — **awaiting browser verification** | **3rd** done |
|
|
36
|
-
| [SMART_EDITOR_VISUAL_POLISH](./SMART_EDITOR_VISUAL_POLISH.md) | committed (`c006a79`) — **awaiting browser verification** | **4th** done |
|
|
37
|
-
| [SMART_EDITOR_REVIEW_FOLLOWUPS](./SMART_EDITOR_REVIEW_FOLLOWUPS.md) | all 4 items done pending user verify (uncommitted) | **5th** — reviewer feedback on PR #62 (the `0.10.0` editor batch). |
|
|
38
|
-
| `0.10.0` release prep (Phase 8 of UX_POLISH) | ready to start once all above complete | **6th (final)** — bump `package.json` to `0.10.0`; final README pass against the final API; tag; push. |
|
|
39
|
-
|
|
40
|
-
## Form engine field migration (separate workstream)
|
|
41
|
-
|
|
42
|
-
Closing the gap between Reqraft's form engine and qorus-ide's `Field`
|
|
43
|
-
system. Design locked in
|
|
44
|
-
[`design/FORM_ENGINE_FIELD_MIGRATION.md`](../design/FORM_ENGINE_FIELD_MIGRATION.md).
|
|
45
|
-
Independent of the `0.10.0` SmartEditor batch above; targets a later
|
|
46
|
-
minor (`0.11.0` tentative). Sequence is a hard dependency — phase 2
|
|
47
|
-
needs phase 1.
|
|
48
|
-
|
|
49
|
-
| Task | Status | Sequence rationale |
|
|
50
|
-
|---|---|---|
|
|
51
|
-
| [REQRAFT_AUTO_FIELD](./REQRAFT_AUTO_FIELD.md) | done pending user verify (uncommitted) — 8/8 play tests pass | **1st (keystone).** Type-picker + polymorphic dispatch. The schema editor and most of the remaining field gap render their fields through it. |
|
|
52
|
-
| [SCHEMA_DEFINITION_FIELD](./SCHEMA_DEFINITION_FIELD.md) | done pending user verify (uncommitted, stacked on phase 1) — 8/8 play tests pass (2 added by FIELD_STACK phase 3, ReadOnly play restored in remediation) | **2nd.** DataSchema editor — catalogue-driven nested form on `FormEngine`. Its leaf adapter emits `auto`, so phase 1 must land first. |
|
|
53
|
-
| [FORM_FIELD_EXTRAS](./FORM_FIELD_EXTRAS.md) | done pending user verify (uncommitted) — `byte-size` / `url` / `multi-select` landed; rest triaged | **3rd (ongoing).** Portable bucket-1 fields, picked off one at a time. Contains the evidence-based triage of what's not a quick port. |
|
|
54
|
-
| [FORM_ENGINE_EXPRESSIONS](./FORM_ENGINE_EXPRESSIONS.md) | plumbing kept; **visual builder superseded by [EXPRESSION_BUILDER_REPORT](./EXPRESSION_BUILDER_REPORT.md)** | **4th (new feature, large).** Expression values in fields. The catalogue hook / FormEngine `is_expression` / DPQL bridge / validation are kept; the from-scratch visual builder is being replaced by a verbatim re-port. |
|
|
55
|
-
| [EXPRESSION_BUILDER_REPORT](./EXPRESSION_BUILDER_REPORT.md) | Phases A+B+C done & verified (uncommitted) | **5th.** Verbatim re-port of the IDE ExpressionBuilder + field-stack parity + IDE tests (Filip's method: copy → 1:1 → improve), replacing the from-scratch builder. Design: `design/EXPRESSION_BUILDER_REPORT_STRATEGY.md`. |
|
|
56
|
-
| [FORM_ENGINE_OPTIONS_SYNC](./FORM_ENGINE_OPTIONS_SYNC.md) | Phases 1+2+3 done pending user verify (uncommitted) — 6/6 new play tests | **6th.** Sync FormEngine with the IDE's Options drift since the 2026-03-18 extraction: the remote-fetch layer (`url`/`customUrl`/`onOptionsLoaded`/`operatorsUrl`) + `stretch`; new test coverage (the IDE has none for these). |
|
|
57
|
-
| [LSP_SHARED_CONNECTION](./LSP_SHARED_CONNECTION.md) | done pending user verify (uncommitted) — multiplex proof test + 268/268 jest | **7th.** N editors = 1 LSP socket: shared per-endpoint connection multiplexed by document URI (matches the server's `uriToDpqlSession` design); answers Filip's 20-builders question. Client class renamed `LspClient` → `ReqraftLspClient` (the `Reqraft*` convention, 2026-06-11); API otherwise unchanged. |
|
|
58
|
-
| [RENDER_EXPRESSION_LSP](./RENDER_EXPRESSION_LSP.md) | done pending user verify, branch `feature/render-expression-lsp` — server deployed + live-verified end-to-end 2026-06-10 (final gate 201/201 storybook, 268/268 jest, browser proof of server rendering) | **8th.** Server "Explain" over the LSP: new `dpql/renderExpression` in `QorusLspWebSocketHandler.qc` + `useRenderExpression` swap. Closes EXPRESSION_BUILDER_REPORT Phase D. Design: `design/RENDER_EXPRESSION_TRANSPORT.md`. |
|
|
59
|
-
| [FIELD_STACK_REPORT](./FIELD_STACK_REPORT.md) | done pending user verify (uncommitted) — final gate 234/234 storybook (incl. 37 ported Template/Auto plays), 268/268 jest | **9th.** Verbatim re-port of the IDE's `Field/template.tsx` + `Field/auto.tsx` (the operand layer under the ported builder) + their IDE stories, replacing the from-scratch TemplateField/AutoFormField; closes the `isFunction` operand-flow gap (behavioral difference #4 in EXPRESSION_BUILDER_REPORT). Supersedes the from-scratch implementation from REQRAFT_AUTO_FIELD (its stories/assertions are kept and reconciled). |
|
|
60
|
-
| [BRANCH_REMEDIATION](./BRANCH_REMEDIATION.md) | done pending user verify (uncommitted) — jest 268→356, plays 241→255, lint/tsc clean | **10th.** Burn-down of the 2026-06-10 full-branch audit: tests/stories/API/comment-voice remediation + behavior fixes (Select modal-click collapse, edge-triggered Url, ReqraftLspClient rename, CI auth wiring). Ledger: gitignored `SWEEP.local.md`. |
|
|
61
|
-
| [STORY_NETWORK_ISOLATION](./STORY_NETWORK_ISOLATION.md) | done pending user verify, folded into `fix/per-field-templates` (PR #115), not pushed | **Standalone.** ExpressionField stories failed off-network on `develop` (passed in CI only because CI reaches the live instance): LSP connections leaking across stories, an unhandled socket give-up in `LspSharedConnection`, unmocked background requests, and mock URLs hard-coded to the hq host. |
|
|
62
|
-
| [TEMPLATE_TOKEN_GRAMMAR](./TEMPLATE_TOKEN_GRAMMAR.md) | committed `0ef167c`, in PR (branch `bugfix/template-token-grammar`) — user-verified 2026-08-27; 13/13 unit, 21/21 template plays, qlip PNGs read | **11th (bugfix).** Braced `$data:{…}` state-output refs rehydrate as raw text: canonical token grammar + strict whole-token check + TemplateField renders whole-token values as the picker chip. Twin fix applied in qorus-ide the same day; ships as a normal per-PR patch release (`0.10.37`). |
|
|
63
|
-
| [EXPRESSION_FIELD_SEAMS](./EXPRESSION_FIELD_SEAMS.md) | committed `f5fb2ee`, pushed (branch `bugfix/116_expression-field-seams`) — user-verified 2026-09-07; PR not yet opened | **12th (bugfix).** The `extraActions` seam stopped one hop short of the `ExpressionField` shell hosts mount, and the builder's operand `TemplateField` mounts dropped it again — qorus-ide lost its AI-assist button on every expression card when it adopted the shell ([#116](https://github.com/qoretechnologies/toolkit-react/issues/116)). Forward it through both hops; pin with a nested-operand story; ships as a per-PR patch (`0.10.51`; re-based onto `4860e6e` after #114 published 0.10.50). |
|
|
64
|
-
| [EXPORT_EXPRESSION_BUILDER](./EXPORT_EXPRESSION_BUILDER.md) | committed `0eea9e7`, pushed, PR open (branch `feature/119_export-expression-builder`) | **13th (surface fix).** The barrel exported the `ExpressionField` shell but not the bare `ExpressionBuilder`, so a host mirroring the library's root/nested rule had to deep-import `dist/…/builder` ([#119](https://github.com/qoretechnologies/toolkit-react/issues/119)). Export + a barrel test; ships as `0.10.53`. |
|
|
65
|
-
|
|
66
|
-
Not yet scoped (acknowledged in the design doc): the remaining
|
|
67
|
-
`ui_type` editors (`tool-catalog`, `processor-mappings`, `test-cases`,
|
|
68
|
-
`active-windows`) and the rest of bucket-1 fields (`data-provider`,
|
|
69
|
-
`options`, `byte-size`, `url`, `code-editor`, …). They get their own
|
|
70
|
-
task files when picked up.
|
|
71
|
-
|
|
72
|
-
## Status vocabulary
|
|
73
|
-
|
|
74
|
-
- **ready to start** — task file exists, design locked, work hasn't begun
|
|
75
|
-
- **in progress, branch `<name>`** — branch created, code being written
|
|
76
|
-
- **done pending user verify** — code complete, tests pass, sitting uncommitted or on a branch awaiting human in-browser check
|
|
77
|
-
- **committed `<sha>`** — landed on the working branch
|
|
78
|
-
- **shipped `<tag>`** — released (tag pushed, npm published)
|
|
79
|
-
- **paused** — intentionally on hold (note the reason in the task file's "Status" header)
|
|
80
|
-
- **superseded by `<file>`** — work absorbed into another task; the file remains as history
|
|
81
|
-
|
|
82
|
-
## How to use this dashboard
|
|
83
|
-
|
|
84
|
-
1. **Picking what to work on next** — read top to bottom. Pick the
|
|
85
|
-
highest-up task whose status is `ready to start` or
|
|
86
|
-
`in progress` and whose sequence rationale doesn't put you out of
|
|
87
|
-
order.
|
|
88
|
-
2. **Picking what to verify before commit** — when a task is "done
|
|
89
|
-
pending user verify", check the **task file** (not this dashboard)
|
|
90
|
-
for the verification checklist, plus the per-batch
|
|
91
|
-
`VERIFY.local.md` (untracked) if one exists.
|
|
92
|
-
3. **Adding a new task** — write the planning doc first
|
|
93
|
-
(`.tasks/<NAME>.md`), then add a row here.
|
|
94
|
-
4. **Closing a task** — flip its status here AND in the task file's
|
|
95
|
-
`**Status:**` header. Don't delete completed task files;
|
|
96
|
-
they become history.
|
|
97
|
-
|
|
98
|
-
## Out-of-band trackers
|
|
99
|
-
|
|
100
|
-
These don't live in `.tasks/`:
|
|
101
|
-
|
|
102
|
-
- **Reqore-side bugs** — spawn-task chips (see chat history) for
|
|
103
|
-
upstream PRs needed by SmartEditor (Textarea null-check,
|
|
104
|
-
renderElement deps fix). Track via your normal PR workflow on the
|
|
105
|
-
Reqore repo, not here.
|
|
106
|
-
- **qorus-ide integration** — `qorus-frontend/qorus-ide/.tasks/ALERT_RULES_AND_SILENCES.md`
|
|
107
|
-
is the consumer-side task that depends on
|
|
108
|
-
`SMART_EDITOR_CONTEXT_AND_POLISH` item 4. Update the qorus-ide
|
|
109
|
-
task when item 4 ships so the qorus-ide consumer can unblock.
|
|
110
|
-
- **Per-batch verification** — `VERIFY.local.md` (untracked). One
|
|
111
|
-
per work batch — overwrite the previous when starting a new batch.
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# TASK — Shared LSP connection (N editors = 1 socket)
|
|
2
|
-
|
|
3
|
-
**Status:** DONE pending user verify (uncommitted, 2026-06-10).
|
|
4
|
-
|
|
5
|
-
## Why
|
|
6
|
-
|
|
7
|
-
Filip's call question (2026-06-10): with 20 expression builders open, "would
|
|
8
|
-
it have different connections or how would you associate the message?"
|
|
9
|
-
Research findings:
|
|
10
|
-
- The server is BUILT for multiplexing: `QorusLspWebSocketHandler.qc:531`
|
|
11
|
-
keeps `uriToDpqlSession` — a per-connection map of URI → DPQL session
|
|
12
|
-
(created on didOpen :1004, removed on didClose :1213); `dpql/setContext`
|
|
13
|
-
takes a `uri` param. One connection serves N documents.
|
|
14
|
-
- reqraft's old `LspClient` opened one isolated socket PER editor
|
|
15
|
-
(`pooled: false`) — 20 Text-mode editors = 20 sockets + 20 handshakes. The
|
|
16
|
-
old comment's rationale ("sharing conflates diagnostics and correlation")
|
|
17
|
-
was wrong: JSON-RPC ids correlate responses; `publishDiagnostics` carries
|
|
18
|
-
the uri.
|
|
19
|
-
- qorus-ide's own Creator WS already uses the shared-socket + `request_id`
|
|
20
|
-
pattern (`helpers/functions.tsx:405`).
|
|
21
|
-
|
|
22
|
-
## What changed (`src/utils/lspClient.ts`)
|
|
23
|
-
|
|
24
|
-
- New internal `LspSharedConnection`: one WebSocket + one `initialize` per
|
|
25
|
-
endpoint URL (registry; first acquirer's reconnect config wins). Owns the
|
|
26
|
-
id counter + pending map; routes responses by id, `publishDiagnostics` by
|
|
27
|
-
`params.uri`, other notifications to every registered client. Closes when
|
|
28
|
-
the last client releases it.
|
|
29
|
-
- `LspClient` is now a per-document façade with an UNCHANGED public API
|
|
30
|
-
(`useDpqlSession`/`useLspSession`/`DpqlEditor` untouched);
|
|
31
|
-
`capabilities`/`semanticTokensLegend` became getters proxying the
|
|
32
|
-
connection. Reconnect: the connection re-initializes once, then each client
|
|
33
|
-
re-sends its own `didOpen` (`_resyncAfterReconnect`).
|
|
34
|
-
- Editor URIs were already unique per instance
|
|
35
|
-
(`${languageId}://session/${counter}` in `useLspSession`) — collision-safe.
|
|
36
|
-
- Test hook `_resetSharedLspConnectionsForTests()` (mirrors the websocket
|
|
37
|
-
manager reset in jest).
|
|
38
|
-
- Answer to Filip, in one line: **one connection per endpoint, sessions
|
|
39
|
-
multiplexed by URI; requests correlate by JSON-RPC id, diagnostics by uri —
|
|
40
|
-
matching the server's design and the IDE's request_id pattern.**
|
|
41
|
-
|
|
42
|
-
## Consumer audit (what the refactor touches)
|
|
43
|
-
|
|
44
|
-
- **Exactly one `LspClient` creation site** in the library:
|
|
45
|
-
`useLspSession.ts:110` — SmartEditor, DpqlEditor, Qonsole and the
|
|
46
|
-
expressions Text mode ALL flow through it; its API was preserved verbatim.
|
|
47
|
-
- `capabilities`/`semanticTokensLegend` readers (`useLspSession`,
|
|
48
|
-
`useLspSemanticTokens`, `useLspSignatureHelp`) only READ them → the
|
|
49
|
-
field→getter change is API-identical.
|
|
50
|
-
- NEW behavior introduced: different `languageId`s (dpql + qonsole) can now
|
|
51
|
-
share one connection (same `'lsp'` URL). Verified safe — the server
|
|
52
|
-
resolves language PER DOCUMENT (`detectLanguage(textDoc.languageId, uri)`
|
|
53
|
-
at didOpen, `uriToLanguage{uri}`/`uriToSource{uri}` maps), and verified
|
|
54
|
-
LIVE (below).
|
|
55
|
-
|
|
56
|
-
## Verification
|
|
57
|
-
|
|
58
|
-
- New jest proof: two clients → `connections === 1`, one `initialize`,
|
|
59
|
-
diagnostics delivered only to the matching uri, releasing one client keeps
|
|
60
|
-
the socket for the other. lspClient suite **15/15**; full jest **268/268**.
|
|
61
|
-
- **LIVE e2e against the real server** (`lsp-multiplex-e2e.local.mjs`,
|
|
62
|
-
gitignored — one socket to `wss://localhost:8012/lsp`): initialize once;
|
|
63
|
-
two DPQL docs + one Qonsole doc coexist; interleaved per-document
|
|
64
|
-
`semanticTokens` requests return DISTINCT results; diagnostics route per
|
|
65
|
-
uri (invalid doc got 3, valid got 0, qonsole got 0); closing doc A leaves
|
|
66
|
-
doc B fully functional. `E2E OK`.
|
|
67
|
-
- **Browser-level proof**: new `DpqlEditor › TwoEditorsOneConnection` story —
|
|
68
|
-
two mounted editors, the mock server accepts exactly ONE connection, one
|
|
69
|
-
`initialize`, two `didOpen`s with distinct URIs. dpqlEditor suite **17/17**.
|
|
70
|
-
- Storybook (fresh server): smartEditor+qonsole **8/8**, expressions
|
|
71
|
-
**17/17**. Typecheck + eslint clean.
|
|
72
|
-
- Known semantics note: with >1 client on a connection, a disconnecting
|
|
73
|
-
client's in-flight requests are left to their timeouts (results ignored
|
|
74
|
-
post-unmount); the sole-client case still rejects them via the connection
|
|
75
|
-
close — covered by the existing test.
|