@qoretechnologies/reqraft 0.10.64 → 0.10.65-pr.137.g62fcecc
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/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 +25 -5
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
- package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
- package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.js +35 -17
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +54 -8
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
- 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 +207 -97
- 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 +29 -3
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +58 -10
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +542 -112
- 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.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +24 -3
- package/dist/components/form/engine/OptionFieldMessages.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 +12 -6
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +21 -0
- 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 +20 -10
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +36 -30
- 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/readFirst.d.ts +24 -8
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +77 -109
- 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 +2 -0
- package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
- package/dist/components/form/engine/rowFocus.js +26 -3
- 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 +3 -3
- package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
- package/dist/components/form/expressions/ExpressionField.d.ts +64 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +459 -100
- 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 +27 -9
- 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.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
- 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 +6 -3
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +24 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +138 -78
- 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/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 +40 -9
- 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 +7 -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 +26 -9
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- 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 +20 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +81 -36
- 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.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +17 -3
- 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 +4 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/number/Number.d.ts +6 -0
- package/dist/components/form/fields/number/Number.d.ts.map +1 -1
- package/dist/components/form/fields/number/Number.js +41 -6
- 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/rich-text/RichText.d.ts +8 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +188 -82
- 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 +49 -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 +2 -0
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +19 -10
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +8 -2
- 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 +13 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
- package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
- package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
- package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +572 -85
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- 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 +9 -11
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- 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 +10 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +23 -1
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.js +19 -7
- 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 +16 -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 +43 -0
- package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
- package/dist/components/smartEditor/CompletionMenu.js +196 -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 +164 -180
- package/dist/components/smartEditor/SmartEditor.js.map +1 -1
- package/dist/components/smartEditor/completionStyle.d.ts +27 -0
- package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
- package/dist/components/smartEditor/completionStyle.js +68 -0
- package/dist/components/smartEditor/completionStyle.js.map +1 -0
- package/dist/components/smartEditor/index.d.ts +5 -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 +18 -0
- package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
- package/dist/components/smartEditor/templateCompletions.js +94 -0
- package/dist/components/smartEditor/templateCompletions.js.map +1 -0
- package/dist/components/smartEditor/typedReferences.d.ts +21 -0
- package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
- package/dist/components/smartEditor/typedReferences.js +82 -0
- package/dist/components/smartEditor/typedReferences.js.map +1 -0
- package/dist/components/smartEditor/types.d.ts +33 -1
- package/dist/components/smartEditor/types.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
- package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
- 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 +279 -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/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/ReferencePicker.d.ts +9 -2
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +27 -6
- 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 +20 -2
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +9 -4
- 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 +38 -13
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/descriptionTooltip.d.ts +43 -0
- package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
- package/dist/helpers/descriptionTooltip.js +70 -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 +107 -2
- package/dist/helpers/expressions.d.ts.map +1 -1
- package/dist/helpers/expressions.js +223 -8
- 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/qorusTypeCatalogue.d.ts +53 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.js +262 -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/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.js +5 -2
- package/dist/helpers/templateText.js.map +1 -1
- package/dist/helpers/templates.d.ts +41 -14
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +152 -9
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts +9 -0
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +139 -33
- package/dist/helpers/validations.js.map +1 -1
- package/dist/hooks/useQorusTypes.d.ts +7 -15
- package/dist/hooks/useQorusTypes.d.ts.map +1 -1
- package/dist/hooks/useQorusTypes.js +25 -166
- 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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- 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/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 -5
- 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/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 -2620
- package/src/components/form/engine/CompactToolbar.tsx +0 -330
- package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
- package/src/components/form/engine/FormEngine.tsx +0 -4569
- package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
- package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
- package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
- package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
- 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 -742
- 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 -148
- package/src/components/form/engine/compactRowStyles.ts +0 -898
- package/src/components/form/engine/compactToolbarContext.ts +0 -69
- 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 -1077
- 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 -101
- 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 -137
- 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/Field.stories.tsx +0 -143
- package/src/components/form/fields/Field.tsx +0 -732
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
- 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 -1164
- 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 -120
- package/src/components/form/fields/long-string/LongString.tsx +0 -130
- 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 -139
- package/src/components/form/fields/number/Number.stories.tsx +0 -159
- package/src/components/form/fields/number/Number.tsx +0 -160
- 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 -46
- 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 -1717
- 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 -47
- package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
- package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
- 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 -129
- package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
- package/src/components/supportTicket/ReferencePicker.tsx +0 -563
- package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
- package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
- package/src/components/supportTicket/TicketHeader.tsx +0 -247
- 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 -354
- package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
- 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 -73
- package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
- package/src/components/ticketReferences/TicketReferences.tsx +0 -906
- package/src/components/ticketReferences/index.ts +0 -2
- package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
- package/src/components/ticketThread/TicketThread.tsx +0 -719
- 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 -249
- 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/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 -61
- 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,503 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Qore Technologies, s.r.o.
|
|
2
|
-
// The shell `TemplateField` renders when a field is in expression mode.
|
|
3
|
-
// Owns the `IExpression` value and offers two views of the same AST —
|
|
4
|
-
// Visual (the builder, Phase 3) and Text (DPQL, this phase). The DPQL text
|
|
5
|
-
// editor bridges to the AST via the LSP `dpql/parse` (text → AST on edit)
|
|
6
|
-
// and `dpql/serialize` (AST → text on entering Text mode); a debounced
|
|
7
|
-
// "Preview" box renders the current AST (`dpql/renderExpression`) when that
|
|
8
|
-
// rendering differs from the text the author typed.
|
|
9
|
-
import {
|
|
10
|
-
ReqoreButton,
|
|
11
|
-
ReqoreControlGroup,
|
|
12
|
-
ReqoreMessage,
|
|
13
|
-
ReqoreVerticalSpacer,
|
|
14
|
-
} from '@qoretechnologies/reqore';
|
|
15
|
-
import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
|
|
16
|
-
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
17
|
-
import { DpqlEditor, IDpqlEditorRef } from '../../dpqlEditor';
|
|
18
|
-
import { dpqlDisplayedText } from '../../dpqlEditor/dpqlHelpers';
|
|
19
|
-
import { TDpqlFields } from '../../dpqlEditor/types';
|
|
20
|
-
import { ExpressionBuilder, IExpressionBuilderProps } from './builder';
|
|
21
|
-
import { DpqlRendering } from './DpqlRendering';
|
|
22
|
-
import { IExpression, IExpressionSchema, IExpressionValue, TExpressionReorder } from './types';
|
|
23
|
-
import { useExpressions } from './useExpressions';
|
|
24
|
-
import { useRenderExpression } from './useRenderExpression';
|
|
25
|
-
import { isUntypedOptionType } from '../../../helpers/optionUiTypes';
|
|
26
|
-
|
|
27
|
-
export type TExpressionMode = 'visual' | 'text';
|
|
28
|
-
|
|
29
|
-
const PARSE_DEBOUNCE_MS = 300;
|
|
30
|
-
/**
|
|
31
|
-
* How long the Preview waits before catching up with the editor.
|
|
32
|
-
*
|
|
33
|
-
* It mirrors the AST, so without this it re-renders on every keystroke — a box
|
|
34
|
-
* appearing, changing and vanishing under the line being typed. Slightly
|
|
35
|
-
* SLOWER than the parse it follows, so the preview settles once after the text
|
|
36
|
-
* has stopped moving rather than twitching on the way there.
|
|
37
|
-
*/
|
|
38
|
-
const PREVIEW_DEBOUNCE_MS = 400;
|
|
39
|
-
/** Retry cadence for seeding the Text editor while its LSP session opens. */
|
|
40
|
-
const SEED_RETRY_MS = 400;
|
|
41
|
-
const SEED_MAX_TRIES = 20;
|
|
42
|
-
|
|
43
|
-
export interface IExpressionFieldProps {
|
|
44
|
-
/** The expression value: `{ is_expression:true, value:{ exp, args } }`. */
|
|
45
|
-
value?: IExpression;
|
|
46
|
-
/**
|
|
47
|
-
* `remove` is the builder's exit signal (last expression deleted) — hosts
|
|
48
|
-
* like `TemplateField` use it to leave expression mode.
|
|
49
|
-
*/
|
|
50
|
-
onChange: (value: IExpression, remove?: boolean) => void;
|
|
51
|
-
/** The field's declared type — the expression's expected return type. */
|
|
52
|
-
type?: string;
|
|
53
|
-
returnType?: string | string[];
|
|
54
|
-
readOnly?: boolean;
|
|
55
|
-
/** Catalogue override (stories / tests); otherwise fetched from the server. */
|
|
56
|
-
expressions?: IExpressionSchema[];
|
|
57
|
-
/** A data provider's per-action expressions endpoint (extra expressions). */
|
|
58
|
-
expressionsUrl?: string;
|
|
59
|
-
/** Templates for the builder's operand fields (Visual mode). */
|
|
60
|
-
localTemplates?: IReqoreFormTemplates;
|
|
61
|
-
/** Forwarded to the builder — server-handled expression evaluation. */
|
|
62
|
-
serverHandled?: boolean;
|
|
63
|
-
/**
|
|
64
|
-
* SEAM (reqraft): the builder's `extraActions` slot, forwarded. Hosts mount
|
|
65
|
-
* this shell, not the builder, so a seam that stops at the builder is
|
|
66
|
-
* unreachable from the component they actually use — which is how the
|
|
67
|
-
* IDE's AI-assist button vanished the moment it adopted the shell. Same
|
|
68
|
-
* contract as `IExpressionBuilderProps['extraActions']`: a panel-action
|
|
69
|
-
* array, or a factory that receives each card's `selectedExpression` and
|
|
70
|
-
* `value`.
|
|
71
|
-
*/
|
|
72
|
-
extraActions?: IExpressionBuilderProps['extraActions'];
|
|
73
|
-
/** Optional data-provider context for DPQL `@field` completions in Text mode. */
|
|
74
|
-
provider?: string;
|
|
75
|
-
recordType?: string;
|
|
76
|
-
/**
|
|
77
|
-
* The record's fields for the Text view, for a record no provider has: every field the expression may
|
|
78
|
-
* use is offered there, as in the Visual view (see `IDpqlEditorProps.fields`).
|
|
79
|
-
*/
|
|
80
|
-
fields?: TDpqlFields;
|
|
81
|
-
/** Initial editor mode (default `visual`). */
|
|
82
|
-
defaultMode?: TExpressionMode;
|
|
83
|
-
/**
|
|
84
|
-
* SEAM (reqraft): the host's per-`ui_type` editors, forwarded to the
|
|
85
|
-
* builder's operand fields. Without them an operand typed with one of the
|
|
86
|
-
* CONSUMER's ui_types renders "Unknown type!".
|
|
87
|
-
*/
|
|
88
|
-
componentOverrides?: Record<string, React.FC<any>>;
|
|
89
|
-
size?: string;
|
|
90
|
-
/** Forwarded to the builder — operand reordering for varargs expressions. */
|
|
91
|
-
reorder?: TExpressionReorder;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export const ExpressionField = memo(
|
|
95
|
-
({
|
|
96
|
-
value,
|
|
97
|
-
onChange,
|
|
98
|
-
type,
|
|
99
|
-
returnType,
|
|
100
|
-
readOnly,
|
|
101
|
-
expressions: expressionsOverride,
|
|
102
|
-
expressionsUrl,
|
|
103
|
-
localTemplates,
|
|
104
|
-
serverHandled,
|
|
105
|
-
extraActions,
|
|
106
|
-
provider,
|
|
107
|
-
fields,
|
|
108
|
-
recordType,
|
|
109
|
-
defaultMode = 'visual',
|
|
110
|
-
size,
|
|
111
|
-
componentOverrides,
|
|
112
|
-
reorder,
|
|
113
|
-
}: IExpressionFieldProps) => {
|
|
114
|
-
const { expressions } = useExpressions({
|
|
115
|
-
override: expressionsOverride,
|
|
116
|
-
expressionsUrl,
|
|
117
|
-
});
|
|
118
|
-
const { renderRich } = useRenderExpression();
|
|
119
|
-
|
|
120
|
-
const [mode, setMode] = useState<TExpressionMode>(defaultMode);
|
|
121
|
-
/* The server's rendering of the current AST; empty until it has one. There is
|
|
122
|
-
no client-side stand-in — see `useRenderExpression`. */
|
|
123
|
-
const [preview, setPreview] = useState('');
|
|
124
|
-
|
|
125
|
-
// Text mode state. `text` is the DPQL string the editor shows; the AST
|
|
126
|
-
// (`value`) stays the source of truth, kept in sync via parse-on-edit.
|
|
127
|
-
const [text, setText] = useState('');
|
|
128
|
-
/* The text the current AST was parsed FROM.
|
|
129
|
-
*
|
|
130
|
-
* The preview renders the AST, and the AST only moves on a SUCCESSFUL
|
|
131
|
-
* parse — so while an edit is mid-flight or simply invalid, the AST still
|
|
132
|
-
* describes the last thing that parsed. Showing it then states something
|
|
133
|
-
* the editor does not contain: deleting the `2` from `1 + 2` left
|
|
134
|
-
* "Unexpected end of input" sitting directly above a Preview confidently
|
|
135
|
-
* reading `1 + 2`. */
|
|
136
|
-
const [astText, setAstText] = useState('');
|
|
137
|
-
/**
|
|
138
|
-
* The server's answer to "can this expression's result satisfy the type
|
|
139
|
-
* this field declares?". `null` when nothing has been asked, or when the
|
|
140
|
-
* field declares no type worth asking about.
|
|
141
|
-
*/
|
|
142
|
-
const [typeCheck, setTypeCheck] = useState<{
|
|
143
|
-
compatible: boolean;
|
|
144
|
-
mayFail: boolean;
|
|
145
|
-
inferred?: string;
|
|
146
|
-
target?: string;
|
|
147
|
-
fix?: string;
|
|
148
|
-
} | null>(null);
|
|
149
|
-
const dpqlRef = useRef<IDpqlEditorRef>(null);
|
|
150
|
-
const parseTimer = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
151
|
-
|
|
152
|
-
const ast = useMemo<IExpressionValue | undefined>(() => value?.value, [value]);
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* The type the expression's result has to satisfy, sent with every parse.
|
|
156
|
-
*
|
|
157
|
-
* `auto` and `any` are left out deliberately: they accept anything, so the
|
|
158
|
-
* server would answer "compatible" for everything and the round trip would
|
|
159
|
-
* buy nothing. A field offering a CHOICE of return types has no single
|
|
160
|
-
* answer either, so it asks nothing rather than asking about the wrong one.
|
|
161
|
-
*/
|
|
162
|
-
const targetType = useMemo<string | undefined>(() => {
|
|
163
|
-
const declared = Array.isArray(returnType) ? undefined : (returnType ?? type);
|
|
164
|
-
return declared && !isUntypedOptionType(declared) ? declared : undefined;
|
|
165
|
-
}, [returnType, type]);
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Read the type analysis off a parse result, or clear it.
|
|
169
|
-
*
|
|
170
|
-
* "Fits" is read from the whole answer, not `type_compatible` alone. A
|
|
171
|
-
* conversion that exists and cannot fail — a number used as text — is a
|
|
172
|
-
* fit as far as the author is concerned, and reporting it is exactly the
|
|
173
|
-
* noise the message below is written to avoid.
|
|
174
|
-
*/
|
|
175
|
-
const readTypeCheck = useCallback(
|
|
176
|
-
(result?: { type_compatible?: boolean; auto_coercible?: boolean;
|
|
177
|
-
coercion_may_fail?: boolean; inferred_type?: string; target_type?: string;
|
|
178
|
-
suggested_fix?: { text: string } }): void => {
|
|
179
|
-
if (!result || result.type_compatible === undefined) {
|
|
180
|
-
setTypeCheck(null);
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
const convertsSafely = !!result.auto_coercible && !result.coercion_may_fail;
|
|
184
|
-
setTypeCheck({
|
|
185
|
-
compatible: !!result.type_compatible || convertsSafely,
|
|
186
|
-
mayFail: !!result.coercion_may_fail,
|
|
187
|
-
inferred: result.inferred_type,
|
|
188
|
-
target: result.target_type,
|
|
189
|
-
fix: result.suggested_fix?.text,
|
|
190
|
-
});
|
|
191
|
-
},
|
|
192
|
-
[]
|
|
193
|
-
);
|
|
194
|
-
|
|
195
|
-
// Keep a readable rendering of the current expression in sync — the
|
|
196
|
-
// single live mirror of the AST (the server's `dpql/renderExpression`).
|
|
197
|
-
//
|
|
198
|
-
// Debounced: it follows the AST, which follows the text, so rendering it
|
|
199
|
-
// eagerly put a box under the cursor that appeared, changed and vanished
|
|
200
|
-
// while the author was still typing.
|
|
201
|
-
useEffect(() => {
|
|
202
|
-
let live = true;
|
|
203
|
-
const timer = setTimeout(() => {
|
|
204
|
-
renderRich(ast ?? {}).then((r) => {
|
|
205
|
-
if (live) setPreview(r?.text ?? '');
|
|
206
|
-
});
|
|
207
|
-
}, PREVIEW_DEBOUNCE_MS);
|
|
208
|
-
return () => {
|
|
209
|
-
live = false;
|
|
210
|
-
clearTimeout(timer);
|
|
211
|
-
};
|
|
212
|
-
}, [renderRich, ast]);
|
|
213
|
-
|
|
214
|
-
// Tracks whether the user has typed since entering Text mode, so a
|
|
215
|
-
// slow seed response can't clobber their input.
|
|
216
|
-
const userTypedRef = useRef(false);
|
|
217
|
-
|
|
218
|
-
/* A cleared value must clear the editor with it.
|
|
219
|
-
*
|
|
220
|
-
* "Clear value" empties the option (`handleValueChange(name, undefined)`),
|
|
221
|
-
* but the DPQL text is local state seeded once on entering Text mode, and
|
|
222
|
-
* the seeding effect returns early for an empty AST — it exists to fill the
|
|
223
|
-
* editor, not to empty it. So the value went and the text stayed: the row
|
|
224
|
-
* reported "This field is required" while still showing `1 + 2`, which
|
|
225
|
-
* reads as the clear having silently failed.
|
|
226
|
-
*
|
|
227
|
-
* Only an AST that HAD content and lost it clears the box. A field that
|
|
228
|
-
* simply starts empty is left alone, so this cannot wipe what an author is
|
|
229
|
-
* part-way through typing before their first parse lands.
|
|
230
|
-
*/
|
|
231
|
-
const hadExpression = useRef(false);
|
|
232
|
-
useEffect(() => {
|
|
233
|
-
/* GONE, not merely incomplete.
|
|
234
|
-
*
|
|
235
|
-
* The first cut asked whether the AST still had an `exp`, and that is a
|
|
236
|
-
* state the value passes THROUGH while the author types: a half-written
|
|
237
|
-
* expression parses to something without one. So typing `1 + 2` cleared
|
|
238
|
-
* the editor mid-keystroke and the text vanished under the cursor.
|
|
239
|
-
*
|
|
240
|
-
* A clear removes the value itself, so that is what to watch: `value`
|
|
241
|
-
* empty, not an AST that is between shapes. Typing never produces that —
|
|
242
|
-
* `handleDpqlChange` only emits on a SUCCESSFUL parse, so an incomplete
|
|
243
|
-
* expression leaves the previous value in place. */
|
|
244
|
-
if (ast) {
|
|
245
|
-
hadExpression.current = true;
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
if (hadExpression.current) {
|
|
249
|
-
hadExpression.current = false;
|
|
250
|
-
userTypedRef.current = false;
|
|
251
|
-
setText('');
|
|
252
|
-
}
|
|
253
|
-
}, [ast]);
|
|
254
|
-
|
|
255
|
-
// Text mode: parse the DPQL into the AST (debounced).
|
|
256
|
-
/* The session may not be attached when the debounce fires — the editor
|
|
257
|
-
mounts on the render that flips the mode, and its LSP session comes up
|
|
258
|
-
after that. `dpqlRef.current?.parse?.()` is optional all the way down, so
|
|
259
|
-
an early call resolves `undefined`, `readTypeCheck` CLEARS the analysis,
|
|
260
|
-
and nothing asks again: the author types once into a fresh Text field and
|
|
261
|
-
is told nothing about the type until they happen to type another
|
|
262
|
-
character.
|
|
263
|
-
|
|
264
|
-
The seeding effect below already retries for this exact reason
|
|
265
|
-
("`serialize` resolves '' until the editor's LSP session is ready"); the
|
|
266
|
-
parse path needed the same care and did not have it. Same budget as
|
|
267
|
-
seeding, so a session that never arrives gives up rather than spinning.
|
|
268
|
-
|
|
269
|
-
Found by CI, not locally: the session is up before the debounce on a
|
|
270
|
-
fast machine, so the story asserting the type message passed here every
|
|
271
|
-
time and failed on the runner. */
|
|
272
|
-
const handleDpqlChange = useCallback(
|
|
273
|
-
(next: string) => {
|
|
274
|
-
userTypedRef.current = true;
|
|
275
|
-
setText(next);
|
|
276
|
-
if (parseTimer.current) clearTimeout(parseTimer.current);
|
|
277
|
-
let tries = 0;
|
|
278
|
-
const runParse = async (): Promise<void> => {
|
|
279
|
-
const parse = dpqlRef.current?.parse;
|
|
280
|
-
if (!parse) {
|
|
281
|
-
if (++tries < SEED_MAX_TRIES) {
|
|
282
|
-
parseTimer.current = setTimeout(runParse, SEED_RETRY_MS);
|
|
283
|
-
}
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
const result = await parse(next, targetType);
|
|
287
|
-
readTypeCheck(result);
|
|
288
|
-
if (result?.success && result.expression) {
|
|
289
|
-
setAstText(next);
|
|
290
|
-
// `dpql/parse` returns the field-ready `{ is_expression, value }`.
|
|
291
|
-
onChange(result.expression as IExpression);
|
|
292
|
-
}
|
|
293
|
-
};
|
|
294
|
-
parseTimer.current = setTimeout(runParse, PARSE_DEBOUNCE_MS);
|
|
295
|
-
},
|
|
296
|
-
[onChange, targetType, readTypeCheck]
|
|
297
|
-
);
|
|
298
|
-
|
|
299
|
-
/** Whether this visit to Text mode has already put the AST in the editor. */
|
|
300
|
-
const seededRef = useRef(false);
|
|
301
|
-
|
|
302
|
-
/* Seed the Text editor from the AST whenever Text mode becomes active
|
|
303
|
-
* (including a `defaultMode='text'` mount). This must run as an effect: the
|
|
304
|
-
* editor only mounts on the same render that flips the mode (so `dpqlRef`
|
|
305
|
-
* is null inside the click handler), and `serialize` resolves '' until the
|
|
306
|
-
* editor's LSP session is ready — hence the brief retry loop.
|
|
307
|
-
*
|
|
308
|
-
* It waits for an AST, because the AST can arrive AFTER the mode does. A
|
|
309
|
-
* host flips this shell into Text mode on the very render that accepts an
|
|
310
|
-
* expression, and the value it passes on that render is still the TEXT the
|
|
311
|
-
* author typed — the parsed AST only comes back through the form one render
|
|
312
|
-
* later. Keyed on the mode alone, the effect had already had its only turn
|
|
313
|
-
* by then: it found nothing to serialize, returned, and nothing asked
|
|
314
|
-
* again. The author landed in an empty editor with a Preview of their own
|
|
315
|
-
* expression sitting beside it, which reads as the text having been thrown
|
|
316
|
-
* away.
|
|
317
|
-
*
|
|
318
|
-
* Seeding happens at most ONCE per visit, and that is what makes watching
|
|
319
|
-
* the AST safe: `userTypedRef` guards what is being typed, but the AST
|
|
320
|
-
* MOVES as the author types — every successful parse replaces it — so an
|
|
321
|
-
* effect that re-seeded on each new AST would fight them for the editor. */
|
|
322
|
-
useEffect(() => {
|
|
323
|
-
if (mode !== 'text') {
|
|
324
|
-
// Leaving Text asks the question again on the next visit; the typing
|
|
325
|
-
// flag goes with it, or a stale one would suppress that visit's seed.
|
|
326
|
-
seededRef.current = false;
|
|
327
|
-
userTypedRef.current = false;
|
|
328
|
-
return undefined;
|
|
329
|
-
}
|
|
330
|
-
if (seededRef.current || userTypedRef.current) return undefined;
|
|
331
|
-
if (!ast?.exp) return undefined;
|
|
332
|
-
const seedAst = ast;
|
|
333
|
-
let cancelled = false;
|
|
334
|
-
let timer: ReturnType<typeof setTimeout> | null = null;
|
|
335
|
-
let tries = 0;
|
|
336
|
-
const seed = async (): Promise<void> => {
|
|
337
|
-
const t = await dpqlRef.current?.serialize?.(seedAst);
|
|
338
|
-
if (cancelled || userTypedRef.current) return;
|
|
339
|
-
if (t) {
|
|
340
|
-
seededRef.current = true;
|
|
341
|
-
setText(t);
|
|
342
|
-
setAstText(t);
|
|
343
|
-
} else if (++tries < SEED_MAX_TRIES) {
|
|
344
|
-
timer = setTimeout(seed, SEED_RETRY_MS);
|
|
345
|
-
}
|
|
346
|
-
};
|
|
347
|
-
void seed();
|
|
348
|
-
return () => {
|
|
349
|
-
cancelled = true;
|
|
350
|
-
if (timer) clearTimeout(timer);
|
|
351
|
-
};
|
|
352
|
-
}, [mode, ast]);
|
|
353
|
-
|
|
354
|
-
// Switch to Text: the seeding effect above serializes the AST once
|
|
355
|
-
// the editor's session is up.
|
|
356
|
-
const enterTextMode = useCallback(() => {
|
|
357
|
-
setMode('text');
|
|
358
|
-
}, []);
|
|
359
|
-
|
|
360
|
-
// Switch to Visual: flush any pending parse so the AST is current.
|
|
361
|
-
const enterVisualMode = useCallback(async () => {
|
|
362
|
-
if (parseTimer.current) clearTimeout(parseTimer.current);
|
|
363
|
-
if (mode === 'text' && text) {
|
|
364
|
-
const result = await dpqlRef.current?.parse?.(text, targetType);
|
|
365
|
-
readTypeCheck(result);
|
|
366
|
-
if (result?.success && result.expression) {
|
|
367
|
-
onChange(result.expression as IExpression);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
setMode('visual');
|
|
371
|
-
}, [mode, text, onChange, targetType, readTypeCheck]);
|
|
372
|
-
|
|
373
|
-
useEffect(
|
|
374
|
-
() => () => {
|
|
375
|
-
if (parseTimer.current) clearTimeout(parseTimer.current);
|
|
376
|
-
},
|
|
377
|
-
[]
|
|
378
|
-
);
|
|
379
|
-
|
|
380
|
-
/* What the Preview has to add: `none` until the server's rendering of the
|
|
381
|
-
text now showing exists, `repeats` when it reads exactly as that text does
|
|
382
|
-
(so it is not drawn — see below), `shown` otherwise. Exposed on the field,
|
|
383
|
-
because a Preview correctly left out leaves nothing else to observe. */
|
|
384
|
-
const previewState =
|
|
385
|
-
!preview || astText.trim() !== text.trim() ? 'none'
|
|
386
|
-
: dpqlDisplayedText(preview).trim() === dpqlDisplayedText(text).trim() ? 'repeats'
|
|
387
|
-
: 'shown';
|
|
388
|
-
|
|
389
|
-
return (
|
|
390
|
-
<ReqoreControlGroup
|
|
391
|
-
vertical
|
|
392
|
-
fluid
|
|
393
|
-
gapSize='small'
|
|
394
|
-
className='expression-field'
|
|
395
|
-
data-preview={mode === 'text' ? previewState : undefined}
|
|
396
|
-
>
|
|
397
|
-
<ReqoreControlGroup gapSize='small' fluid>
|
|
398
|
-
<ReqoreButton
|
|
399
|
-
icon='NodeTree'
|
|
400
|
-
active={mode === 'visual'}
|
|
401
|
-
onClick={enterVisualMode}
|
|
402
|
-
disabled={readOnly}
|
|
403
|
-
size={size as any}
|
|
404
|
-
>
|
|
405
|
-
Visual
|
|
406
|
-
</ReqoreButton>
|
|
407
|
-
<ReqoreButton
|
|
408
|
-
icon='CodeLine'
|
|
409
|
-
active={mode === 'text'}
|
|
410
|
-
onClick={enterTextMode}
|
|
411
|
-
disabled={readOnly}
|
|
412
|
-
size={size as any}
|
|
413
|
-
>
|
|
414
|
-
Text
|
|
415
|
-
</ReqoreButton>
|
|
416
|
-
</ReqoreControlGroup>
|
|
417
|
-
|
|
418
|
-
{mode === 'text' ? (
|
|
419
|
-
<>
|
|
420
|
-
<DpqlEditor
|
|
421
|
-
ref={dpqlRef}
|
|
422
|
-
value={text}
|
|
423
|
-
onChange={handleDpqlChange}
|
|
424
|
-
provider={provider}
|
|
425
|
-
recordType={recordType}
|
|
426
|
-
fields={fields}
|
|
427
|
-
readOnly={readOnly}
|
|
428
|
-
height='48px'
|
|
429
|
-
/>
|
|
430
|
-
{/* What the server said about the result's type, when the field
|
|
431
|
-
declares one to check against.
|
|
432
|
-
|
|
433
|
-
Nothing is shown when the expression already fits, and nothing
|
|
434
|
-
is shown when the conversion is CERTAIN either — a number used
|
|
435
|
-
as text always works, and a warning about something that cannot
|
|
436
|
-
fail is what teaches people to ignore the ones that can. So this
|
|
437
|
-
appears for exactly two cases: the conversion is impossible
|
|
438
|
-
(danger), or it is attempted and may fail on the day (warning,
|
|
439
|
-
and the run checks the value itself). */}
|
|
440
|
-
{typeCheck && !typeCheck.compatible && (
|
|
441
|
-
<ReqoreMessage
|
|
442
|
-
intent={typeCheck.mayFail ? 'warning' : 'danger'}
|
|
443
|
-
size='small'
|
|
444
|
-
flat
|
|
445
|
-
opaque={false}
|
|
446
|
-
title={typeCheck.mayFail ? 'This may not fit' : 'This does not fit'}
|
|
447
|
-
>
|
|
448
|
-
{`The expression returns ${typeCheck.inferred}, and this field holds ${typeCheck.target}.`}
|
|
449
|
-
{typeCheck.mayFail ?
|
|
450
|
-
' That conversion is attempted rather than guaranteed, so the value itself is checked when it runs.'
|
|
451
|
-
: ''}
|
|
452
|
-
{typeCheck.fix ? (
|
|
453
|
-
<>
|
|
454
|
-
<ReqoreVerticalSpacer height={6} />
|
|
455
|
-
<DpqlRendering text={typeCheck.fix} data-testid='expression-type-fix' />
|
|
456
|
-
</>
|
|
457
|
-
) : null}
|
|
458
|
-
</ReqoreMessage>
|
|
459
|
-
)}
|
|
460
|
-
|
|
461
|
-
{/* Shown only when it ADDS something.
|
|
462
|
-
|
|
463
|
-
It is a rendering of the AST, so for most text it repeats the
|
|
464
|
-
line directly above it — `1 + 2` previewing as `1 + 2` is a
|
|
465
|
-
second copy that flickers as you type. It earns the space when
|
|
466
|
-
the rendering DIFFERS: a normalised form, or wording the DPQL
|
|
467
|
-
does not have (`contains "es" (ignore case)`). Both are compared
|
|
468
|
-
as they are DRAWN — a reference is a chip in either, so the quotes
|
|
469
|
-
DPQL writes around one do not count — and ignoring surrounding
|
|
470
|
-
whitespace, which the renderer does not preserve.
|
|
471
|
-
|
|
472
|
-
An empty query has nothing to render either, so the box appears
|
|
473
|
-
once there is a result rather than holding a placeholder. */}
|
|
474
|
-
{previewState === 'shown' ? (
|
|
475
|
-
<ReqoreMessage intent='info' size='small' title='Preview' flat opaque={false}>
|
|
476
|
-
<DpqlRendering text={preview} data-testid='expression-preview' />
|
|
477
|
-
</ReqoreMessage>
|
|
478
|
-
) : null}
|
|
479
|
-
</>
|
|
480
|
-
) : (
|
|
481
|
-
<ExpressionBuilder
|
|
482
|
-
value={value}
|
|
483
|
-
onChange={(v, remove) => onChange(v, remove)}
|
|
484
|
-
expressions={expressions}
|
|
485
|
-
// Default to `auto` when the field declares no return type, so a
|
|
486
|
-
// valid expression renders `muted` rather than `danger` (the
|
|
487
|
-
// builder's intent requires a truthy returnType).
|
|
488
|
-
returnType={(returnType ?? type ?? 'auto') as any}
|
|
489
|
-
readOnly={readOnly}
|
|
490
|
-
localTemplates={localTemplates ?? { items: [] }}
|
|
491
|
-
serverHandled={serverHandled}
|
|
492
|
-
componentOverrides={componentOverrides}
|
|
493
|
-
extraActions={extraActions}
|
|
494
|
-
size={size}
|
|
495
|
-
reorder={reorder}
|
|
496
|
-
/>
|
|
497
|
-
)}
|
|
498
|
-
</ReqoreControlGroup>
|
|
499
|
-
);
|
|
500
|
-
}
|
|
501
|
-
);
|
|
502
|
-
|
|
503
|
-
export default ExpressionField;
|