Skip to content

Missing widgets — textarea, modal, date picker, autocomplete, and more #16

@prakashUXtech

Description

@prakashUXtech

Context

Ripple has 40+ widgets which cover most common patterns, but agents frequently try to generate UIs that need widgets we don't have yet. This causes silent failures or forces workarounds.

High Priority (agents need these often)

Widget Why Complexity
textarea Multi-line text input — forms, feedback, comments. Current input is single-line only S — wrap shadcn Textarea
modal / dialog Confirmations, detail views, edit forms, overlays. No way to do popover content today S-M — shadcn Dialog + open/close state binding
date-picker Scheduling, date filters, any form with dates S — shadcn DatePicker
autocomplete / combobox Search inputs, entity pickers, tag selection with filtering M — shadcn Combobox

Medium Priority (useful, workarounds exist)

Widget Why
multi-select Tag selection, category filters — current select is single-value
skeleton / loading Loading placeholders while data fetches
alert / banner Persistent messages, not ephemeral toasts
pagination Table pagination controls — table widget has no built-in paging
slider Range inputs, numeric filters

Lower Priority (nice to have, less common)

Widget Why
file-upload Forms that accept files
tree-view Hierarchical data display
color-picker Theming, design tool UIs

Implementation Notes

Most high-priority widgets are straightforward — wrap the existing shadcn-svelte component with a Ripple widget interface (register in widget registry, define props schema, handle bind/events). The pattern is well-established from existing widgets like input, select, button.

Each widget should:

  • Register in src/lib/widgets/index.ts
  • Support standard Ripple features: bind, show, on_change/on_click where appropriate
  • Work with the expression resolver for dynamic props
  • Have sensible defaults so agents can use minimal props

Can be tackled incrementally — one widget per PR, or batch the S-sized ones together.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions