@qoretechnologies/reqraft 0.10.62 → 0.10.63-pr.142.g0b675cd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -1
- package/dist/components/Description/describedControl.d.ts +48 -0
- package/dist/components/Description/describedControl.d.ts.map +1 -0
- package/dist/components/Description/describedControl.js +81 -0
- package/dist/components/Description/describedControl.js.map +1 -0
- package/dist/components/Description/index.d.ts.map +1 -1
- package/dist/components/Description/index.js +3 -2
- package/dist/components/Description/index.js.map +1 -1
- package/dist/components/colorValue/colorValue.d.ts +59 -0
- package/dist/components/colorValue/colorValue.d.ts.map +1 -0
- package/dist/components/colorValue/colorValue.js +245 -0
- package/dist/components/colorValue/colorValue.js.map +1 -0
- package/dist/components/colorValue/index.d.ts +34 -0
- package/dist/components/colorValue/index.d.ts.map +1 -0
- package/dist/components/colorValue/index.js +136 -0
- package/dist/components/colorValue/index.js.map +1 -0
- package/dist/components/colorValue/labels.d.ts +12 -0
- package/dist/components/colorValue/labels.d.ts.map +1 -0
- package/dist/components/colorValue/labels.js +11 -0
- package/dist/components/colorValue/labels.js.map +1 -0
- package/dist/components/composer/Composer.d.ts +1 -1
- package/dist/components/composer/Composer.d.ts.map +1 -1
- package/dist/components/composer/Composer.js +2 -2
- package/dist/components/composer/Composer.js.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
- package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +10 -1
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +30 -13
- package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
- package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlTags.js +11 -6
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +47 -8
- package/dist/components/dpqlEditor/types.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
- package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
- package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
- package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
- package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
- package/dist/components/form/engine/CompactRow.js +151 -83
- package/dist/components/form/engine/CompactRow.js.map +1 -1
- package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
- package/dist/components/form/engine/CompactToolbar.js +29 -3
- package/dist/components/form/engine/CompactToolbar.js.map +1 -1
- package/dist/components/form/engine/FormEngine.d.ts +34 -1
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +487 -87
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
- package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
- package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
- package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +24 -3
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
- package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
- package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
- package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
- package/dist/components/form/engine/compactRowContext.d.ts +19 -0
- package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowContext.js.map +1 -1
- package/dist/components/form/engine/compactRowStyles.d.ts +0 -1
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +12 -20
- package/dist/components/form/engine/compactRowStyles.js.map +1 -1
- package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
- package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
- package/dist/components/form/engine/compactToolbarColors.js +21 -0
- package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
- package/dist/components/form/engine/readFirst.d.ts +24 -8
- package/dist/components/form/engine/readFirst.d.ts.map +1 -1
- package/dist/components/form/engine/readFirst.js +77 -109
- package/dist/components/form/engine/readFirst.js.map +1 -1
- package/dist/components/form/engine/readFirstColors.d.ts +30 -0
- package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
- package/dist/components/form/engine/readFirstColors.js +51 -0
- package/dist/components/form/engine/readFirstColors.js.map +1 -0
- package/dist/components/form/engine/rowFocus.d.ts +2 -0
- package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
- package/dist/components/form/engine/rowFocus.js +26 -3
- package/dist/components/form/engine/rowFocus.js.map +1 -1
- package/dist/components/form/engine/typeChoices.d.ts +1 -1
- package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
- package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
- package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantCards.js +2 -1
- package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
- package/dist/components/form/engine/variants/VariantFocus.js +1 -1
- package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
- package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
- package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
- package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
- package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
- package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
- package/dist/components/form/engine/variants/variantParts.js +25 -17
- package/dist/components/form/engine/variants/variantParts.js.map +1 -1
- package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
- package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
- package/dist/components/form/expressions/DpqlRendering.js +3 -3
- package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
- package/dist/components/form/expressions/ExpressionField.d.ts +41 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +396 -99
- package/dist/components/form/expressions/ExpressionField.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
- package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
- package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js +4 -2
- package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
- package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
- package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts +24 -2
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +121 -77
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/expressions/builder/item.d.ts +6 -2
- package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/item.js +19 -5
- package/dist/components/form/expressions/builder/item.js.map +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
- package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
- package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
- package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
- package/dist/components/form/expressions/expressionOperands.js +97 -0
- package/dist/components/form/expressions/expressionOperands.js.map +1 -0
- package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
- package/dist/components/form/expressions/mockExpressions.js +22 -5
- package/dist/components/form/expressions/mockExpressions.js.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
- package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
- package/dist/components/form/expressions/renderExpressionToText.js +35 -9
- package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
- package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
- package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
- package/dist/components/form/expressions/textOfExpression.js +37 -0
- package/dist/components/form/expressions/textOfExpression.js.map +1 -0
- package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
- package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
- package/dist/components/form/expressions/useExpressionType.js +181 -0
- package/dist/components/form/expressions/useExpressionType.js.map +1 -0
- package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
- package/dist/components/form/expressions/useRenderExpression.js +7 -7
- package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
- package/dist/components/form/fields/Field.d.ts.map +1 -1
- package/dist/components/form/fields/Field.js +20 -7
- package/dist/components/form/fields/Field.js.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
- package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
- package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
- package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAuto.js +24 -0
- package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
- package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
- package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +81 -36
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
- package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
- package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
- package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
- package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
- package/dist/components/form/fields/binary/Binary.js +23 -3
- package/dist/components/form/fields/binary/Binary.js.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
- package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
- package/dist/components/form/fields/boolean/Boolean.js +9 -1
- package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
- package/dist/components/form/fields/color/Color.d.ts +103 -16
- package/dist/components/form/fields/color/Color.d.ts.map +1 -1
- package/dist/components/form/fields/color/Color.js +611 -16
- package/dist/components/form/fields/color/Color.js.map +1 -1
- package/dist/components/form/fields/emittedValues.d.ts +34 -3
- package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
- package/dist/components/form/fields/emittedValues.js +24 -1
- package/dist/components/form/fields/emittedValues.js.map +1 -1
- package/dist/components/form/fields/file/File.d.ts +1 -1
- package/dist/components/form/fields/file/File.d.ts.map +1 -1
- package/dist/components/form/fields/file/File.js +4 -2
- package/dist/components/form/fields/file/File.js.map +1 -1
- package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +17 -3
- package/dist/components/form/fields/long-string/LongString.js.map +1 -1
- package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
- package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
- package/dist/components/form/fields/number/Number.d.ts +6 -0
- package/dist/components/form/fields/number/Number.d.ts.map +1 -1
- package/dist/components/form/fields/number/Number.js +41 -6
- package/dist/components/form/fields/number/Number.js.map +1 -1
- package/dist/components/form/fields/object/Object.d.ts +1 -1
- package/dist/components/form/fields/object/Object.d.ts.map +1 -1
- package/dist/components/form/fields/object/Object.js +4 -2
- package/dist/components/form/fields/object/Object.js.map +1 -1
- package/dist/components/form/fields/pendingEdit.d.ts +52 -0
- package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
- package/dist/components/form/fields/pendingEdit.js +79 -0
- package/dist/components/form/fields/pendingEdit.js.map +1 -0
- package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
- package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
- package/dist/components/form/fields/rich-text/RichText.js +190 -81
- package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
- package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
- package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
- package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
- package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
- package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
- package/dist/components/form/fields/schema-definition/index.js +8 -4
- package/dist/components/form/fields/schema-definition/index.js.map +1 -1
- package/dist/components/form/fields/select/Select.d.ts +2 -0
- package/dist/components/form/fields/select/Select.d.ts.map +1 -1
- package/dist/components/form/fields/select/Select.js +19 -10
- package/dist/components/form/fields/select/Select.js.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
- package/dist/components/form/fields/select/SelectCollection.js +8 -2
- package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
- package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
- package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
- package/dist/components/form/fields/select/unavailableRow.js +55 -0
- package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +5 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +11 -4
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
- package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
- package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
- package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
- package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
- package/dist/components/form/fields/template/TemplateField.d.ts +83 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +535 -85
- package/dist/components/form/fields/template/TemplateField.js.map +1 -1
- package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
- package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateText.js +8 -4
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- package/dist/components/form/fields/template/writtenAsText.d.ts +55 -0
- package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
- package/dist/components/form/fields/template/writtenAsText.js +188 -0
- package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
- package/dist/components/form/index.d.ts +10 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +23 -1
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
- package/dist/components/imageLightbox/ImageLightbox.js +19 -7
- package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
- package/dist/components/log/Log.d.ts.map +1 -1
- package/dist/components/log/Log.js +15 -7
- package/dist/components/log/Log.js.map +1 -1
- package/dist/components/menu/Menu.d.ts.map +1 -1
- package/dist/components/menu/Menu.js +19 -10
- package/dist/components/menu/Menu.js.map +1 -1
- package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
- package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
- package/dist/components/smartEditor/CompletionMenu.js +196 -0
- package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
- package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
- package/dist/components/smartEditor/MarkdownDoc.js +1 -1
- package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
- package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
- package/dist/components/smartEditor/SmartEditor.js +51 -136
- package/dist/components/smartEditor/SmartEditor.js.map +1 -1
- package/dist/components/smartEditor/completionStyle.d.ts +27 -0
- package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
- package/dist/components/smartEditor/completionStyle.js +66 -0
- package/dist/components/smartEditor/completionStyle.js.map +1 -0
- package/dist/components/smartEditor/index.d.ts +5 -1
- package/dist/components/smartEditor/index.d.ts.map +1 -1
- package/dist/components/smartEditor/index.js +19 -1
- package/dist/components/smartEditor/index.js.map +1 -1
- package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
- package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
- package/dist/components/smartEditor/templateCompletions.js +94 -0
- package/dist/components/smartEditor/templateCompletions.js.map +1 -0
- package/dist/components/smartEditor/types.d.ts +12 -1
- package/dist/components/smartEditor/types.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
- package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
- package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
- package/dist/components/smartEditor/useLspHover.d.ts +22 -7
- package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspHover.js +86 -17
- package/dist/components/smartEditor/useLspHover.js.map +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
- package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
- package/dist/components/smartEditor/useLspSession.d.ts +6 -0
- package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspSession.js +7 -6
- package/dist/components/smartEditor/useLspSession.js.map +1 -1
- package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
- package/dist/components/supportTicket/AttachmentChips.js +15 -5
- package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +27 -6
- package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
- package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
- package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketHeader.js +20 -2
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +9 -4
- package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
- package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
- package/dist/components/ticketThread/TicketThread.js +36 -11
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/descriptionTooltip.d.ts +43 -0
- package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
- package/dist/helpers/descriptionTooltip.js +70 -0
- package/dist/helpers/descriptionTooltip.js.map +1 -0
- package/dist/helpers/domProps.d.ts +5 -0
- package/dist/helpers/domProps.d.ts.map +1 -0
- package/dist/helpers/domProps.js +47 -0
- package/dist/helpers/domProps.js.map +1 -0
- package/dist/helpers/expressions.d.ts +107 -2
- package/dist/helpers/expressions.d.ts.map +1 -1
- package/dist/helpers/expressions.js +223 -8
- package/dist/helpers/expressions.js.map +1 -1
- package/dist/helpers/hoveringPointer.d.ts +26 -0
- package/dist/helpers/hoveringPointer.d.ts.map +1 -0
- package/dist/helpers/hoveringPointer.js +29 -0
- package/dist/helpers/hoveringPointer.js.map +1 -0
- package/dist/helpers/markdownText.d.ts +14 -0
- package/dist/helpers/markdownText.d.ts.map +1 -0
- package/dist/helpers/markdownText.js +160 -0
- package/dist/helpers/markdownText.js.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
- package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
- package/dist/helpers/qorusTypeCatalogue.js +262 -0
- package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
- package/dist/helpers/readableColors.d.ts +36 -0
- package/dist/helpers/readableColors.d.ts.map +1 -0
- package/dist/helpers/readableColors.js +116 -0
- package/dist/helpers/readableColors.js.map +1 -0
- package/dist/helpers/templateItems.d.ts +2 -2
- package/dist/helpers/templateItems.d.ts.map +1 -1
- package/dist/helpers/templateItems.js +6 -4
- package/dist/helpers/templateItems.js.map +1 -1
- package/dist/helpers/templates.d.ts +26 -1
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +41 -6
- package/dist/helpers/templates.js.map +1 -1
- package/dist/helpers/validations.d.ts +9 -0
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +139 -33
- package/dist/helpers/validations.js.map +1 -1
- package/dist/hooks/useQorusTypes.d.ts +7 -15
- package/dist/hooks/useQorusTypes.d.ts.map +1 -1
- package/dist/hooks/useQorusTypes.js +25 -166
- package/dist/hooks/useQorusTypes.js.map +1 -1
- package/dist/hooks/useReadableIntentShade.d.ts +9 -0
- package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
- package/dist/hooks/useReadableIntentShade.js +23 -0
- package/dist/hooks/useReadableIntentShade.js.map +1 -0
- package/dist/hooks/useReadableOpacity.d.ts +6 -0
- package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
- package/dist/hooks/useReadableOpacity.js +17 -0
- package/dist/hooks/useReadableOpacity.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
- package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
- package/dist/tracking/ui/ExperimentCard.js +26 -10
- package/dist/tracking/ui/ExperimentCard.js.map +1 -1
- package/dist/tracking/ui/card.d.ts +2 -2
- package/dist/tracking/ui/card.d.ts.map +1 -1
- package/dist/tracking/ui/card.js +2 -2
- package/dist/tracking/ui/card.js.map +1 -1
- package/dist/tracking/ui/readable.d.ts +14 -0
- package/dist/tracking/ui/readable.d.ts.map +1 -0
- package/dist/tracking/ui/readable.js +60 -0
- package/dist/tracking/ui/readable.js.map +1 -0
- package/package.json +14 -5
- package/.claude/CLAUDE.md +0 -317
- package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
- package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
- package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
- package/.tasks/FIELD_STACK_REPORT.md +0 -234
- package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
- package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
- package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
- package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
- package/.tasks/INDEX.md +0 -111
- package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
- package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
- package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
- package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
- package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
- package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
- package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
- package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
- package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
- package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
- package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
- package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
- package/CODE_OF_CONDUCT.md +0 -105
- package/CONTRIBUTING.MD +0 -78
- package/SECURITY.md +0 -3
- package/chromatic.config.json +0 -5
- package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
- package/design/COMPACT_INFO_DISPLAY.md +0 -87
- package/design/COMPACT_PARITY.md +0 -85
- package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
- package/design/FORM_ENGINE_COMPACT.md +0 -300
- package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
- package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
- package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
- package/design/IDE_INTEGRATION.md +0 -64
- package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
- package/design/SELECT_DIALOG_FLOOR.md +0 -86
- package/design/SMART_EDITOR_UX.md +0 -438
- package/design/TRACKING.md +0 -290
- package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
- package/src/components/Description/index.tsx +0 -254
- package/src/components/Description/markdownRendererContext.tsx +0 -29
- package/src/components/FocusedEditing/index.tsx +0 -50
- package/src/components/codeSize/index.tsx +0 -79
- package/src/components/composer/Composer.stories.tsx +0 -238
- package/src/components/composer/Composer.tsx +0 -554
- package/src/components/composer/helpers.ts +0 -74
- package/src/components/composer/index.ts +0 -2
- package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
- package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
- package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
- package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
- package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
- package/src/components/dpqlEditor/dpqlTags.ts +0 -114
- package/src/components/dpqlEditor/index.ts +0 -41
- package/src/components/dpqlEditor/types.ts +0 -203
- package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
- package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
- package/src/components/form/engine/CompactRow.tsx +0 -2620
- package/src/components/form/engine/CompactToolbar.tsx +0 -330
- package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
- package/src/components/form/engine/FormEngine.tsx +0 -4569
- package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
- package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
- package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
- package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
- package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
- package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
- package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
- package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
- package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
- package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
- package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
- package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
- package/src/components/form/engine/compactRowContext.ts +0 -148
- package/src/components/form/engine/compactRowStyles.ts +0 -898
- package/src/components/form/engine/compactToolbarContext.ts +0 -69
- package/src/components/form/engine/optionActions.ts +0 -128
- package/src/components/form/engine/optionsContext.ts +0 -24
- package/src/components/form/engine/readFirst.ts +0 -1077
- package/src/components/form/engine/rendererTypes.ts +0 -107
- package/src/components/form/engine/revealRow.ts +0 -123
- package/src/components/form/engine/rowFocus.ts +0 -101
- package/src/components/form/engine/rowMenuContext.ts +0 -159
- package/src/components/form/engine/rowOpenPicker.ts +0 -27
- package/src/components/form/engine/typeChoices.ts +0 -63
- package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
- package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
- package/src/components/form/engine/variants/VariantCards.tsx +0 -212
- package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
- package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
- package/src/components/form/engine/variants/focusDemo.ts +0 -145
- package/src/components/form/engine/variants/variantModel.ts +0 -223
- package/src/components/form/engine/variants/variantParts.tsx +0 -313
- package/src/components/form/expressions/DpqlRendering.tsx +0 -85
- package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
- package/src/components/form/expressions/ExpressionField.tsx +0 -503
- package/src/components/form/expressions/argumentPresence.ts +0 -213
- package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
- package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
- package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
- package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
- package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
- package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
- package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
- package/src/components/form/expressions/builder/index.tsx +0 -1545
- package/src/components/form/expressions/builder/item.tsx +0 -89
- package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
- package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
- package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
- package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
- package/src/components/form/expressions/mockExpressions.ts +0 -317
- package/src/components/form/expressions/renderExpressionToText.ts +0 -137
- package/src/components/form/expressions/types.ts +0 -110
- package/src/components/form/expressions/useExpressions.ts +0 -101
- package/src/components/form/expressions/useRenderExpression.ts +0 -165
- package/src/components/form/fields/Field.stories.tsx +0 -143
- package/src/components/form/fields/Field.tsx +0 -732
- package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
- package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
- package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
- package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
- package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
- package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
- package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
- package/src/components/form/fields/binary/Binary.tsx +0 -91
- package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
- package/src/components/form/fields/boolean/Boolean.tsx +0 -34
- package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
- package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
- package/src/components/form/fields/color/Color.stories.tsx +0 -99
- package/src/components/form/fields/color/Color.tsx +0 -46
- package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
- package/src/components/form/fields/cron/Cron.tsx +0 -80
- package/src/components/form/fields/date/Date.stories.tsx +0 -77
- package/src/components/form/fields/date/Date.tsx +0 -55
- package/src/components/form/fields/emittedValues.ts +0 -70
- package/src/components/form/fields/file/File.stories.tsx +0 -161
- package/src/components/form/fields/file/File.tsx +0 -227
- package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
- package/src/components/form/fields/long-string/LongString.tsx +0 -130
- package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
- package/src/components/form/fields/markdown/Markdown.tsx +0 -81
- package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
- package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
- package/src/components/form/fields/number/Number.stories.tsx +0 -159
- package/src/components/form/fields/number/Number.tsx +0 -160
- package/src/components/form/fields/object/Object.stories.tsx +0 -398
- package/src/components/form/fields/object/Object.tsx +0 -255
- package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
- package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
- package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
- package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
- package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
- package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
- package/src/components/form/fields/rich-text/RichText.tsx +0 -537
- package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
- package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
- package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
- package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
- package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
- package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
- package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
- package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
- package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
- package/src/components/form/fields/schema-definition/catalog.ts +0 -237
- package/src/components/form/fields/schema-definition/helpers.ts +0 -90
- package/src/components/form/fields/schema-definition/index.tsx +0 -418
- package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
- package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
- package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
- package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
- package/src/components/form/fields/schema-definition/types.ts +0 -185
- package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
- package/src/components/form/fields/select/Select.stories.tsx +0 -872
- package/src/components/form/fields/select/Select.tsx +0 -624
- package/src/components/form/fields/select/SelectCollection.tsx +0 -594
- package/src/components/form/fields/string/String.stories.tsx +0 -86
- package/src/components/form/fields/string/String.tsx +0 -43
- package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
- package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
- package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
- package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
- package/src/components/form/fields/template/TemplateField.tsx +0 -1717
- package/src/components/form/fields/template/TemplateText.tsx +0 -115
- package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
- package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
- package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
- package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
- package/src/components/form/fields/timeout/Timeout.tsx +0 -87
- package/src/components/form/fields/url/Url.stories.tsx +0 -94
- package/src/components/form/fields/url/Url.tsx +0 -85
- package/src/components/form/index.tsx +0 -47
- package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
- package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
- package/src/components/imageLightbox/index.ts +0 -1
- package/src/components/log/Log.stories.tsx +0 -333
- package/src/components/log/Log.tsx +0 -285
- package/src/components/menu/Menu.stories.tsx +0 -155
- package/src/components/menu/Menu.tsx +0 -312
- package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
- package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
- package/src/components/qonsoleSmartInput/index.ts +0 -16
- package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
- package/src/components/qonsoleSmartInput/types.ts +0 -133
- package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
- package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
- package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
- package/src/components/searchFilterBar/index.ts +0 -1
- package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
- package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
- package/src/components/smartEditor/SmartEditor.tsx +0 -808
- package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
- package/src/components/smartEditor/helpers.ts +0 -217
- package/src/components/smartEditor/index.ts +0 -35
- package/src/components/smartEditor/styling.ts +0 -45
- package/src/components/smartEditor/types.ts +0 -211
- package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
- package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
- package/src/components/smartEditor/useLspHover.ts +0 -230
- package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
- package/src/components/smartEditor/useLspSession.ts +0 -231
- package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
- package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
- package/src/components/supportTicket/AttachmentChips.tsx +0 -147
- package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
- package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
- package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
- package/src/components/supportTicket/ReferencePicker.tsx +0 -563
- package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
- package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
- package/src/components/supportTicket/TicketHeader.tsx +0 -247
- package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
- package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
- package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
- package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
- package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
- package/src/components/supportTicket/attachmentAccess.ts +0 -97
- package/src/components/supportTicket/fileToAttachment.ts +0 -24
- package/src/components/supportTicket/index.ts +0 -10
- package/src/components/supportTicket/meta.ts +0 -206
- package/src/components/supportTicket/ticketModel.ts +0 -131
- package/src/components/supportTicket/useLoadedImages.ts +0 -73
- package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
- package/src/components/ticketReferences/TicketReferences.tsx +0 -906
- package/src/components/ticketReferences/index.ts +0 -2
- package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
- package/src/components/ticketThread/TicketThread.tsx +0 -719
- package/src/components/ticketThread/index.ts +0 -6
- package/src/contexts/FetchContext.tsx +0 -25
- package/src/contexts/ReqraftContext.tsx +0 -9
- package/src/contexts/StorageContext.tsx +0 -33
- package/src/global.d.ts +0 -4
- package/src/helpers/allowedValues.ts +0 -249
- package/src/helpers/choiceChip.ts +0 -227
- package/src/helpers/common.ts +0 -326
- package/src/helpers/dpqlDetection.ts +0 -209
- package/src/helpers/expressions.ts +0 -140
- package/src/helpers/optionUiTypes.ts +0 -199
- package/src/helpers/options.ts +0 -150
- package/src/helpers/providerValue.ts +0 -125
- package/src/helpers/scrollbar.ts +0 -32
- package/src/helpers/singleLineString.ts +0 -61
- package/src/helpers/templateItems.ts +0 -81
- package/src/helpers/templateText.ts +0 -350
- package/src/helpers/templates.ts +0 -602
- package/src/helpers/validations.ts +0 -2085
- package/src/hooks/useArgSchema.ts +0 -37
- package/src/hooks/useCoarsePointer.ts +0 -30
- package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
- package/src/hooks/useFetch/useFetch.tsx +0 -154
- package/src/hooks/usePhoneViewport.ts +0 -34
- package/src/hooks/useQorusTypes.ts +0 -233
- package/src/hooks/useReqraftProperty.ts +0 -16
- package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
- package/src/hooks/useStorage/useStorage.ts +0 -35
- package/src/hooks/useTemplates.ts +0 -123
- package/src/hooks/useValidation.ts +0 -9
- package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
- package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
- package/src/hooks/useWhyDidYouUpdate.ts +0 -38
- package/src/index.tsx +0 -86
- package/src/providers/FetchProvider.tsx +0 -40
- package/src/providers/ReqraftProvider.tsx +0 -52
- package/src/providers/StorageProvider.tsx +0 -131
- package/src/stores/currentUser/currentUser.stories.tsx +0 -100
- package/src/stores/currentUser/currentUser.tsx +0 -94
- package/src/stories/Data/fileFieldArgSchema.json +0 -86
- package/src/stories/Tests/utils.ts +0 -320
- package/src/stories/storyNetwork.ts +0 -92
- package/src/stories/tracking.tsx +0 -206
- package/src/tracking/browser/attach.ts +0 -186
- package/src/tracking/browser/env.ts +0 -78
- package/src/tracking/core/consent.ts +0 -37
- package/src/tracking/core/engagement.ts +0 -47
- package/src/tracking/core/experiments.ts +0 -258
- package/src/tracking/core/hash.ts +0 -26
- package/src/tracking/core/ids.ts +0 -25
- package/src/tracking/core/observable.ts +0 -23
- package/src/tracking/core/queue.ts +0 -131
- package/src/tracking/core/sections.ts +0 -166
- package/src/tracking/core/storage.ts +0 -69
- package/src/tracking/core/tracker.ts +0 -417
- package/src/tracking/core/types.ts +0 -162
- package/src/tracking/core/utm.ts +0 -23
- package/src/tracking/index.ts +0 -72
- package/src/tracking/markup.ts +0 -17
- package/src/tracking/react/Experiment.tsx +0 -44
- package/src/tracking/react/TrackingProvider.tsx +0 -56
- package/src/tracking/react/hooks.ts +0 -106
- package/src/tracking/react/index.ts +0 -13
- package/src/tracking/testing.ts +0 -108
- package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
- package/src/tracking/ui/ExperimentCard.tsx +0 -667
- package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
- package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
- package/src/tracking/ui/anchor.ts +0 -180
- package/src/tracking/ui/card.ts +0 -464
- package/src/tracking/ui/client.ts +0 -117
- package/src/tracking/ui/index.ts +0 -77
- package/src/tracking/ui/types.ts +0 -110
- package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
- package/src/types/Form.ts +0 -29
- package/src/types.ts +0 -14
- package/src/utils/datetime.ts +0 -10
- package/src/utils/fetch.ts +0 -457
- package/src/utils/lspClient.ts +0 -711
- package/src/utils/lspClient.types.ts +0 -211
- package/src/utils/queryUnlessCancelled.ts +0 -28
- package/src/utils/websocket.ts +0 -293
- package/vite.config.ts +0 -58
- package/vitest.config.ts +0 -69
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import { useReqoreTheme } from '@qoretechnologies/reqore';
|
|
2
|
-
import { getReadableColor } from '@qoretechnologies/reqore/dist/helpers/colors';
|
|
3
|
-
import type { TMarkdownRenderer } from '../../../Description/markdownRendererContext';
|
|
4
|
-
import ReactMarkdown from 'react-markdown';
|
|
5
|
-
import styled from 'styled-components';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Draws a markdown value.
|
|
9
|
-
*
|
|
10
|
-
* Both places a markdown field shows its content go through this: the live
|
|
11
|
-
* preview beside the editor, and the read-first row's expandable inset. A host
|
|
12
|
-
* that already owns a markdown renderer -- heading scale, code treatment, GFM
|
|
13
|
-
* tables -- supplies one and both surfaces adopt it at once; everyone else gets
|
|
14
|
-
* the built-in view below. Same seam as `codePreviewRenderer`, for the same
|
|
15
|
-
* reason: the styling of rendered prose belongs to the app, not to a form
|
|
16
|
-
* engine.
|
|
17
|
-
*
|
|
18
|
-
* @param value the markdown source
|
|
19
|
-
* @param compact render for a constrained container (a read-first row inset,
|
|
20
|
-
* a narrow preview column) -- tighter margins, smaller headings
|
|
21
|
-
* @param name the field's name, when rendering for a field
|
|
22
|
-
* @param schema the field's schema, when the form has one for it
|
|
23
|
-
* @param options every field's schema in the same scope
|
|
24
|
-
* @param values every field's current value in the same scope
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
interface IStyledMarkdownViewProps {
|
|
28
|
-
$compact?: boolean;
|
|
29
|
-
$textColor: string;
|
|
30
|
-
$mutedColor: string;
|
|
31
|
-
$linkColor: string;
|
|
32
|
-
$tint: string;
|
|
33
|
-
$border: string;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Colours come from the active Reqore theme rather than the hardcoded
|
|
38
|
-
* `rgba(255, 255, 255, …)` this used to carry: a form renders on whatever
|
|
39
|
-
* surface the host gives it, and on a light theme white-on-white prose is
|
|
40
|
-
* simply invisible.
|
|
41
|
-
*/
|
|
42
|
-
const StyledMarkdownView = styled.div<IStyledMarkdownViewProps>`
|
|
43
|
-
color: ${({ $textColor }) => $textColor};
|
|
44
|
-
font-size: ${({ $compact }) => ($compact ? '12px' : '14px')};
|
|
45
|
-
line-height: 1.55;
|
|
46
|
-
word-break: break-word;
|
|
47
|
-
overflow-wrap: anywhere;
|
|
48
|
-
max-width: 100%;
|
|
49
|
-
|
|
50
|
-
/* Hug the container's own padding instead of adding a blank first/last line. */
|
|
51
|
-
> *:first-child {
|
|
52
|
-
margin-top: 0;
|
|
53
|
-
}
|
|
54
|
-
> *:last-child {
|
|
55
|
-
margin-bottom: 0;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
h1,
|
|
59
|
-
h2,
|
|
60
|
-
h3,
|
|
61
|
-
h4,
|
|
62
|
-
h5,
|
|
63
|
-
h6 {
|
|
64
|
-
margin: ${({ $compact }) => ($compact ? '8px 0 4px' : '14px 0 7px')};
|
|
65
|
-
line-height: 1.3;
|
|
66
|
-
font-weight: 600;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/* A description authored as a document routinely opens with a heading; at
|
|
70
|
-
browser defaults that outgrows the panel title above it. */
|
|
71
|
-
h1 {
|
|
72
|
-
font-size: ${({ $compact }) => ($compact ? '1.05em' : '1.35em')};
|
|
73
|
-
}
|
|
74
|
-
h2 {
|
|
75
|
-
font-size: ${({ $compact }) => ($compact ? '1.02em' : '1.2em')};
|
|
76
|
-
}
|
|
77
|
-
h3 {
|
|
78
|
-
font-size: 1.1em;
|
|
79
|
-
}
|
|
80
|
-
h4,
|
|
81
|
-
h5,
|
|
82
|
-
h6 {
|
|
83
|
-
font-size: 1em;
|
|
84
|
-
opacity: 0.85;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
p {
|
|
88
|
-
margin: ${({ $compact }) => ($compact ? '4px 0' : '8px 0')};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
a {
|
|
92
|
-
color: ${({ $linkColor }) => $linkColor};
|
|
93
|
-
text-decoration: underline;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
blockquote {
|
|
97
|
-
margin: 8px 0;
|
|
98
|
-
padding-left: 12px;
|
|
99
|
-
border-left: 2px solid ${({ $border }) => $border};
|
|
100
|
-
color: ${({ $mutedColor }) => $mutedColor};
|
|
101
|
-
font-style: italic;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
ul,
|
|
105
|
-
ol {
|
|
106
|
-
margin: 4px 0;
|
|
107
|
-
padding-left: 20px;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
li {
|
|
111
|
-
margin: 2px 0;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* Long unbroken tokens in code (URLs, base64, raw payloads) must reflow
|
|
115
|
-
inside the container rather than widening it: a pre does not wrap by
|
|
116
|
-
default and a code span has no overflow-wrap. */
|
|
117
|
-
pre {
|
|
118
|
-
margin: 6px 0;
|
|
119
|
-
padding: 8px 10px;
|
|
120
|
-
border-radius: 4px;
|
|
121
|
-
background: ${({ $tint }) => $tint};
|
|
122
|
-
border: 1px solid ${({ $border }) => $border};
|
|
123
|
-
white-space: pre-wrap;
|
|
124
|
-
word-break: break-word;
|
|
125
|
-
overflow-wrap: anywhere;
|
|
126
|
-
max-width: 100%;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
code {
|
|
130
|
-
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
131
|
-
font-size: 0.92em;
|
|
132
|
-
background: ${({ $tint }) => $tint};
|
|
133
|
-
border: 1px solid ${({ $border }) => $border};
|
|
134
|
-
border-radius: 3px;
|
|
135
|
-
padding: 0.05em 0.35em;
|
|
136
|
-
white-space: pre-wrap;
|
|
137
|
-
word-break: break-word;
|
|
138
|
-
overflow-wrap: anywhere;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/* Block code owns the whole pre surface; it must not also be chipped.
|
|
142
|
-
(No backticks in this comment: it sits inside a template literal.) */
|
|
143
|
-
pre code {
|
|
144
|
-
background: none;
|
|
145
|
-
border: 0;
|
|
146
|
-
padding: 0;
|
|
147
|
-
font-size: 1em;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
table {
|
|
151
|
-
border-collapse: collapse;
|
|
152
|
-
margin: 6px 0;
|
|
153
|
-
max-width: 100%;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
th,
|
|
157
|
-
td {
|
|
158
|
-
border: 1px solid ${({ $border }) => $border};
|
|
159
|
-
padding: 4px 10px;
|
|
160
|
-
text-align: left;
|
|
161
|
-
vertical-align: top;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
th {
|
|
165
|
-
background: ${({ $tint }) => $tint};
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
img {
|
|
169
|
-
max-width: 100%;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
hr {
|
|
173
|
-
border: 0;
|
|
174
|
-
border-top: 1px solid ${({ $border }) => $border};
|
|
175
|
-
margin: 10px 0;
|
|
176
|
-
}
|
|
177
|
-
`;
|
|
178
|
-
|
|
179
|
-
export interface IMarkdownViewProps {
|
|
180
|
-
value: string;
|
|
181
|
-
compact?: boolean;
|
|
182
|
-
className?: string;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/** The built-in markdown view: plain CommonMark, styled from the active theme. */
|
|
186
|
-
export const MarkdownView = ({ value, compact, className }: IMarkdownViewProps) => {
|
|
187
|
-
const theme = useReqoreTheme();
|
|
188
|
-
const textColor = getReadableColor(theme);
|
|
189
|
-
|
|
190
|
-
return (
|
|
191
|
-
<StyledMarkdownView
|
|
192
|
-
className={className}
|
|
193
|
-
$compact={compact}
|
|
194
|
-
$textColor={textColor}
|
|
195
|
-
$mutedColor={getReadableColor(theme, undefined, undefined, true)}
|
|
196
|
-
$linkColor={theme?.intents?.info ?? textColor}
|
|
197
|
-
$tint={`${textColor}14`}
|
|
198
|
-
$border={`${textColor}24`}
|
|
199
|
-
>
|
|
200
|
-
<ReactMarkdown>{value}</ReactMarkdown>
|
|
201
|
-
</StyledMarkdownView>
|
|
202
|
-
);
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* The renderer used when a host has not supplied one.
|
|
207
|
-
*
|
|
208
|
-
* The context itself lives in `Description/markdownRendererContext` — ONE
|
|
209
|
-
* context for the whole package, so a host that supplies a renderer reaches
|
|
210
|
-
* every markdown surface at once. This module previously declared a second one,
|
|
211
|
-
* which is the same drift in miniature: two contexts means a host can satisfy
|
|
212
|
-
* one and not the other, and nothing tells it which surface it missed.
|
|
213
|
-
*
|
|
214
|
-
* This is only the fallback a caller reaches for when the shared context is
|
|
215
|
-
* empty and the surface still has to draw something — the field's own live
|
|
216
|
-
* preview, which is useless blank.
|
|
217
|
-
*/
|
|
218
|
-
export const defaultMarkdownRenderer: TMarkdownRenderer = ({ value, compact }) => (
|
|
219
|
-
<MarkdownView value={value} compact={compact} />
|
|
220
|
-
);
|
|
221
|
-
|
|
222
|
-
export default MarkdownView;
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { ReqoreMultiSelect } from '@qoretechnologies/reqore';
|
|
2
|
-
import { TReqoreMultiSelectItem } from '@qoretechnologies/reqore/dist/components/MultiSelect';
|
|
3
|
-
import { IQorusAllowedValue } from '@qoretechnologies/ts-toolkit';
|
|
4
|
-
import { memo, useMemo } from 'react';
|
|
5
|
-
import {
|
|
6
|
-
getSelectItemShortDescription,
|
|
7
|
-
getSelectItemUnavailability,
|
|
8
|
-
UNAVAILABLE_ITEM_CLASS,
|
|
9
|
-
} from '../select/SelectCollection';
|
|
10
|
-
|
|
11
|
-
export interface IMultiSelectFormFieldProps {
|
|
12
|
-
/** Currently selected values (plain scalars) */
|
|
13
|
-
value?: unknown[];
|
|
14
|
-
/** The fixed list of allowed items */
|
|
15
|
-
items: IQorusAllowedValue[];
|
|
16
|
-
canCreateItems?: boolean;
|
|
17
|
-
onChange: (value: unknown[]) => void;
|
|
18
|
-
disabled?: boolean;
|
|
19
|
-
size?: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Multi-select built on top of ReqoreMultiSelect. Used by FormField for
|
|
24
|
-
* `multi-select` fields and `list` fields with `element_allowed_values`.
|
|
25
|
-
* Aligned to qorus-ide's `MultiSelectField` portable behaviour
|
|
26
|
-
* (FIELD_STACK_REPORT batch): selected values missing from the allowed list
|
|
27
|
-
* still render as chips, a `*` wildcard collapses the selection and disables
|
|
28
|
-
* the other items, and item chips wrap with the description as tooltip. The
|
|
29
|
-
* IDE's editor dialog / FieldEnhancer `reference` machinery is app-coupled
|
|
30
|
-
* and not ported.
|
|
31
|
-
*/
|
|
32
|
-
export const MultiSelectFormField = memo(
|
|
33
|
-
({ value = [], items, onChange, disabled, size, canCreateItems }: IMultiSelectFormFieldProps) => {
|
|
34
|
-
const selectedValues = useMemo<string[]>(
|
|
35
|
-
() => (value as unknown[]).map(String),
|
|
36
|
-
[JSON.stringify(value)]
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* The values this picker will not take, by their string form.
|
|
41
|
-
*
|
|
42
|
-
* Only a refusal the SERVER resolved reaches here: this component is handed
|
|
43
|
-
* the raw `allowed_values`, not the mapped items the single-value pickers
|
|
44
|
-
* build, so a value's own `depends_on` is not judged against the form —
|
|
45
|
-
* see `design/UNAVAILABLE_ALLOWED_VALUES.md`.
|
|
46
|
-
*/
|
|
47
|
-
const refusedValues = useMemo<Set<string>>(
|
|
48
|
-
() =>
|
|
49
|
-
new Set(
|
|
50
|
-
items
|
|
51
|
-
.filter(
|
|
52
|
-
(item) =>
|
|
53
|
-
!!getSelectItemUnavailability({
|
|
54
|
-
disabled: item.disabled,
|
|
55
|
-
messages: item.messages,
|
|
56
|
-
})
|
|
57
|
-
)
|
|
58
|
-
.map((item) => String(item.value?.value ?? ''))
|
|
59
|
-
),
|
|
60
|
-
[JSON.stringify(items)]
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
const reqoreItems = useMemo<TReqoreMultiSelectItem[]>(() => {
|
|
64
|
-
const base = items.map(
|
|
65
|
-
(item): TReqoreMultiSelectItem => {
|
|
66
|
-
const description = getSelectItemShortDescription(item);
|
|
67
|
-
/* Never reqore's `disabled` for a refused VALUE: it applies
|
|
68
|
-
`DisabledElement` (`pointer-events: none`), which takes the row's
|
|
69
|
-
tooltip with it — the one place the whole reason fits. The
|
|
70
|
-
refusal itself is in `onValueChange` below, because reqore owns
|
|
71
|
-
this list's selection and there is no per-row handler to drop. */
|
|
72
|
-
const unavailable = getSelectItemUnavailability({
|
|
73
|
-
disabled: item.disabled,
|
|
74
|
-
messages: item.messages,
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
return {
|
|
78
|
-
value: item.value?.value as string,
|
|
79
|
-
label: item.display_name ?? String(item.value?.value ?? ''),
|
|
80
|
-
description:
|
|
81
|
-
unavailable ?
|
|
82
|
-
[unavailable.title, unavailable.content, description].filter(Boolean).join(' — ')
|
|
83
|
-
: description,
|
|
84
|
-
tooltip: unavailable ? unavailable.content : undefined,
|
|
85
|
-
icon: unavailable ? ('LockLine' as const) : undefined,
|
|
86
|
-
className: unavailable ? UNAVAILABLE_ITEM_CLASS : undefined,
|
|
87
|
-
effect: unavailable ? { opacity: 0.55 } : undefined,
|
|
88
|
-
readOnly: !!unavailable,
|
|
89
|
-
wrap: true,
|
|
90
|
-
/* IDE parity: when `*` is selected, every other item is disabled.
|
|
91
|
-
That one stays reqore's `disabled` — the wildcard is a state of
|
|
92
|
-
the SELECTION rather than a refusal of the value, and it has no
|
|
93
|
-
reason of its own to protect. */
|
|
94
|
-
disabled: selectedValues.includes('*') && item.value?.value !== '*',
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
);
|
|
98
|
-
|
|
99
|
-
// IDE parity: selected values that aren't in the allowed list still
|
|
100
|
-
// render as (removable) items.
|
|
101
|
-
const extras = selectedValues
|
|
102
|
-
.filter((val) => !base.some((item) => item.value === val))
|
|
103
|
-
.map((val): TReqoreMultiSelectItem => ({ value: val, label: val, wrap: true }));
|
|
104
|
-
|
|
105
|
-
return [...base, ...extras];
|
|
106
|
-
}, [JSON.stringify(items), JSON.stringify(selectedValues)]);
|
|
107
|
-
|
|
108
|
-
return (
|
|
109
|
-
<ReqoreMultiSelect
|
|
110
|
-
items={reqoreItems}
|
|
111
|
-
value={selectedValues}
|
|
112
|
-
onValueChange={(selected) => {
|
|
113
|
-
/* The refusal, for the same reason the rows carry no `disabled`: the
|
|
114
|
-
row itself has no handler to withhold, so this is where a refused
|
|
115
|
-
value is dropped. A value already HELD is kept even once it is
|
|
116
|
-
refused — the picker will not take it again, but clearing an
|
|
117
|
-
answer the author gave because a sibling edit closed the value is
|
|
118
|
-
worse than holding one the form can no longer offer.
|
|
119
|
-
|
|
120
|
-
Before the wildcard, so that a refused `*` is refused too. */
|
|
121
|
-
const accepted = selected.filter(
|
|
122
|
-
(val) => selectedValues.includes(val) || !refusedValues.has(val)
|
|
123
|
-
);
|
|
124
|
-
|
|
125
|
-
// IDE parity: picking the `*` wildcard collapses the selection.
|
|
126
|
-
onChange?.(accepted.includes('*') ? ['*'] : (accepted as unknown[]));
|
|
127
|
-
}}
|
|
128
|
-
disabled={disabled}
|
|
129
|
-
size={size as any}
|
|
130
|
-
selectedItemSize={size as any}
|
|
131
|
-
canCreateItems={canCreateItems}
|
|
132
|
-
enterKeySelects
|
|
133
|
-
canRemoveItems
|
|
134
|
-
showNoItemsMessage={false}
|
|
135
|
-
selectorProps={{ useTargetWidth: false }}
|
|
136
|
-
/>
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
);
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { ReqoreControlGroup } from '@qoretechnologies/reqore';
|
|
2
|
-
import { StoryObj } from '@storybook/react-vite';
|
|
3
|
-
import { expect, fn, userEvent, waitFor, within } from 'storybook/test';
|
|
4
|
-
import { useState } from 'react';
|
|
5
|
-
import { StoryMeta } from '../../../../types';
|
|
6
|
-
import { NumberFormField } from './Number';
|
|
7
|
-
|
|
8
|
-
const meta = {
|
|
9
|
-
component: NumberFormField,
|
|
10
|
-
title: 'Components/Form/Number',
|
|
11
|
-
args: {
|
|
12
|
-
'aria-label': 'Number',
|
|
13
|
-
onChange: fn(),
|
|
14
|
-
},
|
|
15
|
-
render(args) {
|
|
16
|
-
const [value, setValue] = useState(args.value);
|
|
17
|
-
|
|
18
|
-
return (
|
|
19
|
-
<ReqoreControlGroup>
|
|
20
|
-
<NumberFormField
|
|
21
|
-
{...args}
|
|
22
|
-
value={value}
|
|
23
|
-
onChange={(value) => {
|
|
24
|
-
args.onChange?.(value);
|
|
25
|
-
setValue(value);
|
|
26
|
-
}}
|
|
27
|
-
/>
|
|
28
|
-
</ReqoreControlGroup>
|
|
29
|
-
);
|
|
30
|
-
},
|
|
31
|
-
} as StoryMeta<typeof NumberFormField>;
|
|
32
|
-
|
|
33
|
-
export default meta;
|
|
34
|
-
type Story = StoryObj<typeof meta>;
|
|
35
|
-
|
|
36
|
-
export const Integer: Story = {
|
|
37
|
-
args: {
|
|
38
|
-
value: 42,
|
|
39
|
-
type: 'int',
|
|
40
|
-
},
|
|
41
|
-
parameters: {
|
|
42
|
-
docs: {
|
|
43
|
-
description: {
|
|
44
|
-
story:
|
|
45
|
-
'Renders the Number field in integer mode with 42 pre-populated. Typing a new integer updates the value and fires onChange after the debounce.',
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
async play({ args, canvasElement }) {
|
|
50
|
-
const canvas = within(canvasElement);
|
|
51
|
-
const input = canvas.getByLabelText('Number');
|
|
52
|
-
|
|
53
|
-
await expect(input).toBeInTheDocument();
|
|
54
|
-
await expect(input).toHaveValue('42');
|
|
55
|
-
// typed freely, on a numeric keyboard
|
|
56
|
-
await expect(input).toHaveAttribute('type', 'text');
|
|
57
|
-
await expect(input).toHaveAttribute('inputmode', 'numeric');
|
|
58
|
-
|
|
59
|
-
await userEvent.clear(input);
|
|
60
|
-
await userEvent.type(input, '10');
|
|
61
|
-
await expect(input).toHaveValue('10');
|
|
62
|
-
await waitFor(() => expect(args.onChange).toHaveBeenLastCalledWith(10), { timeout: 500 });
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export const Float: Story = {
|
|
67
|
-
args: {
|
|
68
|
-
value: 3.14,
|
|
69
|
-
type: 'float',
|
|
70
|
-
},
|
|
71
|
-
parameters: {
|
|
72
|
-
docs: {
|
|
73
|
-
description: {
|
|
74
|
-
story:
|
|
75
|
-
'Renders the Number field in float mode with 3.14 pre-populated — the input asks for a decimal keyboard and accepts decimals.',
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
async play({ args, canvasElement }) {
|
|
80
|
-
const canvas = within(canvasElement);
|
|
81
|
-
const input = canvas.getByLabelText('Number');
|
|
82
|
-
|
|
83
|
-
await expect(input).toHaveValue('3.14');
|
|
84
|
-
await expect(input).toHaveAttribute('inputmode', 'decimal');
|
|
85
|
-
|
|
86
|
-
await userEvent.clear(input);
|
|
87
|
-
await userEvent.type(input, '10.9');
|
|
88
|
-
await expect(input).toHaveValue('10.9');
|
|
89
|
-
await waitFor(() => expect(args.onChange).toHaveBeenLastCalledWith(10.9), { timeout: 500 });
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
export const Empty: Story = {
|
|
94
|
-
args: {
|
|
95
|
-
type: 'int',
|
|
96
|
-
},
|
|
97
|
-
parameters: {
|
|
98
|
-
docs: {
|
|
99
|
-
description: {
|
|
100
|
-
story: 'Renders the Number field in integer mode with no value — the input mounts empty.',
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
async play({ canvasElement }) {
|
|
105
|
-
const canvas = within(canvasElement);
|
|
106
|
-
const input = canvas.getByLabelText('Number');
|
|
107
|
-
|
|
108
|
-
await expect(input).toBeInTheDocument();
|
|
109
|
-
await expect(input).toHaveValue('');
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export const Disabled: Story = {
|
|
114
|
-
args: {
|
|
115
|
-
value: 99,
|
|
116
|
-
type: 'int',
|
|
117
|
-
disabled: true,
|
|
118
|
-
},
|
|
119
|
-
parameters: {
|
|
120
|
-
docs: {
|
|
121
|
-
description: {
|
|
122
|
-
story:
|
|
123
|
-
'Renders the Number field with a value but disabled — the input shows the value and rejects further edits.',
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
async play({ canvasElement }) {
|
|
128
|
-
const canvas = within(canvasElement);
|
|
129
|
-
const input = canvas.getByLabelText('Number');
|
|
130
|
-
|
|
131
|
-
await expect(input).toBeDisabled();
|
|
132
|
-
await expect(input).toHaveValue('99');
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
export const TypedFreely: Story = {
|
|
137
|
-
args: {
|
|
138
|
-
value: 7,
|
|
139
|
-
type: 'int',
|
|
140
|
-
},
|
|
141
|
-
parameters: {
|
|
142
|
-
docs: {
|
|
143
|
-
description: {
|
|
144
|
-
story:
|
|
145
|
-
'Renders the Number field in integer mode after typing what is not a number: 12abc stays as typed (the form flags it, it is not cut to 12), and a template ($local:quantity) or an expression (@qty * 2) is passed on as typed for the field around it to take up.',
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
async play({ args, canvasElement }) {
|
|
150
|
-
const canvas = within(canvasElement);
|
|
151
|
-
const input = canvas.getByLabelText('Number');
|
|
152
|
-
for (const text of ['12abc', '@qty * 2', '$local:quantity']) {
|
|
153
|
-
await userEvent.clear(input);
|
|
154
|
-
await userEvent.type(input, text);
|
|
155
|
-
await expect(input).toHaveValue(text);
|
|
156
|
-
await waitFor(() => expect(args.onChange).toHaveBeenLastCalledWith(text), { timeout: 500 });
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
};
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { ReqoreDropdown, ReqoreInput } from '@qoretechnologies/reqore';
|
|
2
|
-
import { IReqoreInputProps } from '@qoretechnologies/reqore/dist/components/Input';
|
|
3
|
-
import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
|
|
4
|
-
import { ChangeEvent, useCallback, useEffect, useMemo, useState } from 'react';
|
|
5
|
-
import { useDebounce } from 'react-use';
|
|
6
|
-
import { useEmittedValues } from '../emittedValues';
|
|
7
|
-
// Const-only usage at render time — the cycle (Number → TemplateField → Number)
|
|
8
|
-
// is safe the same way Field → AutoFormField → Field is.
|
|
9
|
-
import { TemplatesListProps } from '../template/TemplateField';
|
|
10
|
-
|
|
11
|
-
export interface INumberFormFieldProps extends Omit<IReqoreInputProps, 'value' | 'onChange' | 'type'> {
|
|
12
|
-
value?: number | string;
|
|
13
|
-
type?: 'int' | 'float';
|
|
14
|
-
onChange?: (value: number | string) => void;
|
|
15
|
-
/** Template values selectable from a focus dropdown (IDE `NumberField` parity). */
|
|
16
|
-
templates?: IReqoreFormTemplates;
|
|
17
|
-
/**
|
|
18
|
-
* The inclusive bounds the schema declares for this field (`MetaFieldInfo::min_value`).
|
|
19
|
-
*
|
|
20
|
-
* Taken under the schema's own names rather than the input's `min` / `max` because the
|
|
21
|
-
* field descriptor is spread onto this component whole, so these arrive here anyway —
|
|
22
|
-
* naming them is what keeps them off the DOM node, where React would warn about an
|
|
23
|
-
* unknown attribute, and lets the spinner agree with the validator instead of offering
|
|
24
|
-
* steps the form is about to refuse.
|
|
25
|
-
*/
|
|
26
|
-
min_value?: number;
|
|
27
|
-
max_value?: number;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/** A whole number as typed: an optional sign and digits. */
|
|
31
|
-
const WHOLE_NUMBER = /^[-+]?\d+$/;
|
|
32
|
-
/** A decimal number as typed: an optional sign, digits with a point, and an exponent. */
|
|
33
|
-
const DECIMAL_NUMBER = /^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$/;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* What a typed text is: the number it writes, or - when it writes none - the text as typed. A field of a
|
|
37
|
-
* number type is typed freely (David's review of qorus#646): a template (`$local:x`) or an expression
|
|
38
|
-
* (`@qty * 2`) is taken up by the field around it, and anything else is kept as typed for the form to flag
|
|
39
|
-
* as not a number. `parseInt` cut `12abc` to 12 without a word.
|
|
40
|
-
*/
|
|
41
|
-
export const typedNumber = (text: string, type: 'int' | 'float'): number | string => {
|
|
42
|
-
const trimmed = text.trim();
|
|
43
|
-
return (type === 'int' ? WHOLE_NUMBER : DECIMAL_NUMBER).test(trimmed) ? Number(trimmed) : text;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const NumberFormField = ({
|
|
47
|
-
onChange,
|
|
48
|
-
autoFocus,
|
|
49
|
-
type = 'int',
|
|
50
|
-
value,
|
|
51
|
-
templates,
|
|
52
|
-
min_value,
|
|
53
|
-
max_value,
|
|
54
|
-
...rest
|
|
55
|
-
}: INumberFormFieldProps) => {
|
|
56
|
-
// What is shown is what was typed; what the form gets is the number it writes, or the text when it writes
|
|
57
|
-
// none. Showing the number instead dropped a decimal point mid-typing: `10.` is 10, and `10.9` became `109`.
|
|
58
|
-
const [text, setText] = useState<string>(value === undefined || value === null ? '' : String(value));
|
|
59
|
-
const localValue = text === '' ? '' : typedNumber(text, type);
|
|
60
|
-
// The parent's echo of an emit still in flight is not a change: copying it
|
|
61
|
-
// over the local value lost what was typed since. See `EmittedValues`.
|
|
62
|
-
const emitted = useEmittedValues<number | string | undefined>();
|
|
63
|
-
|
|
64
|
-
useEffect(() => {
|
|
65
|
-
if (emitted.isEcho(value)) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
if (value !== localValue) {
|
|
69
|
-
setText(value === undefined || value === null ? '' : String(value));
|
|
70
|
-
}
|
|
71
|
-
}, [value]);
|
|
72
|
-
|
|
73
|
-
useDebounce(
|
|
74
|
-
() => {
|
|
75
|
-
if (localValue !== value) {
|
|
76
|
-
emitted.record(localValue);
|
|
77
|
-
onChange?.(localValue);
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
100,
|
|
81
|
-
[localValue, onChange]
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
const handleChange = useCallback((rawValue: number | string): void => {
|
|
85
|
-
setText(String(rawValue));
|
|
86
|
-
}, []);
|
|
87
|
-
|
|
88
|
-
const handleInputChange = useCallback(
|
|
89
|
-
(event: ChangeEvent<HTMLInputElement>): void => {
|
|
90
|
-
handleChange(event.target.value);
|
|
91
|
-
},
|
|
92
|
-
[handleChange]
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
const handleResetClick = useCallback((): void => {
|
|
96
|
-
setText('0');
|
|
97
|
-
emitted.record(0);
|
|
98
|
-
onChange?.(0);
|
|
99
|
-
}, [onChange]);
|
|
100
|
-
|
|
101
|
-
const focusRules = useMemo(
|
|
102
|
-
() =>
|
|
103
|
-
autoFocus
|
|
104
|
-
? {
|
|
105
|
-
type: 'auto' as const,
|
|
106
|
-
viewportOnly: true,
|
|
107
|
-
}
|
|
108
|
-
: undefined,
|
|
109
|
-
[autoFocus]
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
const handleItemSelect = useCallback((item) => setText(String(item.value)), []);
|
|
113
|
-
|
|
114
|
-
// The schema's bounds are the form's to check (a text input has no min or max); they are named in the
|
|
115
|
-
// props only to keep them off the DOM node.
|
|
116
|
-
void min_value;
|
|
117
|
-
void max_value;
|
|
118
|
-
|
|
119
|
-
// IDE `NumberField` parity: with templates the input is wrapped in a
|
|
120
|
-
// focus-opened dropdown of the template values.
|
|
121
|
-
if (templates?.items) {
|
|
122
|
-
return (
|
|
123
|
-
<ReqoreDropdown<IReqoreInputProps>
|
|
124
|
-
{...(rest as any)}
|
|
125
|
-
component={ReqoreInput}
|
|
126
|
-
fluid
|
|
127
|
-
icon='MoneyDollarCircleLine'
|
|
128
|
-
items={templates?.items}
|
|
129
|
-
filterable
|
|
130
|
-
value={text}
|
|
131
|
-
onItemSelect={handleItemSelect}
|
|
132
|
-
onChange={handleInputChange}
|
|
133
|
-
// typed freely: a number input drops what is not part of a number, so a template or an expression
|
|
134
|
-
// could not be typed; the keyboard is still a numeric one
|
|
135
|
-
type='text'
|
|
136
|
-
inputMode={type === 'int' ? 'numeric' : 'decimal'}
|
|
137
|
-
onClearClick={handleResetClick}
|
|
138
|
-
focusRules={focusRules}
|
|
139
|
-
{...TemplatesListProps}
|
|
140
|
-
/>
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return (
|
|
145
|
-
<ReqoreInput
|
|
146
|
-
fluid
|
|
147
|
-
icon='MoneyDollarCircleLine'
|
|
148
|
-
value={text}
|
|
149
|
-
onChange={handleInputChange}
|
|
150
|
-
// typed freely, on a numeric keyboard (see above)
|
|
151
|
-
type='text'
|
|
152
|
-
inputMode={type === 'int' ? 'numeric' : 'decimal'}
|
|
153
|
-
onClearClick={handleResetClick}
|
|
154
|
-
focusRules={focusRules}
|
|
155
|
-
{...rest}
|
|
156
|
-
/>
|
|
157
|
-
);
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
export default NumberFormField;
|