@flanksource/clicky-ui 0.3.59 → 0.3.60
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/NOTICE.md +58 -0
- package/dist/data/Clicky.cjs +2 -1
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.d.ts +2 -0
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.js +2 -1
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/PromptBanner.model.cjs +10 -0
- package/dist/data/PromptBanner.model.cjs.map +1 -1
- package/dist/data/PromptBanner.model.d.ts +2 -0
- package/dist/data/PromptBanner.model.d.ts.map +1 -1
- package/dist/data/PromptBanner.model.js +10 -1
- package/dist/data/PromptBanner.model.js.map +1 -1
- package/dist/data/PromptDialog.cjs +16 -49
- package/dist/data/PromptDialog.cjs.map +1 -1
- package/dist/data/PromptDialog.d.ts +7 -1
- package/dist/data/PromptDialog.d.ts.map +1 -1
- package/dist/data/PromptDialog.js +17 -50
- package/dist/data/PromptDialog.js.map +1 -1
- package/dist/data/PromptForm.cjs +79 -0
- package/dist/data/PromptForm.cjs.map +1 -0
- package/dist/data/PromptForm.d.ts +26 -0
- package/dist/data/PromptForm.d.ts.map +1 -0
- package/dist/data/PromptForm.js +79 -0
- package/dist/data/PromptForm.js.map +1 -0
- package/dist/data/PromptIndicator.cjs +82 -0
- package/dist/data/PromptIndicator.cjs.map +1 -0
- package/dist/data/PromptIndicator.d.ts +19 -0
- package/dist/data/PromptIndicator.d.ts.map +1 -0
- package/dist/data/PromptIndicator.js +82 -0
- package/dist/data/PromptIndicator.js.map +1 -0
- package/dist/data/PromptList.cjs +67 -0
- package/dist/data/PromptList.cjs.map +1 -0
- package/dist/data/PromptList.d.ts +13 -0
- package/dist/data/PromptList.d.ts.map +1 -0
- package/dist/data/PromptList.js +67 -0
- package/dist/data/PromptList.js.map +1 -0
- package/dist/data/git/GitChangeList.cjs +11 -4
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +2 -35
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +11 -4
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/git/GitLink.cjs +13 -0
- package/dist/data/git/GitLink.cjs.map +1 -0
- package/dist/data/git/GitLink.d.ts +8 -0
- package/dist/data/git/GitLink.d.ts.map +1 -0
- package/dist/data/git/GitLink.js +13 -0
- package/dist/data/git/GitLink.js.map +1 -0
- package/dist/data/git/git-links.cjs +54 -0
- package/dist/data/git/git-links.cjs.map +1 -0
- package/dist/data/git/git-links.d.ts +4 -0
- package/dist/data/git/git-links.d.ts.map +1 -0
- package/dist/data/git/git-links.js +53 -0
- package/dist/data/git/git-links.js.map +1 -0
- package/dist/data/git/index.d.ts +3 -0
- package/dist/data/git/index.d.ts.map +1 -1
- package/dist/data/git/types.d.ts +54 -0
- package/dist/data/git/types.d.ts.map +1 -0
- package/dist/data/test-runner/MatrixMarks.cjs +4 -3
- package/dist/data/test-runner/MatrixMarks.cjs.map +1 -1
- package/dist/data/test-runner/MatrixMarks.d.ts +7 -4
- package/dist/data/test-runner/MatrixMarks.d.ts.map +1 -1
- package/dist/data/test-runner/MatrixMarks.js +4 -3
- package/dist/data/test-runner/MatrixMarks.js.map +1 -1
- package/dist/data/test-runner/TestRunSummary.cjs +1 -1
- package/dist/data/test-runner/TestRunSummary.cjs.map +1 -1
- package/dist/data/test-runner/TestRunSummary.js +1 -1
- package/dist/data/test-runner/TestRunSummary.js.map +1 -1
- package/dist/data/test-runner/TestTree.cjs +1 -1
- package/dist/data/test-runner/TestTree.cjs.map +1 -1
- package/dist/data/test-runner/TestTree.js +1 -1
- package/dist/data/test-runner/TestTree.js.map +1 -1
- package/dist/data/test-runner/TestTreeNode.cjs +2 -2
- package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
- package/dist/data/test-runner/TestTreeNode.js +2 -2
- package/dist/data/test-runner/TestTreeNode.js.map +1 -1
- package/dist/data/test-runner/adapter.cjs +7 -0
- package/dist/data/test-runner/adapter.cjs.map +1 -1
- package/dist/data/test-runner/adapter.d.ts +7 -0
- package/dist/data/test-runner/adapter.d.ts.map +1 -1
- package/dist/data/test-runner/adapter.js +7 -0
- package/dist/data/test-runner/adapter.js.map +1 -1
- package/dist/data/test-runner/index.d.ts +1 -1
- package/dist/data/test-runner/index.d.ts.map +1 -1
- package/dist/data/test-runner/marks.cjs +3 -3
- package/dist/data/test-runner/marks.cjs.map +1 -1
- package/dist/data/test-runner/marks.js +3 -3
- package/dist/data/test-runner/marks.js.map +1 -1
- package/dist/data/test-runner/matrix-marks.cjs +12 -3
- package/dist/data/test-runner/matrix-marks.cjs.map +1 -1
- package/dist/data/test-runner/matrix-marks.d.ts +13 -0
- package/dist/data/test-runner/matrix-marks.d.ts.map +1 -1
- package/dist/data/test-runner/matrix-marks.js +12 -3
- package/dist/data/test-runner/matrix-marks.js.map +1 -1
- package/dist/data/test-runner/status.cjs +1 -1
- package/dist/data/test-runner/status.cjs.map +1 -1
- package/dist/data/test-runner/status.js +1 -1
- package/dist/data/test-runner/status.js.map +1 -1
- package/dist/data/test-runner/types.d.ts +2 -0
- package/dist/data/test-runner/types.d.ts.map +1 -1
- package/dist/data/verification/adapterViews.cjs +3 -1
- package/dist/data/verification/adapterViews.cjs.map +1 -1
- package/dist/data/verification/adapterViews.d.ts +5 -2
- package/dist/data/verification/adapterViews.d.ts.map +1 -1
- package/dist/data/verification/adapterViews.js +4 -2
- package/dist/data/verification/adapterViews.js.map +1 -1
- package/dist/data/verification/adapters.cjs +28 -7
- package/dist/data/verification/adapters.cjs.map +1 -1
- package/dist/data/verification/adapters.d.ts +7 -1
- package/dist/data/verification/adapters.d.ts.map +1 -1
- package/dist/data/verification/adapters.js +28 -7
- package/dist/data/verification/adapters.js.map +1 -1
- package/dist/data/verification/stepKind.cjs +1 -0
- package/dist/data/verification/stepKind.cjs.map +1 -1
- package/dist/data/verification/stepKind.d.ts.map +1 -1
- package/dist/data/verification/stepKind.js +1 -0
- package/dist/data/verification/stepKind.js.map +1 -1
- package/dist/data/verification/stepKindViews.cjs +17 -0
- package/dist/data/verification/stepKindViews.cjs.map +1 -1
- package/dist/data/verification/stepKindViews.d.ts +4 -0
- package/dist/data/verification/stepKindViews.d.ts.map +1 -1
- package/dist/data/verification/stepKindViews.js +17 -1
- package/dist/data/verification/stepKindViews.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +114 -0
- package/dist/data.d.ts +3 -0
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +51 -1
- package/dist/git.cjs +6 -0
- package/dist/git.d.ts +4 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +3 -0
- package/dist/hooks/use-prompts.cjs +18 -11
- package/dist/hooks/use-prompts.cjs.map +1 -1
- package/dist/hooks/use-prompts.d.ts.map +1 -1
- package/dist/hooks/use-prompts.js +18 -11
- package/dist/hooks/use-prompts.js.map +1 -1
- package/dist/icons/components/UiApi.cjs +37 -0
- package/dist/icons/components/UiApi.cjs.map +1 -0
- package/dist/icons/components/UiApi.d.ts +9 -0
- package/dist/icons/components/UiApi.d.ts.map +1 -0
- package/dist/icons/components/UiApi.js +35 -0
- package/dist/icons/components/UiApi.js.map +1 -0
- package/dist/icons/components/UiApiBridge.cjs +38 -0
- package/dist/icons/components/UiApiBridge.cjs.map +1 -0
- package/dist/icons/components/UiApiBridge.d.ts +9 -0
- package/dist/icons/components/UiApiBridge.d.ts.map +1 -0
- package/dist/icons/components/UiApiBridge.js +36 -0
- package/dist/icons/components/UiApiBridge.js.map +1 -0
- package/dist/icons/components/UiApiGateway.cjs +33 -0
- package/dist/icons/components/UiApiGateway.cjs.map +1 -0
- package/dist/icons/components/UiApiGateway.d.ts +9 -0
- package/dist/icons/components/UiApiGateway.d.ts.map +1 -0
- package/dist/icons/components/UiApiGateway.js +31 -0
- package/dist/icons/components/UiApiGateway.js.map +1 -0
- package/dist/icons/components/UiApiRequest.cjs +37 -0
- package/dist/icons/components/UiApiRequest.cjs.map +1 -0
- package/dist/icons/components/UiApiRequest.d.ts +9 -0
- package/dist/icons/components/UiApiRequest.d.ts.map +1 -0
- package/dist/icons/components/UiApiRequest.js +35 -0
- package/dist/icons/components/UiApiRequest.js.map +1 -0
- package/dist/icons/components/UiArrowDecision.cjs +51 -0
- package/dist/icons/components/UiArrowDecision.cjs.map +1 -0
- package/dist/icons/components/UiArrowDecision.d.ts +15 -0
- package/dist/icons/components/UiArrowDecision.d.ts.map +1 -0
- package/dist/icons/components/UiArrowDecision.js +48 -0
- package/dist/icons/components/UiArrowDecision.js.map +1 -0
- package/dist/icons/components/UiArrowSquareIn.cjs +51 -0
- package/dist/icons/components/UiArrowSquareIn.cjs.map +1 -0
- package/dist/icons/components/UiArrowSquareIn.d.ts +15 -0
- package/dist/icons/components/UiArrowSquareIn.d.ts.map +1 -0
- package/dist/icons/components/UiArrowSquareIn.js +48 -0
- package/dist/icons/components/UiArrowSquareIn.js.map +1 -0
- package/dist/icons/components/UiBatchCheck.cjs +55 -0
- package/dist/icons/components/UiBatchCheck.cjs.map +1 -0
- package/dist/icons/components/UiBatchCheck.d.ts +15 -0
- package/dist/icons/components/UiBatchCheck.d.ts.map +1 -0
- package/dist/icons/components/UiBatchCheck.js +52 -0
- package/dist/icons/components/UiBatchCheck.js.map +1 -0
- package/dist/icons/components/UiBatchJob.cjs +39 -0
- package/dist/icons/components/UiBatchJob.cjs.map +1 -0
- package/dist/icons/components/UiBatchJob.d.ts +9 -0
- package/dist/icons/components/UiBatchJob.d.ts.map +1 -0
- package/dist/icons/components/UiBatchJob.js +37 -0
- package/dist/icons/components/UiBatchJob.js.map +1 -0
- package/dist/icons/components/UiBatchRequest.cjs +39 -0
- package/dist/icons/components/UiBatchRequest.cjs.map +1 -0
- package/dist/icons/components/UiBatchRequest.d.ts +9 -0
- package/dist/icons/components/UiBatchRequest.d.ts.map +1 -0
- package/dist/icons/components/UiBatchRequest.js +37 -0
- package/dist/icons/components/UiBatchRequest.js.map +1 -0
- package/dist/icons/components/UiBpmnConditional.cjs +29 -0
- package/dist/icons/components/UiBpmnConditional.cjs.map +1 -0
- package/dist/icons/components/UiBpmnConditional.d.ts +9 -0
- package/dist/icons/components/UiBpmnConditional.d.ts.map +1 -0
- package/dist/icons/components/UiBpmnConditional.js +27 -0
- package/dist/icons/components/UiBpmnConditional.js.map +1 -0
- package/dist/icons/components/UiBranchFlow.cjs +33 -0
- package/dist/icons/components/UiBranchFlow.cjs.map +1 -0
- package/dist/icons/components/UiBranchFlow.d.ts +9 -0
- package/dist/icons/components/UiBranchFlow.d.ts.map +1 -0
- package/dist/icons/components/UiBranchFlow.js +31 -0
- package/dist/icons/components/UiBranchFlow.js.map +1 -0
- package/dist/icons/components/UiClassicBatch.cjs +29 -0
- package/dist/icons/components/UiClassicBatch.cjs.map +1 -0
- package/dist/icons/components/UiClassicBatch.d.ts +9 -0
- package/dist/icons/components/UiClassicBatch.d.ts.map +1 -0
- package/dist/icons/components/UiClassicBatch.js +27 -0
- package/dist/icons/components/UiClassicBatch.js.map +1 -0
- package/dist/icons/components/UiCodeFile.cjs +29 -0
- package/dist/icons/components/UiCodeFile.cjs.map +1 -0
- package/dist/icons/components/UiCodeFile.d.ts +9 -0
- package/dist/icons/components/UiCodeFile.d.ts.map +1 -0
- package/dist/icons/components/UiCodeFile.js +27 -0
- package/dist/icons/components/UiCodeFile.js.map +1 -0
- package/dist/icons/components/UiColumnsLayout.cjs +29 -0
- package/dist/icons/components/UiColumnsLayout.cjs.map +1 -0
- package/dist/icons/components/UiColumnsLayout.d.ts +9 -0
- package/dist/icons/components/UiColumnsLayout.d.ts.map +1 -0
- package/dist/icons/components/UiColumnsLayout.js +27 -0
- package/dist/icons/components/UiColumnsLayout.js.map +1 -0
- package/dist/icons/components/UiCondition.cjs +37 -0
- package/dist/icons/components/UiCondition.cjs.map +1 -0
- package/dist/icons/components/UiCondition.d.ts +9 -0
- package/dist/icons/components/UiCondition.d.ts.map +1 -0
- package/dist/icons/components/UiCondition.js +35 -0
- package/dist/icons/components/UiCondition.js.map +1 -0
- package/dist/icons/components/UiConditions.cjs +29 -0
- package/dist/icons/components/UiConditions.cjs.map +1 -0
- package/dist/icons/components/UiConditions.d.ts +9 -0
- package/dist/icons/components/UiConditions.d.ts.map +1 -0
- package/dist/icons/components/UiConditions.js +27 -0
- package/dist/icons/components/UiConditions.js.map +1 -0
- package/dist/icons/components/UiDelayQueue.cjs +40 -0
- package/dist/icons/components/UiDelayQueue.cjs.map +1 -0
- package/dist/icons/components/UiDelayQueue.d.ts +9 -0
- package/dist/icons/components/UiDelayQueue.d.ts.map +1 -0
- package/dist/icons/components/UiDelayQueue.js +38 -0
- package/dist/icons/components/UiDelayQueue.js.map +1 -0
- package/dist/icons/components/UiDynamicForm.cjs +51 -0
- package/dist/icons/components/UiDynamicForm.cjs.map +1 -0
- package/dist/icons/components/UiDynamicForm.d.ts +15 -0
- package/dist/icons/components/UiDynamicForm.d.ts.map +1 -0
- package/dist/icons/components/UiDynamicForm.js +48 -0
- package/dist/icons/components/UiDynamicForm.js.map +1 -0
- package/dist/icons/components/UiFlowArrow.cjs +51 -0
- package/dist/icons/components/UiFlowArrow.cjs.map +1 -0
- package/dist/icons/components/UiFlowArrow.d.ts +15 -0
- package/dist/icons/components/UiFlowArrow.d.ts.map +1 -0
- package/dist/icons/components/UiFlowArrow.js +48 -0
- package/dist/icons/components/UiFlowArrow.js.map +1 -0
- package/dist/icons/components/UiFormFields.cjs +33 -0
- package/dist/icons/components/UiFormFields.cjs.map +1 -0
- package/dist/icons/components/UiFormFields.d.ts +9 -0
- package/dist/icons/components/UiFormFields.d.ts.map +1 -0
- package/dist/icons/components/UiFormFields.js +31 -0
- package/dist/icons/components/UiFormFields.js.map +1 -0
- package/dist/icons/components/UiFormStep.cjs +38 -0
- package/dist/icons/components/UiFormStep.cjs.map +1 -0
- package/dist/icons/components/UiFormStep.d.ts +9 -0
- package/dist/icons/components/UiFormStep.d.ts.map +1 -0
- package/dist/icons/components/UiFormStep.js +36 -0
- package/dist/icons/components/UiFormStep.js.map +1 -0
- package/dist/icons/components/UiGatewayApi.cjs +32 -0
- package/dist/icons/components/UiGatewayApi.cjs.map +1 -0
- package/dist/icons/components/UiGatewayApi.d.ts +9 -0
- package/dist/icons/components/UiGatewayApi.d.ts.map +1 -0
- package/dist/icons/components/UiGatewayApi.js +30 -0
- package/dist/icons/components/UiGatewayApi.js.map +1 -0
- package/dist/icons/components/UiImportArrow.cjs +29 -0
- package/dist/icons/components/UiImportArrow.cjs.map +1 -0
- package/dist/icons/components/UiImportArrow.d.ts +9 -0
- package/dist/icons/components/UiImportArrow.d.ts.map +1 -0
- package/dist/icons/components/UiImportArrow.js +27 -0
- package/dist/icons/components/UiImportArrow.js.map +1 -0
- package/dist/icons/components/UiInputField.cjs +33 -0
- package/dist/icons/components/UiInputField.cjs.map +1 -0
- package/dist/icons/components/UiInputField.d.ts +9 -0
- package/dist/icons/components/UiInputField.d.ts.map +1 -0
- package/dist/icons/components/UiInputField.js +31 -0
- package/dist/icons/components/UiInputField.js.map +1 -0
- package/dist/icons/components/UiInsertTable.cjs +29 -0
- package/dist/icons/components/UiInsertTable.cjs.map +1 -0
- package/dist/icons/components/UiInsertTable.d.ts +9 -0
- package/dist/icons/components/UiInsertTable.d.ts.map +1 -0
- package/dist/icons/components/UiInsertTable.js +27 -0
- package/dist/icons/components/UiInsertTable.js.map +1 -0
- package/dist/icons/components/UiLayoutTemplate.cjs +32 -0
- package/dist/icons/components/UiLayoutTemplate.cjs.map +1 -0
- package/dist/icons/components/UiLayoutTemplate.d.ts +9 -0
- package/dist/icons/components/UiLayoutTemplate.d.ts.map +1 -0
- package/dist/icons/components/UiLayoutTemplate.js +30 -0
- package/dist/icons/components/UiLayoutTemplate.js.map +1 -0
- package/dist/icons/components/UiLayoutWindow.cjs +56 -0
- package/dist/icons/components/UiLayoutWindow.cjs.map +1 -0
- package/dist/icons/components/UiLayoutWindow.d.ts +15 -0
- package/dist/icons/components/UiLayoutWindow.d.ts.map +1 -0
- package/dist/icons/components/UiLayoutWindow.js +53 -0
- package/dist/icons/components/UiLayoutWindow.js.map +1 -0
- package/dist/icons/components/UiListEnd.cjs +33 -0
- package/dist/icons/components/UiListEnd.cjs.map +1 -0
- package/dist/icons/components/UiListEnd.d.ts +9 -0
- package/dist/icons/components/UiListEnd.d.ts.map +1 -0
- package/dist/icons/components/UiListEnd.js +31 -0
- package/dist/icons/components/UiListEnd.js.map +1 -0
- package/dist/icons/components/UiListEndLine.cjs +51 -0
- package/dist/icons/components/UiListEndLine.cjs.map +1 -0
- package/dist/icons/components/UiListEndLine.d.ts +15 -0
- package/dist/icons/components/UiListEndLine.d.ts.map +1 -0
- package/dist/icons/components/UiListEndLine.js +48 -0
- package/dist/icons/components/UiListEndLine.js.map +1 -0
- package/dist/icons/components/UiListNumbers.cjs +51 -0
- package/dist/icons/components/UiListNumbers.cjs.map +1 -0
- package/dist/icons/components/UiListNumbers.d.ts +15 -0
- package/dist/icons/components/UiListNumbers.d.ts.map +1 -0
- package/dist/icons/components/UiListNumbers.js +48 -0
- package/dist/icons/components/UiListNumbers.js.map +1 -0
- package/dist/icons/components/UiLowPriority.cjs +29 -0
- package/dist/icons/components/UiLowPriority.cjs.map +1 -0
- package/dist/icons/components/UiLowPriority.d.ts +9 -0
- package/dist/icons/components/UiLowPriority.d.ts.map +1 -0
- package/dist/icons/components/UiLowPriority.js +27 -0
- package/dist/icons/components/UiLowPriority.js.map +1 -0
- package/dist/icons/components/UiMergeQueue.cjs +38 -0
- package/dist/icons/components/UiMergeQueue.cjs.map +1 -0
- package/dist/icons/components/UiMergeQueue.d.ts +9 -0
- package/dist/icons/components/UiMergeQueue.d.ts.map +1 -0
- package/dist/icons/components/UiMergeQueue.js +36 -0
- package/dist/icons/components/UiMergeQueue.js.map +1 -0
- package/dist/icons/components/UiPipelineStage.cjs +33 -0
- package/dist/icons/components/UiPipelineStage.cjs.map +1 -0
- package/dist/icons/components/UiPipelineStage.d.ts +9 -0
- package/dist/icons/components/UiPipelineStage.d.ts.map +1 -0
- package/dist/icons/components/UiPipelineStage.js +31 -0
- package/dist/icons/components/UiPipelineStage.js.map +1 -0
- package/dist/icons/components/UiPlaylistRemove.cjs +29 -0
- package/dist/icons/components/UiPlaylistRemove.cjs.map +1 -0
- package/dist/icons/components/UiPlaylistRemove.d.ts +9 -0
- package/dist/icons/components/UiPlaylistRemove.d.ts.map +1 -0
- package/dist/icons/components/UiPlaylistRemove.js +27 -0
- package/dist/icons/components/UiPlaylistRemove.js.map +1 -0
- package/dist/icons/components/UiReportForms.cjs +51 -0
- package/dist/icons/components/UiReportForms.cjs.map +1 -0
- package/dist/icons/components/UiReportForms.d.ts +15 -0
- package/dist/icons/components/UiReportForms.d.ts.map +1 -0
- package/dist/icons/components/UiReportForms.js +48 -0
- package/dist/icons/components/UiReportForms.js.map +1 -0
- package/dist/icons/components/UiScreenTemplate.cjs +29 -0
- package/dist/icons/components/UiScreenTemplate.cjs.map +1 -0
- package/dist/icons/components/UiScreenTemplate.d.ts +9 -0
- package/dist/icons/components/UiScreenTemplate.d.ts.map +1 -0
- package/dist/icons/components/UiScreenTemplate.js +27 -0
- package/dist/icons/components/UiScreenTemplate.js.map +1 -0
- package/dist/icons/components/UiServices.cjs +29 -0
- package/dist/icons/components/UiServices.cjs.map +1 -0
- package/dist/icons/components/UiServices.d.ts +9 -0
- package/dist/icons/components/UiServices.d.ts.map +1 -0
- package/dist/icons/components/UiServices.js +27 -0
- package/dist/icons/components/UiServices.js.map +1 -0
- package/dist/icons/components/UiSkipCircle.cjs +51 -0
- package/dist/icons/components/UiSkipCircle.cjs.map +1 -0
- package/dist/icons/components/UiSkipCircle.d.ts +15 -0
- package/dist/icons/components/UiSkipCircle.d.ts.map +1 -0
- package/dist/icons/components/UiSkipCircle.js +48 -0
- package/dist/icons/components/UiSkipCircle.js.map +1 -0
- package/dist/icons/components/UiTaskBatch.cjs +33 -0
- package/dist/icons/components/UiTaskBatch.cjs.map +1 -0
- package/dist/icons/components/UiTaskBatch.d.ts +9 -0
- package/dist/icons/components/UiTaskBatch.d.ts.map +1 -0
- package/dist/icons/components/UiTaskBatch.js +31 -0
- package/dist/icons/components/UiTaskBatch.js.map +1 -0
- package/dist/icons/components/UiTodoList.cjs +29 -0
- package/dist/icons/components/UiTodoList.cjs.map +1 -0
- package/dist/icons/components/UiTodoList.d.ts +9 -0
- package/dist/icons/components/UiTodoList.d.ts.map +1 -0
- package/dist/icons/components/UiTodoList.js +27 -0
- package/dist/icons/components/UiTodoList.js.map +1 -0
- package/dist/icons/components/UiTrayArrowDown.cjs +51 -0
- package/dist/icons/components/UiTrayArrowDown.cjs.map +1 -0
- package/dist/icons/components/UiTrayArrowDown.d.ts +15 -0
- package/dist/icons/components/UiTrayArrowDown.d.ts.map +1 -0
- package/dist/icons/components/UiTrayArrowDown.js +48 -0
- package/dist/icons/components/UiTrayArrowDown.js.map +1 -0
- package/dist/icons/components/UiVault.cjs +51 -0
- package/dist/icons/components/UiVault.cjs.map +1 -0
- package/dist/icons/components/UiVault.d.ts +15 -0
- package/dist/icons/components/UiVault.d.ts.map +1 -0
- package/dist/icons/components/UiVault.js +48 -0
- package/dist/icons/components/UiVault.js.map +1 -0
- package/dist/icons/components/UiWebServiceDefinition.cjs +39 -0
- package/dist/icons/components/UiWebServiceDefinition.cjs.map +1 -0
- package/dist/icons/components/UiWebServiceDefinition.d.ts +9 -0
- package/dist/icons/components/UiWebServiceDefinition.d.ts.map +1 -0
- package/dist/icons/components/UiWebServiceDefinition.js +37 -0
- package/dist/icons/components/UiWebServiceDefinition.js.map +1 -0
- package/dist/icons/components/UiWebhook.cjs +29 -0
- package/dist/icons/components/UiWebhook.cjs.map +1 -0
- package/dist/icons/components/UiWebhook.d.ts +9 -0
- package/dist/icons/components/UiWebhook.d.ts.map +1 -0
- package/dist/icons/components/UiWebhook.js +27 -0
- package/dist/icons/components/UiWebhook.js.map +1 -0
- package/dist/icons/components/UiWebhookLine.cjs +51 -0
- package/dist/icons/components/UiWebhookLine.cjs.map +1 -0
- package/dist/icons/components/UiWebhookLine.d.ts +15 -0
- package/dist/icons/components/UiWebhookLine.d.ts.map +1 -0
- package/dist/icons/components/UiWebhookLine.js +48 -0
- package/dist/icons/components/UiWebhookLine.js.map +1 -0
- package/dist/icons/index.d.ts +58 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/registry.cjs +90 -0
- package/dist/icons/registry.cjs.map +1 -1
- package/dist/icons/registry.d.ts.map +1 -1
- package/dist/icons/registry.js +90 -0
- package/dist/icons/registry.js.map +1 -1
- package/dist/icons.cjs +103 -0
- package/dist/icons.js +46 -1
- package/dist/index.cjs +114 -0
- package/dist/index.js +51 -1
- package/dist/overlay/DropdownMenu.cjs +17 -14
- package/dist/overlay/DropdownMenu.cjs.map +1 -1
- package/dist/overlay/DropdownMenu.d.ts +1 -0
- package/dist/overlay/DropdownMenu.d.ts.map +1 -1
- package/dist/overlay/DropdownMenu.js +18 -15
- package/dist/overlay/DropdownMenu.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepKindViews.cjs","names":["Badge","policySummary","waitDecidedBy","formatDelay","Button","JsonView","clockTime","formatTestDuration","cn","formatExportValue","useSelectDetailTab","_Fragment","CodeBlock"],"sources":["../../../src/data/verification/stepKindViews.tsx"],"sourcesContent":["// Detail sections for a typed fixture step (see stepKind.ts): the wait\n// timeline, retry attempts, exported variables, outputs and a background\n// watcher's events. Rendered inside FixtureDetail; split out so adapterViews.tsx\n// stays focused on the command/CEL body.\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Badge, type BadgeTone } from \"../Badge\";\nimport { CodeBlock } from \"../CodeBlock\";\nimport { JsonView } from \"../JsonView\";\nimport type { StepSourceResult } from \"./stepSource\";\nimport { formatTestDuration, useSelectDetailTab } from \"../test-runner\";\nimport {\n clockTime,\n formatDelay,\n formatExportValue,\n policySummary,\n waitDecidedBy,\n type ExecutionHeader,\n type StepDetail,\n type StepExport,\n type WaitCondition,\n type WaitDetail,\n type WaitOutcome,\n type WatcherEvent,\n} from \"./stepKind\";\n\nconst ALERT_ROW = \"border-red-500/60 bg-red-500/10 text-red-700 dark:text-red-400\";\n\nfunction Section({ name, title, aside, children }: { name: string; title: string; aside?: ReactNode; children: ReactNode }) {\n return (\n <section className=\"min-w-0 space-y-1.5\" data-step-section={name}>\n <div className=\"flex items-center gap-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{title}</div>\n {aside}\n </div>\n {children}\n </section>\n );\n}\n\n// ── Wait ────────────────────────────────────────────────────────────────────\n\nconst OUTCOME_BADGE: Record<WaitOutcome, { label: string; tone: BadgeTone }> = {\n satisfied: { label: \"Satisfied\", tone: \"success\" },\n failed: { label: \"Failed\", tone: \"danger\" },\n timeout: { label: \"Timed out\", tone: \"warning\" },\n};\n\nfunction WaitConditionRow({ condition, expression, decisive, wait }: { condition: WaitCondition; expression: string; decisive: boolean; wait: WaitDetail }) {\n const { label, tone } = OUTCOME_BADGE[wait.outcome];\n return (\n <li className=\"flex min-w-0 items-center gap-2\" data-wait-condition={condition} {...(decisive ? { \"data-wait-decisive\": \"\" } : {})}>\n <span className=\"w-14 shrink-0 text-muted-foreground\">{condition}</span>\n <code className=\"min-w-0 shrink break-words font-mono\">{expression}</code>\n {decisive && <Badge size=\"xs\" clickToCopy={false} tone={tone}>{label}</Badge>}\n </li>\n );\n}\n\n/**\n * The wait's conditions (the deciding one carries the outcome), elapsed time and\n * schedule. `onViewOutputs` links to the host's Outputs tab; without it the\n * observed outputs render inline, collapsed to depth 1, inside the details.\n */\nexport function StepWait({ wait, onViewOutputs }: { wait: WaitDetail; onViewOutputs?: () => void }) {\n const { policy } = wait;\n const schedule = policySummary(policy);\n const decidedBy = waitDecidedBy(wait);\n const inlineOutputs = wait.outputs !== undefined && !onViewOutputs;\n return (\n <section className=\"min-w-0 text-[11px]\" data-step-section=\"wait\">\n <div className=\"flex min-w-0 items-center gap-2\" data-wait-summary=\"\">\n <span className=\"shrink-0 text-muted-foreground\">Wait</span>\n <Badge size=\"xs\" clickToCopy={false}>{formatDelay(wait.durationMs)}</Badge>\n {wait.outputs !== undefined && onViewOutputs && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto px-0 text-[11px]\" onClick={onViewOutputs}>View outputs</Button>\n )}\n </div>\n <ul className=\"mt-1 space-y-0.5\" data-wait-conditions=\"\">\n <WaitConditionRow condition=\"until\" expression={policy.until ?? \"Service readiness\"} decisive={decidedBy === \"until\"} wait={wait} />\n {policy.failWhen && <WaitConditionRow condition=\"failWhen\" expression={policy.failWhen} decisive={decidedBy === \"failWhen\"} wait={wait} />}\n </ul>\n {(schedule || wait.error || wait.trace || inlineOutputs) && (\n <details className=\"mt-1 text-muted-foreground\" open={wait.outcome !== \"satisfied\"}>\n <summary className=\"cursor-pointer\">Wait details</summary>\n <div className=\"mt-1 space-y-1 break-words\">\n {schedule && <p>{schedule}</p>}\n {wait.error && <p className=\"text-destructive\">{wait.error}</p>}\n {wait.trace && <pre className=\"whitespace-pre-wrap\">{wait.trace}</pre>}\n {inlineOutputs && (\n <div className=\"min-w-0\" data-wait-outputs=\"\">\n <div className=\"text-[10px] uppercase tracking-wide\">Outputs</div>\n <JsonView data={wait.outputs} defaultOpenDepth={1} />\n </div>\n )}\n </div>\n </details>\n )}\n </section>\n );\n}\n\n// ── Execution header ────────────────────────────────────────────────────────\n\nconst STATE_TONE: Record<string, BadgeTone> = { passed: \"success\", failed: \"danger\", warned: \"warning\", timedout: \"warning\", running: \"info\" };\n\nfunction basename(path: string): string {\n return path.split(\"/\").filter(Boolean).at(-1) ?? path;\n}\n\nfunction stepPosition({ rowIndex, line }: ExecutionHeader): string | undefined {\n // gavel numbers steps and table rows from 1.\n if (rowIndex !== undefined) return `step #${rowIndex}`;\n return line !== undefined ? `line ${line}` : undefined;\n}\n\n/** Where a fixture step came from (file · step · section), its kind and state, and when it ran. */\nexport function ExecutionHeaderView({ header, stepKind }: { header: ExecutionHeader; stepKind?: string }) {\n const place = [stepPosition(header), header.sectionPath].filter(Boolean).join(\" · \");\n const kinds = [header.kind, stepKind].filter((kind, i, all): kind is string => !!kind && all.indexOf(kind) === i);\n const window = header.startedAt && header.finishedAt ? `${clockTime(header.startedAt)} → ${clockTime(header.finishedAt)}` : header.startedAt ? `started ${clockTime(header.startedAt)}` : undefined;\n if (!header.file && !place && kinds.length === 0 && !header.state && !window && header.durationNs === undefined) return null;\n return (\n <div className=\"min-w-0 space-y-1\" data-execution-header=\"\">\n {(header.file || place) && (\n <div className=\"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-xs\">\n {header.file && <span className=\"font-medium\" title={header.file}>{basename(header.file)}</span>}\n {header.file && place && <span className=\"text-muted-foreground\">·</span>}\n {place && <span className=\"min-w-0 break-words text-muted-foreground\">{place}</span>}\n </div>\n )}\n <div className=\"flex min-w-0 flex-wrap items-center gap-2 text-[11px] text-muted-foreground\">\n {kinds.map((kind) => <Badge key={kind} size=\"xs\" clickToCopy={false}>{kind}</Badge>)}\n {header.state && <Badge size=\"xs\" clickToCopy={false} tone={STATE_TONE[header.state] ?? \"neutral\"}>{header.state}</Badge>}\n {window && <span className=\"font-mono\">{window}</span>}\n {header.durationNs !== undefined && <span>{formatTestDuration(header.durationNs)}</span>}\n </div>\n </div>\n );\n}\n\n/** A failure message as a red bordered block that keeps the line breaks of multi-line causes. */\nexport function FailureCallout({ children }: { children: ReactNode }) {\n return (\n <div className={cn(\"whitespace-pre-wrap break-words rounded border px-2 py-1.5 text-sm\", ALERT_ROW)} data-failure-callout=\"\">\n {children}\n </div>\n );\n}\n\n// ── Exports ─────────────────────────────────────────────────────────────────\n\nfunction ExportsTable({ exports }: { exports: StepExport[] }) {\n return (\n <table className=\"w-full table-fixed border-collapse text-left text-[11px]\">\n <thead className=\"text-muted-foreground\">\n <tr className=\"border-b border-border\">\n <th className=\"w-[28%] py-1 pr-2 font-medium\">Name</th>\n <th className=\"py-1 pr-2 font-medium\">Value</th>\n <th className=\"w-[18%] py-1 font-medium\">Step</th>\n </tr>\n </thead>\n <tbody className=\"font-mono\">\n {exports.map((entry) => (\n <tr key={entry.name} className=\"border-b border-border/60 align-top last:border-0\">\n <td className=\"break-words py-1 pr-2\">{entry.name}</td>\n <td className=\"break-all py-1 pr-2\">{formatExportValue(entry.value)}</td>\n <td className=\"break-words py-1 text-muted-foreground\">{entry.step}</td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\n// ── Watcher events ──────────────────────────────────────────────────────────\n\nfunction isAlarming(event: WatcherEvent): boolean {\n return event.type === \"alert\" || event.type === \"pageerror\" || (event.type === \"response\" && (event.status ?? 0) >= 400);\n}\n\nfunction EventRow({ event }: { event: WatcherEvent }) {\n const alarming = isAlarming(event);\n return (\n <li\n className={cn(\"space-y-0.5 rounded border px-2 py-1 text-[11px]\", alarming ? ALERT_ROW : \"border-border\")}\n data-event-type={event.type}\n >\n <div className=\"flex min-w-0 items-center gap-2\">\n <Badge size=\"xs\" clickToCopy={false} tone={alarming ? \"danger\" : \"neutral\"}>{event.type}</Badge>\n {event.status !== undefined && <span className=\"font-mono\">{event.status}</span>}\n {event.text && <span className={cn(\"min-w-0 break-words\", event.type === \"alert\" && \"font-medium\")}>{event.text}</span>}\n </div>\n {event.url && <div className=\"break-all font-mono text-[10px] opacity-80\">{event.url}</div>}\n {event.detail && <p className=\"whitespace-pre-wrap break-words\">{event.detail}</p>}\n </li>\n );\n}\n\n// ── Whole step ──────────────────────────────────────────────────────────────\n\n/** Execution sections for a typed fixture step; final outputs render separately. */\nexport function StepKindSections({ step, renderWait }: { step: StepDetail; renderWait?: (wait: WaitDetail) => ReactNode }) {\n const selectTab = useSelectDetailTab();\n const viewOutputs = selectTab && step.outputs !== undefined ? () => selectTab(\"outputs\") : undefined;\n return (\n <>\n <div className=\"text-[11px] text-muted-foreground\" data-step-ref=\"\">\n {step.step.kind} · {step.step.id}\n {step.background && \" · background\"}\n </div>\n {step.wait && (renderWait ? renderWait(step.wait) : <StepWait wait={step.wait} {...(viewOutputs ? { onViewOutputs: viewOutputs } : {})} />)}\n {step.events.length > 0 && (\n <Section name=\"events\" title=\"Events\">\n <ul className=\"space-y-1\">\n {step.events.map((event, index) => (\n <EventRow key={index} event={event} />\n ))}\n </ul>\n </Section>\n )}\n {step.exports.length > 0 && (\n <Section name=\"exports\" title=\"Exports\">\n <ExportsTable exports={step.exports} />\n </Section>\n )}\n </>\n );\n}\n\nexport function StepOutputs({ outputs }: { outputs: unknown }) {\n return (\n <div className=\"min-w-0 p-density-4\" data-step-section=\"outputs\">\n <JsonView data={outputs} />\n </div>\n );\n}\n\n/** Shown in place of the sections when `detail.step` is present but breaks the contract. */\n// ── Source ──────────────────────────────────────────────────────────────────\n\n/** The YAML or markdown lines a failed step was written as, under its file and line range. */\nexport function StepSourceSection({ result }: { result: StepSourceResult }) {\n if (result.kind === \"none\") return null;\n if (result.kind === \"invalid\") {\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\">\n <MalformedNotice>Malformed source detail: {result.error}</MalformedNotice>\n </Section>\n </div>\n );\n }\n const { source } = result;\n const location = <span className=\"font-mono text-[11px] text-muted-foreground\" title={source.file}>{basename(source.file)}:{source.line}-{source.endLine}</span>;\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\" aside={location}>\n {source.error ? (\n <div className={cn(\"rounded border px-2 py-1 text-xs\", ALERT_ROW)}>Source unavailable: {source.error}</div>\n ) : (\n <CodeBlock language={source.language} source={source.text ?? \"\"} copyable />\n )}\n {source.moreLines ? <div className=\"text-[11px] text-muted-foreground\">… {source.moreLines} more lines</div> : null}\n </Section>\n </div>\n );\n}\n\nfunction MalformedNotice({ children }: { children: ReactNode }) {\n return (\n <div role=\"alert\" className=\"rounded border border-red-500/60 bg-red-500/10 px-2 py-1 text-xs text-red-700 dark:text-red-400\">\n {children}\n </div>\n );\n}\n\nexport function MalformedStepDetail({ error }: { error: string }) {\n return <MalformedNotice>Malformed step detail: {error}</MalformedNotice>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stepKindViews.cjs","names":["Badge","UiHourglass","policySummary","waitDecidedBy","formatDelay","Button","JsonView","clockTime","formatTestDuration","cn","formatExportValue","useSelectDetailTab","_Fragment","CodeBlock"],"sources":["../../../src/data/verification/stepKindViews.tsx"],"sourcesContent":["// Detail sections for a typed fixture step (see stepKind.ts): the wait\n// timeline, retry attempts, exported variables, outputs and a background\n// watcher's events. Rendered inside FixtureDetail; split out so adapterViews.tsx\n// stays focused on the command/CEL body.\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Badge, type BadgeTone } from \"../Badge\";\nimport { CodeBlock } from \"../CodeBlock\";\nimport { JsonView } from \"../JsonView\";\nimport type { StepSourceResult } from \"./stepSource\";\nimport { formatTestDuration, useSelectDetailTab } from \"../test-runner\";\nimport { UiHourglass } from \"../../icons\";\nimport {\n clockTime,\n formatDelay,\n formatExportValue,\n policySummary,\n waitDecidedBy,\n type ExecutionHeader,\n type StepDetail,\n type StepExport,\n type WaitCondition,\n type WaitDetail,\n type WaitOutcome,\n type WatcherEvent,\n} from \"./stepKind\";\n\nconst ALERT_ROW = \"border-red-500/60 bg-red-500/10 text-red-700 dark:text-red-400\";\n\nfunction Section({ name, title, aside, children }: { name: string; title: string; aside?: ReactNode; children: ReactNode }) {\n return (\n <section className=\"min-w-0 space-y-1.5\" data-step-section={name}>\n <div className=\"flex items-center gap-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{title}</div>\n {aside}\n </div>\n {children}\n </section>\n );\n}\n\n/** The host's answerable form for a step waiting on a person. */\nexport function StepPendingFormSection({ children }: { children: ReactNode }) {\n return (\n <Section\n name=\"pending-form\"\n title=\"Form\"\n aside={<Badge tone=\"warning\" size=\"xs\" icon={UiHourglass} clickToCopy={false}>Awaiting answer</Badge>}\n >\n {children}\n </Section>\n );\n}\n\n// ── Wait ────────────────────────────────────────────────────────────────────\n\nconst OUTCOME_BADGE: Record<WaitOutcome, { label: string; tone: BadgeTone }> = {\n satisfied: { label: \"Satisfied\", tone: \"success\" },\n failed: { label: \"Failed\", tone: \"danger\" },\n timeout: { label: \"Timed out\", tone: \"warning\" },\n};\n\nfunction WaitConditionRow({ condition, expression, decisive, wait }: { condition: WaitCondition; expression: string; decisive: boolean; wait: WaitDetail }) {\n const { label, tone } = OUTCOME_BADGE[wait.outcome];\n return (\n <li className=\"flex min-w-0 items-center gap-2\" data-wait-condition={condition} {...(decisive ? { \"data-wait-decisive\": \"\" } : {})}>\n <span className=\"w-14 shrink-0 text-muted-foreground\">{condition}</span>\n <code className=\"min-w-0 shrink break-words font-mono\">{expression}</code>\n {decisive && <Badge size=\"xs\" clickToCopy={false} tone={tone}>{label}</Badge>}\n </li>\n );\n}\n\n/**\n * The wait's conditions (the deciding one carries the outcome), elapsed time and\n * schedule. `onViewOutputs` links to the host's Outputs tab; without it the\n * observed outputs render inline, collapsed to depth 1, inside the details.\n */\nexport function StepWait({ wait, onViewOutputs }: { wait: WaitDetail; onViewOutputs?: () => void }) {\n const { policy } = wait;\n const schedule = policySummary(policy);\n const decidedBy = waitDecidedBy(wait);\n const inlineOutputs = wait.outputs !== undefined && !onViewOutputs;\n return (\n <section className=\"min-w-0 text-[11px]\" data-step-section=\"wait\">\n <div className=\"flex min-w-0 items-center gap-2\" data-wait-summary=\"\">\n <span className=\"shrink-0 text-muted-foreground\">Wait</span>\n <Badge size=\"xs\" clickToCopy={false}>{formatDelay(wait.durationMs)}</Badge>\n {wait.outputs !== undefined && onViewOutputs && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto px-0 text-[11px]\" onClick={onViewOutputs}>View outputs</Button>\n )}\n </div>\n <ul className=\"mt-1 space-y-0.5\" data-wait-conditions=\"\">\n <WaitConditionRow condition=\"until\" expression={policy.until ?? \"Service readiness\"} decisive={decidedBy === \"until\"} wait={wait} />\n {policy.failWhen && <WaitConditionRow condition=\"failWhen\" expression={policy.failWhen} decisive={decidedBy === \"failWhen\"} wait={wait} />}\n </ul>\n {(schedule || wait.error || wait.trace || inlineOutputs) && (\n <details className=\"mt-1 text-muted-foreground\" open={wait.outcome !== \"satisfied\"}>\n <summary className=\"cursor-pointer\">Wait details</summary>\n <div className=\"mt-1 space-y-1 break-words\">\n {schedule && <p>{schedule}</p>}\n {wait.error && <p className=\"text-destructive\">{wait.error}</p>}\n {wait.trace && <pre className=\"whitespace-pre-wrap\">{wait.trace}</pre>}\n {inlineOutputs && (\n <div className=\"min-w-0\" data-wait-outputs=\"\">\n <div className=\"text-[10px] uppercase tracking-wide\">Outputs</div>\n <JsonView data={wait.outputs} defaultOpenDepth={1} />\n </div>\n )}\n </div>\n </details>\n )}\n </section>\n );\n}\n\n// ── Execution header ────────────────────────────────────────────────────────\n\nconst STATE_TONE: Record<string, BadgeTone> = { passed: \"success\", failed: \"danger\", warned: \"warning\", timedout: \"warning\", running: \"info\" };\n\nfunction basename(path: string): string {\n return path.split(\"/\").filter(Boolean).at(-1) ?? path;\n}\n\nfunction stepPosition({ rowIndex, line }: ExecutionHeader): string | undefined {\n // gavel numbers steps and table rows from 1.\n if (rowIndex !== undefined) return `step #${rowIndex}`;\n return line !== undefined ? `line ${line}` : undefined;\n}\n\n/** Where a fixture step came from (file · step · section), its kind and state, and when it ran. */\nexport function ExecutionHeaderView({ header, stepKind }: { header: ExecutionHeader; stepKind?: string }) {\n const place = [stepPosition(header), header.sectionPath].filter(Boolean).join(\" · \");\n const kinds = [header.kind, stepKind].filter((kind, i, all): kind is string => !!kind && all.indexOf(kind) === i);\n const window = header.startedAt && header.finishedAt ? `${clockTime(header.startedAt)} → ${clockTime(header.finishedAt)}` : header.startedAt ? `started ${clockTime(header.startedAt)}` : undefined;\n if (!header.file && !place && kinds.length === 0 && !header.state && !window && header.durationNs === undefined) return null;\n return (\n <div className=\"min-w-0 space-y-1\" data-execution-header=\"\">\n {(header.file || place) && (\n <div className=\"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-xs\">\n {header.file && <span className=\"font-medium\" title={header.file}>{basename(header.file)}</span>}\n {header.file && place && <span className=\"text-muted-foreground\">·</span>}\n {place && <span className=\"min-w-0 break-words text-muted-foreground\">{place}</span>}\n </div>\n )}\n <div className=\"flex min-w-0 flex-wrap items-center gap-2 text-[11px] text-muted-foreground\">\n {kinds.map((kind) => <Badge key={kind} size=\"xs\" clickToCopy={false}>{kind}</Badge>)}\n {header.state && <Badge size=\"xs\" clickToCopy={false} tone={STATE_TONE[header.state] ?? \"neutral\"}>{header.state}</Badge>}\n {window && <span className=\"font-mono\">{window}</span>}\n {header.durationNs !== undefined && <span>{formatTestDuration(header.durationNs)}</span>}\n </div>\n </div>\n );\n}\n\n/** A failure message as a red bordered block that keeps the line breaks of multi-line causes. */\nexport function FailureCallout({ children }: { children: ReactNode }) {\n return (\n <div className={cn(\"whitespace-pre-wrap break-words rounded border px-2 py-1.5 text-sm\", ALERT_ROW)} data-failure-callout=\"\">\n {children}\n </div>\n );\n}\n\n// ── Exports ─────────────────────────────────────────────────────────────────\n\nfunction ExportsTable({ exports }: { exports: StepExport[] }) {\n return (\n <table className=\"w-full table-fixed border-collapse text-left text-[11px]\">\n <thead className=\"text-muted-foreground\">\n <tr className=\"border-b border-border\">\n <th className=\"w-[28%] py-1 pr-2 font-medium\">Name</th>\n <th className=\"py-1 pr-2 font-medium\">Value</th>\n <th className=\"w-[18%] py-1 font-medium\">Step</th>\n </tr>\n </thead>\n <tbody className=\"font-mono\">\n {exports.map((entry) => (\n <tr key={entry.name} className=\"border-b border-border/60 align-top last:border-0\">\n <td className=\"break-words py-1 pr-2\">{entry.name}</td>\n <td className=\"break-all py-1 pr-2\">{formatExportValue(entry.value)}</td>\n <td className=\"break-words py-1 text-muted-foreground\">{entry.step}</td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\n// ── Watcher events ──────────────────────────────────────────────────────────\n\nfunction isAlarming(event: WatcherEvent): boolean {\n return event.type === \"alert\" || event.type === \"pageerror\" || (event.type === \"response\" && (event.status ?? 0) >= 400);\n}\n\nfunction EventRow({ event }: { event: WatcherEvent }) {\n const alarming = isAlarming(event);\n return (\n <li\n className={cn(\"space-y-0.5 rounded border px-2 py-1 text-[11px]\", alarming ? ALERT_ROW : \"border-border\")}\n data-event-type={event.type}\n >\n <div className=\"flex min-w-0 items-center gap-2\">\n <Badge size=\"xs\" clickToCopy={false} tone={alarming ? \"danger\" : \"neutral\"}>{event.type}</Badge>\n {event.status !== undefined && <span className=\"font-mono\">{event.status}</span>}\n {event.text && <span className={cn(\"min-w-0 break-words\", event.type === \"alert\" && \"font-medium\")}>{event.text}</span>}\n </div>\n {event.url && <div className=\"break-all font-mono text-[10px] opacity-80\">{event.url}</div>}\n {event.detail && <p className=\"whitespace-pre-wrap break-words\">{event.detail}</p>}\n </li>\n );\n}\n\n// ── Whole step ──────────────────────────────────────────────────────────────\n\n/** Execution sections for a typed fixture step; final outputs render separately. */\nexport function StepKindSections({ step, renderWait }: { step: StepDetail; renderWait?: (wait: WaitDetail) => ReactNode }) {\n const selectTab = useSelectDetailTab();\n const viewOutputs = selectTab && step.outputs !== undefined ? () => selectTab(\"outputs\") : undefined;\n return (\n <>\n <div className=\"text-[11px] text-muted-foreground\" data-step-ref=\"\">\n {step.step.kind} · {step.step.id}\n {step.background && \" · background\"}\n </div>\n {step.wait && (renderWait ? renderWait(step.wait) : <StepWait wait={step.wait} {...(viewOutputs ? { onViewOutputs: viewOutputs } : {})} />)}\n {step.events.length > 0 && (\n <Section name=\"events\" title=\"Events\">\n <ul className=\"space-y-1\">\n {step.events.map((event, index) => (\n <EventRow key={index} event={event} />\n ))}\n </ul>\n </Section>\n )}\n {step.exports.length > 0 && (\n <Section name=\"exports\" title=\"Exports\">\n <ExportsTable exports={step.exports} />\n </Section>\n )}\n </>\n );\n}\n\nexport function StepOutputs({ outputs }: { outputs: unknown }) {\n return (\n <div className=\"min-w-0 p-density-4\" data-step-section=\"outputs\">\n <JsonView data={outputs} />\n </div>\n );\n}\n\n/** Shown in place of the sections when `detail.step` is present but breaks the contract. */\n// ── Source ──────────────────────────────────────────────────────────────────\n\n/** The YAML or markdown lines a failed step was written as, under its file and line range. */\nexport function StepSourceSection({ result }: { result: StepSourceResult }) {\n if (result.kind === \"none\") return null;\n if (result.kind === \"invalid\") {\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\">\n <MalformedNotice>Malformed source detail: {result.error}</MalformedNotice>\n </Section>\n </div>\n );\n }\n const { source } = result;\n const location = <span className=\"font-mono text-[11px] text-muted-foreground\" title={source.file}>{basename(source.file)}:{source.line}-{source.endLine}</span>;\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\" aside={location}>\n {source.error ? (\n <div className={cn(\"rounded border px-2 py-1 text-xs\", ALERT_ROW)}>Source unavailable: {source.error}</div>\n ) : (\n <CodeBlock language={source.language} source={source.text ?? \"\"} copyable />\n )}\n {source.moreLines ? <div className=\"text-[11px] text-muted-foreground\">… {source.moreLines} more lines</div> : null}\n </Section>\n </div>\n );\n}\n\nfunction MalformedNotice({ children }: { children: ReactNode }) {\n return (\n <div role=\"alert\" className=\"rounded border border-red-500/60 bg-red-500/10 px-2 py-1 text-xs text-red-700 dark:text-red-400\">\n {children}\n </div>\n );\n}\n\nexport function MalformedStepDetail({ error }: { error: string }) {\n return <MalformedNotice>Malformed step detail: {error}</MalformedNotice>;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { StepSourceResult } from './stepSource.js';
|
|
3
3
|
import { ExecutionHeader, StepDetail, WaitDetail } from './stepKind.js';
|
|
4
|
+
/** The host's answerable form for a step waiting on a person. */
|
|
5
|
+
export declare function StepPendingFormSection({ children }: {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
4
8
|
/**
|
|
5
9
|
* The wait's conditions (the deciding one carries the outcome), elapsed time and
|
|
6
10
|
* schedule. `onViewOutputs` links to the host's Outputs tab; without it the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepKindViews.d.ts","sourceRoot":"","sources":["../../../src/data/verification/stepKindViews.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"stepKindViews.d.ts","sourceRoot":"","sources":["../../../src/data/verification/stepKindViews.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,UAAU,EAGf,KAAK,UAAU,EAGhB,MAAM,YAAY,CAAC;AAgBpB,iEAAiE;AACjE,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAU3E;AAqBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,+BAoCjG;AAgBD,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,sCAsBvG;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAMnE;AAqDD,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,SAAS,CAAA;CAAE,+BA0BxH;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,+BAM5D;AAED,4FAA4F;AAG5F,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,sCAyBzE;AAUD,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,+BAE/D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cn } from "../../lib/utils.js";
|
|
2
|
+
import { UiHourglass } from "../../icons/components/UiHourglass.js";
|
|
2
3
|
import { Button } from "../../components/button.js";
|
|
3
4
|
import { Badge } from "../Badge.js";
|
|
4
5
|
import { JsonView } from "../JsonView.js";
|
|
@@ -22,6 +23,21 @@ function Section({ name, title, aside, children }) {
|
|
|
22
23
|
}), children]
|
|
23
24
|
});
|
|
24
25
|
}
|
|
26
|
+
/** The host's answerable form for a step waiting on a person. */
|
|
27
|
+
function StepPendingFormSection({ children }) {
|
|
28
|
+
return /* @__PURE__ */ jsx(Section, {
|
|
29
|
+
name: "pending-form",
|
|
30
|
+
title: "Form",
|
|
31
|
+
aside: /* @__PURE__ */ jsx(Badge, {
|
|
32
|
+
tone: "warning",
|
|
33
|
+
size: "xs",
|
|
34
|
+
icon: UiHourglass,
|
|
35
|
+
clickToCopy: false,
|
|
36
|
+
children: "Awaiting answer"
|
|
37
|
+
}),
|
|
38
|
+
children
|
|
39
|
+
});
|
|
40
|
+
}
|
|
25
41
|
var OUTCOME_BADGE = {
|
|
26
42
|
satisfied: {
|
|
27
43
|
label: "Satisfied",
|
|
@@ -400,6 +416,6 @@ function MalformedNotice({ children }) {
|
|
|
400
416
|
function MalformedStepDetail({ error }) {
|
|
401
417
|
return /* @__PURE__ */ jsxs(MalformedNotice, { children: ["Malformed step detail: ", error] });
|
|
402
418
|
}
|
|
403
|
-
export { ExecutionHeaderView, FailureCallout, MalformedStepDetail, StepKindSections, StepOutputs, StepSourceSection, StepWait };
|
|
419
|
+
export { ExecutionHeaderView, FailureCallout, MalformedStepDetail, StepKindSections, StepOutputs, StepPendingFormSection, StepSourceSection, StepWait };
|
|
404
420
|
|
|
405
421
|
//# sourceMappingURL=stepKindViews.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepKindViews.js","names":["_Fragment"],"sources":["../../../src/data/verification/stepKindViews.tsx"],"sourcesContent":["// Detail sections for a typed fixture step (see stepKind.ts): the wait\n// timeline, retry attempts, exported variables, outputs and a background\n// watcher's events. Rendered inside FixtureDetail; split out so adapterViews.tsx\n// stays focused on the command/CEL body.\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Badge, type BadgeTone } from \"../Badge\";\nimport { CodeBlock } from \"../CodeBlock\";\nimport { JsonView } from \"../JsonView\";\nimport type { StepSourceResult } from \"./stepSource\";\nimport { formatTestDuration, useSelectDetailTab } from \"../test-runner\";\nimport {\n clockTime,\n formatDelay,\n formatExportValue,\n policySummary,\n waitDecidedBy,\n type ExecutionHeader,\n type StepDetail,\n type StepExport,\n type WaitCondition,\n type WaitDetail,\n type WaitOutcome,\n type WatcherEvent,\n} from \"./stepKind\";\n\nconst ALERT_ROW = \"border-red-500/60 bg-red-500/10 text-red-700 dark:text-red-400\";\n\nfunction Section({ name, title, aside, children }: { name: string; title: string; aside?: ReactNode; children: ReactNode }) {\n return (\n <section className=\"min-w-0 space-y-1.5\" data-step-section={name}>\n <div className=\"flex items-center gap-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{title}</div>\n {aside}\n </div>\n {children}\n </section>\n );\n}\n\n// ── Wait ────────────────────────────────────────────────────────────────────\n\nconst OUTCOME_BADGE: Record<WaitOutcome, { label: string; tone: BadgeTone }> = {\n satisfied: { label: \"Satisfied\", tone: \"success\" },\n failed: { label: \"Failed\", tone: \"danger\" },\n timeout: { label: \"Timed out\", tone: \"warning\" },\n};\n\nfunction WaitConditionRow({ condition, expression, decisive, wait }: { condition: WaitCondition; expression: string; decisive: boolean; wait: WaitDetail }) {\n const { label, tone } = OUTCOME_BADGE[wait.outcome];\n return (\n <li className=\"flex min-w-0 items-center gap-2\" data-wait-condition={condition} {...(decisive ? { \"data-wait-decisive\": \"\" } : {})}>\n <span className=\"w-14 shrink-0 text-muted-foreground\">{condition}</span>\n <code className=\"min-w-0 shrink break-words font-mono\">{expression}</code>\n {decisive && <Badge size=\"xs\" clickToCopy={false} tone={tone}>{label}</Badge>}\n </li>\n );\n}\n\n/**\n * The wait's conditions (the deciding one carries the outcome), elapsed time and\n * schedule. `onViewOutputs` links to the host's Outputs tab; without it the\n * observed outputs render inline, collapsed to depth 1, inside the details.\n */\nexport function StepWait({ wait, onViewOutputs }: { wait: WaitDetail; onViewOutputs?: () => void }) {\n const { policy } = wait;\n const schedule = policySummary(policy);\n const decidedBy = waitDecidedBy(wait);\n const inlineOutputs = wait.outputs !== undefined && !onViewOutputs;\n return (\n <section className=\"min-w-0 text-[11px]\" data-step-section=\"wait\">\n <div className=\"flex min-w-0 items-center gap-2\" data-wait-summary=\"\">\n <span className=\"shrink-0 text-muted-foreground\">Wait</span>\n <Badge size=\"xs\" clickToCopy={false}>{formatDelay(wait.durationMs)}</Badge>\n {wait.outputs !== undefined && onViewOutputs && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto px-0 text-[11px]\" onClick={onViewOutputs}>View outputs</Button>\n )}\n </div>\n <ul className=\"mt-1 space-y-0.5\" data-wait-conditions=\"\">\n <WaitConditionRow condition=\"until\" expression={policy.until ?? \"Service readiness\"} decisive={decidedBy === \"until\"} wait={wait} />\n {policy.failWhen && <WaitConditionRow condition=\"failWhen\" expression={policy.failWhen} decisive={decidedBy === \"failWhen\"} wait={wait} />}\n </ul>\n {(schedule || wait.error || wait.trace || inlineOutputs) && (\n <details className=\"mt-1 text-muted-foreground\" open={wait.outcome !== \"satisfied\"}>\n <summary className=\"cursor-pointer\">Wait details</summary>\n <div className=\"mt-1 space-y-1 break-words\">\n {schedule && <p>{schedule}</p>}\n {wait.error && <p className=\"text-destructive\">{wait.error}</p>}\n {wait.trace && <pre className=\"whitespace-pre-wrap\">{wait.trace}</pre>}\n {inlineOutputs && (\n <div className=\"min-w-0\" data-wait-outputs=\"\">\n <div className=\"text-[10px] uppercase tracking-wide\">Outputs</div>\n <JsonView data={wait.outputs} defaultOpenDepth={1} />\n </div>\n )}\n </div>\n </details>\n )}\n </section>\n );\n}\n\n// ── Execution header ────────────────────────────────────────────────────────\n\nconst STATE_TONE: Record<string, BadgeTone> = { passed: \"success\", failed: \"danger\", warned: \"warning\", timedout: \"warning\", running: \"info\" };\n\nfunction basename(path: string): string {\n return path.split(\"/\").filter(Boolean).at(-1) ?? path;\n}\n\nfunction stepPosition({ rowIndex, line }: ExecutionHeader): string | undefined {\n // gavel numbers steps and table rows from 1.\n if (rowIndex !== undefined) return `step #${rowIndex}`;\n return line !== undefined ? `line ${line}` : undefined;\n}\n\n/** Where a fixture step came from (file · step · section), its kind and state, and when it ran. */\nexport function ExecutionHeaderView({ header, stepKind }: { header: ExecutionHeader; stepKind?: string }) {\n const place = [stepPosition(header), header.sectionPath].filter(Boolean).join(\" · \");\n const kinds = [header.kind, stepKind].filter((kind, i, all): kind is string => !!kind && all.indexOf(kind) === i);\n const window = header.startedAt && header.finishedAt ? `${clockTime(header.startedAt)} → ${clockTime(header.finishedAt)}` : header.startedAt ? `started ${clockTime(header.startedAt)}` : undefined;\n if (!header.file && !place && kinds.length === 0 && !header.state && !window && header.durationNs === undefined) return null;\n return (\n <div className=\"min-w-0 space-y-1\" data-execution-header=\"\">\n {(header.file || place) && (\n <div className=\"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-xs\">\n {header.file && <span className=\"font-medium\" title={header.file}>{basename(header.file)}</span>}\n {header.file && place && <span className=\"text-muted-foreground\">·</span>}\n {place && <span className=\"min-w-0 break-words text-muted-foreground\">{place}</span>}\n </div>\n )}\n <div className=\"flex min-w-0 flex-wrap items-center gap-2 text-[11px] text-muted-foreground\">\n {kinds.map((kind) => <Badge key={kind} size=\"xs\" clickToCopy={false}>{kind}</Badge>)}\n {header.state && <Badge size=\"xs\" clickToCopy={false} tone={STATE_TONE[header.state] ?? \"neutral\"}>{header.state}</Badge>}\n {window && <span className=\"font-mono\">{window}</span>}\n {header.durationNs !== undefined && <span>{formatTestDuration(header.durationNs)}</span>}\n </div>\n </div>\n );\n}\n\n/** A failure message as a red bordered block that keeps the line breaks of multi-line causes. */\nexport function FailureCallout({ children }: { children: ReactNode }) {\n return (\n <div className={cn(\"whitespace-pre-wrap break-words rounded border px-2 py-1.5 text-sm\", ALERT_ROW)} data-failure-callout=\"\">\n {children}\n </div>\n );\n}\n\n// ── Exports ─────────────────────────────────────────────────────────────────\n\nfunction ExportsTable({ exports }: { exports: StepExport[] }) {\n return (\n <table className=\"w-full table-fixed border-collapse text-left text-[11px]\">\n <thead className=\"text-muted-foreground\">\n <tr className=\"border-b border-border\">\n <th className=\"w-[28%] py-1 pr-2 font-medium\">Name</th>\n <th className=\"py-1 pr-2 font-medium\">Value</th>\n <th className=\"w-[18%] py-1 font-medium\">Step</th>\n </tr>\n </thead>\n <tbody className=\"font-mono\">\n {exports.map((entry) => (\n <tr key={entry.name} className=\"border-b border-border/60 align-top last:border-0\">\n <td className=\"break-words py-1 pr-2\">{entry.name}</td>\n <td className=\"break-all py-1 pr-2\">{formatExportValue(entry.value)}</td>\n <td className=\"break-words py-1 text-muted-foreground\">{entry.step}</td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\n// ── Watcher events ──────────────────────────────────────────────────────────\n\nfunction isAlarming(event: WatcherEvent): boolean {\n return event.type === \"alert\" || event.type === \"pageerror\" || (event.type === \"response\" && (event.status ?? 0) >= 400);\n}\n\nfunction EventRow({ event }: { event: WatcherEvent }) {\n const alarming = isAlarming(event);\n return (\n <li\n className={cn(\"space-y-0.5 rounded border px-2 py-1 text-[11px]\", alarming ? ALERT_ROW : \"border-border\")}\n data-event-type={event.type}\n >\n <div className=\"flex min-w-0 items-center gap-2\">\n <Badge size=\"xs\" clickToCopy={false} tone={alarming ? \"danger\" : \"neutral\"}>{event.type}</Badge>\n {event.status !== undefined && <span className=\"font-mono\">{event.status}</span>}\n {event.text && <span className={cn(\"min-w-0 break-words\", event.type === \"alert\" && \"font-medium\")}>{event.text}</span>}\n </div>\n {event.url && <div className=\"break-all font-mono text-[10px] opacity-80\">{event.url}</div>}\n {event.detail && <p className=\"whitespace-pre-wrap break-words\">{event.detail}</p>}\n </li>\n );\n}\n\n// ── Whole step ──────────────────────────────────────────────────────────────\n\n/** Execution sections for a typed fixture step; final outputs render separately. */\nexport function StepKindSections({ step, renderWait }: { step: StepDetail; renderWait?: (wait: WaitDetail) => ReactNode }) {\n const selectTab = useSelectDetailTab();\n const viewOutputs = selectTab && step.outputs !== undefined ? () => selectTab(\"outputs\") : undefined;\n return (\n <>\n <div className=\"text-[11px] text-muted-foreground\" data-step-ref=\"\">\n {step.step.kind} · {step.step.id}\n {step.background && \" · background\"}\n </div>\n {step.wait && (renderWait ? renderWait(step.wait) : <StepWait wait={step.wait} {...(viewOutputs ? { onViewOutputs: viewOutputs } : {})} />)}\n {step.events.length > 0 && (\n <Section name=\"events\" title=\"Events\">\n <ul className=\"space-y-1\">\n {step.events.map((event, index) => (\n <EventRow key={index} event={event} />\n ))}\n </ul>\n </Section>\n )}\n {step.exports.length > 0 && (\n <Section name=\"exports\" title=\"Exports\">\n <ExportsTable exports={step.exports} />\n </Section>\n )}\n </>\n );\n}\n\nexport function StepOutputs({ outputs }: { outputs: unknown }) {\n return (\n <div className=\"min-w-0 p-density-4\" data-step-section=\"outputs\">\n <JsonView data={outputs} />\n </div>\n );\n}\n\n/** Shown in place of the sections when `detail.step` is present but breaks the contract. */\n// ── Source ──────────────────────────────────────────────────────────────────\n\n/** The YAML or markdown lines a failed step was written as, under its file and line range. */\nexport function StepSourceSection({ result }: { result: StepSourceResult }) {\n if (result.kind === \"none\") return null;\n if (result.kind === \"invalid\") {\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\">\n <MalformedNotice>Malformed source detail: {result.error}</MalformedNotice>\n </Section>\n </div>\n );\n }\n const { source } = result;\n const location = <span className=\"font-mono text-[11px] text-muted-foreground\" title={source.file}>{basename(source.file)}:{source.line}-{source.endLine}</span>;\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\" aside={location}>\n {source.error ? (\n <div className={cn(\"rounded border px-2 py-1 text-xs\", ALERT_ROW)}>Source unavailable: {source.error}</div>\n ) : (\n <CodeBlock language={source.language} source={source.text ?? \"\"} copyable />\n )}\n {source.moreLines ? <div className=\"text-[11px] text-muted-foreground\">… {source.moreLines} more lines</div> : null}\n </Section>\n </div>\n );\n}\n\nfunction MalformedNotice({ children }: { children: ReactNode }) {\n return (\n <div role=\"alert\" className=\"rounded border border-red-500/60 bg-red-500/10 px-2 py-1 text-xs text-red-700 dark:text-red-400\">\n {children}\n </div>\n );\n}\n\nexport function MalformedStepDetail({ error }: { error: string }) {\n return <MalformedNotice>Malformed step detail: {error}</MalformedNotice>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stepKindViews.js","names":["_Fragment"],"sources":["../../../src/data/verification/stepKindViews.tsx"],"sourcesContent":["// Detail sections for a typed fixture step (see stepKind.ts): the wait\n// timeline, retry attempts, exported variables, outputs and a background\n// watcher's events. Rendered inside FixtureDetail; split out so adapterViews.tsx\n// stays focused on the command/CEL body.\n\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Badge, type BadgeTone } from \"../Badge\";\nimport { CodeBlock } from \"../CodeBlock\";\nimport { JsonView } from \"../JsonView\";\nimport type { StepSourceResult } from \"./stepSource\";\nimport { formatTestDuration, useSelectDetailTab } from \"../test-runner\";\nimport { UiHourglass } from \"../../icons\";\nimport {\n clockTime,\n formatDelay,\n formatExportValue,\n policySummary,\n waitDecidedBy,\n type ExecutionHeader,\n type StepDetail,\n type StepExport,\n type WaitCondition,\n type WaitDetail,\n type WaitOutcome,\n type WatcherEvent,\n} from \"./stepKind\";\n\nconst ALERT_ROW = \"border-red-500/60 bg-red-500/10 text-red-700 dark:text-red-400\";\n\nfunction Section({ name, title, aside, children }: { name: string; title: string; aside?: ReactNode; children: ReactNode }) {\n return (\n <section className=\"min-w-0 space-y-1.5\" data-step-section={name}>\n <div className=\"flex items-center gap-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{title}</div>\n {aside}\n </div>\n {children}\n </section>\n );\n}\n\n/** The host's answerable form for a step waiting on a person. */\nexport function StepPendingFormSection({ children }: { children: ReactNode }) {\n return (\n <Section\n name=\"pending-form\"\n title=\"Form\"\n aside={<Badge tone=\"warning\" size=\"xs\" icon={UiHourglass} clickToCopy={false}>Awaiting answer</Badge>}\n >\n {children}\n </Section>\n );\n}\n\n// ── Wait ────────────────────────────────────────────────────────────────────\n\nconst OUTCOME_BADGE: Record<WaitOutcome, { label: string; tone: BadgeTone }> = {\n satisfied: { label: \"Satisfied\", tone: \"success\" },\n failed: { label: \"Failed\", tone: \"danger\" },\n timeout: { label: \"Timed out\", tone: \"warning\" },\n};\n\nfunction WaitConditionRow({ condition, expression, decisive, wait }: { condition: WaitCondition; expression: string; decisive: boolean; wait: WaitDetail }) {\n const { label, tone } = OUTCOME_BADGE[wait.outcome];\n return (\n <li className=\"flex min-w-0 items-center gap-2\" data-wait-condition={condition} {...(decisive ? { \"data-wait-decisive\": \"\" } : {})}>\n <span className=\"w-14 shrink-0 text-muted-foreground\">{condition}</span>\n <code className=\"min-w-0 shrink break-words font-mono\">{expression}</code>\n {decisive && <Badge size=\"xs\" clickToCopy={false} tone={tone}>{label}</Badge>}\n </li>\n );\n}\n\n/**\n * The wait's conditions (the deciding one carries the outcome), elapsed time and\n * schedule. `onViewOutputs` links to the host's Outputs tab; without it the\n * observed outputs render inline, collapsed to depth 1, inside the details.\n */\nexport function StepWait({ wait, onViewOutputs }: { wait: WaitDetail; onViewOutputs?: () => void }) {\n const { policy } = wait;\n const schedule = policySummary(policy);\n const decidedBy = waitDecidedBy(wait);\n const inlineOutputs = wait.outputs !== undefined && !onViewOutputs;\n return (\n <section className=\"min-w-0 text-[11px]\" data-step-section=\"wait\">\n <div className=\"flex min-w-0 items-center gap-2\" data-wait-summary=\"\">\n <span className=\"shrink-0 text-muted-foreground\">Wait</span>\n <Badge size=\"xs\" clickToCopy={false}>{formatDelay(wait.durationMs)}</Badge>\n {wait.outputs !== undefined && onViewOutputs && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto px-0 text-[11px]\" onClick={onViewOutputs}>View outputs</Button>\n )}\n </div>\n <ul className=\"mt-1 space-y-0.5\" data-wait-conditions=\"\">\n <WaitConditionRow condition=\"until\" expression={policy.until ?? \"Service readiness\"} decisive={decidedBy === \"until\"} wait={wait} />\n {policy.failWhen && <WaitConditionRow condition=\"failWhen\" expression={policy.failWhen} decisive={decidedBy === \"failWhen\"} wait={wait} />}\n </ul>\n {(schedule || wait.error || wait.trace || inlineOutputs) && (\n <details className=\"mt-1 text-muted-foreground\" open={wait.outcome !== \"satisfied\"}>\n <summary className=\"cursor-pointer\">Wait details</summary>\n <div className=\"mt-1 space-y-1 break-words\">\n {schedule && <p>{schedule}</p>}\n {wait.error && <p className=\"text-destructive\">{wait.error}</p>}\n {wait.trace && <pre className=\"whitespace-pre-wrap\">{wait.trace}</pre>}\n {inlineOutputs && (\n <div className=\"min-w-0\" data-wait-outputs=\"\">\n <div className=\"text-[10px] uppercase tracking-wide\">Outputs</div>\n <JsonView data={wait.outputs} defaultOpenDepth={1} />\n </div>\n )}\n </div>\n </details>\n )}\n </section>\n );\n}\n\n// ── Execution header ────────────────────────────────────────────────────────\n\nconst STATE_TONE: Record<string, BadgeTone> = { passed: \"success\", failed: \"danger\", warned: \"warning\", timedout: \"warning\", running: \"info\" };\n\nfunction basename(path: string): string {\n return path.split(\"/\").filter(Boolean).at(-1) ?? path;\n}\n\nfunction stepPosition({ rowIndex, line }: ExecutionHeader): string | undefined {\n // gavel numbers steps and table rows from 1.\n if (rowIndex !== undefined) return `step #${rowIndex}`;\n return line !== undefined ? `line ${line}` : undefined;\n}\n\n/** Where a fixture step came from (file · step · section), its kind and state, and when it ran. */\nexport function ExecutionHeaderView({ header, stepKind }: { header: ExecutionHeader; stepKind?: string }) {\n const place = [stepPosition(header), header.sectionPath].filter(Boolean).join(\" · \");\n const kinds = [header.kind, stepKind].filter((kind, i, all): kind is string => !!kind && all.indexOf(kind) === i);\n const window = header.startedAt && header.finishedAt ? `${clockTime(header.startedAt)} → ${clockTime(header.finishedAt)}` : header.startedAt ? `started ${clockTime(header.startedAt)}` : undefined;\n if (!header.file && !place && kinds.length === 0 && !header.state && !window && header.durationNs === undefined) return null;\n return (\n <div className=\"min-w-0 space-y-1\" data-execution-header=\"\">\n {(header.file || place) && (\n <div className=\"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-xs\">\n {header.file && <span className=\"font-medium\" title={header.file}>{basename(header.file)}</span>}\n {header.file && place && <span className=\"text-muted-foreground\">·</span>}\n {place && <span className=\"min-w-0 break-words text-muted-foreground\">{place}</span>}\n </div>\n )}\n <div className=\"flex min-w-0 flex-wrap items-center gap-2 text-[11px] text-muted-foreground\">\n {kinds.map((kind) => <Badge key={kind} size=\"xs\" clickToCopy={false}>{kind}</Badge>)}\n {header.state && <Badge size=\"xs\" clickToCopy={false} tone={STATE_TONE[header.state] ?? \"neutral\"}>{header.state}</Badge>}\n {window && <span className=\"font-mono\">{window}</span>}\n {header.durationNs !== undefined && <span>{formatTestDuration(header.durationNs)}</span>}\n </div>\n </div>\n );\n}\n\n/** A failure message as a red bordered block that keeps the line breaks of multi-line causes. */\nexport function FailureCallout({ children }: { children: ReactNode }) {\n return (\n <div className={cn(\"whitespace-pre-wrap break-words rounded border px-2 py-1.5 text-sm\", ALERT_ROW)} data-failure-callout=\"\">\n {children}\n </div>\n );\n}\n\n// ── Exports ─────────────────────────────────────────────────────────────────\n\nfunction ExportsTable({ exports }: { exports: StepExport[] }) {\n return (\n <table className=\"w-full table-fixed border-collapse text-left text-[11px]\">\n <thead className=\"text-muted-foreground\">\n <tr className=\"border-b border-border\">\n <th className=\"w-[28%] py-1 pr-2 font-medium\">Name</th>\n <th className=\"py-1 pr-2 font-medium\">Value</th>\n <th className=\"w-[18%] py-1 font-medium\">Step</th>\n </tr>\n </thead>\n <tbody className=\"font-mono\">\n {exports.map((entry) => (\n <tr key={entry.name} className=\"border-b border-border/60 align-top last:border-0\">\n <td className=\"break-words py-1 pr-2\">{entry.name}</td>\n <td className=\"break-all py-1 pr-2\">{formatExportValue(entry.value)}</td>\n <td className=\"break-words py-1 text-muted-foreground\">{entry.step}</td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\n// ── Watcher events ──────────────────────────────────────────────────────────\n\nfunction isAlarming(event: WatcherEvent): boolean {\n return event.type === \"alert\" || event.type === \"pageerror\" || (event.type === \"response\" && (event.status ?? 0) >= 400);\n}\n\nfunction EventRow({ event }: { event: WatcherEvent }) {\n const alarming = isAlarming(event);\n return (\n <li\n className={cn(\"space-y-0.5 rounded border px-2 py-1 text-[11px]\", alarming ? ALERT_ROW : \"border-border\")}\n data-event-type={event.type}\n >\n <div className=\"flex min-w-0 items-center gap-2\">\n <Badge size=\"xs\" clickToCopy={false} tone={alarming ? \"danger\" : \"neutral\"}>{event.type}</Badge>\n {event.status !== undefined && <span className=\"font-mono\">{event.status}</span>}\n {event.text && <span className={cn(\"min-w-0 break-words\", event.type === \"alert\" && \"font-medium\")}>{event.text}</span>}\n </div>\n {event.url && <div className=\"break-all font-mono text-[10px] opacity-80\">{event.url}</div>}\n {event.detail && <p className=\"whitespace-pre-wrap break-words\">{event.detail}</p>}\n </li>\n );\n}\n\n// ── Whole step ──────────────────────────────────────────────────────────────\n\n/** Execution sections for a typed fixture step; final outputs render separately. */\nexport function StepKindSections({ step, renderWait }: { step: StepDetail; renderWait?: (wait: WaitDetail) => ReactNode }) {\n const selectTab = useSelectDetailTab();\n const viewOutputs = selectTab && step.outputs !== undefined ? () => selectTab(\"outputs\") : undefined;\n return (\n <>\n <div className=\"text-[11px] text-muted-foreground\" data-step-ref=\"\">\n {step.step.kind} · {step.step.id}\n {step.background && \" · background\"}\n </div>\n {step.wait && (renderWait ? renderWait(step.wait) : <StepWait wait={step.wait} {...(viewOutputs ? { onViewOutputs: viewOutputs } : {})} />)}\n {step.events.length > 0 && (\n <Section name=\"events\" title=\"Events\">\n <ul className=\"space-y-1\">\n {step.events.map((event, index) => (\n <EventRow key={index} event={event} />\n ))}\n </ul>\n </Section>\n )}\n {step.exports.length > 0 && (\n <Section name=\"exports\" title=\"Exports\">\n <ExportsTable exports={step.exports} />\n </Section>\n )}\n </>\n );\n}\n\nexport function StepOutputs({ outputs }: { outputs: unknown }) {\n return (\n <div className=\"min-w-0 p-density-4\" data-step-section=\"outputs\">\n <JsonView data={outputs} />\n </div>\n );\n}\n\n/** Shown in place of the sections when `detail.step` is present but breaks the contract. */\n// ── Source ──────────────────────────────────────────────────────────────────\n\n/** The YAML or markdown lines a failed step was written as, under its file and line range. */\nexport function StepSourceSection({ result }: { result: StepSourceResult }) {\n if (result.kind === \"none\") return null;\n if (result.kind === \"invalid\") {\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\">\n <MalformedNotice>Malformed source detail: {result.error}</MalformedNotice>\n </Section>\n </div>\n );\n }\n const { source } = result;\n const location = <span className=\"font-mono text-[11px] text-muted-foreground\" title={source.file}>{basename(source.file)}:{source.line}-{source.endLine}</span>;\n return (\n <div data-step-source=\"\">\n <Section name=\"source\" title=\"Source\" aside={location}>\n {source.error ? (\n <div className={cn(\"rounded border px-2 py-1 text-xs\", ALERT_ROW)}>Source unavailable: {source.error}</div>\n ) : (\n <CodeBlock language={source.language} source={source.text ?? \"\"} copyable />\n )}\n {source.moreLines ? <div className=\"text-[11px] text-muted-foreground\">… {source.moreLines} more lines</div> : null}\n </Section>\n </div>\n );\n}\n\nfunction MalformedNotice({ children }: { children: ReactNode }) {\n return (\n <div role=\"alert\" className=\"rounded border border-red-500/60 bg-red-500/10 px-2 py-1 text-xs text-red-700 dark:text-red-400\">\n {children}\n </div>\n );\n}\n\nexport function MalformedStepDetail({ error }: { error: string }) {\n return <MalformedNotice>Malformed step detail: {error}</MalformedNotice>;\n}\n"],"mappings":"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"}
|
|
@@ -14,9 +14,9 @@ function detectMode() {
|
|
|
14
14
|
/** Resolve build + runtime version metadata. */
|
|
15
15
|
function getVersionInfo() {
|
|
16
16
|
return {
|
|
17
|
-
commit: read(() => "
|
|
18
|
-
tag: read(() => "clicky-ui@0.3.
|
|
19
|
-
date: read(() => "2026-11-
|
|
17
|
+
commit: read(() => "5f0a1ce66", ""),
|
|
18
|
+
tag: read(() => "clicky-ui@0.3.59", ""),
|
|
19
|
+
date: read(() => "2026-11-13T03:37:37.989Z", ""),
|
|
20
20
|
dirty: read(() => true, false),
|
|
21
21
|
mode: detectMode()
|
|
22
22
|
};
|
|
@@ -14,9 +14,9 @@ function detectMode() {
|
|
|
14
14
|
/** Resolve build + runtime version metadata. */
|
|
15
15
|
function getVersionInfo() {
|
|
16
16
|
return {
|
|
17
|
-
commit: read(() => "
|
|
18
|
-
tag: read(() => "clicky-ui@0.3.
|
|
19
|
-
date: read(() => "2026-11-
|
|
17
|
+
commit: read(() => "5f0a1ce66", ""),
|
|
18
|
+
tag: read(() => "clicky-ui@0.3.59", ""),
|
|
19
|
+
date: read(() => "2026-11-13T03:37:09.699Z", ""),
|
|
20
20
|
dirty: read(() => true, false),
|
|
21
21
|
mode: detectMode()
|
|
22
22
|
};
|