@flanksource/clicky-ui 0.3.1 → 0.3.3
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/dist/comments/CommentAuthor.cjs +58 -0
- package/dist/comments/CommentAuthor.cjs.map +1 -0
- package/dist/comments/CommentAuthor.d.ts +17 -0
- package/dist/comments/CommentAuthor.d.ts.map +1 -0
- package/dist/comments/CommentAuthor.js +58 -0
- package/dist/comments/CommentAuthor.js.map +1 -0
- package/dist/comments/CommentCard.cjs +343 -0
- package/dist/comments/CommentCard.cjs.map +1 -0
- package/dist/comments/CommentCard.d.ts +27 -0
- package/dist/comments/CommentCard.d.ts.map +1 -0
- package/dist/comments/CommentCard.js +343 -0
- package/dist/comments/CommentCard.js.map +1 -0
- package/dist/comments/CommentComposer.cjs +207 -0
- package/dist/comments/CommentComposer.cjs.map +1 -0
- package/dist/comments/CommentComposer.d.ts +23 -0
- package/dist/comments/CommentComposer.d.ts.map +1 -0
- package/dist/comments/CommentComposer.js +207 -0
- package/dist/comments/CommentComposer.js.map +1 -0
- package/dist/comments/CommentFilterBar.cjs +145 -0
- package/dist/comments/CommentFilterBar.cjs.map +1 -0
- package/dist/comments/CommentFilterBar.d.ts +15 -0
- package/dist/comments/CommentFilterBar.d.ts.map +1 -0
- package/dist/comments/CommentFilterBar.js +145 -0
- package/dist/comments/CommentFilterBar.js.map +1 -0
- package/dist/comments/CommentMarkdown.cjs +156 -0
- package/dist/comments/CommentMarkdown.cjs.map +1 -0
- package/dist/comments/CommentMarkdown.d.ts +13 -0
- package/dist/comments/CommentMarkdown.d.ts.map +1 -0
- package/dist/comments/CommentMarkdown.js +156 -0
- package/dist/comments/CommentMarkdown.js.map +1 -0
- package/dist/comments/CommentProgress.cjs +86 -0
- package/dist/comments/CommentProgress.cjs.map +1 -0
- package/dist/comments/CommentProgress.d.ts +16 -0
- package/dist/comments/CommentProgress.d.ts.map +1 -0
- package/dist/comments/CommentProgress.js +86 -0
- package/dist/comments/CommentProgress.js.map +1 -0
- package/dist/comments/CommentProvider.cjs +99 -0
- package/dist/comments/CommentProvider.cjs.map +1 -0
- package/dist/comments/CommentProvider.d.ts +19 -0
- package/dist/comments/CommentProvider.d.ts.map +1 -0
- package/dist/comments/CommentProvider.js +99 -0
- package/dist/comments/CommentProvider.js.map +1 -0
- package/dist/comments/CommentSidePanel.cjs +219 -0
- package/dist/comments/CommentSidePanel.cjs.map +1 -0
- package/dist/comments/CommentSidePanel.d.ts +16 -0
- package/dist/comments/CommentSidePanel.d.ts.map +1 -0
- package/dist/comments/CommentSidePanel.js +219 -0
- package/dist/comments/CommentSidePanel.js.map +1 -0
- package/dist/comments/CommentThread.cjs +57 -0
- package/dist/comments/CommentThread.cjs.map +1 -0
- package/dist/comments/CommentThread.d.ts +24 -0
- package/dist/comments/CommentThread.d.ts.map +1 -0
- package/dist/comments/CommentThread.js +57 -0
- package/dist/comments/CommentThread.js.map +1 -0
- package/dist/comments/CommentThreadList.cjs +124 -0
- package/dist/comments/CommentThreadList.cjs.map +1 -0
- package/dist/comments/CommentThreadList.d.ts +25 -0
- package/dist/comments/CommentThreadList.d.ts.map +1 -0
- package/dist/comments/CommentThreadList.js +124 -0
- package/dist/comments/CommentThreadList.js.map +1 -0
- package/dist/comments/GroupedComments.cjs +74 -0
- package/dist/comments/GroupedComments.cjs.map +1 -0
- package/dist/comments/GroupedComments.d.ts +18 -0
- package/dist/comments/GroupedComments.d.ts.map +1 -0
- package/dist/comments/GroupedComments.js +74 -0
- package/dist/comments/GroupedComments.js.map +1 -0
- package/dist/comments/MentionTextarea.cjs +253 -0
- package/dist/comments/MentionTextarea.cjs.map +1 -0
- package/dist/comments/MentionTextarea.d.ts +28 -0
- package/dist/comments/MentionTextarea.d.ts.map +1 -0
- package/dist/comments/MentionTextarea.js +253 -0
- package/dist/comments/MentionTextarea.js.map +1 -0
- package/dist/comments/comment-context.cjs +33 -0
- package/dist/comments/comment-context.cjs.map +1 -0
- package/dist/comments/comment-context.d.ts +32 -0
- package/dist/comments/comment-context.d.ts.map +1 -0
- package/dist/comments/comment-context.js +33 -0
- package/dist/comments/comment-context.js.map +1 -0
- package/dist/comments/comment-fixtures.d.ts +11 -0
- package/dist/comments/comment-fixtures.d.ts.map +1 -0
- package/dist/comments/comment-types.cjs +19 -0
- package/dist/comments/comment-types.cjs.map +1 -0
- package/dist/comments/comment-types.d.ts +170 -0
- package/dist/comments/comment-types.d.ts.map +1 -0
- package/dist/comments/comment-types.js +19 -0
- package/dist/comments/comment-types.js.map +1 -0
- package/dist/comments/comment-utils.cjs +216 -0
- package/dist/comments/comment-utils.cjs.map +1 -0
- package/dist/comments/comment-utils.d.ts +59 -0
- package/dist/comments/comment-utils.d.ts.map +1 -0
- package/dist/comments/comment-utils.js +216 -0
- package/dist/comments/comment-utils.js.map +1 -0
- package/dist/comments.cjs +57 -0
- package/dist/comments.cjs.map +1 -0
- package/dist/comments.d.ts +16 -0
- package/dist/comments.d.ts.map +1 -0
- package/dist/comments.js +57 -0
- package/dist/comments.js.map +1 -0
- package/dist/components/FilterBar.cjs +13 -3
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.js +13 -3
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/JsonSchemaForm.cjs +20 -6
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +22 -8
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/NamespacePicker.cjs +52 -0
- package/dist/components/NamespacePicker.cjs.map +1 -0
- package/dist/components/NamespacePicker.d.ts +17 -0
- package/dist/components/NamespacePicker.d.ts.map +1 -0
- package/dist/components/NamespacePicker.js +52 -0
- package/dist/components/NamespacePicker.js.map +1 -0
- package/dist/components/form-lookup-context.cjs +36 -0
- package/dist/components/form-lookup-context.cjs.map +1 -0
- package/dist/components/form-lookup-context.d.ts +9 -0
- package/dist/components/form-lookup-context.d.ts.map +1 -0
- package/dist/components/form-lookup-context.js +36 -0
- package/dist/components/form-lookup-context.js.map +1 -0
- package/dist/components/json-schema-form-discriminator.cjs +67 -0
- package/dist/components/json-schema-form-discriminator.cjs.map +1 -0
- package/dist/components/json-schema-form-discriminator.d.ts +10 -0
- package/dist/components/json-schema-form-discriminator.d.ts.map +1 -0
- package/dist/components/json-schema-form-discriminator.js +67 -0
- package/dist/components/json-schema-form-discriminator.js.map +1 -0
- package/dist/components/json-schema-form-fields.cjs +66 -1
- package/dist/components/json-schema-form-fields.cjs.map +1 -1
- package/dist/components/json-schema-form-fields.d.ts +7 -0
- package/dist/components/json-schema-form-fields.d.ts.map +1 -1
- package/dist/components/json-schema-form-fields.js +66 -1
- package/dist/components/json-schema-form-fields.js.map +1 -1
- package/dist/components/json-schema-form-grid.cjs +92 -0
- package/dist/components/json-schema-form-grid.cjs.map +1 -0
- package/dist/components/json-schema-form-grid.d.ts +9 -0
- package/dist/components/json-schema-form-grid.d.ts.map +1 -0
- package/dist/components/json-schema-form-grid.js +92 -0
- package/dist/components/json-schema-form-grid.js.map +1 -0
- package/dist/components/json-schema-form-render.cjs +20 -3
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +22 -5
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +24 -2
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +24 -2
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +37 -2
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +8 -0
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +1 -0
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +8 -0
- package/dist/components/json-schema-form-utils.js.map +1 -1
- package/dist/components/workload-picker-utils.cjs.map +1 -1
- package/dist/components/workload-picker-utils.d.ts +11 -1
- package/dist/components/workload-picker-utils.d.ts.map +1 -1
- package/dist/components/workload-picker-utils.js.map +1 -1
- package/dist/components.cjs +6 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +4 -2
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +6 -0
- package/dist/components.js.map +1 -1
- package/dist/data/Clicky.cjs +225 -60
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.d.ts +7 -1
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.fixtures.d.ts +3 -1
- package/dist/data/Clicky.fixtures.d.ts.map +1 -1
- package/dist/data/Clicky.js +226 -61
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/ExecutionTree.cjs +68 -0
- package/dist/data/ExecutionTree.cjs.map +1 -0
- package/dist/data/ExecutionTree.d.ts +40 -0
- package/dist/data/ExecutionTree.d.ts.map +1 -0
- package/dist/data/ExecutionTree.js +68 -0
- package/dist/data/ExecutionTree.js.map +1 -0
- package/dist/data/GaugeHoverCard.cjs +35 -0
- package/dist/data/GaugeHoverCard.cjs.map +1 -0
- package/dist/data/GaugeHoverCard.d.ts +25 -0
- package/dist/data/GaugeHoverCard.d.ts.map +1 -0
- package/dist/data/GaugeHoverCard.js +35 -0
- package/dist/data/GaugeHoverCard.js.map +1 -0
- package/dist/data/MarkdownEditor.cjs +616 -0
- package/dist/data/MarkdownEditor.cjs.map +1 -0
- package/dist/data/MarkdownEditor.d.ts +61 -0
- package/dist/data/MarkdownEditor.d.ts.map +1 -0
- package/dist/data/MarkdownEditor.js +616 -0
- package/dist/data/MarkdownEditor.js.map +1 -0
- package/dist/data/MarkdownEditor.model.cjs +27 -0
- package/dist/data/MarkdownEditor.model.cjs.map +1 -0
- package/dist/data/MarkdownEditor.model.d.ts +38 -0
- package/dist/data/MarkdownEditor.model.d.ts.map +1 -0
- package/dist/data/MarkdownEditor.model.js +27 -0
- package/dist/data/MarkdownEditor.model.js.map +1 -0
- package/dist/data/ObjectGraph.cjs +44 -0
- package/dist/data/ObjectGraph.cjs.map +1 -0
- package/dist/data/ObjectGraph.d.ts +39 -0
- package/dist/data/ObjectGraph.d.ts.map +1 -0
- package/dist/data/ObjectGraph.js +44 -0
- package/dist/data/ObjectGraph.js.map +1 -0
- package/dist/data/SchemaViewer.cjs +152 -0
- package/dist/data/SchemaViewer.cjs.map +1 -0
- package/dist/data/SchemaViewer.d.ts +27 -0
- package/dist/data/SchemaViewer.d.ts.map +1 -0
- package/dist/data/SchemaViewer.js +152 -0
- package/dist/data/SchemaViewer.js.map +1 -0
- package/dist/data/TimeseriesCoreBars.cjs +51 -12
- package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts +32 -5
- package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.js +51 -12
- package/dist/data/TimeseriesCoreBars.js.map +1 -1
- package/dist/data/TimeseriesCoreBars.model.cjs +5 -5
- package/dist/data/TimeseriesCoreBars.model.cjs.map +1 -1
- package/dist/data/TimeseriesCoreBars.model.d.ts +4 -4
- package/dist/data/TimeseriesCoreBars.model.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.model.js +5 -5
- package/dist/data/TimeseriesCoreBars.model.js.map +1 -1
- package/dist/data/TimeseriesGauge.cjs +103 -65
- package/dist/data/TimeseriesGauge.cjs.map +1 -1
- package/dist/data/TimeseriesGauge.d.ts +10 -1
- package/dist/data/TimeseriesGauge.d.ts.map +1 -1
- package/dist/data/TimeseriesGauge.js +104 -66
- package/dist/data/TimeseriesGauge.js.map +1 -1
- package/dist/data/WorkloadCard.cjs +4 -4
- package/dist/data/WorkloadCard.cjs.map +1 -1
- package/dist/data/WorkloadCard.d.ts +3 -2
- package/dist/data/WorkloadCard.d.ts.map +1 -1
- package/dist/data/WorkloadCard.js +4 -4
- package/dist/data/WorkloadCard.js.map +1 -1
- package/dist/data/ai/ChatWindow.cjs +11 -19
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts +1 -7
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +11 -19
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindowRequestBody.cjs +20 -0
- package/dist/data/ai/ChatWindowRequestBody.cjs.map +1 -0
- package/dist/data/ai/ChatWindowRequestBody.d.ts +9 -0
- package/dist/data/ai/ChatWindowRequestBody.d.ts.map +1 -0
- package/dist/data/ai/ChatWindowRequestBody.js +20 -0
- package/dist/data/ai/ChatWindowRequestBody.js.map +1 -0
- package/dist/data/chat/Chat.cjs +12 -0
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +8 -1
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.js +12 -0
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/gauge-stats.cjs +19 -0
- package/dist/data/gauge-stats.cjs.map +1 -0
- package/dist/data/gauge-stats.d.ts +15 -0
- package/dist/data/gauge-stats.d.ts.map +1 -0
- package/dist/data/gauge-stats.js +19 -0
- package/dist/data/gauge-stats.js.map +1 -0
- package/dist/data/schema-viewer-model.cjs +436 -0
- package/dist/data/schema-viewer-model.cjs.map +1 -0
- package/dist/data/schema-viewer-model.d.ts +64 -0
- package/dist/data/schema-viewer-model.d.ts.map +1 -0
- package/dist/data/schema-viewer-model.js +436 -0
- package/dist/data/schema-viewer-model.js.map +1 -0
- package/dist/data/version-info.cjs +2 -2
- package/dist/data/version-info.js +2 -2
- package/dist/data.cjs +23 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +11 -3
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +23 -0
- package/dist/data.js.map +1 -1
- package/dist/index.cjs +87 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +87 -2
- package/dist/index.js.map +1 -1
- package/dist/rpc/EntityExplorerApp.cjs +102 -143
- package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +34 -1
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.js +105 -146
- package/dist/rpc/EntityExplorerApp.js.map +1 -1
- package/dist/rpc/OperationActionBar.cjs +135 -0
- package/dist/rpc/OperationActionBar.cjs.map +1 -0
- package/dist/rpc/OperationActionBar.d.ts +20 -0
- package/dist/rpc/OperationActionBar.d.ts.map +1 -0
- package/dist/rpc/OperationActionBar.js +135 -0
- package/dist/rpc/OperationActionBar.js.map +1 -0
- package/dist/rpc/OperationCatalog.cjs +79 -116
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +8 -1
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +80 -117
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationCommandPage.cjs +134 -223
- package/dist/rpc/OperationCommandPage.cjs.map +1 -1
- package/dist/rpc/OperationCommandPage.d.ts +1 -1
- package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
- package/dist/rpc/OperationCommandPage.js +135 -224
- package/dist/rpc/OperationCommandPage.js.map +1 -1
- package/dist/rpc/OperationEntityPage.cjs +49 -100
- package/dist/rpc/OperationEntityPage.cjs.map +1 -1
- package/dist/rpc/OperationEntityPage.d.ts +6 -1
- package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
- package/dist/rpc/OperationEntityPage.js +50 -101
- package/dist/rpc/OperationEntityPage.js.map +1 -1
- package/dist/rpc/OperationResultView.cjs +43 -0
- package/dist/rpc/OperationResultView.cjs.map +1 -0
- package/dist/rpc/OperationResultView.d.ts +30 -0
- package/dist/rpc/OperationResultView.d.ts.map +1 -0
- package/dist/rpc/OperationResultView.js +43 -0
- package/dist/rpc/OperationResultView.js.map +1 -0
- package/dist/rpc/SchemaActionForm.cjs +102 -0
- package/dist/rpc/SchemaActionForm.cjs.map +1 -0
- package/dist/rpc/SchemaActionForm.d.ts +23 -0
- package/dist/rpc/SchemaActionForm.d.ts.map +1 -0
- package/dist/rpc/SchemaActionForm.js +102 -0
- package/dist/rpc/SchemaActionForm.js.map +1 -0
- package/dist/rpc/accept-options.cjs.map +1 -1
- package/dist/rpc/accept-options.d.ts +0 -1
- package/dist/rpc/accept-options.d.ts.map +1 -1
- package/dist/rpc/accept-options.js.map +1 -1
- package/dist/rpc/apiClient.cjs +34 -2
- package/dist/rpc/apiClient.cjs.map +1 -1
- package/dist/rpc/apiClient.d.ts +4 -1
- package/dist/rpc/apiClient.d.ts.map +1 -1
- package/dist/rpc/apiClient.js +34 -2
- package/dist/rpc/apiClient.js.map +1 -1
- package/dist/rpc/clickyMetadata.cjs +4 -4
- package/dist/rpc/clickyMetadata.cjs.map +1 -1
- package/dist/rpc/clickyMetadata.d.ts +0 -1
- package/dist/rpc/clickyMetadata.d.ts.map +1 -1
- package/dist/rpc/clickyMetadata.js +4 -4
- package/dist/rpc/clickyMetadata.js.map +1 -1
- package/dist/rpc/formMetadata.cjs +1 -0
- package/dist/rpc/formMetadata.cjs.map +1 -1
- package/dist/rpc/formMetadata.d.ts +6 -1
- package/dist/rpc/formMetadata.d.ts.map +1 -1
- package/dist/rpc/formMetadata.js +1 -0
- package/dist/rpc/formMetadata.js.map +1 -1
- package/dist/rpc/rowNavigation.cjs +86 -0
- package/dist/rpc/rowNavigation.cjs.map +1 -0
- package/dist/rpc/rowNavigation.d.ts +14 -0
- package/dist/rpc/rowNavigation.d.ts.map +1 -0
- package/dist/rpc/rowNavigation.js +86 -0
- package/dist/rpc/rowNavigation.js.map +1 -0
- package/dist/rpc/schemaActionPath.cjs +22 -0
- package/dist/rpc/schemaActionPath.cjs.map +1 -0
- package/dist/rpc/schemaActionPath.d.ts +4 -0
- package/dist/rpc/schemaActionPath.d.ts.map +1 -0
- package/dist/rpc/schemaActionPath.js +22 -0
- package/dist/rpc/schemaActionPath.js.map +1 -0
- package/dist/rpc/surfaceIconMap.cjs +35 -0
- package/dist/rpc/surfaceIconMap.cjs.map +1 -0
- package/dist/rpc/surfaceIconMap.d.ts +3 -0
- package/dist/rpc/surfaceIconMap.d.ts.map +1 -0
- package/dist/rpc/surfaceIconMap.js +35 -0
- package/dist/rpc/surfaceIconMap.js.map +1 -0
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +2 -0
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/rpc/useOperations.cjs.map +1 -1
- package/dist/rpc/useOperations.d.ts +4 -1
- package/dist/rpc/useOperations.d.ts.map +1 -1
- package/dist/rpc/useOperations.js.map +1 -1
- package/dist/rpc.cjs +4 -2
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +7 -6
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +4 -2
- package/dist/rpc.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -1
- package/dist/rpc/AcceptPicker.cjs +0 -137
- package/dist/rpc/AcceptPicker.cjs.map +0 -1
- package/dist/rpc/AcceptPicker.d.ts +0 -12
- package/dist/rpc/AcceptPicker.d.ts.map +0 -1
- package/dist/rpc/AcceptPicker.js +0 -137
- package/dist/rpc/AcceptPicker.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownEditor.cjs","sources":["../../src/data/MarkdownEditor.tsx"],"sourcesContent":["import {\n useEffect,\n useId,\n useMemo,\n useState,\n type CSSProperties,\n type ReactNode,\n} from \"react\";\nimport { Button } from \"../components/button\";\nimport { IconButton } from \"../components/IconButton\";\nimport {\n SegmentedControl,\n type SegmentedOption,\n} from \"../components/SegmentedControl\";\nimport { cn } from \"../lib/utils\";\nimport {\n UiCopy,\n UiEdit,\n UiEye,\n UiFileCode,\n UiFileSpreadsheet,\n UiFileText,\n UiJson,\n UiMarkdown,\n UiRefresh,\n} from \"../icons\";\nimport { Clicky, type ClickyProps } from \"./Clicky\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { JsonView } from \"./JsonView\";\nimport { Markdown } from \"./Markdown\";\nimport {\n buildMarkdownPreviewUrl,\n MARKDOWN_EDITOR_PREVIEW_FORMATS,\n type MarkdownEditorPreviewFormat,\n type MarkdownEditorPreviewHeaders,\n type MarkdownEditorPreviewRequest,\n type MarkdownEditorPreviewResult,\n} from \"./MarkdownEditor.model\";\n\nexport type MarkdownEditorProps = {\n /** Controlled markdown source. */\n value?: string;\n /** Initial markdown source for uncontrolled usage. */\n defaultValue?: string;\n /** Called whenever the editor source changes. */\n onChange?: (value: string) => void;\n /** Editor label. */\n label?: ReactNode;\n /** Textarea placeholder. */\n placeholder?: string;\n /** Preview formats to expose in the toolbar. */\n previewFormats?: readonly MarkdownEditorPreviewFormat[];\n /** Controlled active preview format. */\n previewFormat?: MarkdownEditorPreviewFormat;\n /** Initial active preview format for uncontrolled usage. */\n defaultPreviewFormat?: MarkdownEditorPreviewFormat;\n /** Called when the active preview format changes. */\n onPreviewFormatChange?: (format: MarkdownEditorPreviewFormat) => void;\n /** Clicky endpoint that accepts markdown and a `format=` query parameter. */\n previewEndpoint?: string;\n /** HTTP method for `previewEndpoint`; POST sends the markdown body. */\n previewMethod?: \"GET\" | \"POST\" | \"PUT\";\n /** Extra headers for remote previews. */\n previewHeaders?: MarkdownEditorPreviewHeaders;\n /** Build a URL for remote preview requests instead of `previewEndpoint`. */\n buildPreviewUrl?: (request: {\n markdown: string;\n format: MarkdownEditorPreviewFormat;\n }) => string | undefined;\n /** Custom loader for host-specific markdown conversion. */\n loadPreview?: (\n request: MarkdownEditorPreviewRequest,\n ) => Promise<MarkdownEditorPreviewResult> | MarkdownEditorPreviewResult;\n /** Local Clicky document for the React preview, or a mapper from markdown. */\n clickyData?: ClickyProps[\"data\"] | ((markdown: string) => ClickyProps[\"data\"] | undefined);\n /** Debounce interval for remote preview requests. */\n previewDebounceMs?: number;\n /** Minimum height for both editor and preview panes. */\n minHeight?: number | string;\n /** Disable editing and preview refresh. */\n disabled?: boolean;\n /** Render the source as read-only. */\n readOnly?: boolean;\n /** Classes applied to the component root. */\n className?: string;\n /** Classes applied to the textarea. */\n editorClassName?: string;\n /** Classes applied to the preview body. */\n previewClassName?: string;\n /** Extra toolbar content rendered after the built-in actions. */\n toolbar?: ReactNode;\n};\n\ntype PreviewState =\n | { status: \"idle\" }\n | { status: \"loading\"; result?: MarkdownEditorPreviewResult }\n | { status: \"success\"; result: MarkdownEditorPreviewResult }\n | { status: \"error\"; error: string; result?: MarkdownEditorPreviewResult };\n\ntype FormatMeta = {\n label: string;\n icon: StaticIconComponent;\n iconClassName?: string;\n};\n\nconst FORMAT_META: Record<MarkdownEditorPreviewFormat, FormatMeta> = {\n react: {\n label: \"React\",\n icon: UiEye,\n },\n html: {\n label: \"HTML\",\n icon: UiFileCode,\n },\n markdown: {\n label: \"Markdown\",\n icon: UiMarkdown,\n },\n pdf: {\n label: \"PDF\",\n icon: UiFileText,\n iconClassName: \"text-rose-600 dark:text-rose-400\",\n },\n json: {\n label: \"JSON\",\n icon: UiJson,\n },\n csv: {\n label: \"CSV\",\n icon: UiFileSpreadsheet,\n iconClassName: \"text-emerald-600 dark:text-emerald-400\",\n },\n excel: {\n label: \"Excel\",\n icon: UiFileSpreadsheet,\n iconClassName: \"text-emerald-700 dark:text-emerald-300\",\n },\n};\n\n/**\n * Split-pane markdown editor with local Markdown/React preview and optional\n * Clicky-backed format previews. Hosts can pass `previewEndpoint` for the\n * standard Clicky `format=` contract or `loadPreview` for custom conversion.\n */\nexport function MarkdownEditor({\n value,\n defaultValue = \"\",\n onChange,\n label = \"Markdown\",\n placeholder = \"Write markdown...\",\n previewFormats,\n previewFormat,\n defaultPreviewFormat,\n onPreviewFormatChange,\n previewEndpoint,\n previewMethod = \"POST\",\n previewHeaders,\n buildPreviewUrl,\n loadPreview,\n clickyData,\n previewDebounceMs = 350,\n minHeight = 420,\n disabled = false,\n readOnly = false,\n className,\n editorClassName,\n previewClassName,\n toolbar,\n}: MarkdownEditorProps) {\n const editorId = useId();\n const formats = useMemo(\n () => normalizePreviewFormats(previewFormats),\n [previewFormats],\n );\n const firstFormat = formats[0] ?? \"react\";\n const [draft, setDraft] = useState(defaultValue);\n const markdown = value ?? draft;\n const [internalFormat, setInternalFormat] = useState<MarkdownEditorPreviewFormat>(\n () =>\n normalizeInitialFormat(defaultPreviewFormat, formats) ??\n firstFormat,\n );\n const activeFormat = formats.includes(previewFormat ?? internalFormat)\n ? previewFormat ?? internalFormat\n : firstFormat;\n const [refreshKey, setRefreshKey] = useState(0);\n const [previewState, setPreviewState] = useState<PreviewState>({\n status: \"idle\",\n });\n const contentStyle = useMemo<CSSProperties>(\n () => ({ minHeight: cssSize(minHeight) }),\n [minHeight],\n );\n const remoteEnabled = Boolean(loadPreview || previewEndpoint || buildPreviewUrl);\n const currentMeta = FORMAT_META[activeFormat];\n const segmentOptions = useMemo<SegmentedOption<MarkdownEditorPreviewFormat>[]>(\n () =>\n formats.map((format) => {\n const meta = FORMAT_META[format];\n return {\n id: format,\n label: meta.label,\n icon: meta.icon,\n title: `${meta.label} preview`,\n };\n }),\n [formats],\n );\n\n useEffect(() => {\n if (formats.includes(activeFormat)) return;\n setInternalFormat(firstFormat);\n }, [activeFormat, firstFormat, formats]);\n\n useEffect(() => {\n if (!remoteEnabled) {\n setPreviewState({ status: \"idle\" });\n return;\n }\n\n const controller = new AbortController();\n const timeout = window.setTimeout(() => {\n setPreviewState((current) =>\n current.status === \"success\"\n ? { status: \"loading\", result: current.result }\n : { status: \"loading\" },\n );\n\n resolvePreview({\n markdown,\n format: activeFormat,\n signal: controller.signal,\n previewEndpoint,\n previewMethod,\n previewHeaders,\n buildPreviewUrl,\n loadPreview,\n })\n .then((result) => {\n if (!controller.signal.aborted) {\n setPreviewState({ status: \"success\", result });\n }\n })\n .catch((error: unknown) => {\n if (controller.signal.aborted) return;\n setPreviewState((current) => ({\n status: \"error\",\n error: error instanceof Error ? error.message : \"Preview failed\",\n ...(current.status === \"loading\" && current.result\n ? { result: current.result }\n : {}),\n }));\n });\n }, Math.max(0, previewDebounceMs));\n\n return () => {\n window.clearTimeout(timeout);\n controller.abort();\n };\n }, [\n activeFormat,\n buildPreviewUrl,\n loadPreview,\n markdown,\n previewDebounceMs,\n previewEndpoint,\n previewHeaders,\n previewMethod,\n refreshKey,\n remoteEnabled,\n ]);\n\n const updateMarkdown = (next: string) => {\n if (value === undefined) setDraft(next);\n onChange?.(next);\n };\n\n const updateFormat = (next: MarkdownEditorPreviewFormat) => {\n if (previewFormat === undefined) setInternalFormat(next);\n onPreviewFormatChange?.(next);\n };\n\n const copySource = () => {\n const clipboard = globalThis.navigator?.clipboard;\n if (clipboard?.writeText) {\n void clipboard.writeText(markdown).catch(() => undefined);\n }\n };\n\n return (\n <div className={cn(\"rounded-md border border-border bg-card\", className)}>\n <div className=\"flex flex-wrap items-center gap-density-2 border-b border-border px-density-3 py-density-2\">\n <div className=\"flex min-w-0 flex-1 items-center gap-2\">\n <Icon icon={UiEdit} className=\"text-base text-muted-foreground\" />\n <label\n htmlFor={editorId}\n className=\"truncate text-sm font-medium text-card-foreground\"\n >\n {label}\n </label>\n {previewState.status === \"loading\" && (\n <span className=\"text-xs text-muted-foreground\">Refreshing...</span>\n )}\n </div>\n <div className=\"flex min-w-0 flex-wrap items-center justify-end gap-2\">\n <SegmentedControl\n value={activeFormat}\n options={segmentOptions}\n onChange={updateFormat}\n size=\"sm\"\n aria-label=\"Markdown preview format\"\n className=\"max-w-full flex-wrap\"\n />\n {remoteEnabled && (\n <IconButton\n icon={UiRefresh}\n label=\"Refresh preview\"\n disabled={disabled}\n onClick={() => setRefreshKey((current) => current + 1)}\n />\n )}\n <IconButton icon={UiCopy} label=\"Copy markdown\" onClick={copySource} />\n {toolbar}\n </div>\n </div>\n\n <div className=\"grid gap-density-3 p-density-3 lg:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]\">\n <div className=\"min-w-0 overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"border-b border-border px-density-3 py-density-2 text-xs font-medium text-muted-foreground\">\n Source\n </div>\n <textarea\n id={editorId}\n value={markdown}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n spellCheck\n onChange={(event) => updateMarkdown(event.currentTarget.value)}\n className={cn(\n \"block w-full resize-y border-0 bg-transparent px-density-3 py-density-3 font-mono text-sm leading-6 text-foreground outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-60\",\n editorClassName,\n )}\n style={contentStyle}\n />\n </div>\n\n <div className=\"min-w-0 overflow-hidden rounded-md border border-border bg-background\">\n <div className=\"flex items-center gap-2 border-b border-border px-density-3 py-density-2 text-xs font-medium text-muted-foreground\">\n <Icon\n icon={currentMeta.icon}\n className={cn(\"text-sm\", currentMeta.iconClassName)}\n />\n <span>{currentMeta.label}</span>\n </div>\n <div\n className={cn(\n \"overflow-auto px-density-3 py-density-3\",\n previewClassName,\n )}\n style={contentStyle}\n >\n <MarkdownEditorPreview\n format={activeFormat}\n markdown={markdown}\n state={previewState}\n clickyData={clickyData}\n />\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction MarkdownEditorPreview({\n format,\n markdown,\n state,\n clickyData,\n}: {\n format: MarkdownEditorPreviewFormat;\n markdown: string;\n state: PreviewState;\n clickyData?: MarkdownEditorProps[\"clickyData\"];\n}) {\n const result =\n state.status === \"success\" || state.status === \"loading\" || state.status === \"error\"\n ? state.result\n : undefined;\n\n return (\n <div className=\"space-y-density-3\">\n {state.status === \"error\" && (\n <PreviewNotice title=\"Preview failed\" message={state.error} tone=\"danger\" />\n )}\n {result ? (\n <PreviewResult format={format} result={result} />\n ) : (\n <LocalPreview\n format={format}\n markdown={markdown}\n clickyData={clickyData}\n />\n )}\n </div>\n );\n}\n\nfunction LocalPreview({\n format,\n markdown,\n clickyData,\n}: {\n format: MarkdownEditorPreviewFormat;\n markdown: string;\n clickyData?: MarkdownEditorProps[\"clickyData\"];\n}) {\n if (format === \"react\") {\n const data =\n typeof clickyData === \"function\" ? clickyData(markdown) : clickyData;\n return data === undefined ? <Markdown text={markdown} /> : <Clicky data={data} />;\n }\n\n if (format === \"markdown\") {\n return <TextPreview label=\"Markdown source\" text={markdown} />;\n }\n\n return (\n <PreviewNotice\n title={`${FORMAT_META[format].label} preview not configured`}\n message=\"Pass previewEndpoint or loadPreview to render this format from Clicky.\"\n />\n );\n}\n\nfunction PreviewResult({\n format,\n result,\n}: {\n format: MarkdownEditorPreviewFormat;\n result: MarkdownEditorPreviewResult;\n}) {\n switch (result.kind) {\n case \"clicky\":\n return <Clicky data={result.data} />;\n case \"html\":\n return <HtmlPreview html={result.html} />;\n case \"json\":\n return <JsonView data={result.data} />;\n case \"url\":\n return <UrlPreview format={format} url={result.url} />;\n case \"blob\":\n return <BlobPreview format={format} result={result} />;\n case \"text\":\n return <TextResult format={format} result={result} />;\n }\n}\n\nfunction TextResult({\n format,\n result,\n}: {\n format: MarkdownEditorPreviewFormat;\n result: Extract<MarkdownEditorPreviewResult, { kind: \"text\" }>;\n}) {\n if (format === \"react\") {\n return <Clicky data={result.text} />;\n }\n\n if (format === \"html\" || isHtmlContent(result.contentType)) {\n return <HtmlPreview html={result.text} />;\n }\n\n if (format === \"json\" || isJsonContent(result.contentType)) {\n const parsed = parseJson(result.text);\n return parsed.ok ? (\n <JsonView data={parsed.value} />\n ) : (\n <TextPreview label=\"JSON output\" text={result.text} />\n );\n }\n\n return (\n <TextPreview\n label={`${FORMAT_META[format].label} output`}\n text={result.text}\n />\n );\n}\n\nfunction UrlPreview({\n format,\n url,\n}: {\n format: MarkdownEditorPreviewFormat;\n url: string;\n}) {\n if (format === \"react\") {\n return <Clicky url={url} view={[\"clicky\"]} download={{ all: false }} />;\n }\n\n if (format === \"html\") {\n return <HtmlPreview src={url} />;\n }\n\n if (format === \"pdf\") {\n return <FramePreview title=\"PDF preview\" src={url} />;\n }\n\n if (format === \"excel\") {\n return <DownloadPreview label=\"Open Excel workbook\" href={url} />;\n }\n\n return <TextPreview label={`${FORMAT_META[format].label} URL`} text={url} />;\n}\n\nfunction BlobPreview({\n format,\n result,\n}: {\n format: MarkdownEditorPreviewFormat;\n result: Extract<MarkdownEditorPreviewResult, { kind: \"blob\" }>;\n}) {\n const [url, setUrl] = useState<string>();\n\n useEffect(() => {\n const next = URL.createObjectURL(result.blob);\n setUrl(next);\n return () => URL.revokeObjectURL(next);\n }, [result.blob]);\n\n if (!url) {\n return <PreviewNotice title=\"Preparing preview\" message=\"Creating object URL.\" />;\n }\n\n if (format === \"pdf\") {\n return <FramePreview title=\"PDF preview\" src={url} />;\n }\n\n return (\n <DownloadPreview\n label={`Open ${FORMAT_META[format].label}`}\n href={url}\n {...(result.filename ? { download: result.filename } : {})}\n />\n );\n}\n\nfunction HtmlPreview({\n html,\n src,\n}: {\n html?: string;\n src?: string;\n}) {\n return (\n <FramePreview\n title=\"HTML preview\"\n {...(src ? { src } : {})}\n {...(html ? { srcDoc: html } : {})}\n sandbox=\"allow-same-origin\"\n />\n );\n}\n\nfunction FramePreview({\n title,\n src,\n srcDoc,\n sandbox,\n}: {\n title: string;\n src?: string;\n srcDoc?: string;\n sandbox?: string;\n}) {\n return (\n <div className=\"overflow-hidden rounded-md border border-border bg-background\">\n <iframe\n title={title}\n {...(src ? { src } : {})}\n {...(srcDoc ? { srcDoc } : {})}\n {...(sandbox ? { sandbox } : {})}\n className=\"h-[720px] w-full bg-background\"\n />\n </div>\n );\n}\n\nfunction DownloadPreview({\n label,\n href,\n download,\n}: {\n label: string;\n href: string;\n download?: string;\n}) {\n return (\n <PreviewNotice\n title=\"Inline preview unavailable\"\n message={\n <Button asChild variant=\"outline\" size=\"sm\">\n <a\n href={href}\n target=\"_blank\"\n rel=\"noreferrer\"\n {...(download ? { download } : {})}\n >\n {label}\n </a>\n </Button>\n }\n />\n );\n}\n\nfunction TextPreview({ label, text }: { label: string; text: string }) {\n return (\n <pre\n aria-label={label}\n className=\"overflow-auto whitespace-pre-wrap break-words rounded-md border border-border bg-muted/30 px-density-3 py-density-3 font-mono text-xs text-foreground\"\n >\n {text || \"No content\"}\n </pre>\n );\n}\n\nfunction PreviewNotice({\n title,\n message,\n tone = \"default\",\n}: {\n title: string;\n message: ReactNode;\n tone?: \"default\" | \"danger\";\n}) {\n return (\n <div\n className={cn(\n \"rounded-md border p-density-3\",\n tone === \"danger\"\n ? \"border-destructive/30 bg-destructive/5\"\n : \"border-border bg-muted/30\",\n )}\n >\n <div\n className={cn(\n \"text-sm font-medium\",\n tone === \"danger\" && \"text-destructive\",\n )}\n >\n {title}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">{message}</div>\n </div>\n );\n}\n\nfunction normalizePreviewFormats(\n formats: readonly MarkdownEditorPreviewFormat[] | undefined,\n): MarkdownEditorPreviewFormat[] {\n const seen = new Set<MarkdownEditorPreviewFormat>();\n const source = formats && formats.length > 0 ? formats : MARKDOWN_EDITOR_PREVIEW_FORMATS;\n for (const format of source) {\n seen.add(format);\n }\n return [...seen];\n}\n\nfunction normalizeInitialFormat(\n format: MarkdownEditorPreviewFormat | undefined,\n formats: readonly MarkdownEditorPreviewFormat[],\n) {\n return format && formats.includes(format) ? format : undefined;\n}\n\nfunction cssSize(size: number | string) {\n return typeof size === \"number\" ? `${size}px` : size;\n}\n\nasync function resolvePreview({\n markdown,\n format,\n signal,\n previewEndpoint,\n previewMethod,\n previewHeaders,\n buildPreviewUrl,\n loadPreview,\n}: MarkdownEditorPreviewRequest & {\n previewEndpoint: string | undefined;\n previewMethod: \"GET\" | \"POST\" | \"PUT\";\n previewHeaders: MarkdownEditorPreviewHeaders | undefined;\n buildPreviewUrl: MarkdownEditorProps[\"buildPreviewUrl\"] | undefined;\n loadPreview: MarkdownEditorProps[\"loadPreview\"] | undefined;\n}): Promise<MarkdownEditorPreviewResult> {\n if (loadPreview) {\n return loadPreview({ markdown, format, signal });\n }\n\n const url =\n buildPreviewUrl?.({ markdown, format }) ??\n (previewEndpoint\n ? buildMarkdownPreviewUrl(previewEndpoint, format)\n : undefined);\n\n if (!url) {\n throw new Error(\"No preview endpoint configured\");\n }\n\n const headers = new Headers(\n typeof previewHeaders === \"function\"\n ? previewHeaders({ markdown, format })\n : previewHeaders,\n );\n headers.set(\"Accept\", previewAccept(format));\n\n const init: RequestInit = {\n method: previewMethod,\n headers,\n signal,\n };\n\n if (previewMethod !== \"GET\") {\n headers.set(\"Content-Type\", \"text/markdown; charset=utf-8\");\n init.body = markdown;\n }\n\n const response = await fetch(url, init);\n if (!response.ok) {\n throw new Error(\n `Preview failed with ${response.status} ${response.statusText}`.trim(),\n );\n }\n\n const contentType = response.headers.get(\"Content-Type\") ?? \"\";\n if (format === \"pdf\" || format === \"excel\" || isBinaryContent(contentType)) {\n return {\n kind: \"blob\",\n blob: await response.blob(),\n contentType,\n filename: previewFilename(format),\n };\n }\n\n const text = await response.text();\n if (format === \"react\") {\n return { kind: \"clicky\", data: text };\n }\n if (format === \"html\" || isHtmlContent(contentType)) {\n return { kind: \"html\", html: text };\n }\n if (format === \"json\" || isJsonContent(contentType)) {\n const parsed = parseJson(text);\n return parsed.ok\n ? { kind: \"json\", data: parsed.value }\n : { kind: \"text\", text, contentType };\n }\n return { kind: \"text\", text, contentType };\n}\n\nfunction previewAccept(format: MarkdownEditorPreviewFormat) {\n switch (format) {\n case \"react\":\n return \"application/json+clicky, application/clicky+json;q=0.9, application/json;q=0.8,*/*;q=0.7\";\n case \"html\":\n return \"text/html, */*;q=0.7\";\n case \"markdown\":\n return \"text/markdown, text/plain;q=0.8,*/*;q=0.7\";\n case \"pdf\":\n return \"application/pdf, */*;q=0.7\";\n case \"json\":\n return \"application/json, text/plain;q=0.8,*/*;q=0.7\";\n case \"csv\":\n return \"text/csv, text/plain;q=0.8,*/*;q=0.7\";\n case \"excel\":\n return \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, */*;q=0.7\";\n }\n}\n\nfunction previewFilename(format: MarkdownEditorPreviewFormat) {\n switch (format) {\n case \"react\":\n return \"preview.clicky.json\";\n case \"html\":\n return \"preview.html\";\n case \"markdown\":\n return \"preview.md\";\n case \"pdf\":\n return \"preview.pdf\";\n case \"json\":\n return \"preview.json\";\n case \"csv\":\n return \"preview.csv\";\n case \"excel\":\n return \"preview.xlsx\";\n }\n}\n\nfunction parseJson(text: string): { ok: true; value: unknown } | { ok: false } {\n try {\n return { ok: true, value: JSON.parse(text) as unknown };\n } catch {\n return { ok: false };\n }\n}\n\nfunction isJsonContent(contentType: string | undefined) {\n return contentType?.toLowerCase().includes(\"json\") ?? false;\n}\n\nfunction isHtmlContent(contentType: string | undefined) {\n return contentType?.toLowerCase().includes(\"html\") ?? false;\n}\n\nfunction isBinaryContent(contentType: string | undefined) {\n const normalized = contentType?.toLowerCase() ?? \"\";\n return (\n normalized.includes(\"application/pdf\") ||\n normalized.includes(\"spreadsheetml\") ||\n normalized.includes(\"application/vnd.ms-excel\")\n );\n}\n"],"names":["UiEye","UiFileCode","UiMarkdown","UiFileText","UiJson","UiFileSpreadsheet","useId","useMemo","useState","useEffect","cn","jsxs","jsx","Icon","UiEdit","SegmentedControl","IconButton","UiRefresh","UiCopy","Markdown","Clicky","JsonView","Button","MARKDOWN_EDITOR_PREVIEW_FORMATS","buildMarkdownPreviewUrl"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ClickyProps } from './Clicky';
|
|
3
|
+
import { MarkdownEditorPreviewFormat, MarkdownEditorPreviewHeaders, MarkdownEditorPreviewRequest, MarkdownEditorPreviewResult } from './MarkdownEditor.model';
|
|
4
|
+
export type MarkdownEditorProps = {
|
|
5
|
+
/** Controlled markdown source. */
|
|
6
|
+
value?: string;
|
|
7
|
+
/** Initial markdown source for uncontrolled usage. */
|
|
8
|
+
defaultValue?: string;
|
|
9
|
+
/** Called whenever the editor source changes. */
|
|
10
|
+
onChange?: (value: string) => void;
|
|
11
|
+
/** Editor label. */
|
|
12
|
+
label?: ReactNode;
|
|
13
|
+
/** Textarea placeholder. */
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
/** Preview formats to expose in the toolbar. */
|
|
16
|
+
previewFormats?: readonly MarkdownEditorPreviewFormat[];
|
|
17
|
+
/** Controlled active preview format. */
|
|
18
|
+
previewFormat?: MarkdownEditorPreviewFormat;
|
|
19
|
+
/** Initial active preview format for uncontrolled usage. */
|
|
20
|
+
defaultPreviewFormat?: MarkdownEditorPreviewFormat;
|
|
21
|
+
/** Called when the active preview format changes. */
|
|
22
|
+
onPreviewFormatChange?: (format: MarkdownEditorPreviewFormat) => void;
|
|
23
|
+
/** Clicky endpoint that accepts markdown and a `format=` query parameter. */
|
|
24
|
+
previewEndpoint?: string;
|
|
25
|
+
/** HTTP method for `previewEndpoint`; POST sends the markdown body. */
|
|
26
|
+
previewMethod?: "GET" | "POST" | "PUT";
|
|
27
|
+
/** Extra headers for remote previews. */
|
|
28
|
+
previewHeaders?: MarkdownEditorPreviewHeaders;
|
|
29
|
+
/** Build a URL for remote preview requests instead of `previewEndpoint`. */
|
|
30
|
+
buildPreviewUrl?: (request: {
|
|
31
|
+
markdown: string;
|
|
32
|
+
format: MarkdownEditorPreviewFormat;
|
|
33
|
+
}) => string | undefined;
|
|
34
|
+
/** Custom loader for host-specific markdown conversion. */
|
|
35
|
+
loadPreview?: (request: MarkdownEditorPreviewRequest) => Promise<MarkdownEditorPreviewResult> | MarkdownEditorPreviewResult;
|
|
36
|
+
/** Local Clicky document for the React preview, or a mapper from markdown. */
|
|
37
|
+
clickyData?: ClickyProps["data"] | ((markdown: string) => ClickyProps["data"] | undefined);
|
|
38
|
+
/** Debounce interval for remote preview requests. */
|
|
39
|
+
previewDebounceMs?: number;
|
|
40
|
+
/** Minimum height for both editor and preview panes. */
|
|
41
|
+
minHeight?: number | string;
|
|
42
|
+
/** Disable editing and preview refresh. */
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
/** Render the source as read-only. */
|
|
45
|
+
readOnly?: boolean;
|
|
46
|
+
/** Classes applied to the component root. */
|
|
47
|
+
className?: string;
|
|
48
|
+
/** Classes applied to the textarea. */
|
|
49
|
+
editorClassName?: string;
|
|
50
|
+
/** Classes applied to the preview body. */
|
|
51
|
+
previewClassName?: string;
|
|
52
|
+
/** Extra toolbar content rendered after the built-in actions. */
|
|
53
|
+
toolbar?: ReactNode;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Split-pane markdown editor with local Markdown/React preview and optional
|
|
57
|
+
* Clicky-backed format previews. Hosts can pass `previewEndpoint` for the
|
|
58
|
+
* standard Clicky `format=` contract or `loadPreview` for custom conversion.
|
|
59
|
+
*/
|
|
60
|
+
export declare function MarkdownEditor({ value, defaultValue, onChange, label, placeholder, previewFormats, previewFormat, defaultPreviewFormat, onPreviewFormatChange, previewEndpoint, previewMethod, previewHeaders, buildPreviewUrl, loadPreview, clickyData, previewDebounceMs, minHeight, disabled, readOnly, className, editorClassName, previewClassName, toolbar, }: MarkdownEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
//# sourceMappingURL=MarkdownEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../src/data/MarkdownEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmBf,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAIpD,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,mBAAmB,GAAG;IAChC,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,cAAc,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACxD,wCAAwC;IACxC,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,qDAAqD;IACrD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACtE,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,yCAAyC;IACzC,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C,4EAA4E;IAC5E,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,2BAA2B,CAAC;KACrC,KAAK,MAAM,GAAG,SAAS,CAAC;IACzB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,4BAA4B,KAClC,OAAO,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAAC;IACxE,8EAA8E;IAC9E,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3F,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAgDF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,YAAiB,EACjB,QAAQ,EACR,KAAkB,EAClB,WAAiC,EACjC,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,aAAsB,EACtB,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,EACV,iBAAuB,EACvB,SAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,OAAO,GACR,EAAE,mBAAmB,2CA6MrB"}
|