simian 0.1.0

A command-line tool for exploring and implementing Machine Learning algorithms in Rust.
Documentation
'use client'

import { forwardRef } from 'react'

import { EditorContent } from './content'
import { EditorProvider, EditorRef } from './provider'
import { EditorProps } from './types'

//////////////////////////////////////////////////
// Utilitary Types
//////////////////////////////////////////////////
type EditorFC = typeof EditorWithRef & {
  Content: typeof EditorContent
  Provider: typeof EditorProvider
}

//////////////////////////////////////////////////
// Main Component
//////////////////////////////////////////////////
const EditorWithRef = forwardRef<EditorRef, EditorProps>(
  ({ children, ...props }, ref) => {
    return (
      <EditorProvider ref={ref} {...props}>
        <EditorContent />

        {children}
      </EditorProvider>
    )
  },
)

EditorWithRef.displayName = 'EditorWithRef'

export const Editor = EditorWithRef as EditorFC
Editor.Content = EditorContent
Editor.Provider = EditorProvider

export type { EditorRef } from './provider'
export * from './schema'
export * from './types'