JSPM

@capitol.ai/ui-components

0.0.1
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 7
    • Score
      100M100P100Q36257F
    • License Proprietary

    Library of React components from Capitol AI

    Package Exports

      This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@capitol.ai/ui-components) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

      Readme

      Capitol AI - Summary

      Local setup

      First, install the package:

      npm install @capitol.ai/summary

      Then, import components you need and default styles (optional):

      import { Summary } from '@capitol.ai/summary';
      import '@capitol.ai/summary/dist/summary.css';

      Components

      Summary

      The main component that displays AI-generated summaries in different layouts.

      Prop Type Default Description
      summaryId string "" Unique identifier for the summary
      prompt string "prompt" The prompt text that generated the summary
      title string "AI summary" Title of the summary
      className string "" Additional CSS classes
      summary string "" The summary content
      layout "quoted" | "clean" "quoted" Layout type for the summary. "quoted" shows prompt in quotes with decorative elements, "clean" provides a minimal design
      format "basic" | "advanced" "basic" Format type for the summary
      output SummaryOutput undefined Additional output data for advanced format
      useMarkdown boolean false Whether to render the summary content as markdown. When true, the content will be rendered using ReactMarkdown with proper styling

      Prompt

      A component for user input with customizable styling.

      Prop Type Default Description
      placeholderText string "Enter prompt" Placeholder text for the input
      minHeight number undefined Minimum height of the input area
      accentColor string undefined Accent color for the submit button
      onSubmit (prompt: string) => void () => {} Callback when prompt is submitted
      onChange (text: string) => void () => {} Callback when prompt text changes
      disabled boolean false Whether the input is disabled

      PromptSuggestions

      Displays a list of prompt suggestions that users can click on.

      Prop Type Default Description
      prompts string[] [] Array of prompt suggestions
      onClickHandler (prompt: string) => void () => {} Callback when a suggestion is clicked
      title string "Suggestions" Title of the suggestions section

      PromptWithOptions

      Combines the Prompt component with suggestion options.

      Prop Type Default Description
      placeholder string "Ask a question" Placeholder text for the input
      prompts string[] [] Array of prompt suggestions
      onSubmit (prompt: string) => void undefined Callback when prompt is submitted
      onChange (text: string) => void undefined Callback when prompt text changes

      Sources

      Displays a list of sources with optional masonry layout and pagination.

      Prop Type Default Description
      sources Source[] [] Array of source objects
      isMasonryLayout boolean false Whether to use masonry layout
      itemsPerPage number 4 Number of items to display per page

      Pagination

      A reusable pagination component for navigating through pages of content. Mainly used as pagination for Sources

      Prop Type Default Description
      currentPage number 1 Current page number
      totalPages number 1 Total number of pages
      onPageChange (page: number) => void () => {} Callback when page changes
      maxVisiblePages number 5 Maximum number of visible page buttons

      Displays a navigation menu with active state tracking.

      Prop Type Default Description
      title string "Navigation" Title of the navigation section
      navList NavItem[] [] Array of navigation items
      activeItem string "" Currently active navigation item

      GenerationLog

      Displays a list of generation steps with loading animations.

      Prop Type Default Description
      title string "Generating..." Title of the generation log
      logs string[] [] Array of log messages

      Types

      SummaryOutput

      Property Type Description
      header string Header text for the summary
      body string Main body content of the summary
      image string Optional image URL for the summary

      Source

      Property Type Description
      url string URL of the source
      title string Title of the source
      image string Image URL for the source
      Property Type Description
      ref string Reference ID for the navigation item
      name string Display name of the navigation item

      Example Usage

      import { Summary, PromptWithOptions, Sources, Navigation, GenerationLog } from '@capitol.ai/summary';
      import '@capitol.ai/summary/dist/summary.css';
      
      const MyApp = () => {
        return (
          <div>
            <PromptWithOptions
              placeholder="Ask a question"
              prompts={["What is AI?", "How does it work?"]}
              onSubmit={(prompt) => console.log(prompt)}
            />
            <GenerationLog
              title="Generating Summary"
              logs={["Analyzing sources", "Generating content"]}
            />
            <Summary
              title="AI Summary"
              prompt="What is artificial intelligence?"
              summary="Artificial intelligence is..."
              layout="metric-media"
            />
            <Sources
              sources={[
                {
                  url: "https://example.com",
                  title: "Example Source",
                  image: "https://example.com/image.jpg"
                }
              ]}
            />
            <Navigation
              title="Table of Contents"
              navList={[
                { ref: "section1", name: "Introduction" },
                { ref: "section2", name: "Main Content" }
              ]}
              activeItem="section1"
            />
          </div>
        );
      }

      Building new package

      It's always a better idea to test before publish (e.g. using App.jsx).

      Once you absolutely happy with what you've done:

      npm run build
      npm version patch
      npm publish