import type { CustomStateSetShim, classifyCustomStateSupport, anonymous_0, installCustomStateSetFallback, Interaction, QtiVariableDeclaration, QtiExpression, QtiFeedback, QtiRuleElement, QtiExitResponseSignal, QtiExitTestSignal, } from "./base.js"; import type { QtiTemplateConstraint, QtiTemplateProcessing, QtiResponseProcessing, QtiAssessmentItem, QtiAssessmentStimulus, QtiAssessmentStimulusRef, QtiAssessmentStimulusRefConnectedEvent, QtiCompanionMaterialsInfo, QtiContentBody, QtiContextDeclaration, QtiCustomOperator, QtiFeedbackBlock, QtiFeedbackInline, QtiItemBody, QtiModalFeedback, QtiOutcomeDeclaration, QtiResponseDeclaration, QtiRubricBlock, QtiStylesheet, QtiTemplateDeclaration, } from "./elements.js"; import type { ItemContainer, ItemPrintVariables, QtiItem } from "./item.js"; import type { QtiAssociableHotspot, QtiGap, QtiGapImg, QtiGapText, QtiHotspotChoice, QtiHottext, QtiInlineChoice, QtiPrompt, QtiSimpleAssociableChoice, QtiSimpleChoice, QtiAssociateInteraction, QtiChoiceInteraction, QtiCustomInteraction, QtiEndAttemptInteraction, QtiExtendedTextInteraction, QtiGapMatchInteraction, QtiGraphicAssociateInteraction, QtiGraphicGapMatchInteraction, QtiGraphicOrderInteraction, QtiHotspotInteraction, QtiHottextInteraction, QtiInlineChoiceInteraction, QtiMatchInteraction, QtiMediaInteraction, QtiOrderInteraction, QtiPortableCustomInteraction, inlineScriptText, inlineStyleText, QtiPortableCustomInteractionTest, QtiPositionObjectInteraction, QtiPositionObjectStage, QtiSelectPointInteraction, QtiSliderInteraction, QtiTextEntryInteraction, QtiUploadInteraction, } from "./interactions.js"; import type { QtiAssessmentTest, QtiAssessmentItemRef, QtiAssessmentSection, QtiBranchRule, QtiItemSessionControl, QtiNumberPresented, QtiNumberSelected, QtiPreCondition, QtiOutcomeProcessing, QtiOutcomeProcessingProcessor, QtiTestFeedback, QtiTestPart, QtiTestVariables, QtiTestVariablesExpression, TestContainer, QtiTest, TestCheckItem, TestEndAttempt, TestItemLink, TestTtsStop, TestTtsResume, TestTtsPrev, TestTtsPlay, TestTtsPick, TestTtsPause, TestTtsNext, TestItemToSpeech, SpeechState, ttsContext, TestNavigation, TestNext, TestPagingButtonsStamp, TestPrev, TestPrintContext, TestPrintVariables, formatVariableValue, TestScoringButtons, TestScoringFeedback, TestSectionButtonsStamp, TestSectionLink, TestStamp, TestView, TestViewToggle, } from "./test.js"; import type { QtiAnd, qtiAndMixin, QtiAnyN, QtiBaseValue, QtiContainerSize, QtiContains, QtiCorrect, QtiDefault, QtiDelete, QtiDivide, QtiDurationGte, QtiDurationLt, QtiEqualRounded, QtiEqual, QtiRule, QtiExitResponse, QtiExitTest, QtiFieldValue, QtiGcd, QtiGt, QtiGte, QtiIndex, QtiInside, QtiIntegerDivide, QtiIntegerModulus, QtiIntegerToFloat, QtiIsNull, QtiLcm, QtiLookupOutcomeValue, QtiLt, QtiLte, QtiMapResponsePoint, QtiMapResponse, QtiMatch, QtiMathConstant, QtiMathOperator, QtiMax, QtiMember, QtiMin, QtiMultiple, QtiNot, QtiNull, QtiOr, QtiOrdered, QtiConditionBranchBase, QtiConditionElseBase, QtiConditionIfBase, QtiConditionBase, QtiOutcomeCondition, QtiOutcomeIf, QtiOutcomeElseIf, QtiOutcomeElse, QtiPatternMatch, QtiPower, QtiPrintedVariable, QtiProduct, QtiRandomInteger, QtiRandom, QtiRepeat, QtiResponseCondition, QtiResponseIf, QtiResponseElseIf, QtiResponseElse, QtiResponseProcessingFragment, QtiRoundTo, QtiRound, QtiSetCorrectResponse, QtiSetCorrectResponseRule, QtiSetOutcomeValue, QtiSetOutcomeValueRule, QtiSetTemplateValue, QtiSetTemplateValueRule, QtiStatsOperator, QtiStringMatch, QtiSubstring, QtiSubtract, qtiSubtractMixin, QtiSum, QtiSumExpression, QtiTruncate, QtiVariable, } from "./processing.js"; import type { QtiAssessmentItemCorrection, QtiItemCorrection, QtiTestCorrection, TestNavigationCorrection, TestCheckItemCorrection, ItemCorrectResponseMode, ItemShowCandidateCorrection, ItemShowCorrectResponse, TestShowCorrectResponse, } from "./corrections.js"; /** * This type can be used to create scoped tags for your components. * * Usage: * * ```ts * import type { ScopedElements } from "path/to/library/jsx-integration"; * * declare module "my-library" { * namespace JSX { * interface IntrinsicElements * extends ScopedElements<'test-', ''> {} * } * } * ``` * * @deprecated Runtime scoped elements result in duplicate types and can confusing for developers. It is recommended to use the `prefix` and `suffix` options to generate new types instead. */ export type ScopedElements< Prefix extends string = "", Suffix extends string = "", > = { [Key in keyof CustomElements as `${Prefix}${Key}${Suffix}`]: CustomElements[Key]; }; type BaseProps = { /** Content added between the opening and closing tags of the element */ children?: any | undefined; /** Used for declaratively styling one or more elements using CSS (Cascading Stylesheets) */ class?: string | undefined; /** Used for declaratively styling one or more elements using CSS (Cascading Stylesheets) */ className?: string | undefined; /** Takes an object where the key is the class name(s) and the value is a boolean expression. When true, the class is applied, and when false, it is removed. */ classList?: Record | undefined; /** Specifies the text direction of the element. */ dir?: "ltr" | "rtl" | undefined; /** Contains a space-separated list of the part names of the element that should be exposed on the host element. */ exportparts?: string | undefined; /** For