@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,306 +0,0 @@
|
|
|
1
|
-
# QonsoleSmartInput — assist response features
|
|
2
|
-
|
|
3
|
-
Follow-up to the `0.10.0` UX batch (see
|
|
4
|
-
[`SMART_EDITOR_UX_POLISH.md`](./SMART_EDITOR_UX_POLISH.md)). The Qorus
|
|
5
|
-
LSP server's Qonsole assist response carries fields the client either
|
|
6
|
-
silently discards or — in the case of `mode` — type-mistypes. This
|
|
7
|
-
task triages each field, lands the generic ones in `useLspAutocomplete`,
|
|
8
|
-
and lands the Qonsole-specific wizard / starter-suggestion flow in
|
|
9
|
-
the `QonsoleSmartInput` wrapper.
|
|
10
|
-
|
|
11
|
-
**Status:** done — committed in `189fe52`. Generic LSP wins (commitCharacters, sortText, warning) + Qonsole-specific (wizard launch via `qonsole.startWizard`, mode-type fix). **Awaiting browser verification.**
|
|
12
|
-
**Scope:** seven items, three of them generic-LSP wins (commit chars,
|
|
13
|
-
sortText, warning), four Qonsole-specific (relatedWizards, wizard
|
|
14
|
-
command, natural-language mode, mode-type fix).
|
|
15
|
-
**Estimated size:** ~200 lines + tests, ~1.5 days.
|
|
16
|
-
|
|
17
|
-
## Goal
|
|
18
|
-
|
|
19
|
-
A Qonsole consumer typing `/li ` should auto-accept `list` on space.
|
|
20
|
-
Typing `/list ` should rank the resource list per server intent
|
|
21
|
-
(group rank + match rank). Selecting a `Start wizard ...` item should
|
|
22
|
-
launch the wizard flow, not insert the text. Typing free text (NL
|
|
23
|
-
mode) should show the server's starter suggestions if available.
|
|
24
|
-
Destructive verbs (`delete`, `drop`) should flag themselves in the
|
|
25
|
-
dropdown so users see the warning before pressing Enter.
|
|
26
|
-
|
|
27
|
-
None of these are blocking for the `0.10.0` release — the editor
|
|
28
|
-
works without them. They're the difference between "Qonsole input
|
|
29
|
-
typing works" and "Qonsole input feels like the IDE wrote it".
|
|
30
|
-
|
|
31
|
-
## Research findings
|
|
32
|
-
|
|
33
|
-
Source: `qorus/Classes/QonsoleAssistService.qc`,
|
|
34
|
-
`qorus/Classes/QorusLspWebSocketHandler.qc`,
|
|
35
|
-
`QONSOLE_LSP_REFERENCE.md`, plus a code search across our
|
|
36
|
-
`useLspAutocomplete.ts`, `useQonsoleSession.ts`,
|
|
37
|
-
`lspClient.types.ts`.
|
|
38
|
-
|
|
39
|
-
### Generic LSP fields (apply to all languages, not Qonsole-only)
|
|
40
|
-
|
|
41
|
-
These already exist on `ILspCompletionItem`:
|
|
42
|
-
|
|
43
|
-
| Field | Server emits | Client uses | Severity |
|
|
44
|
-
|---|---|---|---|
|
|
45
|
-
| `commitCharacters: string[]` | yes (verbs/resources `[" "]`, non-bool flags `["="]`, bool flags `[" "]`) | **no** — typed but never read | Small but visible win |
|
|
46
|
-
| `sortText: string` | yes (`<group_rank>_<match_rank>_<label>` shape, sorted server-side) | partial — preserved in items array, but grouping by kind in `useLspAutocomplete.ts:282` re-orders across groups | Medium — affects rank order |
|
|
47
|
-
| `data: Record<string, unknown>` | yes (verb/resource/flag metadata; for wizard items: `{action: 'start-wizard', name, start_path, ...}`) | accessible via `item.raw.data` but no client codepath reads it | Small in isolation; required for wizard launch |
|
|
48
|
-
|
|
49
|
-
### Qonsole-specific (only on this server / this language)
|
|
50
|
-
|
|
51
|
-
| Field | Server emits | Client uses | Severity |
|
|
52
|
-
|---|---|---|---|
|
|
53
|
-
| `warning: string` | yes — only on mutating verbs (`create`, `delete`, `update`, …) | no — not in our type | Small but useful safety affordance |
|
|
54
|
-
| `command: {command, arguments, title}` | yes — only on wizard completion items (`kind === 15`) | no | Required to make wizard items actionable |
|
|
55
|
-
| `relatedWizards` (top-level on `qonsole/assist` response) | yes — when canonical command has both verb+resource AND user can access matching wizards | no — `IQonsoleAssistResult.related_wizards` exists in types but the field is never rendered | Small (wizards already surface as completion items via `makeWizardCompletionItems`) |
|
|
56
|
-
| `mode: 'command' \| 'nl' \| 'empty'` | yes — server inferred from input | type bug: declared as `'command' \| 'natural-language'` in our types; server returns the literal `"nl"` | Tiny but correctness |
|
|
57
|
-
|
|
58
|
-
### Server protocol details we need to know
|
|
59
|
-
|
|
60
|
-
- **`workspace/executeCommand` is REJECTED for `qonsole.*`** — confirmed in `QorusLspWebSocketHandler.qc:2188-2207`. Wizard launch must go through REST: `POST {apiHost}{start_path}` from `command.arguments[0].start_path`, then drive the returned `QonsoleWizardSession` via `POST /api/latest/qonsole/wizards/sessions/{id}/step` and `/abort`. Documented in `QorusQonsoleRestClass.qc:7770-7950`.
|
|
61
|
-
|
|
62
|
-
- **`completionItem/resolve` is NOT supported** by the server (`completionProvider.resolveProvider` is not in capabilities). `data` is fully populated up front — not for lazy resolution. So clients don't need to implement a resolve-roundtrip.
|
|
63
|
-
|
|
64
|
-
- **Natural-language mode is detection-only.** The `nl` response has empty `completion.items`, empty `diagnostics`, optional `starter_suggestions` when the server's `isCannedWelcomeIntent` matches. Actual execution goes through `/qonsole/exec` SSE — out of scope for this task (it's the chat-runner, not the editor).
|
|
65
|
-
|
|
66
|
-
## Design decisions
|
|
67
|
-
|
|
68
|
-
### 1. `commitCharacters` — generic, lands in `useLspAutocomplete`
|
|
69
|
-
|
|
70
|
-
VS Code semantics: when the focused item has `commitCharacters` and
|
|
71
|
-
the user types one, accept the completion AND insert the typed
|
|
72
|
-
character. The typed character is preserved in the document; the
|
|
73
|
-
completion is what would have been typed had they pressed Tab/Enter.
|
|
74
|
-
|
|
75
|
-
Special case `space` → bool flags: server emits `[" "]` for bool
|
|
76
|
-
flags. After accepting `--verbose` on space, the server's
|
|
77
|
-
`textEdit` already includes the space-after, so we'd double-space.
|
|
78
|
-
**Decision:** on commit-char accept, check whether the inserted
|
|
79
|
-
text from the completion already ends in the typed character — if
|
|
80
|
-
so, suppress the verbatim re-insert. Confirmed by reading
|
|
81
|
-
`QonsoleAssistService.qc:982`: flag insertText is `"--name="`
|
|
82
|
-
(no trailing space) for `=`-committed flags, `"--name"` (no trailing
|
|
83
|
-
char) for space-committed bool flags. So always re-insert is
|
|
84
|
-
*almost* right, but the user types `--verbose ` and gets
|
|
85
|
-
`--verbose ` (one space). For `=` flags, user types `--name=` and
|
|
86
|
-
gets `--name=` (no double-equals because the completion's `newText`
|
|
87
|
-
ends with `=`).
|
|
88
|
-
|
|
89
|
-
Actually re-examining: the server's `textEdit.newText` is what the
|
|
90
|
-
completion produces. For bool `--verbose`, server's `newText`
|
|
91
|
-
is `--verbose` (without trailing). User types space → we accept →
|
|
92
|
-
`--verbose` is inserted → we re-insert the typed space → final
|
|
93
|
-
text is `--verbose ` (with one space). Correct.
|
|
94
|
-
|
|
95
|
-
For `=` flag `--limit`, server's `newText` is `--limit=`. User
|
|
96
|
-
types `=` → we accept → `--limit=` is inserted → we re-insert
|
|
97
|
-
`=` → final is `--limit==`. **Wrong.** So we DO need the
|
|
98
|
-
deduplication: if the just-inserted text ends with the commit
|
|
99
|
-
character, swallow the second one.
|
|
100
|
-
|
|
101
|
-
Implementation: peek at the completion's `textEdit?.newText ?? insertText ?? label`.
|
|
102
|
-
If it ends with the typed key, suppress the re-insert.
|
|
103
|
-
|
|
104
|
-
### 2. `sortText` — generic, lands in `useLspAutocomplete`
|
|
105
|
-
|
|
106
|
-
Server already sorts; we re-order via kind-grouping which violates
|
|
107
|
-
server intent.
|
|
108
|
-
|
|
109
|
-
**Decision:** drop the kind-grouping for items whose `sortText` is
|
|
110
|
-
present. Instead, group only when no `sortText` is supplied (legacy
|
|
111
|
-
fallback). The server's `sortText` already encodes the group order
|
|
112
|
-
(`group_rank` is the first segment). So we render as a flat list,
|
|
113
|
-
ordered by `sortText`, with the server's headers implicit in the
|
|
114
|
-
rank steps.
|
|
115
|
-
|
|
116
|
-
This is a behaviour change for the dropdown when consuming Qonsole.
|
|
117
|
-
For DPQL (which doesn't populate `sortText` consistently per server
|
|
118
|
-
audit), groups remain. We branch on the presence of `sortText` on
|
|
119
|
-
any item.
|
|
120
|
-
|
|
121
|
-
Alternative we considered: keep groups but order group headers by
|
|
122
|
-
the smallest `sortText` per group. Rejected — `sortText`'s first
|
|
123
|
-
segment is `group_rank` exactly so a flat sort is equivalent and
|
|
124
|
-
simpler.
|
|
125
|
-
|
|
126
|
-
### 3. `warning` — generic field on `ILspCompletionItem`
|
|
127
|
-
|
|
128
|
-
**Decision:** add `warning?: string` to `ILspCompletionItem`. Add
|
|
129
|
-
`warning?: string` to `ICompletionDropdownItem`. Render as a small
|
|
130
|
-
right-aligned warning chip + the row's `tooltip` payload extended
|
|
131
|
-
with the warning. Visual: `<ReqoreTag intent='warning' icon='AlertLine' size='small'>` in the row's `rightAction` or as a second badge.
|
|
132
|
-
|
|
133
|
-
Doesn't conflict with the kind-chip badge — Reqore allows `badge` to be an array.
|
|
134
|
-
|
|
135
|
-
### 4. `data` — generic field on `ILspCompletionItem`
|
|
136
|
-
|
|
137
|
-
**Decision:** add `data?: Record<string, unknown>` to
|
|
138
|
-
`ILspCompletionItem`. No special rendering — it's a pass-through
|
|
139
|
-
for inserters and external callers. The wizard-launch path (next
|
|
140
|
-
item) reads `data.action === 'start-wizard'` to branch.
|
|
141
|
-
|
|
142
|
-
### 5. Wizard launch via `command: 'qonsole.startWizard'` — Qonsole-specific
|
|
143
|
-
|
|
144
|
-
Spec: the server attaches a `command: { command, arguments, title }`
|
|
145
|
-
to completion items when `data.action === 'start-wizard'`. We need
|
|
146
|
-
to NOT insert text but instead fire a callback the consumer wires
|
|
147
|
-
to the wizard runner.
|
|
148
|
-
|
|
149
|
-
**Decision:**
|
|
150
|
-
|
|
151
|
-
- Generic addition to `ILspCompletionItem`: `command?: { command: string; title: string; arguments?: unknown[] }`.
|
|
152
|
-
- Generic addition to `TCompletionInserter` context: we already pass
|
|
153
|
-
`replacementPath` etc. — add nothing; the inserter receives
|
|
154
|
-
`item.command` via `item.raw.command` and decides what to do.
|
|
155
|
-
- Qonsole-specific addition: a new `onWizardStart?(args: unknown[])` prop
|
|
156
|
-
on `QonsoleSmartInput`. The default `completionInserter` for
|
|
157
|
-
Qonsole checks `item.raw.command?.command === 'qonsole.startWizard'`
|
|
158
|
-
and calls `onWizardStart(args)` instead of inserting text.
|
|
159
|
-
- Reqraft provides NO wizard runner UI — that's qorus-ide-side
|
|
160
|
-
(a new `<QonsoleWizardSessionModal>` component). Our job is the
|
|
161
|
-
callback hand-off.
|
|
162
|
-
|
|
163
|
-
The dropdown visual for wizard items uses a distinctive icon and a
|
|
164
|
-
`Wizard` kind chip — extend the kindLabel map to map "snippet" kind
|
|
165
|
-
to "Wizard" when `data.action === 'start-wizard'`.
|
|
166
|
-
|
|
167
|
-
### 6. `relatedWizards` (top-level on assist response) — Qonsole-specific
|
|
168
|
-
|
|
169
|
-
The server appends each wizard ALSO as a synthetic completion item
|
|
170
|
-
(`makeWizardCompletionItems` at `QonsoleAssistService.qc:806`) — so
|
|
171
|
-
the items list already covers the wizard surface. The top-level
|
|
172
|
-
`related_wizards` array is the canonical source for an inline
|
|
173
|
-
"Suggested setup" callout panel below the input — useful when a
|
|
174
|
-
command is recognised but partially filled.
|
|
175
|
-
|
|
176
|
-
**Decision (v1):** rely on the synthetic items in the dropdown. Do
|
|
177
|
-
NOT build the inline callout panel. If we want it later, it's a
|
|
178
|
-
new ReqoreCallout below the editor body when
|
|
179
|
-
`session.lastAssist?.related_wizards?.length > 0`. Tracked as
|
|
180
|
-
deferred.
|
|
181
|
-
|
|
182
|
-
### 7. `mode` type fix
|
|
183
|
-
|
|
184
|
-
Trivial — change `'natural-language'` to `'nl'` in
|
|
185
|
-
`qonsoleSmartInput/types.ts:40`. Add `'empty'` as a third literal.
|
|
186
|
-
|
|
187
|
-
Also fix `QONSOLE_LSP_REFERENCE.md:150` which has the same wrong
|
|
188
|
-
literal documented.
|
|
189
|
-
|
|
190
|
-
### Not landing in this task
|
|
191
|
-
|
|
192
|
-
- Natural-language mode **starter suggestions** rendering — different
|
|
193
|
-
surface (chips below the input). Add later if Qonsole NL becomes a
|
|
194
|
-
Reqraft consumer's actual use case. The qorus-ide existing
|
|
195
|
-
QonsoleInput.tsx doesn't even use `qonsole/assist` for NL — goes
|
|
196
|
-
straight to `/qonsole/exec` SSE on submit.
|
|
197
|
-
- Attachment-mode UX — assist response carries `attachments` only in
|
|
198
|
-
NL mode; out of scope.
|
|
199
|
-
- The wizard runner modal itself — qorus-ide work.
|
|
200
|
-
|
|
201
|
-
## Surface area
|
|
202
|
-
|
|
203
|
-
| File | Change |
|
|
204
|
-
|---|---|
|
|
205
|
-
| `src/utils/lspClient.types.ts` | `ILspCompletionItem` gains `warning?: string`, `data?: Record<string, unknown>`, `command?: { command, title, arguments? }` |
|
|
206
|
-
| `src/components/smartEditor/useLspAutocomplete.ts` | `ICompletionDropdownItem` gains `warning?`, surface `command` via `raw`; keyboard handler intercepts commit-char keys; sort by `sortText` (flat) when present; deduplication for commit-char re-insert |
|
|
207
|
-
| `src/components/smartEditor/SmartEditor.tsx` | render the `warning` chip on rows that have it (right-side, intent="warning", small) |
|
|
208
|
-
| `src/components/qonsoleSmartInput/types.ts` | fix `mode` literal (`'nl'`/`'empty'`); add `onWizardStart?(args: unknown[]) => void` prop |
|
|
209
|
-
| `src/components/qonsoleSmartInput/QonsoleSmartInput.tsx` | inject a custom `completionInserter` that branches on `item.command?.command === 'qonsole.startWizard'` and calls `onWizardStart` |
|
|
210
|
-
| `src/components/qonsoleSmartInput/qonsoleInserter.ts` | **new** — extracts the wizard-or-text branch into a named helper |
|
|
211
|
-
| `__tests__/smartEditor/commitCharacters.test.ts` | **new** — unit tests for commit-char accept logic incl. the deduplication |
|
|
212
|
-
| `src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx` | enrich the mock to emit `warning` on destructive verbs and `command` on wizard items; add `WithCommitCharacters`, `WithWizardItems` stories |
|
|
213
|
-
| `QONSOLE_LSP_REFERENCE.md` | fix the `mode` literal (`nl` not `natural-language`) |
|
|
214
|
-
|
|
215
|
-
## Tasks
|
|
216
|
-
|
|
217
|
-
### Generic field surfacing
|
|
218
|
-
|
|
219
|
-
- [ ] `ILspCompletionItem` extended with `warning?`, `data?`, `command?`
|
|
220
|
-
- [ ] `ICompletionDropdownItem` extended with `warning?`; populate it
|
|
221
|
-
in the mapping step of `performCompletionRequest`
|
|
222
|
-
- [ ] SmartEditor renders the warning chip on the row's
|
|
223
|
-
`rightAction` when present
|
|
224
|
-
|
|
225
|
-
### Commit characters
|
|
226
|
-
|
|
227
|
-
- [ ] Extend the keydown handler in `useLspAutocomplete` to intercept
|
|
228
|
-
single-character keys that match the focused item's
|
|
229
|
-
`commitCharacters`; accept the completion via `selectItem`,
|
|
230
|
-
then re-insert the typed char UNLESS the just-inserted text
|
|
231
|
-
ended with it (server textEdit dedup)
|
|
232
|
-
- [ ] Confirm interaction with `metadata.retrigger` — `:` commit on
|
|
233
|
-
a `$template:` item should re-trigger value completions; the
|
|
234
|
-
timeout-based re-trigger already handles this
|
|
235
|
-
- [ ] Unit tests covering:
|
|
236
|
-
- bool flag (`--verbose`, space commit) → final text ends with one space
|
|
237
|
-
- `=` flag (`--limit`, `=` commit) → final text is `--limit=` (no double `=`)
|
|
238
|
-
- retrigger interaction → completion re-fires after commit
|
|
239
|
-
|
|
240
|
-
### Sort
|
|
241
|
-
|
|
242
|
-
- [ ] In `useLspAutocomplete`, sort `items` by `sortText` (lexically)
|
|
243
|
-
before grouping
|
|
244
|
-
- [ ] When ANY item has `sortText`, skip kind-grouping — render a
|
|
245
|
-
flat list. When NO items have `sortText`, fall back to the
|
|
246
|
-
existing kind-grouping (preserves DPQL behaviour)
|
|
247
|
-
|
|
248
|
-
### Qonsole-specific wizard flow
|
|
249
|
-
|
|
250
|
-
- [ ] `qonsoleSmartInput/qonsoleInserter.ts` — new file with the
|
|
251
|
-
branch: wizard items call `onWizardStart`; everything else
|
|
252
|
-
delegates to `defaultCompletionInserter`
|
|
253
|
-
- [ ] Add `onWizardStart?` prop to `IQonsoleSmartInputProps`
|
|
254
|
-
- [ ] Hook the inserter via the `completionInserter` prop on
|
|
255
|
-
SmartEditor
|
|
256
|
-
- [ ] In `useLspAutocomplete`, extend `ICompletionDropdownItem`'s
|
|
257
|
-
kindLabel resolver: when `kind === 15` (CIK_SNIPPET) AND
|
|
258
|
-
`data?.action === 'start-wizard'`, label the chip "Wizard"
|
|
259
|
-
and override the icon to `MagicLine`
|
|
260
|
-
|
|
261
|
-
### Mode type fix
|
|
262
|
-
|
|
263
|
-
- [ ] `qonsoleSmartInput/types.ts` — change `mode: 'command' | 'natural-language'` to `'command' | 'nl' | 'empty'`
|
|
264
|
-
- [ ] Update `QONSOLE_LSP_REFERENCE.md` to match (and add `empty`)
|
|
265
|
-
- [ ] No code change needed in `useQonsoleSession` — it passes the
|
|
266
|
-
response through unchanged
|
|
267
|
-
|
|
268
|
-
### Stories + mock enrichment
|
|
269
|
-
|
|
270
|
-
- [ ] `QonsoleSmartInput.stories.tsx` mock — for the BasicMock
|
|
271
|
-
completion response:
|
|
272
|
-
- Add `warning: 'Mutates system state'` to verbs `create`, `delete`,
|
|
273
|
-
`drop`, `update`
|
|
274
|
-
- Add `command: { command: 'qonsole.startWizard', title, arguments: [{action: 'start-wizard', name: 'create-connection', start_path: '/api/latest/qonsole/wizards/create-connection/start'}] }` to one synthetic wizard item per response
|
|
275
|
-
- Add `commitCharacters: ['=']` to flag completions like
|
|
276
|
-
`--limit`, `--search`, `--app`
|
|
277
|
-
- [ ] New story `WithCommitCharacters` — initial value `/list services `,
|
|
278
|
-
play test types `--li`, then `=`, asserts the editor shows
|
|
279
|
-
`/list services --limit=` and the popover is open for values
|
|
280
|
-
- [ ] New story `WithWizardItems` — initial value `create con`, mock
|
|
281
|
-
returns the wizard item, play test confirms selecting it fires
|
|
282
|
-
the consumer-provided `onWizardStart` callback (via `fn()` spy)
|
|
283
|
-
|
|
284
|
-
### Documentation
|
|
285
|
-
|
|
286
|
-
- [ ] README: add a short Qonsole-features section under the
|
|
287
|
-
QonsoleSmartInput entry mentioning commit chars, wizard launch,
|
|
288
|
-
`onWizardStart` prop
|
|
289
|
-
- [ ] TSDoc on `onWizardStart` explains it's the consumer's
|
|
290
|
-
responsibility to drive the REST `start_path`
|
|
291
|
-
|
|
292
|
-
### Checks
|
|
293
|
-
|
|
294
|
-
- [ ] Typecheck, lint, jest, storybook play tests all pass
|
|
295
|
-
- [ ] **STOP — user verifies in browser** before commit
|
|
296
|
-
|
|
297
|
-
## Out of scope
|
|
298
|
-
|
|
299
|
-
- Natural-language mode UX (starter cards, chat-style rendering) —
|
|
300
|
-
separate task if Qonsole NL becomes a Reqraft consumer use case
|
|
301
|
-
- Wizard runner modal component — qorus-ide-side
|
|
302
|
-
- `relatedWizards` inline callout panel — deferred; synthetic items
|
|
303
|
-
in the dropdown already cover the surface
|
|
304
|
-
- `completionItem/resolve` plumbing — server doesn't advertise the
|
|
305
|
-
capability; no need
|
|
306
|
-
- Attachment-mode handling
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
# TASK — server "Explain" over the LSP (`dpql/renderExpression`)
|
|
2
|
-
|
|
3
|
-
**Status:** code complete on branch `feature/render-expression-lsp`
|
|
4
|
-
(uncommitted) — server rebuilt/restarted by the user 2026-06-10 and
|
|
5
|
-
**verified live end-to-end** (probe + real-browser run of `LiveExplain`
|
|
6
|
-
against :8012: preview AND Explain show `"test".startsWith("t", true)`
|
|
7
|
-
served over `dpql/renderExpression`; the hq accidental run proved the
|
|
8
|
-
`-32601` fallback path too). Awaiting user browser verification.
|
|
9
|
-
**STOP — no commits until the user verifies.**
|
|
10
|
-
|
|
11
|
-
Design: `design/RENDER_EXPRESSION_TRANSPORT.md` (locked 2026-06-10).
|
|
12
|
-
Closes **Phase D** of `.tasks/EXPRESSION_BUILDER_REPORT.md`.
|
|
13
|
-
Server ask history: `/tmp/render-expression-exposure.md`.
|
|
14
|
-
|
|
15
|
-
## Surface area
|
|
16
|
-
|
|
17
|
-
| Area | Path | Change |
|
|
18
|
-
|---|---|---|
|
|
19
|
-
| Server handler | `qorus/Classes/QorusLspWebSocketHandler.qc` | NEW `dpql/renderExpression` dispatch case + `handleDpqlRenderExpression()` (modeled on the creator's `handleIdeRenderExpression`, JSON-RPC like `handleDpqlToRichtext`) |
|
|
20
|
-
| Server design doc | `qorus/design/language-server-api-metadata.md` | documented under "Custom Qorus LSP Methods" |
|
|
21
|
-
| The seam | `src/components/form/expressions/useRenderExpression.ts` | server-first via shared module-level `LspClient`; client-side fallback kept; per-hook ~300ms debounce; `serverRendering` now live |
|
|
22
|
-
| Mock LSP | `src/components/form/expressions/dpqlMockLsp.ts` | `dpql/renderExpression` case mirroring the server contract |
|
|
23
|
-
| Stories | `Foundation.stories.tsx` (mock in `beforeEach`), `ExpressionField.stories.tsx` (NEW `LiveExplain` live story) | |
|
|
24
|
-
| Storybook config | `.storybook/main.ts` | forward `REACT_APP_QORUS_INSTANCE`/`_TOKEN` shell overrides to the bundle (live-story flow was silently broken) |
|
|
25
|
-
| Untouched consumers | `builder/renderTemplate.tsx`, `ExpressionField.tsx` | public hook contract preserved |
|
|
26
|
-
|
|
27
|
-
## Phases
|
|
28
|
-
|
|
29
|
-
### Phase 0 — shortcut check (DONE 2026-06-10)
|
|
30
|
-
|
|
31
|
-
- [x] Probed live `wss://localhost:8012/lsp`: `dpql/serialize` richtext =
|
|
32
|
-
DPQL string in paragraph nodes; `dpql/toRichtext` takes `text` only;
|
|
33
|
-
`dpql/explain` / `dpql/renderExpression` → `-32601`.
|
|
34
|
-
- [x] Probed live `wss://localhost:8012/creator` `render-expression`:
|
|
35
|
-
`"test".startsWith("t", true)` for the same AST — semantic rendering,
|
|
36
|
-
≠ serialize output. **Shortcut disproven → server change needed.**
|
|
37
|
-
- [x] Learned: creator accepts ONLY the `{is_expression, value}` wrapper
|
|
38
|
-
(bare AST → `EXPRESSION-ARG-ERROR`); `and` is not in
|
|
39
|
-
`QorusExpressionMap` (serializer accepts it, renderer doesn't).
|
|
40
|
-
Probe scripts: `/tmp/render-step0.mjs`, `/tmp/render-step0-creator.mjs`.
|
|
41
|
-
|
|
42
|
-
### Phase 1 — server (code DONE; deploy PENDING)
|
|
43
|
-
|
|
44
|
-
- [x] `handleDpqlRenderExpression()` in `QorusLspWebSocketHandler.qc`:
|
|
45
|
-
accepts bare AST or wrapper, optional `expmap`; returns
|
|
46
|
-
`{ rendered, richtext }`; stateless (no uri/session).
|
|
47
|
-
- [x] `qorus/design/language-server-api-metadata.md` updated.
|
|
48
|
-
- [x] **Committed + MR'd (2026-06-11):** qorus branch
|
|
49
|
-
`feature/render-expression-lsp`, commit `bccdb971c`, pushed with
|
|
50
|
-
`-o ci.skip` (push pipeline skipped; repo has no MR pipelines) —
|
|
51
|
-
https://git.qoretechnologies.com/qorus/qorus/-/merge_requests/2103,
|
|
52
|
-
assigned to dnichols.
|
|
53
|
-
- [x] **Rebuilt + restarted by the user (2026-06-10).** Probe re-run green:
|
|
54
|
-
`dpql/renderExpression` returns
|
|
55
|
-
`{ rendered: "\"test\".startsWith(\"t\", true)", richtext: … }` for
|
|
56
|
-
both the bare AST and the wrapper, with or without `uri`; missing
|
|
57
|
-
expression → `-32602`; `and` (not in expmap) → clean `-32803`;
|
|
58
|
-
nested `&&` → `("test".startsWith("t", true)) && (5 > 3)`.
|
|
59
|
-
Note: qorus-core restarts invalidate session tokens — the probe
|
|
60
|
-
script now logs in itself (`admin`, local dev creds).
|
|
61
|
-
|
|
62
|
-
### Phase 2 — reqraft seam swap (DONE)
|
|
63
|
-
|
|
64
|
-
- [x] `useRenderExpression`: lazy module-level `LspClient` shared by all
|
|
65
|
-
consumers (rides `LspSharedConnection` — same socket as open DPQL
|
|
66
|
-
editors); JSON-RPC id association; per-hook leading+trailing ~300ms
|
|
67
|
-
debounce; bounded connect wait (1.5s) + 10s fail cooldown; `-32601`
|
|
68
|
-
remembered → permanent client-side fallback on old servers;
|
|
69
|
-
`serverRendering` flag now reflects the serving path live.
|
|
70
|
-
- [x] Public API unchanged (`{ render, serverRendering }`,
|
|
71
|
-
`renderExpressionToText` still exported); consumers untouched.
|
|
72
|
-
|
|
73
|
-
### Phase 3 — tests (DONE)
|
|
74
|
-
|
|
75
|
-
- [x] `dpqlMockLsp.ts` extended with `dpql/renderExpression`.
|
|
76
|
-
- [x] `Foundation.Default` now runs the mock (its `findByText` 1s timeout
|
|
77
|
-
is shorter than the offline fallback wait — would have gone flaky).
|
|
78
|
-
- [x] NEW `ExpressionField.LiveExplain` story (`tags: ['!test']`,
|
|
79
|
-
`parameters: { live: true }`) for verification against :8012.
|
|
80
|
-
- [x] **GATE:** eslint clean · `build:test:prod` clean · jest **268/268** ·
|
|
81
|
-
expressions play tests **17/17** · full storybook suite **200/201**
|
|
82
|
-
(only the pre-existing `FormEngine › OnValidityChange` flaky).
|
|
83
|
-
|
|
84
|
-
### Phase 4 — verification (in progress)
|
|
85
|
-
|
|
86
|
-
- [x] Server rebuilt + restarted, step-0 script green (2026-06-10).
|
|
87
|
-
- [x] Agent end-to-end check: real chromium on the `LiveExplain` story at
|
|
88
|
-
:6011 (storybook pointed at :8012) — WS frames confirmed
|
|
89
|
-
`dpql/renderExpression` over the shared socket; preview AND Explain
|
|
90
|
-
show `"test".startsWith("t", true)`. The earlier hq-pointed run
|
|
91
|
-
doubled as the fallback proof (`-32601` → client-side rendering).
|
|
92
|
-
Found+fixed en route: `.storybook/main.ts` never forwarded
|
|
93
|
-
`REACT_APP_QORUS_INSTANCE`/`_TOKEN` from the shell, so the documented
|
|
94
|
-
live-story flow silently fell back to hq.
|
|
95
|
-
- [x] **Styled Explain (2026-06-10, after user feedback):** the builder's
|
|
96
|
-
Explain now renders the server's `richtext` (template refs as chips,
|
|
97
|
-
via `richtextResponseToSlate` → `RichTextFormField`) — IDE parity;
|
|
98
|
-
hook gained additive `renderRich()` (`render` keeps its string
|
|
99
|
-
contract); fallback path now shows a muted "Approximate — server
|
|
100
|
-
rendering unavailable" tag so the serving path is never ambiguous.
|
|
101
|
-
Browser-verified on :6011: chips render, no badge, server text;
|
|
102
|
-
gates re-run green (jest 268/268, expressions play 17/17, eslint,
|
|
103
|
-
`build:test:prod`).
|
|
104
|
-
- [x] **LSP-highlighted Explain + Text-seeding fix (2026-06-10, user
|
|
105
|
-
feedback round 2):**
|
|
106
|
-
(a) Both Explain surfaces (builder panel + ExpressionField Text-mode
|
|
107
|
-
Explanation) now render through a **read-only `DpqlEditor`** —
|
|
108
|
-
template-ref chips + LSP semantic-token colours; new
|
|
109
|
-
`showDiagnostics` prop on SmartEditor/DpqlEditor suppresses
|
|
110
|
-
underlines AND the message panel (the rendering is readable text,
|
|
111
|
-
not parseable DPQL — probe confirmed clean tokens but error diags).
|
|
112
|
-
Fallback keeps plain rich-text + the "Approximate" tag.
|
|
113
|
-
(b) Fixed ExpressionField Text-mode seeding: `enterTextMode` called
|
|
114
|
-
`dpqlRef.current.serialize` before the editor mounted (ref null →
|
|
115
|
-
silently empty editor); seeding now runs in an effect with a brief
|
|
116
|
-
retry until the editor's LSP session is ready; user typing aborts
|
|
117
|
-
a late seed. Browser-verified: 7 token colours + 6 chips in the
|
|
118
|
-
builder explain, editor seeds `"test" startsWith "t"`, re-seeds on
|
|
119
|
-
Visual→Text toggle. Full suite **201/201**, jest 268/268.
|
|
120
|
-
- [x] **SERVER BUG found + root-caused (round-trip, case-sensitivity):**
|
|
121
|
-
`dpql/serialize` emits infix word operators (`"test" startsWith "t"`)
|
|
122
|
-
that `dpql/parse` rejects. Root cause in **qore** qlib
|
|
123
|
-
`DataProvider/DpqlParser.qc`: the comparison loop lowercases the
|
|
124
|
-
identifier (`string kw = tok.value.lwr();`, ~:964) before the infix
|
|
125
|
-
operator lookup `symbol_to_name{kw}` (~:1028), but the map is built
|
|
126
|
-
with symbols as-is (`symbol_to_name{"startsWith"}`, ~:136) — hash
|
|
127
|
-
lookup is case-sensitive, so camelCase symbols can never match.
|
|
128
|
-
PROOF: `"a" like "b"` (lowercase symbol) parses fine through the
|
|
129
|
-
same path (`exp=like`); `startsWith("test","t")` function form also
|
|
130
|
-
parses (`exp=starts-with`); only infix camelCase fails. The infix
|
|
131
|
-
path was added in qore commit `219938f44`. One-line fix in qore:
|
|
132
|
-
build the map with lowercased keys (`symbol_to_name{sym.lwr()} =
|
|
133
|
-
ename`) — matches DPQL's case-insensitive keywords (BETWEEN/IN).
|
|
134
|
-
Affects `startsWith`/`endsWith`/any camelCase-symbol comparison op.
|
|
135
|
-
Repo: QoreTechnologies/qore (NOT qorus) — needs qore qlib
|
|
136
|
-
reinstall; running copy is `~/omq/qlib/DataProvider/DpqlParser.qc`
|
|
137
|
-
(identical to source). Shows as a red diagnostic under the seeded
|
|
138
|
-
Text editor in `LiveExplain` until fixed.
|
|
139
|
-
**FILED + FIXED (2026-06-11):** issue
|
|
140
|
-
https://github.com/qoretechnologies/qore/issues/5348; fix on qore
|
|
141
|
-
branch `bugfix/5348-dpql-infix-word-operator-case` (uncommitted,
|
|
142
|
-
Nick reinstalls qore himself): lowercased `symbol_to_name` keys +
|
|
143
|
-
case-insensitive lookup in `resolveExpressionName()`. Validated
|
|
144
|
-
against pure source (the repo qlib carries a stale compiled
|
|
145
|
-
`DataProvider.qmod` that qore prefers over source — moved aside for
|
|
146
|
-
the test, restored after; ~/omq has no qmod, so plain source
|
|
147
|
-
install works): infix `startsWith`/`STARTSWITH` parse to
|
|
148
|
-
`starts-with`, function form + `like` unregressed, full
|
|
149
|
-
serialize→parse round-trip green.
|
|
150
|
-
**DEPLOYED locally 2026-06-11** (Nick reinstalled qore + restarted
|
|
151
|
-
core): live `dpql/parse('"test" startsWith "t"')` → success, zero
|
|
152
|
-
diagnostics; LiveExplain seeded editor clean (no banner/squiggles),
|
|
153
|
-
Explain still server-rendered. The qore branch stays uncommitted;
|
|
154
|
-
issue #5348 open until the fix is committed/PR'd upstream.
|
|
155
|
-
- [ ] USER browser click-through per `VERIFY.local.md` § "Render-expression
|
|
156
|
-
over LSP", incl. IDE :6007 comparison.
|
|
157
|
-
- [ ] `/tmp/render-expression-exposure.md` marked resolved (done — outcome
|
|
158
|
-
section appended).
|
|
159
|
-
- [ ] Commit only after user approval.
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
# Reqraft `auto` field — type-picker + polymorphic dispatch
|
|
2
|
-
|
|
3
|
-
Phase 1 of the field migration (see
|
|
4
|
-
[`design/FORM_ENGINE_FIELD_MIGRATION.md`](../design/FORM_ENGINE_FIELD_MIGRATION.md)).
|
|
5
|
-
Ports qorus-ide's `AutoField` polymorphic renderer into Reqraft's
|
|
6
|
-
existing `FormField` / `TemplateField` / `FormEngine` stack. This is
|
|
7
|
-
the **keystone** — the schema editor (phase 2) and most of the
|
|
8
|
-
remaining field gap depend on it.
|
|
9
|
-
|
|
10
|
-
**Status:** done pending user verify — implemented 2026-06-09. 8/8 story
|
|
11
|
-
play tests pass (run via `test-storybook`), prod typecheck + eslint clean,
|
|
12
|
-
verified in an isolated Storybook (picker, type inference, null toggle,
|
|
13
|
-
live dropdown→Integer→number field, and the full FormEngine→…→AutoFormField
|
|
14
|
-
chain). Uncommitted on `feature/dpql-editor` per the STOP-before-commit rule.
|
|
15
|
-
|
|
16
|
-
**Scope:** one new field component + small dispatcher wiring. Delegates
|
|
17
|
-
all concrete-type rendering back to the existing `FormField` switch;
|
|
18
|
-
does **not** re-implement per-type fields.
|
|
19
|
-
**Estimated size:** ~250–350 lines + 1 story file + 1 test file. ~1–2 days.
|
|
20
|
-
|
|
21
|
-
## Reference
|
|
22
|
-
|
|
23
|
-
- Source to port: `qorus-frontend/qorus-ide/src/components/Field/auto.tsx`
|
|
24
|
-
(type resolution ~`195-268`, type picker ~`933-1014`, soft-types list
|
|
25
|
-
~`945`, null toggle ~`308-317`).
|
|
26
|
-
- Reqraft dispatcher: [`src/components/form/fields/Field.tsx`](../src/components/form/fields/Field.tsx)
|
|
27
|
-
(the `FormField` switch + `renderAllowedValues`).
|
|
28
|
-
- Reqraft type map (two copies to update):
|
|
29
|
-
`Field.tsx:34-46` and
|
|
30
|
-
[`TemplateField.tsx:49-77`](../src/components/form/fields/template/TemplateField.tsx).
|
|
31
|
-
- Existing helper to reuse: `getTypeFromValue` from
|
|
32
|
-
`src/helpers/validations` (already imported by `TemplateField`).
|
|
33
|
-
- Type-picker UI: reuse `SelectFormField`
|
|
34
|
-
(`src/components/form/fields/select/Select.tsx`).
|
|
35
|
-
|
|
36
|
-
## Surface area
|
|
37
|
-
|
|
38
|
-
| File | Change |
|
|
39
|
-
|---|---|
|
|
40
|
-
| `src/components/form/fields/auto/AutoFormField.tsx` | **new** — type-picker, `auto`/`any` resolution, null toggle, delegates concrete render to `FormField` |
|
|
41
|
-
| `src/components/form/fields/auto/AutoFormField.stories.tsx` | **new** — picker, inferred-type, null, allowed-values stories |
|
|
42
|
-
| `src/components/form/fields/Field.tsx` | add `case 'auto': case 'any':` → `AutoFormField`; stop mapping `auto`→`long-string` |
|
|
43
|
-
| `src/components/form/fields/template/TemplateField.tsx` | same map fix so `auto`/`any` no longer collapse to `long-string` |
|
|
44
|
-
| `src/components/form/index.tsx` | export `AutoFormField` |
|
|
45
|
-
| `src/types/Form.ts` | ensure `'auto'` / `'any'` are valid `TFormFieldType` members (they derive from `TQorusType`; confirm) |
|
|
46
|
-
| `__tests__/form/AutoFormField.test.tsx` | **new** — type resolution + picker behaviour |
|
|
47
|
-
|
|
48
|
-
## Items
|
|
49
|
-
|
|
50
|
-
### 1. `AutoFormField` component
|
|
51
|
-
|
|
52
|
-
**Decision.** New component that owns *type selection*, then hands the
|
|
53
|
-
resolved concrete type to the existing `FormField`. It is the Reqraft
|
|
54
|
-
analog of `AutoField` but thin — `FormField` already knows how to
|
|
55
|
-
render every concrete type, so `AutoFormField` must not duplicate that
|
|
56
|
-
switch.
|
|
57
|
-
|
|
58
|
-
**Behaviour.**
|
|
59
|
-
- Resolve an internal type: `defaultType` if given, else
|
|
60
|
-
`getTypeFromValue(value)`; `auto`/`any` stay unresolved until the
|
|
61
|
-
user picks.
|
|
62
|
-
- When unresolved (or `allowedTypes.length > 1`), render the
|
|
63
|
-
type-picker (item 2), then render the chosen type's field by
|
|
64
|
-
delegating to `<FormField type={resolved} value onChange ... />`.
|
|
65
|
-
- When resolved, render `<FormField>` directly for that type.
|
|
66
|
-
- Reuse `FormField`'s allowed-values rendering rather than
|
|
67
|
-
re-implementing it (either render `<FormField>` which already calls
|
|
68
|
-
`renderAllowedValues`, or lift the helper — prefer the former).
|
|
69
|
-
|
|
70
|
-
**Props.** Mirror the relevant subset of `IAutoFieldProps`:
|
|
71
|
-
`type` (`'auto'`/`'any'` or a concrete type), `value`, `onChange`,
|
|
72
|
-
`defaultType?`, `allowedTypes?: { name/value }[]`, `canBeNull?`,
|
|
73
|
-
`disabled`, `readonly`, `size`, plus the allowed-values props already
|
|
74
|
-
on `IFormFieldProps`. **Stub but do not wire** `requestFieldData` /
|
|
75
|
-
`type-depends-on` (IDE-only).
|
|
76
|
-
|
|
77
|
-
**Surface area.** `AutoFormField.tsx` (~150–200 lines).
|
|
78
|
-
|
|
79
|
-
**Tests.** Unit: given `value=42` + `type='auto'` resolves to a number
|
|
80
|
-
field; given `defaultType='hash'` renders the hash branch; picking a
|
|
81
|
-
type from the picker swaps the rendered sub-field.
|
|
82
|
-
|
|
83
|
-
### 2. Type picker
|
|
84
|
-
|
|
85
|
-
**Decision.** A `SelectFormField` of soft types, shown when the type is
|
|
86
|
-
`auto`/`any` or `allowedTypes` has >1 entry. Default soft-type list
|
|
87
|
-
(from auto.tsx ~`945`):
|
|
88
|
-
`bool, softbool, date, string, softstring, binary, float, softfloat,
|
|
89
|
-
list, softlist, hash, int, softint, rgbcolor`. When `allowedTypes` is
|
|
90
|
-
provided, use it verbatim instead of the soft list.
|
|
91
|
-
|
|
92
|
-
**Note.** Soft types (`softint`, `softstring`, …) resolve to their
|
|
93
|
-
hard counterpart for *rendering* (a `softint` renders the number
|
|
94
|
-
field) but the chosen type is preserved in the emitted value's `type`
|
|
95
|
-
metadata, matching qorus-ide. Confirm `FormField` tolerates a `soft*`
|
|
96
|
-
type by extending `mapQorusTypeToFormFieldType` (soft* → base type).
|
|
97
|
-
|
|
98
|
-
**Surface area.** Inside `AutoFormField.tsx`; small `mapQorus...`
|
|
99
|
-
extension for `soft*`.
|
|
100
|
-
|
|
101
|
-
**Tests.** Picker visible only for `auto`/`any`/multi-`allowedTypes`;
|
|
102
|
-
selecting `int` renders the number field.
|
|
103
|
-
|
|
104
|
-
### 3. Null toggle
|
|
105
|
-
|
|
106
|
-
**Decision.** When `canBeNull`, render a "Set as null" / "Unset null"
|
|
107
|
-
button (qorus-ide auto.tsx `308-317`). Setting null emits the server's
|
|
108
|
-
null sentinel and hides the field; unsetting restores the prior value.
|
|
109
|
-
|
|
110
|
-
**Surface area.** `AutoFormField.tsx` (~20 lines).
|
|
111
|
-
|
|
112
|
-
**Tests.** Toggle sets/clears null; field hidden while null.
|
|
113
|
-
|
|
114
|
-
### 4. Dispatcher wiring
|
|
115
|
-
|
|
116
|
-
**Decision.** Add `case 'auto': case 'any':` to `FormField`'s switch
|
|
117
|
-
returning `<AutoFormField ... />`. Fix **both**
|
|
118
|
-
`mapQorusTypeToFormFieldType` copies so `auto`/`any` no longer fall
|
|
119
|
-
through to `'long-string'`. Because `FormEngine` → `TemplateField` →
|
|
120
|
-
`FormField`, schema-driven nested forms gain `auto` with no further
|
|
121
|
-
work.
|
|
122
|
-
|
|
123
|
-
**Surface area.** `Field.tsx`, `TemplateField.tsx`, `index.tsx` export.
|
|
124
|
-
|
|
125
|
-
**Tests.** `FormEngine` story with an options schema containing a field
|
|
126
|
-
typed `auto` renders the picker (not a textarea).
|
|
127
|
-
|
|
128
|
-
## Sequencing
|
|
129
|
-
|
|
130
|
-
1. Item 1 (component skeleton, delegates to `FormField`)
|
|
131
|
-
2. Item 2 (type picker) — the core of the value
|
|
132
|
-
3. Item 3 (null toggle) — independent, small
|
|
133
|
-
4. Item 4 (dispatcher wiring + map fix) — last, flips the behaviour on
|
|
134
|
-
|
|
135
|
-
## Tasks
|
|
136
|
-
|
|
137
|
-
- [x] `AutoFormField.tsx` — type resolution via `getTypeFromValue` /
|
|
138
|
-
`defaultType`; delegates concrete render to `FormField`
|
|
139
|
-
- [x] Type picker (`SelectFormField`) with soft-type list; `allowedTypes`
|
|
140
|
-
override; gated on `auto`/`any`/multi-type; honours `noSoft`
|
|
141
|
-
- [x] `soft*` → base-type handling. In `AutoFormField.getRenderType`
|
|
142
|
-
(`softX`→`X`, `binary`→`long-string`) AND, as a later pass, in
|
|
143
|
-
`FormField` itself (`renderField` strips the `soft` prefix; `binary`
|
|
144
|
-
added to the `long-string` case) and in both `mapQorusTypeToFormFieldType`
|
|
145
|
-
copies. So a bare `<FormField type="softint" />` / `type="binary"` now
|
|
146
|
-
renders correctly. Stories: `Field.stories.tsx` `SoftInteger` + `Binary`.
|
|
147
|
-
- [x] Null toggle gated on `canBeNull`
|
|
148
|
-
- [x] `case 'auto': case 'any':` in `FormField`; `auto`/`any` now map to
|
|
149
|
-
`'auto'` in both type maps instead of falling through to `long-string`
|
|
150
|
-
- [x] Export `AutoFormField` from `form/index.tsx`
|
|
151
|
-
- [x] Confirm `'auto'`/`'any'` typecheck as `TFormFieldType`
|
|
152
|
-
(`TFormFieldValueType` already maps them to `any`)
|
|
153
|
-
- [x] Stories: picker (`Empty`), inferred-from-value (`InferredInteger`,
|
|
154
|
-
`InferredText`), concrete (`ConcreteString`), null (`Nullable`),
|
|
155
|
-
allowed-types subset, no-soft, and `FormEngine`-with-auto-field
|
|
156
|
-
(`ViaFormEngine`)
|
|
157
|
-
- [x] Tests: story play tests cover resolution + null + concrete + inference
|
|
158
|
-
+ the FormEngine chain (run via `test-storybook`, 8/8 pass). No
|
|
159
|
-
separate jest file — fields are tested via stories in this repo.
|
|
160
|
-
- [x] Prod typecheck, eslint, storybook play tests pass
|
|
161
|
-
- [ ] **STOP — user verifies in browser** before commit
|
|
162
|
-
|
|
163
|
-
## Out of scope
|
|
164
|
-
|
|
165
|
-
- ~~Bare `soft*` types passed directly to `FormField`/`TemplateField`.~~
|
|
166
|
-
**Done** (2026-06-09 follow-up): `FormField.renderField` strips the
|
|
167
|
-
`soft` prefix, `binary` was added to the `long-string` case, and both
|
|
168
|
-
`mapQorusTypeToFormFieldType` copies strip `soft`. Verified by
|
|
169
|
-
`Field.stories.tsx` (`SoftInteger`, `Binary`).
|
|
170
|
-
- `type-depends-on` / `requestFieldData` cross-field resolution (IDE-only)
|
|
171
|
-
- `data-provider` / `connection` / `InterfaceSelector` branches from
|
|
172
|
-
qorus-ide's AutoField (bucket 3)
|
|
173
|
-
- Expression/template handling beyond what `TemplateField` already does
|
|
174
|
-
- The remaining bucket-1 fields (`byte-size`, `url`, `option_hash`,
|
|
175
|
-
`code-editor`, …) — separate task files; several get cheaper once
|
|
176
|
-
this lands
|