@qoretechnologies/reqraft 0.10.62 → 0.10.63-pr.142.g0b675cd
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 +21 -1
- package/dist/components/Description/describedControl.d.ts +48 -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 +10 -1
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +30 -13
- 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 +11 -6
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +47 -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 +151 -83
- 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 +34 -1
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +487 -87
- 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 +19 -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 +0 -1
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +12 -20
- 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 +41 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +396 -99
- package/dist/components/form/expressions/ExpressionField.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 +4 -2
- 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 +121 -77
- 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/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/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 +35 -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 +37 -0
- package/dist/components/form/expressions/textOfExpression.js.map +1 -0
- 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 +7 -7
- package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +20 -7
- 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 +611 -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 +190 -81
- 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 +5 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +11 -4
- 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 +83 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +535 -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 +8 -4
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- package/dist/components/form/fields/template/writtenAsText.d.ts +55 -0
- package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
- package/dist/components/form/fields/template/writtenAsText.js +188 -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 +15 -7
- 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 +1 -1
- 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 +51 -136
- 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 +66 -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/types.d.ts +12 -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 +22 -7
- package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspHover.js +86 -17
- 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 +36 -11
- 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/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/templates.d.ts +26 -1
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +41 -6
- 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/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,808 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Qore Technologies, s.r.o.
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
ReqoreCallout,
|
|
5
|
-
ReqoreControlGroup,
|
|
6
|
-
ReqoreMenu,
|
|
7
|
-
ReqoreMenuDivider,
|
|
8
|
-
ReqoreMenuItem,
|
|
9
|
-
ReqoreMessage,
|
|
10
|
-
ReqorePanel,
|
|
11
|
-
ReqoreSpinner,
|
|
12
|
-
useReqoreTheme,
|
|
13
|
-
} from '@qoretechnologies/reqore';
|
|
14
|
-
import { ReqorePopover } from '@qoretechnologies/reqore/dist/components/Popover';
|
|
15
|
-
import {
|
|
16
|
-
ReqoreRichTextEditor,
|
|
17
|
-
TReqoreRichTextEditorRef,
|
|
18
|
-
} from '@qoretechnologies/reqore/dist/components/RichTextEditor';
|
|
19
|
-
import { getReadableColor } from '@qoretechnologies/reqore/dist/helpers/colors';
|
|
20
|
-
import { IReqoreTooltip } from '@qoretechnologies/reqore/dist/types/global';
|
|
21
|
-
import React, {
|
|
22
|
-
forwardRef,
|
|
23
|
-
memo,
|
|
24
|
-
useCallback,
|
|
25
|
-
useEffect,
|
|
26
|
-
useImperativeHandle,
|
|
27
|
-
useMemo,
|
|
28
|
-
useReducer,
|
|
29
|
-
useRef,
|
|
30
|
-
} from 'react';
|
|
31
|
-
import { Editor, NodeEntry, Range, Transforms } from 'slate';
|
|
32
|
-
import { ReactEditor, RenderLeafProps } from 'slate-react';
|
|
33
|
-
import { ILspSignatureHelp } from '../../utils/lspClient.types';
|
|
34
|
-
import { useEmittedValues } from '../form/fields/emittedValues';
|
|
35
|
-
import { defaultSlateConverter, expandSnippet, lspPositionToOffset } from './helpers';
|
|
36
|
-
import { MarkdownDoc } from './MarkdownDoc';
|
|
37
|
-
import { COMPLETION_KIND_INTENTS, SMART_EDITOR_OVERLAY_EFFECT } from './styling';
|
|
38
|
-
import { ISlateElement, ISmartEditorProps, TCompletionInserter } from './types';
|
|
39
|
-
import { ICompletionDropdownItem, useLspAutocomplete } from './useLspAutocomplete';
|
|
40
|
-
import { severityToIntent, useLspDiagnosticDecorations } from './useLspDiagnosticDecorations';
|
|
41
|
-
import { useLspHover } from './useLspHover';
|
|
42
|
-
import { useLspSemanticTokens } from './useLspSemanticTokens';
|
|
43
|
-
import { useLspSignatureHelp } from './useLspSignatureHelp';
|
|
44
|
-
|
|
45
|
-
// One-Dark-ish palette keyed off the LSP semantic-token legend; absent
|
|
46
|
-
// types fall through to Slate's default text colour.
|
|
47
|
-
const SEMANTIC_TOKEN_COLORS: Record<string, string> = {
|
|
48
|
-
keyword: '#c678dd', // purple — control flow, `in`, `not`, `between`, …
|
|
49
|
-
operator: '#56b6c2', // cyan — ==, !=, &&, ||, =~, !~, …
|
|
50
|
-
string: '#98c379', // green — "Alice", 'foo'
|
|
51
|
-
number: '#d19a66', // orange — 18, 3.14, 2e-3
|
|
52
|
-
comment: '#5c6370', // grey
|
|
53
|
-
variable: '#e06c75', // red-pink — `@field` references
|
|
54
|
-
parameter: '#e06c75', // red-pink — function parameters
|
|
55
|
-
property: '#e06c75', // red-pink — record properties
|
|
56
|
-
function: '#e5c07b', // yellow — DPQL built-ins (abs, now, coalesce…)
|
|
57
|
-
method: '#e5c07b', // yellow
|
|
58
|
-
class: '#e5c07b', // yellow — Qonsole resource names (`services`, …)
|
|
59
|
-
type: '#e5c07b', // yellow
|
|
60
|
-
regexp: '#d16969', // coral — kept distinct from operator cyan + variable pink
|
|
61
|
-
modifier: '#c678dd', // purple
|
|
62
|
-
decorator: '#c678dd', // purple
|
|
63
|
-
namespace: '#e5c07b', // yellow
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
// Kind chip + a Warning chip (Qonsole flags mutating verbs) for a
|
|
67
|
-
// completion row; undefined when neither applies.
|
|
68
|
-
function buildKindBadge(
|
|
69
|
-
item: ICompletionDropdownItem
|
|
70
|
-
): Record<string, unknown> | Array<Record<string, unknown>> | undefined {
|
|
71
|
-
const kindIntent =
|
|
72
|
-
item.metadata?.kind !== undefined ? COMPLETION_KIND_INTENTS[item.metadata.kind] : undefined;
|
|
73
|
-
const kindBadge =
|
|
74
|
-
item.kindLabel ?
|
|
75
|
-
{
|
|
76
|
-
label: item.kindLabel,
|
|
77
|
-
minimal: true as const,
|
|
78
|
-
size: 'small' as const,
|
|
79
|
-
intent: kindIntent,
|
|
80
|
-
}
|
|
81
|
-
: null;
|
|
82
|
-
const warningBadge =
|
|
83
|
-
item.warning ?
|
|
84
|
-
{
|
|
85
|
-
label: 'Warning',
|
|
86
|
-
size: 'small' as const,
|
|
87
|
-
intent: 'warning' as const,
|
|
88
|
-
tooltip: item.warning,
|
|
89
|
-
}
|
|
90
|
-
: null;
|
|
91
|
-
if (warningBadge && kindBadge) return [kindBadge, warningBadge];
|
|
92
|
-
if (warningBadge) return [warningBadge];
|
|
93
|
-
if (kindBadge) return kindBadge;
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Tooltip prop rendering a row's LSP `documentation` (markdown/plaintext),
|
|
98
|
-
// or undefined when there is none.
|
|
99
|
-
function buildDocTooltip(item: ICompletionDropdownItem) {
|
|
100
|
-
const doc = item.documentation;
|
|
101
|
-
if (!doc) return undefined;
|
|
102
|
-
const isMarkdown = typeof doc === 'object' && doc !== null && doc.kind === 'markdown';
|
|
103
|
-
const text = typeof doc === 'string' ? doc : (doc?.value ?? '');
|
|
104
|
-
if (!text) return undefined;
|
|
105
|
-
return {
|
|
106
|
-
content: <MarkdownDoc content={text} markdown={isMarkdown} />,
|
|
107
|
-
placement: 'right' as const,
|
|
108
|
-
delay: 200,
|
|
109
|
-
// The cast covers popover props missing from the older tooltip type.
|
|
110
|
-
flat: true,
|
|
111
|
-
transparent: true,
|
|
112
|
-
backgroundBlur: 20,
|
|
113
|
-
} as IReqoreTooltip;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Applies the server's `textEdit` (replacing the typed partial token so
|
|
117
|
-
// `-` + `--desc=` doesn't become `---desc=`), else inserts at the cursor.
|
|
118
|
-
// DPQL/Qonsole wrappers override this to insert tag chips.
|
|
119
|
-
const defaultCompletionInserter: TCompletionInserter = (item, editor, ctx) => {
|
|
120
|
-
const rawText = item.textEdit?.newText ?? item.insertText ?? item.label;
|
|
121
|
-
// Expand LSP snippet placeholders so `slice(${1:List Value})$0` doesn't
|
|
122
|
-
// leak `${…}$0` into the document.
|
|
123
|
-
const newText = item.insertTextFormat === 2 ? expandSnippet(rawText) : rawText;
|
|
124
|
-
|
|
125
|
-
// Replace mode — atomically swap the node at the chip's path.
|
|
126
|
-
if (ctx.replacementPath) {
|
|
127
|
-
const path = ctx.replacementPath;
|
|
128
|
-
Editor.withoutNormalizing(editor, () => {
|
|
129
|
-
Transforms.removeNodes(editor, { at: path });
|
|
130
|
-
Transforms.insertNodes(editor, [{ text: newText }] as any, {
|
|
131
|
-
at: path,
|
|
132
|
-
select: true,
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
try {
|
|
136
|
-
ReactEditor.focus(editor);
|
|
137
|
-
} catch {
|
|
138
|
-
// Editor may not be focusable in this render cycle.
|
|
139
|
-
}
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
if (item.textEdit) {
|
|
144
|
-
const startOffset = lspPositionToOffset(ctx.plainText, item.textEdit.range.start);
|
|
145
|
-
// Delete the partial token between the edit-range start and the caret.
|
|
146
|
-
const charsToDelete = Math.max(0, ctx.cursorOffset - startOffset);
|
|
147
|
-
for (let i = 0; i < charsToDelete; i++) {
|
|
148
|
-
Editor.deleteBackward(editor, { unit: 'character' });
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
Transforms.insertText(editor, newText);
|
|
153
|
-
try {
|
|
154
|
-
ReactEditor.focus(editor);
|
|
155
|
-
} catch {
|
|
156
|
-
// Editor may not be focused.
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
// Module-scoped so the reference is stable across renders — an inline
|
|
161
|
-
// object would defeat ReqoreMenuItem's memoization.
|
|
162
|
-
const COMPLETION_ITEM_STYLE: React.CSSProperties = { fontFamily: 'monospace' };
|
|
163
|
-
|
|
164
|
-
interface ICompletionMenuItemProps {
|
|
165
|
-
item: ICompletionDropdownItem;
|
|
166
|
-
isFocused: boolean;
|
|
167
|
-
onSelect: (item: ICompletionDropdownItem) => void;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Memoized completion row so badge/tooltip derivation runs once per item,
|
|
171
|
-
// not on every SmartEditor re-render.
|
|
172
|
-
const CompletionMenuItem = memo(({ item, isFocused, onSelect }: ICompletionMenuItemProps) => {
|
|
173
|
-
const badge = useMemo(() => buildKindBadge(item), [item]);
|
|
174
|
-
const tooltip = useMemo(() => buildDocTooltip(item), [item]);
|
|
175
|
-
const handleClick = useCallback(() => onSelect(item), [onSelect, item]);
|
|
176
|
-
|
|
177
|
-
return (
|
|
178
|
-
<ReqoreMenuItem
|
|
179
|
-
icon={item.icon as any}
|
|
180
|
-
label={item.label}
|
|
181
|
-
description={item.description}
|
|
182
|
-
badge={badge as any}
|
|
183
|
-
tooltip={tooltip as any}
|
|
184
|
-
selected={isFocused}
|
|
185
|
-
active={isFocused}
|
|
186
|
-
minimal
|
|
187
|
-
scrollIntoView={isFocused}
|
|
188
|
-
onClick={handleClick}
|
|
189
|
-
compact
|
|
190
|
-
style={COMPLETION_ITEM_STYLE}
|
|
191
|
-
/>
|
|
192
|
-
);
|
|
193
|
-
});
|
|
194
|
-
CompletionMenuItem.displayName = 'CompletionMenuItem';
|
|
195
|
-
|
|
196
|
-
interface ISignatureHelpPillProps {
|
|
197
|
-
signature: ILspSignatureHelp;
|
|
198
|
-
position: { left: number; top: number };
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// Memoized signature pill. Prefers ABOVE the caret line, falling back to
|
|
202
|
-
// BELOW when that would clip the viewport top; horizontally clamped to the
|
|
203
|
-
// viewport.
|
|
204
|
-
const SignatureHelpPill = memo(({ signature, position }: ISignatureHelpPillProps) => {
|
|
205
|
-
const theme = useReqoreTheme();
|
|
206
|
-
|
|
207
|
-
const sig = signature.signatures[signature.activeSignature ?? 0];
|
|
208
|
-
if (!sig) return null;
|
|
209
|
-
|
|
210
|
-
const activeIdx = sig.activeParameter ?? signature.activeParameter ?? 0;
|
|
211
|
-
const params = sig.parameters ?? [];
|
|
212
|
-
const activeParam = params[activeIdx];
|
|
213
|
-
|
|
214
|
-
const activeParamColor = theme.intents?.info ?? getReadableColor(theme);
|
|
215
|
-
|
|
216
|
-
// Bold the active parameter inside the label — by [start, end] tuple or
|
|
217
|
-
// by literal-name match. Plain `<strong>` (not `ReqoreSpan`, whose
|
|
218
|
-
// `inline-block` would break the flowing label text).
|
|
219
|
-
let label: React.ReactNode = sig.label;
|
|
220
|
-
if (activeParam) {
|
|
221
|
-
if (Array.isArray(activeParam.label)) {
|
|
222
|
-
const [start, end] = activeParam.label;
|
|
223
|
-
label = (
|
|
224
|
-
<>
|
|
225
|
-
{sig.label.slice(0, start)}
|
|
226
|
-
<strong style={{ color: activeParamColor }}>{sig.label.slice(start, end)}</strong>
|
|
227
|
-
{sig.label.slice(end)}
|
|
228
|
-
</>
|
|
229
|
-
);
|
|
230
|
-
} else {
|
|
231
|
-
const name = activeParam.label;
|
|
232
|
-
const idx = sig.label.indexOf(name);
|
|
233
|
-
if (idx >= 0) {
|
|
234
|
-
label = (
|
|
235
|
-
<>
|
|
236
|
-
{sig.label.slice(0, idx)}
|
|
237
|
-
<strong style={{ color: activeParamColor }}>{name}</strong>
|
|
238
|
-
{sig.label.slice(idx + name.length)}
|
|
239
|
-
</>
|
|
240
|
-
);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
const paramDoc =
|
|
246
|
-
activeParam && activeParam.documentation ?
|
|
247
|
-
typeof activeParam.documentation === 'string' ?
|
|
248
|
-
activeParam.documentation
|
|
249
|
-
: activeParam.documentation.value
|
|
250
|
-
: null;
|
|
251
|
-
|
|
252
|
-
const PILL_HEIGHT_ESTIMATE = 64;
|
|
253
|
-
const PILL_WIDTH_ESTIMATE = 480; // matches maxWidth below
|
|
254
|
-
const VIEWPORT_MARGIN = 8;
|
|
255
|
-
const lineHeightEstimate = 18;
|
|
256
|
-
const placeBelow = position.top < PILL_HEIGHT_ESTIMATE + 8;
|
|
257
|
-
const pillTop = placeBelow ? position.top + lineHeightEstimate + 4 : position.top - 6;
|
|
258
|
-
const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : 1920;
|
|
259
|
-
const maxLeft = viewportWidth - PILL_WIDTH_ESTIMATE - VIEWPORT_MARGIN;
|
|
260
|
-
const pillLeft = Math.max(VIEWPORT_MARGIN, Math.min(position.left, maxLeft));
|
|
261
|
-
|
|
262
|
-
return (
|
|
263
|
-
<ReqorePanel
|
|
264
|
-
// Remount on placement flip so `transform` recalculates cleanly.
|
|
265
|
-
key={`sig-${position.left}-${position.top}-${placeBelow}`}
|
|
266
|
-
size='small'
|
|
267
|
-
opacity={0.85}
|
|
268
|
-
customTheme={{ main: '#11181c' }}
|
|
269
|
-
blur={5}
|
|
270
|
-
style={{
|
|
271
|
-
position: 'fixed',
|
|
272
|
-
top: pillTop,
|
|
273
|
-
left: pillLeft,
|
|
274
|
-
transform: placeBelow ? undefined : 'translate(0, -100%)',
|
|
275
|
-
maxWidth: 480,
|
|
276
|
-
minWidth: 280,
|
|
277
|
-
fontSize: 12,
|
|
278
|
-
boxShadow: '0 4px 16px rgba(0,0,0,0.3)',
|
|
279
|
-
pointerEvents: 'none',
|
|
280
|
-
zIndex: 100,
|
|
281
|
-
}}
|
|
282
|
-
>
|
|
283
|
-
<ReqoreCallout
|
|
284
|
-
size='small'
|
|
285
|
-
paddingSize='tiny'
|
|
286
|
-
style={{ fontFamily: 'monospace' }}
|
|
287
|
-
label={label}
|
|
288
|
-
/>
|
|
289
|
-
|
|
290
|
-
{paramDoc && (
|
|
291
|
-
<div style={{ marginTop: 4, opacity: 0.85 }}>
|
|
292
|
-
<MarkdownDoc content={paramDoc} markdown />
|
|
293
|
-
</div>
|
|
294
|
-
)}
|
|
295
|
-
</ReqorePanel>
|
|
296
|
-
);
|
|
297
|
-
});
|
|
298
|
-
SignatureHelpPill.displayName = 'SignatureHelpPill';
|
|
299
|
-
|
|
300
|
-
export const SmartEditor = forwardRef<TReqoreRichTextEditorRef, ISmartEditorProps>(
|
|
301
|
-
(
|
|
302
|
-
{
|
|
303
|
-
session,
|
|
304
|
-
value,
|
|
305
|
-
onChange,
|
|
306
|
-
decorate,
|
|
307
|
-
customRenderLeaf,
|
|
308
|
-
tagRenderer,
|
|
309
|
-
onTagClick,
|
|
310
|
-
triggerCharacters,
|
|
311
|
-
converter = defaultSlateConverter,
|
|
312
|
-
completionInserter = defaultCompletionInserter,
|
|
313
|
-
topActions,
|
|
314
|
-
height,
|
|
315
|
-
readOnly = false,
|
|
316
|
-
showDiagnostics = true,
|
|
317
|
-
onBlur,
|
|
318
|
-
loadingIndicator,
|
|
319
|
-
enableHover = true,
|
|
320
|
-
isLoading = false,
|
|
321
|
-
enableSignatureHelp = true,
|
|
322
|
-
},
|
|
323
|
-
ref
|
|
324
|
-
) => {
|
|
325
|
-
const theme = useReqoreTheme();
|
|
326
|
-
const editorRef = useRef<TReqoreRichTextEditorRef>(null);
|
|
327
|
-
const lastPlainTextRef = useRef(value);
|
|
328
|
-
// Cached Slate nodes, refreshed only on EXTERNAL value changes — not on
|
|
329
|
-
// the typing echo. Passing a fresh ref every keystroke re-runs
|
|
330
|
-
// ReqoreRichTextEditor's tokenizer mid-token (typed `@s` collapses to a
|
|
331
|
-
// tag chip, making the rest of the field name impossible to type).
|
|
332
|
-
const slateValueRef = useRef<ISlateElement[] | null>(null);
|
|
333
|
-
/* Counts the node trees the editor has reported. The tree a value converts
|
|
334
|
-
to is not always the tree the editor holds: Slate normalises a value set
|
|
335
|
-
from outside — a leading chip gains an empty text leaf before it — without
|
|
336
|
-
changing its text, so `value` never changes and the cache above kept the
|
|
337
|
-
tree the editor no longer had. Every offset computed from it (token
|
|
338
|
-
colours, diagnostics, signature help) then pointed one leaf off: a Text
|
|
339
|
-
view seeded with `"$local:name" == "John"` was never highlighted. */
|
|
340
|
-
const [editorTreeVersion, noteEditorTree] = useReducer((count: number) => count + 1, 0);
|
|
341
|
-
|
|
342
|
-
useImperativeHandle(ref, () => editorRef.current as TReqoreRichTextEditorRef, []);
|
|
343
|
-
|
|
344
|
-
// Gates all LSP hooks on both the connection (`isReady`) and any
|
|
345
|
-
// wrapper context binding (`isContextReady`) — without the latter,
|
|
346
|
-
// typing `@` in the ~50–200ms before `dpql/setContext` resolves hits
|
|
347
|
-
// the server context-less and the dropdown silently closes. Generic
|
|
348
|
-
// sessions set `isContextReady: true`, collapsing this to `isReady`.
|
|
349
|
-
const lspReady = session.isReady && session.isContextReady;
|
|
350
|
-
|
|
351
|
-
const autocomplete = useLspAutocomplete({
|
|
352
|
-
getCompletions: session.getCompletions,
|
|
353
|
-
isReady: lspReady,
|
|
354
|
-
triggerCharacters,
|
|
355
|
-
converter,
|
|
356
|
-
inserter: completionInserter,
|
|
357
|
-
});
|
|
358
|
-
|
|
359
|
-
const hover = useLspHover(session, editorRef as React.RefObject<any>, converter, {
|
|
360
|
-
enabled: enableHover,
|
|
361
|
-
});
|
|
362
|
-
|
|
363
|
-
/* What the editor has reported and the host has not handed back yet. A host can hand an emit back
|
|
364
|
-
after the next key is already in the editor - one that debounces, or a render that lands between
|
|
365
|
-
two keys - and that stale value is not a change: rebuilding the document from it replaced the text
|
|
366
|
-
and put the caret at its end, so the next key followed the stale text (`name` typed came out
|
|
367
|
-
`nae`). See `EmittedValues`. */
|
|
368
|
-
const emitted = useEmittedValues<string>();
|
|
369
|
-
/* The value the host last handed down. The editor re-renders between keys for its own reasons (it
|
|
370
|
-
has just reported a new tree), and the host has not caught up then: the value it still holds is
|
|
371
|
-
not a change either. */
|
|
372
|
-
// nothing until the first value is committed, so the server is sent the first value too
|
|
373
|
-
const committedValueRef = useRef<string | undefined>(undefined);
|
|
374
|
-
|
|
375
|
-
const slateValue = useMemo(() => {
|
|
376
|
-
// Reuse the cache unless the host handed down something new: the same value again, the editor's
|
|
377
|
-
// own typing echo - the latest, or one still in flight - is not
|
|
378
|
-
if (
|
|
379
|
-
slateValueRef.current !== null &&
|
|
380
|
-
(value === committedValueRef.current || value === lastPlainTextRef.current || emitted.includes(value))
|
|
381
|
-
) {
|
|
382
|
-
return slateValueRef.current;
|
|
383
|
-
}
|
|
384
|
-
const next = converter.toSlateNodes(value);
|
|
385
|
-
slateValueRef.current = next;
|
|
386
|
-
return next;
|
|
387
|
-
// `editorTreeVersion` re-reads the cache once the editor reports its own tree.
|
|
388
|
-
}, [value, converter, editorTreeVersion]);
|
|
389
|
-
|
|
390
|
-
/* A value set from outside is a change to the document as much as typing
|
|
391
|
-
is — a Text view seeded after mount, a Preview following the author. The
|
|
392
|
-
server colours and diagnoses its own copy of the text, so it must hold
|
|
393
|
-
this one; typing already sent its text, and is not resent. */
|
|
394
|
-
const { didChange: syncDocument } = session;
|
|
395
|
-
useEffect(() => {
|
|
396
|
-
// the echo of an emit is acknowledged, and is not sent: the server already has the newer text
|
|
397
|
-
// typing sent; anything else is a change from outside
|
|
398
|
-
if (committedValueRef.current === value) return;
|
|
399
|
-
committedValueRef.current = value;
|
|
400
|
-
if (emitted.isEcho(value)) return;
|
|
401
|
-
lastPlainTextRef.current = value;
|
|
402
|
-
syncDocument(value);
|
|
403
|
-
}, [syncDocument, value, emitted]);
|
|
404
|
-
|
|
405
|
-
const diagnosticDecorate = useLspDiagnosticDecorations(
|
|
406
|
-
session.diagnostics,
|
|
407
|
-
converter,
|
|
408
|
-
slateValue
|
|
409
|
-
);
|
|
410
|
-
|
|
411
|
-
// Server-driven syntax highlighting (replaces the old client-side regex
|
|
412
|
-
// highlighter — see design doc §7).
|
|
413
|
-
const semanticDecorate = useLspSemanticTokens(session, converter, slateValue);
|
|
414
|
-
|
|
415
|
-
// No-ops when the server doesn't advertise `signatureHelpProvider`.
|
|
416
|
-
const signatureHelp = useLspSignatureHelp(
|
|
417
|
-
session,
|
|
418
|
-
editorRef as React.RefObject<any>,
|
|
419
|
-
converter,
|
|
420
|
-
slateValue,
|
|
421
|
-
{ enabled: enableSignatureHelp }
|
|
422
|
-
);
|
|
423
|
-
|
|
424
|
-
const composedDecorate = useCallback(
|
|
425
|
-
(entry: NodeEntry): Range[] => {
|
|
426
|
-
const userRanges = decorate?.(entry) ?? [];
|
|
427
|
-
const semanticRanges = semanticDecorate(entry);
|
|
428
|
-
const diagRanges = showDiagnostics ? diagnosticDecorate(entry) : [];
|
|
429
|
-
// Diagnostics last so the wavy underline isn't overdrawn.
|
|
430
|
-
return [...userRanges, ...semanticRanges, ...diagRanges];
|
|
431
|
-
},
|
|
432
|
-
[decorate, semanticDecorate, diagnosticDecorate, showDiagnostics]
|
|
433
|
-
);
|
|
434
|
-
|
|
435
|
-
// Paints semantic-token colours and diagnostic underlines, falling
|
|
436
|
-
// through to the consumer's `customRenderLeaf` for everything else.
|
|
437
|
-
const renderLeafWithMarks = useCallback(
|
|
438
|
-
(props: RenderLeafProps) => {
|
|
439
|
-
const leaf = props.leaf as RenderLeafProps['leaf'] & {
|
|
440
|
-
error?: true;
|
|
441
|
-
errorMessage?: string;
|
|
442
|
-
severity?: number;
|
|
443
|
-
tokenType?: string;
|
|
444
|
-
tokenModifiers?: string[];
|
|
445
|
-
};
|
|
446
|
-
|
|
447
|
-
let child =
|
|
448
|
-
customRenderLeaf ?
|
|
449
|
-
customRenderLeaf(props)
|
|
450
|
-
: <span {...props.attributes}>{props.children}</span>;
|
|
451
|
-
|
|
452
|
-
if (leaf.tokenType) {
|
|
453
|
-
const color = SEMANTIC_TOKEN_COLORS[leaf.tokenType];
|
|
454
|
-
const italic = leaf.tokenModifiers?.includes('declaration');
|
|
455
|
-
const dim = leaf.tokenModifiers?.includes('deprecated');
|
|
456
|
-
if (color || italic || dim) {
|
|
457
|
-
child = (
|
|
458
|
-
<span
|
|
459
|
-
style={{
|
|
460
|
-
color,
|
|
461
|
-
fontStyle: italic ? 'italic' : undefined,
|
|
462
|
-
opacity: dim ? 0.6 : undefined,
|
|
463
|
-
textDecoration: dim ? 'line-through' : undefined,
|
|
464
|
-
}}
|
|
465
|
-
>
|
|
466
|
-
{child}
|
|
467
|
-
</span>
|
|
468
|
-
);
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
// Underline outermost so it overlays the syntax colour; hex
|
|
473
|
-
// fallbacks cover host themes that omit a diagnostic intent.
|
|
474
|
-
if (leaf.error) {
|
|
475
|
-
const underlineColor =
|
|
476
|
-
leaf.severity === 2 ? (theme.intents?.warning ?? '#f0a500')
|
|
477
|
-
: leaf.severity && leaf.severity >= 3 ? (theme.intents?.info ?? '#3a86ff')
|
|
478
|
-
: (theme.intents?.danger ?? '#d62828');
|
|
479
|
-
child = (
|
|
480
|
-
<span
|
|
481
|
-
data-testid='diagnostic-underline'
|
|
482
|
-
title={leaf.errorMessage}
|
|
483
|
-
style={{
|
|
484
|
-
textDecoration: 'underline wavy',
|
|
485
|
-
textDecorationColor: underlineColor,
|
|
486
|
-
textDecorationSkipInk: 'none',
|
|
487
|
-
}}
|
|
488
|
-
>
|
|
489
|
-
{child}
|
|
490
|
-
</span>
|
|
491
|
-
);
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
return child;
|
|
495
|
-
},
|
|
496
|
-
[customRenderLeaf, theme]
|
|
497
|
-
);
|
|
498
|
-
|
|
499
|
-
const handleSlateChange = useCallback(
|
|
500
|
-
(newNodes: ISlateElement[]) => {
|
|
501
|
-
const plainText = converter.fromSlateNodes(newNodes);
|
|
502
|
-
|
|
503
|
-
// A selection change reports the same tree; anything else is the tree
|
|
504
|
-
// the editor now holds, and the one every offset is computed against.
|
|
505
|
-
if (newNodes !== slateValueRef.current) {
|
|
506
|
-
slateValueRef.current = newNodes;
|
|
507
|
-
noteEditorTree();
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
if (plainText !== lastPlainTextRef.current) {
|
|
511
|
-
lastPlainTextRef.current = plainText;
|
|
512
|
-
emitted.record(plainText);
|
|
513
|
-
// CRITICAL: the next render's `value` equals `lastPlainTextRef` (the
|
|
514
|
-
// typing echo), so `slateValue`'s cache returns the live nodes set
|
|
515
|
-
// above — leave them stale and downstream hooks (signature help,
|
|
516
|
-
// semantic tokens) never recompute, so the signature pill's active
|
|
517
|
-
// parameter never advances.
|
|
518
|
-
onChange(plainText);
|
|
519
|
-
session.didChange(plainText);
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
if (editorRef.current && !readOnly) {
|
|
523
|
-
autocomplete.onSlateChange(editorRef.current as any, newNodes);
|
|
524
|
-
}
|
|
525
|
-
},
|
|
526
|
-
[onChange, session, readOnly, autocomplete, converter, emitted]
|
|
527
|
-
);
|
|
528
|
-
|
|
529
|
-
// Replace mode: open the dropdown at the chip's DOM rect (not the
|
|
530
|
-
// editor selection — clicks on a Slate VOID inline don't reliably
|
|
531
|
-
// update `editor.selection`) and atomically swap the chip on select.
|
|
532
|
-
const handleTagClickDefault = useCallback(
|
|
533
|
-
(tag: ISlateElement, editor: TReqoreRichTextEditorRef) => {
|
|
534
|
-
if (readOnly) return;
|
|
535
|
-
try {
|
|
536
|
-
const tagPath = ReactEditor.findPath(editor, tag as any);
|
|
537
|
-
const domNode = ReactEditor.toDOMNode(editor, tag as any);
|
|
538
|
-
const rect = (domNode as HTMLElement).getBoundingClientRect();
|
|
539
|
-
autocomplete.openAtChip(editor, tagPath, {
|
|
540
|
-
left: rect.left,
|
|
541
|
-
bottom: rect.bottom,
|
|
542
|
-
});
|
|
543
|
-
} catch {
|
|
544
|
-
// Tag may have been removed mid-render — ignore.
|
|
545
|
-
}
|
|
546
|
-
},
|
|
547
|
-
[readOnly, autocomplete]
|
|
548
|
-
);
|
|
549
|
-
|
|
550
|
-
const resolvedTagClick = onTagClick ?? handleTagClickDefault;
|
|
551
|
-
|
|
552
|
-
// ReqoreRichTextEditor memoizes `renderElement` without `onTagClick` in
|
|
553
|
-
// its deps, so it captures the FIRST render's handler forever (stale
|
|
554
|
-
// `isReady` etc.). Pass a stable wrapper that indirects through a ref
|
|
555
|
-
// to the latest handler.
|
|
556
|
-
const resolvedTagClickRef = useRef(resolvedTagClick);
|
|
557
|
-
resolvedTagClickRef.current = resolvedTagClick;
|
|
558
|
-
const stableOnTagClick = useCallback((tag: any) => {
|
|
559
|
-
if (editorRef.current) {
|
|
560
|
-
resolvedTagClickRef.current(tag as ISlateElement, editorRef.current);
|
|
561
|
-
}
|
|
562
|
-
}, []);
|
|
563
|
-
|
|
564
|
-
const handleCompletionSelect = useCallback(
|
|
565
|
-
(item: ICompletionDropdownItem) => {
|
|
566
|
-
if (!editorRef.current) return;
|
|
567
|
-
autocomplete.onItemSelect(item, editorRef.current as any);
|
|
568
|
-
},
|
|
569
|
-
[autocomplete]
|
|
570
|
-
);
|
|
571
|
-
|
|
572
|
-
// Flatten groups into rows carrying a flat index to compare against
|
|
573
|
-
// `focusedIndex` (which is flat across all groups).
|
|
574
|
-
const completionGroups = useMemo(() => {
|
|
575
|
-
let flatIndex = 0;
|
|
576
|
-
return autocomplete.groups.map((group) => ({
|
|
577
|
-
label: group.label,
|
|
578
|
-
items: group.items.map((item) => ({ item, index: flatIndex++ })),
|
|
579
|
-
}));
|
|
580
|
-
}, [autocomplete.groups]);
|
|
581
|
-
|
|
582
|
-
// Overlay shown while the session connects, a context binding resolves,
|
|
583
|
-
// or the wrapper signals `isLoading` (e.g. DpqlEditor awaiting
|
|
584
|
-
// `dpql/toRichtext`). The editor stays mounted underneath;
|
|
585
|
-
// `loadingIndicator === null` opts out, a non-null value overrides.
|
|
586
|
-
const showLoadingOverlay =
|
|
587
|
-
(!session.isReady || !session.isContextReady || isLoading) && loadingIndicator !== null;
|
|
588
|
-
const defaultLoadingLabel =
|
|
589
|
-
!session.isReady ? 'Connecting to language server…'
|
|
590
|
-
: !session.isContextReady ? 'Loading schema…'
|
|
591
|
-
: 'Loading…';
|
|
592
|
-
// Built only when shown — skips a ReqoreSpinner alloc on every render
|
|
593
|
-
// of an already-connected editor.
|
|
594
|
-
const overlayContent =
|
|
595
|
-
!showLoadingOverlay ? null
|
|
596
|
-
: loadingIndicator !== undefined && loadingIndicator !== null ? loadingIndicator
|
|
597
|
-
: <ReqoreSpinner
|
|
598
|
-
iconColor='info:lighten:2'
|
|
599
|
-
size='small'
|
|
600
|
-
centered
|
|
601
|
-
labelEffect={{ textSize: 'small' }}
|
|
602
|
-
>
|
|
603
|
-
{defaultLoadingLabel}
|
|
604
|
-
</ReqoreSpinner>;
|
|
605
|
-
|
|
606
|
-
return (
|
|
607
|
-
<ReqoreControlGroup vertical fluid>
|
|
608
|
-
{topActions}
|
|
609
|
-
<div style={{ position: 'relative' }}>
|
|
610
|
-
<ReqoreRichTextEditor
|
|
611
|
-
ref={editorRef}
|
|
612
|
-
value={slateValue as any}
|
|
613
|
-
onChange={handleSlateChange as any}
|
|
614
|
-
readOnly={readOnly}
|
|
615
|
-
customRenderLeaf={renderLeafWithMarks}
|
|
616
|
-
decorate={composedDecorate}
|
|
617
|
-
getTagProps={tagRenderer as any}
|
|
618
|
-
onTagClick={stableOnTagClick}
|
|
619
|
-
onBlur={onBlur}
|
|
620
|
-
panelProps={{
|
|
621
|
-
fluid: true,
|
|
622
|
-
flat: true,
|
|
623
|
-
style: {
|
|
624
|
-
// Auto-grow: the editor sizes to its content and grows
|
|
625
|
-
// as lines are added. `height` is an optional *minimum*
|
|
626
|
-
// floor (e.g. a multi-line code editor); when omitted,
|
|
627
|
-
// a single comfortable line so the empty field stays
|
|
628
|
-
// clickable and the diagnostics panel hugs the input
|
|
629
|
-
// instead of sitting below a tall reserved box.
|
|
630
|
-
minHeight: height ?? '2.4em',
|
|
631
|
-
fontFamily: 'monospace',
|
|
632
|
-
fontSize: '13px',
|
|
633
|
-
},
|
|
634
|
-
}}
|
|
635
|
-
/>
|
|
636
|
-
{showLoadingOverlay && (
|
|
637
|
-
<div
|
|
638
|
-
// Absolutely-positioned, centred panel covering the
|
|
639
|
-
// editor body. `backdrop-filter: blur` matches the
|
|
640
|
-
// 20px backdrop blur Reqore uses for drawers — keeps
|
|
641
|
-
// the editor content faintly readable underneath while
|
|
642
|
-
// signalling "this surface is paused". Pointer events
|
|
643
|
-
// pass through; the LSP-dependent paths short-circuit
|
|
644
|
-
// on `!isReady` / `!isContextReady` anyway.
|
|
645
|
-
style={{
|
|
646
|
-
position: 'absolute',
|
|
647
|
-
inset: 0,
|
|
648
|
-
display: 'flex',
|
|
649
|
-
alignItems: 'center',
|
|
650
|
-
justifyContent: 'center',
|
|
651
|
-
background: 'rgba(10, 10, 10, 0.35)',
|
|
652
|
-
backdropFilter: 'blur(4px)',
|
|
653
|
-
WebkitBackdropFilter: 'blur(4px)',
|
|
654
|
-
borderRadius: 4,
|
|
655
|
-
pointerEvents: 'none',
|
|
656
|
-
zIndex: 2,
|
|
657
|
-
}}
|
|
658
|
-
>
|
|
659
|
-
{overlayContent}
|
|
660
|
-
</div>
|
|
661
|
-
)}
|
|
662
|
-
{autocomplete.isOpen &&
|
|
663
|
-
(autocomplete.items.length > 0 ||
|
|
664
|
-
autocomplete.isReplaceMode ||
|
|
665
|
-
autocomplete.isFetching) && (
|
|
666
|
-
<ReqorePopover
|
|
667
|
-
key={autocomplete.popoverKey}
|
|
668
|
-
component='span'
|
|
669
|
-
wrapperStyle={{
|
|
670
|
-
// `fixed` anchor at the cursor's screen coords — avoids
|
|
671
|
-
// parent-offset math.
|
|
672
|
-
position: 'fixed',
|
|
673
|
-
top: autocomplete.position.top,
|
|
674
|
-
left: autocomplete.position.left,
|
|
675
|
-
width: '1px',
|
|
676
|
-
height: '1px',
|
|
677
|
-
pointerEvents: 'none',
|
|
678
|
-
}}
|
|
679
|
-
content={
|
|
680
|
-
<ReqoreMenu
|
|
681
|
-
rounded
|
|
682
|
-
flat
|
|
683
|
-
maxHeight='300px'
|
|
684
|
-
width='300px'
|
|
685
|
-
effect={SMART_EDITOR_OVERLAY_EFFECT}
|
|
686
|
-
customTheme={{ main: '#1e0d29' }}
|
|
687
|
-
>
|
|
688
|
-
{autocomplete.items.length === 0 &&
|
|
689
|
-
(autocomplete.isReplaceMode || autocomplete.isFetching) && (
|
|
690
|
-
<ReqoreMenuItem
|
|
691
|
-
icon='LoaderLine'
|
|
692
|
-
label={
|
|
693
|
-
!session.isReady ? 'Connecting to language server…'
|
|
694
|
-
: !session.isContextReady ?
|
|
695
|
-
'Loading schema…'
|
|
696
|
-
: autocomplete.isFetching ?
|
|
697
|
-
'Loading completions…'
|
|
698
|
-
: 'No alternatives available'
|
|
699
|
-
}
|
|
700
|
-
disabled
|
|
701
|
-
compact
|
|
702
|
-
/>
|
|
703
|
-
)}
|
|
704
|
-
{completionGroups.map((group) => (
|
|
705
|
-
<React.Fragment key={group.label || '_default'}>
|
|
706
|
-
{group.label && (
|
|
707
|
-
<ReqoreMenuDivider
|
|
708
|
-
label={group.label}
|
|
709
|
-
// @ts-expect-error — intent type not in older Reqore
|
|
710
|
-
intent='muted'
|
|
711
|
-
/>
|
|
712
|
-
)}
|
|
713
|
-
{group.items.map(({ item, index }) => (
|
|
714
|
-
<CompletionMenuItem
|
|
715
|
-
key={item.value}
|
|
716
|
-
item={item}
|
|
717
|
-
isFocused={index === autocomplete.focusedIndex}
|
|
718
|
-
onSelect={handleCompletionSelect}
|
|
719
|
-
/>
|
|
720
|
-
))}
|
|
721
|
-
</React.Fragment>
|
|
722
|
-
))}
|
|
723
|
-
</ReqoreMenu>
|
|
724
|
-
}
|
|
725
|
-
openOnMount
|
|
726
|
-
noArrow
|
|
727
|
-
placement='bottom-start'
|
|
728
|
-
handler='click'
|
|
729
|
-
closeOnOutsideClick
|
|
730
|
-
closeOnInsideClick={false}
|
|
731
|
-
minWidth='300px'
|
|
732
|
-
flat
|
|
733
|
-
// Transparent so the popover wrapper doesn't frame the menu.
|
|
734
|
-
transparent
|
|
735
|
-
onToggleChange={autocomplete.handleExternalClose}
|
|
736
|
-
/>
|
|
737
|
-
)}
|
|
738
|
-
{hover.hoverContent && hover.hoverPosition && (
|
|
739
|
-
// Non-interactive (`pointerEvents: none`) so typing/clicking
|
|
740
|
-
// doesn't dismiss it via a focus trap.
|
|
741
|
-
<ReqorePopover
|
|
742
|
-
key={`hover-${hover.hoverPosition.left}-${hover.hoverPosition.top}`}
|
|
743
|
-
component='span'
|
|
744
|
-
wrapperStyle={{
|
|
745
|
-
position: 'fixed',
|
|
746
|
-
top: hover.hoverPosition.top,
|
|
747
|
-
left: hover.hoverPosition.left,
|
|
748
|
-
width: '1px',
|
|
749
|
-
height: '1px',
|
|
750
|
-
pointerEvents: 'none',
|
|
751
|
-
}}
|
|
752
|
-
content={
|
|
753
|
-
<div style={{ padding: 4 }}>
|
|
754
|
-
<MarkdownDoc
|
|
755
|
-
content={hover.hoverContent.value}
|
|
756
|
-
markdown={hover.hoverContent.kind === 'markdown'}
|
|
757
|
-
/>
|
|
758
|
-
</div>
|
|
759
|
-
}
|
|
760
|
-
openOnMount
|
|
761
|
-
noArrow
|
|
762
|
-
placement='top'
|
|
763
|
-
handler='hover'
|
|
764
|
-
closeOnOutsideClick
|
|
765
|
-
minWidth='220px'
|
|
766
|
-
flat
|
|
767
|
-
transparent
|
|
768
|
-
backgroundBlur={20}
|
|
769
|
-
onToggleChange={(open: boolean) => {
|
|
770
|
-
if (!open) hover.clearHover();
|
|
771
|
-
}}
|
|
772
|
-
/>
|
|
773
|
-
)}
|
|
774
|
-
{signatureHelp.signature && signatureHelp.position && (
|
|
775
|
-
<SignatureHelpPill
|
|
776
|
-
signature={signatureHelp.signature}
|
|
777
|
-
position={signatureHelp.position}
|
|
778
|
-
/>
|
|
779
|
-
)}
|
|
780
|
-
</div>
|
|
781
|
-
{showDiagnostics && session.diagnostics.length > 0 && (
|
|
782
|
-
// One ReqoreMessage per diagnostic, severity → intent. Same
|
|
783
|
-
// `session.diagnostics` source as the inline underline above.
|
|
784
|
-
<ReqoreControlGroup vertical fluid size='small'>
|
|
785
|
-
{session.diagnostics.map((diag, i) => (
|
|
786
|
-
<ReqoreMessage
|
|
787
|
-
key={`${diag.range.start.line}:${diag.range.start.character}:${i}`}
|
|
788
|
-
intent={severityToIntent(diag.severity)}
|
|
789
|
-
icon={
|
|
790
|
-
diag.severity === 2 ? 'AlertLine'
|
|
791
|
-
: diag.severity && diag.severity >= 3 ?
|
|
792
|
-
'InformationLine'
|
|
793
|
-
: 'ErrorWarningLine'
|
|
794
|
-
}
|
|
795
|
-
size='small'
|
|
796
|
-
opaque={false}
|
|
797
|
-
>
|
|
798
|
-
{diag.message}
|
|
799
|
-
</ReqoreMessage>
|
|
800
|
-
))}
|
|
801
|
-
</ReqoreControlGroup>
|
|
802
|
-
)}
|
|
803
|
-
</ReqoreControlGroup>
|
|
804
|
-
);
|
|
805
|
-
}
|
|
806
|
-
);
|
|
807
|
-
|
|
808
|
-
SmartEditor.displayName = 'SmartEditor';
|