@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,231 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Qore Technologies, s.r.o.
|
|
2
|
-
// Generic LSP session lifecycle hook. Manages a single `ReqraftLspClient` instance
|
|
3
|
-
// per-mount: connect → didOpen with optional metadata → forward subsequent
|
|
4
|
-
// content changes via didChange → expose the live client so wrappers can
|
|
5
|
-
// dispatch language-specific custom methods (e.g. `dpql/setContext`,
|
|
6
|
-
// `qonsole/assist`). Cleans up on unmount.
|
|
7
|
-
|
|
8
|
-
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
9
|
-
import { ReqraftLspClient } from '../../utils/lspClient';
|
|
10
|
-
import {
|
|
11
|
-
ILspCompletionItem,
|
|
12
|
-
ILspDiagnostic,
|
|
13
|
-
ILspSemanticTokensLegend,
|
|
14
|
-
ILspServerCapabilities,
|
|
15
|
-
} from '../../utils/lspClient.types';
|
|
16
|
-
import { offsetToLspPosition } from './helpers';
|
|
17
|
-
|
|
18
|
-
let lspUriCounter = 0;
|
|
19
|
-
|
|
20
|
-
export interface IUseLspSessionOptions {
|
|
21
|
-
languageId: string;
|
|
22
|
-
/**
|
|
23
|
-
* Document URI. If omitted, a random URI is generated using `languageId`
|
|
24
|
-
* as the scheme: `<languageId>://session/<counter>`. Caller-provided URIs
|
|
25
|
-
* must be opaque (no secrets / session tokens / sandbox IDs).
|
|
26
|
-
*/
|
|
27
|
-
uri?: string;
|
|
28
|
-
/** Optional metadata sent as `textDocument.metadata` on `didOpen`. */
|
|
29
|
-
initialMetadata?: Record<string, any>;
|
|
30
|
-
/** WebSocket path. Default: `'lsp'`. */
|
|
31
|
-
url?: string;
|
|
32
|
-
/** Initial document text sent on `didOpen`. Default: empty string. */
|
|
33
|
-
initialText?: string;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface IUseLspSessionResult {
|
|
37
|
-
/** The live `ReqraftLspClient`, or `null` before connect resolves / after disconnect. */
|
|
38
|
-
client: ReqraftLspClient | null;
|
|
39
|
-
/** The URI bound to this session. */
|
|
40
|
-
uri: string;
|
|
41
|
-
/** Becomes `true` once `initialize` + `didOpen` complete. */
|
|
42
|
-
isReady: boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Becomes `true` once any language-specific context binding the
|
|
45
|
-
* wrapper requires has resolved. For the generic primitive session
|
|
46
|
-
* this is always `true` (no context). Wrappers like `useDpqlSession`
|
|
47
|
-
* override it: it's `false` while a `dpql/setContext` /
|
|
48
|
-
* `dpql/setFsmContext` / `dpql/setAlertPayloadContext` request is
|
|
49
|
-
* in flight after `isReady` flipped, and flips `true` once the
|
|
50
|
-
* binding resolves (success or error — see the wrapper for
|
|
51
|
-
* details).
|
|
52
|
-
*
|
|
53
|
-
* SmartEditor and its child hooks gate LSP requests on the
|
|
54
|
-
* combined signal `isReady && isContextReady`: without it, a fast
|
|
55
|
-
* user typing `@` in the ~50–200ms window between LSP-ready and
|
|
56
|
-
* context-bound would hit the server context-less and get empty
|
|
57
|
-
* results, with the dropdown auto-closing silently.
|
|
58
|
-
*/
|
|
59
|
-
isContextReady: boolean;
|
|
60
|
-
/** Most-recent `textDocument/publishDiagnostics` payload for this document. */
|
|
61
|
-
diagnostics: ILspDiagnostic[];
|
|
62
|
-
/**
|
|
63
|
-
* The server's semantic-tokens legend, captured from
|
|
64
|
-
* `initialize → capabilities.semanticTokensProvider.legend`. `null`
|
|
65
|
-
* before the initialize response arrives or when the server doesn't
|
|
66
|
-
* advertise semantic tokens. Consumers (`useLspSemanticTokens`) need
|
|
67
|
-
* it to resolve int-encoded `tokenType` / `tokenModifiers` indices.
|
|
68
|
-
*
|
|
69
|
-
* Kept for backwards compatibility — new code should prefer
|
|
70
|
-
* `capabilities?.semanticTokensProvider?.legend`.
|
|
71
|
-
*/
|
|
72
|
-
semanticTokensLegend: ILspSemanticTokensLegend | null;
|
|
73
|
-
/**
|
|
74
|
-
* Full `capabilities` block from the server's initialize response.
|
|
75
|
-
* `null` until the handshake completes. Hooks gate features on the
|
|
76
|
-
* presence of the relevant provider (e.g. `useLspSignatureHelp`
|
|
77
|
-
* only fires when `capabilities?.signatureHelpProvider` exists).
|
|
78
|
-
*/
|
|
79
|
-
capabilities: ILspServerCapabilities | null;
|
|
80
|
-
/**
|
|
81
|
-
* The editor now holds `text`: the server is sent it via `didChange`, or via
|
|
82
|
-
* `didOpen` if the document is not open yet. Text the server already holds
|
|
83
|
-
* is not resent, so it is safe to call for every value the editor shows.
|
|
84
|
-
*/
|
|
85
|
-
didChange: (text: string) => void;
|
|
86
|
-
/**
|
|
87
|
-
* Request `textDocument/completion` at a plain-text offset. Converts
|
|
88
|
-
* offset → LSP line/character at the boundary; returns the standard
|
|
89
|
-
* `ILspCompletionItem[]`.
|
|
90
|
-
*/
|
|
91
|
-
getCompletions: (plainText: string, offset: number) => Promise<ILspCompletionItem[]>;
|
|
92
|
-
/** Request `textDocument/formatting`. Returns the new full document text, or null. */
|
|
93
|
-
format: () => Promise<string | null>;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export function useLspSession(
|
|
97
|
-
options: IUseLspSessionOptions
|
|
98
|
-
): IUseLspSessionResult {
|
|
99
|
-
const { languageId, uri: uriProp, initialMetadata, url, initialText = '' } = options;
|
|
100
|
-
|
|
101
|
-
const clientRef = useRef<ReqraftLspClient | null>(null);
|
|
102
|
-
const versionRef = useRef(1);
|
|
103
|
-
/* The text the editor holds, and the text the server holds for this
|
|
104
|
-
document — `null` until the document is open. The server tokenises and
|
|
105
|
-
diagnoses ITS copy, so every text the editor shows has to reach it, however
|
|
106
|
-
it got there: typed, or set from outside after mount (a Text view seeded
|
|
107
|
-
once `dpql/serialize` answers, a Preview following the typing). */
|
|
108
|
-
const editorTextRef = useRef(initialText);
|
|
109
|
-
const serverTextRef = useRef<string | null>(null);
|
|
110
|
-
const uriRef = useRef(uriProp ?? `${languageId}://session/${++lspUriCounter}`);
|
|
111
|
-
|
|
112
|
-
const [client, setClient] = useState<ReqraftLspClient | null>(null);
|
|
113
|
-
const [isReady, setIsReady] = useState(false);
|
|
114
|
-
const [diagnostics, setDiagnostics] = useState<ILspDiagnostic[]>([]);
|
|
115
|
-
const [semanticTokensLegend, setSemanticTokensLegend] =
|
|
116
|
-
useState<ILspSemanticTokensLegend | null>(null);
|
|
117
|
-
const [capabilities, setCapabilities] =
|
|
118
|
-
useState<ILspServerCapabilities | null>(null);
|
|
119
|
-
|
|
120
|
-
useEffect(() => {
|
|
121
|
-
const c = new ReqraftLspClient({
|
|
122
|
-
languageId,
|
|
123
|
-
uri: uriRef.current,
|
|
124
|
-
url,
|
|
125
|
-
});
|
|
126
|
-
clientRef.current = c;
|
|
127
|
-
setClient(c);
|
|
128
|
-
|
|
129
|
-
c.onDiagnostics((_uri, diags) => {
|
|
130
|
-
setDiagnostics(diags);
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
c.onReady(setIsReady);
|
|
134
|
-
|
|
135
|
-
// the session ends when the editor goes: a connection it closes itself has not failed
|
|
136
|
-
let disposed = false;
|
|
137
|
-
c.connect()
|
|
138
|
-
.then(() => {
|
|
139
|
-
// Initialize completed — mirror the captured server
|
|
140
|
-
// capabilities (including the semantic-tokens legend) into
|
|
141
|
-
// React state so consumers can subscribe via the session
|
|
142
|
-
// result.
|
|
143
|
-
setSemanticTokensLegend(c.semanticTokensLegend);
|
|
144
|
-
setCapabilities(c.capabilities);
|
|
145
|
-
// Opened with the text the editor holds NOW, which may have been set
|
|
146
|
-
// while the connection was opening.
|
|
147
|
-
serverTextRef.current = editorTextRef.current;
|
|
148
|
-
c.didOpen(
|
|
149
|
-
editorTextRef.current,
|
|
150
|
-
initialMetadata && Object.keys(initialMetadata).length > 0
|
|
151
|
-
? initialMetadata
|
|
152
|
-
: undefined
|
|
153
|
-
);
|
|
154
|
-
setIsReady(true);
|
|
155
|
-
})
|
|
156
|
-
.catch((err) => {
|
|
157
|
-
if (disposed) {
|
|
158
|
-
// the editor went before the connection opened (Text mode left again, a form closed): it was
|
|
159
|
-
// closed on purpose, which is not a failure to report
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
// eslint-disable-next-line no-console
|
|
163
|
-
console.error('[LSP session] Connect failed:', err);
|
|
164
|
-
setIsReady(false);
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
return () => {
|
|
168
|
-
disposed = true;
|
|
169
|
-
c.disconnect();
|
|
170
|
-
clientRef.current = null;
|
|
171
|
-
serverTextRef.current = null;
|
|
172
|
-
setClient(null);
|
|
173
|
-
setIsReady(false);
|
|
174
|
-
setSemanticTokensLegend(null);
|
|
175
|
-
setCapabilities(null);
|
|
176
|
-
};
|
|
177
|
-
// Connect once per mount. Metadata changes after mount are the
|
|
178
|
-
// wrapper's responsibility (via the exposed `client` ref and the
|
|
179
|
-
// appropriate custom method).
|
|
180
|
-
// eslint-disable-next-line
|
|
181
|
-
}, []);
|
|
182
|
-
|
|
183
|
-
const didChange = useCallback((text: string) => {
|
|
184
|
-
editorTextRef.current = text;
|
|
185
|
-
const c = clientRef.current;
|
|
186
|
-
// Not open yet: `didOpen` will carry it. Already held: nothing to send.
|
|
187
|
-
if (!c || serverTextRef.current === null || serverTextRef.current === text) return;
|
|
188
|
-
serverTextRef.current = text;
|
|
189
|
-
c.didChange(text, ++versionRef.current);
|
|
190
|
-
}, []);
|
|
191
|
-
|
|
192
|
-
const getCompletions = useCallback(
|
|
193
|
-
async (plainText: string, offset: number): Promise<ILspCompletionItem[]> => {
|
|
194
|
-
const c = clientRef.current;
|
|
195
|
-
if (!c) return [];
|
|
196
|
-
const { line, character } = offsetToLspPosition(plainText, offset);
|
|
197
|
-
try {
|
|
198
|
-
return await c.getCompletions(line, character);
|
|
199
|
-
} catch {
|
|
200
|
-
return [];
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
[]
|
|
204
|
-
);
|
|
205
|
-
|
|
206
|
-
const format = useCallback(async (): Promise<string | null> => {
|
|
207
|
-
const c = clientRef.current;
|
|
208
|
-
if (!c) return null;
|
|
209
|
-
try {
|
|
210
|
-
return await c.format();
|
|
211
|
-
} catch {
|
|
212
|
-
return null;
|
|
213
|
-
}
|
|
214
|
-
}, []);
|
|
215
|
-
|
|
216
|
-
return {
|
|
217
|
-
client,
|
|
218
|
-
uri: uriRef.current,
|
|
219
|
-
isReady,
|
|
220
|
-
// Generic session has no language-specific context to bind;
|
|
221
|
-
// wrappers (`useDpqlSession`) override this on their returned
|
|
222
|
-
// session by spreading + replacing.
|
|
223
|
-
isContextReady: true,
|
|
224
|
-
diagnostics,
|
|
225
|
-
semanticTokensLegend,
|
|
226
|
-
capabilities,
|
|
227
|
-
didChange,
|
|
228
|
-
getCompletions,
|
|
229
|
-
format,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Qore Technologies, s.r.o.
|
|
2
|
-
// Signature-help support for SmartEditor — pinned popover that shows
|
|
3
|
-
// the active call's signature label, the active parameter highlighted,
|
|
4
|
-
// and the active parameter's documentation. Fires on document/selection
|
|
5
|
-
// changes (debounced); the server's signatureHelp handler decides what
|
|
6
|
-
// (if anything) to return based on the cursor's context within the
|
|
7
|
-
// call. Dismisses on no-signature responses and on Escape (handled at
|
|
8
|
-
// the SmartEditor level via `clearSignature`).
|
|
9
|
-
//
|
|
10
|
-
// Position-mapping mirrors useLspSemanticTokens: pure offset math via
|
|
11
|
-
// the converter. Hook returns `{signature, position, clearSignature}`.
|
|
12
|
-
|
|
13
|
-
import { debounce } from 'lodash';
|
|
14
|
-
import {
|
|
15
|
-
RefObject,
|
|
16
|
-
useCallback,
|
|
17
|
-
useEffect,
|
|
18
|
-
useMemo,
|
|
19
|
-
useRef,
|
|
20
|
-
useState,
|
|
21
|
-
} from 'react';
|
|
22
|
-
import { BaseEditor, Editor } from 'slate';
|
|
23
|
-
import { HistoryEditor } from 'slate-history';
|
|
24
|
-
import { ReactEditor } from 'slate-react';
|
|
25
|
-
import { ILspSignatureHelp } from '../../utils/lspClient.types';
|
|
26
|
-
import { offsetToLspPosition } from './helpers';
|
|
27
|
-
import { ISlateConverter, ISlateElement } from './types';
|
|
28
|
-
import type { IUseLspSessionResult } from './useLspSession';
|
|
29
|
-
|
|
30
|
-
export interface IUseLspSignatureHelpOptions {
|
|
31
|
-
/** Default `true`. Set to `false` to disable. */
|
|
32
|
-
enabled?: boolean;
|
|
33
|
-
/** Debounce window before issuing the LSP request. Default 100ms. */
|
|
34
|
-
debounceMs?: number;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface IUseLspSignatureHelpResult {
|
|
38
|
-
/** Response from the LSP, or `null` when no signature available. */
|
|
39
|
-
signature: ILspSignatureHelp | null;
|
|
40
|
-
/** Viewport-coordinate anchor for the signature pill (top of cursor line). */
|
|
41
|
-
position: { left: number; top: number } | null;
|
|
42
|
-
/** Imperatively dismiss the current signature pill. */
|
|
43
|
-
clearSignature: () => void;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function useLspSignatureHelp(
|
|
47
|
-
session: IUseLspSessionResult,
|
|
48
|
-
editorRef: RefObject<
|
|
49
|
-
(BaseEditor & ReactEditor & HistoryEditor) | null
|
|
50
|
-
>,
|
|
51
|
-
converter: ISlateConverter,
|
|
52
|
-
nodes: ISlateElement[],
|
|
53
|
-
options: IUseLspSignatureHelpOptions = {}
|
|
54
|
-
): IUseLspSignatureHelpResult {
|
|
55
|
-
const { enabled = true, debounceMs = 100 } = options;
|
|
56
|
-
|
|
57
|
-
const [signature, setSignature] = useState<ILspSignatureHelp | null>(null);
|
|
58
|
-
const [position, setPosition] = useState<{
|
|
59
|
-
left: number;
|
|
60
|
-
top: number;
|
|
61
|
-
} | null>(null);
|
|
62
|
-
|
|
63
|
-
// Track latest in-flight request so a slow response can't overwrite
|
|
64
|
-
// newer state.
|
|
65
|
-
const requestIdRef = useRef(0);
|
|
66
|
-
|
|
67
|
-
const clearSignature = useCallback(() => {
|
|
68
|
-
setSignature(null);
|
|
69
|
-
setPosition(null);
|
|
70
|
-
}, []);
|
|
71
|
-
|
|
72
|
-
// Pre-compute plain text from the slate document. Same memo
|
|
73
|
-
// pattern as useLspSemanticTokens.
|
|
74
|
-
const plainText = useMemo(
|
|
75
|
-
() => converter.fromSlateNodes(nodes),
|
|
76
|
-
[converter, nodes]
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
// Debounced fetch. Re-created via the effect below to capture the
|
|
80
|
-
// latest session/plainText/etc. Started as a no-op so the ref is
|
|
81
|
-
// always a function.
|
|
82
|
-
const fetchSignature = useRef<ReturnType<typeof debounce>>(
|
|
83
|
-
debounce(() => undefined)
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
// Depend on stable primitives inside `session` (not `session`
|
|
87
|
-
// itself, which is rebuilt every render — `useLspSession` returns a
|
|
88
|
-
// fresh object).
|
|
89
|
-
useEffect(() => {
|
|
90
|
-
fetchSignature.current.cancel();
|
|
91
|
-
fetchSignature.current = debounce(async () => {
|
|
92
|
-
const editor = editorRef.current;
|
|
93
|
-
const client = session.client;
|
|
94
|
-
if (
|
|
95
|
-
!enabled ||
|
|
96
|
-
!editor ||
|
|
97
|
-
!client ||
|
|
98
|
-
!session.isReady ||
|
|
99
|
-
!session.isContextReady ||
|
|
100
|
-
!session.capabilities?.signatureHelpProvider
|
|
101
|
-
) {
|
|
102
|
-
clearSignature();
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
// If the editor doesn't have a focused selection (e.g. fresh
|
|
106
|
-
// mount before user interaction), fall back to the end of the
|
|
107
|
-
// document. Without this, the hook would never fire on mount
|
|
108
|
-
// — the demo story can't ask the user to click first.
|
|
109
|
-
let selection = editor.selection;
|
|
110
|
-
if (!selection) {
|
|
111
|
-
try {
|
|
112
|
-
const end = Editor.end(editor, []);
|
|
113
|
-
selection = { anchor: end, focus: end };
|
|
114
|
-
} catch {
|
|
115
|
-
clearSignature();
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Map the current selection's anchor to an LSP {line, character}.
|
|
121
|
-
const currentNodes = editor.children as ISlateElement[];
|
|
122
|
-
const text = converter.fromSlateNodes(currentNodes);
|
|
123
|
-
const offset = converter.selectionToOffset(
|
|
124
|
-
currentNodes,
|
|
125
|
-
selection.anchor.path as number[],
|
|
126
|
-
selection.anchor.offset
|
|
127
|
-
);
|
|
128
|
-
const { line, character } = offsetToLspPosition(text, offset);
|
|
129
|
-
|
|
130
|
-
const reqId = ++requestIdRef.current;
|
|
131
|
-
try {
|
|
132
|
-
const result = await client.getSignatureHelp(line, character);
|
|
133
|
-
if (reqId !== requestIdRef.current) return; // stale
|
|
134
|
-
// LSP servers signal "no signature" either by responding `null`
|
|
135
|
-
// or by responding `{signatures: []}` — treat both as dismiss.
|
|
136
|
-
if (!result || !result.signatures || result.signatures.length === 0) {
|
|
137
|
-
clearSignature();
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
setSignature(result);
|
|
141
|
-
// Anchor the pill ABOVE the current cursor line so it
|
|
142
|
-
// doesn't overlap the completion popover, which anchors at
|
|
143
|
-
// BELOW the line. The two can coexist on a single line
|
|
144
|
-
// when a function call's args are mid-typed.
|
|
145
|
-
try {
|
|
146
|
-
const domRange = ReactEditor.toDOMRange(editor, selection);
|
|
147
|
-
const rect = domRange.getBoundingClientRect();
|
|
148
|
-
if (rect.width || rect.height || rect.left || rect.top) {
|
|
149
|
-
setPosition({ left: rect.left, top: rect.top - 4 });
|
|
150
|
-
}
|
|
151
|
-
} catch {
|
|
152
|
-
// Editor unmounted mid-request — keep last-known position.
|
|
153
|
-
}
|
|
154
|
-
} catch {
|
|
155
|
-
if (reqId === requestIdRef.current) clearSignature();
|
|
156
|
-
}
|
|
157
|
-
}, debounceMs);
|
|
158
|
-
return () => fetchSignature.current.cancel();
|
|
159
|
-
}, [
|
|
160
|
-
session.client,
|
|
161
|
-
session.isReady,
|
|
162
|
-
session.isContextReady,
|
|
163
|
-
session.capabilities,
|
|
164
|
-
converter,
|
|
165
|
-
enabled,
|
|
166
|
-
debounceMs,
|
|
167
|
-
editorRef,
|
|
168
|
-
clearSignature,
|
|
169
|
-
]);
|
|
170
|
-
|
|
171
|
-
// Fire on document changes (text content) AND when the session
|
|
172
|
-
// becomes ready/capabilities arrive. The signature-help request
|
|
173
|
-
// itself reads the live selection from `editorRef.current` so
|
|
174
|
-
// cursor-only moves are picked up too — SmartEditor's
|
|
175
|
-
// `onSlateChangeImpl` triggers a render on every Slate change,
|
|
176
|
-
// which re-runs this effect's deps closure (plainText changes
|
|
177
|
-
// when content does) and the editor's selection is read inside
|
|
178
|
-
// the debounced fetch.
|
|
179
|
-
useEffect(() => {
|
|
180
|
-
if (
|
|
181
|
-
!enabled ||
|
|
182
|
-
!session.isReady ||
|
|
183
|
-
!session.isContextReady ||
|
|
184
|
-
!session.capabilities?.signatureHelpProvider
|
|
185
|
-
) {
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
fetchSignature.current();
|
|
189
|
-
}, [
|
|
190
|
-
enabled,
|
|
191
|
-
session.isReady,
|
|
192
|
-
session.isContextReady,
|
|
193
|
-
session.capabilities,
|
|
194
|
-
plainText,
|
|
195
|
-
]);
|
|
196
|
-
|
|
197
|
-
return { signature, position, clearSignature };
|
|
198
|
-
}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { StoryObj } from '@storybook/react-vite';
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
import { expect, userEvent, waitFor, within } from 'storybook/test';
|
|
4
|
-
import { StoryMeta } from '../../types';
|
|
5
|
-
import { AttachmentChips } from './AttachmentChips';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Staged-file chips for a ticket composer. Image files show a thumbnail and open the shared
|
|
9
|
-
* `ImageLightbox` on click; other files show a paperclip. The pencil renames a file inline
|
|
10
|
-
* (a File name is read-only, so the host swaps in a renamed copy); the ✕ removes it.
|
|
11
|
-
*/
|
|
12
|
-
const meta = {
|
|
13
|
-
component: AttachmentChips,
|
|
14
|
-
title: 'Components/AttachmentChips',
|
|
15
|
-
} as StoryMeta<typeof AttachmentChips>;
|
|
16
|
-
export default meta;
|
|
17
|
-
type Story = StoryObj<typeof meta>;
|
|
18
|
-
|
|
19
|
-
const imageFile = (label: string, hue: number, name: string): File => {
|
|
20
|
-
const svg =
|
|
21
|
-
`<svg xmlns='http://www.w3.org/2000/svg' width='640' height='400'>` +
|
|
22
|
-
`<rect width='640' height='400' fill='hsl(${hue},40%,16%)'/>` +
|
|
23
|
-
`<text x='24' y='210' fill='white' font-family='sans-serif' font-size='30'>${label}</text></svg>`;
|
|
24
|
-
return new File([svg], name, { type: 'image/svg+xml' });
|
|
25
|
-
};
|
|
26
|
-
const textFile = (name: string): File => new File(['log contents'], name, { type: 'text/plain' });
|
|
27
|
-
|
|
28
|
-
const FILES = [
|
|
29
|
-
imageFile('before', 265, 'screenshot-2026-07-26-17-41-44.png'),
|
|
30
|
-
imageFile('after', 205, 'canvas-after.png'),
|
|
31
|
-
textFile('server.log'),
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
// Plays the composer's role: owns the file set, swaps in a renamed copy on rename.
|
|
35
|
-
const Harness = () => {
|
|
36
|
-
const [files, setFiles] = useState<File[]>(FILES);
|
|
37
|
-
return (
|
|
38
|
-
<AttachmentChips
|
|
39
|
-
files={files}
|
|
40
|
-
onRemove={(index) => setFiles((current) => current.filter((_, j) => j !== index))}
|
|
41
|
-
onRename={(index, name) =>
|
|
42
|
-
setFiles((current) =>
|
|
43
|
-
current.map((file, i) => (i === index ? new File([file], name, { type: file.type }) : file))
|
|
44
|
-
)
|
|
45
|
-
}
|
|
46
|
-
/>
|
|
47
|
-
);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Two screenshots + a log. Clicking a screenshot chip opens the lightbox (paging across the two
|
|
52
|
-
* images); the log stays a plain chip. Proves the preview opens and paints the image.
|
|
53
|
-
*/
|
|
54
|
-
export const WithImages: Story = {
|
|
55
|
-
parameters: {
|
|
56
|
-
docs: {
|
|
57
|
-
description: {
|
|
58
|
-
story:
|
|
59
|
-
'Renders staged chips for two screenshots and a log, where clicking a screenshot chip opens the shared lightbox while the log stays a plain chip.',
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
render: () => <Harness />,
|
|
64
|
-
play: async ({ canvasElement }) => {
|
|
65
|
-
const canvas = within(canvasElement);
|
|
66
|
-
await expect(canvas.getByText('screenshot-2026-07-26-17-41-44.png')).toBeInTheDocument();
|
|
67
|
-
await expect(canvas.getByText('server.log')).toBeInTheDocument();
|
|
68
|
-
|
|
69
|
-
// clicking an image chip opens the shared lightbox (portals to the body)
|
|
70
|
-
await userEvent.click(canvas.getByText('canvas-after.png'));
|
|
71
|
-
await waitFor(() => expect(document.querySelector('[role="dialog"]')).not.toBeNull());
|
|
72
|
-
await waitFor(() =>
|
|
73
|
-
expect(document.body.querySelector('img[alt="canvas-after.png"]')).not.toBeNull()
|
|
74
|
-
);
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Renaming from INSIDE the preview: open a chip's lightbox, use its pencil, and the new
|
|
80
|
-
* name lands on the chip too — the lightbox funnels into the same host `onRename` as the
|
|
81
|
-
* chip pencil, so both affordances stay one mechanism.
|
|
82
|
-
*/
|
|
83
|
-
export const RenameFromPreview: Story = {
|
|
84
|
-
parameters: {
|
|
85
|
-
docs: {
|
|
86
|
-
description: {
|
|
87
|
-
story:
|
|
88
|
-
'Renders the staged chips and renames a screenshot from inside its lightbox — the preview’s pencil commits the new name, and the chip outside carries it too.',
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
render: () => <Harness />,
|
|
93
|
-
play: async ({ canvasElement }) => {
|
|
94
|
-
const canvas = within(canvasElement);
|
|
95
|
-
await userEvent.click(canvas.getByText('canvas-after.png'));
|
|
96
|
-
await waitFor(() => expect(document.querySelector('[role="dialog"]')).not.toBeNull());
|
|
97
|
-
|
|
98
|
-
const pencil = await waitFor(() => {
|
|
99
|
-
const el = document.body.querySelector<HTMLButtonElement>('.imagelightbox-rename');
|
|
100
|
-
if (!el) {
|
|
101
|
-
throw new Error('lightbox rename action not rendered');
|
|
102
|
-
}
|
|
103
|
-
return el;
|
|
104
|
-
});
|
|
105
|
-
await userEvent.click(pencil);
|
|
106
|
-
const input = await waitFor(() => {
|
|
107
|
-
const el = document.body.querySelector<HTMLInputElement>('.reqore-modal input');
|
|
108
|
-
if (!el) {
|
|
109
|
-
throw new Error('lightbox rename input not shown');
|
|
110
|
-
}
|
|
111
|
-
return el;
|
|
112
|
-
});
|
|
113
|
-
await userEvent.clear(input);
|
|
114
|
-
await userEvent.type(input, 'after-fix.png');
|
|
115
|
-
await userEvent.keyboard('{Enter}');
|
|
116
|
-
|
|
117
|
-
// commit ends the edit; a second Esc now closes the modal itself
|
|
118
|
-
await userEvent.keyboard('{Escape}');
|
|
119
|
-
await waitFor(() => expect(document.querySelector('[role="dialog"]')).toBeNull());
|
|
120
|
-
|
|
121
|
-
// the rename reached the host: the CHIP carries the new name
|
|
122
|
-
await waitFor(() => expect(canvas.getByText('after-fix.png')).toBeInTheDocument());
|
|
123
|
-
await expect(canvas.queryByText('canvas-after.png')).not.toBeInTheDocument();
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Renaming an auto-named screenshot: the pencil turns the chip into an inline input; Enter
|
|
129
|
-
* commits and the chip shows the new name. Discriminating — remove the rename wiring and the
|
|
130
|
-
* chip keeps its `screenshot-<timestamp>.png` name.
|
|
131
|
-
*/
|
|
132
|
-
export const Rename: Story = {
|
|
133
|
-
parameters: {
|
|
134
|
-
docs: {
|
|
135
|
-
description: {
|
|
136
|
-
story:
|
|
137
|
-
'Renders the staged chips and renames an auto-named screenshot inline — the pencil opens an input, Enter commits, and the chip shows the new name.',
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
render: () => <Harness />,
|
|
142
|
-
play: async ({ canvasElement }) => {
|
|
143
|
-
const canvas = within(canvasElement);
|
|
144
|
-
const chip = canvas.getByText('screenshot-2026-07-26-17-41-44.png').closest('.reqore-tag');
|
|
145
|
-
if (!chip) {
|
|
146
|
-
throw new Error('chip not found');
|
|
147
|
-
}
|
|
148
|
-
// click the rename pencil (its own action; the ✕ is a separate reqore-tag-remove)
|
|
149
|
-
const renameAction = chip.querySelector<HTMLElement>('.reqore-tag-action:not(.reqore-tag-remove)');
|
|
150
|
-
if (!renameAction) {
|
|
151
|
-
throw new Error('rename action not rendered');
|
|
152
|
-
}
|
|
153
|
-
await userEvent.click(renameAction);
|
|
154
|
-
|
|
155
|
-
// the inline input appears, pre-filled with the current name
|
|
156
|
-
const input = await waitFor(() => {
|
|
157
|
-
const el = canvasElement.querySelector<HTMLInputElement>('input');
|
|
158
|
-
if (!el) {
|
|
159
|
-
throw new Error('rename input not shown');
|
|
160
|
-
}
|
|
161
|
-
return el;
|
|
162
|
-
});
|
|
163
|
-
await userEvent.clear(input);
|
|
164
|
-
await userEvent.type(input, 'mapper-error.png');
|
|
165
|
-
await userEvent.keyboard('{Enter}');
|
|
166
|
-
|
|
167
|
-
// the chip now carries the new name; the auto-name is gone
|
|
168
|
-
await waitFor(() => expect(canvas.getByText('mapper-error.png')).toBeInTheDocument());
|
|
169
|
-
await expect(canvas.queryByText('screenshot-2026-07-26-17-41-44.png')).not.toBeInTheDocument();
|
|
170
|
-
},
|
|
171
|
-
};
|