@qoretechnologies/reqraft 0.10.65 → 0.10.66-pr.137.ga1983bf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -1
- package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
- package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
- package/dist/components/Description/AllowedValuesHelp.js +86 -0
- package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
- package/dist/components/Description/describedControl.d.ts +54 -0
- package/dist/components/Description/describedControl.d.ts.map +1 -0
- package/dist/components/Description/describedControl.js +81 -0
- package/dist/components/Description/describedControl.js.map +1 -0
- package/dist/components/Description/index.d.ts.map +1 -1
- package/dist/components/Description/index.js +3 -2
- package/dist/components/Description/index.js.map +1 -1
- package/dist/components/colorValue/colorValue.d.ts +59 -0
- package/dist/components/colorValue/colorValue.d.ts.map +1 -0
- package/dist/components/colorValue/colorValue.js +245 -0
- package/dist/components/colorValue/colorValue.js.map +1 -0
- package/dist/components/colorValue/index.d.ts +34 -0
- package/dist/components/colorValue/index.d.ts.map +1 -0
- package/dist/components/colorValue/index.js +136 -0
- package/dist/components/colorValue/index.js.map +1 -0
- package/dist/components/colorValue/labels.d.ts +12 -0
- package/dist/components/colorValue/labels.d.ts.map +1 -0
- package/dist/components/colorValue/labels.js +11 -0
- package/dist/components/colorValue/labels.js.map +1 -0
- package/dist/components/composer/Composer.d.ts +1 -1
- package/dist/components/composer/Composer.d.ts.map +1 -1
- package/dist/components/composer/Composer.js +2 -2
- package/dist/components/composer/Composer.js.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.js +156 -10
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
- package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
- package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
- package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +413 -63
- package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
- package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
- package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.js +44 -17
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +94 -8
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
- package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
- package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
- package/dist/components/form/engine/CompactRow.js +322 -124
- 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 +66 -11
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +570 -176
- 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 +25 -3
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
- package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
- package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +30 -1
- 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 +59 -22
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +102 -55
- 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/inheritProps.d.ts +29 -0
- package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
- package/dist/components/form/engine/inheritProps.js +43 -0
- package/dist/components/form/engine/inheritProps.js.map +1 -0
- package/dist/components/form/engine/operatorSummary.d.ts +26 -0
- package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
- package/dist/components/form/engine/operatorSummary.js +35 -0
- package/dist/components/form/engine/operatorSummary.js.map +1 -0
- package/dist/components/form/engine/readFirst.d.ts +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 +7 -6
- package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
- package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +536 -114
- package/dist/components/form/expressions/ExpressionField.js.map +1 -1
- package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
- package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
- package/dist/components/form/expressions/argumentPresence.js +16 -1
- package/dist/components/form/expressions/argumentPresence.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
- package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.js +30 -11
- package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts +9 -0
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +7 -5
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +34 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +170 -80
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/builder/item.d.ts +6 -2
- package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/item.js +19 -5
- package/dist/components/form/expressions/builder/item.js.map +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
- package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
- package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
- package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
- package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
- package/dist/components/form/expressions/expressionOperands.js +97 -0
- package/dist/components/form/expressions/expressionOperands.js.map +1 -0
- package/dist/components/form/expressions/fieldPath.d.ts +24 -0
- package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
- package/dist/components/form/expressions/fieldPath.js +152 -0
- package/dist/components/form/expressions/fieldPath.js.map +1 -0
- package/dist/components/form/expressions/loneValue.d.ts +17 -0
- package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
- package/dist/components/form/expressions/loneValue.js +33 -0
- package/dist/components/form/expressions/loneValue.js.map +1 -0
- package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/mockExpressions.js +22 -5
- package/dist/components/form/expressions/mockExpressions.js.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
- package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.js +43 -10
- package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
- package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
- package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
- package/dist/components/form/expressions/textOfExpression.js +49 -0
- package/dist/components/form/expressions/textOfExpression.js.map +1 -0
- package/dist/components/form/expressions/types.d.ts +12 -0
- package/dist/components/form/expressions/types.d.ts.map +1 -1
- package/dist/components/form/expressions/types.js +6 -1
- package/dist/components/form/expressions/types.js.map +1 -1
- package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
- package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
- package/dist/components/form/expressions/useExpressionType.js +181 -0
- package/dist/components/form/expressions/useExpressionType.js.map +1 -0
- package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
- package/dist/components/form/expressions/useRenderExpression.js +13 -9
- package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
- package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
- package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
- package/dist/components/form/expressions/wildcardExpressions.js +101 -0
- package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +43 -20
- 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 +39 -6
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
- package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
- package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
- package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
- package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAuto.js +24 -0
- package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
- package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +119 -62
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
- package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
- package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
- package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
- package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
- package/dist/components/form/fields/binary/Binary.js +23 -3
- package/dist/components/form/fields/binary/Binary.js.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
- package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.js +9 -1
- package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
- package/dist/components/form/fields/color/Color.d.ts +103 -16
- package/dist/components/form/fields/color/Color.d.ts.map +1 -1
- package/dist/components/form/fields/color/Color.js +616 -16
- package/dist/components/form/fields/color/Color.js.map +1 -1
- package/dist/components/form/fields/emittedValues.d.ts +34 -3
- package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
- package/dist/components/form/fields/emittedValues.js +24 -1
- package/dist/components/form/fields/emittedValues.js.map +1 -1
- package/dist/components/form/fields/file/File.d.ts +1 -1
- package/dist/components/form/fields/file/File.d.ts.map +1 -1
- package/dist/components/form/fields/file/File.js +4 -2
- package/dist/components/form/fields/file/File.js.map +1 -1
- package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +29 -8
- 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 +13 -9
- 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/radio-group/RadioGroup.d.ts.map +1 -1
- package/dist/components/form/fields/radio-group/RadioGroup.js +4 -3
- package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +382 -91
- package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js +80 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
- package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/index.js +8 -4
- package/dist/components/form/fields/schema-definition/index.js.map +1 -1
- package/dist/components/form/fields/select/Select.d.ts +10 -1
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +28 -14
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +25 -12
- package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
- package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
- package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
- package/dist/components/form/fields/select/unavailableRow.js +55 -0
- package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
- package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
- package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
- package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +678 -107
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
- package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplatePicker.js +451 -0
- package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
- package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
- package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateText.js +22 -16
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
- package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
- package/dist/components/form/fields/template/referenceNames.js +69 -0
- package/dist/components/form/fields/template/referenceNames.js.map +1 -0
- package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
- package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
- package/dist/components/form/fields/template/writtenAsText.js +204 -0
- package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
- package/dist/components/form/index.d.ts +12 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +25 -1
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/form/typeSentenceForm.d.ts +17 -0
- package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
- package/dist/components/form/typeSentenceForm.js +54 -0
- package/dist/components/form/typeSentenceForm.js.map +1 -0
- package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.js +19 -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 +20 -8
- package/dist/components/log/Log.js.map +1 -1
- package/dist/components/menu/Menu.d.ts.map +1 -1
- package/dist/components/menu/Menu.js +19 -10
- package/dist/components/menu/Menu.js.map +1 -1
- package/dist/components/smartEditor/CompletionMenu.d.ts +53 -0
- package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
- package/dist/components/smartEditor/CompletionMenu.js +302 -0
- package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
- package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
- package/dist/components/smartEditor/MarkdownDoc.js +3 -3
- package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
- package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
- package/dist/components/smartEditor/SmartEditor.js +584 -190
- package/dist/components/smartEditor/SmartEditor.js.map +1 -1
- package/dist/components/smartEditor/completionStyle.d.ts +28 -0
- package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
- package/dist/components/smartEditor/completionStyle.js +79 -0
- package/dist/components/smartEditor/completionStyle.js.map +1 -0
- package/dist/components/smartEditor/contextTitle.d.ts +10 -0
- package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
- package/dist/components/smartEditor/contextTitle.js +21 -0
- package/dist/components/smartEditor/contextTitle.js.map +1 -0
- package/dist/components/smartEditor/editingAids.d.ts +64 -0
- package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
- package/dist/components/smartEditor/editingAids.js +213 -0
- package/dist/components/smartEditor/editingAids.js.map +1 -0
- package/dist/components/smartEditor/index.d.ts +6 -1
- package/dist/components/smartEditor/index.d.ts.map +1 -1
- package/dist/components/smartEditor/index.js +19 -1
- package/dist/components/smartEditor/index.js.map +1 -1
- package/dist/components/smartEditor/templateCompletions.d.ts +98 -0
- package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
- package/dist/components/smartEditor/templateCompletions.js +380 -0
- package/dist/components/smartEditor/templateCompletions.js.map +1 -0
- package/dist/components/smartEditor/typedReferences.d.ts +34 -0
- package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
- package/dist/components/smartEditor/typedReferences.js +179 -0
- package/dist/components/smartEditor/typedReferences.js.map +1 -0
- package/dist/components/smartEditor/types.d.ts +116 -2
- package/dist/components/smartEditor/types.d.ts.map +1 -1
- package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
- package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
- package/dist/components/smartEditor/useEditingAids.js +336 -0
- package/dist/components/smartEditor/useEditingAids.js.map +1 -0
- package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
- package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.js +562 -151
- package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
- package/dist/components/smartEditor/useLspHover.d.ts +33 -7
- package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspHover.js +364 -35
- package/dist/components/smartEditor/useLspHover.js.map +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
- package/dist/components/smartEditor/useLspSession.d.ts +6 -0
- package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSession.js +7 -6
- package/dist/components/smartEditor/useLspSession.js.map +1 -1
- package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
- package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
- package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
- package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
- package/dist/components/smartEditor/useTabCameIn.js +42 -0
- package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
- package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
- package/dist/components/supportTicket/AttachmentChips.js +15 -5
- package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +27 -6
- package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
- package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
- package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketHeader.js +20 -2
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +9 -4
- package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
- package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
- package/dist/components/ticketThread/TicketThread.js +38 -13
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/allowedValues.d.ts +21 -0
- package/dist/helpers/allowedValues.d.ts.map +1 -1
- package/dist/helpers/allowedValues.js +40 -1
- package/dist/helpers/allowedValues.js.map +1 -1
- package/dist/helpers/descriptionTooltip.d.ts +46 -0
- package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
- package/dist/helpers/descriptionTooltip.js +76 -0
- package/dist/helpers/descriptionTooltip.js.map +1 -0
- package/dist/helpers/domProps.d.ts +5 -0
- package/dist/helpers/domProps.d.ts.map +1 -0
- package/dist/helpers/domProps.js +47 -0
- package/dist/helpers/domProps.js.map +1 -0
- package/dist/helpers/expressions.d.ts +115 -4
- package/dist/helpers/expressions.d.ts.map +1 -1
- package/dist/helpers/expressions.js +247 -29
- package/dist/helpers/expressions.js.map +1 -1
- package/dist/helpers/hoveringPointer.d.ts +26 -0
- package/dist/helpers/hoveringPointer.d.ts.map +1 -0
- package/dist/helpers/hoveringPointer.js +29 -0
- package/dist/helpers/hoveringPointer.js.map +1 -0
- package/dist/helpers/markdownText.d.ts +14 -0
- package/dist/helpers/markdownText.d.ts.map +1 -0
- package/dist/helpers/markdownText.js +160 -0
- package/dist/helpers/markdownText.js.map +1 -0
- package/dist/helpers/noDescription.d.ts +9 -0
- package/dist/helpers/noDescription.d.ts.map +1 -0
- package/dist/helpers/noDescription.js +13 -0
- package/dist/helpers/noDescription.js.map +1 -0
- package/dist/helpers/optionUiTypes.d.ts +2 -2
- package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.js +505 -0
- package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
- package/dist/helpers/readableColors.d.ts +36 -0
- package/dist/helpers/readableColors.d.ts.map +1 -0
- package/dist/helpers/readableColors.js +116 -0
- package/dist/helpers/readableColors.js.map +1 -0
- package/dist/helpers/recordFieldReference.d.ts +15 -0
- package/dist/helpers/recordFieldReference.d.ts.map +1 -0
- package/dist/helpers/recordFieldReference.js +89 -0
- package/dist/helpers/recordFieldReference.js.map +1 -0
- package/dist/helpers/templateCatalogue.d.ts +104 -0
- package/dist/helpers/templateCatalogue.d.ts.map +1 -0
- package/dist/helpers/templateCatalogue.js +116 -0
- package/dist/helpers/templateCatalogue.js.map +1 -0
- package/dist/helpers/templateCatalogueContext.d.ts +19 -0
- package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
- package/dist/helpers/templateCatalogueContext.js +31 -0
- package/dist/helpers/templateCatalogueContext.js.map +1 -0
- package/dist/helpers/templateItems.d.ts +2 -2
- package/dist/helpers/templateItems.d.ts.map +1 -1
- package/dist/helpers/templateItems.js +6 -4
- package/dist/helpers/templateItems.js.map +1 -1
- package/dist/helpers/templateText.d.ts +1 -0
- package/dist/helpers/templateText.d.ts.map +1 -1
- package/dist/helpers/templateText.js +7 -3
- package/dist/helpers/templateText.js.map +1 -1
- package/dist/helpers/templateTree.d.ts +248 -0
- package/dist/helpers/templateTree.d.ts.map +1 -0
- package/dist/helpers/templateTree.js +892 -0
- package/dist/helpers/templateTree.js.map +1 -0
- package/dist/helpers/templateType.d.ts +28 -0
- package/dist/helpers/templateType.d.ts.map +1 -0
- package/dist/helpers/templateType.js +30 -0
- package/dist/helpers/templateType.js.map +1 -0
- package/dist/helpers/templates.d.ts +86 -16
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +305 -45
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts +27 -0
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +169 -39
- package/dist/helpers/validations.js.map +1 -1
- package/dist/helpers/webLink.d.ts +8 -0
- package/dist/helpers/webLink.d.ts.map +1 -0
- package/dist/helpers/webLink.js +29 -0
- package/dist/helpers/webLink.js.map +1 -0
- package/dist/hooks/useQorusTypes.d.ts +12 -17
- package/dist/hooks/useQorusTypes.d.ts.map +1 -1
- package/dist/hooks/useQorusTypes.js +44 -172
- package/dist/hooks/useQorusTypes.js.map +1 -1
- package/dist/hooks/useReadableIntentShade.d.ts +9 -0
- package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
- package/dist/hooks/useReadableIntentShade.js +23 -0
- package/dist/hooks/useReadableIntentShade.js.map +1 -0
- package/dist/hooks/useReadableOpacity.d.ts +6 -0
- package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
- package/dist/hooks/useReadableOpacity.js +17 -0
- package/dist/hooks/useReadableOpacity.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -1
- package/dist/index.js.map +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
- package/dist/tracking/ui/ExperimentCard.js +26 -10
- package/dist/tracking/ui/ExperimentCard.js.map +1 -1
- package/dist/tracking/ui/card.d.ts +2 -2
- package/dist/tracking/ui/card.d.ts.map +1 -1
- package/dist/tracking/ui/card.js +2 -2
- package/dist/tracking/ui/card.js.map +1 -1
- package/dist/tracking/ui/readable.d.ts +14 -0
- package/dist/tracking/ui/readable.d.ts.map +1 -0
- package/dist/tracking/ui/readable.js +60 -0
- package/dist/tracking/ui/readable.js.map +1 -0
- package/dist/utils/fetch.d.ts +9 -2
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +6 -5
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/lspClient.types.d.ts +2 -0
- package/dist/utils/lspClient.types.d.ts.map +1 -1
- package/dist/utils/websocket.d.ts +65 -2
- package/dist/utils/websocket.d.ts.map +1 -1
- package/dist/utils/websocket.js +276 -44
- package/dist/utils/websocket.js.map +1 -1
- package/package.json +14 -6
- package/.claude/CLAUDE.md +0 -317
- package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
- package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
- package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
- package/.tasks/FIELD_STACK_REPORT.md +0 -234
- package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
- package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
- package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
- package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
- package/.tasks/INDEX.md +0 -111
- package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
- package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
- package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
- package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
- package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
- package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
- package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
- package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
- package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
- package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
- package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
- package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
- package/CODE_OF_CONDUCT.md +0 -105
- package/CONTRIBUTING.MD +0 -78
- package/SECURITY.md +0 -3
- package/chromatic.config.json +0 -5
- package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
- package/design/COMPACT_INFO_DISPLAY.md +0 -87
- package/design/COMPACT_PARITY.md +0 -85
- package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
- package/design/FORM_ENGINE_COMPACT.md +0 -300
- package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
- package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
- package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
- package/design/IDE_INTEGRATION.md +0 -64
- package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
- package/design/SELECT_DIALOG_FLOOR.md +0 -86
- package/design/SMART_EDITOR_UX.md +0 -438
- package/design/TRACKING.md +0 -290
- package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
- package/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,4 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
2
6
|
var __assign = (this && this.__assign) || function () {
|
|
3
7
|
__assign = Object.assign || function(t) {
|
|
4
8
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -10,28 +14,41 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
14
|
};
|
|
11
15
|
return __assign.apply(this, arguments);
|
|
12
16
|
};
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
18
51
|
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
-
if (mod && mod.__esModule) return mod;
|
|
31
|
-
var result = {};
|
|
32
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
-
__setModuleDefault(result, mod);
|
|
34
|
-
return result;
|
|
35
52
|
};
|
|
36
53
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
37
54
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
@@ -42,28 +59,42 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
42
59
|
}
|
|
43
60
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
44
61
|
};
|
|
62
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
63
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
64
|
+
};
|
|
45
65
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
66
|
exports.SmartEditor = void 0;
|
|
47
67
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
48
68
|
// Copyright 2026 Qore Technologies, s.r.o.
|
|
49
69
|
var reqore_1 = require("@qoretechnologies/reqore");
|
|
50
70
|
var Popover_1 = require("@qoretechnologies/reqore/dist/components/Popover");
|
|
71
|
+
var sizes_1 = require("@qoretechnologies/reqore/dist/constants/sizes");
|
|
51
72
|
var RichTextEditor_1 = require("@qoretechnologies/reqore/dist/components/RichTextEditor");
|
|
52
73
|
var colors_1 = require("@qoretechnologies/reqore/dist/helpers/colors");
|
|
53
|
-
var react_1 =
|
|
74
|
+
var react_1 = require("react");
|
|
75
|
+
var react_use_1 = require("react-use");
|
|
76
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
54
77
|
var slate_1 = require("slate");
|
|
55
78
|
var slate_react_1 = require("slate-react");
|
|
56
79
|
var emittedValues_1 = require("../form/fields/emittedValues");
|
|
57
80
|
var helpers_1 = require("./helpers");
|
|
81
|
+
var useTemplateTags_1 = require("../form/fields/rich-text/useTemplateTags");
|
|
82
|
+
var CompletionMenu_1 = require("./CompletionMenu");
|
|
58
83
|
var MarkdownDoc_1 = require("./MarkdownDoc");
|
|
59
|
-
var
|
|
84
|
+
var typedReferences_1 = require("./typedReferences");
|
|
60
85
|
var useLspAutocomplete_1 = require("./useLspAutocomplete");
|
|
61
86
|
var useLspDiagnosticDecorations_1 = require("./useLspDiagnosticDecorations");
|
|
62
87
|
var useLspHover_1 = require("./useLspHover");
|
|
88
|
+
var useCoarsePointer_1 = require("../../hooks/useCoarsePointer");
|
|
63
89
|
var useLspSemanticTokens_1 = require("./useLspSemanticTokens");
|
|
64
90
|
var useLspSignatureHelp_1 = require("./useLspSignatureHelp");
|
|
91
|
+
var templateTree_1 = require("../../helpers/templateTree");
|
|
92
|
+
var useTabCameIn_1 = require("./useTabCameIn");
|
|
93
|
+
var templateTree_2 = require("../../helpers/templateTree");
|
|
94
|
+
var typedReferences_2 = require("./typedReferences");
|
|
95
|
+
var useEditingAids_1 = require("./useEditingAids");
|
|
65
96
|
// One-Dark-ish palette keyed off the LSP semantic-token legend; absent
|
|
66
|
-
// types fall through to Slate's default text
|
|
97
|
+
// types fall through to Slate's default text color.
|
|
67
98
|
var SEMANTIC_TOKEN_COLORS = {
|
|
68
99
|
keyword: '#c678dd', // purple — control flow, `in`, `not`, `between`, …
|
|
69
100
|
operator: '#56b6c2', // cyan — ==, !=, &&, ||, =~, !~, …
|
|
@@ -82,56 +113,6 @@ var SEMANTIC_TOKEN_COLORS = {
|
|
|
82
113
|
decorator: '#c678dd', // purple
|
|
83
114
|
namespace: '#e5c07b', // yellow
|
|
84
115
|
};
|
|
85
|
-
// Kind chip + a Warning chip (Qonsole flags mutating verbs) for a
|
|
86
|
-
// completion row; undefined when neither applies.
|
|
87
|
-
function buildKindBadge(item) {
|
|
88
|
-
var _a;
|
|
89
|
-
var kindIntent = ((_a = item.metadata) === null || _a === void 0 ? void 0 : _a.kind) !== undefined ? styling_1.COMPLETION_KIND_INTENTS[item.metadata.kind] : undefined;
|
|
90
|
-
var kindBadge = item.kindLabel ?
|
|
91
|
-
{
|
|
92
|
-
label: item.kindLabel,
|
|
93
|
-
minimal: true,
|
|
94
|
-
size: 'small',
|
|
95
|
-
intent: kindIntent,
|
|
96
|
-
}
|
|
97
|
-
: null;
|
|
98
|
-
var warningBadge = item.warning ?
|
|
99
|
-
{
|
|
100
|
-
label: 'Warning',
|
|
101
|
-
size: 'small',
|
|
102
|
-
intent: 'warning',
|
|
103
|
-
tooltip: item.warning,
|
|
104
|
-
}
|
|
105
|
-
: null;
|
|
106
|
-
if (warningBadge && kindBadge)
|
|
107
|
-
return [kindBadge, warningBadge];
|
|
108
|
-
if (warningBadge)
|
|
109
|
-
return [warningBadge];
|
|
110
|
-
if (kindBadge)
|
|
111
|
-
return kindBadge;
|
|
112
|
-
return undefined;
|
|
113
|
-
}
|
|
114
|
-
// Tooltip prop rendering a row's LSP `documentation` (markdown/plaintext),
|
|
115
|
-
// or undefined when there is none.
|
|
116
|
-
function buildDocTooltip(item) {
|
|
117
|
-
var _a;
|
|
118
|
-
var doc = item.documentation;
|
|
119
|
-
if (!doc)
|
|
120
|
-
return undefined;
|
|
121
|
-
var isMarkdown = typeof doc === 'object' && doc !== null && doc.kind === 'markdown';
|
|
122
|
-
var text = typeof doc === 'string' ? doc : ((_a = doc === null || doc === void 0 ? void 0 : doc.value) !== null && _a !== void 0 ? _a : '');
|
|
123
|
-
if (!text)
|
|
124
|
-
return undefined;
|
|
125
|
-
return {
|
|
126
|
-
content: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: text, markdown: isMarkdown }),
|
|
127
|
-
placement: 'right',
|
|
128
|
-
delay: 200,
|
|
129
|
-
// The cast covers popover props missing from the older tooltip type.
|
|
130
|
-
flat: true,
|
|
131
|
-
transparent: true,
|
|
132
|
-
backgroundBlur: 20,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
116
|
// Applies the server's `textEdit` (replacing the typed partial token so
|
|
136
117
|
// `-` + `--desc=` doesn't become `---desc=`), else inserts at the cursor.
|
|
137
118
|
// DPQL/Qonsole wrappers override this to insert tag chips.
|
|
@@ -175,19 +156,6 @@ var defaultCompletionInserter = function (item, editor, ctx) {
|
|
|
175
156
|
// Editor may not be focused.
|
|
176
157
|
}
|
|
177
158
|
};
|
|
178
|
-
// Module-scoped so the reference is stable across renders — an inline
|
|
179
|
-
// object would defeat ReqoreMenuItem's memoization.
|
|
180
|
-
var COMPLETION_ITEM_STYLE = { fontFamily: 'monospace' };
|
|
181
|
-
// Memoized completion row so badge/tooltip derivation runs once per item,
|
|
182
|
-
// not on every SmartEditor re-render.
|
|
183
|
-
var CompletionMenuItem = (0, react_1.memo)(function (_a) {
|
|
184
|
-
var item = _a.item, isFocused = _a.isFocused, onSelect = _a.onSelect;
|
|
185
|
-
var badge = (0, react_1.useMemo)(function () { return buildKindBadge(item); }, [item]);
|
|
186
|
-
var tooltip = (0, react_1.useMemo)(function () { return buildDocTooltip(item); }, [item]);
|
|
187
|
-
var handleClick = (0, react_1.useCallback)(function () { return onSelect(item); }, [onSelect, item]);
|
|
188
|
-
return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenuItem, { icon: item.icon, label: item.label, description: item.description, badge: badge, tooltip: tooltip, selected: isFocused, active: isFocused, minimal: true, scrollIntoView: isFocused, onClick: handleClick, compact: true, style: COMPLETION_ITEM_STYLE }));
|
|
189
|
-
});
|
|
190
|
-
CompletionMenuItem.displayName = 'CompletionMenuItem';
|
|
191
159
|
// Memoized signature pill. Prefers ABOVE the caret line, falling back to
|
|
192
160
|
// BELOW when that would clip the viewport top; horizontally clamped to the
|
|
193
161
|
// viewport.
|
|
@@ -246,13 +214,58 @@ var SignatureHelpPill = (0, react_1.memo)(function (_a) {
|
|
|
246
214
|
boxShadow: '0 4px 16px rgba(0,0,0,0.3)',
|
|
247
215
|
pointerEvents: 'none',
|
|
248
216
|
zIndex: 100,
|
|
249
|
-
}, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreCallout, { size: 'small', paddingSize: 'tiny', style: { fontFamily:
|
|
217
|
+
}, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreCallout, { size: 'small', paddingSize: 'tiny', style: { fontFamily: reqore_1.ReqoreFonts.mono }, label: label }), paramDoc && ((0, jsx_runtime_1.jsx)("div", { style: { marginTop: 4, opacity: 0.85 }, children: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: paramDoc, markdown: true }) }))] }, "sig-".concat(position.left, "-").concat(position.top, "-").concat(placeBelow)));
|
|
250
218
|
});
|
|
251
219
|
SignatureHelpPill.displayName = 'SignatureHelpPill';
|
|
220
|
+
/** Distinguishes the completion lists of the editors on a page, for each editor's `aria-controls`. */
|
|
221
|
+
var completionMenuCounter = 0;
|
|
222
|
+
/* The text's box in its row: it takes the row, and gives it up to the Details button beside it on a touch
|
|
223
|
+
screen. */
|
|
224
|
+
/** The width of the editor's row (Reqore's phone width) at or below which its Details button is its icon alone. */
|
|
225
|
+
var DETAILS_WORD_MIN_ROW_WIDTH = 480;
|
|
226
|
+
/**
|
|
227
|
+
* The box the text is drawn in, as a code editor draws it where asked: lines that do not wrap (`wordWrap: off`),
|
|
228
|
+
* scrolled inside the box, no wider than it; a height the text scrolls within (`maxHeight`); each line's number
|
|
229
|
+
* before it (`lineNumbers`), counted by its paragraph.
|
|
230
|
+
*/
|
|
231
|
+
var StyledEditorBox = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n [data-slate-editor] {\n ", "\n ", "\n ", "\n }\n ", "\n"], ["\n [data-slate-editor] {\n ", "\n ", "\n ", "\n }\n ", "\n"])), function (_a) {
|
|
232
|
+
var $wordWrap = _a.$wordWrap;
|
|
233
|
+
return $wordWrap === 'off' ? 'white-space: pre !important; overflow-wrap: normal !important; overflow-x: auto;' : '';
|
|
234
|
+
}, function (_a) {
|
|
235
|
+
var $maxHeight = _a.$maxHeight;
|
|
236
|
+
return ($maxHeight ? "max-height: ".concat($maxHeight, "; overflow-y: auto;") : '');
|
|
237
|
+
}, function (_a) {
|
|
238
|
+
var $lineNumbers = _a.$lineNumbers;
|
|
239
|
+
return ($lineNumbers ? 'counter-reset: smart-editor-line; padding-left: 3em !important;' : '');
|
|
240
|
+
}, function (_a) {
|
|
241
|
+
var $lineNumbers = _a.$lineNumbers;
|
|
242
|
+
return $lineNumbers ?
|
|
243
|
+
"[data-slate-editor] > [data-slate-node='element'] {\n position: relative;\n counter-increment: smart-editor-line;\n }\n [data-slate-editor] > [data-slate-node='element']::before {\n content: counter(smart-editor-line);\n position: absolute;\n left: -3em;\n width: 2.2em;\n text-align: right;\n opacity: 0.45;\n user-select: none;\n pointer-events: none;\n }"
|
|
244
|
+
: '';
|
|
245
|
+
});
|
|
246
|
+
var EDITOR_BOX_STYLE = {
|
|
247
|
+
position: 'relative',
|
|
248
|
+
flex: '1 1 auto',
|
|
249
|
+
minWidth: 0,
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* The button beside the text that opens the template picker for a pick at the caret (qorus#646): where a value
|
|
253
|
+
* cannot be written after the text before the caret (`insertableAt`), it says why and cannot be pressed. Its press
|
|
254
|
+
* keeps the focus, and the caret the pick goes at, in the text.
|
|
255
|
+
*/
|
|
256
|
+
var TemplateButton = function (_a) {
|
|
257
|
+
var size = _a.size, insertable = _a.insertable, notInsertable = _a.notInsertable, open = _a.open;
|
|
258
|
+
return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'smart-editor-template-button', icon: 'MoneyDollarCircleLine', fixed: true, size: size !== null && size !== void 0 ? size : 'normal', "aria-label": 'Insert a template', tooltip: insertable ? 'Insert a template' : notInsertable, disabled: !insertable, onMouseDown: function (event) { return event.preventDefault(); }, onClick: function (event) {
|
|
259
|
+
var _a = event.currentTarget.getBoundingClientRect(), left = _a.left, bottom = _a.bottom;
|
|
260
|
+
open({ left: left, bottom: bottom });
|
|
261
|
+
} }));
|
|
262
|
+
};
|
|
252
263
|
exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
253
|
-
var
|
|
264
|
+
var _b, _c;
|
|
265
|
+
var session = _a.session, value = _a.value, onChange = _a.onChange, decorate = _a.decorate, customRenderLeaf = _a.customRenderLeaf, tagRenderer = _a.tagRenderer, onTagClick = _a.onTagClick, triggerCharacters = _a.triggerCharacters, _d = _a.converter, converter = _d === void 0 ? helpers_1.defaultSlateConverter : _d, _e = _a.completionInserter, completionInserter = _e === void 0 ? defaultCompletionInserter : _e, topActions = _a.topActions, height = _a.height, size = _a.size, _f = _a.readOnly, readOnly = _f === void 0 ? false : _f, _g = _a.showDiagnostics, showDiagnostics = _g === void 0 ? true : _g, onBlur = _a.onBlur, tags = _a.tags, loadingIndicator = _a.loadingIndicator, _h = _a.enableHover, enableHover = _h === void 0 ? true : _h, hoverDelayMs = _a.hoverDelayMs, _j = _a.isLoading, isLoading = _j === void 0 ? false : _j, _k = _a.enableSignatureHelp, enableSignatureHelp = _k === void 0 ? true : _k, _l = _a.completeOnClick, completeOnClick = _l === void 0 ? false : _l, completionsWith = _a.completionsWith, emptyCompletionMessage = _a.emptyCompletionMessage, presentDiagnostics = _a.presentDiagnostics, diagnosticAction = _a.diagnosticAction, referenceNamesNothing = _a.referenceNamesNothing, templateRoots = _a.templateRoots, templateButton = _a.templateButton, editingLanguage = _a.editingLanguage, formatDocument = _a.formatDocument, _m = _a.wordWrap, wordWrap = _m === void 0 ? 'on' : _m, maxHeight = _a.maxHeight, _o = _a.lineNumbers, lineNumbers = _o === void 0 ? false : _o;
|
|
254
266
|
var theme = (0, reqore_1.useReqoreTheme)();
|
|
255
267
|
var editorRef = (0, react_1.useRef)(null);
|
|
268
|
+
var completionMenuId = (0, react_1.useMemo)(function () { return "completion-menu-".concat(++completionMenuCounter); }, []);
|
|
256
269
|
var lastPlainTextRef = (0, react_1.useRef)(value);
|
|
257
270
|
// Cached Slate nodes, refreshed only on EXTERNAL value changes — not on
|
|
258
271
|
// the typing echo. Passing a fresh ref every keystroke re-runs
|
|
@@ -264,9 +277,9 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
264
277
|
from outside — a leading chip gains an empty text leaf before it — without
|
|
265
278
|
changing its text, so `value` never changes and the cache above kept the
|
|
266
279
|
tree the editor no longer had. Every offset computed from it (token
|
|
267
|
-
|
|
280
|
+
colors, diagnostics, signature help) then pointed one leaf off: a Text
|
|
268
281
|
view seeded with `"$local:name" == "John"` was never highlighted. */
|
|
269
|
-
var
|
|
282
|
+
var _p = (0, react_1.useReducer)(function (count) { return count + 1; }, 0), editorTreeVersion = _p[0], noteEditorTree = _p[1];
|
|
270
283
|
(0, react_1.useImperativeHandle)(ref, function () { return editorRef.current; }, []);
|
|
271
284
|
// Gates all LSP hooks on both the connection (`isReady`) and any
|
|
272
285
|
// wrapper context binding (`isContextReady`) — without the latter,
|
|
@@ -274,16 +287,117 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
274
287
|
// the server context-less and the dropdown silently closes. Generic
|
|
275
288
|
// sessions set `isContextReady: true`, collapsing this to `isReady`.
|
|
276
289
|
var lspReady = session.isReady && session.isContextReady;
|
|
290
|
+
/* What the list offers at the caret: the server's answer, with the host's own entries merged in where they
|
|
291
|
+
can be written (`completionsWith`). Where no server can be asked, the host's alone. */
|
|
292
|
+
var noServer = session.isUnavailable && !!completionsWith;
|
|
293
|
+
var askServer = session.getCompletions;
|
|
294
|
+
var getCompletions = (0, react_1.useCallback)(function (plainText, offset, typedInText) { return __awaiter(void 0, void 0, void 0, function () {
|
|
295
|
+
var serverItems, _a;
|
|
296
|
+
return __generator(this, function (_b) {
|
|
297
|
+
switch (_b.label) {
|
|
298
|
+
case 0:
|
|
299
|
+
if (!noServer) return [3 /*break*/, 1];
|
|
300
|
+
_a = undefined;
|
|
301
|
+
return [3 /*break*/, 3];
|
|
302
|
+
case 1: return [4 /*yield*/, askServer(plainText, offset)];
|
|
303
|
+
case 2:
|
|
304
|
+
_a = _b.sent();
|
|
305
|
+
_b.label = 3;
|
|
306
|
+
case 3:
|
|
307
|
+
serverItems = _a;
|
|
308
|
+
return [2 /*return*/, completionsWith ?
|
|
309
|
+
completionsWith({ plainText: plainText, offset: offset, serverItems: serverItems, typedInText: typedInText })
|
|
310
|
+
: (serverItems !== null && serverItems !== void 0 ? serverItems : [])];
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}); }, [noServer, askServer, completionsWith]);
|
|
314
|
+
/* What the language server completes where a value can be written (the start of the text), for the template
|
|
315
|
+
picker to offer beside the field's own templates: the record's fields, the template contexts, the functions
|
|
316
|
+
and the values (qorus#646, David: "users should be supported with all available completions in the template
|
|
317
|
+
picker"). Asked once the server is ready, again as the field's templates change, and when the picker opens. */
|
|
318
|
+
var _q = (0, react_1.useState)(), serverValues = _q[0], setServerValues = _q[1];
|
|
319
|
+
var askedValuesRef = (0, react_1.useRef)(0);
|
|
320
|
+
var askServerValues = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
321
|
+
var asked, items;
|
|
322
|
+
return __generator(this, function (_a) {
|
|
323
|
+
switch (_a.label) {
|
|
324
|
+
case 0:
|
|
325
|
+
// only an editor of templates has a template picker to offer them in (`templateRoots`)
|
|
326
|
+
if (noServer || !lspReady || !templateRoots)
|
|
327
|
+
return [2 /*return*/];
|
|
328
|
+
asked = ++askedValuesRef.current;
|
|
329
|
+
return [4 /*yield*/, askServer('', 0)];
|
|
330
|
+
case 1:
|
|
331
|
+
items = _a.sent();
|
|
332
|
+
// only the latest answer, and only while the editor is there
|
|
333
|
+
if (asked === askedValuesRef.current && mountedRef.current)
|
|
334
|
+
setServerValues(items);
|
|
335
|
+
return [2 /*return*/];
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
}); }, [noServer, lspReady, askServer, templateRoots]);
|
|
339
|
+
var mountedRef = (0, react_1.useRef)(true);
|
|
340
|
+
(0, react_1.useEffect)(function () { return function () {
|
|
341
|
+
mountedRef.current = false;
|
|
342
|
+
}; }, []);
|
|
343
|
+
// asked when the server is ready and as the field's templates change
|
|
344
|
+
(0, react_1.useEffect)(function () {
|
|
345
|
+
void askServerValues();
|
|
346
|
+
}, [lspReady, templateRoots]);
|
|
347
|
+
var pickerRoots = (0, react_1.useMemo)(
|
|
348
|
+
// a lone group of the field's opened only where nothing is added beside it
|
|
349
|
+
function () { return (templateRoots ? (0, templateTree_2.openLoneGroup)((0, templateTree_2.withServerCompletions)(templateRoots, serverValues)) : []); }, [templateRoots, serverValues]);
|
|
277
350
|
var autocomplete = (0, useLspAutocomplete_1.useLspAutocomplete)({
|
|
278
|
-
getCompletions:
|
|
279
|
-
isReady: lspReady,
|
|
351
|
+
getCompletions: getCompletions,
|
|
352
|
+
isReady: lspReady || noServer,
|
|
280
353
|
triggerCharacters: triggerCharacters,
|
|
281
354
|
converter: converter,
|
|
282
355
|
inserter: completionInserter,
|
|
356
|
+
emptyMessage: emptyCompletionMessage,
|
|
357
|
+
// what to write next, above the rows, where none of them is what is written
|
|
358
|
+
noteAt: emptyCompletionMessage,
|
|
359
|
+
// Enter or Tab where nothing more is listed: what is written at the caret, a whole reference, is its chip
|
|
360
|
+
commitTyped: function (editor) {
|
|
361
|
+
var _a;
|
|
362
|
+
return (0, typedReferences_2.commitTypedReferences)(editor, converter, referenceNamesNothing, (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor.path[0]);
|
|
363
|
+
},
|
|
283
364
|
});
|
|
365
|
+
// the picker opened: what the server completes asked again, for the record and the context bound now
|
|
366
|
+
var pickerOpen = !!autocomplete.browse;
|
|
367
|
+
(0, react_1.useEffect)(function () {
|
|
368
|
+
if (pickerOpen)
|
|
369
|
+
void askServerValues();
|
|
370
|
+
}, [pickerOpen, askServerValues]);
|
|
284
371
|
var hover = (0, useLspHover_1.useLspHover)(session, editorRef, converter, {
|
|
285
372
|
enabled: enableHover,
|
|
373
|
+
debounceMs: hoverDelayMs,
|
|
374
|
+
// a chip whose props carry a tooltip (a field the record describes) shows that, not the server's hover too
|
|
375
|
+
chipHasOwnHover: function (tag) {
|
|
376
|
+
var _a;
|
|
377
|
+
return !!((_a = tagRenderer === null || tagRenderer === void 0 ? void 0 : tagRenderer(tag)) === null || _a === void 0 ? void 0 : _a.tooltip);
|
|
378
|
+
},
|
|
286
379
|
});
|
|
380
|
+
/* The hover the popover drawn in this render is of: what it dismisses when it closes, and nothing newer. */
|
|
381
|
+
var shownHoverId = hover.hoverId;
|
|
382
|
+
/* A finger cannot hover: where the pointer is one, "Details" shows what the server says of the word at the
|
|
383
|
+
caret, in the same pop-up a mouse gets by hovering. Only where the server says anything (`hoverProvider`). */
|
|
384
|
+
var coarse = (0, useCoarsePointer_1.useCoarsePointer)();
|
|
385
|
+
/* The row the text and its Details button share, measured: in a row a phone's width or narrower, Details is its
|
|
386
|
+
icon alone - its word took the text's room (Foxhoundn on qlip #383: "The details button should be just an icon
|
|
387
|
+
on such small screen / container size"). The row, not the screen: an editor in a narrow card on a wide
|
|
388
|
+
screen is as short of room. */
|
|
389
|
+
var _r = (0, react_use_1.useMeasure)(), rowRef = _r[0], rowWidth = _r[1].width;
|
|
390
|
+
var detailsSaysItsWord = !rowWidth || rowWidth > DETAILS_WORD_MIN_ROW_WIDTH;
|
|
391
|
+
var showDetailsButton = coarse &&
|
|
392
|
+
// Details says what the word at the caret is, and a read-only text has no caret: a tap on a read-only
|
|
393
|
+
// rendering (a collapsed row's expression) opens what holds it, where Details is
|
|
394
|
+
!readOnly &&
|
|
395
|
+
enableHover &&
|
|
396
|
+
session.isReady &&
|
|
397
|
+
!!((_c = (_b = session.client) === null || _b === void 0 ? void 0 : _b.capabilities) === null || _c === void 0 ? void 0 : _c.hoverProvider);
|
|
398
|
+
/* The hover Details showed, drawn as a card under the button rather than over the text (`showAtCaret`). */
|
|
399
|
+
var _s = (0, react_1.useState)(), detailsHoverId = _s[0], setDetailsHoverId = _s[1];
|
|
400
|
+
var detailsShown = detailsHoverId !== undefined && hover.hoverId === detailsHoverId;
|
|
287
401
|
/* What the editor has reported and the host has not handed back yet. A host can hand an emit back
|
|
288
402
|
after the next key is already in the editor - one that debounces, or a render that lands between
|
|
289
403
|
two keys - and that stale value is not a change: rebuilding the document from it replaced the text
|
|
@@ -309,7 +423,7 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
309
423
|
}, [value, converter, editorTreeVersion]);
|
|
310
424
|
/* A value set from outside is a change to the document as much as typing
|
|
311
425
|
is — a Text view seeded after mount, a Preview following the author. The
|
|
312
|
-
server
|
|
426
|
+
server colors and diagnoses its own copy of the text, so it must hold
|
|
313
427
|
this one; typing already sent its text, and is not resent. */
|
|
314
428
|
var syncDocument = session.didChange;
|
|
315
429
|
(0, react_1.useEffect)(function () {
|
|
@@ -323,21 +437,82 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
323
437
|
lastPlainTextRef.current = value;
|
|
324
438
|
syncDocument(value);
|
|
325
439
|
}, [syncDocument, value, emitted]);
|
|
326
|
-
|
|
440
|
+
/* The server's diagnostics as the editor says them: in the host's words for what it wrote itself
|
|
441
|
+
(`presentDiagnostics`), and without the error of a reference half-typed at the caret while its list is open
|
|
442
|
+
or on its way - a `$` typed to ask for a template is not a mistake yet (qorus#646, David's decision). It
|
|
443
|
+
is said once the list is put away. */
|
|
444
|
+
var listActive = autocomplete.isActive;
|
|
445
|
+
var shownDiagnostics = (0, react_1.useMemo)(function () {
|
|
446
|
+
var _a;
|
|
447
|
+
var editor = editorRef.current;
|
|
448
|
+
var nodes = (_a = editor === null || editor === void 0 ? void 0 : editor.children) !== null && _a !== void 0 ? _a : slateValue;
|
|
449
|
+
var said = presentDiagnostics ?
|
|
450
|
+
presentDiagnostics(session.diagnostics, converter.fromSlateNodes(nodes))
|
|
451
|
+
: session.diagnostics;
|
|
452
|
+
var at = editor === null || editor === void 0 ? void 0 : editor.selection;
|
|
453
|
+
if (!listActive || !converter.referenceBeingWritten || !at || !slate_1.Range.isCollapsed(at)) {
|
|
454
|
+
return said;
|
|
455
|
+
}
|
|
456
|
+
var _b = at.anchor.path, index = _b[0], child = _b[1];
|
|
457
|
+
var paragraph = nodes[index];
|
|
458
|
+
if (at.anchor.path.length !== 2 || !paragraph) {
|
|
459
|
+
return said;
|
|
460
|
+
}
|
|
461
|
+
var end = converter.selectionToOffset([paragraph], [0, child], at.anchor.offset);
|
|
462
|
+
var written = converter.referenceBeingWritten(converter.fromSlateNodes([paragraph]).slice(0, end));
|
|
463
|
+
/* what is said of the reference being written, which reaches the caret: from where it starts in what is
|
|
464
|
+
being written, or a whole reference that ends at the caret (`$data:receive_order.ev`, of which only `ev`
|
|
465
|
+
is being written) */
|
|
466
|
+
return said.filter(function (_a) {
|
|
467
|
+
var _b = _a.range, start = _b.start, to = _b.end;
|
|
468
|
+
return !(start.line === index &&
|
|
469
|
+
((written > 0 && start.character >= end - written && start.character < end) ||
|
|
470
|
+
(start.character < end && to.line === index && to.character === end)));
|
|
471
|
+
});
|
|
472
|
+
}, [session.diagnostics, presentDiagnostics, converter, slateValue, listActive]);
|
|
473
|
+
var diagnosticDecorate = (0, useLspDiagnosticDecorations_1.useLspDiagnosticDecorations)(shownDiagnostics, converter, slateValue);
|
|
327
474
|
// Server-driven syntax highlighting (replaces the old client-side regex
|
|
328
475
|
// highlighter — see design doc §7).
|
|
329
476
|
var semanticDecorate = (0, useLspSemanticTokens_1.useLspSemanticTokens)(session, converter, slateValue);
|
|
330
477
|
// No-ops when the server doesn't advertise `signatureHelpProvider`.
|
|
331
478
|
var signatureHelp = (0, useLspSignatureHelp_1.useLspSignatureHelp)(session, editorRef, converter, slateValue, { enabled: enableSignatureHelp });
|
|
479
|
+
/* What a code editor does for what is typed (`useEditingAids`): pairs closed, a selection wrapped, the
|
|
480
|
+
bracket at the caret matched, the search (Ctrl+F) and its replace, lines moved and copied, the document
|
|
481
|
+
formatted (Shift+Alt+F), completion asked for (Ctrl+Space). */
|
|
482
|
+
// the editing aids follow every change of the editor, its caret's included (the bracket match)
|
|
483
|
+
var aidsChangeRef = (0, react_1.useRef)(function () { return undefined; });
|
|
484
|
+
var aids = (0, useEditingAids_1.useEditingAids)({
|
|
485
|
+
editorRef: editorRef,
|
|
486
|
+
converter: converter,
|
|
487
|
+
nodes: slateValue,
|
|
488
|
+
language: editingLanguage,
|
|
489
|
+
readOnly: readOnly,
|
|
490
|
+
onFormat: formatDocument,
|
|
491
|
+
onComplete: function () {
|
|
492
|
+
var editor = editorRef.current;
|
|
493
|
+
var at = editor === null || editor === void 0 ? void 0 : editor.selection;
|
|
494
|
+
if (!editor || !at)
|
|
495
|
+
return;
|
|
496
|
+
try {
|
|
497
|
+
var rect = slate_react_1.ReactEditor.toDOMRange(editor, at).getBoundingClientRect();
|
|
498
|
+
autocomplete.openAtCaret(editor, at.anchor, { left: rect.left, bottom: rect.bottom });
|
|
499
|
+
}
|
|
500
|
+
catch (_a) {
|
|
501
|
+
// the caret is not drawn: nothing is asked
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
});
|
|
505
|
+
aidsChangeRef.current = aids.onEditorChange;
|
|
332
506
|
var composedDecorate = (0, react_1.useCallback)(function (entry) {
|
|
333
507
|
var _a;
|
|
334
508
|
var userRanges = (_a = decorate === null || decorate === void 0 ? void 0 : decorate(entry)) !== null && _a !== void 0 ? _a : [];
|
|
335
509
|
var semanticRanges = semanticDecorate(entry);
|
|
510
|
+
var aidRanges = aids.decorate(entry);
|
|
336
511
|
var diagRanges = showDiagnostics ? diagnosticDecorate(entry) : [];
|
|
337
512
|
// Diagnostics last so the wavy underline isn't overdrawn.
|
|
338
|
-
return __spreadArray(__spreadArray(__spreadArray([], userRanges, true), semanticRanges, true), diagRanges, true);
|
|
339
|
-
}, [decorate, semanticDecorate, diagnosticDecorate, showDiagnostics]);
|
|
340
|
-
// Paints semantic-token
|
|
513
|
+
return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], userRanges, true), semanticRanges, true), aidRanges, true), diagRanges, true);
|
|
514
|
+
}, [decorate, semanticDecorate, diagnosticDecorate, showDiagnostics, aids.decorate]);
|
|
515
|
+
// Paints semantic-token colors and diagnostic underlines, falling
|
|
341
516
|
// through to the consumer's `customRenderLeaf` for everything else.
|
|
342
517
|
var renderLeafWithMarks = (0, react_1.useCallback)(function (props) {
|
|
343
518
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
@@ -358,7 +533,19 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
358
533
|
}, children: child }));
|
|
359
534
|
}
|
|
360
535
|
}
|
|
361
|
-
//
|
|
536
|
+
// the bracket matching the one at the caret, and the search's matches (the current one stronger)
|
|
537
|
+
if (leaf.bracketMatch || leaf.findMatch) {
|
|
538
|
+
child = ((0, jsx_runtime_1.jsx)("span", { className: leaf.findCurrent ? 'smart-editor-find-current'
|
|
539
|
+
: leaf.findMatch ? 'smart-editor-find-match'
|
|
540
|
+
: 'smart-editor-bracket-match', style: {
|
|
541
|
+
borderRadius: 2,
|
|
542
|
+
background: leaf.findCurrent ? 'rgba(255, 200, 0, 0.55)'
|
|
543
|
+
: leaf.findMatch ? 'rgba(255, 200, 0, 0.25)'
|
|
544
|
+
: 'rgba(255, 255, 255, 0.12)',
|
|
545
|
+
outline: leaf.bracketMatch ? '1px solid rgba(255, 255, 255, 0.45)' : undefined,
|
|
546
|
+
}, children: child }));
|
|
547
|
+
}
|
|
548
|
+
// Underline outermost so it overlays the syntax color; hex
|
|
362
549
|
// fallbacks cover host themes that omit a diagnostic intent.
|
|
363
550
|
if (leaf.error) {
|
|
364
551
|
var underlineColor = leaf.severity === 2 ? ((_d = (_c = theme.intents) === null || _c === void 0 ? void 0 : _c.warning) !== null && _d !== void 0 ? _d : '#f0a500')
|
|
@@ -372,6 +559,85 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
372
559
|
}
|
|
373
560
|
return child;
|
|
374
561
|
}, [customRenderLeaf, theme]);
|
|
562
|
+
/* A reference typed out in full is drawn as its chip, as one picked from the completion list is: the
|
|
563
|
+
paragraph is redrawn from its text, which the converter reads it in (`rechipTypedReferences`). The text is
|
|
564
|
+
the same, so nothing is reported for it. */
|
|
565
|
+
var drawTypedReferences = typedReferences_2.drawRechipped;
|
|
566
|
+
// the editor has been left: every reference typed in it is drawn as its chip
|
|
567
|
+
var handleBlur = (0, react_1.useCallback)(function () {
|
|
568
|
+
var editor = editorRef.current;
|
|
569
|
+
if (editor && !readOnly) {
|
|
570
|
+
(0, typedReferences_2.commitTypedReferences)(editor, converter, referenceNamesNothing);
|
|
571
|
+
}
|
|
572
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur();
|
|
573
|
+
}, [converter, readOnly, onBlur, referenceNamesNothing]);
|
|
574
|
+
/* A chip put in at the caret takes the place of the reference being written there, wherever it is picked
|
|
575
|
+
from (qorus#646, David's review). The completion list's inserter takes it away itself; the list the
|
|
576
|
+
editor's templates are browsed in is reqore's, which puts a chip in at the caret as it is: a `$` typed to
|
|
577
|
+
ask for a template stayed in front of the one picked, and `pos + 1 + $pos` is refused by the server. A
|
|
578
|
+
Slate plugin on the editor reqore made for this one (its `insertNodes`), so both are one step of one
|
|
579
|
+
change - one text sent, one undo. A chip put in at a place of its own (`at`: a typed reference drawn as its
|
|
580
|
+
chip, a chip replaced) is left alone. */
|
|
581
|
+
var referenceBeingWritten = readOnly ? undefined : converter.referenceBeingWritten;
|
|
582
|
+
(0, react_1.useEffect)(function () {
|
|
583
|
+
var editor = editorRef.current;
|
|
584
|
+
if (!editor || !referenceBeingWritten) {
|
|
585
|
+
return undefined;
|
|
586
|
+
}
|
|
587
|
+
var insertNodes = editor.insertNodes;
|
|
588
|
+
editor.insertNodes = function (nodes, options) {
|
|
589
|
+
var at = editor.selection;
|
|
590
|
+
var inserted = Array.isArray(nodes) ? nodes : [nodes];
|
|
591
|
+
var chip = inserted.length === 1 && inserted[0].type === 'tag';
|
|
592
|
+
if (chip && !(options === null || options === void 0 ? void 0 : options.at) && at && slate_1.Range.isCollapsed(at) && at.anchor.path.length === 2) {
|
|
593
|
+
var _a = at.anchor.path, index = _a[0], child = _a[1];
|
|
594
|
+
var paragraph = editor.children[index];
|
|
595
|
+
if (paragraph) {
|
|
596
|
+
var before = converter
|
|
597
|
+
.fromSlateNodes([paragraph])
|
|
598
|
+
.slice(0, converter.selectionToOffset([paragraph], [0, child], at.anchor.offset));
|
|
599
|
+
var written = referenceBeingWritten(before);
|
|
600
|
+
// what is being written is typed text, in the text the caret is in
|
|
601
|
+
if (written > 0 && written <= at.anchor.offset) {
|
|
602
|
+
slate_1.Transforms.delete(editor, {
|
|
603
|
+
at: {
|
|
604
|
+
anchor: { path: at.anchor.path, offset: at.anchor.offset - written },
|
|
605
|
+
focus: at.anchor,
|
|
606
|
+
},
|
|
607
|
+
});
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
insertNodes(nodes, options);
|
|
612
|
+
};
|
|
613
|
+
return function () {
|
|
614
|
+
editor.insertNodes = insertNodes;
|
|
615
|
+
};
|
|
616
|
+
}, [converter, referenceBeingWritten]);
|
|
617
|
+
/* Whether a template can be written at the caret, for the template button: asked again at every change of the
|
|
618
|
+
editor, a move of its caret included, so the button is never left as it was for a caret that has moved. */
|
|
619
|
+
var _t = (0, react_1.useState)(true), insertableAtCaret = _t[0], setInsertableAtCaret = _t[1];
|
|
620
|
+
var insertableAt = templateButton === null || templateButton === void 0 ? void 0 : templateButton.insertableAt;
|
|
621
|
+
var askInsertable = (0, react_1.useCallback)(function () {
|
|
622
|
+
var _a;
|
|
623
|
+
var editor = editorRef.current;
|
|
624
|
+
if (!editor || !insertableAt)
|
|
625
|
+
return;
|
|
626
|
+
try {
|
|
627
|
+
var nodes = editor.children;
|
|
628
|
+
var plainText = converter.fromSlateNodes(nodes);
|
|
629
|
+
var at = (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor;
|
|
630
|
+
var offset = at ? converter.selectionToOffset(nodes, at.path, at.offset) : plainText.length;
|
|
631
|
+
setInsertableAtCaret(insertableAt(plainText.slice(0, offset)));
|
|
632
|
+
}
|
|
633
|
+
catch (_b) {
|
|
634
|
+
// a selection the editor no longer has: the end of the text is asked about
|
|
635
|
+
setInsertableAtCaret(insertableAt(converter.fromSlateNodes(editor.children)));
|
|
636
|
+
}
|
|
637
|
+
}, [insertableAt, converter]);
|
|
638
|
+
(0, react_1.useEffect)(askInsertable, [askInsertable, value]);
|
|
639
|
+
var askInsertableRef = (0, react_1.useRef)(askInsertable);
|
|
640
|
+
askInsertableRef.current = askInsertable;
|
|
375
641
|
var handleSlateChange = (0, react_1.useCallback)(function (newNodes) {
|
|
376
642
|
var plainText = converter.fromSlateNodes(newNodes);
|
|
377
643
|
// A selection change reports the same tree; anything else is the tree
|
|
@@ -390,30 +656,126 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
390
656
|
// parameter never advances.
|
|
391
657
|
onChange(plainText);
|
|
392
658
|
session.didChange(plainText);
|
|
659
|
+
// a reference typed out in full, and left by the character just typed, is drawn as its chip
|
|
660
|
+
var editor = editorRef.current;
|
|
661
|
+
var at = editor === null || editor === void 0 ? void 0 : editor.selection;
|
|
662
|
+
if (editor && at && slate_1.Range.isCollapsed(at) && !readOnly && converter.endsReference) {
|
|
663
|
+
var _a = at.anchor.path, index = _a[0], child = _a[1];
|
|
664
|
+
var paragraph = newNodes[index];
|
|
665
|
+
var rechipped = paragraph &&
|
|
666
|
+
(0, typedReferences_1.rechipTypedReferences)(converter, paragraph, index, converter.selectionToOffset([paragraph], [0, child], at.anchor.offset), referenceNamesNothing);
|
|
667
|
+
if (rechipped) {
|
|
668
|
+
drawTypedReferences(editor, index, rechipped);
|
|
669
|
+
}
|
|
670
|
+
}
|
|
393
671
|
}
|
|
394
672
|
if (editorRef.current && !readOnly) {
|
|
395
673
|
autocomplete.onSlateChange(editorRef.current, newNodes);
|
|
396
674
|
}
|
|
675
|
+
aidsChangeRef.current();
|
|
676
|
+
askInsertableRef.current();
|
|
397
677
|
}, [onChange, session, readOnly, autocomplete, converter, emitted]);
|
|
398
678
|
// Replace mode: open the dropdown at the chip's DOM rect (not the
|
|
399
679
|
// editor selection — clicks on a Slate VOID inline don't reliably
|
|
400
680
|
// update `editor.selection`) and atomically swap the chip on select.
|
|
681
|
+
var hasBrowseList = !!tags && Object.keys(tags).length > 0;
|
|
401
682
|
var handleTagClickDefault = (0, react_1.useCallback)(function (tag, editor) {
|
|
402
683
|
if (readOnly)
|
|
403
684
|
return;
|
|
685
|
+
/* An editor with a browse list (`tags`) answers a click on a chip with that list, as a click anywhere
|
|
686
|
+
in its text, and as a value's text does: one list at a time. Opening the chip's replacements beside
|
|
687
|
+
it put two lists over the text, and what was typed then reached neither (qorus#646, David: "you
|
|
688
|
+
can't type"). */
|
|
689
|
+
if (hasBrowseList)
|
|
690
|
+
return;
|
|
404
691
|
try {
|
|
405
692
|
var tagPath = slate_react_1.ReactEditor.findPath(editor, tag);
|
|
406
693
|
var domNode = slate_react_1.ReactEditor.toDOMNode(editor, tag);
|
|
407
694
|
var rect = domNode.getBoundingClientRect();
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
695
|
+
/* A chip the field's templates or fields list opens the picker where it is - its group, its row the
|
|
696
|
+
keyboard's - and the pick takes its place (qorus#646). A second click on it puts the picker away. */
|
|
697
|
+
var listed = (templateRoots === null || templateRoots === void 0 ? void 0 : templateRoots.length) && typeof tag.value === 'string' ?
|
|
698
|
+
(0, templateTree_1.templateNodeFor)(templateRoots, tag.value)
|
|
699
|
+
: undefined;
|
|
700
|
+
if (listed) {
|
|
701
|
+
if (autocomplete.browse && autocomplete.isReplaceMode) {
|
|
702
|
+
autocomplete.close();
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
autocomplete.openBrowse(editor, {
|
|
706
|
+
rect: { left: rect.left, bottom: rect.bottom },
|
|
707
|
+
replacementPath: tagPath,
|
|
708
|
+
levelId: listed.trailIds[listed.trailIds.length - 1],
|
|
709
|
+
selectedValue: tag.value,
|
|
710
|
+
});
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
713
|
+
/* An editor that completes on a click lists what can stand in the chip's place - the fields and
|
|
714
|
+
templates the chip is one of - and the pick replaces it (qorus#646, David: a click on pos listed
|
|
715
|
+
nothing). */
|
|
716
|
+
autocomplete.openAtChip(editor, tagPath, { left: rect.left, bottom: rect.bottom }, { inItsPlace: completeOnClick });
|
|
412
717
|
}
|
|
413
718
|
catch (_a) {
|
|
414
719
|
// Tag may have been removed mid-render — ignore.
|
|
415
720
|
}
|
|
416
|
-
}, [readOnly, autocomplete]);
|
|
721
|
+
}, [readOnly, autocomplete, hasBrowseList, completeOnClick, templateRoots]);
|
|
722
|
+
/* A click, a tap or Tab into the text asks what can be written at the caret (`completeOnClick`): the caret the
|
|
723
|
+
page put there, which Slate's selection follows only later. Not a click on a chip, which is a control of
|
|
724
|
+
its own, nor anything outside the text: the list's rows are drawn elsewhere, and their clicks reach this
|
|
725
|
+
box through React. */
|
|
726
|
+
var openAtCaret = autocomplete.openAtCaret, openBrowse = autocomplete.openBrowse;
|
|
727
|
+
var browsesOnClick = !!pickerRoots.length;
|
|
728
|
+
// whether the Tab whose key comes up brought the focus into the editor (`onKeyUp` below)
|
|
729
|
+
var tabCameIn = (0, useTabCameIn_1.useTabCameIn)(function () {
|
|
730
|
+
var editor = editorRef.current;
|
|
731
|
+
return editor ? slate_react_1.ReactEditor.toDOMNode(editor, editor) : null;
|
|
732
|
+
});
|
|
733
|
+
var completeAtPageCaret = (0, react_1.useCallback)(function (target) {
|
|
734
|
+
var _a;
|
|
735
|
+
var editor = editorRef.current;
|
|
736
|
+
if ((!completeOnClick && !browsesOnClick) || readOnly || !editor)
|
|
737
|
+
return;
|
|
738
|
+
try {
|
|
739
|
+
var root = slate_react_1.ReactEditor.toDOMNode(editor, editor);
|
|
740
|
+
if (!(target instanceof Node) || !root.contains(target))
|
|
741
|
+
return;
|
|
742
|
+
if (target instanceof Element && target.closest('[data-slate-void="true"]'))
|
|
743
|
+
return;
|
|
744
|
+
var page = slate_react_1.ReactEditor.getWindow(editor).getSelection();
|
|
745
|
+
if (!page || page.rangeCount === 0 || !page.isCollapsed)
|
|
746
|
+
return;
|
|
747
|
+
var caret = slate_react_1.ReactEditor.toSlateRange(editor, page, {
|
|
748
|
+
exactMatch: false,
|
|
749
|
+
suppressThrow: true,
|
|
750
|
+
});
|
|
751
|
+
if (!caret)
|
|
752
|
+
return;
|
|
753
|
+
var box = page.getRangeAt(0).getBoundingClientRect();
|
|
754
|
+
// a caret in an empty line has no box of its own: the text's
|
|
755
|
+
var at = box.width || box.height ? box : root.getBoundingClientRect();
|
|
756
|
+
/* An empty text offers its templates and fields: the picker, at its top (qorus#646, David: a click in an
|
|
757
|
+
empty field shows the templates, the record's fields among them). */
|
|
758
|
+
var empty = !converter.fromSlateNodes(editor.children).trim();
|
|
759
|
+
/* A reference being written at the caret is completed where it is - what is listed of it, what to write
|
|
760
|
+
next and Browse all templates to put a working one in its place - not left for the picker at the top
|
|
761
|
+
(qorus#646, David's review: a click at the end of `$dynamic:` showed the picker's top silently). */
|
|
762
|
+
// what is typed in the text the caret is in: a chip before it is a value, not a reference being written
|
|
763
|
+
var leaf = slate_1.Editor.leaf(editor, caret.anchor)[0];
|
|
764
|
+
var writing = /[$@][\w.:{}*-]*$/.test(((_a = leaf.text) !== null && _a !== void 0 ? _a : '').slice(0, caret.anchor.offset));
|
|
765
|
+
if (browsesOnClick && !writing && (empty || !completeOnClick)) {
|
|
766
|
+
openBrowse(editor, {
|
|
767
|
+
rect: { left: at.left, bottom: at.bottom },
|
|
768
|
+
caret: caret.anchor,
|
|
769
|
+
arrows: empty,
|
|
770
|
+
});
|
|
771
|
+
return;
|
|
772
|
+
}
|
|
773
|
+
openAtCaret(editor, caret.anchor, { left: at.left, bottom: at.bottom });
|
|
774
|
+
}
|
|
775
|
+
catch (_b) {
|
|
776
|
+
// the editor is not drawn, or the page's caret is not in it: nothing is asked
|
|
777
|
+
}
|
|
778
|
+
}, [completeOnClick, browsesOnClick, readOnly, openAtCaret, openBrowse, converter]);
|
|
417
779
|
var resolvedTagClick = onTagClick !== null && onTagClick !== void 0 ? onTagClick : handleTagClickDefault;
|
|
418
780
|
// ReqoreRichTextEditor memoizes `renderElement` without `onTagClick` in
|
|
419
781
|
// its deps, so it captures the FIRST render's handler forever (stale
|
|
@@ -431,15 +793,6 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
431
793
|
return;
|
|
432
794
|
autocomplete.onItemSelect(item, editorRef.current);
|
|
433
795
|
}, [autocomplete]);
|
|
434
|
-
// Flatten groups into rows carrying a flat index to compare against
|
|
435
|
-
// `focusedIndex` (which is flat across all groups).
|
|
436
|
-
var completionGroups = (0, react_1.useMemo)(function () {
|
|
437
|
-
var flatIndex = 0;
|
|
438
|
-
return autocomplete.groups.map(function (group) { return ({
|
|
439
|
-
label: group.label,
|
|
440
|
-
items: group.items.map(function (item) { return ({ item: item, index: flatIndex++ }); }),
|
|
441
|
-
}); });
|
|
442
|
-
}, [autocomplete.groups]);
|
|
443
796
|
// Overlay shown while the session connects, a context binding resolves,
|
|
444
797
|
// or the wrapper signals `isLoading` (e.g. DpqlEditor awaiting
|
|
445
798
|
// `dpql/toRichtext`). The editor stays mounted underneath;
|
|
@@ -453,85 +806,126 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
453
806
|
var overlayContent = !showLoadingOverlay ? null
|
|
454
807
|
: loadingIndicator !== undefined && loadingIndicator !== null ? loadingIndicator
|
|
455
808
|
: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreSpinner, { iconColor: 'info:lighten:2', size: 'small', centered: true, labelEffect: { textSize: 'small' }, children: defaultLoadingLabel });
|
|
456
|
-
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, children: [topActions,
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
809
|
+
return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, children: [topActions, aids.findBar, (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { ref: rowRef, fluid: true, verticalAlign: 'flex-start', className: 'smart-editor-row', "data-completion": autocomplete.isOpen ? 'open'
|
|
810
|
+
: autocomplete.isActive ?
|
|
811
|
+
'asking'
|
|
812
|
+
: 'idle', children: [(0, jsx_runtime_1.jsxs)(StyledEditorBox, { style: EDITOR_BOX_STYLE, "$wordWrap": wordWrap, "$maxHeight": maxHeight, "$lineNumbers": lineNumbers, className: 'smart-editor-box', onClick: function (event) { return completeAtPageCaret(event.target); },
|
|
813
|
+
/* Tab's key comes up in the editor it moved the focus into. One that went down in the editor - a Tab
|
|
814
|
+
that took a completion, or moved the focus on - asks nothing: its key coming up here reopened the
|
|
815
|
+
list just taken from (qorus#646). */
|
|
816
|
+
onKeyUp: function (event) {
|
|
817
|
+
if (event.key === 'Tab' && tabCameIn())
|
|
818
|
+
completeAtPageCaret(event.target);
|
|
819
|
+
}, children: [(0, jsx_runtime_1.jsx)(RichTextEditor_1.ReqoreRichTextEditor, { ref: editorRef, value: slateValue, onChange: handleSlateChange, readOnly: readOnly, customRenderLeaf: renderLeafWithMarks, decorate: composedDecorate, getTagProps: tagRenderer, onTagClick: stableOnTagClick, size: size, onBlur: handleBlur, onKeyDown: function (event) {
|
|
820
|
+
aids.onKeyDown(event);
|
|
821
|
+
},
|
|
822
|
+
// the field's templates, browsed when the text is clicked, tapped or tabbed into: the browse list,
|
|
823
|
+
// drawn as the completion list is
|
|
824
|
+
tags: tags, tagsListProps: __assign({ useTargetWidth: true }, useTemplateTags_1.TEMPLATE_BROWSE_LIST_PROPS), "aria-autocomplete": 'list', "aria-expanded": autocomplete.isOpen, "aria-controls": completionMenuId, panelProps: {
|
|
825
|
+
fluid: true,
|
|
826
|
+
flat: true,
|
|
827
|
+
style: {
|
|
828
|
+
// Auto-grow: the editor sizes to its content and grows
|
|
829
|
+
// as lines are added. `height` is an optional *minimum*
|
|
830
|
+
// floor (e.g. a multi-line code editor); when omitted,
|
|
831
|
+
// a single comfortable line so the empty field stays
|
|
832
|
+
// clickable and the diagnostics panel hugs the input
|
|
833
|
+
// instead of sitting below a tall reserved box.
|
|
834
|
+
minHeight: height !== null && height !== void 0 ? height : '2.4em',
|
|
835
|
+
/* reqore's mono stack, as every other code-like text: the bare generic keyword is the browser's
|
|
836
|
+
default fixed-width font (Courier in Chrome on macOS), larger than the field's own face */
|
|
837
|
+
fontFamily: reqore_1.ReqoreFonts.mono,
|
|
838
|
+
/* the size the text is written in (the text area's, for this size), so the frame and its `em`
|
|
839
|
+
floor are the text's: a fixed 13px was larger than a small field's text, and the panel's own
|
|
840
|
+
size larger again, which made the frame taller than the field's other tabs */
|
|
841
|
+
fontSize: sizes_1.CONTROL_TEXT_FROM_SIZE[size !== null && size !== void 0 ? size : 'normal'],
|
|
842
|
+
},
|
|
843
|
+
} }), showLoadingOverlay && ((0, jsx_runtime_1.jsx)("div", {
|
|
844
|
+
// Absolutely-positioned, centred panel covering the
|
|
845
|
+
// editor body. `backdrop-filter: blur` matches the
|
|
846
|
+
// 20px backdrop blur Reqore uses for drawers — keeps
|
|
847
|
+
// the editor content faintly readable underneath while
|
|
848
|
+
// signalling "this surface is paused". Pointer events
|
|
849
|
+
// pass through; the LSP-dependent paths short-circuit
|
|
850
|
+
// on `!isReady` / `!isContextReady` anyway.
|
|
851
|
+
style: {
|
|
852
|
+
position: 'absolute',
|
|
853
|
+
inset: 0,
|
|
854
|
+
display: 'flex',
|
|
855
|
+
alignItems: 'center',
|
|
856
|
+
justifyContent: 'center',
|
|
857
|
+
background: 'rgba(10, 10, 10, 0.35)',
|
|
858
|
+
backdropFilter: 'blur(4px)',
|
|
859
|
+
WebkitBackdropFilter: 'blur(4px)',
|
|
860
|
+
borderRadius: 4,
|
|
861
|
+
pointerEvents: 'none',
|
|
862
|
+
zIndex: 2,
|
|
863
|
+
}, children: overlayContent })), (0, jsx_runtime_1.jsx)(CompletionMenu_1.CompletionMenu, { autocomplete: autocomplete, id: completionMenuId, onSelect: handleCompletionSelect, templateRoots: pickerRoots, pendingLabel: !session.isReady ? 'Connecting to language server…'
|
|
864
|
+
: !session.isContextReady ? 'Loading schema…'
|
|
865
|
+
: undefined }), hover.hoverContent && hover.hoverPosition && (
|
|
866
|
+
// Non-interactive (`pointerEvents: none`) so typing/clicking
|
|
867
|
+
// doesn't dismiss it via a focus trap.
|
|
868
|
+
(0, jsx_runtime_1.jsx)(Popover_1.ReqorePopover
|
|
869
|
+
// one popover per hover: the next one is a popover of its own, wherever it is
|
|
870
|
+
, { component: 'span', wrapperStyle: {
|
|
871
|
+
position: 'fixed',
|
|
872
|
+
top: hover.hoverPosition.top,
|
|
873
|
+
left: hover.hoverPosition.left,
|
|
874
|
+
width: '1px',
|
|
875
|
+
height: '1px',
|
|
876
|
+
pointerEvents: 'none',
|
|
877
|
+
}, content: (0, jsx_runtime_1.jsx)("div", { style: { padding: 4 }, children: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: hover.hoverContent.value, markdown: hover.hoverContent.kind === 'markdown' }) }), openOnMount: true, noArrow: true,
|
|
878
|
+
/* A mouse's hover is over the word it is of; what Details shows is under the button, beside the
|
|
879
|
+
text. Both are a popover's card, the surface a chip's hover is drawn on: drawn as glass, a hover
|
|
880
|
+
over an empty page was its words with nothing under them (Foxhoundn, qlip #392: "It looks like
|
|
881
|
+
the background is transparent? Is it not using a ReqorePopover / the tags tooltip?"). */
|
|
882
|
+
placement: detailsShown ? 'bottom-end' : 'top', handler: 'hover', closeOnOutsideClick: true, minWidth: '220px', onToggleChange: function (open) {
|
|
883
|
+
// this hover only: a popover replaced by the next hover says it closed as it goes
|
|
884
|
+
if (!open)
|
|
885
|
+
hover.clearHover(shownHoverId);
|
|
886
|
+
} }, "hover-".concat(hover.hoverId))), signatureHelp.signature && signatureHelp.position && ((0, jsx_runtime_1.jsx)(SignatureHelpPill, { signature: signatureHelp.signature, position: signatureHelp.position }))] }), templateButton && pickerRoots.length && !readOnly ?
|
|
887
|
+
(0, jsx_runtime_1.jsx)(TemplateButton, { size: size, insertable: insertableAtCaret, notInsertable: templateButton.notInsertable, open: function (rect) {
|
|
888
|
+
var editor = editorRef.current;
|
|
889
|
+
if (!editor)
|
|
890
|
+
return;
|
|
891
|
+
if (autocomplete.browse && !autocomplete.isReplaceMode) {
|
|
892
|
+
autocomplete.close();
|
|
893
|
+
return;
|
|
894
|
+
}
|
|
895
|
+
openBrowse(editor, {
|
|
896
|
+
rect: rect,
|
|
897
|
+
arrows: !converter.fromSlateNodes(editor.children).trim(),
|
|
898
|
+
});
|
|
899
|
+
} })
|
|
900
|
+
: null, showDetailsButton && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'smart-editor-details', icon: 'InformationLine', fixed: true, flat: true, minimal: true, "aria-label": 'Show what the word at the cursor is', tooltip: detailsSaysItsWord ? undefined : 'Details',
|
|
901
|
+
// the press keeps the focus, and the caret the details are of, in the text
|
|
902
|
+
onMouseDown: function (event) { return event.preventDefault(); }, onClick: function (event) {
|
|
903
|
+
var _a;
|
|
904
|
+
// anchored under the button's right edge: the card opens beside the text, not over it
|
|
905
|
+
/* Under the row, not only under the button: an editor of more than one line is taller than
|
|
906
|
+
the button, and the card drawn under the button covered the lines below the first
|
|
907
|
+
(DpqlEditor · Details On A Chip On A Touch Screen, at 390px). */
|
|
908
|
+
var _b = event.currentTarget.getBoundingClientRect(), right = _b.right, bottom = _b.bottom;
|
|
909
|
+
var row = event.currentTarget.closest('.smart-editor-row');
|
|
910
|
+
var rowBottom = (_a = row === null || row === void 0 ? void 0 : row.getBoundingClientRect().bottom) !== null && _a !== void 0 ? _a : bottom;
|
|
911
|
+
void hover
|
|
912
|
+
.showAtCaret({ left: right, top: Math.max(bottom, rowBottom) })
|
|
913
|
+
.then(setDetailsHoverId);
|
|
914
|
+
}, children: detailsSaysItsWord ? 'Details' : undefined }))] }), showDiagnostics && shownDiagnostics.length > 0 && (
|
|
915
|
+
// One ReqoreMessage per diagnostic, severity → intent. The same
|
|
916
|
+
// diagnostics as the inline underline above (`shownDiagnostics`).
|
|
917
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'small', children: shownDiagnostics.map(function (diag, i) { return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMessage, { intent: (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), "data-severity": (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), icon: diag.severity === 2 ? 'AlertLine'
|
|
532
918
|
: diag.severity && diag.severity >= 3 ?
|
|
533
919
|
'InformationLine'
|
|
534
|
-
: 'ErrorWarningLine', size: 'small', opaque: false, children: diag.message
|
|
920
|
+
: 'ErrorWarningLine', size: 'small', opaque: false, children: [diag.message, (function () {
|
|
921
|
+
// what the host can do about it, beside what is said of it
|
|
922
|
+
var action = diagnosticAction === null || diagnosticAction === void 0 ? void 0 : diagnosticAction(diag);
|
|
923
|
+
// as wide as its words, under what is said: a message lays its children out at its width
|
|
924
|
+
return action ?
|
|
925
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { size: 'small', fluid: false, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { size: 'small', compact: true, fixed: true, className: 'smart-editor-diagnostic-action', intent: (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), onClick: action.onClick, children: action.label }) })
|
|
926
|
+
: null;
|
|
927
|
+
})()] }, "".concat(diag.range.start.line, ":").concat(diag.range.start.character, ":").concat(i))); }) }))] }));
|
|
535
928
|
});
|
|
536
929
|
exports.SmartEditor.displayName = 'SmartEditor';
|
|
930
|
+
var templateObject_1;
|
|
537
931
|
//# sourceMappingURL=SmartEditor.js.map
|