@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,797 +0,0 @@
|
|
|
1
|
-
import { StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
import { expect, fn, userEvent, waitFor, within } from 'storybook/test';
|
|
4
|
-
import { sleep } from '../../../__tests__/utils';
|
|
5
|
-
import { StoryMeta } from '../../types';
|
|
6
|
-
import {
|
|
7
|
-
createMockLspServer,
|
|
8
|
-
DEFAULT_LSP_CAPABILITIES,
|
|
9
|
-
IMockLspServer,
|
|
10
|
-
MOCK_LSP_URL,
|
|
11
|
-
} from '../smartEditor/__fixtures__/mockLspServer';
|
|
12
|
-
import { QonsoleSmartInput } from './QonsoleSmartInput';
|
|
13
|
-
import { IQonsoleAssistContext } from './types';
|
|
14
|
-
|
|
15
|
-
// Start of the current Qonsole token; drives the textEdit range so
|
|
16
|
-
// accepting an item replaces the partial token (else `/l` + `/list` →
|
|
17
|
-
// `/l/list`).
|
|
18
|
-
function findQonsoleTokenStart(text: string, cursorChar: number): number {
|
|
19
|
-
let i = cursorChar - 1;
|
|
20
|
-
while (i >= 0 && /[\w/=:.-]/.test(text[i])) {
|
|
21
|
-
i--;
|
|
22
|
-
}
|
|
23
|
-
return i + 1;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// Which completion slot the cursor sits in, for the mock's naive
|
|
27
|
-
// `/verb resource [--flag[=value]]…` grammar: slot is decided by the
|
|
28
|
-
// count of non-flag word tokens before the cursor. `null` = no opinion,
|
|
29
|
-
// dropdown stays closed.
|
|
30
|
-
function detectQonsoleContext(
|
|
31
|
-
text: string,
|
|
32
|
-
cursorChar: number
|
|
33
|
-
): {
|
|
34
|
-
type: 'verb' | 'resource' | 'flag' | 'flag-value';
|
|
35
|
-
tokenStart: number;
|
|
36
|
-
} | null {
|
|
37
|
-
const tokenStart = findQonsoleTokenStart(text, cursorChar);
|
|
38
|
-
const currentToken = text.slice(tokenStart, cursorChar);
|
|
39
|
-
const charBefore = tokenStart > 0 ? text[tokenStart - 1] : '';
|
|
40
|
-
|
|
41
|
-
// `--flag` partial token — always flag context regardless of position.
|
|
42
|
-
if (currentToken.startsWith('-')) return { type: 'flag', tokenStart };
|
|
43
|
-
// After `=` — value of the last seen `--flag=…`.
|
|
44
|
-
if (charBefore === '=') return { type: 'flag-value', tokenStart };
|
|
45
|
-
// Slash command — partial token starts with `/`.
|
|
46
|
-
if (currentToken.startsWith('/')) return { type: 'verb', tokenStart };
|
|
47
|
-
|
|
48
|
-
// Word-position decision — count non-flag word tokens before the
|
|
49
|
-
// cursor's token start. Flags are `--something` and don't consume
|
|
50
|
-
// a slot; everything else does.
|
|
51
|
-
const before = text.slice(0, tokenStart);
|
|
52
|
-
const words = before
|
|
53
|
-
.trim()
|
|
54
|
-
.split(/\s+/)
|
|
55
|
-
.filter((w) => w.length > 0 && !w.startsWith('-'));
|
|
56
|
-
if (words.length === 0) {
|
|
57
|
-
// Empty editor — user is about to type the verb.
|
|
58
|
-
if (tokenStart === 0 && currentToken === '') return { type: 'verb', tokenStart };
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
if (words.length === 1) {
|
|
62
|
-
// `/verb ` — next is the resource.
|
|
63
|
-
if (charBefore === ' ') return { type: 'resource', tokenStart };
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
// 2+ words → verb + resource consumed; subsequent slots are flags.
|
|
67
|
-
if (charBefore === ' ') return { type: 'flag', tokenStart };
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Mock semantic-tokens producer (LSP delta-5-tuple int array). Having no
|
|
72
|
-
// schema, it only paints sigil-bracketed forms — `/verb` (keyword 8),
|
|
73
|
-
// `--flag` (modifier 9), `"strings"` (11), numbers (12); resource names
|
|
74
|
-
// and flag values stay plain. See `LiveQonsole` for the real coverage.
|
|
75
|
-
function mockTokenizeQonsole(text: string): number[] {
|
|
76
|
-
const tokens: Array<{
|
|
77
|
-
line: number;
|
|
78
|
-
char: number;
|
|
79
|
-
length: number;
|
|
80
|
-
type: number;
|
|
81
|
-
}> = [];
|
|
82
|
-
const lines = text.split('\n');
|
|
83
|
-
for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
|
|
84
|
-
const line = lines[lineIdx];
|
|
85
|
-
// Strings first so they swallow any `--`/digits inside their quotes.
|
|
86
|
-
const TOKEN_RE = /("(?:\\.|[^"\\])*")|(\d+(?:\.\d+)?)|(--[A-Za-z][\w-]*)|(\/[A-Za-z][\w-]*)/g;
|
|
87
|
-
let match: RegExpExecArray | null;
|
|
88
|
-
while ((match = TOKEN_RE.exec(line)) !== null) {
|
|
89
|
-
let type = -1;
|
|
90
|
-
if (match[1])
|
|
91
|
-
type = 11; // string
|
|
92
|
-
else if (match[2])
|
|
93
|
-
type = 12; // number
|
|
94
|
-
else if (match[3])
|
|
95
|
-
type = 9; // modifier — `--flag`
|
|
96
|
-
else if (match[4]) type = 8; // keyword — `/verb`
|
|
97
|
-
if (type >= 0) {
|
|
98
|
-
tokens.push({
|
|
99
|
-
line: lineIdx,
|
|
100
|
-
char: match.index,
|
|
101
|
-
length: match[0].length,
|
|
102
|
-
type,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
tokens.sort((a, b) => a.line - b.line || a.char - b.char);
|
|
108
|
-
// Delta-encode per LSP spec.
|
|
109
|
-
const data: number[] = [];
|
|
110
|
-
let prevLine = 0;
|
|
111
|
-
let prevChar = 0;
|
|
112
|
-
for (const t of tokens) {
|
|
113
|
-
const dLine = t.line - prevLine;
|
|
114
|
-
const dChar = dLine === 0 ? t.char - prevChar : t.char;
|
|
115
|
-
data.push(dLine, dChar, t.length, t.type, 0);
|
|
116
|
-
prevLine = t.line;
|
|
117
|
-
prevChar = t.char;
|
|
118
|
-
}
|
|
119
|
-
return data;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Mock LSP server for `BasicMock`, `WithCommitCharacters`, and
|
|
123
|
-
// `WithWizardItems`: contextual completion, the conservative tokenizer,
|
|
124
|
-
// and `qonsole/*` methods on the shared mock plumbing.
|
|
125
|
-
function setupBasicQonsoleMockServer(): IMockLspServer {
|
|
126
|
-
return createMockLspServer(MOCK_LSP_URL, {
|
|
127
|
-
capabilities: {
|
|
128
|
-
...DEFAULT_LSP_CAPABILITIES,
|
|
129
|
-
experimental: {
|
|
130
|
-
qonsole: {
|
|
131
|
-
version: '1.0',
|
|
132
|
-
methods: ['qonsole/assist', 'qonsole/validate', 'qonsole/setContext'],
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
handlers: {
|
|
137
|
-
'textDocument/semanticTokens/full': (_msg, server) => ({
|
|
138
|
-
data: mockTokenizeQonsole(server.documentText),
|
|
139
|
-
}),
|
|
140
|
-
|
|
141
|
-
'textDocument/completion': (msg, server) => {
|
|
142
|
-
// textEdit range `[tokenStart, cursor)` so accepting an item
|
|
143
|
-
// replaces the partial token (no `/l/list` duplication).
|
|
144
|
-
const position = msg.params?.position ?? { line: 0, character: 0 };
|
|
145
|
-
const text = server.documentText;
|
|
146
|
-
const ctx = detectQonsoleContext(text, position.character);
|
|
147
|
-
let items: any[] = [];
|
|
148
|
-
if (ctx) {
|
|
149
|
-
const replaceRange = {
|
|
150
|
-
start: { line: position.line, character: ctx.tokenStart },
|
|
151
|
-
end: position,
|
|
152
|
-
};
|
|
153
|
-
const withTextEdit = (item: any) => ({
|
|
154
|
-
...item,
|
|
155
|
-
textEdit: { range: replaceRange, newText: item.insertText ?? item.label },
|
|
156
|
-
});
|
|
157
|
-
if (ctx.type === 'verb') {
|
|
158
|
-
items = [
|
|
159
|
-
withTextEdit({
|
|
160
|
-
label: '/list',
|
|
161
|
-
insertText: '/list',
|
|
162
|
-
kind: 14,
|
|
163
|
-
detail: 'List resources',
|
|
164
|
-
commitCharacters: [' '],
|
|
165
|
-
sortText: '10_00_/list',
|
|
166
|
-
}),
|
|
167
|
-
withTextEdit({
|
|
168
|
-
label: '/show',
|
|
169
|
-
insertText: '/show',
|
|
170
|
-
kind: 14,
|
|
171
|
-
detail: 'Show resource details',
|
|
172
|
-
commitCharacters: [' '],
|
|
173
|
-
sortText: '10_01_/show',
|
|
174
|
-
}),
|
|
175
|
-
withTextEdit({
|
|
176
|
-
label: '/count',
|
|
177
|
-
insertText: '/count',
|
|
178
|
-
kind: 14,
|
|
179
|
-
detail: 'Count matching resources',
|
|
180
|
-
commitCharacters: [' '],
|
|
181
|
-
sortText: '10_02_/count',
|
|
182
|
-
}),
|
|
183
|
-
// Mutating verb — server attaches a `warning` chip.
|
|
184
|
-
withTextEdit({
|
|
185
|
-
label: '/delete',
|
|
186
|
-
insertText: '/delete',
|
|
187
|
-
kind: 14,
|
|
188
|
-
detail: 'Delete a resource',
|
|
189
|
-
commitCharacters: [' '],
|
|
190
|
-
warning: 'Mutates system state',
|
|
191
|
-
sortText: '20_00_/delete',
|
|
192
|
-
}),
|
|
193
|
-
withTextEdit({
|
|
194
|
-
label: '/help',
|
|
195
|
-
insertText: '/help',
|
|
196
|
-
kind: 14,
|
|
197
|
-
detail: 'Show help',
|
|
198
|
-
commitCharacters: [' '],
|
|
199
|
-
sortText: '30_00_/help',
|
|
200
|
-
}),
|
|
201
|
-
// Wizard launch item — `command` fires `onWizardStart`
|
|
202
|
-
// instead of inserting text, so no textEdit.
|
|
203
|
-
{
|
|
204
|
-
label: 'Start "Create connection" wizard',
|
|
205
|
-
kind: 15,
|
|
206
|
-
detail: 'Guided setup',
|
|
207
|
-
data: {
|
|
208
|
-
action: 'start-wizard',
|
|
209
|
-
name: 'create-connection',
|
|
210
|
-
title: 'Create connection',
|
|
211
|
-
short_desc: 'Guided setup for a new connection',
|
|
212
|
-
verb: 'create',
|
|
213
|
-
resource: 'connections',
|
|
214
|
-
start_path: '/api/latest/qonsole/wizards/create-connection/start',
|
|
215
|
-
},
|
|
216
|
-
command: {
|
|
217
|
-
title: 'Start Create connection wizard',
|
|
218
|
-
command: 'qonsole.startWizard',
|
|
219
|
-
arguments: [
|
|
220
|
-
{
|
|
221
|
-
action: 'start-wizard',
|
|
222
|
-
name: 'create-connection',
|
|
223
|
-
title: 'Create connection',
|
|
224
|
-
short_desc: 'Guided setup for a new connection',
|
|
225
|
-
verb: 'create',
|
|
226
|
-
resource: 'connections',
|
|
227
|
-
start_path: '/api/latest/qonsole/wizards/create-connection/start',
|
|
228
|
-
},
|
|
229
|
-
],
|
|
230
|
-
},
|
|
231
|
-
sortText: '40_00_wizard',
|
|
232
|
-
},
|
|
233
|
-
];
|
|
234
|
-
} else if (ctx.type === 'resource') {
|
|
235
|
-
items = [
|
|
236
|
-
withTextEdit({
|
|
237
|
-
label: 'services',
|
|
238
|
-
insertText: 'services',
|
|
239
|
-
kind: 7,
|
|
240
|
-
detail: 'Service interfaces',
|
|
241
|
-
commitCharacters: [' '],
|
|
242
|
-
}),
|
|
243
|
-
withTextEdit({
|
|
244
|
-
label: 'workflows',
|
|
245
|
-
insertText: 'workflows',
|
|
246
|
-
kind: 7,
|
|
247
|
-
detail: 'Workflow interfaces',
|
|
248
|
-
commitCharacters: [' '],
|
|
249
|
-
}),
|
|
250
|
-
withTextEdit({
|
|
251
|
-
label: 'jobs',
|
|
252
|
-
insertText: 'jobs',
|
|
253
|
-
kind: 7,
|
|
254
|
-
detail: 'Job interfaces',
|
|
255
|
-
commitCharacters: [' '],
|
|
256
|
-
}),
|
|
257
|
-
withTextEdit({
|
|
258
|
-
label: 'users',
|
|
259
|
-
insertText: 'users',
|
|
260
|
-
kind: 7,
|
|
261
|
-
detail: 'IDP users',
|
|
262
|
-
commitCharacters: [' '],
|
|
263
|
-
}),
|
|
264
|
-
];
|
|
265
|
-
} else if (ctx.type === 'flag') {
|
|
266
|
-
items = [
|
|
267
|
-
withTextEdit({
|
|
268
|
-
label: '--desc',
|
|
269
|
-
insertText: '--desc=',
|
|
270
|
-
kind: 10,
|
|
271
|
-
detail: 'sort descending',
|
|
272
|
-
commitCharacters: ['='],
|
|
273
|
-
}),
|
|
274
|
-
withTextEdit({
|
|
275
|
-
label: '--limit',
|
|
276
|
-
insertText: '--limit=',
|
|
277
|
-
kind: 10,
|
|
278
|
-
detail: 'maximum number of results',
|
|
279
|
-
commitCharacters: ['='],
|
|
280
|
-
}),
|
|
281
|
-
withTextEdit({
|
|
282
|
-
label: '--search',
|
|
283
|
-
insertText: '--search=',
|
|
284
|
-
kind: 10,
|
|
285
|
-
detail: 'filter by name using a regex',
|
|
286
|
-
commitCharacters: ['='],
|
|
287
|
-
}),
|
|
288
|
-
withTextEdit({
|
|
289
|
-
label: '--app',
|
|
290
|
-
insertText: '--app=',
|
|
291
|
-
kind: 10,
|
|
292
|
-
detail: 'filter by application',
|
|
293
|
-
commitCharacters: ['='],
|
|
294
|
-
}),
|
|
295
|
-
];
|
|
296
|
-
} else if (ctx.type === 'flag-value') {
|
|
297
|
-
items = [
|
|
298
|
-
withTextEdit({
|
|
299
|
-
label: 'qorus',
|
|
300
|
-
insertText: 'qorus',
|
|
301
|
-
kind: 12,
|
|
302
|
-
detail: 'Qorus core app',
|
|
303
|
-
}),
|
|
304
|
-
withTextEdit({
|
|
305
|
-
label: 'qorus-ide',
|
|
306
|
-
insertText: 'qorus-ide',
|
|
307
|
-
kind: 12,
|
|
308
|
-
detail: 'Qorus IDE',
|
|
309
|
-
}),
|
|
310
|
-
withTextEdit({
|
|
311
|
-
label: 'qorus-creator',
|
|
312
|
-
insertText: 'qorus-creator',
|
|
313
|
-
kind: 12,
|
|
314
|
-
detail: 'Qorus Creator',
|
|
315
|
-
}),
|
|
316
|
-
];
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
return { items };
|
|
320
|
-
},
|
|
321
|
-
|
|
322
|
-
'qonsole/setContext': (msg) => ({
|
|
323
|
-
ok: true,
|
|
324
|
-
context: msg.params?.context ?? null,
|
|
325
|
-
}),
|
|
326
|
-
|
|
327
|
-
'qonsole/validate': () => ({ diagnostics: [] }),
|
|
328
|
-
|
|
329
|
-
'qonsole/assist': () => ({
|
|
330
|
-
version: '1.0',
|
|
331
|
-
mode: 'command',
|
|
332
|
-
context: {},
|
|
333
|
-
canonical: {
|
|
334
|
-
command_name: 'list-services',
|
|
335
|
-
verb: 'list',
|
|
336
|
-
resource: 'services',
|
|
337
|
-
},
|
|
338
|
-
completion: {
|
|
339
|
-
state: 'flag',
|
|
340
|
-
prefix: '',
|
|
341
|
-
replace_start: 15,
|
|
342
|
-
replace_end: 15,
|
|
343
|
-
items: [
|
|
344
|
-
{ label: '--desc', kind: 'flag' },
|
|
345
|
-
{ label: '--limit', kind: 'flag' },
|
|
346
|
-
],
|
|
347
|
-
},
|
|
348
|
-
diagnostics: [],
|
|
349
|
-
metrics: { duration_ms: 5 },
|
|
350
|
-
}),
|
|
351
|
-
},
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
interface IDemoArgs {
|
|
356
|
-
initialValue?: string;
|
|
357
|
-
useContext?: IQonsoleAssistContext;
|
|
358
|
-
height?: string;
|
|
359
|
-
readOnly?: boolean;
|
|
360
|
-
onChange?: (v: string) => void;
|
|
361
|
-
onWizardStart?: (args: Record<string, unknown>) => void;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
function QonsoleSmartInputWithState(props: IDemoArgs) {
|
|
365
|
-
const [value, setValue] = useState(props.initialValue ?? '');
|
|
366
|
-
return (
|
|
367
|
-
<QonsoleSmartInput
|
|
368
|
-
value={value}
|
|
369
|
-
onChange={(v) => {
|
|
370
|
-
setValue(v);
|
|
371
|
-
props.onChange?.(v);
|
|
372
|
-
}}
|
|
373
|
-
useContext={props.useContext}
|
|
374
|
-
height={props.height}
|
|
375
|
-
readOnly={props.readOnly}
|
|
376
|
-
onWizardStart={props.onWizardStart}
|
|
377
|
-
/>
|
|
378
|
-
);
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
const meta = {
|
|
382
|
-
component: QonsoleSmartInputWithState,
|
|
383
|
-
title: 'Components/QonsoleSmartInput',
|
|
384
|
-
args: {
|
|
385
|
-
initialValue: '',
|
|
386
|
-
onChange: fn(),
|
|
387
|
-
},
|
|
388
|
-
} as StoryMeta<typeof QonsoleSmartInputWithState>;
|
|
389
|
-
|
|
390
|
-
export default meta;
|
|
391
|
-
export type Story = StoryObj<typeof meta>;
|
|
392
|
-
|
|
393
|
-
// Mock-socket variant mirroring the Qonsole LSP wire shape. Play test
|
|
394
|
-
// types `-` after `/list services ` and asserts the canned completions
|
|
395
|
-
// render. The slot grammar is a naive word-counter and the tokenizer
|
|
396
|
-
// only paints sigil-bracketed forms; use `LiveQonsole` for real behaviour.
|
|
397
|
-
export const BasicMock: Story = {
|
|
398
|
-
args: {
|
|
399
|
-
initialValue: '/list services ',
|
|
400
|
-
},
|
|
401
|
-
parameters: {
|
|
402
|
-
docs: {
|
|
403
|
-
description: {
|
|
404
|
-
story:
|
|
405
|
-
'Renders the QonsoleSmartInput against a mocked Qonsole LSP. Typing "-" after "/list services " opens the flag dropdown with --desc, --limit and --search; pressing Enter accepts the first item without producing a stray double dash.',
|
|
406
|
-
},
|
|
407
|
-
},
|
|
408
|
-
},
|
|
409
|
-
async beforeEach() {
|
|
410
|
-
const server = setupBasicQonsoleMockServer();
|
|
411
|
-
return () => server.close();
|
|
412
|
-
},
|
|
413
|
-
play: async ({ canvasElement }) => {
|
|
414
|
-
const canvas = within(canvasElement);
|
|
415
|
-
const editable = canvas.getByRole('textbox');
|
|
416
|
-
|
|
417
|
-
// Phase 1 contract: dropdown must not open just because the cursor
|
|
418
|
-
// landed on a position whose char-before-cursor is a trigger
|
|
419
|
-
// character. Initial value `/list services ` ends in a space (a
|
|
420
|
-
// trigger char), so on mount + on click the dropdown must stay
|
|
421
|
-
// closed. A "must NOT open" check needs a fixed settle — `waitFor`
|
|
422
|
-
// would pass instantly, before the dropdown could have (wrongly)
|
|
423
|
-
// opened, and prove nothing.
|
|
424
|
-
await sleep(500);
|
|
425
|
-
expect(document.querySelector('.reqore-menu')).toBeNull();
|
|
426
|
-
await userEvent.click(editable);
|
|
427
|
-
await sleep(500);
|
|
428
|
-
expect(document.querySelector('.reqore-menu')).toBeNull();
|
|
429
|
-
|
|
430
|
-
// Now the user actually types — dropdown should open. Poll for it.
|
|
431
|
-
await userEvent.type(editable, '-');
|
|
432
|
-
await waitFor(
|
|
433
|
-
() => {
|
|
434
|
-
const dropdown = document.querySelector('.reqore-menu');
|
|
435
|
-
expect(dropdown).not.toBeNull();
|
|
436
|
-
expect(dropdown!.textContent).toContain('--desc');
|
|
437
|
-
expect(dropdown!.textContent).toContain('--limit');
|
|
438
|
-
expect(dropdown!.textContent).toContain('--search');
|
|
439
|
-
},
|
|
440
|
-
{ timeout: 30000 }
|
|
441
|
-
);
|
|
442
|
-
|
|
443
|
-
// Accept the first item with Enter and check the editor doesn't
|
|
444
|
-
// double-dash. The mock returns `textEdit` covering the typed `-`,
|
|
445
|
-
// so the result must be `/list services --desc=`, not `---desc=`.
|
|
446
|
-
await userEvent.keyboard('{Enter}');
|
|
447
|
-
await waitFor(
|
|
448
|
-
() => {
|
|
449
|
-
expect(editable.textContent).toBe('/list services --desc=');
|
|
450
|
-
expect(editable.textContent).not.toContain('---');
|
|
451
|
-
},
|
|
452
|
-
{ timeout: 30000 }
|
|
453
|
-
);
|
|
454
|
-
},
|
|
455
|
-
};
|
|
456
|
-
|
|
457
|
-
/**
|
|
458
|
-
* **Live spike — hits the real Qorus `/lsp` endpoint** at
|
|
459
|
-
* `wss://hq.qoretechnologies.com:8092/lsp` with `languageId: 'qonsole'`.
|
|
460
|
-
* Used to validate `QonsoleSmartInput` end-to-end against the shipped
|
|
461
|
-
* server before integrating into the qorus-ide `QonsoleInput.tsx`
|
|
462
|
-
* (which is a separate qorus-ide-side task — see toolkit-react#61).
|
|
463
|
-
*
|
|
464
|
-
* **Prereq:** export `REACT_APP_QORUS_TOKEN` before running storybook.
|
|
465
|
-
* Without a valid token the WebSocket handshake fails with 401.
|
|
466
|
-
*/
|
|
467
|
-
export const LiveQonsole: Story = {
|
|
468
|
-
// Real Qonsole LSP — excluded from the play-test runner and from
|
|
469
|
-
// Chromatic (CI has no token/network).
|
|
470
|
-
tags: ['!test'],
|
|
471
|
-
args: {
|
|
472
|
-
initialValue: '/list services ',
|
|
473
|
-
},
|
|
474
|
-
parameters: {
|
|
475
|
-
chromatic: { disable: true },
|
|
476
|
-
docs: {
|
|
477
|
-
description: {
|
|
478
|
-
story:
|
|
479
|
-
'Hits the real Qonsole LSP — no mock. Type after the trailing ' +
|
|
480
|
-
'space (or `-`, `=`, `/`, etc.) to see real completions render.',
|
|
481
|
-
},
|
|
482
|
-
},
|
|
483
|
-
},
|
|
484
|
-
// Open real flag completions (via `qonsole/assist`) when run manually
|
|
485
|
-
// against the live server. Verified: `/list services ` → 10 flag
|
|
486
|
-
// items. Clear + retype so the trailing-space trigger fires.
|
|
487
|
-
play: async ({ canvasElement }) => {
|
|
488
|
-
const canvas = within(canvasElement);
|
|
489
|
-
const editable = canvas.getByRole('textbox');
|
|
490
|
-
await sleep(3000); // let the live LSP session connect before typing (real WS handshake)
|
|
491
|
-
await userEvent.click(editable);
|
|
492
|
-
await userEvent.clear(editable);
|
|
493
|
-
await userEvent.type(editable, '/list services ');
|
|
494
|
-
await waitFor(
|
|
495
|
-
() => {
|
|
496
|
-
const dropdown = document.querySelector('.reqore-menu');
|
|
497
|
-
expect(dropdown).not.toBeNull();
|
|
498
|
-
expect(dropdown!.textContent).toContain('--desc');
|
|
499
|
-
},
|
|
500
|
-
{ timeout: 30000 }
|
|
501
|
-
);
|
|
502
|
-
},
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
/**
|
|
506
|
-
* Same as `LiveQonsole` but pre-binds a `/use services` context so
|
|
507
|
-
* predictive text is scoped to that resource — exercises
|
|
508
|
-
* `qonsole/setContext` via the `useQonsoleSession` hook.
|
|
509
|
-
*/
|
|
510
|
-
export const LiveQonsoleWithContext: Story = {
|
|
511
|
-
// Real Qonsole LSP — excluded from the play-test runner and from
|
|
512
|
-
// Chromatic (CI has no token/network).
|
|
513
|
-
tags: ['!test'],
|
|
514
|
-
args: {
|
|
515
|
-
initialValue: 'show me services in the pricing pipeline ',
|
|
516
|
-
useContext: { resource: 'services' },
|
|
517
|
-
},
|
|
518
|
-
parameters: {
|
|
519
|
-
chromatic: { disable: true },
|
|
520
|
-
docs: {
|
|
521
|
-
description: {
|
|
522
|
-
story:
|
|
523
|
-
'Renders the QonsoleSmartInput against the real Qonsole LSP with a pre-bound "/use services" context — predictive text is scoped to the services resource via the qonsole/setContext call.',
|
|
524
|
-
},
|
|
525
|
-
},
|
|
526
|
-
},
|
|
527
|
-
};
|
|
528
|
-
|
|
529
|
-
/**
|
|
530
|
-
* Mock-socket variant that pushes diagnostics via the LSP
|
|
531
|
-
* `textDocument/publishDiagnostics` notification immediately after the
|
|
532
|
-
* client opens the document. Verifies:
|
|
533
|
-
* - inline wavy-underline decorations (driven by `decorate` →
|
|
534
|
-
* `useLspDiagnosticDecorations`),
|
|
535
|
-
* - the `ReqoreMessage` panel below the editor (one row per
|
|
536
|
-
* diagnostic, intent + icon per severity).
|
|
537
|
-
*
|
|
538
|
-
* The initial value contains two recognisable spans — `services` (an
|
|
539
|
-
* Error) and `pricing` (a Warning). Adjust the mock if you change the
|
|
540
|
-
* value here.
|
|
541
|
-
*/
|
|
542
|
-
export const WithDiagnostics: Story = {
|
|
543
|
-
args: {
|
|
544
|
-
initialValue: '/list services in pricing',
|
|
545
|
-
},
|
|
546
|
-
parameters: {
|
|
547
|
-
docs: {
|
|
548
|
-
description: {
|
|
549
|
-
story:
|
|
550
|
-
'Shows inline wavy-underline + the diagnostic message panel ' +
|
|
551
|
-
'below the editor. Hover an underlined token for the native ' +
|
|
552
|
-
'title-tooltip with the diagnostic message.',
|
|
553
|
-
},
|
|
554
|
-
},
|
|
555
|
-
},
|
|
556
|
-
async beforeEach() {
|
|
557
|
-
const lsp = createMockLspServer(MOCK_LSP_URL, {
|
|
558
|
-
capabilities: {},
|
|
559
|
-
handlers: {
|
|
560
|
-
// After didOpen, push a publishDiagnostics notification so the
|
|
561
|
-
// editor renders inline + panel feedback. `didOpen` carries the
|
|
562
|
-
// uri in params.textDocument.uri.
|
|
563
|
-
'textDocument/didOpen': (msg, server) => {
|
|
564
|
-
server.notify('textDocument/publishDiagnostics', {
|
|
565
|
-
uri: msg.params?.textDocument?.uri,
|
|
566
|
-
diagnostics: [
|
|
567
|
-
{
|
|
568
|
-
range: {
|
|
569
|
-
start: { line: 0, character: 6 },
|
|
570
|
-
end: { line: 0, character: 14 },
|
|
571
|
-
},
|
|
572
|
-
message: 'Unknown resource "services" — did you mean "service"?',
|
|
573
|
-
severity: 1,
|
|
574
|
-
},
|
|
575
|
-
{
|
|
576
|
-
range: {
|
|
577
|
-
start: { line: 0, character: 18 },
|
|
578
|
-
end: { line: 0, character: 25 },
|
|
579
|
-
},
|
|
580
|
-
message: 'Pipeline "pricing" not found in workspace.',
|
|
581
|
-
severity: 2,
|
|
582
|
-
},
|
|
583
|
-
],
|
|
584
|
-
});
|
|
585
|
-
},
|
|
586
|
-
},
|
|
587
|
-
});
|
|
588
|
-
return () => lsp.close();
|
|
589
|
-
},
|
|
590
|
-
// CI guard for the diagnostics round-trip (server `publishDiagnostics`
|
|
591
|
-
// → the stacked `ReqoreMessage` panel below the editor). Both pushed
|
|
592
|
-
// messages must render.
|
|
593
|
-
play: async ({ canvasElement }) => {
|
|
594
|
-
// Poll until the server's publishDiagnostics round-trip renders both
|
|
595
|
-
// messages in the stacked panel below the editor.
|
|
596
|
-
await waitFor(
|
|
597
|
-
() => {
|
|
598
|
-
const text = canvasElement.textContent ?? '';
|
|
599
|
-
expect(text).toContain('Pipeline "pricing" not found in workspace.');
|
|
600
|
-
expect(text).toContain('Unknown resource "services"');
|
|
601
|
-
},
|
|
602
|
-
{ timeout: 30000 }
|
|
603
|
-
);
|
|
604
|
-
},
|
|
605
|
-
};
|
|
606
|
-
|
|
607
|
-
/**
|
|
608
|
-
* Demonstrates `commitCharacters` auto-accept
|
|
609
|
-
* (QONSOLE_ASSIST_FEATURES). The mock's flag completions carry
|
|
610
|
-
* `commitCharacters: ['=']`. Typing `=` while a flag is focused
|
|
611
|
-
* accepts the completion + inserts the `=` (or, when the
|
|
612
|
-
* `textEdit.newText` already ends with `=`, suppresses the
|
|
613
|
-
* duplicate).
|
|
614
|
-
*
|
|
615
|
-
* Sequence to play through (start from the default initial value —
|
|
616
|
-
* see the BasicMock docstring on why typing arbitrary preamble
|
|
617
|
-
* confuses the mock's slot grammar):
|
|
618
|
-
* 1. Initial value `/list services `
|
|
619
|
-
* 2. Type `-` — dropdown shows the flag list
|
|
620
|
-
* 3. Type `-` again (now typing `--`)
|
|
621
|
-
* 4. Type `l` — narrows to `--limit`
|
|
622
|
-
* 5. Type `=` — `--limit` auto-accepts; final text is `/list services --limit=`
|
|
623
|
-
* (NOT `/list services --limit==`)
|
|
624
|
-
*/
|
|
625
|
-
export const WithCommitCharacters: Story = {
|
|
626
|
-
args: {
|
|
627
|
-
initialValue: '/list services ',
|
|
628
|
-
},
|
|
629
|
-
parameters: {
|
|
630
|
-
docs: {
|
|
631
|
-
description: {
|
|
632
|
-
story:
|
|
633
|
-
'`commitCharacters` auto-accept on `=` for flag value tokens. ' +
|
|
634
|
-
'Verifies that no duplicate `=` is inserted when the ' +
|
|
635
|
-
'completion already ends with one.',
|
|
636
|
-
},
|
|
637
|
-
},
|
|
638
|
-
},
|
|
639
|
-
async beforeEach() {
|
|
640
|
-
const server = setupBasicQonsoleMockServer();
|
|
641
|
-
return () => server.close();
|
|
642
|
-
},
|
|
643
|
-
// CI guard: typing `=` while `--limit` is focused auto-accepts and
|
|
644
|
-
// must NOT produce `--limit==` (the inserted text already ends with
|
|
645
|
-
// `=`, so the typed `=` is suppressed).
|
|
646
|
-
play: async ({ canvasElement }) => {
|
|
647
|
-
const canvas = within(canvasElement);
|
|
648
|
-
const editable = canvas.getByRole('textbox');
|
|
649
|
-
// Let the LSP session connect before typing — the completion only
|
|
650
|
-
// fires on the keystroke, so the keystroke must land post-connect (a
|
|
651
|
-
// dropped pre-connect trigger never opens, and `waitFor` can't undo
|
|
652
|
-
// that). A short fixed settle is the right tool here.
|
|
653
|
-
await sleep(500);
|
|
654
|
-
await userEvent.click(editable);
|
|
655
|
-
// `-` opens the flag list (first item `--desc` is auto-focused).
|
|
656
|
-
await userEvent.type(editable, '-');
|
|
657
|
-
await waitFor(
|
|
658
|
-
() => {
|
|
659
|
-
const dropdown = document.querySelector('.reqore-menu');
|
|
660
|
-
expect(dropdown).not.toBeNull();
|
|
661
|
-
expect(dropdown!.textContent).toContain('--desc');
|
|
662
|
-
},
|
|
663
|
-
{ timeout: 30000 }
|
|
664
|
-
);
|
|
665
|
-
// `=` is a commit character → auto-accept the focused `--desc`.
|
|
666
|
-
// Use `userEvent.keyboard` (not `type`) so the keydown reaches the
|
|
667
|
-
// document-capture commit handler cleanly. Its insertText already
|
|
668
|
-
// ends with `=`, so the typed `=` is suppressed (no `--desc==`).
|
|
669
|
-
await userEvent.keyboard('=');
|
|
670
|
-
await waitFor(
|
|
671
|
-
() => {
|
|
672
|
-
expect(editable.textContent).toBe('/list services --desc=');
|
|
673
|
-
expect(editable.textContent).not.toContain('==');
|
|
674
|
-
},
|
|
675
|
-
{ timeout: 30000 }
|
|
676
|
-
);
|
|
677
|
-
},
|
|
678
|
-
};
|
|
679
|
-
|
|
680
|
-
/**
|
|
681
|
-
* Demonstrates wizard items in the completion dropdown
|
|
682
|
-
* (QONSOLE_ASSIST_FEATURES). The mock returns a synthetic "Create
|
|
683
|
-
* connection" wizard item (carrying `command: 'qonsole.startWizard'`)
|
|
684
|
-
* when no resource is set yet (cursor on `/…`), alongside the verb
|
|
685
|
-
* commands.
|
|
686
|
-
*
|
|
687
|
-
* This story is the **visual** of the feature: it opens the dropdown
|
|
688
|
-
* and leaves it open so the wizard item is what you see (in Storybook
|
|
689
|
-
* and Chromatic). The behaviour of *selecting* it — firing
|
|
690
|
-
* `onWizardStart` instead of inserting text — is covered by
|
|
691
|
-
* `SelectingWizardItemFiresCallback` below.
|
|
692
|
-
*/
|
|
693
|
-
export const WithWizardItems: Story = {
|
|
694
|
-
args: {
|
|
695
|
-
initialValue: '/',
|
|
696
|
-
onWizardStart: fn(),
|
|
697
|
-
},
|
|
698
|
-
parameters: {
|
|
699
|
-
docs: {
|
|
700
|
-
description: {
|
|
701
|
-
story:
|
|
702
|
-
'Wizard item in the dropdown. The `/` verb dropdown includes ' +
|
|
703
|
-
'a "Start Create connection wizard" entry alongside the ' +
|
|
704
|
-
'commands. Left open so the item is visible.',
|
|
705
|
-
},
|
|
706
|
-
},
|
|
707
|
-
},
|
|
708
|
-
async beforeEach() {
|
|
709
|
-
const server = setupBasicQonsoleMockServer();
|
|
710
|
-
return () => server.close();
|
|
711
|
-
},
|
|
712
|
-
// Open the verb dropdown and STOP with it open, so the snapshot shows
|
|
713
|
-
// the wizard item. (The initial `/` doesn't auto-open —
|
|
714
|
-
// trigger-on-typing — so clear and re-type `/`.) Selecting it is a
|
|
715
|
-
// separate story; clicking here would dismiss the dropdown and leave
|
|
716
|
-
// an empty-looking snapshot.
|
|
717
|
-
play: async ({ canvasElement }) => {
|
|
718
|
-
const canvas = within(canvasElement);
|
|
719
|
-
const editable = canvas.getByRole('textbox');
|
|
720
|
-
await userEvent.click(editable);
|
|
721
|
-
await userEvent.clear(editable);
|
|
722
|
-
await userEvent.type(editable, '/');
|
|
723
|
-
await waitFor(
|
|
724
|
-
() => {
|
|
725
|
-
const dropdown = document.querySelector('.reqore-menu');
|
|
726
|
-
expect(dropdown).not.toBeNull();
|
|
727
|
-
const item = Array.from(document.querySelectorAll('.reqore-menu-item')).find((el) =>
|
|
728
|
-
el.textContent?.includes('Create connection')
|
|
729
|
-
);
|
|
730
|
-
expect(item).toBeDefined();
|
|
731
|
-
},
|
|
732
|
-
{ timeout: 30000 }
|
|
733
|
-
);
|
|
734
|
-
},
|
|
735
|
-
};
|
|
736
|
-
|
|
737
|
-
/**
|
|
738
|
-
* Behavioural counterpart to `WithWizardItems`: selecting the wizard
|
|
739
|
-
* item fires the wrapper's `onWizardStart` callback with the wizard
|
|
740
|
-
* descriptor and inserts **no** text (the input stays `/`). Reqraft
|
|
741
|
-
* ships no wizard runner UI — that's qorus-ide-side; this verifies the
|
|
742
|
-
* hand-off path:
|
|
743
|
-
* - the mock attaches `command: 'qonsole.startWizard'` on the item
|
|
744
|
-
* - the Qonsole inserter branches on that command
|
|
745
|
-
* - `onWizardStart` fires with `command.arguments[0]`
|
|
746
|
-
*
|
|
747
|
-
* `args.onWizardStart` is a `fn()` spy so the play test (and the
|
|
748
|
-
* Actions panel) can confirm the invocation.
|
|
749
|
-
*/
|
|
750
|
-
export const SelectingWizardItemFiresCallback: Story = {
|
|
751
|
-
args: {
|
|
752
|
-
onWizardStart: fn(),
|
|
753
|
-
},
|
|
754
|
-
parameters: {
|
|
755
|
-
chromatic: { disable: true },
|
|
756
|
-
docs: {
|
|
757
|
-
description: {
|
|
758
|
-
story:
|
|
759
|
-
'Selecting the wizard item fires `onWizardStart` with the ' +
|
|
760
|
-
'descriptor and inserts no text — the input stays `/`. The ' +
|
|
761
|
-
'visual of the item itself is in `WithWizardItems`.',
|
|
762
|
-
},
|
|
763
|
-
},
|
|
764
|
-
},
|
|
765
|
-
async beforeEach() {
|
|
766
|
-
const server = setupBasicQonsoleMockServer();
|
|
767
|
-
return () => server.close();
|
|
768
|
-
},
|
|
769
|
-
play: async ({ canvasElement, args }) => {
|
|
770
|
-
const canvas = within(canvasElement);
|
|
771
|
-
const editable = canvas.getByRole('textbox');
|
|
772
|
-
await userEvent.click(editable);
|
|
773
|
-
await userEvent.clear(editable);
|
|
774
|
-
await userEvent.type(editable, '/');
|
|
775
|
-
await waitFor(
|
|
776
|
-
() => {
|
|
777
|
-
const item = Array.from(document.querySelectorAll('.reqore-menu-item')).find((el) =>
|
|
778
|
-
el.textContent?.includes('Create connection')
|
|
779
|
-
);
|
|
780
|
-
expect(item).toBeDefined();
|
|
781
|
-
},
|
|
782
|
-
{ timeout: 30000 }
|
|
783
|
-
);
|
|
784
|
-
const wizardItem = Array.from(document.querySelectorAll('.reqore-menu-item')).find((el) =>
|
|
785
|
-
el.textContent?.includes('Create connection')
|
|
786
|
-
);
|
|
787
|
-
await userEvent.click(wizardItem as HTMLElement);
|
|
788
|
-
// The callback fired with the wizard descriptor...
|
|
789
|
-
await waitFor(() => expect(args.onWizardStart).toHaveBeenCalled(), {
|
|
790
|
-
timeout: 30000,
|
|
791
|
-
});
|
|
792
|
-
const callArg = (args.onWizardStart as ReturnType<typeof fn>).mock.calls[0][0];
|
|
793
|
-
expect(callArg).toMatchObject({ action: 'start-wizard' });
|
|
794
|
-
// ...and NO text was inserted (wizard launch ≠ completion insert).
|
|
795
|
-
expect(editable.textContent).toBe('/');
|
|
796
|
-
},
|
|
797
|
-
};
|