@qoretechnologies/reqraft 0.10.64 → 0.10.65-pr.137.g62fcecc
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/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 +25 -5
- package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
- package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
- package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
- 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 +35 -17
- package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
- package/dist/components/dpqlEditor/types.d.ts +54 -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 +207 -97
- 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 +58 -10
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +542 -112
- 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 +21 -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 +20 -10
- package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
- package/dist/components/form/engine/compactRowStyles.js +36 -30
- 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 +64 -3
- package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
- package/dist/components/form/expressions/ExpressionField.js +459 -100
- 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 +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 +3 -1
- 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 +138 -78
- 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/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 +40 -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 +49 -0
- package/dist/components/form/expressions/textOfExpression.js.map +1 -0
- package/dist/components/form/expressions/types.d.ts +7 -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 +26 -9
- 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 +616 -16
- package/dist/components/form/fields/color/Color.js.map +1 -1
- package/dist/components/form/fields/emittedValues.d.ts +34 -3
- package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
- package/dist/components/form/fields/emittedValues.js +24 -1
- package/dist/components/form/fields/emittedValues.js.map +1 -1
- package/dist/components/form/fields/file/File.d.ts +1 -1
- package/dist/components/form/fields/file/File.d.ts.map +1 -1
- package/dist/components/form/fields/file/File.js +4 -2
- package/dist/components/form/fields/file/File.js.map +1 -1
- package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
- package/dist/components/form/fields/long-string/LongString.js +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 +188 -82
- 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 +11 -5
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
- package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
- 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 +102 -1
- package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
- package/dist/components/form/fields/template/TemplateField.js +572 -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 +9 -11
- package/dist/components/form/fields/template/TemplateText.js.map +1 -1
- 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 +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 +16 -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 +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 +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 +164 -180
- 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 +68 -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/typedReferences.d.ts +21 -0
- package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
- package/dist/components/smartEditor/typedReferences.js +82 -0
- package/dist/components/smartEditor/typedReferences.js.map +1 -0
- package/dist/components/smartEditor/types.d.ts +33 -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 +33 -7
- package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
- package/dist/components/smartEditor/useLspHover.js +279 -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/supportTicket/AttachmentChips.d.ts.map +1 -1
- package/dist/components/supportTicket/AttachmentChips.js +15 -5
- package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
- package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
- package/dist/components/supportTicket/ReferencePicker.js +27 -6
- package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
- package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
- package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
- package/dist/components/supportTicket/TicketHeader.js +20 -2
- package/dist/components/supportTicket/TicketHeader.js.map +1 -1
- package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
- package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
- package/dist/components/ticketReferences/TicketReferences.js +9 -4
- package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
- package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
- package/dist/components/ticketThread/TicketThread.js +38 -13
- package/dist/components/ticketThread/TicketThread.js.map +1 -1
- package/dist/helpers/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/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/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.js +5 -2
- package/dist/helpers/templateText.js.map +1 -1
- package/dist/helpers/templates.d.ts +41 -14
- package/dist/helpers/templates.d.ts.map +1 -1
- package/dist/helpers/templates.js +152 -9
- 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/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/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 -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
package/.claude/CLAUDE.md
DELETED
|
@@ -1,317 +0,0 @@
|
|
|
1
|
-
@~/Projects/instruction-files/CLAUDE.md
|
|
2
|
-
@~/Projects/instruction-files/stacks/frontend/FRONTEND.md
|
|
3
|
-
|
|
4
|
-
# ReQraft (toolkit-react) — Claude entry point
|
|
5
|
-
|
|
6
|
-
## Shared Qore rules (READ FIRST)
|
|
7
|
-
|
|
8
|
-
The two `@`-imports above load the shared rules from the **instruction-files**
|
|
9
|
-
repo: the org-wide baseline (`CLAUDE.md`) and the frontend ruleset
|
|
10
|
-
(`stacks/frontend/FRONTEND.md`) — git safety, commit conventions, CI
|
|
11
|
-
monitoring, `/audit`, the Reqore-first rule, the Storybook + Qlip visual-change
|
|
12
|
-
flow, story descriptions, and more. Those files point on to
|
|
13
|
-
`stacks/frontend/BRAND_DESIGN.md` for brand / UI-design decisions (read it
|
|
14
|
-
before building any visual surface). **Everything below this section is
|
|
15
|
-
specific to ReQraft (toolkit-react).**
|
|
16
|
-
|
|
17
|
-
**If the imports above did not load** — you don't see the shared rules because
|
|
18
|
-
this repo is cloned somewhere other than `~/Projects/instruction-files` — find
|
|
19
|
-
the shared repo before doing any frontend work:
|
|
20
|
-
|
|
21
|
-
1. Check for a gitignored **`.instruction-files-path`** file at this repo's
|
|
22
|
-
root. If it exists, read the path `P` from it, then read `P/CLAUDE.md` and
|
|
23
|
-
`P/stacks/frontend/FRONTEND.md` (+ `P/stacks/frontend/BRAND_DESIGN.md` for
|
|
24
|
-
UI work) and follow them.
|
|
25
|
-
2. Otherwise locate the `instruction-files` repo on disk (try
|
|
26
|
-
`~/Projects/instruction-files`, then your other project roots). If found at
|
|
27
|
-
`P`, write `P` into `.instruction-files-path` (create it — it's gitignored)
|
|
28
|
-
so future sessions skip the search, then read the files above.
|
|
29
|
-
3. If it isn't cloned anywhere, **STOP and ask the user to clone it**:
|
|
30
|
-
`git clone git@github.com:qoretechnologies/instruction-files.git ~/Projects/instruction-files`
|
|
31
|
-
Do not proceed with frontend work until the shared rules are loaded.
|
|
32
|
-
|
|
33
|
-
# ReQraft (toolkit-react) — project-specific rules
|
|
34
|
-
|
|
35
|
-
## Project Overview
|
|
36
|
-
|
|
37
|
-
ReQraft (`@qoretechnologies/reqraft`) is a **React hooks and components toolkit** for Qore Technologies' products. It sits on top of the [ReQore](https://github.com/qoretechnologies/reqore) component library and provides higher-level primitives: data fetching, WebSocket management, user/storage state, and shared form fields.
|
|
38
|
-
|
|
39
|
-
**Key Facts:**
|
|
40
|
-
|
|
41
|
-
- **Package name:** `@qoretechnologies/reqraft`
|
|
42
|
-
- **Framework:** React 18 + TypeScript (strict mode)
|
|
43
|
-
- **Build:** TypeScript compilation to `/dist` via `tsconfig.prod.json`; exports `.js` + `.d.ts`
|
|
44
|
-
- **Styling:** styled-components (inherited from ReQore); no CSS modules
|
|
45
|
-
- **State Management:** zustand (stores) + React Context (`use-context-selector`)
|
|
46
|
-
- **Data Fetching:** `@tanstack/react-query` v4 (via `query()` util + `useFetch` hook)
|
|
47
|
-
- **Testing:** Vitest — a `unit` project (jsdom, tests in `__tests__/`) + a `storybook` project (every story run in a real Chromium browser via Playwright); React Testing Library for component assertions
|
|
48
|
-
- **Documentation:** Storybook (stories co-located in `src/` with `.stories.tsx` suffix)
|
|
49
|
-
- **Storybook port:** `6008` (not 6007 — that's reqore)
|
|
50
|
-
|
|
51
|
-
## Architecture Essentials
|
|
52
|
-
|
|
53
|
-
### Provider Stack (`src/providers/`)
|
|
54
|
-
|
|
55
|
-
The app must be wrapped in `ReqraftProvider` (or initialized via `initializeReqraft()`):
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
ReqraftContext.Provider (appName)
|
|
59
|
-
└── QueryClientProvider (react-query)
|
|
60
|
-
└── ReqraftFetchProvider (fetch context: get/post/put/del methods)
|
|
61
|
-
└── ReqraftUserProvider (loads currentUser + storage, handles waitForStorage)
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
- **`initializeReqraft(options)`** — call once at app boot to set `instance`, `instanceToken`, `instanceRbacDisabled`, and `unauthorizedRedirect`; returns `ReqraftProvider`
|
|
65
|
-
- **`waitForStorage`** (default `true`) — delays rendering children until user storage is loaded from the server
|
|
66
|
-
|
|
67
|
-
### Fetch System (`src/utils/fetch.ts`)
|
|
68
|
-
|
|
69
|
-
- **`fetchConfig`** — mutable global config: `instance`, `instanceToken`, `instanceRbacDisabled`, `unauthorizedRedirect`
|
|
70
|
-
- **`setupFetch()`** — sets `fetchConfig`; called by `initializeReqraft`
|
|
71
|
-
- **`query<T>(config)`** — core async fetch using react-query under the hood; caches GET responses for 5 minutes (`CACHE_EXPIRATION_TIME`); POST/DELETE bypass cache
|
|
72
|
-
- All requests go to `${instance}api/latest/${url}`
|
|
73
|
-
- 401 responses trigger `fetchConfig.unauthorizedRedirect` (default: `/?next=<current-path>`)
|
|
74
|
-
- Auth: token via `Authorization: Bearer` header, but production uses cookies (`credentials: 'include'`)
|
|
75
|
-
|
|
76
|
-
### WebSocket System (`src/utils/websocket.ts`)
|
|
77
|
-
|
|
78
|
-
Two classes work together:
|
|
79
|
-
|
|
80
|
-
- **`ReqraftWebSocketsManager`** (static) — connection pool keyed by URL; shared `WebSocket` instances for `pooled: true` (default)
|
|
81
|
-
- **`ReqraftWebSocket`** — wraps a pooled or dedicated socket; handles reconnect logic, heartbeat (`ping` every 3s), handler registry
|
|
82
|
-
|
|
83
|
-
**Pooling:** By default (`pooled` not set to `false`), sockets with the same URL share one underlying `WebSocket`. Use `pooled: false` for dedicated connections. The pool key becomes `${url}::${nanoid()}` for non-pooled.
|
|
84
|
-
|
|
85
|
-
**Reconnect:** Triggered on close (unless code `4999` = intentional). Immediate first try, then `reconnectInterval` (default 5s) up to `maxReconnectTries` (default 10).
|
|
86
|
-
|
|
87
|
-
**Heartbeat:** Sends `"ping"` every 3s; ignores `"pong"` in message handlers.
|
|
88
|
-
|
|
89
|
-
### `useReqraftWebSocket` Hook (`src/hooks/useWebSocket/useWebSocket.ts`)
|
|
90
|
-
|
|
91
|
-
Key options:
|
|
92
|
-
- `openOnMount` / `closeOnUnmount` — lifecycle management
|
|
93
|
-
- `useState` — accumulate messages in local state
|
|
94
|
-
- `includeSentMessagesInState` — also store sent messages
|
|
95
|
-
- `includeLogMessagesInState` — store connect/disconnect/reconnect log entries
|
|
96
|
-
- `onMessage` — raw message callback (pong filtered automatically)
|
|
97
|
-
|
|
98
|
-
Returns: `{ messages, status, open, close, send, clear, on, pause, resume, addMessage, removeMessage, socket }`
|
|
99
|
-
|
|
100
|
-
Status enum: `OPEN | CLOSED | CONNECTING | PAUSED`
|
|
101
|
-
|
|
102
|
-
### `useFetch` Hook (`src/hooks/useFetch/useFetch.tsx`)
|
|
103
|
-
|
|
104
|
-
- Wraps `query()` via `FetchContext`; supports GET/POST/PUT/DELETE
|
|
105
|
-
- `loadOnMount` — triggers load immediately on mount
|
|
106
|
-
- `load({ body?, mergeBodies? })` — imperative trigger; `mergeBodies` merges call-time body with hook-defined body
|
|
107
|
-
- Returns: `{ data, loading, load, error, errorData, response }`
|
|
108
|
-
|
|
109
|
-
### Storage System (`src/hooks/useStorage/useStorage.ts`)
|
|
110
|
-
|
|
111
|
-
- `useReqraftStorage<T>(path, defaultValue?, includeAppPrefix?)` — returns `[value, setter, remover]`
|
|
112
|
-
- Backed by `ReqraftStorageContext` → `StorageProvider` → persisted to server via user storage API
|
|
113
|
-
- `includeAppPrefix` namespaces the key under the current `appName` from context
|
|
114
|
-
- Storage loads from `currentUserStore` (user's `storage` field from `/users?action=current`)
|
|
115
|
-
|
|
116
|
-
### Current User Store (`src/stores/currentUser/currentUser.tsx`)
|
|
117
|
-
|
|
118
|
-
- Zustand store: `{ currentUser, loading, error, load, hasAnyPermission, updateStorage }`
|
|
119
|
-
- `load()` — fetches `/users?action=current` (no cache); rejects on error
|
|
120
|
-
- `hasAnyPermission(permissions[])` — checks against `currentUser.permissions`
|
|
121
|
-
- Loaded automatically by `ReqraftUserProvider` on mount
|
|
122
|
-
|
|
123
|
-
### Form Fields (`src/components/form/fields/`)
|
|
124
|
-
|
|
125
|
-
Shared form field components built on ReQore, exported from `src/components/form/index.tsx`:
|
|
126
|
-
|
|
127
|
-
| Component | Field Type |
|
|
128
|
-
|---------------|-----------------------------------|
|
|
129
|
-
| `Boolean` | Toggle/checkbox |
|
|
130
|
-
| `Color` | Color picker (`react-color`) |
|
|
131
|
-
| `Cron` | Cron expression editor |
|
|
132
|
-
| `File` | File upload (`react-dropzone`) |
|
|
133
|
-
| `LongString` | Multi-line text |
|
|
134
|
-
| `Markdown` | Markdown editor/preview |
|
|
135
|
-
| `Number` | Numeric input |
|
|
136
|
-
| `Object` | YAML/JSON object editor |
|
|
137
|
-
| `RadioGroup` | Radio group with optional images |
|
|
138
|
-
| `String` | Single-line text |
|
|
139
|
-
|
|
140
|
-
A generic `<Field>` component dispatches to the appropriate field by type.
|
|
141
|
-
|
|
142
|
-
### Menu Component (`src/components/menu/Menu.tsx`)
|
|
143
|
-
|
|
144
|
-
- `ReqraftMenu` — navigation menu built on ReQore components
|
|
145
|
-
- Types: `TReqraftMenu` (array), `TReqraftMenuItem`, `IReqraftMenuItem`, `IReqraftMenuProps`
|
|
146
|
-
|
|
147
|
-
### Log Component (`src/components/log/Log.tsx`)
|
|
148
|
-
|
|
149
|
-
- Displays streaming log messages; typically fed by `useReqraftWebSocket`
|
|
150
|
-
|
|
151
|
-
## Development Workflows
|
|
152
|
-
|
|
153
|
-
### Quick Start
|
|
154
|
-
|
|
155
|
-
```bash
|
|
156
|
-
yarn install
|
|
157
|
-
yarn storybook # Dev mode on http://localhost:6008
|
|
158
|
-
yarn test # Vitest unit tests (jsdom)
|
|
159
|
-
yarn test:watch # Vitest unit watch mode
|
|
160
|
-
yarn test:stories # Story / interaction tests in a real browser (+ Qlip capture)
|
|
161
|
-
yarn lint # ESLint check
|
|
162
|
-
yarn build # TypeScript compilation (tsconfig.prod.json)
|
|
163
|
-
yarn build:test # Type-check without emit
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### Pre-commit Checks
|
|
167
|
-
|
|
168
|
-
- `yarn precheck` runs: lint → test → build:test:prod
|
|
169
|
-
- `pre-push` hook enforces: `build:test:prod`, `lint`, `test`
|
|
170
|
-
- CI (`.github/workflows/tests.yml`) runs precheck, build and the full story suite for PRs into `develop` **and** for every push to `develop`. GitHub skips `pull_request` workflows while a PR has merge conflicts, so a conflicting PR gets no test runs until it is rebased or merged up
|
|
171
|
-
- Branch naming: always start with the issue number, e.g. `feature/49_pooled-connections`
|
|
172
|
-
|
|
173
|
-
### Versioning — every PR to `develop` MUST bump the version
|
|
174
|
-
|
|
175
|
-
`.github/workflows/beta_release.yml` runs on **every push to `develop`** and publishes to NPM using whatever `version` is in `package.json` at push time. A merge without a bump therefore tries to re-publish an already-published version and **fails** (NPM refuses to re-publish). This applies to **every** PR — features, fixes, chores, and docs-only changes alike. There is no exception.
|
|
176
|
-
|
|
177
|
-
- Bump the **patch** for an ordinary PR while in beta (pre-1.0) — e.g. `0.10.9` → `0.10.10`. Do NOT bump minor/major for ordinary feature/fix PRs.
|
|
178
|
-
- Bump **exactly once per PR**, not once per commit. If the branch has already bumped, leave it alone —
|
|
179
|
-
a second bump does not make the merge any more publishable, it just burns a version that never ships.
|
|
180
|
-
Check before you reach for it: `git diff $(git merge-base origin/develop HEAD) -- package.json`. A PR
|
|
181
|
-
that walked 0.10.36 → 0.10.46 one commit at a time is what this line exists to prevent (#95), and its
|
|
182
|
-
prereleases are stamped from `package.json`, so a base that moves every push hands consumers what look
|
|
183
|
-
like ten different release lines instead of successive previews of one.
|
|
184
|
-
- Bump **exactly once per PR**, not once per commit. If the branch has already bumped, leave it alone —
|
|
185
|
-
a second bump does not make the merge any more publishable, it just burns a version that never ships.
|
|
186
|
-
Check before you reach for it: `git diff $(git merge-base origin/develop HEAD) -- package.json`. A PR
|
|
187
|
-
that walked 0.10.36 → 0.10.46 one commit at a time is what this line exists to prevent (#95), and its
|
|
188
|
-
prereleases are stamped from `package.json`, so a base that moves every push hands consumers what look
|
|
189
|
-
like ten different release lines instead of successive previews of one.
|
|
190
|
-
- Bump in `package.json` only (no git tag): `npm version patch --no-git-tag-version`, and include the bump in the PR's commit.
|
|
191
|
-
- If another PR bumps to the same version before yours merges, rebase and bump again — the version at merge time must be strictly greater than the last published one.
|
|
192
|
-
|
|
193
|
-
### Testing Patterns
|
|
194
|
-
|
|
195
|
-
- Two Vitest projects (see `vitest.config.ts`): **unit** (jsdom; tests in `__tests__/`, mirroring `src/`) and **storybook** (every `*.stories.tsx` run in a real Chromium browser via Playwright). There is no Jest.
|
|
196
|
-
- Wrap unit tests with `ReqraftProvider` (or at minimum `QueryClientProvider`)
|
|
197
|
-
- Use `mock-socket` for WebSocket testing
|
|
198
|
-
- Run: `yarn test` (unit) · `yarn test:stories [file-substring]` (stories) · `yarn precheck` (lint + unit + `build:test:prod`)
|
|
199
|
-
|
|
200
|
-
### Storybook Stories & visual testing
|
|
201
|
-
|
|
202
|
-
- Stories are co-located alongside source: `src/hooks/useFetch/useFetch.stories.tsx`
|
|
203
|
-
- Storybook port: **6008**
|
|
204
|
-
- Story + interaction tests run on **Vitest browser mode** (Playwright/Chromium): `yarn test:stories [file-substring]`. Run `yarn install-playwright` once first.
|
|
205
|
-
- **Story network — mocks must follow the instance, and stories must not share connections.**
|
|
206
|
-
- Build every mock URL with `storyApiUrl(path)` / `storySocketUrl(path)` from
|
|
207
|
-
`src/stories/storyNetwork.ts`, never a hard-coded `https://hq.qoretechnologies.com:8092/…`.
|
|
208
|
-
Both mock layers match on host (storybook-addon-mock keys on `host + pathname`,
|
|
209
|
-
mock-socket on the URL minus its query), so a hard-coded host silently stops matching
|
|
210
|
-
when `REACT_APP_QORUS_INSTANCE` is overridden and the request goes to the real network.
|
|
211
|
-
- Requests components make on their own (FormEngine's `system/qorus-type-info`, the
|
|
212
|
-
expression catalogue `useExpressions` fetches whenever functions are allowed, the
|
|
213
|
-
reconnect probe `system/pid`) are mocked for every story via `GLOBAL_STORY_MOCK_DATA`
|
|
214
|
-
(`parameters.mockAddonConfigs.globalMockData`). Add new ones there, not per story file.
|
|
215
|
-
- A mock `response` must be an object, array or function — a bare number or string fails
|
|
216
|
-
the addon's validation and the entry is silently never matched (`TStoryMockResponse`
|
|
217
|
-
enforces this at compile time). The addon compares query-parameter *keys* only, so
|
|
218
|
-
`system?action=a&context=x` also answers `system?action=b&context=y`.
|
|
219
|
-
- `.storybook/preview.tsx` resets the shared LSP connections and the expression render
|
|
220
|
-
client before every story. Do not add per-file `ReqraftWebSocketsManager.closeAll()`
|
|
221
|
-
calls for LSP isolation.
|
|
222
|
-
- CI reaches the live hq instance with a valid token, so a story that leaks a real
|
|
223
|
-
request can pass in CI and hang locally. When a story passes in CI but times out on
|
|
224
|
-
your machine, look for an unmocked request before anything else.
|
|
225
|
-
- **Visual regression via Qlip** (not Chromatic): the story run captures snapshots through the `qlip` Vitest plugin. Upload is gated on `QLIP_UPLOAD_TOKEN` (`vitest.config.ts`), so **local runs capture but never upload** — PNGs land in `qlip/screenshots/<ts>/stories/auto/<StoryId>.png` (gitignored); read the PNG to verify a visual change. CI (`.github/workflows/tests.yml`) sets the token and uploads a build for dashboard review. The full visual-change flow + the `qlip` MCP review skill live in the imported `stacks/frontend/FRONTEND.md`.
|
|
226
|
-
|
|
227
|
-
## Code Patterns & Conventions
|
|
228
|
-
|
|
229
|
-
### Naming
|
|
230
|
-
|
|
231
|
-
- Enums: PascalCase (e.g., `ReqraftWebSocketStatus`)
|
|
232
|
-
- Hooks: `useReqraft*` prefix
|
|
233
|
-
- Providers: `Reqraft*Provider`
|
|
234
|
-
- Stores: `*Store` suffix
|
|
235
|
-
|
|
236
|
-
### Context Access
|
|
237
|
-
|
|
238
|
-
- Use `useContextSelector` (from `use-context-selector`) for fine-grained re-renders
|
|
239
|
-
- Use plain `useContext` only when consuming the full context is acceptable
|
|
240
|
-
|
|
241
|
-
### Adding a New Hook
|
|
242
|
-
|
|
243
|
-
1. Create `src/hooks/useMyHook/useMyHook.ts`
|
|
244
|
-
2. Add a story at `src/hooks/useMyHook/useMyHook.stories.tsx`
|
|
245
|
-
3. Export from `src/index.tsx`
|
|
246
|
-
|
|
247
|
-
### Adding a New Form Field
|
|
248
|
-
|
|
249
|
-
1. Create `src/components/form/fields/myfield/MyField.tsx`
|
|
250
|
-
2. Add a story at `src/components/form/fields/myfield/MyField.stories.tsx`
|
|
251
|
-
3. Register in `src/components/form/fields/Field.tsx` dispatch
|
|
252
|
-
4. Export from `src/components/form/index.tsx`
|
|
253
|
-
|
|
254
|
-
## Key Integration Points
|
|
255
|
-
|
|
256
|
-
### Fetch Auth Flow
|
|
257
|
-
|
|
258
|
-
1. `initializeReqraft({ instance, instanceToken })` sets `fetchConfig`
|
|
259
|
-
2. All `query()` calls prepend `${instance}api/latest/` and attach token if present
|
|
260
|
-
3. 401 → redirect via `unauthorizedRedirect` (configurable per app)
|
|
261
|
-
|
|
262
|
-
### WebSocket Auth
|
|
263
|
-
|
|
264
|
-
- Token appended as `?token=<instanceToken>` to the WS URL
|
|
265
|
-
- Override per-socket with `tokenOverride` option
|
|
266
|
-
|
|
267
|
-
### React Query Caching
|
|
268
|
-
|
|
269
|
-
- `ReqraftQueryClient` is a shared `QueryClient` instance (exported for reuse)
|
|
270
|
-
- GET requests cache for 5 minutes; failed responses are immediately invalidated
|
|
271
|
-
- Pass a custom `queryClient` to `query()` to use a different instance
|
|
272
|
-
|
|
273
|
-
## Common Pitfalls & Solutions
|
|
274
|
-
|
|
275
|
-
| Issue | Solution |
|
|
276
|
-
|---|---|
|
|
277
|
-
| Storage not loading | Ensure `ReqraftProvider` wraps the tree and `waitForStorage: true` (default) |
|
|
278
|
-
| WebSocket not reconnecting | Check close code — `4999` suppresses reconnect (intentional close) |
|
|
279
|
-
| Multiple sockets for same URL | Default is pooled; set `pooled: false` only when independent connections are needed |
|
|
280
|
-
| 401 loop | Verify `unauthorizedRedirect` is not pointing back to a protected route |
|
|
281
|
-
| `query()` returning stale data | Pass `cache: false`; POST/DELETE bypass cache automatically |
|
|
282
|
-
| Heartbeat noise in logs | Filter `ev.data === 'pong'` — already done inside `useReqraftWebSocket` |
|
|
283
|
-
| Storage path collisions | Use `includeAppPrefix: true` in `useReqraftStorage` to namespace per app |
|
|
284
|
-
| Story shows FormEngine's loading skeleton / "Connecting to language server…" forever | An unmocked request or a connection inherited from an earlier story — see "Story network" above |
|
|
285
|
-
| "No Preview — Sorry, but you either have no stories…" in a story failure | Not a registration failure: addon-vitest injects Storybook's hidden preview body into every test page, and a failed query's DOM dump prints it. Read the assertion above the dump |
|
|
286
|
-
| A story run stops reporting and never times out (no failure, no output) | The page's main thread is blocked, so the in-page 30s test timer cannot fire — usually a synchronous render loop inside `act()`. Find the story with `--reporter=verbose` (the last ✓ is the one before it), then give Chromium `launchOptions: { args: ['--remote-debugging-port=9333'] }` in `vitest.config.ts` locally, enable `Debugger` over CDP BEFORE the freeze, and `Debugger.pause` once `Runtime.evaluate` stops answering to get the stack. Revert the config afterwards |
|
|
287
|
-
| `yarn test:stories` hangs before any test runs (the port message is incidental) | Seen when the checkout path contains `+` — e.g. an auto-named `.claude/worktrees/fix+name` — while the same tree at a `+`-free path runs normally. Use a path without `+` |
|
|
288
|
-
|
|
289
|
-
## File Reference
|
|
290
|
-
|
|
291
|
-
| Path | Purpose |
|
|
292
|
-
|---|---|
|
|
293
|
-
| `src/index.tsx` | Main export barrel |
|
|
294
|
-
| `src/providers/ReqraftProvider.tsx` | Root provider + `initializeReqraft` |
|
|
295
|
-
| `src/providers/FetchProvider.tsx` | Exposes `get/post/put/del` via FetchContext |
|
|
296
|
-
| `src/providers/StorageProvider.tsx` | Loads user storage; wraps children |
|
|
297
|
-
| `src/utils/fetch.ts` | Core fetch + caching via react-query |
|
|
298
|
-
| `src/utils/websocket.ts` | `ReqraftWebSocket` + `ReqraftWebSocketsManager` |
|
|
299
|
-
| `src/utils/datetime.ts` | Datetime helpers (e.g., `getCurrentTimeWithMilliseconds`) |
|
|
300
|
-
| `src/hooks/useFetch/` | `useFetch` hook |
|
|
301
|
-
| `src/hooks/useWebSocket/` | `useReqraftWebSocket` hook |
|
|
302
|
-
| `src/hooks/useStorage/` | `useReqraftStorage` hook |
|
|
303
|
-
| `src/stores/currentUser/` | Zustand store for the authenticated user |
|
|
304
|
-
| `src/contexts/ReqraftContext.tsx` | App-level context (`appName`) |
|
|
305
|
-
| `src/contexts/FetchContext.tsx` | HTTP method context |
|
|
306
|
-
| `src/contexts/StorageContext.tsx` | User storage context |
|
|
307
|
-
| `src/components/form/` | Form field components |
|
|
308
|
-
| `src/components/log/` | Log display component |
|
|
309
|
-
| `src/components/menu/` | Navigation menu component |
|
|
310
|
-
| `src/tracking/` | First-party tracking, consent and A/B testing (`core/` no DOM, `browser/`, `react/`, and `ui/`: the A/B test card and overlay on Reqore); how-to in `design/TRACKING.md` |
|
|
311
|
-
| `src/types/` | Shared TypeScript types |
|
|
312
|
-
| `__tests__/` | Vitest unit tests (jsdom) |
|
|
313
|
-
|
|
314
|
-
## Other
|
|
315
|
-
|
|
316
|
-
- This library is a **peer-dependency consumer** of ReQore — do not copy ReQore internals here; import from `@qoretechnologies/reqore` instead
|
|
317
|
-
- `yarn update-reqore` updates ReQore to the latest beta
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# TASK — export the bare `ExpressionBuilder` from the form barrel
|
|
2
|
-
|
|
3
|
-
**Status:** committed `0eea9e7`, pushed (branch `feature/119_export-expression-builder`), PR open — awaiting CI + review
|
|
4
|
-
|
|
5
|
-
Issue: [toolkit-react#119](https://github.com/qoretechnologies/toolkit-react/issues/119).
|
|
6
|
-
Design: [`design/IDE_INTEGRATION.md`](../design/IDE_INTEGRATION.md) (the shell-at-root / bare-builder-nested rule;
|
|
7
|
-
revised note added in this task).
|
|
8
|
-
|
|
9
|
-
## Why
|
|
10
|
-
|
|
11
|
-
The library's own `TemplateField` renders the `ExpressionField` shell for a root field (FormEngine sets
|
|
12
|
-
`allowTextExpressions`) and the bare `ExpressionBuilder` for nested operands — the June 11 "top-level
|
|
13
|
-
re-wrap" decision in `FIELD_STACK_REPORT.md`. The barrel exported the shell but not the builder, so a host
|
|
14
|
-
mirroring that rule (qorus-ide's `template.tsx`) had to deep-import `dist/components/form/expressions/builder`.
|
|
15
|
-
|
|
16
|
-
## Surface area
|
|
17
|
-
|
|
18
|
-
| File | Change |
|
|
19
|
-
|---|---|
|
|
20
|
-
| `src/components/form/index.tsx` | `export { ExpressionBuilder }` + `export type { IExpressionBuilderProps }` next to the shell |
|
|
21
|
-
| `__tests__/formBarrelExports.test.ts` | asserts both come from the barrel — fails if the export is removed |
|
|
22
|
-
| `design/IDE_INTEGRATION.md` | one-line revision under "the shell is the host's component" |
|
|
23
|
-
| `package.json` | `0.10.52` → `0.10.53` (single bump) |
|
|
24
|
-
|
|
25
|
-
## Phases
|
|
26
|
-
|
|
27
|
-
- [x] export + type export
|
|
28
|
-
- [x] unit test through `yarn test`
|
|
29
|
-
- [x] `build:test:prod` green
|
|
30
|
-
- [ ] `yarn precheck` (lint + unit + prod tsc)
|
|
31
|
-
- [ ] **STOP — user verifies before commit** (no visual surface: nothing to click; the test is the proof)
|
|
32
|
-
- [ ] `/audit`, commit, push, PR, CI, qlip (expect 0 changed snapshots)
|
|
33
|
-
|
|
34
|
-
## Not this task
|
|
35
|
-
|
|
36
|
-
toolkit-react#120 was filed alongside this and closed as invalid: both operand mounts have forwarded
|
|
37
|
-
`expressions_url` since the port (5905e52); the symptom was qorus-ide's raw-catalogue override on its own
|
|
38
|
-
legacy builder, fixed there.
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
# TASK — Expression Builder verbatim re-port
|
|
2
|
-
|
|
3
|
-
**Status:** Phases A + B + C DONE & verified (uncommitted), including the
|
|
4
|
-
follow-ups (shell-chrome polish, the `validations` `'expression'` case — both
|
|
5
|
-
ticked in Phase C below; the `'expression'` validator gained jest coverage
|
|
6
|
-
2026-06-11). The ported, IDE-matching builder is live in `ExpressionField` /
|
|
7
|
-
FormEngine. Phase D (server render-expression) + E (IDE consumes reqraft) are
|
|
8
|
-
out of scope.
|
|
9
|
-
Design:
|
|
10
|
-
`design/EXPRESSION_BUILDER_REPORT_STRATEGY.md`. Supersedes the from-scratch
|
|
11
|
-
visual builder in `.tasks/FORM_ENGINE_EXPRESSIONS.md` (plumbing retained).
|
|
12
|
-
|
|
13
|
-
Method (Filip): copy IDE components **and their tests** verbatim → get them
|
|
14
|
-
1:1 + green → then improve. Compare to qorus-ide Storybook **:6007** between
|
|
15
|
-
phases. **No commits until user verifies.**
|
|
16
|
-
|
|
17
|
-
## Surface area
|
|
18
|
-
|
|
19
|
-
| Area | reqraft path | IDE source |
|
|
20
|
-
|---|---|---|
|
|
21
|
-
| Type-compat helpers | `src/helpers/expressions.ts` (NEW) | `qorus-ide/src/helpers/expressions.ts` |
|
|
22
|
-
| `areQorusTypesCompatible` | `src/helpers/…` | `qorus-ide/src/helpers/functions.tsx` |
|
|
23
|
-
| `validateField` export | `src/helpers/validations.ts` | (export the existing `_validateField`) |
|
|
24
|
-
| Select flat/intent | `src/components/form/fields/select/Select.tsx` | `qorus-ide` Field/select |
|
|
25
|
-
| TemplateField expr path | `src/components/form/fields/template/TemplateField.tsx` | `qorus-ide` Field/template |
|
|
26
|
-
| ExpressionBuilder | `src/components/form/expressions/builder/**` (NEW) | `qorus-ide/src/components/ExpressionBuilder/**` |
|
|
27
|
-
| Builder tests | `…/builder/*.stories.tsx` | `qorus-ide/src/stories/Components/ExpressionBuilder.stories.tsx` |
|
|
28
|
-
|
|
29
|
-
## Phase A — Field-stack parity (leaf) — DONE & verified (2026-06-10)
|
|
30
|
-
|
|
31
|
-
- [x] `src/helpers/expressions.ts` — verbatim port of getArgumentType,
|
|
32
|
-
argumentMatchesType (from IDE expressions.ts) + areQorusTypesCompatible
|
|
33
|
-
(from IDE functions.tsx); imports adapted (getQorusTypes/defaultQorusTypes
|
|
34
|
-
from reqraft `useQorusTypes`). Typechecks.
|
|
35
|
-
- [x] `validateField` — already exported from validations.ts (no change needed)
|
|
36
|
-
- [x] `SelectFormField` — `flat` + `intent` now forwarded (additive; defaults
|
|
37
|
-
preserve current look). This is the fix Filip named: "make it flat and
|
|
38
|
-
small and it looks the same." The chip can now go borderless.
|
|
39
|
-
- [x] **GATE:** jest 267/267, full storybook **188/189** (pre-existing flaky
|
|
40
|
-
only). No regression from the shared Select change.
|
|
41
|
-
- Note: `TemplateField`'s `allowFunctions`/`isFunction` mechanism moved to
|
|
42
|
-
Phase B — it's circularly dependent with the ExpressionBuilder (TemplateField
|
|
43
|
-
renders the builder; the builder renders TemplateField), so they land
|
|
44
|
-
together. Phase B builds in a NEW dir so the current build stays green.
|
|
45
|
-
|
|
46
|
-
## Phase B — Verbatim ExpressionBuilder + tests — DONE & verified (2026-06-10)
|
|
47
|
-
|
|
48
|
-
- [x] 9 IDE files copied verbatim into `src/components/form/expressions/builder/`
|
|
49
|
-
(index.tsx ~1260 LOC + item/argumentWrapper/argumentLabel/argumentDetail/
|
|
50
|
-
argumentInfo + the two confirm modals + renderTemplate). JSX/markup/props
|
|
51
|
-
preserved; only imports/hooks/types/seams changed.
|
|
52
|
-
- [x] Seams: AiAssistanceAction **removed**; `renderTemplate` rewritten to use
|
|
53
|
-
reqraft `useRenderExpression` (client-side, no Creator-WS);
|
|
54
|
-
`useRegisterHintView` **stubbed**.
|
|
55
|
-
- [x] `TemplateField` — additive `allowFunctions`/`isFunction`; when set, renders
|
|
56
|
-
the ported builder. Absent → unchanged (field migration safe).
|
|
57
|
-
- [x] Adaptations: `Select` `defaultItems`→`items`; `Select.onChange` single-arg;
|
|
58
|
-
catalogue passed as `override` (replaces fetch) **and threaded through the
|
|
59
|
-
group recursion** so offline/CI is deterministic (badge = mock count, not
|
|
60
|
-
the live 121). `auto`/`Select`/`TemplateField` import aliases.
|
|
61
|
-
- [x] Ported `ExpressionBuilder.stories.tsx` (the IDE play tests) — offline via
|
|
62
|
-
`mockExpressions`. **10/10 pass.**
|
|
63
|
-
- [x] **GATE:** renders **1:1 vs :6007** (verified by screenshot — chips, underline
|
|
64
|
-
fields, operator words, group nesting, type-pickers, collapse/Explain all
|
|
65
|
-
match). eslint clean, jest 267/267, full suite **198/199** (pre-existing
|
|
66
|
-
flaky only). Old from-scratch builder left intact; build green.
|
|
67
|
-
- Open follow-ups (Phase C / refinements): wire into `ExpressionField`;
|
|
68
|
-
`validations` has no `'expression'` type case yet (per-expression validity
|
|
69
|
-
tag always "valid"); `useRenderExpression` is the client-side approximation.
|
|
70
|
-
|
|
71
|
-
## Phase C — Re-wrap reqraft features — DONE & verified (2026-06-10)
|
|
72
|
-
|
|
73
|
-
- [x] `ExpressionField` Visual mode now renders the **ported** builder
|
|
74
|
-
(`./builder`); Text = `DpqlEditor`; Explain/Preview from the shell.
|
|
75
|
-
Adapted: `onChange (value, remove?)`, `returnType` cast, and
|
|
76
|
-
**`localTemplates={{ items: [] }}`** (the builder's `filterTemplatesFunc`
|
|
77
|
-
does `templates.items.filter(...)` — undefined templates crashed it;
|
|
78
|
-
caught via the error boundary during verify and fixed).
|
|
79
|
-
- [x] From-scratch `ExpressionBuilder.tsx` + its stories **retired** (deleted);
|
|
80
|
-
no remaining references.
|
|
81
|
-
- [x] **GATE:** FormEngine field → ExpressionField → ported builder verified
|
|
82
|
-
(ViaFormEngine + the toggle path). jest 267/267, full suite **193/193**
|
|
83
|
-
(the flaky `OnValidityChange` even passed). HEAD unchanged.
|
|
84
|
-
- [x] **Shell cleanup (done 2026-06-10):** Visual mode now renders ONLY the
|
|
85
|
-
ported builder (it has its own Explain). The shell's Explain + Preview +
|
|
86
|
-
Explanation are scoped to **Text mode** (where the DpqlEditor has none).
|
|
87
|
-
ExpressionField play tests updated to assert the builder rendered.
|
|
88
|
-
- [x] **Danger-border fix (done 2026-06-10):** three parts —
|
|
89
|
-
(1) ported the IDE's `validations` **`'expression'` case** (reads the
|
|
90
|
-
catalogue from `field.expressions`); (2) `FormEngine.isOptionValid` now
|
|
91
|
-
passes `isFunction` from the field value's `is_expression` (the per-field
|
|
92
|
-
red intent used the base-type check); (3) `ExpressionField` defaults
|
|
93
|
-
`returnType` to `'auto'` so a valid expression card renders `muted` not
|
|
94
|
-
`danger`. Verified: the FormEngine expression field is no longer red.
|
|
95
|
-
eslint clean, jest 267/267, full suite 192/193 (pre-existing flaky only).
|
|
96
|
-
- [x] **Oversized chips/pickers fix (2026-06-10):** root cause — the IDE's
|
|
97
|
-
`Select` spreads `{...rest}` into its rendered ReqoreButton/Dropdown/Tag,
|
|
98
|
-
so the builder's verbatim `size='tiny'` reaches ReQore; reqraft's
|
|
99
|
-
`SelectFormField` accepted `size` in its interface but **never forwarded
|
|
100
|
-
it** (same class of bug as `flat`/`intent`). Forwarded `size` to all four
|
|
101
|
-
render branches (bound as `componentSize` — plain `size` would shadow
|
|
102
|
-
lodash's `size(items)` badge count). Chips now tiny, type pickers
|
|
103
|
-
compact, operand rows no longer wrap — density matches the IDE.
|
|
104
|
-
jest 267/267, full suite 192/193 (pre-existing flaky only).
|
|
105
|
-
- Known seam: reqraft's `SelectFormField` still doesn't rest-spread like the
|
|
106
|
-
IDE's — `flat`/`intent`/`size` are forwarded explicitly; any other
|
|
107
|
-
pass-through prop the verbatim IDE markup relies on needs the same
|
|
108
|
-
treatment if a gap shows up.
|
|
109
|
-
- [x] **Type-picker parity (2026-06-10):** `AutoFormField` now matches the
|
|
110
|
-
IDE's AutoField — unresolved type shows **`auto`** as the selected picker
|
|
111
|
-
label (not a "Select a type" placeholder; `auto` is not a pickable item
|
|
112
|
-
so the badge count stays identical to the IDE's 9/14), and the hint is
|
|
113
|
-
the IDE's orange minimal `ReqoreTag` **"Please select data type"**
|
|
114
|
-
(was a grey info tag). The 3 AutoFormField story assertions updated.
|
|
115
|
-
- [x] **AI-assist slot (2026-06-10):** the IDE's purple hover button on each
|
|
116
|
-
expression card is `AiAssistanceAction` → `AiButton` (sends the selected
|
|
117
|
-
expression's context to the IDE's AI chat). It was one of the three
|
|
118
|
-
deliberate port seams — `AiButton` depends on IDE-only infrastructure
|
|
119
|
-
(AI context, SystemStore, QonsoleStore, Creator-WS) that reqraft doesn't
|
|
120
|
-
have. Added **`extraActions?: IReqorePanelAction[]`** to the ported
|
|
121
|
-
builder (threaded through the group recursion, prepended exactly where
|
|
122
|
-
the IDE renders the AI action) so the IDE injects its AiButton at
|
|
123
|
-
Phase E. jest 267/267, full suite 192/193 (pre-existing flaky only).
|
|
124
|
-
- [x] **`extraActions` upgraded to a factory (2026-06-10):** a static array
|
|
125
|
-
could not reproduce the IDE's button — the IDE builds
|
|
126
|
-
`AiAssistanceAction({ context: selectedExpression })` *inline per card*.
|
|
127
|
-
The seam now also accepts
|
|
128
|
-
`(ctx: { selectedExpression?, value? }) => IReqorePanelAction[]`,
|
|
129
|
-
resolved inside each `Expression` with that card's selected schema —
|
|
130
|
-
so Phase E restores the AI button 1:1, per-card context included.
|
|
131
|
-
Proven by the new `WithInjectedExtraActions` story (hover → injected
|
|
132
|
-
action present; 11/11 ported play tests). Full suite **194/194**
|
|
133
|
-
(even the flaky `OnValidityChange` passed), jest 267/267.
|
|
134
|
-
- Ops note: the Storybook dev server reliably wedges on HMR after edits to
|
|
135
|
-
these files (symptom: play tests fail in ~2ms with
|
|
136
|
-
`ReferenceError: __test is not defined`, preview stuck on spinner).
|
|
137
|
-
A clean restart fixes it every time — restart before trusting failures.
|
|
138
|
-
|
|
139
|
-
## Phase D — Server (tracked, not in reqraft)
|
|
140
|
-
|
|
141
|
-
- [x] `render-expression` over LSP/REST; swap `useRenderExpression` —
|
|
142
|
-
picked up 2026-06-10 in `.tasks/RENDER_EXPRESSION_LSP.md` (branch
|
|
143
|
-
`feature/render-expression-lsp`): new LSP `dpql/renderExpression`
|
|
144
|
-
(server code written, deploy pending) + server-first hook with
|
|
145
|
-
client-side fallback. Design: `design/RENDER_EXPRESSION_TRANSPORT.md`.
|
|
146
|
-
|
|
147
|
-
## Phase E — Dedupe (not now)
|
|
148
|
-
|
|
149
|
-
- [ ] IDE consumes reqraft's builder
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# TASK — ExpressionField seams: carry `extraActions` through the shell and into operand rows
|
|
2
|
-
|
|
3
|
-
**Status:** committed `f5fb2ee`, pushed to `origin/bugfix/116_expression-field-seams` (user-verified in the browser 2026-09-07) — no PR yet; CI here runs on pull requests only
|
|
4
|
-
|
|
5
|
-
Issue: [toolkit-react#116](https://github.com/qoretechnologies/toolkit-react/issues/116).
|
|
6
|
-
Design: [`design/IDE_INTEGRATION.md`](../design/IDE_INTEGRATION.md) (seam table; revised 2026-09-07 in this task).
|
|
7
|
-
Consumer that surfaced it: qorus-ide [PR #275](https://github.com/qoretechnologies/qorus-ide/pull/275) — the IDE swapped its
|
|
8
|
-
legacy builder for `ExpressionField` and its AI-assist button vanished from every expression card.
|
|
9
|
-
|
|
10
|
-
## Why
|
|
11
|
-
|
|
12
|
-
`IDE_INTEGRATION.md` names `extraActions` as the seam the IDE re-attaches its AI button through. The
|
|
13
|
-
seam existed on `ExpressionBuilder`, but (a) hosts mount the `ExpressionField` shell, which neither
|
|
14
|
-
declared nor forwarded it, and (b) the builder's two operand `TemplateField` mounts passed nothing
|
|
15
|
-
host-injected, so an operand that is itself an expression lost it again. The group recursion
|
|
16
|
-
(`&&` / `||`) already forwarded it, which is why the existing builder story stayed green while the
|
|
17
|
-
IDE regressed. Not a gap: `expressionsUrl` — the shell resolves it in its own `useExpressions` and
|
|
18
|
-
hands the merged catalogue down (an earlier draft of #116 claimed otherwise; corrected).
|
|
19
|
-
|
|
20
|
-
## Surface area
|
|
21
|
-
|
|
22
|
-
| File | Change |
|
|
23
|
-
|---|---|
|
|
24
|
-
| `src/components/form/expressions/ExpressionField.tsx` | declare `extraActions?: IExpressionBuilderProps['extraActions']`, forward to the builder mount |
|
|
25
|
-
| `src/components/form/fields/template/TemplateField.tsx` | declare + destructure `extraActions` (so it never rides `rest` into a leaf input); forward to both editors expression mode renders |
|
|
26
|
-
| `src/components/form/expressions/builder/index.tsx` | pass `extraActions` into both operand `TemplateField` mounts; rest-argument mount takes the catalogue's declared `ui_type` when the argument is empty (qlip #189 rejection) |
|
|
27
|
-
| `src/components/form/fields/select/SelectCollection.tsx` | `className='reqraft-select-dialog'` on the picker modal — a library-owned hook for hosts' tests |
|
|
28
|
-
| `src/components/form/expressions/ExpressionField.stories.tsx` | `NestedOperandKeepsInjectedActions` — shell hop + operand hop, assertion scoped to the nested card; the injected action is the IDE's `AiButton` presentation verbatim (`ReqoreButton` + the resolved `SynthColorEffect`), click stubbed |
|
|
29
|
-
| `design/IDE_INTEGRATION.md` | AI-assist row revised; dead `BRANCH_REMEDIATION.md` reference removed; "the shell is the host's component" note |
|
|
30
|
-
| `package.json` | `0.10.50` → `0.10.51` (single bump from the current `develop` tip `4860e6e`, after #114 merged and published 0.10.50; CI's PR job accepts exactly one patch over the base, so #115 and #117, both still at 0.10.50, must re-bump before they can merge) |
|
|
31
|
-
|
|
32
|
-
## Phases
|
|
33
|
-
|
|
34
|
-
### 1 — seams
|
|
35
|
-
- [x] `ExpressionField`: declare + forward
|
|
36
|
-
- [x] `TemplateField`: declare, destructure, forward to `<ExpressionField>` and `<ExpressionBuilder>`
|
|
37
|
-
- [x] builder: both operand mounts
|
|
38
|
-
- [x] picker modal class
|
|
39
|
-
- [x] `yarn build:test` + `yarn lint` clean
|
|
40
|
-
|
|
41
|
-
### 2 — coverage
|
|
42
|
-
- [x] story written (description in the mandated shape)
|
|
43
|
-
- [x] `yarn test:stories ExpressionField` green (8/8); qlip PNG of the new story read — the magic-wand action sits in BOTH card headers, the nested operand's included; capture dir deleted
|
|
44
|
-
|
|
45
|
-
### 3 — docs
|
|
46
|
-
- [x] design doc revised with dated notes
|
|
47
|
-
- [x] `.tasks/INDEX.md` row
|
|
48
|
-
- [x] `VERIFY.local.md` written for the click-through
|
|
49
|
-
|
|
50
|
-
### 4 — gate
|
|
51
|
-
- [x] **STOP — user verified in the browser** (2026-09-07, on :6009)
|
|
52
|
-
- [x] `/audit` — run by following `instruction-files/skills/audit-frontend/SKILL.md` directly (the skill is not linked into `~/.claude/skills/` on this machine); re-run after the last story edit; clean
|
|
53
|
-
- [x] commit `f5fb2ee` (no attribution trailer), pushed
|
|
54
|
-
- [ ] open the PR (CI + qlip build only run on a pull request), `ci-monitor`, qlip review
|
|
55
|
-
|
|
56
|
-
### 5 — qlip #189 rejection (Foxhoundn)
|
|
57
|
-
- [x] empty rest argument rendered as untyped `auto` under a "true or false" label; empty `any` never reached the template-selector default → declared-type fallback in the rest-argument mount; both expression story files 30/30; verified in the browser on `NestedOperandKeepsInjectedActions`, `WithComplexValue`, and `DefaultBoolean` → Logical Equals
|
|
58
|
-
- [x] design note in `design/EXPRESSION_BUILDER_REPORT_STRATEGY.md` (Revised 2026-09-08)
|
|
59
|
-
- [ ] rejection table shown to the user → push → CI → qlip re-review
|
|
60
|
-
|
|
61
|
-
## Out of scope (no designed seam yet — needs a design decision first)
|
|
62
|
-
|
|
63
|
-
Saved values at operand level (the builder owns operand `menuItems` for its type picker → additive
|
|
64
|
-
seam required; the feature is switched off in every IDE surface today), translations, tour
|
|
65
|
-
registration, the guided server-expression flow, dropdown search copy, the picker's action-name
|
|
66
|
-
badge. Listed in #116.
|