Skip to content

Latest commit

 

History

History
187 lines (148 loc) · 7.08 KB

File metadata and controls

187 lines (148 loc) · 7.08 KB

Thunder API

  • Get
    • Query
  • Patch
    • SObject
  • Post
    • SObject
    • Composite
  • Delete
    • SObject
  • RecordId
  • Query
    • Improve Record Access API

Thunder SLDS Components Roadmap

Currently Implemented Components ✅

Form Components

  • TextInput (input.go) - Basic text input with label
  • Textarea (textarea.go) - Multi-line text input
  • Checkbox (checkbox.go) - Boolean input
  • Select (select.go) - Dropdown selection
  • RadioGroup (radiogroup.go) - Single-choice options with form layout
  • RadioButtonGroup (radiogroup.go) - Single-choice options with button styling
  • Datepicker (datepicker.go) - Date selection
  • Lookup (lookup.go) - Autocomplete/search input
  • Form Validation Framework (validated_input.go) - Field-level validation with ValidationState

Navigation Components

  • Breadcrumb (breadcrumb.go) - Navigation hierarchy
  • Tabs (tabs.go) - Tabbed navigation with content panels

Data Display Components

  • DataTable (datatable.go) - Basic tabular display
  • ProgressBar (progressbar.go) - Horizontal progress indicator
  • Badge (badge.go) - Status/label display
  • Icon (icon.go) - SLDS icon rendering

Layout Components

  • Card (card.go) - Container with header and body
  • Grid (grid.go) - SLDS grid system
  • Page (page.go) - Layout wrapper
  • PageHeader (pageheader.go) - Page-level heading

Feedback Components

  • Modal (modal.go) - Overlay dialogs
  • Toast (toast.go) - Notification messages
  • Spinner (spinner.go) - Loading indicators
  • Stencil (stencil.go) - Skeleton loading placeholders
  • Tooltip (validated_input.go) - Contextual help with info icons

Utility Components

  • Button (button.go) - Action buttons (neutral, brand, destructive)

Critical Missing Components (High Priority) 🔴

Form Components & Validation

  1. File Upload - File selection and upload

    • Priority: MEDIUM - Important for data import/export scenarios
    • Effort: MEDIUM - File handling and progress display
    • Usage: Common - Document attachments, CSV imports
  2. Combobox - Enhanced dropdown with search/filtering

    • Priority: MEDIUM - More advanced than basic Select
    • Effort: MEDIUM - Builds on Lookup functionality
    • Usage: Common - Large option lists, picklist values

Navigation Components

  1. Vertical Navigation - Sidebar/tree navigation

    • Priority: HIGH - Essential for complex app navigation
    • Effort: MEDIUM - Tree structure with expand/collapse
    • Usage: High - App sidebars, hierarchical menus
  2. Menu/Dropdown - Context menus and action dropdowns

    • Priority: HIGH - Critical for action-heavy interfaces
    • Effort: MEDIUM - Positioning and click-outside handling
    • Usage: High - Table actions, button groups

Data Display Components

  1. Tree Grid - Hierarchical data display

    • Priority: MEDIUM - Important for complex data relationships
    • Effort: HIGH - Complex tree structure with DataTable features
    • Usage: Medium - Folder structures, org hierarchies
  2. Accordion - Collapsible content sections

    • Priority: MEDIUM - Good for organizing content
    • Effort: LOW - Expand/collapse state management
    • Usage: Medium - FAQ sections, grouped settings

Layout Components

  1. Tiles - Grid-based content layout
    • Priority: LOW - Nice-to-have for dashboard layouts
    • Effort: LOW - Extension of Grid system
    • Usage: Medium - Dashboard widgets, gallery views

Feedback Components

  1. Prompt/Confirmation Dialog - User decision dialogs
    • Priority: HIGH - Critical for destructive actions
    • Effort: LOW - Extension of Modal component
    • Usage: High - Delete confirmations, unsaved changes

Nice-to-Have Components (Medium Priority) 🟡

Advanced Form Components

  1. DateTime Picker - Combined date and time selection

    • Effort: MEDIUM - Combines existing Datepicker with time
    • Usage: Medium - Scheduling, event creation
  2. Color Picker - Color selection input

    • Effort: MEDIUM - Color wheel/palette implementation
    • Usage: Low - Theming, customization features
  3. Rich Text Editor - WYSIWYG text editing

    • Effort: HIGH - Complex text formatting capabilities
    • Usage: Medium - Email composition, content editing

Data Display Components

  1. Progress Ring - Circular progress indicator

    • Effort: LOW - SVG-based circular progress
    • Usage: Low - Alternative to ProgressBar
  2. Carousel - Image/content slideshow

    • Effort: MEDIUM - Touch/swipe support, navigation
    • Usage: Low - Product galleries, onboarding

Specialized Components

  1. Avatar - User profile images

    • Effort: LOW - Image with fallback initials
    • Usage: Medium - User lists, profiles
  2. Button Group - Grouped action buttons

    • Effort: LOW - Styling for button collections
    • Usage: Medium - Toolbar actions, toggle groups

Implementation Strategy & Elm Architecture Fit 🟢

Phase 1: Critical Form & Validation (Sprint 1-2) ✅ COMPLETED

  • Textarea - Extends existing input patterns
  • Form Validation Framework - Msg-based validation state with ValidationState
  • Tooltip - Essential UX improvement with help icons

Phase 2: Navigation & Menus (Sprint 3-4)

  • Vertical Navigation - Tree-like Elm Architecture model
  • Menu/Dropdown - Click handling with outside detection
  • Prompt/Confirmation - Modal variant for decisions

Phase 3: Advanced Data Display (Sprint 5-6)

  • Accordion - Expand/collapse state management
  • Tree Grid - Hierarchical data with CRUD operations
  • File Upload - Progress tracking via Elm commands

Phase 4: Polish & Enhancement (Sprint 7+)

  • Combobox - Enhanced Select with filtering
  • Avatar, Button Group, Tiles - UI polish
  • Rich Text Editor - Complex state management

Elm Architecture Considerations

State Management Patterns

  • Form Validation: Field-level validation state in model (ValidationState struct)
  • Navigation: Route/selection state with Msg routing
  • Tree Components: Recursive data structures with expand state
  • File Upload: Progress tracking via Cmd/Msg patterns
  • Tooltips: Simple title attribute approach (no complex positioning state needed)

Message Patterns

  • ValidationMsg { Field, Error } - Field validation results (implemented in examples)
  • NavigationMsg { Route, Action } - Navigation state changes
  • TreeToggleMsg { NodeId, Expanded } - Tree node expansion
  • FileUploadMsg { Progress, Status } - Upload progress updates

Command Patterns

  • Async validation with debounced inputs (demonstrated in validation example)
  • File upload progress tracking
  • Navigation route changes
  • Data fetching for combobox options

Thunder CLI Features

Deploy

  • Add CustomTab to package.xml
  • Display deploy errors
  • Sanitize App Names