npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vuetify-editable-data-grid

v1.0.1

Published

A highly customizable and interactive editable data table component built with Vue 3 and Vuetify 3. This component supports inline editing, undo/redo functionality, column visibility filters, drag-to-fill (like Excel), and more.

Readme

EditableDataTable

A highly customizable and interactive editable data table component built with Vue 3 and Vuetify 3. This component supports inline editing, undo/redo functionality, column visibility filters, drag-to-fill (like Excel), and more.

🚀 Features

  • 📋 Editable cells (text, number, currency, select, checkbox)
  • 🔍 Search filter across all fields
  • 🔄 Undo/Redo support
  • 📌 Column visibility toggle with badge indicator
  • 🖱️ Drag-to-fill across rows and columns
  • 🧭 Keyboard navigation (Arrow keys)
  • 💡 Tooltips for validation errors
  • 🎨 Fully styled and responsive

📦 Props

|Prop | Type | Required | Default | Description | |-----|------|----------|---------|-------------| |headers | Array | ✅ | [] | Defines table headers and column configs| |modelValue (v-model) | Array | ✅ | [] | List of table row items (data)|

Each header object in headers should contain:

{
  key: 'columnKey',
  title: 'Column Title',
  type: 'string' | 'number' | 'currency' | 'select' | 'checkbox',
  prefix: '', // optional
  suffix: '', // optional
  items: [], // for select
  itemTitle: 'name', // for select
  itemValue: 'id',   // for select
  align: 'left' | 'center' | 'right',
  props: {}, // additional Vuetify props for inputs
  permanent: false, // if true, can't be hidden
  hideHandle: false // if true, disables drag handle
}

🧩 Slots

|Name | Description| |-----|------------| |header | Custom content in the left side of top bar| |controls | Override default controls (search, undo/redo)| |prepend | Content before the data table (e.g., tips)|


📚 Usage

<EditableDataTable
  v-model="tableData"
  :headers="tableHeaders"
>
  <template #header>
    <h2>Bulk Product Editor</h2>
  </template>
</EditableDataTable>

🧠 Keyboard Shortcuts

  • ↑ ↓ ← → - Move between cells
  • Enter / Blur - Save current cell
  • Ctrl/Cmd + Z - Undo
  • Ctrl/Cmd + Y - Redo

📌 Column Filtering

Click the filter icon in the control bar to toggle visible columns. A dot indicator appears when not all columns are shown.


✨ Advanced Features

Drag-to-fill

Click and drag the handle on a selected cell to apply the value across adjacent rows or columns (similar to Excel autofill).

Validation Tooltip

Errors are displayed in tooltips on hover. Validation messages should be injected via the form ref.


📦 Dependencies

  • Vue 3
  • Vuetify 3
  • Custom composable useRefHistory (for undo/redo)
  • Optional: AppPriceDisplay component (custom price formatting)

🛠 Dev Notes

  • formRef is exposed via defineExpose to allow external validation triggering.
  • Error highlighting and caret indicators are shown based on the form's validation state.
  • CSS heavily leverages :deep() for Vuetify component overrides.

📁 File Structure The component is self-contained with scoped styles. To integrate:

  • Import and register the component.
  • Provide headers and model data.
  • Optionally inject validation logic and custom slot content.

License

This package is licensed under the MIT License.