Skip to content

Repository files navigation

Data Shape Kit

Free MIT-licensed tools for spreadsheet text, Markdown tables, local file checks, form validation, table selection, calendar arithmetic, workday schedules, chart gaps, line sampling, JSONL imports and PDF contents. Choose a module for your application or try the browser playground. Each tool has its own setup; JavaScript modules do not require Python.

Start with three free components for spreadsheet paste, remote field checks and JSONL imports, each with a fixed download and a short runnable example.

Choose a tool

What you need Start here Setup
Release each image-based PDF export context after receiving the file Raster PDF Worker Complete browser example; jsPDF 4.2.1
Navigate custom 12-month FullCalendar views without Spanish hint errors Calendar navigation Three public configuration options; complete browser example
Refresh AG Grid React overlay text and actions without losing the visible overlay’s local state Overlay parameter refresh Exact-version 36.1.0 patch; ESM/CommonJS production browser checks
Refresh asynchronous table data inside a Naive UI collapse without losing child state on updates Async collapse content Copyable render-function workaround; production browser comparison
Keep local constant calculations intact in Metro release bundles Metro release values Copyable source workaround; production bundle checks
Keep original images referenced by cached Astro pages through repeated builds Astro cached images Exact-preview patch; production build and image checks
Export PDFs when an overlapping element moves above a shrinking table PDFme table export Exact-version patch recipe; PDF content and pagination checks
Run Storybook tests with configuration hooks when Jest 30.5 refuses Node loader registration Storybook Jest configuration Exact-version Storybook 10.6.0 patch; TypeScript/JavaScript and repeated-run fixture
Parse or copy spreadsheet text while preserving quoted line breaks, empty cells and leading zeros Clipboard Table Copyable JavaScript module; browser or Node.js
Turn a copied spreadsheet selection into comma-separated CSV Browser playground No installation; copy or download CSV
Convert CSV or tab-separated text into Markdown tables Markdown Table Versioned GitHub package; Node.js 20+ for installation
Add a table generator to a React application React component and DevKit adapter React 18+; Tailwind CSS 4 or your own styles
Keep decimal commas when pasting into Streamlit Decimal paste example Python helper plus an optional Streamlit app
Read the current plain-text paste event in a Glide grid Glide paste adapter Copyable adapter; your application owns validation and writes
Copy a selected rectangle of editor table cells as CSV ProseMirror selection example Tiptap / ProseMirror; optional React copy control
Preserve merged cells when table paste fails while creating its selection Merged-cell paste patch Exact-version ProseMirror 1.8.5 patch; Tiptap 3.31.3 regression fixture
Preserve Lime editor table structure with links and images while respecting the no-upload setting Table paste priority Exact-version Lime Elements 40.2.2 patch; repeated-paste browser checks
Preserve pipe-containing table text and backtick-containing inline code through Markdown export/import Markdown round-trip patches Tiptap 3.31.3 patches; runnable ESM and CommonJS regression fixture
Import mixed rich text and long worksheet names from XLSX files ExcelJS import compatibility ExcelJS 4.4.0 patch; generated load/write regression fixture
Replace repeated whole-paragraph DOCX blocks without deleting content between them DOCX repeated blocks docx 9.7.1 patch; generated ESM and CommonJS regression fixture
Merge a following paragraph into a list item with one Delete while preserving adjacent isolating frames Isolated list Delete Copyable Tiptap extension; 3.31.3 regression fixture and browser comparison
Handle an external CRLF terminator while retaining intentional blank rows C# row-boundary example Copyable helper and checks; Radzen integration notes
Keep CSV codes as text while measurements and counts stay numeric Pandas code columns Python; a two-pass pandas helper with an explicit count-field exception
Import literal identifiers without losing zeros or strings such as NA Identifier Column Python; standard-library CSV and optional XLSX/QR examples
Debounce remote validation while keeping form input and submission current Remote field check Copyable JavaScript core; React / React Hook Form example and offline demo
Correct an existing text tag without deleting it Editable text tags Copyable React-Select component; stable IDs, save/cancel and conflicting-update checks
Highlight a phrase across PDF text fragments and explicit line endings PDF fragment highlights Copyable module and React-PDF component; repeated and overlapping literal matches
Acknowledge a saved dynamic form without losing focus or edits made during the request Saved field array Copyable React Hook Form component; local slow-save and failure example
Show Ant Design local-rule errors immediately while debouncing remote validation Ant Design rule example Copyable rule bridge and React form with cancellation and immediate submit
Keep unrelated fields quiet inside a reactive form group Isolated form fields Copyable typed React memo boundary; TanStack Form comparison with live validation
Keep TanStack Form pending indicators accurate when async field checks overlap Validation state patch Exact-version 1.33.5 patch; runnable ESM and CommonJS regression fixture
Refresh a pending-operation list when its selected category changes Mutation view Copyable TypeScript React component; React Query 5.102.8 regression example
Add calendar days, weeks, months or years in a chosen time zone with explicit DST handling Calendar shift Copyable TypeScript function; Temporal polyfill and Day.js integration checks
Add, subtract or count working dates with custom weekdays and supplied holidays Work calendar Dependency-free TypeScript core; date-fns integration checks
Keep FullCalendar time-grid lanes usable while opening hours change Calendar hours Version-pinned configuration workaround; Chrome browser regression checks
Generate linked PDF contents with verified page numbers, including multi-page contents PDF contents Node/TypeScript utility and React component; react-pdf integration checks
Reduce line-chart points while retaining missing intervals and original records Line sampling Dependency-free TypeScript core; React / Recharts component and SVG checks
Close a chart tooltip for a details dialog and restore hover at a different point Dismissible tooltip Copyable React hook; Recharts Scatter example and keyboard-accessible data table
Draw dashed connections across missing categories or time samples without inventing measurements Chart gaps Dependency-free TypeScript adapter; ECharts 6.1.0 SVG checks
Keep PapaParse Worker results correct in tested Vite 8 production builds Vite Worker configuration and checks Copyable minifier configuration; runnable browser comparison
Select and rename CSV columns while preserving original value alignment CSV Column Map Dependency-free JavaScript core; PapaParse 5.7.0 string adapter and tests
Select all eligible query results across server-paginated pages, with exclusions Cross-page selection Dependency-free selection module; TanStack Table 9 example with a local read-only server
Process UTF-8 CSV records sequentially with asynchronous callbacks and cancellation Streaming CSV Node.js 20+; csv-parse integration with strict decoding and header checks
Keep blank numeric fields distinct from zero, with typed form inputs and submissions Number Input Copyable Zod 4 schemas; React Hook Form example and type checks
Replace declared CSV missing markers in selected columns while preserving identifiers and notes Missing Tokens Copyable Python module; standard library only
Separate malformed JSONL lines while retaining original bytes and rejection locations JSONL partition Python standard library; optional Polars eager/lazy integration
Retain complete finite-command output and exit status while previewing its first 120 lines Command output capture POSIX shell with mktemp and head; Node.js 20+ only for tests
Clean, profile, compare or check local files Python command-line guide Python 3.11+

Try spreadsheet paste without installing a tool

  1. Open the free browser playground.
  2. Choose TSV (tabs) or CSV (commas), then Load example or paste your table text.
  3. Choose CSV, JSON or Markdown table, then copy or download the complete result. CSV includes every input row; its heading option affects only the preview.

For offline use, download the browser playground v0.4.0 ZIP, extract it and open index.html in a modern browser. If automatic copying is unavailable, copy the selected output manually. Use CSV download when you need to retain the serialized line endings.

The page processes text locally with no uploads or external runtime assets. The clipboard guide explains preview limits and includes a separate source-and-tests download. The community examples show why splitting on every newline loses multiline cells.

Generate a Markdown table

Install the fixed GitHub release with Node.js 20 or newer:

npm install https://raw.githubusercontent.com/tevinch/data-shape-kit/markdown-table-v0.1.1/downloads/tevinch-markdown-table-0.1.1.tgz

In an ES module:

import { buildMarkdownTable } from '@tevinch/markdown-table';

const result = buildMarkdownTable('ID,Note\n001,"a|b"', {
  delimiter: ',',
  firstRowHeaders: true,
});
console.log(result.markdown);
| ID | Note |
| --- | --- |
| 001 | a\|b |

The core has no runtime dependencies. Use delimiter: '\t' for spreadsheet text. The package is distributed through GitHub; installation by package name alone is not available. See the full API, TypeScript setup and optional React entry.

Python file tools

The Python CLI supports CSV cleanup, profiling, dictionaries, exact-key comparison, and static checks for supported catalog, feed, calendar and web files. The command-line guide contains installation steps, command examples, tests, data handling and the scope of each check.

For help applying the tools to an eligible file, see the separate optional service scopes.

Share a reproducible example

Report a component problem or ask an integration question. Include the component and version, a small invented input, expected output, actual output and relevant runtime versions. Public issues should not contain real datasets, credentials, private URLs or personal information.

Data handling and limits

The conversion modules make no network requests or storage calls; the surrounding application controls what happens to their output. Clipboard parsers preserve the text they receive, but cannot recover precision or zeros already lost in the source application. They do not read XLSX files or evaluate formulas. Markdown is a presentation format, so rendered whitespace can differ from the original text.

The Glide adapter requires the host application to validate a whole paste before writing. Full Glide runtime integration and Windows Excel round-trip behavior have not been tested. Follow each tool's guide for its limits and verification scope.

License

MIT for original collection code. Exact-version patches retain their upstream licenses as documented in their guides. Use, modify and share the code, retaining the applicable license notices. If a component saves you time, its guide includes a small optional coffee note. Feedback and useful examples are appreciated too.

About

Free tools for spreadsheet text, Markdown tables, and local file checks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages