@qoretechnologies/reqraft 0.10.66-pr.145.gcb1e59d → 0.10.66
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 +420 -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 +336 -243
- 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 +20 -57
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +67 -59
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +606 -409
- 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 +2 -18
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +28 -25
- 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 +11 -31
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +30 -6
- 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 +56 -31
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +121 -110
- 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/compactToolbarContext.d.ts +0 -3
- package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
- 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 +26 -22
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +79 -115
- 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 +3 -9
- package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
- package/dist/components/form/engine/rowFocus.js +30 -19
- 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 +37 -25
- 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 +39 -18
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +0 -7
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +46 -35
- 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 +123 -79
- 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 +1 -7
- package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +30 -13
- 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 +10 -7
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/number/Number.d.ts +7 -4
- package/dist/components/form/fields/number/Number.d.ts.map +1 -1
- package/dist/components/form/fields/number/Number.js +45 -18
- 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 +8 -13
- 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 +426 -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 +706 -168
- 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 +459 -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 -2
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +25 -3
- 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 -9
- 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 +616 -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 +392 -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 +592 -149
- 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/InterfaceReferenceTags.d.ts +2 -3
- package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +1 -1
- package/dist/components/supportTicket/InterfaceReferenceTags.js.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.d.ts +9 -3
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +38 -23
- 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 +21 -6
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketReplyBox.js +10 -29
- package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
- package/dist/components/supportTicket/useLoadedImages.d.ts +0 -10
- package/dist/components/supportTicket/useLoadedImages.d.ts.map +1 -1
- package/dist/components/supportTicket/useLoadedImages.js +1 -63
- package/dist/components/supportTicket/useLoadedImages.js.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +10 -9
- 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 +52 -21
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/allowedValues.d.ts +21 -12
- package/dist/helpers/allowedValues.d.ts.map +1 -1
- package/dist/helpers/allowedValues.js +40 -20
- 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/singleLineString.d.ts.map +1 -1
- package/dist/helpers/singleLineString.js +0 -1
- package/dist/helpers/singleLineString.js.map +1 -1
- 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/dist/components/form/engine/formAppearance.d.ts +0 -49
- package/dist/components/form/engine/formAppearance.d.ts.map +0 -1
- package/dist/components/form/engine/formAppearance.js +0 -50
- package/dist/components/form/engine/formAppearance.js.map +0 -1
- package/dist/components/form/fields/ChoiceGroupHeading.d.ts +0 -21
- package/dist/components/form/fields/ChoiceGroupHeading.d.ts.map +0 -1
- package/dist/components/form/fields/ChoiceGroupHeading.js +0 -33
- package/dist/components/form/fields/ChoiceGroupHeading.js.map +0 -1
- package/dist/components/form/fields/allowed-values/savedValues.d.ts +0 -30
- package/dist/components/form/fields/allowed-values/savedValues.d.ts.map +0 -1
- package/dist/components/form/fields/allowed-values/savedValues.js +0 -39
- package/dist/components/form/fields/allowed-values/savedValues.js.map +0 -1
- package/dist/helpers/fieldDescription.d.ts +0 -16
- package/dist/helpers/fieldDescription.d.ts.map +0 -1
- package/dist/helpers/fieldDescription.js +0 -40
- package/dist/helpers/fieldDescription.js.map +0 -1
- 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 -2740
- package/src/components/form/engine/CompactToolbar.tsx +0 -399
- package/src/components/form/engine/FormEngine.stories.tsx +0 -9934
- package/src/components/form/engine/FormEngine.tsx +0 -4891
- package/src/components/form/engine/FormEngineAppearance.stories.tsx +0 -609
- package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
- package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -335
- package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
- package/src/components/form/engine/OptionFieldMessages.tsx +0 -548
- 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 -755
- 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 -153
- package/src/components/form/engine/compactRowStyles.ts +0 -1087
- package/src/components/form/engine/compactToolbarContext.ts +0 -72
- package/src/components/form/engine/formAppearance.ts +0 -79
- 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 -1090
- 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 -112
- 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 -152
- 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/ChoiceGroupHeading.tsx +0 -38
- package/src/components/form/fields/Field.stories.tsx +0 -143
- package/src/components/form/fields/Field.tsx +0 -734
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -321
- package/src/components/form/fields/allowed-values/savedValues.ts +0 -64
- 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 -1183
- 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 -147
- package/src/components/form/fields/long-string/LongString.tsx +0 -141
- 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 -140
- package/src/components/form/fields/number/Number.stories.tsx +0 -159
- package/src/components/form/fields/number/Number.tsx +0 -175
- 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 -52
- 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 -1749
- 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 -49
- package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
- package/src/components/imageLightbox/ImageLightbox.tsx +0 -238
- 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 -130
- package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -580
- package/src/components/supportTicket/ReferencePicker.tsx +0 -573
- package/src/components/supportTicket/TicketConversation.stories.tsx +0 -120
- package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
- package/src/components/supportTicket/TicketHeader.tsx +0 -248
- 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 -357
- package/src/components/supportTicket/TicketReplyBox.tsx +0 -172
- 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 -93
- package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -341
- package/src/components/ticketReferences/TicketReferences.tsx +0 -914
- package/src/components/ticketReferences/index.ts +0 -2
- package/src/components/ticketThread/TicketThread.stories.tsx +0 -898
- package/src/components/ticketThread/TicketThread.tsx +0 -706
- 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 -268
- 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/fieldDescription.ts +0 -39
- 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 -62
- 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,14 +214,61 @@ 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);
|
|
270
|
+
// what an emptied text opens (set where the picker's roots are known, below)
|
|
271
|
+
var emptiedRef = (0, react_1.useRef)(function () { return undefined; });
|
|
257
272
|
// Cached Slate nodes, refreshed only on EXTERNAL value changes — not on
|
|
258
273
|
// the typing echo. Passing a fresh ref every keystroke re-runs
|
|
259
274
|
// ReqoreRichTextEditor's tokenizer mid-token (typed `@s` collapses to a
|
|
@@ -264,9 +279,9 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
264
279
|
from outside — a leading chip gains an empty text leaf before it — without
|
|
265
280
|
changing its text, so `value` never changes and the cache above kept the
|
|
266
281
|
tree the editor no longer had. Every offset computed from it (token
|
|
267
|
-
|
|
282
|
+
colors, diagnostics, signature help) then pointed one leaf off: a Text
|
|
268
283
|
view seeded with `"$local:name" == "John"` was never highlighted. */
|
|
269
|
-
var
|
|
284
|
+
var _p = (0, react_1.useReducer)(function (count) { return count + 1; }, 0), editorTreeVersion = _p[0], noteEditorTree = _p[1];
|
|
270
285
|
(0, react_1.useImperativeHandle)(ref, function () { return editorRef.current; }, []);
|
|
271
286
|
// Gates all LSP hooks on both the connection (`isReady`) and any
|
|
272
287
|
// wrapper context binding (`isContextReady`) — without the latter,
|
|
@@ -274,16 +289,117 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
274
289
|
// the server context-less and the dropdown silently closes. Generic
|
|
275
290
|
// sessions set `isContextReady: true`, collapsing this to `isReady`.
|
|
276
291
|
var lspReady = session.isReady && session.isContextReady;
|
|
292
|
+
/* What the list offers at the caret: the server's answer, with the host's own entries merged in where they
|
|
293
|
+
can be written (`completionsWith`). Where no server can be asked, the host's alone. */
|
|
294
|
+
var noServer = session.isUnavailable && !!completionsWith;
|
|
295
|
+
var askServer = session.getCompletions;
|
|
296
|
+
var getCompletions = (0, react_1.useCallback)(function (plainText, offset, typedInText) { return __awaiter(void 0, void 0, void 0, function () {
|
|
297
|
+
var serverItems, _a;
|
|
298
|
+
return __generator(this, function (_b) {
|
|
299
|
+
switch (_b.label) {
|
|
300
|
+
case 0:
|
|
301
|
+
if (!noServer) return [3 /*break*/, 1];
|
|
302
|
+
_a = undefined;
|
|
303
|
+
return [3 /*break*/, 3];
|
|
304
|
+
case 1: return [4 /*yield*/, askServer(plainText, offset)];
|
|
305
|
+
case 2:
|
|
306
|
+
_a = _b.sent();
|
|
307
|
+
_b.label = 3;
|
|
308
|
+
case 3:
|
|
309
|
+
serverItems = _a;
|
|
310
|
+
return [2 /*return*/, completionsWith ?
|
|
311
|
+
completionsWith({ plainText: plainText, offset: offset, serverItems: serverItems, typedInText: typedInText })
|
|
312
|
+
: (serverItems !== null && serverItems !== void 0 ? serverItems : [])];
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
}); }, [noServer, askServer, completionsWith]);
|
|
316
|
+
/* What the language server completes where a value can be written (the start of the text), for the template
|
|
317
|
+
picker to offer beside the field's own templates: the record's fields, the template contexts, the functions
|
|
318
|
+
and the values (qorus#646, David: "users should be supported with all available completions in the template
|
|
319
|
+
picker"). Asked once the server is ready, again as the field's templates change, and when the picker opens. */
|
|
320
|
+
var _q = (0, react_1.useState)(), serverValues = _q[0], setServerValues = _q[1];
|
|
321
|
+
var askedValuesRef = (0, react_1.useRef)(0);
|
|
322
|
+
var askServerValues = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
323
|
+
var asked, items;
|
|
324
|
+
return __generator(this, function (_a) {
|
|
325
|
+
switch (_a.label) {
|
|
326
|
+
case 0:
|
|
327
|
+
// only an editor of templates has a template picker to offer them in (`templateRoots`)
|
|
328
|
+
if (noServer || !lspReady || !templateRoots)
|
|
329
|
+
return [2 /*return*/];
|
|
330
|
+
asked = ++askedValuesRef.current;
|
|
331
|
+
return [4 /*yield*/, askServer('', 0)];
|
|
332
|
+
case 1:
|
|
333
|
+
items = _a.sent();
|
|
334
|
+
// only the latest answer, and only while the editor is there
|
|
335
|
+
if (asked === askedValuesRef.current && mountedRef.current)
|
|
336
|
+
setServerValues(items);
|
|
337
|
+
return [2 /*return*/];
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
}); }, [noServer, lspReady, askServer, templateRoots]);
|
|
341
|
+
var mountedRef = (0, react_1.useRef)(true);
|
|
342
|
+
(0, react_1.useEffect)(function () { return function () {
|
|
343
|
+
mountedRef.current = false;
|
|
344
|
+
}; }, []);
|
|
345
|
+
// asked when the server is ready and as the field's templates change
|
|
346
|
+
(0, react_1.useEffect)(function () {
|
|
347
|
+
void askServerValues();
|
|
348
|
+
}, [lspReady, templateRoots]);
|
|
349
|
+
var pickerRoots = (0, react_1.useMemo)(
|
|
350
|
+
// a lone group of the field's opened only where nothing is added beside it
|
|
351
|
+
function () { return (templateRoots ? (0, templateTree_2.openLoneGroup)((0, templateTree_2.withServerCompletions)(templateRoots, serverValues)) : []); }, [templateRoots, serverValues]);
|
|
277
352
|
var autocomplete = (0, useLspAutocomplete_1.useLspAutocomplete)({
|
|
278
|
-
getCompletions:
|
|
279
|
-
isReady: lspReady,
|
|
353
|
+
getCompletions: getCompletions,
|
|
354
|
+
isReady: lspReady || noServer,
|
|
280
355
|
triggerCharacters: triggerCharacters,
|
|
281
356
|
converter: converter,
|
|
282
357
|
inserter: completionInserter,
|
|
358
|
+
emptyMessage: emptyCompletionMessage,
|
|
359
|
+
// what to write next, above the rows, where none of them is what is written
|
|
360
|
+
noteAt: emptyCompletionMessage,
|
|
361
|
+
// Enter or Tab where nothing more is listed: what is written at the caret, a whole reference, is its chip
|
|
362
|
+
commitTyped: function (editor) {
|
|
363
|
+
var _a;
|
|
364
|
+
return (0, typedReferences_2.commitTypedReferences)(editor, converter, referenceNamesNothing, (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor.path[0]);
|
|
365
|
+
},
|
|
283
366
|
});
|
|
367
|
+
// the picker opened: what the server completes asked again, for the record and the context bound now
|
|
368
|
+
var pickerOpen = !!autocomplete.browse;
|
|
369
|
+
(0, react_1.useEffect)(function () {
|
|
370
|
+
if (pickerOpen)
|
|
371
|
+
void askServerValues();
|
|
372
|
+
}, [pickerOpen, askServerValues]);
|
|
284
373
|
var hover = (0, useLspHover_1.useLspHover)(session, editorRef, converter, {
|
|
285
374
|
enabled: enableHover,
|
|
375
|
+
debounceMs: hoverDelayMs,
|
|
376
|
+
// a chip whose props carry a tooltip (a field the record describes) shows that, not the server's hover too
|
|
377
|
+
chipHasOwnHover: function (tag) {
|
|
378
|
+
var _a;
|
|
379
|
+
return !!((_a = tagRenderer === null || tagRenderer === void 0 ? void 0 : tagRenderer(tag)) === null || _a === void 0 ? void 0 : _a.tooltip);
|
|
380
|
+
},
|
|
286
381
|
});
|
|
382
|
+
/* The hover the popover drawn in this render is of: what it dismisses when it closes, and nothing newer. */
|
|
383
|
+
var shownHoverId = hover.hoverId;
|
|
384
|
+
/* A finger cannot hover: where the pointer is one, "Details" shows what the server says of the word at the
|
|
385
|
+
caret, in the same pop-up a mouse gets by hovering. Only where the server says anything (`hoverProvider`). */
|
|
386
|
+
var coarse = (0, useCoarsePointer_1.useCoarsePointer)();
|
|
387
|
+
/* The row the text and its Details button share, measured: in a row a phone's width or narrower, Details is its
|
|
388
|
+
icon alone - its word took the text's room (Foxhoundn on qlip #383: "The details button should be just an icon
|
|
389
|
+
on such small screen / container size"). The row, not the screen: an editor in a narrow card on a wide
|
|
390
|
+
screen is as short of room. */
|
|
391
|
+
var _r = (0, react_use_1.useMeasure)(), rowRef = _r[0], rowWidth = _r[1].width;
|
|
392
|
+
var detailsSaysItsWord = !rowWidth || rowWidth > DETAILS_WORD_MIN_ROW_WIDTH;
|
|
393
|
+
var showDetailsButton = coarse &&
|
|
394
|
+
// Details says what the word at the caret is, and a read-only text has no caret: a tap on a read-only
|
|
395
|
+
// rendering (a collapsed row's expression) opens what holds it, where Details is
|
|
396
|
+
!readOnly &&
|
|
397
|
+
enableHover &&
|
|
398
|
+
session.isReady &&
|
|
399
|
+
!!((_c = (_b = session.client) === null || _b === void 0 ? void 0 : _b.capabilities) === null || _c === void 0 ? void 0 : _c.hoverProvider);
|
|
400
|
+
/* The hover Details showed, drawn as a card under the button rather than over the text (`showAtCaret`). */
|
|
401
|
+
var _s = (0, react_1.useState)(), detailsHoverId = _s[0], setDetailsHoverId = _s[1];
|
|
402
|
+
var detailsShown = detailsHoverId !== undefined && hover.hoverId === detailsHoverId;
|
|
287
403
|
/* What the editor has reported and the host has not handed back yet. A host can hand an emit back
|
|
288
404
|
after the next key is already in the editor - one that debounces, or a render that lands between
|
|
289
405
|
two keys - and that stale value is not a change: rebuilding the document from it replaced the text
|
|
@@ -309,7 +425,7 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
309
425
|
}, [value, converter, editorTreeVersion]);
|
|
310
426
|
/* A value set from outside is a change to the document as much as typing
|
|
311
427
|
is — a Text view seeded after mount, a Preview following the author. The
|
|
312
|
-
server
|
|
428
|
+
server colors and diagnoses its own copy of the text, so it must hold
|
|
313
429
|
this one; typing already sent its text, and is not resent. */
|
|
314
430
|
var syncDocument = session.didChange;
|
|
315
431
|
(0, react_1.useEffect)(function () {
|
|
@@ -323,21 +439,82 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
323
439
|
lastPlainTextRef.current = value;
|
|
324
440
|
syncDocument(value);
|
|
325
441
|
}, [syncDocument, value, emitted]);
|
|
326
|
-
|
|
442
|
+
/* The server's diagnostics as the editor says them: in the host's words for what it wrote itself
|
|
443
|
+
(`presentDiagnostics`), and without the error of a reference half-typed at the caret while its list is open
|
|
444
|
+
or on its way - a `$` typed to ask for a template is not a mistake yet (qorus#646, David's decision). It
|
|
445
|
+
is said once the list is put away. */
|
|
446
|
+
var listActive = autocomplete.isActive;
|
|
447
|
+
var shownDiagnostics = (0, react_1.useMemo)(function () {
|
|
448
|
+
var _a;
|
|
449
|
+
var editor = editorRef.current;
|
|
450
|
+
var nodes = (_a = editor === null || editor === void 0 ? void 0 : editor.children) !== null && _a !== void 0 ? _a : slateValue;
|
|
451
|
+
var said = presentDiagnostics ?
|
|
452
|
+
presentDiagnostics(session.diagnostics, converter.fromSlateNodes(nodes))
|
|
453
|
+
: session.diagnostics;
|
|
454
|
+
var at = editor === null || editor === void 0 ? void 0 : editor.selection;
|
|
455
|
+
if (!listActive || !converter.referenceBeingWritten || !at || !slate_1.Range.isCollapsed(at)) {
|
|
456
|
+
return said;
|
|
457
|
+
}
|
|
458
|
+
var _b = at.anchor.path, index = _b[0], child = _b[1];
|
|
459
|
+
var paragraph = nodes[index];
|
|
460
|
+
if (at.anchor.path.length !== 2 || !paragraph) {
|
|
461
|
+
return said;
|
|
462
|
+
}
|
|
463
|
+
var end = converter.selectionToOffset([paragraph], [0, child], at.anchor.offset);
|
|
464
|
+
var written = converter.referenceBeingWritten(converter.fromSlateNodes([paragraph]).slice(0, end));
|
|
465
|
+
/* what is said of the reference being written, which reaches the caret: from where it starts in what is
|
|
466
|
+
being written, or a whole reference that ends at the caret (`$data:receive_order.ev`, of which only `ev`
|
|
467
|
+
is being written) */
|
|
468
|
+
return said.filter(function (_a) {
|
|
469
|
+
var _b = _a.range, start = _b.start, to = _b.end;
|
|
470
|
+
return !(start.line === index &&
|
|
471
|
+
((written > 0 && start.character >= end - written && start.character < end) ||
|
|
472
|
+
(start.character < end && to.line === index && to.character === end)));
|
|
473
|
+
});
|
|
474
|
+
}, [session.diagnostics, presentDiagnostics, converter, slateValue, listActive]);
|
|
475
|
+
var diagnosticDecorate = (0, useLspDiagnosticDecorations_1.useLspDiagnosticDecorations)(shownDiagnostics, converter, slateValue);
|
|
327
476
|
// Server-driven syntax highlighting (replaces the old client-side regex
|
|
328
477
|
// highlighter — see design doc §7).
|
|
329
478
|
var semanticDecorate = (0, useLspSemanticTokens_1.useLspSemanticTokens)(session, converter, slateValue);
|
|
330
479
|
// No-ops when the server doesn't advertise `signatureHelpProvider`.
|
|
331
480
|
var signatureHelp = (0, useLspSignatureHelp_1.useLspSignatureHelp)(session, editorRef, converter, slateValue, { enabled: enableSignatureHelp });
|
|
481
|
+
/* What a code editor does for what is typed (`useEditingAids`): pairs closed, a selection wrapped, the
|
|
482
|
+
bracket at the caret matched, the search (Ctrl+F) and its replace, lines moved and copied, the document
|
|
483
|
+
formatted (Shift+Alt+F), completion asked for (Ctrl+Space). */
|
|
484
|
+
// the editing aids follow every change of the editor, its caret's included (the bracket match)
|
|
485
|
+
var aidsChangeRef = (0, react_1.useRef)(function () { return undefined; });
|
|
486
|
+
var aids = (0, useEditingAids_1.useEditingAids)({
|
|
487
|
+
editorRef: editorRef,
|
|
488
|
+
converter: converter,
|
|
489
|
+
nodes: slateValue,
|
|
490
|
+
language: editingLanguage,
|
|
491
|
+
readOnly: readOnly,
|
|
492
|
+
onFormat: formatDocument,
|
|
493
|
+
onComplete: function () {
|
|
494
|
+
var editor = editorRef.current;
|
|
495
|
+
var at = editor === null || editor === void 0 ? void 0 : editor.selection;
|
|
496
|
+
if (!editor || !at)
|
|
497
|
+
return;
|
|
498
|
+
try {
|
|
499
|
+
var rect = slate_react_1.ReactEditor.toDOMRange(editor, at).getBoundingClientRect();
|
|
500
|
+
autocomplete.openAtCaret(editor, at.anchor, { left: rect.left, bottom: rect.bottom });
|
|
501
|
+
}
|
|
502
|
+
catch (_a) {
|
|
503
|
+
// the caret is not drawn: nothing is asked
|
|
504
|
+
}
|
|
505
|
+
},
|
|
506
|
+
});
|
|
507
|
+
aidsChangeRef.current = aids.onEditorChange;
|
|
332
508
|
var composedDecorate = (0, react_1.useCallback)(function (entry) {
|
|
333
509
|
var _a;
|
|
334
510
|
var userRanges = (_a = decorate === null || decorate === void 0 ? void 0 : decorate(entry)) !== null && _a !== void 0 ? _a : [];
|
|
335
511
|
var semanticRanges = semanticDecorate(entry);
|
|
512
|
+
var aidRanges = aids.decorate(entry);
|
|
336
513
|
var diagRanges = showDiagnostics ? diagnosticDecorate(entry) : [];
|
|
337
514
|
// 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
|
|
515
|
+
return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], userRanges, true), semanticRanges, true), aidRanges, true), diagRanges, true);
|
|
516
|
+
}, [decorate, semanticDecorate, diagnosticDecorate, showDiagnostics, aids.decorate]);
|
|
517
|
+
// Paints semantic-token colors and diagnostic underlines, falling
|
|
341
518
|
// through to the consumer's `customRenderLeaf` for everything else.
|
|
342
519
|
var renderLeafWithMarks = (0, react_1.useCallback)(function (props) {
|
|
343
520
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
@@ -358,7 +535,19 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
358
535
|
}, children: child }));
|
|
359
536
|
}
|
|
360
537
|
}
|
|
361
|
-
//
|
|
538
|
+
// the bracket matching the one at the caret, and the search's matches (the current one stronger)
|
|
539
|
+
if (leaf.bracketMatch || leaf.findMatch) {
|
|
540
|
+
child = ((0, jsx_runtime_1.jsx)("span", { className: leaf.findCurrent ? 'smart-editor-find-current'
|
|
541
|
+
: leaf.findMatch ? 'smart-editor-find-match'
|
|
542
|
+
: 'smart-editor-bracket-match', style: {
|
|
543
|
+
borderRadius: 2,
|
|
544
|
+
background: leaf.findCurrent ? 'rgba(255, 200, 0, 0.55)'
|
|
545
|
+
: leaf.findMatch ? 'rgba(255, 200, 0, 0.25)'
|
|
546
|
+
: 'rgba(255, 255, 255, 0.12)',
|
|
547
|
+
outline: leaf.bracketMatch ? '1px solid rgba(255, 255, 255, 0.45)' : undefined,
|
|
548
|
+
}, children: child }));
|
|
549
|
+
}
|
|
550
|
+
// Underline outermost so it overlays the syntax color; hex
|
|
362
551
|
// fallbacks cover host themes that omit a diagnostic intent.
|
|
363
552
|
if (leaf.error) {
|
|
364
553
|
var underlineColor = leaf.severity === 2 ? ((_d = (_c = theme.intents) === null || _c === void 0 ? void 0 : _c.warning) !== null && _d !== void 0 ? _d : '#f0a500')
|
|
@@ -372,8 +561,90 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
372
561
|
}
|
|
373
562
|
return child;
|
|
374
563
|
}, [customRenderLeaf, theme]);
|
|
564
|
+
/* A reference typed out in full is drawn as its chip, as one picked from the completion list is: the
|
|
565
|
+
paragraph is redrawn from its text, which the converter reads it in (`rechipTypedReferences`). The text is
|
|
566
|
+
the same, so nothing is reported for it. */
|
|
567
|
+
var drawTypedReferences = typedReferences_2.drawRechipped;
|
|
568
|
+
// the editor has been left: every reference typed in it is drawn as its chip
|
|
569
|
+
var handleBlur = (0, react_1.useCallback)(function () {
|
|
570
|
+
var editor = editorRef.current;
|
|
571
|
+
if (editor && !readOnly) {
|
|
572
|
+
(0, typedReferences_2.commitTypedReferences)(editor, converter, referenceNamesNothing);
|
|
573
|
+
}
|
|
574
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur();
|
|
575
|
+
}, [converter, readOnly, onBlur, referenceNamesNothing]);
|
|
576
|
+
/* A chip put in at the caret takes the place of the reference being written there, wherever it is picked
|
|
577
|
+
from (qorus#646, David's review). The completion list's inserter takes it away itself; the list the
|
|
578
|
+
editor's templates are browsed in is reqore's, which puts a chip in at the caret as it is: a `$` typed to
|
|
579
|
+
ask for a template stayed in front of the one picked, and `pos + 1 + $pos` is refused by the server. A
|
|
580
|
+
Slate plugin on the editor reqore made for this one (its `insertNodes`), so both are one step of one
|
|
581
|
+
change - one text sent, one undo. A chip put in at a place of its own (`at`: a typed reference drawn as its
|
|
582
|
+
chip, a chip replaced) is left alone. */
|
|
583
|
+
var referenceBeingWritten = readOnly ? undefined : converter.referenceBeingWritten;
|
|
584
|
+
(0, react_1.useEffect)(function () {
|
|
585
|
+
var editor = editorRef.current;
|
|
586
|
+
if (!editor || !referenceBeingWritten) {
|
|
587
|
+
return undefined;
|
|
588
|
+
}
|
|
589
|
+
var insertNodes = editor.insertNodes;
|
|
590
|
+
editor.insertNodes = function (nodes, options) {
|
|
591
|
+
var at = editor.selection;
|
|
592
|
+
var inserted = Array.isArray(nodes) ? nodes : [nodes];
|
|
593
|
+
var chip = inserted.length === 1 && inserted[0].type === 'tag';
|
|
594
|
+
if (chip && !(options === null || options === void 0 ? void 0 : options.at) && at && slate_1.Range.isCollapsed(at) && at.anchor.path.length === 2) {
|
|
595
|
+
var _a = at.anchor.path, index = _a[0], child = _a[1];
|
|
596
|
+
var paragraph = editor.children[index];
|
|
597
|
+
if (paragraph) {
|
|
598
|
+
var before = converter
|
|
599
|
+
.fromSlateNodes([paragraph])
|
|
600
|
+
.slice(0, converter.selectionToOffset([paragraph], [0, child], at.anchor.offset));
|
|
601
|
+
var written = referenceBeingWritten(before);
|
|
602
|
+
// what is being written is typed text, in the text the caret is in
|
|
603
|
+
if (written > 0 && written <= at.anchor.offset) {
|
|
604
|
+
slate_1.Transforms.delete(editor, {
|
|
605
|
+
at: {
|
|
606
|
+
anchor: { path: at.anchor.path, offset: at.anchor.offset - written },
|
|
607
|
+
focus: at.anchor,
|
|
608
|
+
},
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
insertNodes(nodes, options);
|
|
614
|
+
};
|
|
615
|
+
return function () {
|
|
616
|
+
editor.insertNodes = insertNodes;
|
|
617
|
+
};
|
|
618
|
+
}, [converter, referenceBeingWritten]);
|
|
619
|
+
/* Whether a template can be written at the caret, for the template button: asked again at every change of the
|
|
620
|
+
editor, a move of its caret included, so the button is never left as it was for a caret that has moved. */
|
|
621
|
+
var _t = (0, react_1.useState)(true), insertableAtCaret = _t[0], setInsertableAtCaret = _t[1];
|
|
622
|
+
var insertableAt = templateButton === null || templateButton === void 0 ? void 0 : templateButton.insertableAt;
|
|
623
|
+
var askInsertable = (0, react_1.useCallback)(function () {
|
|
624
|
+
var _a;
|
|
625
|
+
var editor = editorRef.current;
|
|
626
|
+
if (!editor || !insertableAt)
|
|
627
|
+
return;
|
|
628
|
+
try {
|
|
629
|
+
var nodes = editor.children;
|
|
630
|
+
var plainText = converter.fromSlateNodes(nodes);
|
|
631
|
+
var at = (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor;
|
|
632
|
+
var offset = at ? converter.selectionToOffset(nodes, at.path, at.offset) : plainText.length;
|
|
633
|
+
setInsertableAtCaret(insertableAt(plainText.slice(0, offset)));
|
|
634
|
+
}
|
|
635
|
+
catch (_b) {
|
|
636
|
+
// a selection the editor no longer has: the end of the text is asked about
|
|
637
|
+
setInsertableAtCaret(insertableAt(converter.fromSlateNodes(editor.children)));
|
|
638
|
+
}
|
|
639
|
+
}, [insertableAt, converter]);
|
|
640
|
+
(0, react_1.useEffect)(askInsertable, [askInsertable, value]);
|
|
641
|
+
var askInsertableRef = (0, react_1.useRef)(askInsertable);
|
|
642
|
+
askInsertableRef.current = askInsertable;
|
|
375
643
|
var handleSlateChange = (0, react_1.useCallback)(function (newNodes) {
|
|
644
|
+
var _a;
|
|
376
645
|
var plainText = converter.fromSlateNodes(newNodes);
|
|
646
|
+
// the text emptied by this edit (cleared, or its last character deleted): see below
|
|
647
|
+
var emptied = !!((_a = lastPlainTextRef.current) === null || _a === void 0 ? void 0 : _a.trim()) && !plainText.trim();
|
|
377
648
|
// A selection change reports the same tree; anything else is the tree
|
|
378
649
|
// the editor now holds, and the one every offset is computed against.
|
|
379
650
|
if (newNodes !== slateValueRef.current) {
|
|
@@ -390,30 +661,151 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
390
661
|
// parameter never advances.
|
|
391
662
|
onChange(plainText);
|
|
392
663
|
session.didChange(plainText);
|
|
664
|
+
// a reference typed out in full, and left by the character just typed, is drawn as its chip
|
|
665
|
+
var editor = editorRef.current;
|
|
666
|
+
var at = editor === null || editor === void 0 ? void 0 : editor.selection;
|
|
667
|
+
if (editor && at && slate_1.Range.isCollapsed(at) && !readOnly && converter.endsReference) {
|
|
668
|
+
var _b = at.anchor.path, index = _b[0], child = _b[1];
|
|
669
|
+
var paragraph = newNodes[index];
|
|
670
|
+
var rechipped = paragraph &&
|
|
671
|
+
(0, typedReferences_1.rechipTypedReferences)(converter, paragraph, index, converter.selectionToOffset([paragraph], [0, child], at.anchor.offset), referenceNamesNothing);
|
|
672
|
+
if (rechipped) {
|
|
673
|
+
drawTypedReferences(editor, index, rechipped);
|
|
674
|
+
}
|
|
675
|
+
}
|
|
393
676
|
}
|
|
394
677
|
if (editorRef.current && !readOnly) {
|
|
395
678
|
autocomplete.onSlateChange(editorRef.current, newNodes);
|
|
679
|
+
/* A text emptied where the author is writing offers what an empty text offers: its templates and
|
|
680
|
+
fields, the picker at its top, as a click in it opens it - not nothing, nor a list of one row that
|
|
681
|
+
only leads there (Foxhoundn on qlip #425; David: the picker offers every completion in every
|
|
682
|
+
state). */
|
|
683
|
+
if (emptied)
|
|
684
|
+
emptiedRef.current();
|
|
396
685
|
}
|
|
686
|
+
aidsChangeRef.current();
|
|
687
|
+
askInsertableRef.current();
|
|
397
688
|
}, [onChange, session, readOnly, autocomplete, converter, emitted]);
|
|
398
689
|
// Replace mode: open the dropdown at the chip's DOM rect (not the
|
|
399
690
|
// editor selection — clicks on a Slate VOID inline don't reliably
|
|
400
691
|
// update `editor.selection`) and atomically swap the chip on select.
|
|
692
|
+
var hasBrowseList = !!tags && Object.keys(tags).length > 0;
|
|
401
693
|
var handleTagClickDefault = (0, react_1.useCallback)(function (tag, editor) {
|
|
402
694
|
if (readOnly)
|
|
403
695
|
return;
|
|
696
|
+
/* An editor with a browse list (`tags`) answers a click on a chip with that list, as a click anywhere
|
|
697
|
+
in its text, and as a value's text does: one list at a time. Opening the chip's replacements beside
|
|
698
|
+
it put two lists over the text, and what was typed then reached neither (qorus#646, David: "you
|
|
699
|
+
can't type"). */
|
|
700
|
+
if (hasBrowseList)
|
|
701
|
+
return;
|
|
404
702
|
try {
|
|
405
703
|
var tagPath = slate_react_1.ReactEditor.findPath(editor, tag);
|
|
406
704
|
var domNode = slate_react_1.ReactEditor.toDOMNode(editor, tag);
|
|
407
705
|
var rect = domNode.getBoundingClientRect();
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
706
|
+
/* A chip the field's templates or fields list opens the picker where it is - its group, its row the
|
|
707
|
+
keyboard's - and the pick takes its place (qorus#646). A second click on it puts the picker away. */
|
|
708
|
+
var listed = (templateRoots === null || templateRoots === void 0 ? void 0 : templateRoots.length) && typeof tag.value === 'string' ?
|
|
709
|
+
(0, templateTree_1.templateNodeFor)(templateRoots, tag.value)
|
|
710
|
+
: undefined;
|
|
711
|
+
if (listed) {
|
|
712
|
+
if (autocomplete.browse && autocomplete.isReplaceMode) {
|
|
713
|
+
autocomplete.close();
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
716
|
+
autocomplete.openBrowse(editor, {
|
|
717
|
+
rect: { left: rect.left, bottom: rect.bottom },
|
|
718
|
+
replacementPath: tagPath,
|
|
719
|
+
levelId: listed.trailIds[listed.trailIds.length - 1],
|
|
720
|
+
selectedValue: tag.value,
|
|
721
|
+
});
|
|
722
|
+
return;
|
|
723
|
+
}
|
|
724
|
+
/* An editor that completes on a click lists what can stand in the chip's place - the fields and
|
|
725
|
+
templates the chip is one of - and the pick replaces it (qorus#646, David: a click on pos listed
|
|
726
|
+
nothing). */
|
|
727
|
+
autocomplete.openAtChip(editor, tagPath, { left: rect.left, bottom: rect.bottom }, { inItsPlace: completeOnClick });
|
|
412
728
|
}
|
|
413
729
|
catch (_a) {
|
|
414
730
|
// Tag may have been removed mid-render — ignore.
|
|
415
731
|
}
|
|
416
|
-
}, [readOnly, autocomplete]);
|
|
732
|
+
}, [readOnly, autocomplete, hasBrowseList, completeOnClick, templateRoots]);
|
|
733
|
+
/* A click, a tap or Tab into the text asks what can be written at the caret (`completeOnClick`): the caret the
|
|
734
|
+
page put there, which Slate's selection follows only later. Not a click on a chip, which is a control of
|
|
735
|
+
its own, nor anything outside the text: the list's rows are drawn elsewhere, and their clicks reach this
|
|
736
|
+
box through React. */
|
|
737
|
+
var openAtCaret = autocomplete.openAtCaret, openBrowse = autocomplete.openBrowse;
|
|
738
|
+
var browsesOnClick = !!pickerRoots.length;
|
|
739
|
+
// the picker at the top of an emptied text, where it has templates and the author is in it
|
|
740
|
+
emptiedRef.current = function () {
|
|
741
|
+
var editor = editorRef.current;
|
|
742
|
+
if (!browsesOnClick || readOnly || !editor)
|
|
743
|
+
return;
|
|
744
|
+
try {
|
|
745
|
+
if (!slate_react_1.ReactEditor.isFocused(editor))
|
|
746
|
+
return;
|
|
747
|
+
var at = slate_react_1.ReactEditor.toDOMNode(editor, editor).getBoundingClientRect();
|
|
748
|
+
openBrowse(editor, {
|
|
749
|
+
rect: { left: at.left, bottom: at.bottom },
|
|
750
|
+
caret: slate_1.Editor.start(editor, []),
|
|
751
|
+
arrows: true,
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
catch (_a) {
|
|
755
|
+
// the editor is not drawn: nothing opens
|
|
756
|
+
}
|
|
757
|
+
};
|
|
758
|
+
// whether the Tab whose key comes up brought the focus into the editor (`onKeyUp` below)
|
|
759
|
+
var tabCameIn = (0, useTabCameIn_1.useTabCameIn)(function () {
|
|
760
|
+
var editor = editorRef.current;
|
|
761
|
+
return editor ? slate_react_1.ReactEditor.toDOMNode(editor, editor) : null;
|
|
762
|
+
});
|
|
763
|
+
var completeAtPageCaret = (0, react_1.useCallback)(function (target) {
|
|
764
|
+
var _a;
|
|
765
|
+
var editor = editorRef.current;
|
|
766
|
+
if ((!completeOnClick && !browsesOnClick) || readOnly || !editor)
|
|
767
|
+
return;
|
|
768
|
+
try {
|
|
769
|
+
var root = slate_react_1.ReactEditor.toDOMNode(editor, editor);
|
|
770
|
+
if (!(target instanceof Node) || !root.contains(target))
|
|
771
|
+
return;
|
|
772
|
+
if (target instanceof Element && target.closest('[data-slate-void="true"]'))
|
|
773
|
+
return;
|
|
774
|
+
var page = slate_react_1.ReactEditor.getWindow(editor).getSelection();
|
|
775
|
+
if (!page || page.rangeCount === 0 || !page.isCollapsed)
|
|
776
|
+
return;
|
|
777
|
+
var caret = slate_react_1.ReactEditor.toSlateRange(editor, page, {
|
|
778
|
+
exactMatch: false,
|
|
779
|
+
suppressThrow: true,
|
|
780
|
+
});
|
|
781
|
+
if (!caret)
|
|
782
|
+
return;
|
|
783
|
+
var box = page.getRangeAt(0).getBoundingClientRect();
|
|
784
|
+
// a caret in an empty line has no box of its own: the text's
|
|
785
|
+
var at = box.width || box.height ? box : root.getBoundingClientRect();
|
|
786
|
+
/* An empty text offers its templates and fields: the picker, at its top (qorus#646, David: a click in an
|
|
787
|
+
empty field shows the templates, the record's fields among them). */
|
|
788
|
+
var empty = !converter.fromSlateNodes(editor.children).trim();
|
|
789
|
+
/* A reference being written at the caret is completed where it is - what is listed of it, what to write
|
|
790
|
+
next and Browse all templates to put a working one in its place - not left for the picker at the top
|
|
791
|
+
(qorus#646, David's review: a click at the end of `$dynamic:` showed the picker's top silently). */
|
|
792
|
+
// what is typed in the text the caret is in: a chip before it is a value, not a reference being written
|
|
793
|
+
var leaf = slate_1.Editor.leaf(editor, caret.anchor)[0];
|
|
794
|
+
var writing = /[$@][\w.:{}*-]*$/.test(((_a = leaf.text) !== null && _a !== void 0 ? _a : '').slice(0, caret.anchor.offset));
|
|
795
|
+
if (browsesOnClick && !writing && (empty || !completeOnClick)) {
|
|
796
|
+
openBrowse(editor, {
|
|
797
|
+
rect: { left: at.left, bottom: at.bottom },
|
|
798
|
+
caret: caret.anchor,
|
|
799
|
+
arrows: empty,
|
|
800
|
+
});
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
803
|
+
openAtCaret(editor, caret.anchor, { left: at.left, bottom: at.bottom });
|
|
804
|
+
}
|
|
805
|
+
catch (_b) {
|
|
806
|
+
// the editor is not drawn, or the page's caret is not in it: nothing is asked
|
|
807
|
+
}
|
|
808
|
+
}, [completeOnClick, browsesOnClick, readOnly, openAtCaret, openBrowse, converter]);
|
|
417
809
|
var resolvedTagClick = onTagClick !== null && onTagClick !== void 0 ? onTagClick : handleTagClickDefault;
|
|
418
810
|
// ReqoreRichTextEditor memoizes `renderElement` without `onTagClick` in
|
|
419
811
|
// its deps, so it captures the FIRST render's handler forever (stale
|
|
@@ -431,15 +823,6 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
431
823
|
return;
|
|
432
824
|
autocomplete.onItemSelect(item, editorRef.current);
|
|
433
825
|
}, [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
826
|
// Overlay shown while the session connects, a context binding resolves,
|
|
444
827
|
// or the wrapper signals `isLoading` (e.g. DpqlEditor awaiting
|
|
445
828
|
// `dpql/toRichtext`). The editor stays mounted underneath;
|
|
@@ -453,85 +836,128 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
453
836
|
var overlayContent = !showLoadingOverlay ? null
|
|
454
837
|
: loadingIndicator !== undefined && loadingIndicator !== null ? loadingIndicator
|
|
455
838
|
: (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
|
-
|
|
839
|
+
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'
|
|
840
|
+
: autocomplete.isActive ?
|
|
841
|
+
'asking'
|
|
842
|
+
: '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); },
|
|
843
|
+
/* Tab's key comes up in the editor it moved the focus into. One that went down in the editor - a Tab
|
|
844
|
+
that took a completion, or moved the focus on - asks nothing: its key coming up here reopened the
|
|
845
|
+
list just taken from (qorus#646). */
|
|
846
|
+
onKeyUp: function (event) {
|
|
847
|
+
if (event.key === 'Tab' && tabCameIn())
|
|
848
|
+
completeAtPageCaret(event.target);
|
|
849
|
+
}, 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) {
|
|
850
|
+
aids.onKeyDown(event);
|
|
851
|
+
},
|
|
852
|
+
// the field's templates, browsed when the text is clicked, tapped or tabbed into: the browse list,
|
|
853
|
+
// drawn as the completion list is
|
|
854
|
+
tags: tags, tagsListProps: __assign({ useTargetWidth: true }, useTemplateTags_1.TEMPLATE_BROWSE_LIST_PROPS), "aria-autocomplete": 'list', "aria-expanded": autocomplete.isOpen, "aria-controls": completionMenuId, panelProps: {
|
|
855
|
+
fluid: true,
|
|
856
|
+
flat: true,
|
|
857
|
+
style: {
|
|
858
|
+
// Auto-grow: the editor sizes to its content and grows
|
|
859
|
+
// as lines are added. `height` is an optional *minimum*
|
|
860
|
+
// floor (e.g. a multi-line code editor); when omitted,
|
|
861
|
+
// a single comfortable line so the empty field stays
|
|
862
|
+
// clickable and the diagnostics panel hugs the input
|
|
863
|
+
// instead of sitting below a tall reserved box.
|
|
864
|
+
minHeight: height !== null && height !== void 0 ? height : '2.4em',
|
|
865
|
+
/* reqore's mono stack, as every other code-like text: the bare generic keyword is the browser's
|
|
866
|
+
default fixed-width font (Courier in Chrome on macOS), larger than the field's own face */
|
|
867
|
+
fontFamily: reqore_1.ReqoreFonts.mono,
|
|
868
|
+
/* the size the text is written in (the text area's, for this size), so the frame and its `em`
|
|
869
|
+
floor are the text's: a fixed 13px was larger than a small field's text, and the panel's own
|
|
870
|
+
size larger again, which made the frame taller than the field's other tabs */
|
|
871
|
+
fontSize: sizes_1.CONTROL_TEXT_FROM_SIZE[size !== null && size !== void 0 ? size : 'normal'],
|
|
872
|
+
},
|
|
873
|
+
} }), showLoadingOverlay && ((0, jsx_runtime_1.jsx)("div", {
|
|
874
|
+
// Absolutely-positioned, centred panel covering the
|
|
875
|
+
// editor body. `backdrop-filter: blur` matches the
|
|
876
|
+
// 20px backdrop blur Reqore uses for drawers — keeps
|
|
877
|
+
// the editor content faintly readable underneath while
|
|
878
|
+
// signalling "this surface is paused". Pointer events
|
|
879
|
+
// pass through; the LSP-dependent paths short-circuit
|
|
880
|
+
// on `!isReady` / `!isContextReady` anyway.
|
|
881
|
+
style: {
|
|
882
|
+
position: 'absolute',
|
|
883
|
+
inset: 0,
|
|
884
|
+
display: 'flex',
|
|
885
|
+
alignItems: 'center',
|
|
886
|
+
justifyContent: 'center',
|
|
887
|
+
background: 'rgba(10, 10, 10, 0.35)',
|
|
888
|
+
backdropFilter: 'blur(4px)',
|
|
889
|
+
WebkitBackdropFilter: 'blur(4px)',
|
|
890
|
+
borderRadius: 4,
|
|
891
|
+
pointerEvents: 'none',
|
|
892
|
+
zIndex: 2,
|
|
893
|
+
}, 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…'
|
|
894
|
+
: !session.isContextReady ? 'Loading schema…'
|
|
895
|
+
: undefined }), hover.hoverContent && hover.hoverPosition && (
|
|
896
|
+
// Non-interactive (`pointerEvents: none`) so typing/clicking
|
|
897
|
+
// doesn't dismiss it via a focus trap.
|
|
898
|
+
(0, jsx_runtime_1.jsx)(Popover_1.ReqorePopover
|
|
899
|
+
// one popover per hover: the next one is a popover of its own, wherever it is
|
|
900
|
+
, { component: 'span', wrapperStyle: {
|
|
901
|
+
position: 'fixed',
|
|
902
|
+
top: hover.hoverPosition.top,
|
|
903
|
+
left: hover.hoverPosition.left,
|
|
904
|
+
width: '1px',
|
|
905
|
+
height: '1px',
|
|
906
|
+
pointerEvents: 'none',
|
|
907
|
+
}, 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,
|
|
908
|
+
/* A mouse's hover is over the word it is of; what Details shows is under the button, beside the
|
|
909
|
+
text. Both are a popover's card, the surface a chip's hover is drawn on: drawn as glass, a hover
|
|
910
|
+
over an empty page was its words with nothing under them (Foxhoundn, qlip #392: "It looks like
|
|
911
|
+
the background is transparent? Is it not using a ReqorePopover / the tags tooltip?"). */
|
|
912
|
+
placement: detailsShown ? 'bottom-end' : 'top', handler: 'hover', closeOnOutsideClick: true, minWidth: '220px', onToggleChange: function (open) {
|
|
913
|
+
// this hover only: a popover replaced by the next hover says it closed as it goes
|
|
914
|
+
if (!open)
|
|
915
|
+
hover.clearHover(shownHoverId);
|
|
916
|
+
} }, "hover-".concat(hover.hoverId))), signatureHelp.signature && signatureHelp.position && ((0, jsx_runtime_1.jsx)(SignatureHelpPill, { signature: signatureHelp.signature, position: signatureHelp.position }))] }), templateButton && pickerRoots.length && !readOnly ?
|
|
917
|
+
(0, jsx_runtime_1.jsx)(TemplateButton, { size: size, insertable: insertableAtCaret, notInsertable: templateButton.notInsertable, open: function (rect) {
|
|
918
|
+
var editor = editorRef.current;
|
|
919
|
+
if (!editor)
|
|
920
|
+
return;
|
|
921
|
+
if (autocomplete.browse && !autocomplete.isReplaceMode) {
|
|
922
|
+
autocomplete.close();
|
|
923
|
+
return;
|
|
924
|
+
}
|
|
925
|
+
openBrowse(editor, {
|
|
926
|
+
rect: rect,
|
|
927
|
+
arrows: !converter.fromSlateNodes(editor.children).trim(),
|
|
928
|
+
});
|
|
929
|
+
} })
|
|
930
|
+
: 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',
|
|
931
|
+
// the press keeps the focus, and the caret the details are of, in the text
|
|
932
|
+
onMouseDown: function (event) { return event.preventDefault(); }, onClick: function (event) {
|
|
933
|
+
var _a;
|
|
934
|
+
// anchored under the button's right edge: the card opens beside the text, not over it
|
|
935
|
+
/* Under the row, not only under the button: an editor of more than one line is taller than
|
|
936
|
+
the button, and the card drawn under the button covered the lines below the first
|
|
937
|
+
(DpqlEditor · Details On A Chip On A Touch Screen, at 390px). */
|
|
938
|
+
var _b = event.currentTarget.getBoundingClientRect(), right = _b.right, bottom = _b.bottom;
|
|
939
|
+
var row = event.currentTarget.closest('.smart-editor-row');
|
|
940
|
+
var rowBottom = (_a = row === null || row === void 0 ? void 0 : row.getBoundingClientRect().bottom) !== null && _a !== void 0 ? _a : bottom;
|
|
941
|
+
void hover
|
|
942
|
+
.showAtCaret({ left: right, top: Math.max(bottom, rowBottom) })
|
|
943
|
+
.then(setDetailsHoverId);
|
|
944
|
+
}, children: detailsSaysItsWord ? 'Details' : undefined }))] }), showDiagnostics && shownDiagnostics.length > 0 && (
|
|
945
|
+
// One ReqoreMessage per diagnostic, severity → intent. The same
|
|
946
|
+
// diagnostics as the inline underline above (`shownDiagnostics`).
|
|
947
|
+
(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
948
|
: diag.severity && diag.severity >= 3 ?
|
|
533
949
|
'InformationLine'
|
|
534
|
-
: 'ErrorWarningLine', size: 'small', opaque: false, children: diag.message
|
|
950
|
+
: 'ErrorWarningLine', size: 'small', opaque: false, children: [diag.message, (function () {
|
|
951
|
+
// what the host can do about it, beside what is said of it
|
|
952
|
+
var action = diagnosticAction === null || diagnosticAction === void 0 ? void 0 : diagnosticAction(diag);
|
|
953
|
+
// as wide as its words, under what is said and apart from it: a message lays its children out at
|
|
954
|
+
// its width. The size of the message's words with a pointer, a finger's on a touch screen
|
|
955
|
+
// (Foxhoundn on qlip #425: "enormous compared to the text in the message")
|
|
956
|
+
return action ?
|
|
957
|
+
(0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { size: coarse ? 'small' : 'tiny', fluid: false, style: { marginTop: 8 }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { size: coarse ? 'small' : 'tiny', compact: true, fixed: true, className: 'smart-editor-diagnostic-action', intent: (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), onClick: action.onClick, children: action.label }) })
|
|
958
|
+
: null;
|
|
959
|
+
})()] }, "".concat(diag.range.start.line, ":").concat(diag.range.start.character, ":").concat(i))); }) }))] }));
|
|
535
960
|
});
|
|
536
961
|
exports.SmartEditor.displayName = 'SmartEditor';
|
|
962
|
+
var templateObject_1;
|
|
537
963
|
//# sourceMappingURL=SmartEditor.js.map
|